From 74742669f5bf3807d033046f1c9733f33082c018 Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 00:49:16 +0100 Subject: [PATCH 1/8] BaseVersion SharePoint Backend --- Duplicati.sln | 293 +++++----- ...Duplicati.CommandLine.BackendTester.csproj | 4 + .../Duplicati.CommandLine.BackendTool.csproj | 4 + .../CommandLine/Duplicati.CommandLine.csproj | 4 + .../Duplicati.CommandLine.RecoveryTool.csproj | 6 +- .../Duplicati.GUI.TrayIcon.csproj | 4 + ...uplicati.Library.Backend.SharePoint.csproj | 83 +++ .../SharePoint/Properties/AssemblyInfo.cs | 40 ++ .../Backend/SharePoint/SharePointBackend.cs | 497 +++++++++++++++++ .../Library/Backend/SharePoint/Strings.cs | 21 + .../Library/Backend/SharePoint/app.config | 3 + .../Backend/SharePoint/packages.config | 4 + Duplicati/License/Duplicati.License.csproj | 16 + Duplicati/Server/Duplicati.Server.csproj | 5 +- .../Microsoft.SharePoint.Client.Runtime.dll | Bin 0 -> 305408 bytes .../Microsoft.SharePoint.Client.dll | Bin 0 -> 676576 bytes ...icrosoftSharePointClientComponentsEULA.rtf | 500 ++++++++++++++++++ thirdparty/SharePoint.CSOM/download.txt | 1 + thirdparty/SharePoint.CSOM/license.txt | 115 ++++ thirdparty/SharePoint.CSOM/licensedata.json | 7 + 20 files changed, 1453 insertions(+), 154 deletions(-) create mode 100644 Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj create mode 100644 Duplicati/Library/Backend/SharePoint/Properties/AssemblyInfo.cs create mode 100644 Duplicati/Library/Backend/SharePoint/SharePointBackend.cs create mode 100644 Duplicati/Library/Backend/SharePoint/Strings.cs create mode 100644 Duplicati/Library/Backend/SharePoint/app.config create mode 100644 Duplicati/Library/Backend/SharePoint/packages.config create mode 100644 thirdparty/SharePoint.CSOM/Microsoft.SharePoint.Client.Runtime.dll create mode 100644 thirdparty/SharePoint.CSOM/Microsoft.SharePoint.Client.dll create mode 100644 thirdparty/SharePoint.CSOM/MicrosoftSharePointClientComponentsEULA.rtf create mode 100644 thirdparty/SharePoint.CSOM/download.txt create mode 100644 thirdparty/SharePoint.CSOM/license.txt create mode 100644 thirdparty/SharePoint.CSOM/licensedata.json diff --git a/Duplicati.sln b/Duplicati.sln index 1fb633814..8706a863b 100644 --- a/Duplicati.sln +++ b/Duplicati.sln @@ -1,6 +1,6 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Utility", "Duplicati\Library\Utility\Duplicati.Library.Utility.csproj", "{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Main", "Duplicati\Library\Main\Duplicati.Library.Main.csproj", "{10D2D1B7-C664-41D8-9B3A-00040C3D421B}" @@ -81,60 +81,78 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Backend.B EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.UsageReporter", "Duplicati\Library\UsageReporter\Duplicati.Library.UsageReporter.csproj", "{BB014EA5-CE2C-4444-8D30-38983A0E8553}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Backend.SharePoint", "Duplicati\Library\Backend\SharePoint\Duplicati.Library.Backend.SharePoint.csproj", "{59C8BBC5-6E42-46FB-AB3E-6C183A82459A}" +EndProject Global + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.Build.0 = Release|Any CPU - {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Release|Any CPU.Build.0 = Release|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.Build.0 = Release|Any CPU {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Debug|Any CPU.Build.0 = Debug|Any CPU {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Release|Any CPU.ActiveCfg = Release|Any CPU {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Release|Any CPU.Build.0 = Release|Any CPU - {17566860-3D98-4604-AA5B-47661F75609F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17566860-3D98-4604-AA5B-47661F75609F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17566860-3D98-4604-AA5B-47661F75609F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17566860-3D98-4604-AA5B-47661F75609F}.Release|Any CPU.Build.0 = Release|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.Build.0 = Release|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.Build.0 = Release|Any CPU {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.Build.0 = Debug|Any CPU {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.ActiveCfg = Release|Any CPU {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.Build.0 = Release|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.Build.0 = Release|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.Build.0 = Release|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.Build.0 = Release|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.Build.0 = Release|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.Build.0 = Release|Any CPU {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Debug|Any CPU.Build.0 = Debug|Any CPU {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Release|Any CPU.ActiveCfg = Release|Any CPU {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Release|Any CPU.Build.0 = Release|Any CPU - {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Release|Any CPU.Build.0 = Release|Any CPU - {2C838169-B187-4B09-8768-1C24C2521C8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C838169-B187-4B09-8768-1C24C2521C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C838169-B187-4B09-8768-1C24C2521C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C838169-B187-4B09-8768-1C24C2521C8D}.Release|Any CPU.Build.0 = Release|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.Build.0 = Release|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.Build.0 = Release|Any CPU - {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Release|Any CPU.Build.0 = Release|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.Build.0 = Release|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.Build.0 = Release|Any CPU + {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Release|Any CPU.Build.0 = Release|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.Build.0 = Release|Any CPU {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Debug|Any CPU.Build.0 = Debug|Any CPU {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -143,10 +161,82 @@ Global {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Debug|Any CPU.Build.0 = Debug|Any CPU {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Release|Any CPU.ActiveCfg = Release|Any CPU {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Release|Any CPU.Build.0 = Release|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.Build.0 = Release|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.Build.0 = Release|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {17566860-3D98-4604-AA5B-47661F75609F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17566860-3D98-4604-AA5B-47661F75609F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17566860-3D98-4604-AA5B-47661F75609F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17566860-3D98-4604-AA5B-47661F75609F}.Release|Any CPU.Build.0 = Release|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.Build.0 = Release|Any CPU + {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Release|Any CPU.Build.0 = Release|Any CPU + {2C838169-B187-4B09-8768-1C24C2521C8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C838169-B187-4B09-8768-1C24C2521C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C838169-B187-4B09-8768-1C24C2521C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C838169-B187-4B09-8768-1C24C2521C8D}.Release|Any CPU.Build.0 = Release|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.Build.0 = Release|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.Build.0 = Release|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.Build.0 = Release|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.Build.0 = Release|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.Build.0 = Release|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.Build.0 = Release|Any CPU {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Debug|Any CPU.Build.0 = Debug|Any CPU {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Release|Any CPU.ActiveCfg = Release|Any CPU {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Release|Any CPU.Build.0 = Release|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.Build.0 = Release|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.Build.0 = Release|Any CPU + {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Release|Any CPU.Build.0 = Release|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.Build.0 = Release|Any CPU {61C43D61-4368-4942-84A3-1EB623F4EF2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61C43D61-4368-4942-84A3-1EB623F4EF2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {61C43D61-4368-4942-84A3-1EB623F4EF2A}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -155,98 +245,21 @@ Global {6643A5AE-AB38-453F-ADCE-408E35A81A83}.Debug|Any CPU.Build.0 = Debug|Any CPU {6643A5AE-AB38-453F-ADCE-408E35A81A83}.Release|Any CPU.ActiveCfg = Release|Any CPU {6643A5AE-AB38-453F-ADCE-408E35A81A83}.Release|Any CPU.Build.0 = Release|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.Build.0 = Release|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.Build.0 = Release|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.Build.0 = Release|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.Build.0 = Release|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.Build.0 = Release|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.Build.0 = Release|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.Build.0 = Release|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Release|Any CPU.Build.0 = Release|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.Build.0 = Release|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.Build.0 = Release|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.Build.0 = Release|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.Build.0 = Release|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.Build.0 = Release|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.Build.0 = Release|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.Build.0 = Release|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.Build.0 = Release|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.Build.0 = Release|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.Build.0 = Release|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.Build.0 = Release|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.Build.0 = Release|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.Build.0 = Release|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.Build.0 = Release|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.Build.0 = Release|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.Build.0 = Release|Any CPU + {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution Policies = $0 @@ -256,7 +269,7 @@ Global $0.DotNetNamingPolicy = $2 $2.DirectoryNamespaceAssociation = PrefixedHierarchical $2.ResourceNamePolicy = FileFormatDefault - $0.TextStylePolicy = $3 + $0.TextStylePolicy = $29 $3.inheritsSet = null $3.scope = text/x-csharp $0.CSharpFormattingPolicy = $4 @@ -286,7 +299,6 @@ Global $4.inheritsSet = Mono $4.inheritsScope = text/x-csharp $4.scope = text/x-csharp - $0.TextStylePolicy = $5 $5.FileWidth = 120 $5.EolMarker = Windows $5.inheritsSet = VisualStudio @@ -294,21 +306,19 @@ Global $5.scope = text/plain $0.NameConventionPolicy = $6 $6.Rules = $7 - $7.NamingRule = $8 + $7.NamingRule = $27 $8.Name = Namespaces $8.AffectedEntity = Namespace $8.VisibilityMask = VisibilityMask $8.NamingStyle = PascalCase $8.IncludeInstanceMembers = True $8.IncludeStaticEntities = True - $7.NamingRule = $9 $9.Name = Types $9.AffectedEntity = Class, Struct, Enum, Delegate $9.VisibilityMask = Public $9.NamingStyle = PascalCase $9.IncludeInstanceMembers = True $9.IncludeStaticEntities = True - $7.NamingRule = $10 $10.Name = Interfaces $10.RequiredPrefixes = $11 $11.String = I @@ -317,7 +327,6 @@ Global $10.NamingStyle = PascalCase $10.IncludeInstanceMembers = True $10.IncludeStaticEntities = True - $7.NamingRule = $12 $12.Name = Attributes $12.RequiredSuffixes = $13 $13.String = Attribute @@ -326,7 +335,6 @@ Global $12.NamingStyle = PascalCase $12.IncludeInstanceMembers = True $12.IncludeStaticEntities = True - $7.NamingRule = $14 $14.Name = Event Arguments $14.RequiredSuffixes = $15 $15.String = EventArgs @@ -335,7 +343,6 @@ Global $14.NamingStyle = PascalCase $14.IncludeInstanceMembers = True $14.IncludeStaticEntities = True - $7.NamingRule = $16 $16.Name = Exceptions $16.RequiredSuffixes = $17 $17.String = Exception @@ -344,70 +351,60 @@ Global $16.NamingStyle = PascalCase $16.IncludeInstanceMembers = True $16.IncludeStaticEntities = True - $7.NamingRule = $18 $18.Name = Methods $18.AffectedEntity = Methods $18.VisibilityMask = Protected, Public $18.NamingStyle = PascalCase $18.IncludeInstanceMembers = True $18.IncludeStaticEntities = True - $7.NamingRule = $19 $19.Name = Static Readonly Fields $19.AffectedEntity = ReadonlyField $19.VisibilityMask = Protected, Public $19.NamingStyle = PascalCase $19.IncludeInstanceMembers = False $19.IncludeStaticEntities = True - $7.NamingRule = $20 $20.Name = Fields $20.AffectedEntity = Field $20.VisibilityMask = Protected, Public $20.NamingStyle = PascalCase $20.IncludeInstanceMembers = True $20.IncludeStaticEntities = True - $7.NamingRule = $21 $21.Name = ReadOnly Fields $21.AffectedEntity = ReadonlyField $21.VisibilityMask = Protected, Public $21.NamingStyle = PascalCase $21.IncludeInstanceMembers = True $21.IncludeStaticEntities = False - $7.NamingRule = $22 $22.Name = Constant Fields $22.AffectedEntity = ConstantField $22.VisibilityMask = Protected, Public $22.NamingStyle = PascalCase $22.IncludeInstanceMembers = True $22.IncludeStaticEntities = True - $7.NamingRule = $23 $23.Name = Properties $23.AffectedEntity = Property $23.VisibilityMask = Protected, Public $23.NamingStyle = PascalCase $23.IncludeInstanceMembers = True $23.IncludeStaticEntities = True - $7.NamingRule = $24 $24.Name = Events $24.AffectedEntity = Event $24.VisibilityMask = Protected, Public $24.NamingStyle = PascalCase $24.IncludeInstanceMembers = True $24.IncludeStaticEntities = True - $7.NamingRule = $25 $25.Name = Enum Members $25.AffectedEntity = EnumMember $25.VisibilityMask = VisibilityMask $25.NamingStyle = PascalCase $25.IncludeInstanceMembers = True $25.IncludeStaticEntities = True - $7.NamingRule = $26 $26.Name = Parameters $26.AffectedEntity = Parameter $26.VisibilityMask = VisibilityMask $26.NamingStyle = CamelCase $26.IncludeInstanceMembers = True $26.IncludeStaticEntities = True - $7.NamingRule = $27 $27.Name = Type Parameters $27.RequiredPrefixes = $28 $28.String = T @@ -416,7 +413,6 @@ Global $27.NamingStyle = PascalCase $27.IncludeInstanceMembers = True $27.IncludeStaticEntities = True - $0.TextStylePolicy = $29 $29.inheritsSet = null $29.scope = application/config+xml $0.XmlFormattingPolicy = $30 @@ -430,11 +426,4 @@ Global $33.LineAlign = 0 $32.inheritsSet = Mono EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(SubversionScc) = preSolution - Svn-Managed = True - Manager = AnkhSVN - Subversion Support for Visual Studio - EndGlobalSection EndGlobal diff --git a/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj b/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj index a3a4be85e..ff84339e3 100644 --- a/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj +++ b/Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj @@ -65,6 +65,10 @@ {8E4CECFB-0413-4B00-AB93-78D1C3902BD5} Duplicati.Library.Backend.AzureBlob + + {59c8bbc5-6e42-46fb-ab3e-6c183a82459a} + Duplicati.Library.Backend.SharePoint + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65} Duplicati.Library.Utility diff --git a/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj b/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj index b62290910..135335733 100644 --- a/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj +++ b/Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj @@ -71,6 +71,10 @@ {C03F6DFD-805A-4BE0-9338-64870ADDB4A2} Duplicati.Library.Backend.S3 + + {59c8bbc5-6e42-46fb-ab3e-6c183a82459a} + Duplicati.Library.Backend.SharePoint + {FF2BF37C-E502-4C98-BEA0-701671DDFA08} Duplicati.Library.Backend.SSHv2 diff --git a/Duplicati/CommandLine/Duplicati.CommandLine.csproj b/Duplicati/CommandLine/Duplicati.CommandLine.csproj index 37c58c88d..47e6ac158 100644 --- a/Duplicati/CommandLine/Duplicati.CommandLine.csproj +++ b/Duplicati/CommandLine/Duplicati.CommandLine.csproj @@ -69,6 +69,10 @@ {FC9B7611-836F-4127-8B44-A7C31F506807} Duplicati.Library.Backend.File + + {59c8bbc5-6e42-46fb-ab3e-6c183a82459a} + Duplicati.Library.Backend.SharePoint + {19ECCE09-B5EB-406C-8C57-BAC66997D469} Duplicati.Library.Compression diff --git a/Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj b/Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj index e49ae31d4..92c968613 100644 --- a/Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj +++ b/Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj @@ -1,4 +1,4 @@ - + Debug @@ -91,6 +91,10 @@ {C03F6DFD-805A-4BE0-9338-64870ADDB4A2} Duplicati.Library.Backend.S3 + + {59c8bbc5-6e42-46fb-ab3e-6c183a82459a} + Duplicati.Library.Backend.SharePoint + {FF2BF37C-E502-4C98-BEA0-701671DDFA08} Duplicati.Library.Backend.SSHv2 diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj index f453f8801..76765718e 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj @@ -161,6 +161,10 @@ {C03F6DFD-805A-4BE0-9338-64870ADDB4A2} Duplicati.Library.Backend.S3 + + {59c8bbc5-6e42-46fb-ab3e-6c183a82459a} + Duplicati.Library.Backend.SharePoint + {FF2BF37C-E502-4C98-BEA0-701671DDFA08} Duplicati.Library.Backend.SSHv2 diff --git a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj new file mode 100644 index 000000000..a1b786a9d --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj @@ -0,0 +1,83 @@ + + + + + Debug + AnyCPU + {59C8BBC5-6E42-46FB-AB3E-6C183A82459A} + Library + Properties + Duplicati.Library.Backend + Duplicati.Library.Backend.SharePoint + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\packages\Microsoft.SharePointOnline.CSOM.16.1.4915.1200\lib\net45\Microsoft.SharePoint.Client.dll + + + ..\..\..\..\..\packages\Microsoft.SharePointOnline.CSOM.16.1.4915.1200\lib\net45\Microsoft.SharePoint.Client.Runtime.dll + + + + + + + + + + + + + + + + + + + + + + {c5899f45-b0ff-483c-9d38-24a9fcaab237} + Duplicati.Library.Interface + + + {b68f2214-951f-4f78-8488-66e1ed3f50bf} + Duplicati.Library.Localization + + + {52826615-7964-47fe-b4b3-1b2dbdf605b9} + Duplicati.Library.Modules.Builtin + + + {de3e5d4c-51ab-4e5e-bee8-e636cebfba65} + Duplicati.Library.Utility + + + + + \ No newline at end of file diff --git a/Duplicati/Library/Backend/SharePoint/Properties/AssemblyInfo.cs b/Duplicati/Library/Backend/SharePoint/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..1d9f02c30 --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +#region Disclaimer / License +// Copyright (C) 2016, The Duplicati Team +// http://www.duplicati.com, info@duplicati.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +#endregion + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("Duplicati.Library.Backend.SharePoint")] +[assembly: AssemblyDescription("A SharePoint Online Backend for Duplicati (includes OneDrive for Business support)")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Duplicati Team")] +[assembly: AssemblyProduct("Duplicati.Library.Backend.SharePoint")] +[assembly: AssemblyCopyright("Copyright © Duplicati Team 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ef2ffdff-aa60-477f-82a0-06d486c6dbbf")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs new file mode 100644 index 000000000..b68b64aba --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs @@ -0,0 +1,497 @@ +#region Disclaimer / License +// Copyright (C) 2016, The Duplicati Team +// http://www.duplicati.com, info@duplicati.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Duplicati.Library.Interface; + +using SP = Microsoft.SharePoint.Client; +using Microsoft.SharePoint.Client; // Plain 'using' for extension methods + +namespace Duplicati.Library.Backend +{ + /// + /// Class implementing Duplicati's backend for SharePoint. + /// + /// + /// SharePoint Server 2013 Client Components SDK: https://www.microsoft.com/en-us/download/details.aspx?id=35585 + /// Infos for further development: + /// Using ADAL-Tokens (Azure Active directory): https://samlman.wordpress.com/2015/02/27/using-adal-access-tokens-with-o365-rest-apis-and-csom/ + /// Outline: + /// - On AzureAD --> AddNewApp and configure access to O_365 (SharePoint/OneDrive4Busi) + /// --> Get App's CLIENT ID and REDIRECT URIS. + /// - Get SAML token (WebRequest). + /// - Add auth code with access token in event ctx.ExecutingWebRequest + /// --> e.WebRequestExecutor.RequestHeaders[“Authorization”] = “Bearer ” + ar.AccessToken; + /// + public class SharePointBackend : IBackend, IStreamingBackend + { + +#region [Variables and constants declarations] + + private Utility.Uri m_orgUrl; + private string m_serverRelPath; + private string m_spWebUrl; + private SP.ClientContext m_spContext; + + private System.Net.ICredentials m_userInfo; + + private readonly byte[] m_copybuffer = new byte[Duplicati.Library.Utility.Utility.DEFAULT_BUFFER_SIZE]; + +#endregion + +#region [Public Properties] + + public string DisplayName + { + get { return Strings.SharePoint.DisplayName; } + } + + public string ProtocolKey + { + get { return "sp"; } + } + + public IList SupportedCommands + { + get + { + return new List(new ICommandLineArgument[] { + new CommandLineArgument("auth-password", CommandLineArgument.ArgumentType.Password, Strings.SharePoint.DescriptionAuthPasswordShort, Strings.SharePoint.DescriptionAuthPasswordLong), + new CommandLineArgument("auth-username", CommandLineArgument.ArgumentType.String, Strings.SharePoint.DescriptionAuthUsernameShort, Strings.SharePoint.DescriptionAuthUsernameLong), + new CommandLineArgument("integrated-authentication", CommandLineArgument.ArgumentType.Boolean, Strings.SharePoint.DescriptionIntegratedAuthenticationShort, Strings.SharePoint.DescriptionIntegratedAuthenticationLong), + }); + } + } + + public string Description + { + get { return Strings.SharePoint.Description; } + } + +#endregion + +#region [Constructors] + + public SharePointBackend() + { } + + public SharePointBackend(string url, Dictionary options) + { + var u = new Utility.Uri(url); + u.RequireHost(); + + // Create sanitized plain https-URI (note: still has double slashes for processing web) + m_orgUrl = new Utility.Uri("https", u.Host, u.Path, null, null, null, u.Port); + + // Actual path to Web will be searched for on first use. Ctor should not throw. + m_spWebUrl = null; + + m_serverRelPath = u.Path; + if (!m_serverRelPath.StartsWith("/")) + m_serverRelPath = "/" + m_serverRelPath; + if (!m_serverRelPath.EndsWith("/")) + m_serverRelPath += "/"; + // remove marker for SP-Web + m_serverRelPath = m_serverRelPath.Replace("//", "/"); + + // Authentication settings processing: + // Default: try integrated auth (will normally not work for Office365, but maybe on-prem SharePoint...). + // Otherwise: Command line options precede URL-integrated auth. + + string useUsername = null; + string usePassword = null; + bool useIntegratedAuthentication = Utility.Utility.ParseBoolOption(options, "integrated-authentication"); + if (!useIntegratedAuthentication) + { + // Note: Supplying a username on cmdline and relying on pwd in URL is not considered legal! + if (options.TryGetValue("auth-username", out useUsername)) + options.TryGetValue("auth-password", out usePassword); + else + { + useUsername = u.Username; + if (!options.TryGetValue("auth-password", out usePassword)) + usePassword = u.Password; + } + } + + if (useIntegratedAuthentication || (useUsername == null || usePassword == null)) + { + // This might or might not work for on-premises SP. Maybe support if someone complains... + m_userInfo = System.Net.CredentialCache.DefaultNetworkCredentials; + } + else + { + System.Security.SecureString securePwd = new System.Security.SecureString(); + usePassword.ToList().ForEach(c => securePwd.AppendChar(c)); + m_userInfo = new Microsoft.SharePoint.Client.SharePointOnlineCredentials(useUsername, securePwd); + // Other options (also ADAL, see class remarks) might be supported on request. + // Microsoft.SharePoint.Client.AppPrincipalCredential.CreateFromKeyGroup() + // ctx.AuthenticationMode = SP.ClientAuthenticationMode.FormsAuthentication; + // ctx.FormsAuthenticationLoginInfo = new SP.FormsAuthenticationLoginInfo(user, pwd); + } + + } + + +#endregion + + #region [Private helper methods] + + /// + /// Tries a simple query to test the passed context. + /// Returns 0 on success, negative if completely invalid, positive if SharePoint error (wrong creds are negative). + /// + private static int testContextForWeb(SP.ClientContext ctx, bool rethrow = true) + { + try + { + ctx.Load(ctx.Web, w => w.Title); + ctx.ExecuteQuery(); // should fail and throw if anything wrong. + string webTitle = ctx.Web.Title; + if (webTitle == null) + throw new UnauthorizedAccessException(Strings.SharePoint.WebTitleReadFailedError); + return 0; + } + catch (Microsoft.SharePoint.Client.ServerException) + { + if (rethrow) throw; + else return 1; + } + catch (Exception) + { + if (rethrow) throw; + else return -1; + } + } + + /// + /// Builds a client context and tries a simple query to test if there's a web. + /// Returns 0 on success, negative if completely invalid, positive if SharePoint error (likely wrong creds). + /// + private static int testUrlForWeb(string url, System.Net.ICredentials userInfo, bool rethrow, out SP.ClientContext retCtx) + { + int result = -1; + retCtx = null; + SP.ClientContext ctx = new ClientContext(url); + try + { + ctx.Credentials = userInfo; + result = testContextForWeb(ctx, rethrow); + if (result >= 0) + { + retCtx = ctx; + ctx = null; + } + } + finally { if (ctx != null) { ctx.Dispose(); } } + + return result; + } + + /// + /// SharePoint has nested subwebs but sometimes different webs + /// are hooked into a sub path. + /// For finding files SharePoint is picky to use the correct + /// path to the web, so we will trial and error here. + /// The user can give us a hint by supplying an URI with a double + /// slash to separate web. + /// Otherwise it's a good guess to look for "/documents", as we expect + /// that the default document library is used in the path. + /// If that won't help, we will try all possible pathes from longest + /// to shortest... + /// + private static string findCorrectWebPath(Utility.Uri orgUrl, System.Net.ICredentials userInfo, out SP.ClientContext retCtx) + { + retCtx = null; + + string path = orgUrl.Path; + int webIndicatorPos = path.IndexOf("//"); + + // if a hint is supplied, we will of course use this first. + if (webIndicatorPos >= 0) + { + string testUrl = new Utility.Uri(orgUrl.Scheme, orgUrl.Host, path.Substring(0, webIndicatorPos), null, null, null, orgUrl.Port).ToString(); + if (testUrlForWeb(testUrl, userInfo, false, out retCtx) >= 0) + return testUrl; + } + + // Now go through path and see where we land a success. + string[] pathParts = path.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); + // first we look for the doc library + int docLibrary = Array.FindIndex(pathParts, p => StringComparer.InvariantCultureIgnoreCase.Equals(p, "documents")); + if (docLibrary >= 0) + { + string testUrl = new Utility.Uri(orgUrl.Scheme, orgUrl.Host, + string.Join("/", pathParts, 0, docLibrary), + null, null, null, orgUrl.Port).ToString(); + if (testUrlForWeb(testUrl, userInfo, false, out retCtx) >= 0) + return testUrl; + } + + // last but not least: try one after the other. + for (int pi = pathParts.Length - 1; pi >= 0; pi--) + { + if (pi == docLibrary) continue; // already tested + + string testUrl = new Utility.Uri(orgUrl.Scheme, orgUrl.Host, + string.Join("/", pathParts, 0, pi), + null, null, null, orgUrl.Port).ToString(); + if (testUrlForWeb(testUrl, userInfo, false, out retCtx) >= 0) + return testUrl; + } + + // nothing worked :( + return null; + } + + /// Return the preconfigured SP.ClientContext to use. + private SP.ClientContext getSpClientContext(bool forceNewContext = false) + { + if (forceNewContext) + { + if (m_spContext != null) m_spContext.Dispose(); + m_spContext = null; + } + + if (m_spContext == null) + { + if (m_spWebUrl == null) + { + m_spWebUrl = findCorrectWebPath(m_orgUrl, m_userInfo, out m_spContext); + if (m_spWebUrl == null) + throw new System.Net.WebException(Strings.SharePoint.NoSharePointWebFoundError(m_orgUrl.ToString())); + } + else + { + // would query: testUrlForWeb(m_spWebUrl, userInfo, true, out m_spContext); + m_spContext = new ClientContext(m_spWebUrl); + m_spContext.Credentials = m_userInfo; + } + } + + return m_spContext; + } + + + /// + /// Dedicated code to wrap ExecuteQuery on file ops and check for errors. + /// We have to check for the exceptions thrown to know about file /folder existence. + /// Why the funny guys at MS provided an .Exists field stays a mystery... + /// + /// the filename + private void wrappedExecuteQueryOnConext(SP.ClientContext ctx, string serverRelPathInfo, bool isFolder) + { + try { ctx.ExecuteQuery(); } + catch (ServerException ex) + { + // funny: If a folder is not found, we still get a FileNotFoundException from Server...?!? + // Thus, we help ourselves by just passing the info if we wanted to query a folder. + if (ex.ServerErrorTypeName == "System.IO.DirectoryNotFoundException" + || (ex.ServerErrorTypeName == "System.IO.FileNotFoundException" && isFolder)) + throw new Interface.FolderMissingException(Strings.SharePoint.MissingElementError(serverRelPathInfo, m_spWebUrl)); + if (ex.ServerErrorTypeName == "System.IO.FileNotFoundException") + throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(serverRelPathInfo, m_spWebUrl)); + else + throw; + } + } + + #endregion + + + #region [Public backend methods] + + public void Test() + { + SP.ClientContext ctx = getSpClientContext(); + testContextForWeb(ctx, true); + } + + public List List() + { + SP.ClientContext ctx = getSpClientContext(); + try + { + SP.Folder remoteFolder = ctx.Web.GetFolderByServerRelativeUrl(m_serverRelPath); + ctx.Load(remoteFolder, f => f.Exists); + ctx.Load(remoteFolder, f => f.Files, f => f.Folders); + + wrappedExecuteQueryOnConext(ctx, m_serverRelPath, true); + if (!remoteFolder.Exists) + throw new Interface.FolderMissingException(Strings.SharePoint.MissingElementError(m_serverRelPath, m_spWebUrl)); + + List files = new List(remoteFolder.Folders.Count + remoteFolder.Files.Count); + foreach (var f in remoteFolder.Folders.Where(ff => ff.Exists)) + { + FileEntry fe = new FileEntry(f.Name, -1, f.TimeLastModified, f.TimeLastModified); // f.TimeCreated + fe.IsFolder = true; + files.Add(fe); + } + foreach (var f in remoteFolder.Files.Where(ff => ff.Exists)) + { + FileEntry fe = new FileEntry(f.Name, f.Length, f.TimeLastModified, f.TimeLastModified); // f.TimeCreated + fe.IsFolder = false; + files.Add(fe); + } + return files; + } + finally + {} + } + + public void Get(string remotename, string filename) + { + using (System.IO.FileStream fs = System.IO.File.Create(filename)) + Get(remotename, fs); + } + + public void Get(string remotename, System.IO.Stream stream) + { + SP.ClientContext ctx = getSpClientContext(); + try + { + string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + SP.File remoteFile = ctx.Web.GetFileByServerRelativeUrl(fileurl); + ctx.Load(remoteFile, f => f.Exists); + wrappedExecuteQueryOnConext(ctx, fileurl, false); + if (!remoteFile.Exists) + throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(fileurl, m_spWebUrl)); + + using (var fileInfo = SP.File.OpenBinaryDirect(ctx, fileurl)) + using (var s = fileInfo.Stream) + Utility.Utility.CopyStream(s, stream, true, m_copybuffer); + } + finally + { } + } + + public void Put(string remotename, string filename) + { + using (System.IO.FileStream fs = System.IO.File.OpenRead(filename)) + Put(remotename, fs); + } + + public void Put(string remotename, System.IO.Stream stream) + { + SP.ClientContext ctx = getSpClientContext(); + try + { + SP.Folder remoteFolder = ctx.Web.GetFolderByServerRelativeUrl(m_serverRelPath); + ctx.Load(remoteFolder, f => f.Exists); + wrappedExecuteQueryOnConext(ctx, m_serverRelPath, true); + if (!remoteFolder.Exists) + throw new Interface.FolderMissingException(Strings.SharePoint.MissingElementError(m_serverRelPath, m_spWebUrl)); + // or use: remoteFolder.ServerRelativeUrl + "/" + remotename; + string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + SP.File.SaveBinaryDirect(ctx, fileurl, stream, true); + } + finally + { } + } + + public void CreateFolder() + { + + SP.ClientContext ctx = getSpClientContext(); + try + { + int pathLengthToWeb = new Utility.Uri(m_spWebUrl).Path.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries).Length; + + string[] folderNames = m_serverRelPath.Substring(0, m_serverRelPath.Length - 1).Split('/'); + folderNames = Array.ConvertAll(folderNames, fold => System.Net.WebUtility.UrlDecode(fold)); + var spfolders = new SP.Folder[folderNames.Length]; + string folderRelPath = ""; + int fi = 0; + for (; fi < folderNames.Length; fi++) + { + folderRelPath += System.Web.HttpUtility.UrlPathEncode(folderNames[fi]) + "/"; + if (fi < pathLengthToWeb) continue; + var folder = ctx.Web.GetFolderByServerRelativeUrl(folderRelPath); + spfolders[fi] = folder; + ctx.Load(folder, f => f.Exists); + try { wrappedExecuteQueryOnConext(ctx, folderRelPath, true); } + catch (FolderMissingException) + { break; } + if (!folder.Exists) break; + } + + for (; fi < folderNames.Length; fi++) + spfolders[fi] = spfolders[fi - 1].Folders.Add(folderNames[fi]); + ctx.Load(spfolders[folderNames.Length - 1], f => f.Exists); + + wrappedExecuteQueryOnConext(ctx, m_serverRelPath, true); + + if (!spfolders[folderNames.Length - 1].Exists) + throw new Interface.FolderMissingException(Strings.SharePoint.MissingElementError(m_serverRelPath, m_spWebUrl)); + + } + finally + { } + + } + + public void Delete(string remotename) + { + SP.ClientContext ctx = getSpClientContext(); + try + { + string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + SP.File remoteFile = ctx.Web.GetFileByServerRelativeUrl(fileurl); + ctx.Load(remoteFile); + wrappedExecuteQueryOnConext(ctx, fileurl, false); + if (!remoteFile.Exists) + throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(fileurl, m_spWebUrl)); + + // allow optionally?: remoteFile.Recycle(); + remoteFile.DeleteObject(); + // not necessary: remoteFile.Update(); + ctx.ExecuteQuery(); + + } + finally + { } + } + + #endregion + + + #region IDisposable Members + + public void Dispose() + { + try + { + if (m_spContext != null) + m_spContext.Dispose(); + } + catch { } + m_userInfo = null; + } + + #endregion + + } + +} + diff --git a/Duplicati/Library/Backend/SharePoint/Strings.cs b/Duplicati/Library/Backend/SharePoint/Strings.cs new file mode 100644 index 000000000..154277d3e --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/Strings.cs @@ -0,0 +1,21 @@ +using Duplicati.Library.Localization.Short; +namespace Duplicati.Library.Backend.Strings +{ + internal static class SharePoint + { + public static string Description { get { return LC.L(@"Supports connections to a SharePoint server which includes OneDrive for Business. Allowed formats (here to OneDrive for Business) are ""sp://tennant.sharepoint.com/personal/username_domain/Documents/subfolder"" or ""sp://username:password@tennant.sharepoint.com/personal/username_domain/Documents/folder"". For other SharePoint websites, use a double slash '//' in the path to denote the web from the documents folder."); } } + + public static string DescriptionAuthPasswordLong { get { return LC.L(@"The password used to connect to the server. This may also be supplied as the environment variable ""AUTH_PASSWORD""."); } } + public static string DescriptionAuthPasswordShort { get { return LC.L(@"Supplies the password used to connect to the server"); } } + public static string DescriptionAuthUsernameLong { get { return LC.L(@"The username used to connect to the server. This may also be supplied as the environment variable ""AUTH_USERNAME""."); } } + public static string DescriptionAuthUsernameShort { get { return LC.L(@"Supplies the username used to connect to the server"); } } + public static string DescriptionIntegratedAuthenticationLong { get { return LC.L(@"If the server and client both supports integrated authentication, this option enables that authentication method. This is likely only available with windows servers and clients."); } } + public static string DescriptionIntegratedAuthenticationShort { get { return LC.L(@"Use windows integrated authentication to connect to the server"); } } + + public static string DisplayName { get { return LC.L(@"SharePoint"); } } + public static string MissingElementError(string serverrelpath, string hosturl) { return LC.L(@"Element with path '{0}' not found on host '{1}'.", serverrelpath, hosturl); } + + public static string NoSharePointWebFoundError(string url) { return LC.L(@"No SharePoint web could be logged in to at path '{0}'. Maybe wrong credentials. Or try using '//' in path to separate web from folder path.", url); } + public static string WebTitleReadFailedError { get { return LC.L(@"Everything seemed alright, but then web title could not be read to test connection. Something's wrong."); } } + } +} diff --git a/Duplicati/Library/Backend/SharePoint/app.config b/Duplicati/Library/Backend/SharePoint/app.config new file mode 100644 index 000000000..a80813afe --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/app.config @@ -0,0 +1,3 @@ + + + diff --git a/Duplicati/Library/Backend/SharePoint/packages.config b/Duplicati/Library/Backend/SharePoint/packages.config new file mode 100644 index 000000000..150e491af --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Duplicati/License/Duplicati.License.csproj b/Duplicati/License/Duplicati.License.csproj index 432975578..ed3f01161 100644 --- a/Duplicati/License/Duplicati.License.csproj +++ b/Duplicati/License/Duplicati.License.csproj @@ -195,6 +195,22 @@ licenses\WindowsAzure\licensedata.json PreserveNewest + + licenses\\SharePointCSOM\download.txt + PreserveNewest + + + licenses\\SharePointCSOM\license.txt + PreserveNewest + + + licenses\\SharePointCSOM\MicrosoftSharePointClientComponentsEULA.rtf + PreserveNewest + + + licenses\\SharePointCSOM\licensedata.json + PreserveNewest + PreserveNewest diff --git a/Duplicati/Server/Duplicati.Server.csproj b/Duplicati/Server/Duplicati.Server.csproj index 1c4521278..9a69c0d11 100644 --- a/Duplicati/Server/Duplicati.Server.csproj +++ b/Duplicati/Server/Duplicati.Server.csproj @@ -160,6 +160,10 @@ {C03F6DFD-805A-4BE0-9338-64870ADDB4A2} Duplicati.Library.Backend.S3 + + {59c8bbc5-6e42-46fb-ab3e-6c183a82459a} + Duplicati.Library.Backend.SharePoint + {FF2BF37C-E502-4C98-BEA0-701671DDFA08} Duplicati.Library.Backend.SSHv2 @@ -275,7 +279,6 @@ - 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

JD5hK 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 literal 0 HcmV?d00001 diff --git a/thirdparty/SharePoint.CSOM/MicrosoftSharePointClientComponentsEULA.rtf b/thirdparty/SharePoint.CSOM/MicrosoftSharePointClientComponentsEULA.rtf new file mode 100644 index 000000000..d61bc554c --- /dev/null +++ b/thirdparty/SharePoint.CSOM/MicrosoftSharePointClientComponentsEULA.rtf @@ -0,0 +1,500 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\froman\fprq2\fcharset0 Tahoma;}{\f6\froman\fprq2\fcharset0 Trebuchet MS;}{\f7\froman\fprq2\fcharset0 Courier New;}{\f8\froman\fprq2\fcharset0 Arial;}{\f9\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f10\fnil\fprq2\fcharset0 MS Mincho;}{\f11\fnil\fprq2\fcharset0 SimSun;}{\f12\fnil\fprq2\fcharset0 Mangal;}{\f13\fnil\fprq0\fcharset128 Mangal;}{\f14\fnil\fprq2\fcharset0 Tahoma;}{\f15\fnil\fprq2\fcharset0 Times New Roman;}{\f16\fnil\fprq2\fcharset0 Trebuchet MS;}{\f17\fnil\fprq2\fcharset0 Arial;}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red128\green128\blue128;\red128\green0\blue128;\red0\green255\blue0;\red0\green128\blue0;\red0\green128\blue128;\red255\green0\blue0;\red128\green0\blue0;\red0\green0\blue1;} +{\stylesheet{\s0\snext0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033 Normal;} +{\s1\sbasedon0\snext1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 \u220\'dcberschrift 1;} +{\s2\sbasedon0\snext2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 \u220\'dcberschrift 2;} +{\s3\sbasedon0\snext3\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 3;} +{\s4\sbasedon0\snext4\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 4;} +{\s5\sbasedon0\snext5\ql\widctlpar\tx3584\tx3947\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 5;} +{\s6\sbasedon0\snext6\ql\widctlpar\tx4301\faauto\li2149\ri0\lin2149\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 6;} +{\s7\sbasedon0\snext7\ql\widctlpar\tx5015\faauto\li2506\ri0\lin2506\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 7;} +{\s8\sbasedon0\snext8\ql\widctlpar\tx5729\faauto\li2863\ri0\lin2863\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 8;} +{\s9\sbasedon0\snext9\ql\widctlpar\tx6444\faauto\li3221\ri0\lin3221\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 \u220\'dcberschrift 9;} +{\*\cs15\snext15 Default Paragraph Font;} +{\*\cs16\sbasedon15\snext16\b\dbch\af14\afs19\ab\loch\f5\fs19 Heading 1 Char;} +{\*\cs17\sbasedon15\snext17\b\dbch\af14\afs19\ab\loch\f5\fs19 Heading 2 Char;} +{\*\cs18\sbasedon15\snext18\dbch\af14\afs19\loch\f5\fs19 Heading 3 Char;} +{\*\cs19\sbasedon15\snext19\dbch\af14\afs19\loch\f5\fs19 Heading 4 Char;} +{\*\cs20\sbasedon15\snext20\dbch\af14\afs19\loch\f5\fs19 Heading 5 Char;} +{\*\cs21\sbasedon15\snext21\dbch\af14\afs19\loch\f5\fs19 Heading 6 Char;} +{\*\cs22\sbasedon15\snext22\dbch\af14\afs19\loch\f5\fs19 Heading 7 Char;} +{\*\cs23\sbasedon15\snext23\dbch\af14\afs19\loch\f5\fs19 Heading 8 Char;} +{\*\cs24\sbasedon15\snext24\dbch\af14\afs19\loch\f5\fs19 Heading 9 Char;} +{\*\cs25\sbasedon15\snext25\dbch\af14\afs19\loch\f5\fs19 Body Text Indent Char;} +{\*\cs26\sbasedon15\snext26\langfe1033\dbch\af14\loch\f5\lang1033 Body 2 Char;} +{\*\cs27\sbasedon15\snext27\langfe1033\dbch\af14\loch\f5\lang1033 Body 3 Char;} +{\*\cs28\sbasedon15\snext28\langfe1033\dbch\af14\loch\f5\lang1033 Body 4 Char;} +{\*\cs29\sbasedon15\snext29\langfe1033\dbch\af14\loch\f5\lang1033 Body 1 Char;} +{\*\cs30\sbasedon15\snext30\dbch\af14\afs20\loch\f5\fs20 Footnote Text Char;} +{\*\cs31\sbasedon15\snext31\super\dbch\af15 footnote reference;} +{\*\cs32\sbasedon15\snext32\dbch\af14\afs20\loch\f5\fs20 Endnote Text Char;} +{\*\cs33\sbasedon15\snext33\super\dbch\af15 endnote reference;} +{\*\cs34\sbasedon15\snext34\dbch\af14\afs20\loch\f5\fs20 Comment Text Char;} +{\*\cs35\sbasedon15\snext35\dbch\af15\afs16\fs16 annotation reference;} +{\*\cs36\sbasedon15\snext36\cf2\ul\ulc0\dbch\af15 Hyperlink,Char Char7;} +{\*\cs37\sbasedon15\snext37\dbch\af14\afs16\loch\f5\fs16 Balloon Text Char;} +{\*\cs38\sbasedon15\snext38\b\langfe1033\dbch\af16\ab\loch\f6\lang1033 Heading 2 Char1;} +{\*\cs39\sbasedon15\snext39\dbch\af15 page number;} +{\*\cs40\sbasedon15\snext40\dbch\af14\afs19\loch\f5\fs19 Header Char;} +{\*\cs41\sbasedon15\snext41\dbch\af14\afs19\loch\f5\fs19 Footer Char;} +{\*\cs42\sbasedon34\snext42\b\dbch\af14\afs20\ab\loch\f5\fs20 Comment Subject Char;} +{\*\cs43\sbasedon15\snext43\dbch\af14\afs19\loch\f5\fs19 Bullet 3 Char1;} +{\*\cs44\sbasedon15\snext44\dbch\af10\langfe1033\dbch\af14\afs19\loch\f5\fs19\lang1033 Char Char;} +{\*\cs45\sbasedon15\snext45\b\langfe1033\dbch\af14\afs24\alang1025\loch\f6\fs24\lang1033 Char Char1;} +{\*\cs46\snext46\langfe1031\loch\f5\lang1033 Body 3 Char Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car Car;} +{\*\cs47\snext47\cf3\langfe1031\loch\f7\lang1031 tw4winExternal;} +{\*\cs48\snext48\cf4\sub\v\loch\f7\fs24 tw4winMark;} +{\*\cs49\snext49\b\loch\f5 Preamble Char;} +{\*\cs50\snext50\cf5\loch\f7\fs40 tw4winError;} +{\*\cs51\snext51\cf2 tw4winTerm;} +{\*\cs52\snext52\cf6\langfe1031\loch\f7\lang1031 tw4winPopup;} +{\*\cs53\snext53\cf7\langfe1031\loch\f7\lang1031 tw4winJump;} +{\*\cs54\snext54\cf8\langfe1031\loch\f7\lang1031 tw4winInternal;} +{\*\cs55\snext55\cf9\langfe1031\loch\f7\lang1031 DO_NOT_TRANSLATE;} +{\*\cs56\sbasedon15\snext56\dbch\af14\afs19\loch\f5\fs19 Body Text 2 Char;} +{\*\cs57\sbasedon15\snext57\b\dbch\af14\afs19\ab\loch\f5\fs19 Heading 3 Bold Char;} +{\*\cs58\sbasedon57\snext58\b0\dbch\af14\afs19\ab0\loch\f5\fs19 Style Heading 3 Bold + (Asian) Times New Roman 9.5 pt Char;} +{\*\cs59\sbasedon15\snext59\b\dbch\af14\afs19\ab\loch\f5\fs19 Body 0 Bold Char;} +{\*\cs60\sbasedon15\snext60\super\b\langfe2052\dbch\af14\afs20\ab\loch\f5\fs20\lang1026 LIMPA_T4WINEXTERNAL Char;} +{\*\cs61\snext61\dbch\af16 ListLabel 1;} +{\*\cs62\snext62\dbch\af14 ListLabel 2;} +{\*\cs63\snext63\dbch\af15 ListLabel 3;} +{\s64\sbasedon0\snext65\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb240\sa120\keepn\ltrpar\dbch\af9\langfe1033\dbch\af12\afs28\alang1025\loch\f4\fs28\lang1033 \u220\'dcberschrift;} +{\s65\sbasedon0\snext65\sl288\slmult1\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa140\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Textk\u246\'f6rper;} +{\s66\sbasedon65\snext66\sl288\slmult1\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa140\ltrpar\dbch\af10\langfe1033\dbch\af13\afs19\alang1025\loch\f5\fs19\lang1033 Liste;} +{\s67\sbasedon0\snext67\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\noline\ltrpar\i\dbch\af10\langfe1033\dbch\af13\afs24\alang1025\ai\loch\f5\fs24\lang1033 Beschriftung;} +{\s68\sbasedon0\snext68\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\noline\ltrpar\dbch\af10\langfe1033\dbch\af13\afs19\alang1025\loch\f5\fs19\lang1033 Verzeichnis;} +{\s69\sbasedon0\snext69\ql\widctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 1;} +{\s70\sbasedon0\snext70\ql\widctlpar\faauto\li720\ri0\lin720\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 2;} +{\s71\sbasedon0\snext71\ql\widctlpar\faauto\li1077\ri0\lin1077\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 3;} +{\s72\sbasedon0\snext72\ql\widctlpar\faauto\li1435\ri0\lin1435\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 4;} +{\s73\sbasedon0\snext73\ql\widctlpar\faauto\li1803\ri0\lin1803\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 5;} +{\s74\sbasedon0\snext74\ql\widctlpar\faauto\li2160\ri0\lin2160\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 6;} +{\s75\sbasedon0\snext75\ql\widctlpar\faauto\li2506\ri0\lin2506\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 7;} +{\s76\sbasedon0\snext76\ql\widctlpar\faauto\li2863\ri0\lin2863\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 8;} +{\s77\sbasedon0\snext77\ql\widctlpar\faauto\li3221\ri0\lin3221\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 9;} +{\s78\sbasedon0\snext78\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 1;} +{\s79\sbasedon0\snext79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 2;} +{\s80\sbasedon0\snext80\ql\widctlpar\tx2157\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 3;} +{\s81\sbasedon0\snext81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 4;} +{\s82\sbasedon0\snext82\ql\widctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 5;} +{\s83\sbasedon0\snext83\ql\widctlpar\tx4301\faauto\li2149\ri0\lin2149\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 6;} +{\s84\sbasedon0\snext84\ql\widctlpar\tx5015\faauto\li2506\ri0\lin2506\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 7;} +{\s85\sbasedon0\snext85\ql\widctlpar\tx5729\faauto\li2863\ri0\lin2863\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 8;} +{\s86\sbasedon77\snext86\ql\widctlpar\tx6444\faauto\li3221\ri0\lin3221\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 9;} +{\s87\sbasedon0\snext87\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs28\alang1025\ab\loch\f5\fs28\lang1033 Heading EULA;} +{\s88\sbasedon0\snext88\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrb\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs28\alang1025\ab\loch\f5\fs28\lang1033 Heading Software Title;} +{\s89\sbasedon0\snext89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 Preamble;} +{\s90\sbasedon0\snext90\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrb\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 Preamble Border;} +{\s91\sbasedon0\snext91\qc\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 Heading Warranty;} +{\s92\sbasedon0\snext92\ql\widctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Heading 1 Warranty;} +{\s93\sbasedon0\snext93\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-360\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Heading 2 Warranty;} +{\s94\sbasedon3\snext94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 Heading 3 Bold;} +{\s95\sbasedon81\snext95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 4 Underline;} +{\s96\sbasedon80\snext96\ql\widctlpar\tx1080\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 3 Underline;} +{\s97\sbasedon70\snext97\ql\widctlpar\faauto\li720\ri0\lin720\rin0\fi0\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 2 Underline;} +{\s98\sbasedon71\snext98\ql\widctlpar\faauto\li1077\ri0\lin1077\rin0\fi0\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body 3 Underline;} +{\s99\sbasedon0\snext99\sl480\slmult1\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Textk\u246\'f6rper Einr\u252\'fcckung;} +{\s100\sbasedon81\snext100\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\i\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ai\loch\f5\fs19\lang1033 Bullet 4 Italics;} +{\s101\sbasedon89\snext101\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrt\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 Preamble Border Above;} +{\s102\sbasedon0\snext102\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 footnote text;} +{\s103\sbasedon0\snext103\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 endnote text;} +{\s104\sbasedon0\snext104\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 annotation text;} +{\s105\sbasedon0\snext105\sl-240\slmult0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa160\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Char;} +{\s106\sbasedon0\snext106\sl-240\slmult0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa160\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Char Char Char Char;} +{\s107\sbasedon0\snext107\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs16\alang1025\loch\f5\fs16\lang1033 Balloon Text;} +{\s108\sbasedon0\snext108\sl-240\slmult0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa160\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Char Char Char Char1;} +{\s109\snext109\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\cf0\kerning1\loch\f5\fs19\lang1033 Body 0 Bold;} +{\s110\snext110\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033 Body 0;} +{\s111\sbasedon0\snext111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Kopfzeile;} +{\s112\sbasedon0\snext112\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Fu\u223\'dfzeile;} +{\s113\sbasedon104\snext113\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs20\alang1025\ab\loch\f5\fs20\lang1033 annotation subject;} +{\s114\sbasedon80\snext114\ql\widctlpar\tx2157\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 3 Underlined;} +{\s115\snext115\sl-240\slmult0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af16\afs20\alang1025\cf0\kerning1\loch\f6\fs18\lang1033 AdditionalSoftware;} +{\s116\sbasedon81\snext116\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Bullet 4 Underlined;} +{\s117\sbasedon0\snext117\ql\widctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Heading French Warranty;} +{\s118\sbasedon0\snext118\sl480\slmult1\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033 Body Text 2;} +{\s119\sbasedon94\snext119\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033 Style Heading 3 Bold + (Asian) Times New Roman 9.5 pt;} +{\s120\sbasedon0\snext120\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\super\b\dbch\af10\langfe2052\dbch\af14\afs20\alang1025\ab\loch\f5\fs20\lang1026 LIMPA_T4WINEXTERNAL;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li720} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li1080} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li1440} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li1800} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li2160} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li2520} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li2880} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li3240} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li3600}\listid1} +{\list\listtemplateid2 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li720} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li1080} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li1440} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li1800} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li2160} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li2520} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li2880} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li3240} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li3600}\listid2} +{\list\listtemplateid3 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li720} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li1080} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li1440} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li1800} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li2160} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li2520} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61623 ?;}{\levelnumbers;}\f1\fi-360\li2880} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u111 ?;}{\levelnumbers;}\f18\fi-360\li3240} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u61607 ?;}{\levelnumbers;}\f19\fi-360\li3600}\listid3} +{\list\listtemplateid4 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li720} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li1080} +{\listlevel\levelnfc2\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li1440} +{\listlevel\levelnfc3\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li1800} +{\listlevel\levelnfc1\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2160} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2520} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2880} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3240} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3600}\listid4} +{\list\listtemplateid5 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li720} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li1080} +{\listlevel\levelnfc2\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li1440} +{\listlevel\levelnfc3\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li1800} +{\listlevel\levelnfc1\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2160} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2520} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2880} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3240} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3600}\listid5} +{\list\listtemplateid6 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\'00;}{\levelnumbers\'01;}\dbch\af14\fi-360\li720} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li1080} +{\listlevel\levelnfc2\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li1440} +{\listlevel\levelnfc3\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li1800} +{\listlevel\levelnfc1\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2160} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2520} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2880} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3240} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3600}\listid6} +{\list\listtemplateid7 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\'00;}{\levelnumbers\'01;}\dbch\af16\fi-360\li720} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li1080} +{\listlevel\levelnfc2\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\dbch\af14\fi-360\li1440} +{\listlevel\levelnfc3\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li1800} +{\listlevel\levelnfc1\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2160} +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2520} +{\listlevel\levelnfc4\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\dbch\af16\fi-360\li2880} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3240} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'01.;}{\levelnumbers;}\dbch\af16\fi-360\li3600}\listid7} +{\list\listtemplateid8 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid8} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}}{\info{\title English}{\creatim\yr2013\mo5\dy7\hr11\min14}{\revtim\yr2013\mo5\dy7\hr11\min14}{\printim\yr0\mo0\dy0\hr0\min0}{\comment LibreOffice}{\vern67306754}}\deftab720\deftab720\deftab720\deftab720 +\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn720\margrsxn720\margtsxn720\headery0\margbsxn720{\header\pard\plain \s111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par }\pgdscnxt0 Standard;} +{\pgdsc1\pgdscuse451\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1417\headery1134\margbsxn1134\titlepg{\headerf\pard\plain \s111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par }\pgdscnxt0 Erste Seite;} +{\pgdsc2\pgdscuse451\pgndec\pgwsxn12240\pghsxn15840\marglsxn720\margrsxn720\margtsxn720\headery0\margbsxn720{\header\pard\plain \s111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par }\pgdscnxt2 Converted1;}} +\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl720\margr720\margt0\margb720\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn720\margrsxn720\margtsxn720\headery0\margbsxn720{\header\pard\plain \s111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par }\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s87\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs28\alang1025\ab\loch\f5\fs28\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +MICROSOFT SOFTWARE LICENSE TERMS} +\par \pard\plain \s88\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrb\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs28\alang1025\ab\loch\f5\fs28\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrb\brdrs\brdrw10\brdrcf10\brsp20{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +MICROSOFT SHAREPOINT CLIENT COMPONENTS } +\par \pard\plain \s89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +updates,} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +supplements,} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +Internet-based services, and} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +support services} +\par \pard\plain \s89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +for this software, unless other terms accompany those items. If so, those terms apply.} +\par \pard\plain \s89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +By using the software, you accept these terms. If you do not accept them, do not use the software.} +\par \pard\plain \s101\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrt\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrt\brdrs\brdrw10\brdrcf10\brsp20{\b\dbch\af10\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +If you comply with these license terms, you have the perpetual rights below.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 1.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +INSTALLATION AND USE RIGHTS. }{\cs26\langfe1033\dbch\af14\loch\f5\lang1033\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +One user may install and use any number of copies of the software on your devices}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + }{\cs26\langfe1033\dbch\af14\loch\f5\lang1033\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +to design, develop and test your programs.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 2.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.} +\par \pard\plain \s2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 a.\tab}\ilvl1\ls5 \li1800\ri0\lin1800\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +Distributable Code.}{\cs26\langfe1033\dbch\af14\loch\f5\lang1033\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + The software contains code that you are permitted to distribute in programs you develop if you comply with the terms below.} +\par \pard\plain \s94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 i.\tab}\ilvl2\ls4 \li2517\ri0\lin2517\rin0\fi-360\ql\nowidctlpar\tx2157\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +Right to Use and Distribute.}{\cs27\langfe1033\dbch\af14\loch\f5\lang1033\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 + The code and text files listed below are \u8220\'93Distributable Code.\u8221\'94} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ul\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +Third Party Distribution}{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.} +\par \pard\plain \s94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 ii.\tab}\ilvl2\ls4 \li2517\ri0\lin2517\rin0\fi-360\ql\nowidctlpar\tx2154\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +Distribution Requirements.}{\cs27\langfe1033\dbch\af14\loch\f5\lang1033\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 + For any Distributable Code you distribute, you must} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +add significant primary functionality to it in your programs;} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +for any Distributable Code having a filename extension of .lib, distribute only the results of running such Distributable Code through a linker with your program;} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +distribute Distributable Code included in a setup program only as part of that setup program without modification;} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +require distributors and external end users to agree to terms that protect it at least as much as this agreement; } +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +display your valid copyright notice on your programs; and} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +indemnify, defend, and hold harmless Microsoft from any claims, including attorneys\u8217\'92 fees, related to the distribution or use of your programs.} +\par \pard\plain \s94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 iii.\tab}\ilvl2\ls4 \li2517\ri0\lin2517\rin0\fi-360\ql\nowidctlpar\tx2154\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +Distribution Restrictions.}{\cs27\langfe1033\dbch\af14\loch\f5\lang1033\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 + You may not} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +alter any copyright, trademark or patent notice in the Distributable Code;} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +use Microsoft\u8217\'92s trademarks in your programs\u8217\'92 names or in a way that suggests your programs come from or are endorsed by Microsoft;} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +distribute Distributable Code to run on a platform other than the Windows platform;} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +include Distributable Code in malicious, deceptive or unlawful programs; or} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that} +\par \pard\plain \s82\ql\widctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls3 \li2512\ri0\lin2512\rin0\fi-360\ql\nowidctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +the code be disclosed or distributed in source code form; or} +\par \pard\plain \s82\ql\widctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls3 \li2512\ri0\lin2512\rin0\fi-360\ql\nowidctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +others have the right to modify it.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 3.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +SCOPE OF LICENSE.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +work around any technical limitations in the software;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +publish the software for others to copy;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +rent, lease or lend the software; or} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +use the software for commercial software hosting services.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 4.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +BACKUP COPY.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + You may make one backup copy of the software. You may use it only to reinstall the software.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 5.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +DOCUMENTATION.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 6.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +TRANSFER TO A THIRD PARTY.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + The first user of the software may transfer it and this agreement directly to a third party. Before the transfer, that party must agree that this agreement applies to the transfer and use of the software. The first user must uninstall the software before transferring it separately from the device. The first user may not retain any copies.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 7.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +EXPORT RESTRICTIONS.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see }{\cs36\cf2\ul\ulc0\dbch\af15\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +www.microsoft.com/exporting}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 8.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +SUPPORT SERVICES. }{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +Because this software is \u8220\'93as is,\u8221\'94 we may not provide support services for it.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 9.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +ENTIRE AGREEMENT.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 10.\tab}\ilvl0\ls5 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +APPLICABLE LAW.} +\par \pard\plain \s2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 a.\tab}\ilvl1\ls5 \li1800\ri0\lin1800\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +United States.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.} +\par \pard\plain \s2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 b.\tab}\ilvl1\ls5 \li1800\ri0\lin1800\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +Outside the United States.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + If you acquired the software in any other country, the laws of that country apply.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 11.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +LEGAL EFFECT.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 12.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +DISCLAIMER OF WARRANTY. The software is licensed \u8220\'93as-is.\u8221\'94 You bear the risk of using it. Microsoft gives no express warranties, guarantees or conditions. You may have additional consumer rights or statutory guarantees under your local laws which this agreement cannot change. To the extent permitted under your local laws, Microsoft excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement.} +\par \pard\plain \s69\ql\widctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +FOR AUSTRALIA \u8211\'96 You have statutory guarantees under the Australian Consumer Law and nothing in these terms is intended to affect those rights.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 13.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES}{\b\dbch\af10\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +. You can recover from Microsoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.} +\par \pard\plain \s69\ql\widctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +This limitation applies to} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.} +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi0\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1033 +It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.} +\par \pard\plain \s109\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\cf0\kerning1\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +Please note: As this software is distributed in Quebec, Canada, these license terms are provided below in French.} +\par \ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\pard\plain \s111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Remarque\~: Ce logiciel \u233\'e9tant distribu\u233\'e9 au Qu\u233\'e9bec, Canada, les termes de cette licence sont fournis ci-dessous en fran\u231\'e7ais.} +\par \sect\sectd\sectunlocked1\pgwsxn12240\pghsxn15840\marglsxn720\margrsxn720\margtsxn720\headery0\margbsxn720\pgndec\sbkpage\headery0{\header\pard\plain \s111\ql\widctlpar\tqc\tx4320\tqr\tx8640\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\rtlch \ltrch\loch\fs19\lang1033 + +\par }\pard\plain \s109\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\cf0\kerning1\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +TERMES DU CONTRAT DE LICENCE D\u8217\'92UN LOGICIEL MICROSOFT} +\par \pard\plain \s88\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrb\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs28\alang1025\ab\loch\f5\fs28\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrb\brdrs\brdrw10\brdrcf10\brsp20{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +MICROSOFT SHAREPOINT CLIENT COMPONENTS } +\par \pard\plain \s89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 +Les pr\u233\'e9sents termes ont valeur de contrat entre Microsoft Corporation (ou en fonction du lieu o\u249\'f9 vous vivez, l\u8217\'92un de ses affili\u233\'e9s) et vous. Lisez-les attentivement. Ils portent sur le logiciel nomm\u233\'e9 ci-dessus, y compris le support sur lequel vous l\u8217\'92avez re\u231\'e7u le cas \u233\'e9ch\u233\'e9ant. Ce contrat porte \u233\'e9galement sur les produits Microsoft suivants\~:} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +les mises \u224\'e0 jour,} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +les suppl\u233\'e9ments,} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +les services Internet et} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\tx720\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +les services d\u8217\'92assistance technique} +\par \pard\plain \s89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 +de ce logiciel \u224\'e0 moins que d\u8217\'92autres termes n\u8217\'92accompagnent ces produits, auquel cas, ces derniers pr\u233\'e9valent.} +\par \pard\plain \s89\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +En utilisant le logiciel, vous acceptez ces termes. Si vous ne les acceptez pas, n\u8217\'92utilisez pas le logiciel.} +\par \pard\plain \s101\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrt\brdrs\brdrw10\brdrcf10\brsp20\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\brdrt\brdrs\brdrw10\brdrcf10\brsp20{\b\dbch\af10\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Si vous respectez les pr\u233\'e9sentes conditions de licence, vous disposez des droits suivants pour la dur\u233\'e9e des droits de propri\u233\'e9t\u233\'e9 intellectuelle.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 1\tab}\ilvl0\ls6 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +INSTALLATION ET DROITS D\u8217\'92UTILISATION. }{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 +Un utilisateur peut installer et utiliser un nombre quelconque de copies du logiciel sur vos dispositifs pour concevoir, d\u233\'e9velopper et tester vos programmes.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 14.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +CONDITIONS DE LICENCE ET/OU DROITS D\u8217\'92UTILISATION SUPPLEMENTAIRES.} +\par \pard\plain \s2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 a.\tab}\ilvl1\ls5 \li1800\ri0\lin1800\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Code distribuable.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Le logiciel contient du code que vous \u234\'eates autoris\u233\'e9 \u224\'e0 distribuer dans des programmes d\u233\'e9velopp\u233\'e9s conform\u233\'e9ment aux conditions ci-apr\u232\'e8s.} +\par \pard\plain \s94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 i.\tab}\ilvl2\ls7 \li2517\ri0\lin2517\rin0\fi-360\ql\nowidctlpar\tx2157\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120{\cs58\b0\dbch\af14\afs19\ab0\loch\f5\fs19\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Droit d\u8217\'92utilisation et de distribution. Le code et les fichiers texte r\u233\'e9pertori\u233\'e9s ci-apr\u232\'e8s constituent le \u171\'ab\~Code distribuable\~\u187\'bb.} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ul\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +Fichiers REDIST.TXT}{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +. Vous \u234\'eates autoris\u233\'e9 \u224\'e0 copier et \u224\'e0 distribuer la version en code objet du code r\u233\'e9pertori\u233\'e9 dans les fichiers REDIST.TXT.} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ul\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +Microsoft Merge Modules}{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +. Vous \u234\'eates autoris\u233\'e9 \u224\'e0 copier et distribuer le r\u233\'e9sultat non modifi\u233\'e9 de Microsoft Merge Modules.} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ul\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +Distribution par des tierces parties}{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +. Vous pouvez autoriser les distributeurs de vos programmes \u224\'e0 copier et \u224\'e0 distribuer le code distribuable en tant que partie int\u233\'e9grante de ces programmes.} +\par \pard\plain \s94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 iv.\tab}\ilvl2\ls4 \li2517\ri0\lin2517\rin0\fi-360\ql\nowidctlpar\tx2154\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Conditions de Distribution. }{\cs27\langfe1033\dbch\af14\loch\f5\lang1033\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Pour tout Code Distribuable que vous distribuez, vous devez\~:} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +y ajouter des fonctionnalit\u233\'e9s importantes et principales au sein de vos programmes,} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +pour tout Code distribuable dont l\u8217\'92extension de nom de fichier est .lib, distribuer seulement les r\u233\'e9sultats de l\u8217\'92ex\u233\'e9cution de ce Code distribuable \u224\'e0 l\u8217\'92aide d\u8217\'92un \u233\'e9diteur de liens avec votre programme\~;} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +distribuer le Code distribuable inclus dans un programme d\u8217\'92installation seulement en tant que partie int\u233\'e9grante de ce programme sans modification\~;} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +exiger des distributeurs et des utilisateurs finaux externes qu\u8217\'92ils acceptent les termes qui prot\u232\'e8gent le Code Dstribuable de mani\u232\'e8re au moins \u233\'e9quivalente \u224\'e0 ceux du pr\u233\'e9sent contrat,} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +afficher votre propre mention de droits d\u8217\'92auteur valable dans vos programmes\~; et} +\par \pard\plain \s95\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\ul\ulc0\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\ulnone\ulc0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +indemniser, d\u233\'e9fendre et garantir Microsoft contre toute r\u233\'e9clamation, y compris pour les honoraires d\u8217\'92avocats, qui r\u233\'e9sulterait de la distribution ou l\u8217\'92utilisation de vos programmes.} +\par \pard\plain \s94\ql\widctlpar\tx2154\tx2517\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 v.\tab}\ilvl2\ls4 \li2517\ri0\lin2517\rin0\fi-360\ql\nowidctlpar\tx2154\faauto\li1077\ri0\lin1077\rin0\fi-357\sb120\sa120{\cs58\b0\dbch\af14\afs19\ab0\loch\f5\fs19\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Restrictions de distribution. Vous n\u8217\'92\u234\'eates pas autoris\u233\'e9 \u224\'e0\~:} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +modifier toute mention de droits d\u8217\'92auteur, de marques ou de droits de propri\u233\'e9t\u233\'e9 industrielle pouvant figurer dans le code distribuable,} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +utiliser les marques de Microsoft dans les noms de vos programmes ou d\u8217\'92une fa\u231\'e7on qui sugg\u232\'e8re que vos programmes sont fournis par Microsoft ou sous la responsabilit\u233\'e9 de Microsoft,} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +distribuer le Code distribuable en vue de son ex\u233\'e9cution sur une plate-forme autre que la plate-forme\~Windows,} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +inclure le Code distribuable dans des programmes malveillants, trompeurs ou interdits par la loi, ou} +\par \pard\plain \s81\ql\widctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls2 \li2155\ri0\lin2155\rin0\fi-360\ql\nowidctlpar\tx2872\faauto\li1435\ri0\lin1435\rin0\fi-358\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +modifier ou distribuer le code source de code distribuable de mani\u232\'e8re \u224\'e0 ce qu\u8217\'92il fasse l\u8217\'92objet, en partie ou dans son int\u233\'e9gralit\u233\'e9, d\u8217\'92une Licence Exclue. Une Licence Exclue implique comme condition d\u8217\'92utilisation, de modification ou de distribution, que\~:} +\par \pard\plain \s82\ql\widctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls3 \li2512\ri0\lin2512\rin0\fi-360\ql\nowidctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +le code soit d\u233\'e9voil\u233\'e9 ou distribu\u233\'e9 dans sa forme de code source, ou} +\par \pard\plain \s82\ql\widctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls3 \li2512\ri0\lin2512\rin0\fi-360\ql\nowidctlpar\tx3587\faauto\li1792\ri0\lin1792\rin0\fi-357\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +d\u8217\'92autres aient le droit de le modifier.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 15.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +PORTEE DE LA LICENCE.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Le logiciel est conc\u233\'e9d\u233\'e9 sous licence, pas vendu. Ce contrat vous octroie uniquement certains droits d\u8217\'92utilisation du logiciel. Microsoft se r\u233\'e9serve tous les autres droits. \u192\'c0 moins que la loi en vigueur vous conf\u232\'e8re davantage de droits nonobstant cette limitation, vous pouvez utiliser le logiciel uniquement tel qu\u8217\'92explicitement autoris\u233\'e9 dans le pr\u233\'e9sent accord. \u192\'c0 cette fin, vous devez respecter les restrictions techniques du logiciel qui autorisent uniquement son utilisation de certaines fa\u231\'e7ons. Vous n\u8217\'92\u234\'eates pas autoris\u233\'e9 \u224\'e0\~:} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +contourner les limitations techniques du logiciel ;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +reconstituer la logique du logiciel, le d\u233\'e9compiler ou le d\u233\'e9sassembler, sauf dans la mesure o\u249\'f9 ces op\u233\'e9rations seraient express\u233\'e9ment autoris\u233\'e9es par la r\u233\'e9glementation applicable nonobstant la pr\u233\'e9sente limitation ;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +faire plus de copies du logiciel que sp\u233\'e9cifi\u233\'e9 dans ce contrat ou par la r\u233\'e9glementation applicable, nonobstant la pr\u233\'e9sente limitation ;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +publier le logiciel pour que d\u8217\'92autres le copient ;} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +louer ou pr\u234\'eater le logiciel ; ou} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +utiliser le logiciel pour des services d\u8217\'92h\u233\'e9bergement commercial.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 16.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1033 +COPIE DE SAUVEGARDE.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1033 + }{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 +Vous \u234\'eates autoris\u233\'e9 \u224\'e0 effectuer une copie de sauvegarde du logiciel. Vous ne pouvez l\u8217\'92utiliser que dans le but de r\u233\'e9installer le logiciel.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 17.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +DOCUMENTATION.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Tout utilisateur disposant d\u8217\'92un acc\u232\'e8s valide \u224\'e0 votre ordinateur ou \u224\'e0 votre r\u233\'e9seau interne peut copier et utiliser la documentation \u224\'e0 des fins de r\u233\'e9f\u233\'e9rence interne.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 18.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +TRANSFERT \u192\'c0 UN TIERS.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Le premier utilisateur du logiciel doit le transf\u233\'e9rer, ainsi que le pr\u233\'e9sent contrat, directement \u224\'e0 un tiers. Avant le transfert, le tiers doit reconna\u238\'eetre que cet accord s\u8217\'92applique au transfert et \u224\'e0 l\u8217\'92utilisation du logiciel. Le premier utilisateur doit d\u233\'e9sinstaller le logiciel avant de le transf\u233\'e9rer s\u233\'e9par\u233\'e9ment du dispositif. Le premier utilisateur n}{\cs26\langfe1033\dbch\af14\loch\f5\lang1033\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 +\u8217\'92est pas autoris\u233\'e9 \u224\'e0 en conserver une copie.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 19.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +RESTRICTIONS \u192\'c0 L\u8217\'92EXPORTATION.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Le logiciel est soumis \u224\'e0 la r\u233\'e9glementation am\u233\'e9ricaine relative \u224\'e0 l\u8217\'92exportation. Vous devez vous conformer \u224\'e0 toutes les r\u233\'e9glementations nationales et internationales relatives aux exportations concernant le logiciel. Ces r\u233\'e9glementations comprennent les restrictions sur les destinations, les utilisateurs finaux et l\u8217\'92utilisation finale. Pour plus d\u8217\'92informations, consultez le site }{\b0\dbch\af10\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +www.microsoft.com/exporting}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 +.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 20.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +SERVICES D\u8217\'92ASSISTANCE TECHNIQUE.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Comme ce logiciel est fourni \u171\'ab en l'\u233\'e9tat \u187\'bb, nous ne fourniront aucun service d\u8217\'92assistance.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 21.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +INT\u201\'c9GRALIT\u201\'c9 DES ACCORDS.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Le pr\u233\'e9sent contrat ainsi que les termes concernant les suppl\u233\'e9ments, les mises \u224\'e0 jour, les services Internet et d\u8217\'92assistance technique constituent l\u8217\'92int\u233\'e9gralit\u233\'e9 des accords en ce qui concerne le logiciel et les services d\u8217\'92assistance technique.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 22.\tab}\ilvl0\ls5 \li1080\ri0\lin1080\rin0\fi-360\ql\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi-360\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +DROIT APPLICABLE.} +\par \pard\plain \s2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 a.\tab}\ilvl1\ls5 \li1800\ri0\lin1800\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +\u201\'c9tats-Unis.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Si vous avez acquis le logiciel aux \u201\'c9tats-Unis, les lois de l\u8217\'92\u201\'c9tat de Washington, \u201\'c9tats-Unis d\u8217\'92Am\u233\'e9rique, r\u233\'e9gissent l\u8217\'92interpr\u233\'e9tation de ce contrat et s\u8217\'92appliquent en cas de r\u233\'e9clamation pour violation dudit contrat, nonobstant les conflits de principes juridiques. La r\u233\'e9glementation du pays dans lequel vous vivez r\u233\'e9git toutes les autres r\u233\'e9clamations, notamment, et sans limitation, les r\u233\'e9clamations dans le cadre des lois en faveur de la protection des consommateurs, relatives \u224\'e0 la concurrence et aux d\u233\'e9lits.} +\par \pard\plain \s2\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 b.\tab}\ilvl1\ls5 \li1800\ri0\lin1800\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +En dehors des \u201\'c9tats-Unis.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Si vous avez acquis le logiciel dans un autre pays, les lois de ce pays s\u8217\'92appliquent.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 23.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +EFFET JURIDIQUE.}{\b0\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab0\rtlch \ltrch\loch\fs20\lang1036 + Le pr\u233\'e9sent contrat d\u233\'e9crit certains droits juridiques. Vous pourriez avoir d\u8217\'92autres droits pr\u233\'e9vus par les lois de votre pays. Vous pourriez \u233\'e9galement avoir des droits \u224\'e0 l\u8217\'92\u233\'e9gard de la partie de qui vous avez acquis le logiciel. Le pr\u233\'e9sent contrat ne modifie pas les droits que vous conf\u232\'e8rent les lois de votre ou pays si celles-ci ne le permettent pas.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 24.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +EXCLUSIONS DE GARANTIE. Le logiciel est conc\u233\'e9d\u233\'e9 sous licence \u171\'ab\~en l\u8217\'92\u233\'e9tat\~\u187\'bb. Vous assumez tous les risques li\u233\'e9s \u224\'e0 son utilisation. }{\cs29\langfe1033\dbch\af14\loch\f5\lang1033\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +Microsoft n\u8217\'92accorde aucune garantie}{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 + ou condition}{\cs29\langfe1033\dbch\af14\loch\f5\lang1033\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 + expresse.}{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 + Vous pouvez b\u233\'e9n\u233\'e9ficier de droits des consommateurs suppl\u233\'e9mentaires dans le cadre du droit local, que ce contrat ne peut modifier. Lorsque cela est autoris\u233\'e9 par le droit local, Microsoft exclut les garanties implicites de qualit\u233\'e9, d\u8217\'92ad\u233\'e9quation \u224\'e0 un usage particulier et d\u8217\'92absence de contrefa\u231\'e7on.} +\par \pard\plain \s1\ql\widctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120\ltrpar\b\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\ab\loch\f5\fs19\lang1033{\listtext\pard\plain \dbch\af14 25.\tab}\ilvl0\ls5 \li1077\ri0\lin1077\rin0\fi-360\ql\nowidctlpar\tx717\faauto\li357\ri0\lin357\rin0\fi-357\sb120\sa120{\b\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\ab\rtlch \ltrch\loch\fs20\lang1036 +LIMITATION ET EXCLUSION DE RECOURS ET DE DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs limit\u233\'e9e uniquement \u224\'e0 hauteur de 5,00 $ US. Vous ne pouvez pr\u233\'e9tendre \u224\'e0 aucune indemnisation pour les autres dommages, y compris les dommages sp\u233\'e9ciaux, indirects ou accessoires et pertes de b\u233\'e9n\u233\'e9fices.} +\par \pard\plain \s69\ql\widctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li357\ri0\lin357\rin0\fi0\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +Cette limitation concerne\~:} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +toute affaire li\u233\'e9e au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers et} +\par \pard\plain \s79\ql\widctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120\ltrpar\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\loch\f5\fs19\lang1033{\listtext\pard\plain \u61623\'3f\tab}\ilvl0\ls1 \li1440\ri0\lin1440\rin0\fi-360\ql\nowidctlpar\tx1440\faauto\li720\ri0\lin720\rin0\fi-363\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +les r\u233\'e9clamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit\u233\'e9 stricte, de n\u233\'e9gligence ou d\u8217\'92une autre faute dans la limite autoris\u233\'e9e par la loi en vigueur.} +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi0\sb120\sa120{\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 +Elle s\u8217\'92applique \u233\'e9galement m\u234\'eame si Microsoft connaissait l'\u233\'e9ventualit\u233\'e9 d'un tel dommage. La limitation ou exclusion ci-dessus peut \u233\'e9galement ne pas vous \u234\'eatre applicable, car votre pays n\u8217\'92autorise pas l\u8217\'92exclusion ou la limitation de responsabilit\u233\'e9 pour les dommages indirects, accessoires ou de quelque nature que ce soit.} +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi0\sb120\sa120\dbch\af11\langfe1033\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1036 + +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\dbch\af10\langfe1033\dbch\af17\afs18\alang1025\rtlch \ltrch\loch\fs18\lang1033\loch\f8 +EULAID:O15_RTM_SVR.1_SPCLIENTCOMP_EN} +\par \pard\plain \s0\ql\widctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa120\ltrpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\dbch\af10\langfe1033\dbch\af14\afs19\alang1025\cf0\kerning1\loch\f5\fs19\lang1033\ql\nowidctlpar\faauto\li360\ri0\lin360\rin0\fi0\sb120\sa120\rtlch \ltrch\loch + +\par } \ No newline at end of file diff --git a/thirdparty/SharePoint.CSOM/download.txt b/thirdparty/SharePoint.CSOM/download.txt new file mode 100644 index 000000000..de28e489b --- /dev/null +++ b/thirdparty/SharePoint.CSOM/download.txt @@ -0,0 +1 @@ +https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/ \ No newline at end of file diff --git a/thirdparty/SharePoint.CSOM/license.txt b/thirdparty/SharePoint.CSOM/license.txt new file mode 100644 index 000000000..93b943e3b --- /dev/null +++ b/thirdparty/SharePoint.CSOM/license.txt @@ -0,0 +1,115 @@ +MICROSOFT SOFTWARE LICENSE TERMS +MICROSOFT SHAREPOINT CLIENT COMPONENTS +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft +updates, +supplements, +Internet-based services, and +support services +for this software, unless other terms accompany those items. If so, those terms apply. +By using the software, you accept these terms. If you do not accept them, do not use the software. +If you comply with these license terms, you have the perpetual rights below. +1. INSTALLATION AND USE RIGHTS. One user may install and use any number of copies of the software on your devices to design, develop and test your programs. +2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. +a. Distributable Code. The software contains code that you are permitted to distribute in programs you develop if you comply with the terms below. +i. Right to Use and Distribute. The code and text files listed below are “Distributable Code.” +Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. +ii. Distribution Requirements. For any Distributable Code you distribute, you must +add significant primary functionality to it in your programs; +for any Distributable Code having a filename extension of .lib, distribute only the results of running such Distributable Code through a linker with your program; +distribute Distributable Code included in a setup program only as part of that setup program without modification; +require distributors and external end users to agree to terms that protect it at least as much as this agreement; +display your valid copyright notice on your programs; and +indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. +iii. Distribution Restrictions. You may not +alter any copyright, trademark or patent notice in the Distributable Code; +use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; +distribute Distributable Code to run on a platform other than the Windows platform; +include Distributable Code in malicious, deceptive or unlawful programs; or +modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that +the code be disclosed or distributed in source code form; or +others have the right to modify it. +3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not +work around any technical limitations in the software; +reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; +make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation; +publish the software for others to copy; +rent, lease or lend the software; or +use the software for commercial software hosting services. +4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. +5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. +6. TRANSFER TO A THIRD PARTY. The first user of the software may transfer it and this agreement directly to a third party. Before the transfer, that party must agree that this agreement applies to the transfer and use of the software. The first user must uninstall the software before transferring it separately from the device. The first user may not retain any copies. +7. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. +8. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. +9. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. +10. APPLICABLE LAW. +a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. +b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. +11. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. +12. DISCLAIMER OF WARRANTY. The software is licensed “as-is.” You bear the risk of using it. Microsoft gives no express warranties, guarantees or conditions. You may have additional consumer rights or statutory guarantees under your local laws which this agreement cannot change. To the extent permitted under your local laws, Microsoft excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +FOR AUSTRALIA – You have statutory guarantees under the Australian Consumer Law and nothing in these terms is intended to affect those rights. +13. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from Microsoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages. +This limitation applies to +anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and +claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. +It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. +Please note: As this software is distributed in Quebec, Canada, these license terms are provided below in French. +Remarque : Ce logiciel étant distribué au Québec, Canada, les termes de cette licence sont fournis ci-dessous en français. +TERMES DU CONTRAT DE LICENCE D’UN LOGICIEL MICROSOFT +MICROSOFT SHAREPOINT CLIENT COMPONENTS +Les présents termes ont valeur de contrat entre Microsoft Corporation (ou en fonction du lieu où vous vivez, l’un de ses affiliés) et vous. Lisez-les attentivement. Ils portent sur le logiciel nommé ci-dessus, y compris le support sur lequel vous l’avez reçu le cas échéant. Ce contrat porte également sur les produits Microsoft suivants : +les mises à jour, +les suppléments, +les services Internet et +les services d’assistance technique +de ce logiciel à moins que d’autres termes n’accompagnent ces produits, auquel cas, ces derniers prévalent. +En utilisant le logiciel, vous acceptez ces termes. Si vous ne les acceptez pas, n’utilisez pas le logiciel. +Si vous respectez les présentes conditions de licence, vous disposez des droits suivants pour la durée des droits de propriété intellectuelle. +1 INSTALLATION ET DROITS D’UTILISATION. Un utilisateur peut installer et utiliser un nombre quelconque de copies du logiciel sur vos dispositifs pour concevoir, développer et tester vos programmes. +14. CONDITIONS DE LICENCE ET/OU DROITS D’UTILISATION SUPPLEMENTAIRES. +a. Code distribuable. Le logiciel contient du code que vous êtes autorisé à distribuer dans des programmes développés conformément aux conditions ci-après. +i. Droit d’utilisation et de distribution. Le code et les fichiers texte répertoriés ci-après constituent le « Code distribuable ». +Fichiers REDIST.TXT. Vous êtes autorisé à copier et à distribuer la version en code objet du code répertorié dans les fichiers REDIST.TXT. +Microsoft Merge Modules. Vous êtes autorisé à copier et distribuer le résultat non modifié de Microsoft Merge Modules. +Distribution par des tierces parties. Vous pouvez autoriser les distributeurs de vos programmes à copier et à distribuer le code distribuable en tant que partie intégrante de ces programmes. +iv. Conditions de Distribution. Pour tout Code Distribuable que vous distribuez, vous devez : +y ajouter des fonctionnalités importantes et principales au sein de vos programmes, +pour tout Code distribuable dont l’extension de nom de fichier est .lib, distribuer seulement les résultats de l’exécution de ce Code distribuable à l’aide d’un éditeur de liens avec votre programme ; +distribuer le Code distribuable inclus dans un programme d’installation seulement en tant que partie intégrante de ce programme sans modification ; +exiger des distributeurs et des utilisateurs finaux externes qu’ils acceptent les termes qui protègent le Code Dstribuable de manière au moins équivalente à ceux du présent contrat, +afficher votre propre mention de droits d’auteur valable dans vos programmes ; et +indemniser, défendre et garantir Microsoft contre toute réclamation, y compris pour les honoraires d’avocats, qui résulterait de la distribution ou l’utilisation de vos programmes. +v. Restrictions de distribution. Vous n’êtes pas autorisé à : +modifier toute mention de droits d’auteur, de marques ou de droits de propriété industrielle pouvant figurer dans le code distribuable, +utiliser les marques de Microsoft dans les noms de vos programmes ou d’une façon qui suggère que vos programmes sont fournis par Microsoft ou sous la responsabilité de Microsoft, +distribuer le Code distribuable en vue de son exécution sur une plate-forme autre que la plate-forme Windows, +inclure le Code distribuable dans des programmes malveillants, trompeurs ou interdits par la loi, ou +modifier ou distribuer le code source de code distribuable de manière à ce qu’il fasse l’objet, en partie ou dans son intégralité, d’une Licence Exclue. Une Licence Exclue implique comme condition d’utilisation, de modification ou de distribution, que : +le code soit dévoilé ou distribué dans sa forme de code source, ou +d’autres aient le droit de le modifier. +15. PORTEE DE LA LICENCE. Le logiciel est concédé sous licence, pas vendu. Ce contrat vous octroie uniquement certains droits d’utilisation du logiciel. Microsoft se réserve tous les autres droits. À moins que la loi en vigueur vous confère davantage de droits nonobstant cette limitation, vous pouvez utiliser le logiciel uniquement tel qu’explicitement autorisé dans le présent accord. À cette fin, vous devez respecter les restrictions techniques du logiciel qui autorisent uniquement son utilisation de certaines façons. Vous n’êtes pas autorisé à : +contourner les limitations techniques du logiciel ; +reconstituer la logique du logiciel, le décompiler ou le désassembler, sauf dans la mesure où ces opérations seraient expressément autorisées par la réglementation applicable nonobstant la présente limitation ; +faire plus de copies du logiciel que spécifié dans ce contrat ou par la réglementation applicable, nonobstant la présente limitation ; +publier le logiciel pour que d’autres le copient ; +louer ou prêter le logiciel ; ou +utiliser le logiciel pour des services d’hébergement commercial. +16. COPIE DE SAUVEGARDE. Vous êtes autorisé à effectuer une copie de sauvegarde du logiciel. Vous ne pouvez l’utiliser que dans le but de réinstaller le logiciel. +17. DOCUMENTATION. Tout utilisateur disposant d’un accès valide à votre ordinateur ou à votre réseau interne peut copier et utiliser la documentation à des fins de référence interne. +18. TRANSFERT À UN TIERS. Le premier utilisateur du logiciel doit le transférer, ainsi que le présent contrat, directement à un tiers. Avant le transfert, le tiers doit reconnaître que cet accord s’applique au transfert et à l’utilisation du logiciel. Le premier utilisateur doit désinstaller le logiciel avant de le transférer séparément du dispositif. Le premier utilisateur n’est pas autorisé à en conserver une copie. +19. RESTRICTIONS À L’EXPORTATION. Le logiciel est soumis à la réglementation américaine relative à l’exportation. Vous devez vous conformer à toutes les réglementations nationales et internationales relatives aux exportations concernant le logiciel. Ces réglementations comprennent les restrictions sur les destinations, les utilisateurs finaux et l’utilisation finale. Pour plus d’informations, consultez le site www.microsoft.com/exporting. +20. SERVICES D’ASSISTANCE TECHNIQUE. Comme ce logiciel est fourni « en l'état », nous ne fourniront aucun service d’assistance. +21. INTÉGRALITÉ DES ACCORDS. Le présent contrat ainsi que les termes concernant les suppléments, les mises à jour, les services Internet et d’assistance technique constituent l’intégralité des accords en ce qui concerne le logiciel et les services d’assistance technique. +22. DROIT APPLICABLE. +a. États-Unis. Si vous avez acquis le logiciel aux États-Unis, les lois de l’État de Washington, États-Unis d’Amérique, régissent l’interprétation de ce contrat et s’appliquent en cas de réclamation pour violation dudit contrat, nonobstant les conflits de principes juridiques. La réglementation du pays dans lequel vous vivez régit toutes les autres réclamations, notamment, et sans limitation, les réclamations dans le cadre des lois en faveur de la protection des consommateurs, relatives à la concurrence et aux délits. +b. En dehors des États-Unis. Si vous avez acquis le logiciel dans un autre pays, les lois de ce pays s’appliquent. +23. EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Vous pourriez également avoir des droits à l’égard de la partie de qui vous avez acquis le logiciel. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre ou pays si celles-ci ne le permettent pas. +24. EXCLUSIONS DE GARANTIE. Le logiciel est concédé sous licence « en l’état ». Vous assumez tous les risques liés à son utilisation. Microsoft n’accorde aucune garantie ou condition expresse. Vous pouvez bénéficier de droits des consommateurs supplémentaires dans le cadre du droit local, que ce contrat ne peut modifier. Lorsque cela est autorisé par le droit local, Microsoft exclut les garanties implicites de qualité, d’adéquation à un usage particulier et d’absence de contrefaçon. +25. LIMITATION ET EXCLUSION DE RECOURS ET DE DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs limitée uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. +Cette limitation concerne : +toute affaire liée au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers et +les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. +Elle s’applique également même si Microsoft connaissait l'éventualité d'un tel dommage. La limitation ou exclusion ci-dessus peut également ne pas vous être applicable, car votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit. + +EULAID:O15_RTM_SVR.1_SPCLIENTCOMP_EN + +original RTF at: http://go.microsoft.com/fwlink/?LinkId=280198 \ No newline at end of file diff --git a/thirdparty/SharePoint.CSOM/licensedata.json b/thirdparty/SharePoint.CSOM/licensedata.json new file mode 100644 index 000000000..c681a086f --- /dev/null +++ b/thirdparty/SharePoint.CSOM/licensedata.json @@ -0,0 +1,7 @@ +{ + "name": "Microsoft.SharePointOnline.CSOM", + "description": "Microsoft SharePoint Client Object Model libraries for SharePoint Online for .Net 4.5", + "link": "https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/", + "license": "MicrosoftSharePointClientComponentsEULA.rtf", + "notes": "" +} \ No newline at end of file From 118acc12b250855735beac8d52c12fa7c211a8e2 Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 18:29:33 +0100 Subject: [PATCH 2/8] Revert sln and add manually (stays VS2010) --- Duplicati.sln | 295 ++++++++++++++++++++++++++------------------------ 1 file changed, 156 insertions(+), 139 deletions(-) diff --git a/Duplicati.sln b/Duplicati.sln index 8706a863b..6a3adc4fe 100644 --- a/Duplicati.sln +++ b/Duplicati.sln @@ -1,6 +1,6 @@  -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Utility", "Duplicati\Library\Utility\Duplicati.Library.Utility.csproj", "{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Main", "Duplicati\Library\Main\Duplicati.Library.Main.csproj", "{10D2D1B7-C664-41D8-9B3A-00040C3D421B}" @@ -84,107 +84,39 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Backend.SharePoint", "Duplicati\Library\Backend\SharePoint\Duplicati.Library.Backend.SharePoint.csproj", "{59C8BBC5-6E42-46FB-AB3E-6C183A82459A}" EndProject Global - GlobalSection(SubversionScc) = preSolution - Svn-Managed = True - Manager = AnkhSVN - Subversion Support for Visual Studio - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.Build.0 = Release|Any CPU - {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Release|Any CPU.Build.0 = Release|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.Build.0 = Release|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.Build.0 = Release|Any CPU - {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.Build.0 = Release|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.Build.0 = Release|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.Build.0 = Release|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.Build.0 = Release|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.Build.0 = Release|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.Build.0 = Release|Any CPU - {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Release|Any CPU.Build.0 = Release|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.Build.0 = Release|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.Build.0 = Release|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.Build.0 = Release|Any CPU {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Debug|Any CPU.Build.0 = Debug|Any CPU {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Release|Any CPU.ActiveCfg = Release|Any CPU {0CA86ECF-5BEC-4909-B4F6-110A03B30B92}.Release|Any CPU.Build.0 = Release|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.Build.0 = Release|Any CPU - {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Release|Any CPU.Build.0 = Release|Any CPU - {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Release|Any CPU.Build.0 = Release|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.Build.0 = Release|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.Build.0 = Release|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.Build.0 = Release|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10D2D1B7-C664-41D8-9B3A-00040C3D421B}.Release|Any CPU.Build.0 = Release|Any CPU {17566860-3D98-4604-AA5B-47661F75609F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {17566860-3D98-4604-AA5B-47661F75609F}.Debug|Any CPU.Build.0 = Debug|Any CPU {17566860-3D98-4604-AA5B-47661F75609F}.Release|Any CPU.ActiveCfg = Release|Any CPU {17566860-3D98-4604-AA5B-47661F75609F}.Release|Any CPU.Build.0 = Release|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.Build.0 = Release|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19E661D2-C5DA-4F35-B3EE-7586E5734B5F}.Release|Any CPU.Build.0 = Release|Any CPU + {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19ECCE09-B5EB-406C-8C57-BAC66997D469}.Release|Any CPU.Build.0 = Release|Any CPU + {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BFAE226-8364-4086-825C-BB83F6F3EE4C}.Release|Any CPU.Build.0 = Release|Any CPU {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Debug|Any CPU.Build.0 = Debug|Any CPU {2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -193,50 +125,30 @@ Global {2C838169-B187-4B09-8768-1C24C2521C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU {2C838169-B187-4B09-8768-1C24C2521C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU {2C838169-B187-4B09-8768-1C24C2521C8D}.Release|Any CPU.Build.0 = Release|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.Build.0 = Release|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.Build.0 = Release|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.Build.0 = Release|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.Build.0 = Release|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.Build.0 = Release|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.Build.0 = Release|Any CPU - {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Release|Any CPU.Build.0 = Release|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.Build.0 = Release|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.Build.0 = Release|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33FD1D24-C28F-4C71-933F-98F1586EA76C}.Release|Any CPU.Build.0 = Release|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.Build.0 = Release|Any CPU {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Release|Any CPU.ActiveCfg = Release|Any CPU {4A010589-76E6-4F05-A5C4-4598D5DF11F8}.Release|Any CPU.Build.0 = Release|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08D7E42D-285C-4010-9881-986125FE2F3E}.Release|Any CPU.Build.0 = Release|Any CPU + {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D012CB1-4B92-47F4-89B7-BF80A73A2E99}.Release|Any CPU.Build.0 = Release|Any CPU + {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52826615-7964-47FE-B4B3-1B2DBDF605B9}.Release|Any CPU.Build.0 = Release|Any CPU + {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5489181D-950C-44AF-873C-45EB0A3B6BD2}.Release|Any CPU.Build.0 = Release|Any CPU {61C43D61-4368-4942-84A3-1EB623F4EF2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61C43D61-4368-4942-84A3-1EB623F4EF2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {61C43D61-4368-4942-84A3-1EB623F4EF2A}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -245,22 +157,103 @@ Global {6643A5AE-AB38-453F-ADCE-408E35A81A83}.Debug|Any CPU.Build.0 = Debug|Any CPU {6643A5AE-AB38-453F-ADCE-408E35A81A83}.Release|Any CPU.ActiveCfg = Release|Any CPU {6643A5AE-AB38-453F-ADCE-408E35A81A83}.Release|Any CPU.Build.0 = Release|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3FF7DD0B-5284-4BF9-97D9-1E4417FDABB2}.Release|Any CPU.Build.0 = Release|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E119745-1F62-43F0-936C-F312A1912C0B}.Release|Any CPU.Build.0 = Release|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81765A64-3661-4E3E-B850-2F6F87A51F74}.Release|Any CPU.Build.0 = Release|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E4CECFB-0413-4B00-AB93-78D1C3902BD5}.Release|Any CPU.Build.0 = Release|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94484FDB-2EFA-4CF0-9BE6-A561157B4F87}.Release|Any CPU.Build.0 = Release|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B68F2214-951F-4F78-8488-66E1ED3F50BF}.Release|Any CPU.Build.0 = Release|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAE27510-8B5D-44B2-B33E-372A98908041}.Release|Any CPU.Build.0 = Release|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB014EA5-CE2C-4444-8D30-38983A0E8553}.Release|Any CPU.Build.0 = Release|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0270709-2A40-43B5-8CF1-69581B9FA2A1}.Release|Any CPU.Build.0 = Release|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C03F6DFD-805A-4BE0-9338-64870ADDB4A2}.Release|Any CPU.Build.0 = Release|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5899F45-B0FF-483C-9D38-24A9FCAAB237}.Release|Any CPU.Build.0 = Release|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCD76347-7DC7-4B42-B7E1-E500E624CAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}.Release|Any CPU.Build.0 = Release|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4C37C33-5E73-4B56-B2C3-DC4A6BAA36BB}.Release|Any CPU.Build.0 = Release|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D60AD540-0E7D-40CE-83AE-D26E01FFE9B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D63E53E4-A458-4C2F-914D-92F715F58ACE}.Release|Any CPU.Build.0 = Release|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D9E4E686-423C-48EC-A392-404E7C00860C}.Release|Any CPU.Build.0 = Release|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}.Release|Any CPU.Build.0 = Release|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7280DCA-7776-4A73-B9B5-41FD77FC8799}.Release|Any CPU.Build.0 = Release|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.Build.0 = Release|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.Build.0 = Release|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.Build.0 = Release|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC9B7611-836F-4127-8B44-A7C31F506807}.Release|Any CPU.Build.0 = Release|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF2BF37C-E502-4C98-BEA0-701671DDFA08}.Release|Any CPU.Build.0 = Release|Any CPU {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Debug|Any CPU.Build.0 = Debug|Any CPU {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Release|Any CPU.ActiveCfg = Release|Any CPU {59C8BBC5-6E42-46FB-AB3E-6C183A82459A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution Policies = $0 $0.StandardHeader = $1 @@ -269,7 +262,7 @@ Global $0.DotNetNamingPolicy = $2 $2.DirectoryNamespaceAssociation = PrefixedHierarchical $2.ResourceNamePolicy = FileFormatDefault - $0.TextStylePolicy = $29 + $0.TextStylePolicy = $3 $3.inheritsSet = null $3.scope = text/x-csharp $0.CSharpFormattingPolicy = $4 @@ -299,6 +292,7 @@ Global $4.inheritsSet = Mono $4.inheritsScope = text/x-csharp $4.scope = text/x-csharp + $0.TextStylePolicy = $5 $5.FileWidth = 120 $5.EolMarker = Windows $5.inheritsSet = VisualStudio @@ -306,19 +300,21 @@ Global $5.scope = text/plain $0.NameConventionPolicy = $6 $6.Rules = $7 - $7.NamingRule = $27 + $7.NamingRule = $8 $8.Name = Namespaces $8.AffectedEntity = Namespace $8.VisibilityMask = VisibilityMask $8.NamingStyle = PascalCase $8.IncludeInstanceMembers = True $8.IncludeStaticEntities = True + $7.NamingRule = $9 $9.Name = Types $9.AffectedEntity = Class, Struct, Enum, Delegate $9.VisibilityMask = Public $9.NamingStyle = PascalCase $9.IncludeInstanceMembers = True $9.IncludeStaticEntities = True + $7.NamingRule = $10 $10.Name = Interfaces $10.RequiredPrefixes = $11 $11.String = I @@ -327,6 +323,7 @@ Global $10.NamingStyle = PascalCase $10.IncludeInstanceMembers = True $10.IncludeStaticEntities = True + $7.NamingRule = $12 $12.Name = Attributes $12.RequiredSuffixes = $13 $13.String = Attribute @@ -335,6 +332,7 @@ Global $12.NamingStyle = PascalCase $12.IncludeInstanceMembers = True $12.IncludeStaticEntities = True + $7.NamingRule = $14 $14.Name = Event Arguments $14.RequiredSuffixes = $15 $15.String = EventArgs @@ -343,6 +341,7 @@ Global $14.NamingStyle = PascalCase $14.IncludeInstanceMembers = True $14.IncludeStaticEntities = True + $7.NamingRule = $16 $16.Name = Exceptions $16.RequiredSuffixes = $17 $17.String = Exception @@ -351,60 +350,70 @@ Global $16.NamingStyle = PascalCase $16.IncludeInstanceMembers = True $16.IncludeStaticEntities = True + $7.NamingRule = $18 $18.Name = Methods $18.AffectedEntity = Methods $18.VisibilityMask = Protected, Public $18.NamingStyle = PascalCase $18.IncludeInstanceMembers = True $18.IncludeStaticEntities = True + $7.NamingRule = $19 $19.Name = Static Readonly Fields $19.AffectedEntity = ReadonlyField $19.VisibilityMask = Protected, Public $19.NamingStyle = PascalCase $19.IncludeInstanceMembers = False $19.IncludeStaticEntities = True + $7.NamingRule = $20 $20.Name = Fields $20.AffectedEntity = Field $20.VisibilityMask = Protected, Public $20.NamingStyle = PascalCase $20.IncludeInstanceMembers = True $20.IncludeStaticEntities = True + $7.NamingRule = $21 $21.Name = ReadOnly Fields $21.AffectedEntity = ReadonlyField $21.VisibilityMask = Protected, Public $21.NamingStyle = PascalCase $21.IncludeInstanceMembers = True $21.IncludeStaticEntities = False + $7.NamingRule = $22 $22.Name = Constant Fields $22.AffectedEntity = ConstantField $22.VisibilityMask = Protected, Public $22.NamingStyle = PascalCase $22.IncludeInstanceMembers = True $22.IncludeStaticEntities = True + $7.NamingRule = $23 $23.Name = Properties $23.AffectedEntity = Property $23.VisibilityMask = Protected, Public $23.NamingStyle = PascalCase $23.IncludeInstanceMembers = True $23.IncludeStaticEntities = True + $7.NamingRule = $24 $24.Name = Events $24.AffectedEntity = Event $24.VisibilityMask = Protected, Public $24.NamingStyle = PascalCase $24.IncludeInstanceMembers = True $24.IncludeStaticEntities = True + $7.NamingRule = $25 $25.Name = Enum Members $25.AffectedEntity = EnumMember $25.VisibilityMask = VisibilityMask $25.NamingStyle = PascalCase $25.IncludeInstanceMembers = True $25.IncludeStaticEntities = True + $7.NamingRule = $26 $26.Name = Parameters $26.AffectedEntity = Parameter $26.VisibilityMask = VisibilityMask $26.NamingStyle = CamelCase $26.IncludeInstanceMembers = True $26.IncludeStaticEntities = True + $7.NamingRule = $27 $27.Name = Type Parameters $27.RequiredPrefixes = $28 $28.String = T @@ -413,6 +422,7 @@ Global $27.NamingStyle = PascalCase $27.IncludeInstanceMembers = True $27.IncludeStaticEntities = True + $0.TextStylePolicy = $29 $29.inheritsSet = null $29.scope = application/config+xml $0.XmlFormattingPolicy = $30 @@ -426,4 +436,11 @@ Global $33.LineAlign = 0 $32.inheritsSet = Mono EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection EndGlobal From 8418f0dcda541bce7e2362cd1fb8319fa1d6d5f6 Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 19:28:05 +0100 Subject: [PATCH 3/8] Error handling, removed nuget-pkg for SP.CSOM --- ...uplicati.Library.Backend.SharePoint.csproj | 11 +- .../Backend/SharePoint/SharePointBackend.cs | 171 +++++++++++------- .../Backend/SharePoint/packages.config | 4 - 3 files changed, 110 insertions(+), 76 deletions(-) delete mode 100644 Duplicati/Library/Backend/SharePoint/packages.config diff --git a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj index a1b786a9d..75c53d317 100644 --- a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj +++ b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj @@ -30,11 +30,13 @@ 4 - - ..\..\..\..\..\packages\Microsoft.SharePointOnline.CSOM.16.1.4915.1200\lib\net45\Microsoft.SharePoint.Client.dll + + False + ..\..\..\..\thirdparty\SharePoint.CSOM\Microsoft.SharePoint.Client.dll - - ..\..\..\..\..\packages\Microsoft.SharePointOnline.CSOM.16.1.4915.1200\lib\net45\Microsoft.SharePoint.Client.Runtime.dll + + False + ..\..\..\..\thirdparty\SharePoint.CSOM\Microsoft.SharePoint.Client.Runtime.dll @@ -52,7 +54,6 @@ - diff --git a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs index b68b64aba..cddf4a7cb 100644 --- a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs +++ b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs @@ -34,8 +34,9 @@ namespace Duplicati.Library.Backend /// Class implementing Duplicati's backend for SharePoint. /// /// - /// SharePoint Server 2013 Client Components SDK: https://www.microsoft.com/en-us/download/details.aspx?id=35585 - /// Infos for further development: + /// Find SharePoint Server 2013 Client Components SDK (15.xxx): https://www.microsoft.com/en-us/download/details.aspx?id=35585 + /// Currently used is MS-package from nuget (for SharePoint Server 2016, 16.xxx): https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM + /// Infos for further development (pursue on demand): /// Using ADAL-Tokens (Azure Active directory): https://samlman.wordpress.com/2015/02/27/using-adal-access-tokens-with-o365-rest-apis-and-csom/ /// Outline: /// - On AzureAD --> AddNewApp and configure access to O_365 (SharePoint/OneDrive4Busi) @@ -47,20 +48,23 @@ namespace Duplicati.Library.Backend public class SharePointBackend : IBackend, IStreamingBackend { -#region [Variables and constants declarations] + #region [Variables and constants declarations] + ///

Auth-stripped HTTPS-URI as passed to constructor. private Utility.Uri m_orgUrl; + /// Server relative path to backup folder. private string m_serverRelPath; - private string m_spWebUrl; - private SP.ClientContext m_spContext; - + /// User's credentials to create client context private System.Net.ICredentials m_userInfo; - private readonly byte[] m_copybuffer = new byte[Duplicati.Library.Utility.Utility.DEFAULT_BUFFER_SIZE]; + /// URL to SharePoint web. Will be determined from m_orgUri on first use. + private string m_spWebUrl; + /// Current context to SharePoint web. + private SP.ClientContext m_spContext; -#endregion + #endregion -#region [Public Properties] + #region [Public Properties] public string DisplayName { @@ -89,9 +93,9 @@ namespace Duplicati.Library.Backend get { return Strings.SharePoint.Description; } } -#endregion + #endregion -#region [Constructors] + #region [Constructors] public SharePointBackend() { } @@ -100,7 +104,7 @@ namespace Duplicati.Library.Backend { var u = new Utility.Uri(url); u.RequireHost(); - + // Create sanitized plain https-URI (note: still has double slashes for processing web) m_orgUrl = new Utility.Uri("https", u.Host, u.Path, null, null, null, u.Port); @@ -116,23 +120,32 @@ namespace Duplicati.Library.Backend m_serverRelPath = m_serverRelPath.Replace("//", "/"); // Authentication settings processing: - // Default: try integrated auth (will normally not work for Office365, but maybe on-prem SharePoint...). - // Otherwise: Command line options precede URL-integrated auth. + // Default: try integrated auth (will normally not work for Office365, but maybe with on-prem SharePoint...). + // Otherwise: Use settings from URL(precedence) or from command line options. + bool useIntegratedAuthentication = Utility.Utility.ParseBoolOption(options, "integrated-authentication"); string useUsername = null; string usePassword = null; - bool useIntegratedAuthentication = Utility.Utility.ParseBoolOption(options, "integrated-authentication"); + if (!useIntegratedAuthentication) { - // Note: Supplying a username on cmdline and relying on pwd in URL is not considered legal! - if (options.TryGetValue("auth-username", out useUsername)) - options.TryGetValue("auth-password", out usePassword); - else + if (!string.IsNullOrEmpty(u.Username)) { useUsername = u.Username; - if (!options.TryGetValue("auth-password", out usePassword)) + if (!string.IsNullOrEmpty(u.Password)) usePassword = u.Password; - } + else if (options.ContainsKey("auth-password")) + usePassword = options["auth-password"]; + } + else + { + if (options.ContainsKey("auth-username")) + { + useUsername = options["auth-username"]; + if (options.ContainsKey("auth-password")) + usePassword = options["auth-password"]; + } + } } if (useIntegratedAuthentication || (useUsername == null || usePassword == null)) @@ -146,15 +159,16 @@ namespace Duplicati.Library.Backend usePassword.ToList().ForEach(c => securePwd.AppendChar(c)); m_userInfo = new Microsoft.SharePoint.Client.SharePointOnlineCredentials(useUsername, securePwd); // Other options (also ADAL, see class remarks) might be supported on request. - // Microsoft.SharePoint.Client.AppPrincipalCredential.CreateFromKeyGroup() - // ctx.AuthenticationMode = SP.ClientAuthenticationMode.FormsAuthentication; - // ctx.FormsAuthenticationLoginInfo = new SP.FormsAuthenticationLoginInfo(user, pwd); + // Maybe go in deep then and also look at: + // - Microsoft.SharePoint.Client.AppPrincipalCredential.CreateFromKeyGroup() + // - ctx.AuthenticationMode = SP.ClientAuthenticationMode.FormsAuthentication; + // - ctx.FormsAuthenticationLoginInfo = new SP.FormsAuthenticationLoginInfo(user, pwd); } } -#endregion + #endregion #region [Private helper methods] @@ -289,7 +303,6 @@ namespace Duplicati.Library.Backend m_spContext.Credentials = m_userInfo; } } - return m_spContext; } @@ -324,13 +337,14 @@ namespace Duplicati.Library.Backend public void Test() { - SP.ClientContext ctx = getSpClientContext(); + SP.ClientContext ctx = getSpClientContext(true); testContextForWeb(ctx, true); } - public List List() + public List List() { return doList(false); } + private List doList(bool useNewContext) { - SP.ClientContext ctx = getSpClientContext(); + SP.ClientContext ctx = getSpClientContext(useNewContext); try { SP.Folder remoteFolder = ctx.Web.GetFolderByServerRelativeUrl(m_serverRelPath); @@ -356,8 +370,11 @@ namespace Duplicati.Library.Backend } return files; } - finally - {} + catch (ServerException) { throw; /* rethrow if Server answered */ } + catch (Interface.FileMissingException) { throw; } + catch (Interface.FolderMissingException) { throw; } + catch { if (!useNewContext) /* retry */ return doList(true); else throw; } + finally { } } public void Get(string remotename, string filename) @@ -366,24 +383,32 @@ namespace Duplicati.Library.Backend Get(remotename, fs); } - public void Get(string remotename, System.IO.Stream stream) + public void Get(string remotename, System.IO.Stream stream) { doGet(remotename, stream, false); } + private void doGet(string remotename, System.IO.Stream stream, bool useNewContext) { - SP.ClientContext ctx = getSpClientContext(); + string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + SP.ClientContext ctx = getSpClientContext(useNewContext); try { - string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); SP.File remoteFile = ctx.Web.GetFileByServerRelativeUrl(fileurl); ctx.Load(remoteFile, f => f.Exists); wrappedExecuteQueryOnConext(ctx, fileurl, false); if (!remoteFile.Exists) throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(fileurl, m_spWebUrl)); - + } + catch (ServerException) { throw; /* rethrow if Server answered */ } + catch (Interface.FileMissingException) { throw; } + catch (Interface.FolderMissingException) { throw; } + catch { if (!useNewContext) /* retry */ doGet(remotename, stream, true); else throw; } + finally { } + try + { + byte[] copybuffer = new byte[Duplicati.Library.Utility.Utility.DEFAULT_BUFFER_SIZE]; using (var fileInfo = SP.File.OpenBinaryDirect(ctx, fileurl)) using (var s = fileInfo.Stream) - Utility.Utility.CopyStream(s, stream, true, m_copybuffer); + Utility.Utility.CopyStream(s, stream, true, copybuffer); } - finally - { } + finally { } } public void Put(string remotename, string filename) @@ -392,9 +417,11 @@ namespace Duplicati.Library.Backend Put(remotename, fs); } - public void Put(string remotename, System.IO.Stream stream) + public void Put(string remotename, System.IO.Stream stream) { doPut(remotename, stream, false); } + private void doPut(string remotename, System.IO.Stream stream, bool useNewContext) { - SP.ClientContext ctx = getSpClientContext(); + string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + SP.ClientContext ctx = getSpClientContext(useNewContext); try { SP.Folder remoteFolder = ctx.Web.GetFolderByServerRelativeUrl(m_serverRelPath); @@ -402,18 +429,23 @@ namespace Duplicati.Library.Backend wrappedExecuteQueryOnConext(ctx, m_serverRelPath, true); if (!remoteFolder.Exists) throw new Interface.FolderMissingException(Strings.SharePoint.MissingElementError(m_serverRelPath, m_spWebUrl)); - // or use: remoteFolder.ServerRelativeUrl + "/" + remotename; - string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + } + catch (ServerException) { throw; /* rethrow if Server answered */ } + catch (Interface.FileMissingException) { throw; } + catch (Interface.FolderMissingException) { throw; } + catch { if (!useNewContext) /* retry */ doPut(remotename, stream, true); else throw; } + finally { } + try + { SP.File.SaveBinaryDirect(ctx, fileurl, stream, true); } - finally - { } + finally { } } - public void CreateFolder() + public void CreateFolder() { doCreateFolder(false); } + private void doCreateFolder(bool useNewContext) { - - SP.ClientContext ctx = getSpClientContext(); + SP.ClientContext ctx = getSpClientContext(useNewContext); try { int pathLengthToWeb = new Utility.Uri(m_spWebUrl).Path.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries).Length; @@ -444,33 +476,38 @@ namespace Duplicati.Library.Backend if (!spfolders[folderNames.Length - 1].Exists) throw new Interface.FolderMissingException(Strings.SharePoint.MissingElementError(m_serverRelPath, m_spWebUrl)); - } - finally - { } - + catch (ServerException) { throw; /* rethrow if Server answered */ } + catch (Interface.FileMissingException) { throw; } + catch (Interface.FolderMissingException) { throw; } + catch { if (!useNewContext) /* retry */ doCreateFolder(true); else throw; } + finally { } } - public void Delete(string remotename) + public void Delete(string remotename) { doDelete(remotename, false); } + private void doDelete(string remotename, bool useNewContext) { - SP.ClientContext ctx = getSpClientContext(); + SP.ClientContext ctx = getSpClientContext(useNewContext); try - { - string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); - SP.File remoteFile = ctx.Web.GetFileByServerRelativeUrl(fileurl); - ctx.Load(remoteFile); - wrappedExecuteQueryOnConext(ctx, fileurl, false); - if (!remoteFile.Exists) - throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(fileurl, m_spWebUrl)); + { + string fileurl = m_serverRelPath + System.Web.HttpUtility.UrlPathEncode(remotename); + SP.File remoteFile = ctx.Web.GetFileByServerRelativeUrl(fileurl); + ctx.Load(remoteFile); + wrappedExecuteQueryOnConext(ctx, fileurl, false); + if (!remoteFile.Exists) + throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(fileurl, m_spWebUrl)); - // allow optionally?: remoteFile.Recycle(); - remoteFile.DeleteObject(); - // not necessary: remoteFile.Update(); - ctx.ExecuteQuery(); + // allow optionally?: remoteFile.Recycle(); + remoteFile.DeleteObject(); + // should not be necessary: remoteFile.Update(); + ctx.ExecuteQuery(); - } - finally - { } + } + catch (ServerException) { throw; /* rethrow if Server answered */ } + catch (Interface.FileMissingException) { throw; } + catch (Interface.FolderMissingException) { throw; } + catch { if (!useNewContext) /* retry */ doDelete(remotename, true); else throw; } + finally { } } #endregion diff --git a/Duplicati/Library/Backend/SharePoint/packages.config b/Duplicati/Library/Backend/SharePoint/packages.config deleted file mode 100644 index 150e491af..000000000 --- a/Duplicati/Library/Backend/SharePoint/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file From f82db9ec1ab17e3cadc36db5f99cef9f78bde114 Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 20:05:36 +0100 Subject: [PATCH 4/8] Streamlining. Added separate OneDriveForBusiness backen --- ...uplicati.Library.Backend.SharePoint.csproj | 1 + .../SharePoint/OneDriveForBusinessBackend.cs | 47 +++++++++++++++++++ .../Backend/SharePoint/SharePointBackend.cs | 24 ++++++---- .../Library/Backend/SharePoint/Strings.cs | 12 +++-- 4 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs diff --git a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj index 75c53d317..26d13e691 100644 --- a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj +++ b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj @@ -48,6 +48,7 @@ + diff --git a/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs b/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs new file mode 100644 index 000000000..6d5ab422d --- /dev/null +++ b/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs @@ -0,0 +1,47 @@ +#region Disclaimer / License +// Copyright (C) 2016, The Duplicati Team +// http://www.duplicati.com, info@duplicati.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +#endregion + +namespace Duplicati.Library.Backend +{ + /// + /// Shadow class above SharePointBackend to provide an extra protocol key for OneDrive for Business. + /// Right now, OneDrive for Business *IS* SharePoint. But if MS turns funny sometimes in the future and + /// moves away from SharePoint as OD4B base, this allows to reimplement it without breaking existing + /// configurations... + /// + public class OneDriveForBusinessBackend : SharePointBackend + { + public override string ProtocolKey + { + get { return "od4b"; } + } + + public override string DisplayName + { + get { return Strings.OneDriveForBusiness.DisplayName; } + } + + public override string Description + { + get { return Strings.OneDriveForBusiness.Description; } + } + + } +} diff --git a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs index cddf4a7cb..f7bd1d0ae 100644 --- a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs +++ b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs @@ -30,6 +30,7 @@ using Microsoft.SharePoint.Client; // Plain 'using' for extension methods namespace Duplicati.Library.Backend { + /// /// Class implementing Duplicati's backend for SharePoint. /// @@ -66,17 +67,27 @@ namespace Duplicati.Library.Backend #region [Public Properties] - public string DisplayName + public virtual string ProtocolKey + { + get { return "mssp"; } + } + + public virtual string DisplayName { get { return Strings.SharePoint.DisplayName; } } - public string ProtocolKey + public virtual string Description { - get { return "sp"; } + get { return Strings.SharePoint.Description; } } - public IList SupportedCommands + public virtual bool SupportsStreaming + { + get { return true; } + } + + public virtual IList SupportedCommands { get { @@ -88,11 +99,6 @@ namespace Duplicati.Library.Backend } } - public string Description - { - get { return Strings.SharePoint.Description; } - } - #endregion #region [Constructors] diff --git a/Duplicati/Library/Backend/SharePoint/Strings.cs b/Duplicati/Library/Backend/SharePoint/Strings.cs index 154277d3e..59e45509d 100644 --- a/Duplicati/Library/Backend/SharePoint/Strings.cs +++ b/Duplicati/Library/Backend/SharePoint/Strings.cs @@ -3,8 +3,8 @@ namespace Duplicati.Library.Backend.Strings { internal static class SharePoint { - public static string Description { get { return LC.L(@"Supports connections to a SharePoint server which includes OneDrive for Business. Allowed formats (here to OneDrive for Business) are ""sp://tennant.sharepoint.com/personal/username_domain/Documents/subfolder"" or ""sp://username:password@tennant.sharepoint.com/personal/username_domain/Documents/folder"". For other SharePoint websites, use a double slash '//' in the path to denote the web from the documents folder."); } } - + public static string DisplayName { get { return LC.L(@"Microsoft SharePoint"); } } + public static string Description { get { return LC.L(@"Supports connections to a SharePoint server (including OneDrive for Business). Allowed formats are ""mssp://tennant.sharepoint.com/PathToWeb//BaseDocLibrary/subfolder"" or ""mssp://username:password@tennant.sharepoint.com/PathToWeb//BaseDocLibrary/subfolder"". Use a double slash '//' in the path to denote the web from the documents library."); } } public static string DescriptionAuthPasswordLong { get { return LC.L(@"The password used to connect to the server. This may also be supplied as the environment variable ""AUTH_PASSWORD""."); } } public static string DescriptionAuthPasswordShort { get { return LC.L(@"Supplies the password used to connect to the server"); } } public static string DescriptionAuthUsernameLong { get { return LC.L(@"The username used to connect to the server. This may also be supplied as the environment variable ""AUTH_USERNAME""."); } } @@ -12,10 +12,14 @@ namespace Duplicati.Library.Backend.Strings public static string DescriptionIntegratedAuthenticationLong { get { return LC.L(@"If the server and client both supports integrated authentication, this option enables that authentication method. This is likely only available with windows servers and clients."); } } public static string DescriptionIntegratedAuthenticationShort { get { return LC.L(@"Use windows integrated authentication to connect to the server"); } } - public static string DisplayName { get { return LC.L(@"SharePoint"); } } public static string MissingElementError(string serverrelpath, string hosturl) { return LC.L(@"Element with path '{0}' not found on host '{1}'.", serverrelpath, hosturl); } - public static string NoSharePointWebFoundError(string url) { return LC.L(@"No SharePoint web could be logged in to at path '{0}'. Maybe wrong credentials. Or try using '//' in path to separate web from folder path.", url); } public static string WebTitleReadFailedError { get { return LC.L(@"Everything seemed alright, but then web title could not be read to test connection. Something's wrong."); } } } + + internal static class OneDriveForBusiness + { + public static string DisplayName { get { return LC.L(@"Microsoft OneDrive for Business"); } } + public static string Description { get { return LC.L(@"Supports connections to Microsoft OneDrive for Business. Allowed formats are ""od4b://tennant.sharepoint.com/personal/username_domain/Documents/subfolder"" or ""od4b://username:password@tennant.sharepoint.com/personal/username_domain/Documents/folder"". You can use a double slash '//' in the path to denote the base path from the documents folder."); } } + } } From 3ace04baad26c4eb582c599c89495dffb34b659c Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 20:43:14 +0100 Subject: [PATCH 5/8] Added constructors to OD4B backend --- .../SharePoint/OneDriveForBusinessBackend.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs b/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs index 6d5ab422d..bf93ddec8 100644 --- a/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs +++ b/Duplicati/Library/Backend/SharePoint/OneDriveForBusinessBackend.cs @@ -18,6 +18,13 @@ // #endregion +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Duplicati.Library.Interface; + namespace Duplicati.Library.Backend { /// @@ -43,5 +50,14 @@ namespace Duplicati.Library.Backend get { return Strings.OneDriveForBusiness.Description; } } + public OneDriveForBusinessBackend() + :base () + { } + + public OneDriveForBusinessBackend(string url, Dictionary options) + : base(url, options) + { } + + } } From d0924a2104933a838aa9fb4c65e546db538a0655 Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 21:10:04 +0100 Subject: [PATCH 6/8] Added option delete-to-recycler --- .../Library/Backend/SharePoint/SharePointBackend.cs | 11 ++++++++--- Duplicati/Library/Backend/SharePoint/Strings.cs | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs index f7bd1d0ae..e2792f005 100644 --- a/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs +++ b/Duplicati/Library/Backend/SharePoint/SharePointBackend.cs @@ -57,6 +57,8 @@ namespace Duplicati.Library.Backend private string m_serverRelPath; /// User's credentials to create client context private System.Net.ICredentials m_userInfo; + /// Flag indicating to move files to recycler on deletion. + private bool m_deleteToRecycler = false; /// URL to SharePoint web. Will be determined from m_orgUri on first use. private string m_spWebUrl; @@ -95,6 +97,7 @@ namespace Duplicati.Library.Backend new CommandLineArgument("auth-password", CommandLineArgument.ArgumentType.Password, Strings.SharePoint.DescriptionAuthPasswordShort, Strings.SharePoint.DescriptionAuthPasswordLong), new CommandLineArgument("auth-username", CommandLineArgument.ArgumentType.String, Strings.SharePoint.DescriptionAuthUsernameShort, Strings.SharePoint.DescriptionAuthUsernameLong), new CommandLineArgument("integrated-authentication", CommandLineArgument.ArgumentType.Boolean, Strings.SharePoint.DescriptionIntegratedAuthenticationShort, Strings.SharePoint.DescriptionIntegratedAuthenticationLong), + new CommandLineArgument("delete-to-recycler", CommandLineArgument.ArgumentType.Boolean, Strings.SharePoint.DescriptionUseRecyclerShort, Strings.SharePoint.DescriptionUseRecyclerLong), }); } } @@ -108,6 +111,8 @@ namespace Duplicati.Library.Backend public SharePointBackend(string url, Dictionary options) { + m_deleteToRecycler = Utility.Utility.ParseBoolOption(options, "delete-to-recycler"); + var u = new Utility.Uri(url); u.RequireHost(); @@ -503,9 +508,9 @@ namespace Duplicati.Library.Backend if (!remoteFile.Exists) throw new Interface.FileMissingException(Strings.SharePoint.MissingElementError(fileurl, m_spWebUrl)); - // allow optionally?: remoteFile.Recycle(); - remoteFile.DeleteObject(); - // should not be necessary: remoteFile.Update(); + if (m_deleteToRecycler) remoteFile.Recycle(); + else remoteFile.DeleteObject(); + ctx.ExecuteQuery(); } diff --git a/Duplicati/Library/Backend/SharePoint/Strings.cs b/Duplicati/Library/Backend/SharePoint/Strings.cs index 59e45509d..8b76d8922 100644 --- a/Duplicati/Library/Backend/SharePoint/Strings.cs +++ b/Duplicati/Library/Backend/SharePoint/Strings.cs @@ -11,7 +11,9 @@ namespace Duplicati.Library.Backend.Strings public static string DescriptionAuthUsernameShort { get { return LC.L(@"Supplies the username used to connect to the server"); } } public static string DescriptionIntegratedAuthenticationLong { get { return LC.L(@"If the server and client both supports integrated authentication, this option enables that authentication method. This is likely only available with windows servers and clients."); } } public static string DescriptionIntegratedAuthenticationShort { get { return LC.L(@"Use windows integrated authentication to connect to the server"); } } - + public static string DescriptionUseRecyclerLong { get { return LC.L(@"Use this option to have files moved to the recycle bin folder instead of removing them permanently when compacting or deleting backups."); } } + public static string DescriptionUseRecyclerShort { get { return LC.L(@"Move deleted files to the recycle bin."); } } + public static string MissingElementError(string serverrelpath, string hosturl) { return LC.L(@"Element with path '{0}' not found on host '{1}'.", serverrelpath, hosturl); } public static string NoSharePointWebFoundError(string url) { return LC.L(@"No SharePoint web could be logged in to at path '{0}'. Maybe wrong credentials. Or try using '//' in path to separate web from folder path.", url); } public static string WebTitleReadFailedError { get { return LC.L(@"Everything seemed alright, but then web title could not be read to test connection. Something's wrong."); } } From e0223ba9c7de2d2ec6dfc679a44702bb720bc9cf Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 21:19:05 +0100 Subject: [PATCH 7/8] fix typo --- Duplicati/Library/Backend/SharePoint/Strings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Duplicati/Library/Backend/SharePoint/Strings.cs b/Duplicati/Library/Backend/SharePoint/Strings.cs index 8b76d8922..ddea35e9b 100644 --- a/Duplicati/Library/Backend/SharePoint/Strings.cs +++ b/Duplicati/Library/Backend/SharePoint/Strings.cs @@ -12,7 +12,7 @@ namespace Duplicati.Library.Backend.Strings public static string DescriptionIntegratedAuthenticationLong { get { return LC.L(@"If the server and client both supports integrated authentication, this option enables that authentication method. This is likely only available with windows servers and clients."); } } public static string DescriptionIntegratedAuthenticationShort { get { return LC.L(@"Use windows integrated authentication to connect to the server"); } } public static string DescriptionUseRecyclerLong { get { return LC.L(@"Use this option to have files moved to the recycle bin folder instead of removing them permanently when compacting or deleting backups."); } } - public static string DescriptionUseRecyclerShort { get { return LC.L(@"Move deleted files to the recycle bin."); } } + public static string DescriptionUseRecyclerShort { get { return LC.L(@"Move deleted files to the recycle bin"); } } public static string MissingElementError(string serverrelpath, string hosturl) { return LC.L(@"Element with path '{0}' not found on host '{1}'.", serverrelpath, hosturl); } public static string NoSharePointWebFoundError(string url) { return LC.L(@"No SharePoint web could be logged in to at path '{0}'. Maybe wrong credentials. Or try using '//' in path to separate web from folder path.", url); } From 46e2dcac412983dce4678613cd7fa014a8dc5e8a Mon Sep 17 00:00:00 2001 From: FootStark Date: Tue, 22 Mar 2016 21:47:12 +0100 Subject: [PATCH 8/8] Added strong name --- .../Duplicati.Library.Backend.SharePoint.csproj | 7 +++++++ .../Library/Backend/SharePoint/Duplicati.snk | Bin 0 -> 596 bytes 2 files changed, 7 insertions(+) create mode 100644 Duplicati/Library/Backend/SharePoint/Duplicati.snk diff --git a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj index 26d13e691..ce46170ec 100644 --- a/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj +++ b/Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj @@ -29,6 +29,12 @@ prompt 4 + + true + + + Duplicati.snk + False @@ -55,6 +61,7 @@ + diff --git a/Duplicati/Library/Backend/SharePoint/Duplicati.snk b/Duplicati/Library/Backend/SharePoint/Duplicati.snk new file mode 100644 index 0000000000000000000000000000000000000000..e0c1e2dd86119728adaeefc5f14f2e597dabceeb GIT binary patch literal 596 zcmZQ)VqjoUVPFUfb~IvOVPIfnU}U&>ZqBFG;TL!xbC@f=sW??FHp%RuD04u?d|@dM zp47GKm!Hl%dFaei`<5*qzAgXqbzUyVi_n}?OMO*3eH|OE?krr| zFEl@9)L*-L?Q8KJPtTajTTV9l{O!|eX~_>-AD#yZ=6m07=(;Lz?67b_fmBH7>6XPy zU(fsaYt6=H^BbXYGcsePe{{ZI&XLwz9=grGu+&OTZN+`>n#aL@H_qHKNL{x|{OX?< z|2?cWgj<|a*&Wn5qtR68+v$gad`lNSIGSM4$`K*nE_8`M(8%hLo?+%X^GU{qHtmys zKah1))%qg*H$8)~{Blp<;-4#gv3~y3w(VO5op^Nq_Qo%mz;QX`zXzj&$<=3DJ8QK~doHe9_tNXtnN&4~oeV$j z^o2{LFP>08&A&p7*^IG!Mnm`8x8Lq$er`8lWi+;b>yXC%XWDAv$p-_y)7-T(lU$#a z#IstS7OnePcICwJ+w3(l+=qQ0gsr@P>rWc{j)4B;9b4MXBe*rpp6LBh{}W&Ed`G$N IQKi@%02MtM!T