From 857791adda753a0f94da8317bbc019378b1f09bd Mon Sep 17 00:00:00 2001
From: Tobias Markmann <tm@ayena.de>
Date: Mon, 25 Apr 2016 21:43:29 +0200
Subject: Convert hard tabs to four spaces in all our SConscript/*.py files

Test-Information:

Test that it still builds and unit test pass on OS X 10.11.4.

Change-Id: I2eb4a0b707991aee553db36a8cd1ae28b813acab

diff --git a/3rdParty/Boost/SConscript b/3rdParty/Boost/SConscript
index 6d04c0d..8708eb9 100644
--- a/3rdParty/Boost/SConscript
+++ b/3rdParty/Boost/SConscript
@@ -4,16 +4,16 @@ Import("env")
 
 # FIXME: Remove this when Boost UUID is present on most distros
 if env.get("BOOST_BUNDLED_UUID_ONLY", False) :
-	# Cherry pick UUID out of the 3rdParty dir, install it in a separate
-	# dir, and use this as an include path.
-	if env["SCONS_STAGE"] == "flags" :
-		if env["PLATFORM"] == "win32" :
-			uuid_cppflags = ["/I" + Dir("uuid").abspath]
-		else :
-			uuid_cppflags = [("-isystem", Dir("uuid").abspath)]
-		env["BOOST_FLAGS"]["CPPFLAGS"] = env["BOOST_FLAGS"].get("CPPFLAGS", []) + uuid_cppflags
-	elif env["SCONS_STAGE"] == "build" :
-		env.Install("uuid/boost", "src/boost/uuid")
+    # Cherry pick UUID out of the 3rdParty dir, install it in a separate
+    # dir, and use this as an include path.
+    if env["SCONS_STAGE"] == "flags" :
+        if env["PLATFORM"] == "win32" :
+            uuid_cppflags = ["/I" + Dir("uuid").abspath]
+        else :
+            uuid_cppflags = [("-isystem", Dir("uuid").abspath)]
+        env["BOOST_FLAGS"]["CPPFLAGS"] = env["BOOST_FLAGS"].get("CPPFLAGS", []) + uuid_cppflags
+    elif env["SCONS_STAGE"] == "build" :
+        env.Install("uuid/boost", "src/boost/uuid")
 
 elif env.get("BOOST_BUNDLED", False) :
 
@@ -21,153 +21,153 @@ elif env.get("BOOST_BUNDLED", False) :
 # Common
 ################################################################################
 
-	cppdefines = ["BOOST_ALL_NO_LIB", "BOOST_SYSTEM_NO_DEPRECATED"]
-	#if env["PLATFORM"] == "darwin" :
-	#	cppdefines += ["BOOST_ASIO_DISABLE_KQUEUE"]
-	if env["PLATFORM"] == "win32" :
-		cppflags = ["/I" + Dir("#/3rdParty/Boost/src").abspath]
-	else :
-		cppflags = [("-isystem", Dir("#/3rdParty/Boost/src").abspath)]
+    cppdefines = ["BOOST_ALL_NO_LIB", "BOOST_SYSTEM_NO_DEPRECATED"]
+    #if env["PLATFORM"] == "darwin" :
+    #   cppdefines += ["BOOST_ASIO_DISABLE_KQUEUE"]
+    if env["PLATFORM"] == "win32" :
+        cppflags = ["/I" + Dir("#/3rdParty/Boost/src").abspath]
+    else :
+        cppflags = [("-isystem", Dir("#/3rdParty/Boost/src").abspath)]
 
 
 ################################################################################
 # Flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["BOOST_FLAGS"] = {
-				"CPPFLAGS": cppflags,
-				"CPPDEFINES": cppdefines,
-				"LIBPATH": [Dir(".")],
-				"LIBS": ["Swiften_Boost"]
-			}
-		if env["PLATFORM"] == "win32" :
-			# 0x0600 = _WIN32_WINNT_VISTA
-			env["BOOST_FLAGS"]["CPPDEFINES"] += [("_WIN32_WINNT", "0x0600")]
-			if env["PLATFORM"] == "cygwin" :
-				env["BOOST_FLAGS"]["CPPDEFINES"] += ["__USE_W32_SOCKETS"]
-		elif env["PLATFORM"] == "posix" :
-			env["BOOST_FLAGS"]["LIBS"] += ["rt"]
+    if env["SCONS_STAGE"] == "flags" :
+        env["BOOST_FLAGS"] = {
+                "CPPFLAGS": cppflags,
+                "CPPDEFINES": cppdefines,
+                "LIBPATH": [Dir(".")],
+                "LIBS": ["Swiften_Boost"]
+            }
+        if env["PLATFORM"] == "win32" :
+            # 0x0600 = _WIN32_WINNT_VISTA
+            env["BOOST_FLAGS"]["CPPDEFINES"] += [("_WIN32_WINNT", "0x0600")]
+            if env["PLATFORM"] == "cygwin" :
+                env["BOOST_FLAGS"]["CPPDEFINES"] += ["__USE_W32_SOCKETS"]
+        elif env["PLATFORM"] == "posix" :
+            env["BOOST_FLAGS"]["LIBS"] += ["rt"]
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")])
-		if os.path.basename(env["CXX"]) in ["clang", "clang++"] :
-			myenv.Append(CXXFLAGS = [
-				"-Wno-deprecated-register", # The register keyword will be reserved in C++17, we only use C++11 though.
-			])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")])
+        if os.path.basename(env["CXX"]) in ["clang", "clang++"] :
+            myenv.Append(CXXFLAGS = [
+                "-Wno-deprecated-register", # The register keyword will be reserved in C++17, we only use C++11 though.
+            ])
 
-		sources = [
-				"src/libs/atomic/src/lockpool.cpp",
-				"src/libs/date_time/src/gregorian/date_generators.cpp",
-				"src/libs/date_time/src/gregorian/greg_month.cpp",
-				"src/libs/date_time/src/gregorian/greg_weekday.cpp",
-				"src/libs/date_time/src/gregorian/gregorian_types.cpp",
-				"src/libs/date_time/src/posix_time/posix_time_types.cpp",
-				"src/libs/system/src/error_code.cpp",
-				"src/libs/filesystem/src/codecvt_error_category.cpp",
-				"src/libs/filesystem/src/operations.cpp",
-				"src/libs/filesystem/src/path.cpp",
-				"src/libs/filesystem/src/path_traits.cpp",
-				"src/libs/filesystem/src/portability.cpp",
-				"src/libs/filesystem/src/unique_path.cpp",
-				"src/libs/filesystem/src/windows_file_codecvt.cpp",
-				"src/libs/filesystem/src/filesystem_utf8_codecvt_facet.cpp",
-				"src/libs/regex/src/c_regex_traits.cpp",
-				"src/libs/regex/src/cpp_regex_traits.cpp",
-				"src/libs/regex/src/cregex.cpp",
-				"src/libs/regex/src/fileiter.cpp",
-				"src/libs/regex/src/icu.cpp",
-				"src/libs/regex/src/instances.cpp",
-				"src/libs/regex/src/posix_api.cpp",
-				"src/libs/regex/src/regex.cpp",
-				"src/libs/regex/src/regex_debug.cpp",
-				"src/libs/regex/src/regex_raw_buffer.cpp",
-				"src/libs/regex/src/regex_traits_defaults.cpp",
-				"src/libs/regex/src/static_mutex.cpp",
-				"src/libs/regex/src/w32_regex_traits.cpp",
-				"src/libs/regex/src/wc_regex_traits.cpp",
-				"src/libs/regex/src/wide_posix_api.cpp",
-				"src/libs/regex/src/winstances.cpp",
-				"src/libs/regex/src/usinstances.cpp",
-				"src/libs/program_options/src/cmdline.cpp",
-				"src/libs/program_options/src/config_file.cpp",
-				"src/libs/program_options/src/convert.cpp",
-				"src/libs/program_options/src/options_description.cpp",
-				"src/libs/program_options/src/positional_options.cpp",
-				"src/libs/program_options/src/split.cpp",
-				"src/libs/program_options/src/program_options_utf8_codecvt_facet.cpp",
-				"src/libs/program_options/src/value_semantic.cpp",
-				"src/libs/program_options/src/variables_map.cpp",
-				"src/libs/program_options/src/winmain.cpp",
-				"src/libs/serialization/src/archive_exception.cpp",
-				"src/libs/serialization/src/basic_archive.cpp",
-				"src/libs/serialization/src/basic_iarchive.cpp",
-				"src/libs/serialization/src/basic_iserializer.cpp",
-				"src/libs/serialization/src/basic_oarchive.cpp",
-				"src/libs/serialization/src/basic_oserializer.cpp",
-				"src/libs/serialization/src/basic_pointer_iserializer.cpp",
-				"src/libs/serialization/src/basic_pointer_oserializer.cpp",
-				"src/libs/serialization/src/basic_serializer_map.cpp",
-				"src/libs/serialization/src/basic_text_iprimitive.cpp",
-				"src/libs/serialization/src/basic_text_oprimitive.cpp",
-				"src/libs/serialization/src/basic_text_wiprimitive.cpp",
-				"src/libs/serialization/src/basic_text_woprimitive.cpp",
-				"src/libs/serialization/src/basic_xml_archive.cpp",
-				"src/libs/serialization/src/binary_iarchive.cpp",
-				"src/libs/serialization/src/binary_oarchive.cpp",
-				"src/libs/serialization/src/binary_wiarchive.cpp",
-				"src/libs/serialization/src/binary_woarchive.cpp",
-				"src/libs/serialization/src/codecvt_null.cpp",
-				"src/libs/serialization/src/extended_type_info.cpp",
-				"src/libs/serialization/src/extended_type_info_no_rtti.cpp",
-				"src/libs/serialization/src/extended_type_info_typeid.cpp",
-				"src/libs/serialization/src/polymorphic_iarchive.cpp",
-				"src/libs/serialization/src/polymorphic_oarchive.cpp",
-				"src/libs/serialization/src/stl_port.cpp",
-				"src/libs/serialization/src/text_iarchive.cpp",
-				"src/libs/serialization/src/text_oarchive.cpp",
-				"src/libs/serialization/src/text_wiarchive.cpp",
-				"src/libs/serialization/src/text_woarchive.cpp",
-				"src/libs/serialization/src/utf8_codecvt_facet.cpp",
-				"src/libs/serialization/src/void_cast.cpp",
-				"src/libs/serialization/src/xml_archive_exception.cpp",
-				"src/libs/serialization/src/xml_grammar.cpp",
-				"src/libs/serialization/src/xml_iarchive.cpp",
-				"src/libs/serialization/src/xml_oarchive.cpp",
-				"src/libs/serialization/src/xml_wgrammar.cpp",
-				"src/libs/serialization/src/xml_wiarchive.cpp",
-				"src/libs/serialization/src/xml_woarchive.cpp"]
+        sources = [
+                "src/libs/atomic/src/lockpool.cpp",
+                "src/libs/date_time/src/gregorian/date_generators.cpp",
+                "src/libs/date_time/src/gregorian/greg_month.cpp",
+                "src/libs/date_time/src/gregorian/greg_weekday.cpp",
+                "src/libs/date_time/src/gregorian/gregorian_types.cpp",
+                "src/libs/date_time/src/posix_time/posix_time_types.cpp",
+                "src/libs/system/src/error_code.cpp",
+                "src/libs/filesystem/src/codecvt_error_category.cpp",
+                "src/libs/filesystem/src/operations.cpp",
+                "src/libs/filesystem/src/path.cpp",
+                "src/libs/filesystem/src/path_traits.cpp",
+                "src/libs/filesystem/src/portability.cpp",
+                "src/libs/filesystem/src/unique_path.cpp",
+                "src/libs/filesystem/src/windows_file_codecvt.cpp",
+                "src/libs/filesystem/src/filesystem_utf8_codecvt_facet.cpp",
+                "src/libs/regex/src/c_regex_traits.cpp",
+                "src/libs/regex/src/cpp_regex_traits.cpp",
+                "src/libs/regex/src/cregex.cpp",
+                "src/libs/regex/src/fileiter.cpp",
+                "src/libs/regex/src/icu.cpp",
+                "src/libs/regex/src/instances.cpp",
+                "src/libs/regex/src/posix_api.cpp",
+                "src/libs/regex/src/regex.cpp",
+                "src/libs/regex/src/regex_debug.cpp",
+                "src/libs/regex/src/regex_raw_buffer.cpp",
+                "src/libs/regex/src/regex_traits_defaults.cpp",
+                "src/libs/regex/src/static_mutex.cpp",
+                "src/libs/regex/src/w32_regex_traits.cpp",
+                "src/libs/regex/src/wc_regex_traits.cpp",
+                "src/libs/regex/src/wide_posix_api.cpp",
+                "src/libs/regex/src/winstances.cpp",
+                "src/libs/regex/src/usinstances.cpp",
+                "src/libs/program_options/src/cmdline.cpp",
+                "src/libs/program_options/src/config_file.cpp",
+                "src/libs/program_options/src/convert.cpp",
+                "src/libs/program_options/src/options_description.cpp",
+                "src/libs/program_options/src/positional_options.cpp",
+                "src/libs/program_options/src/split.cpp",
+                "src/libs/program_options/src/program_options_utf8_codecvt_facet.cpp",
+                "src/libs/program_options/src/value_semantic.cpp",
+                "src/libs/program_options/src/variables_map.cpp",
+                "src/libs/program_options/src/winmain.cpp",
+                "src/libs/serialization/src/archive_exception.cpp",
+                "src/libs/serialization/src/basic_archive.cpp",
+                "src/libs/serialization/src/basic_iarchive.cpp",
+                "src/libs/serialization/src/basic_iserializer.cpp",
+                "src/libs/serialization/src/basic_oarchive.cpp",
+                "src/libs/serialization/src/basic_oserializer.cpp",
+                "src/libs/serialization/src/basic_pointer_iserializer.cpp",
+                "src/libs/serialization/src/basic_pointer_oserializer.cpp",
+                "src/libs/serialization/src/basic_serializer_map.cpp",
+                "src/libs/serialization/src/basic_text_iprimitive.cpp",
+                "src/libs/serialization/src/basic_text_oprimitive.cpp",
+                "src/libs/serialization/src/basic_text_wiprimitive.cpp",
+                "src/libs/serialization/src/basic_text_woprimitive.cpp",
+                "src/libs/serialization/src/basic_xml_archive.cpp",
+                "src/libs/serialization/src/binary_iarchive.cpp",
+                "src/libs/serialization/src/binary_oarchive.cpp",
+                "src/libs/serialization/src/binary_wiarchive.cpp",
+                "src/libs/serialization/src/binary_woarchive.cpp",
+                "src/libs/serialization/src/codecvt_null.cpp",
+                "src/libs/serialization/src/extended_type_info.cpp",
+                "src/libs/serialization/src/extended_type_info_no_rtti.cpp",
+                "src/libs/serialization/src/extended_type_info_typeid.cpp",
+                "src/libs/serialization/src/polymorphic_iarchive.cpp",
+                "src/libs/serialization/src/polymorphic_oarchive.cpp",
+                "src/libs/serialization/src/stl_port.cpp",
+                "src/libs/serialization/src/text_iarchive.cpp",
+                "src/libs/serialization/src/text_oarchive.cpp",
+                "src/libs/serialization/src/text_wiarchive.cpp",
+                "src/libs/serialization/src/text_woarchive.cpp",
+                "src/libs/serialization/src/utf8_codecvt_facet.cpp",
+                "src/libs/serialization/src/void_cast.cpp",
+                "src/libs/serialization/src/xml_archive_exception.cpp",
+                "src/libs/serialization/src/xml_grammar.cpp",
+                "src/libs/serialization/src/xml_iarchive.cpp",
+                "src/libs/serialization/src/xml_oarchive.cpp",
+                "src/libs/serialization/src/xml_wgrammar.cpp",
+                "src/libs/serialization/src/xml_wiarchive.cpp",
+                "src/libs/serialization/src/xml_woarchive.cpp"]
 
-		if env["PLATFORM"] != "darwin" or env["target"] == "native" :
-			sources += [
-					"src/libs/program_options/src/parsers.cpp",
-				]
+        if env["PLATFORM"] != "darwin" or env["target"] == "native" :
+            sources += [
+                    "src/libs/program_options/src/parsers.cpp",
+                ]
 
-		myenv.MergeFlags(myenv["BOOST_FLAGS"])
-		myenv.StaticLibrary("Swiften_Boost", sources)
+        myenv.MergeFlags(myenv["BOOST_FLAGS"])
+        myenv.StaticLibrary("Swiften_Boost", sources)
 
-		if ARGUMENTS.get("BOOST_BUILD_BCP") or env.get("BOOST_BUILD_BCP", False) or env.GetOption("clean") :
-			bcp_env = myenv.Clone()
-			bcp_env.MergeFlags(bcp_env["BOOST_FLAGS"])
-			bcp_env.Append(CPPPATH = ["src/tools/bcp"])
-			bcp_env.Replace(CPPDEFINES = [flag for flag in bcp_env["CPPDEFINES"] if flag[0] != "BOOST_FILESYSTEM_VERSION"])
-			bcp_env.UseFlags(bcp_env["PLATFORM_FLAGS"])
-			bcp_env.Program("bcp", [
-					"src/tools/bcp/add_path.cpp",
-					"src/tools/bcp/add_dependent_lib.cpp",
-					"src/tools/bcp/bcp_imp.cpp",
-					"src/tools/bcp/copy_path.cpp",
-					"src/tools/bcp/file_types.cpp",
-					"src/tools/bcp/fileview.cpp",
-					"src/tools/bcp/licence_info.cpp",
-					"src/tools/bcp/output_licence_info.cpp",
-					"src/tools/bcp/path_operations.cpp",
-					"src/tools/bcp/scan_cvs_path.cpp",
-					"src/tools/bcp/scan_licence.cpp",
-					"bcp.cpp",
-				])
+        if ARGUMENTS.get("BOOST_BUILD_BCP") or env.get("BOOST_BUILD_BCP", False) or env.GetOption("clean") :
+            bcp_env = myenv.Clone()
+            bcp_env.MergeFlags(bcp_env["BOOST_FLAGS"])
+            bcp_env.Append(CPPPATH = ["src/tools/bcp"])
+            bcp_env.Replace(CPPDEFINES = [flag for flag in bcp_env["CPPDEFINES"] if flag[0] != "BOOST_FILESYSTEM_VERSION"])
+            bcp_env.UseFlags(bcp_env["PLATFORM_FLAGS"])
+            bcp_env.Program("bcp", [
+                    "src/tools/bcp/add_path.cpp",
+                    "src/tools/bcp/add_dependent_lib.cpp",
+                    "src/tools/bcp/bcp_imp.cpp",
+                    "src/tools/bcp/copy_path.cpp",
+                    "src/tools/bcp/file_types.cpp",
+                    "src/tools/bcp/fileview.cpp",
+                    "src/tools/bcp/licence_info.cpp",
+                    "src/tools/bcp/output_licence_info.cpp",
+                    "src/tools/bcp/path_operations.cpp",
+                    "src/tools/bcp/scan_cvs_path.cpp",
+                    "src/tools/bcp/scan_licence.cpp",
+                    "bcp.cpp",
+                ])
diff --git a/3rdParty/Breakpad/SConscript b/3rdParty/Breakpad/SConscript
index 142634b..3b9447d 100644
--- a/3rdParty/Breakpad/SConscript
+++ b/3rdParty/Breakpad/SConscript
@@ -7,91 +7,91 @@ if env["PLATFORM"] == "win32" :
 # Module flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["HAVE_BREAKPAD"] = True
-		env["BREAKPAD_FLAGS"] = {
-				"CPPPATH": [env.Dir("src")],
-				"CPPFLAGS": [],
-				"LIBPATH": [env.Dir(".")],
-				"LIBS": ["Swift_BreakPad"]
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["HAVE_BREAKPAD"] = True
+        env["BREAKPAD_FLAGS"] = {
+                "CPPPATH": [env.Dir("src")],
+                "CPPFLAGS": [],
+                "LIBPATH": [env.Dir(".")],
+                "LIBS": ["Swift_BreakPad"]
+            }
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")])
-		myenv.Append(CPPPATH = ["src"])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")])
+        myenv.Append(CPPPATH = ["src"])
 
-		lib_sources = []
-		dumpsyms_sources = []
-		common_sources = []
-		if myenv["PLATFORM"] == "win32" :
-			myenv.Append(CPPDEFINES = ["UNICODE"])
-			lib_sources += [
-				"src/client/windows/handler/exception_handler.cc",
-				"src/client/windows/crash_generation/crash_generation_client.cc",
-				"src/common/windows/guid_string.cc",
-			]
+        lib_sources = []
+        dumpsyms_sources = []
+        common_sources = []
+        if myenv["PLATFORM"] == "win32" :
+            myenv.Append(CPPDEFINES = ["UNICODE"])
+            lib_sources += [
+                "src/client/windows/handler/exception_handler.cc",
+                "src/client/windows/crash_generation/crash_generation_client.cc",
+                "src/common/windows/guid_string.cc",
+            ]
 
-		if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" :
-			lib_sources += [
-			]
-			common_sources += [
-				"src/common/md5.cc",
-			]
-		
-		if myenv["PLATFORM"] == "darwin" :
-			myenv.Append(CPPDEFINES = ["HAVE_MACH_O_NLIST_H"])
-			lib_sources += [
-				"src/client/mac/handler/exception_handler.cc",
-				"src/client/mac/handler/minidump_generator.cc",
-				"src/client/mac/handler/dynamic_images.cc",
-				"src/client/mac/handler/breakpad_nlist_64.cc",
-				"src/client/mac/crash_generation/crash_generation_client.cc",
-				"src/common/mac/MachIPC.mm",
-				"src/common/mac/string_utilities.cc",
-				"src/common/mac/bootstrap_compat.cc",
-				"src/client/minidump_file_writer.cc",
-				"src/common/string_conversion.cc",
-				"src/common/convert_UTF.c",
-			]
-			common_sources += [
-				"src/common/mac/macho_id.cc",
-				"src/common/mac/macho_walker.cc",
-				"src/common/mac/file_id.cc",
-				"src/common/mac/macho_utilities.cc",
-			]
-			dumpsyms_sources += [
-				"src/tools/mac/dump_syms/dump_syms_tool.mm",
-				"src/common/mac/dump_syms.mm",
-				"src/common/mac/macho_reader.cc",
-				"src/common/dwarf/bytereader.cc",
-				"src/common/dwarf/dwarf2reader.cc",
-				"src/common/dwarf/dwarf2diehandler.cc",
-				"src/common/dwarf_line_to_module.cc",
-				"src/common/dwarf_cfi_to_module.cc",
-				"src/common/dwarf_cu_to_module.cc",
-				"src/common/stabs_to_module.cc",
-				"src/common/stabs_reader.cc",
-				"src/common/module.cc",
-				"src/common/language.cc",
-			]
+        if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" :
+            lib_sources += [
+            ]
+            common_sources += [
+                "src/common/md5.cc",
+            ]
+        
+        if myenv["PLATFORM"] == "darwin" :
+            myenv.Append(CPPDEFINES = ["HAVE_MACH_O_NLIST_H"])
+            lib_sources += [
+                "src/client/mac/handler/exception_handler.cc",
+                "src/client/mac/handler/minidump_generator.cc",
+                "src/client/mac/handler/dynamic_images.cc",
+                "src/client/mac/handler/breakpad_nlist_64.cc",
+                "src/client/mac/crash_generation/crash_generation_client.cc",
+                "src/common/mac/MachIPC.mm",
+                "src/common/mac/string_utilities.cc",
+                "src/common/mac/bootstrap_compat.cc",
+                "src/client/minidump_file_writer.cc",
+                "src/common/string_conversion.cc",
+                "src/common/convert_UTF.c",
+            ]
+            common_sources += [
+                "src/common/mac/macho_id.cc",
+                "src/common/mac/macho_walker.cc",
+                "src/common/mac/file_id.cc",
+                "src/common/mac/macho_utilities.cc",
+            ]
+            dumpsyms_sources += [
+                "src/tools/mac/dump_syms/dump_syms_tool.mm",
+                "src/common/mac/dump_syms.mm",
+                "src/common/mac/macho_reader.cc",
+                "src/common/dwarf/bytereader.cc",
+                "src/common/dwarf/dwarf2reader.cc",
+                "src/common/dwarf/dwarf2diehandler.cc",
+                "src/common/dwarf_line_to_module.cc",
+                "src/common/dwarf_cfi_to_module.cc",
+                "src/common/dwarf_cu_to_module.cc",
+                "src/common/stabs_to_module.cc",
+                "src/common/stabs_reader.cc",
+                "src/common/module.cc",
+                "src/common/language.cc",
+            ]
 
-		if myenv["PLATFORM"] == "linux" :
-			dumpsyms_sources += ["src/tools/linux/dump_syms/dump_syms.cc"]
+        if myenv["PLATFORM"] == "linux" :
+            dumpsyms_sources += ["src/tools/linux/dump_syms/dump_syms.cc"]
 
-		common_objects = myenv.StaticObject(common_sources)
+        common_objects = myenv.StaticObject(common_sources)
 
-		myenv.StaticLibrary("Swift_BreakPad", lib_sources + common_objects)
+        myenv.StaticLibrary("Swift_BreakPad", lib_sources + common_objects)
 
-		#if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" :
-		#	myenv.Program("dump_syms", dumpsyms_sources + common_objects)
+        #if myenv["PLATFORM"] == "darwin" or myenv["PLATFORM"] == "linux" :
+        #   myenv.Program("dump_syms", dumpsyms_sources + common_objects)
 
 else :
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["HAVE_BREAKPAD"] = False
-		env["BREAKPAD_FLAGS"] = {}
+    if env["SCONS_STAGE"] == "flags" :
+        env["HAVE_BREAKPAD"] = False
+        env["BREAKPAD_FLAGS"] = {}
diff --git a/3rdParty/CppUnit/SConscript b/3rdParty/CppUnit/SConscript
index addc8ab..0b97289 100644
--- a/3rdParty/CppUnit/SConscript
+++ b/3rdParty/CppUnit/SConscript
@@ -2,65 +2,65 @@ Import("env")
 
 if env["TEST"] :
 
-	if env["PLATFORM"] == "win32" :
-		cppflags = ["/I" + Dir("src/include").abspath]
-	elif env["PLATFORM"] == "sunos" :
-		cppflags = [("-I" + Dir("src/include").abspath)]
-	else :
-		cppflags = [("-isystem", Dir("src/include").abspath)]
+    if env["PLATFORM"] == "win32" :
+        cppflags = ["/I" + Dir("src/include").abspath]
+    elif env["PLATFORM"] == "sunos" :
+        cppflags = [("-I" + Dir("src/include").abspath)]
+    else :
+        cppflags = [("-isystem", Dir("src/include").abspath)]
 
 ################################################################################
 # Module flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["CPPUNIT_FLAGS"] = {
-				"CPPPATH": [env.Dir(".")],
-				"CPPFLAGS": cppflags,
-				"LIBPATH": [env.Dir(".")],
-				"LIBS": ["Swiften_CppUnit"]
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["CPPUNIT_FLAGS"] = {
+                "CPPPATH": [env.Dir(".")],
+                "CPPFLAGS": cppflags,
+                "LIBPATH": [env.Dir(".")],
+                "LIBS": ["Swiften_CppUnit"]
+            }
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")])
-		myenv.Append(CPPPATH = ["src/include", "."])
-		sources = [
-				"src/src/cppunit/TextTestRunner.cpp",
-				"src/src/cppunit/TextTestProgressListener.cpp",
-				"src/src/cppunit/BriefTestProgressListener.cpp",
-				"src/src/cppunit/TextOutputter.cpp",
-				"src/src/cppunit/XmlOutputter.cpp",
-				"src/src/cppunit/XmlElement.cpp",
-				"src/src/cppunit/XmlDocument.cpp",
-				"src/src/cppunit/StringTools.cpp",
-				"src/src/cppunit/DefaultProtector.cpp",
-				"src/src/cppunit/Protector.cpp",
-				"src/src/cppunit/ProtectorChain.cpp",
-				"src/src/cppunit/SynchronizedObject.cpp",
-				"src/src/cppunit/SourceLine.cpp",
-				"src/src/cppunit/TestRunner.cpp",
-				"src/src/cppunit/TestFactoryRegistry.cpp",
-				"src/src/cppunit/TestSuite.cpp",
-				"src/src/cppunit/TestSuiteBuilderContext.cpp",
-				"src/src/cppunit/TestResult.cpp",
-				"src/src/cppunit/TestResultCollector.cpp",
-				"src/src/cppunit/TestSuccessListener.cpp",
-				"src/src/cppunit/TestComposite.cpp",
-				"src/src/cppunit/TestCase.cpp",
-				"src/src/cppunit/TestFailure.cpp",
-				"src/src/cppunit/TestLeaf.cpp",
-				"src/src/cppunit/TestNamer.cpp",
-				"src/src/cppunit/Asserter.cpp",
-				"src/src/cppunit/TypeInfoHelper.cpp",
-				"src/src/cppunit/Exception.cpp",
-				"src/src/cppunit/Message.cpp",
-				"src/src/cppunit/AdditionalMessage.cpp",
-				"src/src/cppunit/Test.cpp",
-				"src/src/cppunit/TestPath.cpp"
-			]
-		myenv.StaticLibrary("Swiften_CppUnit", sources)
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if not flag.startswith("-W")])
+        myenv.Append(CPPPATH = ["src/include", "."])
+        sources = [
+                "src/src/cppunit/TextTestRunner.cpp",
+                "src/src/cppunit/TextTestProgressListener.cpp",
+                "src/src/cppunit/BriefTestProgressListener.cpp",
+                "src/src/cppunit/TextOutputter.cpp",
+                "src/src/cppunit/XmlOutputter.cpp",
+                "src/src/cppunit/XmlElement.cpp",
+                "src/src/cppunit/XmlDocument.cpp",
+                "src/src/cppunit/StringTools.cpp",
+                "src/src/cppunit/DefaultProtector.cpp",
+                "src/src/cppunit/Protector.cpp",
+                "src/src/cppunit/ProtectorChain.cpp",
+                "src/src/cppunit/SynchronizedObject.cpp",
+                "src/src/cppunit/SourceLine.cpp",
+                "src/src/cppunit/TestRunner.cpp",
+                "src/src/cppunit/TestFactoryRegistry.cpp",
+                "src/src/cppunit/TestSuite.cpp",
+                "src/src/cppunit/TestSuiteBuilderContext.cpp",
+                "src/src/cppunit/TestResult.cpp",
+                "src/src/cppunit/TestResultCollector.cpp",
+                "src/src/cppunit/TestSuccessListener.cpp",
+                "src/src/cppunit/TestComposite.cpp",
+                "src/src/cppunit/TestCase.cpp",
+                "src/src/cppunit/TestFailure.cpp",
+                "src/src/cppunit/TestLeaf.cpp",
+                "src/src/cppunit/TestNamer.cpp",
+                "src/src/cppunit/Asserter.cpp",
+                "src/src/cppunit/TypeInfoHelper.cpp",
+                "src/src/cppunit/Exception.cpp",
+                "src/src/cppunit/Message.cpp",
+                "src/src/cppunit/AdditionalMessage.cpp",
+                "src/src/cppunit/Test.cpp",
+                "src/src/cppunit/TestPath.cpp"
+            ]
+        myenv.StaticLibrary("Swiften_CppUnit", sources)
diff --git a/3rdParty/Expat/SConscript b/3rdParty/Expat/SConscript
index c961483..56949aa 100644
--- a/3rdParty/Expat/SConscript
+++ b/3rdParty/Expat/SConscript
@@ -1,29 +1,29 @@
 Import(["env", "conf_env"])
 
 if env.get("EXPAT_BUNDLED", False) :
-	if env["SCONS_STAGE"] == "flags" :
-		env["EXPAT_FLAGS"] = {
-				"CPPDEFINES": ["XML_STATIC"],
-				"CPPPATH": [Dir("src")],
-				"LIBPATH": [Dir(".")],
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["EXPAT_FLAGS"] = {
+                "CPPDEFINES": ["XML_STATIC"],
+                "CPPPATH": [Dir("src")],
+                "LIBPATH": [Dir(".")],
+            }
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Append(CPPDEFINES = ["XML_STATIC", "HAVE_EXPAT_CONFIG_H"])
-		if env.get("BOOST_BUNDLED", False) :
-			myenv.Append(CPPPATH = [".", "src", "../Boost/src"])
-		else :
-			myenv.Append(CPPPATH = [".", "src"])
-			myenv.MergeFlags(env["BOOST_FLAGS"])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Append(CPPDEFINES = ["XML_STATIC", "HAVE_EXPAT_CONFIG_H"])
+        if env.get("BOOST_BUNDLED", False) :
+            myenv.Append(CPPPATH = [".", "src", "../Boost/src"])
+        else :
+            myenv.Append(CPPPATH = [".", "src"])
+            myenv.MergeFlags(env["BOOST_FLAGS"])
 
-		conf = Configure(conf_env)
-		if conf.CheckFunc('memmove') :
-			myenv.Append(CPPDEFINES = ["HAVE_MEMMOVE"])
-		conf.Finish()
+        conf = Configure(conf_env)
+        if conf.CheckFunc('memmove') :
+            myenv.Append(CPPDEFINES = ["HAVE_MEMMOVE"])
+        conf.Finish()
 
-		env["EXPAT_OBJECTS"] = myenv.SwiftenObject([
-				"src/xmltok.c",
-				"src/xmlparse.c",
-				"src/xmlrole.c"
-			])
+        env["EXPAT_OBJECTS"] = myenv.SwiftenObject([
+                "src/xmltok.c",
+                "src/xmlparse.c",
+                "src/xmlrole.c"
+            ])
diff --git a/3rdParty/Ldns/SConscript b/3rdParty/Ldns/SConscript
index a43bde7..eae2e5c 100644
--- a/3rdParty/Ldns/SConscript
+++ b/3rdParty/Ldns/SConscript
@@ -2,69 +2,68 @@ Import("env")
 
 if env.get("LDNS_BUNDLED", False) :
 
-	if env["PLATFORM"] == "win32" :
-		cppflags = ["/I" + Dir("#/3rdParty/Ldns/src/ldns").abspath]
-	else :
-		cppflags = [("-isystem", Dir("#/3rdParty/Ldns/src/ldns").abspath)]
+    if env["PLATFORM"] == "win32" :
+        cppflags = ["/I" + Dir("#/3rdParty/Ldns/src/ldns").abspath]
+    else :
+        cppflags = [("-isystem", Dir("#/3rdParty/Ldns/src/ldns").abspath)]
 
 
 ################################################################################
 # Flags
 ################################################################################
-    
-	if env["SCONS_STAGE"] == "flags" :
-		env["LDNS_FLAGS"] = {
-				"CPPPATH": [Dir("src/ldns")],
-				"CPPFLAGS": cppflags,
-				"LIBPATH": [env.Dir(".")],
-				"LIBS": ["Swiften_Ldns"],
-			}
-		if env["target"] == "android" :
-			env["LDNS_FLAGS"]["CPPPATH"].append(Dir("src/android"))
+    if env["SCONS_STAGE"] == "flags" :
+        env["LDNS_FLAGS"] = {
+                "CPPPATH": [Dir("src/ldns")],
+                "CPPFLAGS": cppflags,
+                "LIBPATH": [env.Dir(".")],
+                "LIBS": ["Swiften_Ldns"],
+            }
+        if env["target"] == "android" :
+            env["LDNS_FLAGS"]["CPPPATH"].append(Dir("src/android"))
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Append(CPPDEFINES = [("LDNS_STATICLIB")])
-		myenv.Append(CPPPATH = ["src/ldns", "."])
-		if env["target"] == "android" :
-			myenv.Append(CPPPATH = ["src/android"])
-		myenv.UseFlags(env["OPENSSL_FLAGS"])
-		
-		env["LDNS_OBJECTS"] = myenv.SwiftenObject([
-			"src/ldns/compat/b32_ntop.c",
-			"src/ldns/compat/b32_pton.c",
-			"src/ldns/compat/b64_ntop.c",
-			"src/ldns/compat/b64_pton.c",
-			"src/ldns/buffer.c",
-			"src/ldns/dname.c",
-			"src/ldns/dnssec_sign.c",
-			"src/ldns/dnssec_verify.c",
-			"src/ldns/dnssec_zone.c",
-			"src/ldns/dnssec.c",
-			"src/ldns/error.c",
-			"src/ldns/higher.c",
-			"src/ldns/host2str.c",
-			"src/ldns/host2wire.c",
-			"src/ldns/keys.c",
-			"src/ldns/linktest.c",
-			"src/ldns/net.c",
-			"src/ldns/packet.c",
-			"src/ldns/parse.c",
-			"src/ldns/rbtree.c",
-			"src/ldns/rdata.c",
-			"src/ldns/resolver.c",
-			"src/ldns/rr_functions.c",
-			"src/ldns/rr.c",
-			"src/ldns/sha1.c",
-			"src/ldns/sha2.c",
-			"src/ldns/str2host.c",
-			"src/ldns/tsig.c",
-			"src/ldns/update.c",
-			"src/ldns/util.c",
-			"src/ldns/wire2host.c",
-			"src/ldns/zone.c",
-		])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Append(CPPDEFINES = [("LDNS_STATICLIB")])
+        myenv.Append(CPPPATH = ["src/ldns", "."])
+        if env["target"] == "android" :
+            myenv.Append(CPPPATH = ["src/android"])
+        myenv.UseFlags(env["OPENSSL_FLAGS"])
+
+        env["LDNS_OBJECTS"] = myenv.SwiftenObject([
+            "src/ldns/compat/b32_ntop.c",
+            "src/ldns/compat/b32_pton.c",
+            "src/ldns/compat/b64_ntop.c",
+            "src/ldns/compat/b64_pton.c",
+            "src/ldns/buffer.c",
+            "src/ldns/dname.c",
+            "src/ldns/dnssec_sign.c",
+            "src/ldns/dnssec_verify.c",
+            "src/ldns/dnssec_zone.c",
+            "src/ldns/dnssec.c",
+            "src/ldns/error.c",
+            "src/ldns/higher.c",
+            "src/ldns/host2str.c",
+            "src/ldns/host2wire.c",
+            "src/ldns/keys.c",
+            "src/ldns/linktest.c",
+            "src/ldns/net.c",
+            "src/ldns/packet.c",
+            "src/ldns/parse.c",
+            "src/ldns/rbtree.c",
+            "src/ldns/rdata.c",
+            "src/ldns/resolver.c",
+            "src/ldns/rr_functions.c",
+            "src/ldns/rr.c",
+            "src/ldns/sha1.c",
+            "src/ldns/sha2.c",
+            "src/ldns/str2host.c",
+            "src/ldns/tsig.c",
+            "src/ldns/update.c",
+            "src/ldns/util.c",
+            "src/ldns/wire2host.c",
+            "src/ldns/zone.c",
+        ])
diff --git a/3rdParty/LibIDN/SConscript b/3rdParty/LibIDN/SConscript
index e3ed839..90892b0 100644
--- a/3rdParty/LibIDN/SConscript
+++ b/3rdParty/LibIDN/SConscript
@@ -8,67 +8,67 @@ if env.get("LIBIDN_BUNDLED", False) :
 # Module flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["LIBIDN_FLAGS"] = {
-				"CPPDEFINES": ["LIBIDN_STATIC"],
-			}
-		if os.path.basename(env["CC"]) in ("clang", "gcc") :
-			env["LIBIDN_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibIDN/src"]})
-		else :
-			env["LIBIDN_FLAGS"].update({"CPPPATH": [Dir("src")]})
+    if env["SCONS_STAGE"] == "flags" :
+        env["LIBIDN_FLAGS"] = {
+                "CPPDEFINES": ["LIBIDN_STATIC"],
+            }
+        if os.path.basename(env["CC"]) in ("clang", "gcc") :
+            env["LIBIDN_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibIDN/src"]})
+        else :
+            env["LIBIDN_FLAGS"].update({"CPPPATH": [Dir("src")]})
 
-		if env["PLATFORM"] == "win32" :
-			env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
-			if float(env["MSVC_VERSION"]) < 14:
-				env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/stdbool")]
-			if env["MSVC_VERSION"][:3] == "9.0" :
-				env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")]
+        if env["PLATFORM"] == "win32" :
+            env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
+            if float(env["MSVC_VERSION"]) < 14:
+                env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/stdbool")]
+            if env["MSVC_VERSION"][:3] == "9.0" :
+                env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")]
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
 
-		# Remove warn flags
-		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+        # Remove warn flags
+        myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
 
-		# Check for strcasecmp() or replacement
-		conf = Configure(conf_env)
-		if not conf.CheckFunc('strcasecmp') :
-			if conf.CheckFunc("stricmp") :
-				myenv.Append(CPPDEFINES = [("strcasecmp", "stricmp")])
-			else :
-				print "Error: Cannot find strcasecmp() or stricmp()"
-				Exit(1)
-		if not conf.CheckFunc('strncasecmp') :
-			if conf.CheckFunc("strnicmp") :
-				myenv.Append(CPPDEFINES = [("strncasecmp", "strnicmp")])
-			else :
-				print "Error: Cannot find strncasecmp() or strnicmp()"
-				Exit(1)
-		conf.Finish()
+        # Check for strcasecmp() or replacement
+        conf = Configure(conf_env)
+        if not conf.CheckFunc('strcasecmp') :
+            if conf.CheckFunc("stricmp") :
+                myenv.Append(CPPDEFINES = [("strcasecmp", "stricmp")])
+            else :
+                print "Error: Cannot find strcasecmp() or stricmp()"
+                Exit(1)
+        if not conf.CheckFunc('strncasecmp') :
+            if conf.CheckFunc("strnicmp") :
+                myenv.Append(CPPDEFINES = [("strncasecmp", "strnicmp")])
+            else :
+                print "Error: Cannot find strncasecmp() or strnicmp()"
+                Exit(1)
+        conf.Finish()
 
-		myenv.Append(CPPDEFINES = ["LIBIDN_STATIC", "HAVE_CONFIG_H"])
-		myenv.Append(CPPPATH = ["src", "stubs", "src/gl"])
-		if myenv["PLATFORM"] == "win32" :
-			myenv.Append(CPPPATH = "stubs/win32")
-			if float(env["MSVC_VERSION"]) < 14:
-				myenv.Append(CPPPATH = "stubs/win32/stdbool")
-			if myenv["MSVC_VERSION"][:3] == "9.0" :
-				myenv.Append(CPPPATH = "stubs/win32/VC2008")
+        myenv.Append(CPPDEFINES = ["LIBIDN_STATIC", "HAVE_CONFIG_H"])
+        myenv.Append(CPPPATH = ["src", "stubs", "src/gl"])
+        if myenv["PLATFORM"] == "win32" :
+            myenv.Append(CPPPATH = "stubs/win32")
+            if float(env["MSVC_VERSION"]) < 14:
+                myenv.Append(CPPPATH = "stubs/win32/stdbool")
+            if myenv["MSVC_VERSION"][:3] == "9.0" :
+                myenv.Append(CPPPATH = "stubs/win32/VC2008")
 
-		env["LIBIDN_OBJECTS"] = myenv.SwiftenObject([
-				"src/stringprep.c",
-				"src/profiles.c",
-				"src/rfc3454.c",
-				"src/punycode.c",
-				"src/idna.c",
-				"src/toutf8.c",
-				"src/nfkc.c",
-				"src/gl/c-ctype.c",
-				"src/gl/c-strcasecmp.c",
-				"src/gl/c-strncasecmp.c",
-				"src/gl/unistr/u8-check.c"
-			])
+        env["LIBIDN_OBJECTS"] = myenv.SwiftenObject([
+                "src/stringprep.c",
+                "src/profiles.c",
+                "src/rfc3454.c",
+                "src/punycode.c",
+                "src/idna.c",
+                "src/toutf8.c",
+                "src/nfkc.c",
+                "src/gl/c-ctype.c",
+                "src/gl/c-strcasecmp.c",
+                "src/gl/c-strncasecmp.c",
+                "src/gl/unistr/u8-check.c"
+            ])
diff --git a/3rdParty/LibMiniUPnPc/SConscript b/3rdParty/LibMiniUPnPc/SConscript
index 05eed8f..3c2e29d 100644
--- a/3rdParty/LibMiniUPnPc/SConscript
+++ b/3rdParty/LibMiniUPnPc/SConscript
@@ -8,51 +8,51 @@ if env.get("LIBMINIUPNPC_BUNDLED", False) :
 # Module flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["HAVE_LIBMINIUPNPC"] = True
-		env["LIBMINIUPNPC_FLAGS"] = {
-				"LIBPATH": [Dir(".")],
-				"INTERNAL_CPPDEFINES": ["STATICLIB"],
-			}
-		if os.path.basename(env["CC"]) in ("clang", "gcc") :
-			env["LIBMINIUPNPC_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibMiniUPnPc/src/miniupnpc"]})
-		else :
-			env["LIBMINIUPNPC_FLAGS"].update({"CPPPATH": [Dir("src/miniupnpc")]})
-
-		#if env["PLATFORM"] == "win32" :
-		#	env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
-		#	if env["MSVC_VERSION"][:3] == "9.0" :
-		#		env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")]
+    if env["SCONS_STAGE"] == "flags" :
+        env["HAVE_LIBMINIUPNPC"] = True
+        env["LIBMINIUPNPC_FLAGS"] = {
+                "LIBPATH": [Dir(".")],
+                "INTERNAL_CPPDEFINES": ["STATICLIB"],
+            }
+        if os.path.basename(env["CC"]) in ("clang", "gcc") :
+            env["LIBMINIUPNPC_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibMiniUPnPc/src/miniupnpc"]})
+        else :
+            env["LIBMINIUPNPC_FLAGS"].update({"CPPPATH": [Dir("src/miniupnpc")]})
+
+        #if env["PLATFORM"] == "win32" :
+        #   env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
+        #   if env["MSVC_VERSION"][:3] == "9.0" :
+        #       env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")]
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Append(CPPPATH = ["src"])
-		# Remove warn flags
-		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Append(CPPPATH = ["src"])
+        # Remove warn flags
+        myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
 
-		myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"])
+        myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"])
 
-		if myenv["PLATFORM"] != "win32":
-			myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"])
-			myenv.Append(CCFLAGS = ["-D_BSD_SOURCE"])
+        if myenv["PLATFORM"] != "win32":
+            myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"])
+            myenv.Append(CCFLAGS = ["-D_BSD_SOURCE"])
 
-		if myenv["PLATFORM"] == "darwin":
-			myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"])
+        if myenv["PLATFORM"] == "darwin":
+            myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"])
 
-		if myenv["PLATFORM"] == "win32":
-			myenv.Append(CCFLAGS = ["-DWIN32", "-D_WIN32_WINNT=0x0501"])
+        if myenv["PLATFORM"] == "win32":
+            myenv.Append(CCFLAGS = ["-DWIN32", "-D_WIN32_WINNT=0x0501"])
 
-		if myenv["PLATFORM"] != "win32" and myenv["PLATFORM"] != "darwin":
-			conf = Configure(conf_env)
-			if conf.CheckTypeSize("struct ip_mreqn", includes="#include <netinet/in.h>") == 0:
-				myenv.Append(CCFLAGS = ["-DNEED_STRUCT_IP_MREQN"])
-			conf.Finish()
+        if myenv["PLATFORM"] != "win32" and myenv["PLATFORM"] != "darwin":
+            conf = Configure(conf_env)
+            if conf.CheckTypeSize("struct ip_mreqn", includes="#include <netinet/in.h>") == 0:
+                myenv.Append(CCFLAGS = ["-DNEED_STRUCT_IP_MREQN"])
+            conf.Finish()
 
-		myenv.WriteVal("src/miniupnpc/miniupnpcstrings.h", myenv.Value(
+        myenv.WriteVal("src/miniupnpc/miniupnpcstrings.h", myenv.Value(
 """
 #ifndef __MINIUPNPCSTRINGS_H__
 #define __MINIUPNPCSTRINGS_H__
@@ -63,22 +63,22 @@ if env.get("LIBMINIUPNPC_BUNDLED", False) :
 #endif
 """.replace("$OS_STRING", myenv["PLATFORM"])))
 
-		miniupnpc_objects = [
-			"src/miniupnpc/igd_desc_parse.c",
-			"src/miniupnpc/miniupnpc.c",
-			"src/miniupnpc/minixml.c",
-			"src/miniupnpc/minisoap.c",
-			"src/miniupnpc/miniwget.c",
-			#"src/miniupnpc/upnpc.c",
-			"src/miniupnpc/upnpcommands.c",
-			"src/miniupnpc/upnpreplyparse.c",
-			"src/miniupnpc/upnperrors.c",
-			"src/miniupnpc/connecthostport.c",
-			"src/miniupnpc/portlistingparse.c",
-			"src/miniupnpc/receivedata.c"
-			]
-
-		if myenv["PLATFORM"] != "win32":
-			miniupnpc_objects.append("src/miniupnpc/minissdpc.c")
-
-		env["LIBMINIUPNPC_OBJECTS"] = myenv.SwiftenObject(miniupnpc_objects)			
+        miniupnpc_objects = [
+            "src/miniupnpc/igd_desc_parse.c",
+            "src/miniupnpc/miniupnpc.c",
+            "src/miniupnpc/minixml.c",
+            "src/miniupnpc/minisoap.c",
+            "src/miniupnpc/miniwget.c",
+            #"src/miniupnpc/upnpc.c",
+            "src/miniupnpc/upnpcommands.c",
+            "src/miniupnpc/upnpreplyparse.c",
+            "src/miniupnpc/upnperrors.c",
+            "src/miniupnpc/connecthostport.c",
+            "src/miniupnpc/portlistingparse.c",
+            "src/miniupnpc/receivedata.c"
+            ]
+
+        if myenv["PLATFORM"] != "win32":
+            miniupnpc_objects.append("src/miniupnpc/minissdpc.c")
+
+        env["LIBMINIUPNPC_OBJECTS"] = myenv.SwiftenObject(miniupnpc_objects)            
diff --git a/3rdParty/LibNATPMP/SConscript b/3rdParty/LibNATPMP/SConscript
index 2a58242..e1aef1c 100644
--- a/3rdParty/LibNATPMP/SConscript
+++ b/3rdParty/LibNATPMP/SConscript
@@ -8,49 +8,49 @@ if env.get("LIBNATPMP_BUNDLED", False) :
 # Module flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["HAVE_LIBNATPMP"] = True
-		env["LIBNATPMP_FLAGS"] = {
-				"LIBPATH": [Dir(".")],
-				"INTERNAL_CPPDEFINES": ["STATICLIB"],
-			}
-		if os.path.basename(env["CC"]) in ("clang", "gcc") :
-			env["LIBNATPMP_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibNATPMP/src/libnatpmp"]})
-		else :
-			env["LIBNATPMP_FLAGS"].update({"CPPPATH": [Dir("src/libnatpmp")]})
-		#if env["PLATFORM"] == "win32" :
-		#	env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
-		#	if env["MSVC_VERSION"][:3] == "9.0" :
-		#		env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")]
+    if env["SCONS_STAGE"] == "flags" :
+        env["HAVE_LIBNATPMP"] = True
+        env["LIBNATPMP_FLAGS"] = {
+                "LIBPATH": [Dir(".")],
+                "INTERNAL_CPPDEFINES": ["STATICLIB"],
+            }
+        if os.path.basename(env["CC"]) in ("clang", "gcc") :
+            env["LIBNATPMP_FLAGS"].update({"CPPFLAGS": ["-isystem" "3rdParty/LibNATPMP/src/libnatpmp"]})
+        else :
+            env["LIBNATPMP_FLAGS"].update({"CPPPATH": [Dir("src/libnatpmp")]})
+        #if env["PLATFORM"] == "win32" :
+        #   env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32")]
+        #   if env["MSVC_VERSION"][:3] == "9.0" :
+        #       env["LIBIDN_FLAGS"]["CPPPATH"] += [Dir("stubs/win32/VC2008")]
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Append(CPPPATH = ["src"])
-		# Remove warn flags
-		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
-
-		myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"])
-		
-		#if myenv["PLATFORM"] != "win32":
-		#	myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"])
-		
-		if myenv["PLATFORM"] == "darwin":
-			myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"])
-		
-		if myenv["PLATFORM"] == "win32":
-			myenv.Append(CCFLAGS = ["-DWIN32"])
-
-		src_files = [
-				"src/libnatpmp/getgateway.c",
-				"src/libnatpmp/natpmp.c",
-				"src/libnatpmp/natpmpc.c",
-			]	
-		
-		if myenv["PLATFORM"] == "win32":
-			src_files += ["src/libnatpmp/wingettimeofday.c"]
-		
-		env["LIBNATPMP_OBJECTS"] = myenv.SwiftenObject(src_files)
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Append(CPPPATH = ["src"])
+        # Remove warn flags
+        myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+
+        myenv.Append(CCFLAGS = ["-DNDEBUG", "-DSTATICLIB"])
+
+        #if myenv["PLATFORM"] != "win32":
+        #   myenv.Append(CCFLAGS = ["-DMINIUPNPC_SET_SOCKET_TIMEOUT"])
+
+        if myenv["PLATFORM"] == "darwin":
+            myenv.Append(CCFLAGS = ["-DMACOSX", "-D_DARWIN_C_SOURCE"])
+
+        if myenv["PLATFORM"] == "win32":
+            myenv.Append(CCFLAGS = ["-DWIN32"])
+
+        src_files = [
+                "src/libnatpmp/getgateway.c",
+                "src/libnatpmp/natpmp.c",
+                "src/libnatpmp/natpmpc.c",
+            ]
+
+        if myenv["PLATFORM"] == "win32":
+            src_files += ["src/libnatpmp/wingettimeofday.c"]
+
+        env["LIBNATPMP_OBJECTS"] = myenv.SwiftenObject(src_files)
diff --git a/3rdParty/Lua/SConscript b/3rdParty/Lua/SConscript
index f73286f..d2475f6 100644
--- a/3rdParty/Lua/SConscript
+++ b/3rdParty/Lua/SConscript
@@ -6,76 +6,76 @@ if env.get("LUA_BUNDLED", False) :
 # Module flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["HAVE_LUA"] = True
-		cppdefines = []
-		if not env["optimize"] :
-			cppdefines.append("LUA_USE_APICHECK")
-		if env["PLATFORM"] == "win32" :
-			pass
-		elif env["PLATFORM"] == "darwin" :
-			cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"]
-		else :
-			cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"]
+    if env["SCONS_STAGE"] == "flags" :
+        env["HAVE_LUA"] = True
+        cppdefines = []
+        if not env["optimize"] :
+            cppdefines.append("LUA_USE_APICHECK")
+        if env["PLATFORM"] == "win32" :
+            pass
+        elif env["PLATFORM"] == "darwin" :
+            cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"]
+        else :
+            cppdefines += ["LUA_USE_POSIX", "LUA_USE_DLOPEN"]
 
-		env["LUA_FLAGS"] = {
-				"CPPDEFINES": cppdefines,
-				"CPPPATH": [Dir("src")],
-				"LIBPATH": [Dir(".")],
-				"LIBS": ["Swiften_Lua"],
-			}
+        env["LUA_FLAGS"] = {
+                "CPPDEFINES": cppdefines,
+                "CPPPATH": [Dir("src")],
+                "LIBPATH": [Dir(".")],
+                "LIBS": ["Swiften_Lua"],
+            }
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
 
-		# Remove warn flags
-		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if not flag.startswith("-W")])
-		if "clang" in env["CC"] :
-			myenv.Append(CCFLAGS = ["-Wno-unknown-warning-option", "-Wno-empty-body"])
+        # Remove warn flags
+        myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if not flag.startswith("-W")])
+        if "clang" in env["CC"] :
+            myenv.Append(CCFLAGS = ["-Wno-unknown-warning-option", "-Wno-empty-body"])
 
-		myenv.MergeFlags(myenv["LUA_FLAGS"])
-		myenv.StaticLibrary("Swiften_Lua", [
-			"src/lapi.c",
-			"src/lcode.c",
-			"src/ldebug.c",
-			"src/ldo.c",
-			"src/ldump.c",
-			"src/lfunc.c",
-			"src/lgc.c",
-			"src/llex.c",
-			"src/lmem.c",
-			"src/lobject.c",
-			"src/lopcodes.c",
-			"src/lparser.c",
-			"src/lstate.c",
-			"src/lstring.c",
-			"src/ltable.c",
-			"src/ltm.c",
-			"src/lundump.c",
-			"src/lvm.c",
-			"src/lzio.c",
-			"src/lauxlib.c",
-			"src/lbaselib.c",
-			"src/ldblib.c",
-			"src/liolib.c",
-			"src/lmathlib.c",
-			"src/loslib.c",
-			"src/ltablib.c",
-			"src/lstrlib.c",
-			"src/loadlib.c",
-		])
+        myenv.MergeFlags(myenv["LUA_FLAGS"])
+        myenv.StaticLibrary("Swiften_Lua", [
+            "src/lapi.c",
+            "src/lcode.c",
+            "src/ldebug.c",
+            "src/ldo.c",
+            "src/ldump.c",
+            "src/lfunc.c",
+            "src/lgc.c",
+            "src/llex.c",
+            "src/lmem.c",
+            "src/lobject.c",
+            "src/lopcodes.c",
+            "src/lparser.c",
+            "src/lstate.c",
+            "src/lstring.c",
+            "src/ltable.c",
+            "src/ltm.c",
+            "src/lundump.c",
+            "src/lvm.c",
+            "src/lzio.c",
+            "src/lauxlib.c",
+            "src/lbaselib.c",
+            "src/ldblib.c",
+            "src/liolib.c",
+            "src/lmathlib.c",
+            "src/loslib.c",
+            "src/ltablib.c",
+            "src/lstrlib.c",
+            "src/loadlib.c",
+        ])
 
-		lua_env = myenv.Clone()
-		lua_env.MergeFlags(lua_env["LUA_FLAGS"])
-		if lua_env.get("HAVE_READLINE", False) :
-			lua_env.Append(CPPDEFINES = ["LUA_USE_READLINE"])
-			lua_env.MergeFlags(lua_env["READLINE_FLAGS"])
-		lua_env.MergeFlags(myenv["PLATFORM_FLAGS"])
-		lua_env.Program("lua", [
-				"src/linit.c",
-				"src/lua.c",
-			])
+        lua_env = myenv.Clone()
+        lua_env.MergeFlags(lua_env["LUA_FLAGS"])
+        if lua_env.get("HAVE_READLINE", False) :
+            lua_env.Append(CPPDEFINES = ["LUA_USE_READLINE"])
+            lua_env.MergeFlags(lua_env["READLINE_FLAGS"])
+        lua_env.MergeFlags(myenv["PLATFORM_FLAGS"])
+        lua_env.Program("lua", [
+                "src/linit.c",
+                "src/lua.c",
+            ])
diff --git a/3rdParty/OpenSSL/SConscript b/3rdParty/OpenSSL/SConscript
index 6af3d49..c95ea05 100644
--- a/3rdParty/OpenSSL/SConscript
+++ b/3rdParty/OpenSSL/SConscript
@@ -3,658 +3,658 @@ Import("env", "conf_env")
 openssl_bundle_dir = "openssl"
 
 if env.get("OPENSSL_BUNDLED", False) :
-	if env["SCONS_STAGE"] == "flags" :
-		env["OPENSSL_FLAGS"] = {
-				"CPPPATH": [Dir(openssl_bundle_dir + "/include")],
-				"LIBPATH": [Dir(".")],
-				"LIBS": ["ssl", "crypto"]
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["OPENSSL_FLAGS"] = {
+                "CPPPATH": [Dir(openssl_bundle_dir + "/include")],
+                "LIBPATH": [Dir(".")],
+                "LIBS": ["ssl", "crypto"]
+            }
 
-	if env["SCONS_STAGE"] == "build" :
-		openssl_env = env.Clone()
-		openssl_env["OPENSSL_BUNDLE_DIR"] = openssl_bundle_dir
-		openssl_env.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
-		openssl_env.Append(CPPPATH = [
-				"$OPENSSL_BUNDLE_DIR", 
-				"$OPENSSL_BUNDLE_DIR/crypto", 
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1", 
-				"$OPENSSL_BUNDLE_DIR/crypto/evp", 
-				"$OPENSSL_BUNDLE_DIR/crypto/modes", 
-				"$OPENSSL_BUNDLE_DIR/include"
-			])
-		if env["PLATFORM"] == "win32" :
-			openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "L_ENDIAN", "OPENSSL_SYSNAME_WIN32", "WIN32_LEAN_AND_MEAN"])
-		else :
-			openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "DSO_DLFCN", "HAVE_DLFCN_H", "L_ENDIAN"])
+    if env["SCONS_STAGE"] == "build" :
+        openssl_env = env.Clone()
+        openssl_env["OPENSSL_BUNDLE_DIR"] = openssl_bundle_dir
+        openssl_env.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+        openssl_env.Append(CPPPATH = [
+                "$OPENSSL_BUNDLE_DIR", 
+                "$OPENSSL_BUNDLE_DIR/crypto", 
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1", 
+                "$OPENSSL_BUNDLE_DIR/crypto/evp", 
+                "$OPENSSL_BUNDLE_DIR/crypto/modes", 
+                "$OPENSSL_BUNDLE_DIR/include"
+            ])
+        if env["PLATFORM"] == "win32" :
+            openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "L_ENDIAN", "OPENSSL_SYSNAME_WIN32", "WIN32_LEAN_AND_MEAN"])
+        else :
+            openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "DSO_DLFCN", "HAVE_DLFCN_H", "L_ENDIAN"])
 
-		# Detect 32/64 bit
-		conf = Configure(conf_env)
-		if conf.CheckDeclaration("__LP64__") :
-			openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned int"), ("MD32_REG_T", "int")])
-		else :
-			openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned long")])
-		conf.Finish()
+        # Detect 32/64 bit
+        conf = Configure(conf_env)
+        if conf.CheckDeclaration("__LP64__") :
+            openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned int"), ("MD32_REG_T", "int")])
+        else :
+            openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned long")])
+        conf.Finish()
 
-		# case-sensitive sorted list of OpenSSL objects for openssl-1.0.1j
-		env["OPENSSL_OBJECTS"] = openssl_env.SwiftenObject([
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cbc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cfb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_core.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ctr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ige.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_misc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ofb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/aes/aes_wrap.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bitstr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bool.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bytes.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_d2i_fp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_digest.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_dup.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_enum.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_gentm.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_i2d_fp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_int.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_mbstr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_object.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_octet.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_print.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_set.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strex.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strnid.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_time.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_type.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utctm.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utf8.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/a_verify.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/ameth_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_gen.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_par.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_mime.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_moid.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_pack.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_ndef.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pu.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/evp_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/f_enum.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/f_int.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/f_string.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pu.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/n_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/nsseq.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbe.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbev2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/p8_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_bitst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_crl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_req.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_spki.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509a.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_dec.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_fre.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_new.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_typ.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_utl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_algor.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_attrib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_bignum.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_crl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_exten.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_info.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_long.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_name.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_nx509.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pubkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_req.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_sig.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_spki.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_val.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509a.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bf/bf_cfb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bf/bf_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ofb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bf/bf_skey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/b_dump.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/b_print.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/b_sock.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bf_buff.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bf_nbio.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bf_null.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bio_cb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bio_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bio_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_acpt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_bio.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_conn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_dgram.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_fd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_file.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_log.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_mem.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_null.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bio/bss_sock.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_add.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_asm.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_blind.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_const.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_ctx.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_depr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_div.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gcd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gf2m.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_kron.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mod.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mont.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mpi.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mul.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_nist.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_prime.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_print.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_rand.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_recp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_shift.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqrt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/bn/bn_word.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_str.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/buffer/buffer.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/camellia.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cbc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cfb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ctr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_misc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ofb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_utl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cast/c_cfb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cast/c_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cast/c_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cast/c_ofb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cast/c_skey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_ameth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_pmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cmac/cmac.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_att.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_cd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_dd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_env.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_ess.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_io.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_pwri.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_sd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cms/cms_smime.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/comp/c_rle.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/comp/c_zlib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/comp/comp_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/comp/comp_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_api.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_def.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mall.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mod.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/conf/conf_sap.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cpt_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cryptlib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/cversion.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/cbc_cksm.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/cbc_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/cfb64ede.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/cfb64enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/cfb_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/des_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/des_old.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/des_old2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/ecb3_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/ecb_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/ede_cbcm_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/enc_read.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/enc_writ.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt_b.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/ofb64ede.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/ofb64enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/ofb_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/pcbc_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/qud_cksm.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/rand_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/read2pwd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/rpc_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/set_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/str2key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/des/xcbc_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_ameth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_check.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_depr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_gen.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_pmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dh/dh_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ameth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_depr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_gen.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ossl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_pmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_vrf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_beos.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dlfcn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_null.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_openssl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_vms.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/dso/dso_win32.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ebcdic.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_mult.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_oct.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_smpl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_ameth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_check.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_curve.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_cvt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_mult.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_oct.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_pmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ec_print.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/eck_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_mont.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_nist.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_oct.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_smpl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_ossl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_ossl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_vrf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_all.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cnf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cryptodev.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_ctrl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_dyn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_fat.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_init.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_list.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_openssl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/eng_table.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_asnmth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_cipher.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dh.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_digest.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dsa.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdh.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdsa.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_pkmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rand.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rsa.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/engine/tb_store.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/err/err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/err/err_all.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/err/err_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/bio_b64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/bio_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/bio_md.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/bio_ok.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/c_all.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/c_allc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/c_alld.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/digest.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes_cbc_hmac_sha1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_bf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_camellia.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_cast.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_des.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_des3.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_idea.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_null.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_old.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4_hmac_md5.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc5.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_seed.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/e_xcbc_d.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/encode.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_acnf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pbe.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_ecdsa.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_md2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_md4.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_md5.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_mdc2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_null.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_ripemd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_sigver.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/m_wp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/names.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_dec.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_open.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_seal.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/p_verify.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_fn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_gn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ex_data.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_ameth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_pmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/hmac/hmac.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/idea/i_cbc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/idea/i_cfb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/idea/i_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/idea/i_ofb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/idea/i_skey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/krb5/krb5_asn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/lhash/lh_stats.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/lhash/lhash.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/md4/md4_dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/md4/md4_one.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/md5/md5_dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/md5/md5_one.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2_one.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/mem.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/mem_clr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/mem_dbg.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/cbc128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/ccm128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/cfb128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/ctr128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/cts128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/gcm128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/ofb128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/modes/xts128.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/o_dir.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/o_init.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/o_str.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/o_time.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/objects/o_names.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/objects/obj_dat.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/objects/obj_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/objects/obj_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/objects/obj_xref.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_asn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_cl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ext.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ht.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_srv.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_vfy.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_all.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_info.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_oth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pk8.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pkey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_seal.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_x509.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pem_xaux.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pem/pvkfmt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_add.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_asn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_attr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crpt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_decr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_init.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_key.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_kiss.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_mutl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_npas.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8d.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8e.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_utl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs12/pk12err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/bio_pk7.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_attr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_doit.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_mime.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_smime.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pkcs7err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/pqueue/pqueue.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/md_rand.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_egd.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_nw.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_os2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_unix.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/rand_win.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rand/randfile.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_cbc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_skey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2cfb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2ofb64.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_enc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_skey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_utl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_one.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ameth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_chk.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_crpt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_depr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_eay.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_gen.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_none.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_null.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_oaep.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pk1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pmeth.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pss.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_saos.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ssl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_x931.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/seed/seed.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cbc.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cfb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ecb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ofb.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/sha/sha1_one.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/sha/sha1dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/sha/sha256.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/sha/sha512.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/sha/sha_dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/sha/sha_one.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/srp/srp_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/srp/srp_vfy.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/stack/stack.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_conf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_print.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_utils.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_print.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_sign.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_utils.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_verify.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_verify_ctx.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/txt_db/txt_db.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ui/ui_compat.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ui/ui_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ui/ui_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ui/ui_openssl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/ui/ui_util.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/uid.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_block.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_dgst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/by_dir.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/by_file.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_att.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_cmp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_d2.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_def.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_err.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_ext.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_lu.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_obj.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_r2x.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_req.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_set.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_trs.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_txt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_v3.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vfy.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vpm.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509cset.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509name.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509rset.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509spki.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x509type.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509/x_all.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_cache.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_data.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_map.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_node.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_tree.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_addr.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akeya.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_alt.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_asid.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bcons.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bitst.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_conf.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_cpols.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_crld.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_enum.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_extku.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_genn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ia5.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_info.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_int.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_lib.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ncons.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ocsp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pci.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcia.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcons.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pku.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pmaps.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_prn.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_purp.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_skey.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_sxnet.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_utl.c",
-				"$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3err.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/bio_ssl.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_both.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_clnt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_enc.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_lib.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_meth.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_pkt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_srtp.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/d1_srvr.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/kssl.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s23_clnt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s23_lib.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s23_meth.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s23_pkt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s23_srvr.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s2_clnt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s2_enc.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s2_lib.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s2_meth.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s2_pkt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s2_srvr.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_both.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_cbc.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_clnt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_enc.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_lib.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_meth.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_pkt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/s3_srvr.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_algs.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_asn1.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_cert.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_ciph.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_err.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_err2.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_lib.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_rsa.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_sess.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_stat.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/ssl_txt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/t1_clnt.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/t1_enc.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/t1_lib.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/t1_meth.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/t1_reneg.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/t1_srvr.c",
-				"$OPENSSL_BUNDLE_DIR/ssl/tls_srp.c",
-			])
-		openssl_env.WriteVal("$OPENSSL_BUNDLE_DIR/crypto/buildinf.h", openssl_env.Value("#define CFLAGS \"\"\n#define PLATFORM \"-\"\n#define DATE \"-\""))
+        # case-sensitive sorted list of OpenSSL objects for openssl-1.0.1j
+        env["OPENSSL_OBJECTS"] = openssl_env.SwiftenObject([
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cbc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_cfb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_core.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ctr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ige.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_misc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_ofb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/aes/aes_wrap.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bitstr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bool.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_bytes.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_d2i_fp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_digest.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_dup.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_enum.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_gentm.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_i2d_fp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_int.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_mbstr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_object.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_octet.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_print.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_set.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strex.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_strnid.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_time.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_type.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utctm.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_utf8.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/a_verify.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/ameth_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_gen.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn1_par.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_mime.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_moid.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/asn_pack.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/bio_ndef.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/d2i_pu.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/evp_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_enum.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_int.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/f_string.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/i2d_pu.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/n_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/nsseq.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbe.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/p5_pbev2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/p8_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_bitst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_crl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_req.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_spki.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/t_x509a.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_dec.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_fre.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_new.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_typ.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/tasn_utl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_algor.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_attrib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_bignum.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_crl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_exten.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_info.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_long.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_name.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_nx509.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_pubkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_req.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_sig.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_spki.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_val.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/asn1/x_x509a.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_cfb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_ofb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bf/bf_skey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/b_dump.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/b_print.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/b_sock.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_buff.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_nbio.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bf_null.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_cb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bio_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_acpt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_bio.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_conn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_dgram.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_fd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_file.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_log.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_mem.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_null.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bio/bss_sock.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_add.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_asm.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_blind.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_const.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_ctx.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_depr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_div.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_exp2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gcd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_gf2m.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_kron.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mod.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mont.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mpi.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_mul.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_nist.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_prime.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_print.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_rand.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_recp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_shift.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_sqrt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/bn/bn_word.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/buffer/buf_str.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/buffer/buffer.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/camellia.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cbc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_cfb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ctr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_misc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_ofb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/camellia/cmll_utl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cast/c_cfb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cast/c_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cast/c_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cast/c_ofb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cast/c_skey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_ameth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cmac/cm_pmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cmac/cmac.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_att.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_cd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_dd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_env.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_ess.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_io.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_pwri.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_sd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cms/cms_smime.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/comp/c_rle.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/comp/c_zlib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/comp/comp_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/comp/comp_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_api.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_def.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mall.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_mod.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/conf/conf_sap.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cpt_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cryptlib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/cversion.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/cbc_cksm.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/cbc_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/cfb64ede.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/cfb64enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/cfb_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/des_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/des_old.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/des_old2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/ecb3_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/ecb_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/ede_cbcm_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/enc_read.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/enc_writ.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/fcrypt_b.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/ofb64ede.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/ofb64enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/ofb_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/pcbc_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/qud_cksm.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/rand_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/read2pwd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/rpc_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/set_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/str2key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/des/xcbc_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_ameth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_check.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_depr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_gen.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_pmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dh/dh_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ameth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_depr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_gen.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_ossl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_pmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dsa/dsa_vrf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_beos.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_dlfcn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_null.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_openssl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_vms.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/dso/dso_win32.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ebcdic.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_mult.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_oct.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec2_smpl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_ameth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_check.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_curve.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_cvt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_mult.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_oct.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_pmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ec_print.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/eck_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_mont.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_nist.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_oct.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ec/ecp_smpl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdh/ech_ossl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_ossl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ecdsa/ecs_vrf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_all.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cnf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_cryptodev.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_ctrl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_dyn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_fat.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_init.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_list.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_openssl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/eng_table.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_asnmth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_cipher.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dh.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_digest.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_dsa.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdh.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_ecdsa.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_pkmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rand.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_rsa.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/engine/tb_store.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/err/err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/err/err_all.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/err/err_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_b64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_md.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/bio_ok.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/c_all.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/c_allc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/c_alld.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/digest.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_aes_cbc_hmac_sha1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_bf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_camellia.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_cast.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_des.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_des3.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_idea.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_null.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_old.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc4_hmac_md5.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_rc5.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_seed.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/e_xcbc_d.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/encode.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_acnf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pbe.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/evp_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_dss1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_ecdsa.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md4.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_md5.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_mdc2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_null.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_ripemd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sha1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_sigver.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/m_wp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/names.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p5_crpt2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_dec.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_open.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_seal.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/p_verify.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_fn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_gn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/evp/pmeth_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ex_data.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_ameth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/hmac/hm_pmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/hmac/hmac.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/idea/i_cbc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/idea/i_cfb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/idea/i_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/idea/i_ofb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/idea/i_skey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/krb5/krb5_asn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/lhash/lh_stats.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/lhash/lhash.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/md4/md4_dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/md4/md4_one.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/md5/md5_dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/md5/md5_one.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2_one.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/mdc2/mdc2dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/mem.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/mem_clr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/mem_dbg.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/cbc128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/ccm128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/cfb128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/ctr128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/cts128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/gcm128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/ofb128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/modes/xts128.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/o_dir.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/o_init.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/o_str.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/o_time.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/objects/o_names.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_dat.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/objects/obj_xref.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_asn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_cl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ext.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_ht.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_srv.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ocsp/ocsp_vfy.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_all.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_info.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_oth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pk8.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_pkey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_seal.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_x509.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pem_xaux.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pem/pvkfmt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_add.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_asn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_attr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crpt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_crt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_decr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_init.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_key.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_kiss.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_mutl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_npas.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8d.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_p8e.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/p12_utl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs12/pk12err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/bio_pk7.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_attr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_doit.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_mime.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pk7_smime.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pkcs7/pkcs7err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/pqueue/pqueue.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/md_rand.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_egd.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_nw.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_os2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_unix.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/rand_win.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rand/randfile.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_cbc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2_skey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2cfb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc2/rc2ofb64.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_enc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_skey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rc4/rc4_utl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ripemd/rmd_one.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ameth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_chk.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_crpt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_depr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_eay.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_gen.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_none.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_null.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_oaep.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pk1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pmeth.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_pss.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_saos.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_ssl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/rsa/rsa_x931.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/seed/seed.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cbc.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_cfb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ecb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/seed/seed_ofb.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/sha/sha1_one.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/sha/sha1dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/sha/sha256.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/sha/sha512.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/sha/sha_dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/sha/sha_one.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/srp/srp_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/srp/srp_vfy.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/stack/stack.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_conf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_print.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_req_utils.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_print.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_sign.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_utils.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_rsp_verify.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ts/ts_verify_ctx.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/txt_db/txt_db.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_compat.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_openssl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/ui/ui_util.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/uid.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_block.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/whrlpool/wp_dgst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/by_dir.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/by_file.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_att.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_cmp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_d2.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_def.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_err.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_ext.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_lu.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_obj.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_r2x.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_req.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_set.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_trs.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_txt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_v3.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vfy.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509_vpm.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509cset.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509name.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509rset.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509spki.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x509type.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509/x_all.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_cache.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_data.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_map.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_node.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/pcy_tree.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_addr.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_akeya.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_alt.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_asid.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bcons.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_bitst.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_conf.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_cpols.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_crld.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_enum.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_extku.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_genn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ia5.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_info.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_int.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_lib.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ncons.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_ocsp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pci.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcia.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pcons.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pku.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_pmaps.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_prn.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_purp.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_skey.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_sxnet.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3_utl.c",
+                "$OPENSSL_BUNDLE_DIR/crypto/x509v3/v3err.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/bio_ssl.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_both.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_clnt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_enc.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_lib.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_meth.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_pkt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_srtp.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/d1_srvr.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/kssl.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s23_clnt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s23_lib.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s23_meth.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s23_pkt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s23_srvr.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s2_clnt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s2_enc.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s2_lib.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s2_meth.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s2_pkt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s2_srvr.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_both.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_cbc.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_clnt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_enc.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_lib.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_meth.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_pkt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/s3_srvr.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_algs.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_asn1.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_cert.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_ciph.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_err.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_err2.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_lib.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_rsa.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_sess.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_stat.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/ssl_txt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/t1_clnt.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/t1_enc.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/t1_lib.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/t1_meth.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/t1_reneg.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/t1_srvr.c",
+                "$OPENSSL_BUNDLE_DIR/ssl/tls_srp.c",
+            ])
+        openssl_env.WriteVal("$OPENSSL_BUNDLE_DIR/crypto/buildinf.h", openssl_env.Value("#define CFLAGS \"\"\n#define PLATFORM \"-\"\n#define DATE \"-\""))
diff --git a/3rdParty/SQLite/SConscript b/3rdParty/SQLite/SConscript
index ffa8946..1f4bcd7 100644
--- a/3rdParty/SQLite/SConscript
+++ b/3rdParty/SQLite/SConscript
@@ -6,14 +6,14 @@ if env.get("SQLITE_BUNDLED", False) :
 # Flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["SQLITE_FLAGS"] = {
-				"CPPPATH": [Dir(".")],
-				"LIBPATH": [Dir(".")],
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["SQLITE_FLAGS"] = {
+                "CPPPATH": [Dir(".")],
+                "LIBPATH": [Dir(".")],
+            }
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
-		myenv.Append(CPPPATH = ["."])
-		env["SQLITE_OBJECTS"] = myenv.SwiftenObject(["sqlite3.c"])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+        myenv.Append(CPPPATH = ["."])
+        env["SQLITE_OBJECTS"] = myenv.SwiftenObject(["sqlite3.c"])
diff --git a/3rdParty/Snarl/SConscript b/3rdParty/Snarl/SConscript
index 8733390..a93282c 100644
--- a/3rdParty/Snarl/SConscript
+++ b/3rdParty/Snarl/SConscript
@@ -5,14 +5,14 @@ Import("env")
 ################################################################################
 
 if env.get("HAVE_SNARL", False) :
-	if env["SCONS_STAGE"] == "flags" :
-		env["SNARL_FLAGS"] = {
-				"CPPPATH": [Dir(".")],
-				"LIBPATH": [Dir(".")],
-				"LIBS": ["Snarl"],
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["SNARL_FLAGS"] = {
+                "CPPPATH": [Dir(".")],
+                "LIBPATH": [Dir(".")],
+                "LIBS": ["Snarl"],
+            }
 
-	elif env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
-		myenv.StaticLibrary("Snarl", ["SnarlInterface.cpp"], CPPPATH = ["."])
+    elif env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
+        myenv.StaticLibrary("Snarl", ["SnarlInterface.cpp"], CPPPATH = ["."])
diff --git a/3rdParty/Unbound/SConscript b/3rdParty/Unbound/SConscript
index b0e6f42..fee2fa3 100644
--- a/3rdParty/Unbound/SConscript
+++ b/3rdParty/Unbound/SConscript
@@ -2,109 +2,109 @@ Import("env")
 
 if env.get("UNBOUND_BUNDLED", False) :
 
-	if env["PLATFORM"] == "win32" :
-		cppflags = ["/I" + Dir("#/3rdParty/Unbound/src/unbound").abspath]
-	else :
-		cppflags = [("-isystem", Dir("#/3rdParty/Unbound/src/unbound").abspath)]
+    if env["PLATFORM"] == "win32" :
+        cppflags = ["/I" + Dir("#/3rdParty/Unbound/src/unbound").abspath]
+    else :
+        cppflags = [("-isystem", Dir("#/3rdParty/Unbound/src/unbound").abspath)]
 
 
 ################################################################################
 # Flags
 ################################################################################
-    
-	if env["SCONS_STAGE"] == "flags" :
-		env["UNBOUND_FLAGS"] = {
-				"CPPPATH":  [Dir("src/unbound/libunbound")],
-				"CPPFLAGS": cppflags,
-				"LIBPATH": [env.Dir(".")],
-				"LIBS": ["Swiften_Unbound"],
-			}
-		if env["target"] == "android" :
-			env["UNBOUND_FLAGS"]["CPPPATH"].append(Dir("src/android/compat"))
+
+    if env["SCONS_STAGE"] == "flags" :
+        env["UNBOUND_FLAGS"] = {
+                "CPPPATH":  [Dir("src/unbound/libunbound")],
+                "CPPFLAGS": cppflags,
+                "LIBPATH": [env.Dir(".")],
+                "LIBS": ["Swiften_Unbound"],
+            }
+        if env["target"] == "android" :
+            env["UNBOUND_FLAGS"]["CPPPATH"].append(Dir("src/android/compat"))
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.Append(CPPDEFINES = [("UNBOUND_STATICLIB")])
-		myenv.Append(CPPPATH = ["../Ldns/src/ldns", "src/unbound", "."])
-		if env["target"] == "android" :
-			myenv.Append(CPPPATH = ["src/android/compat", "src/android/config"])
-			myenv.Append(CPPPATH = ["src/android/dns"])
-			myenv.Append(CPPPATH = ["../Ldns/src/android"])
-		myenv.UseFlags(env["OPENSSL_FLAGS"])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.Append(CPPDEFINES = [("UNBOUND_STATICLIB")])
+        myenv.Append(CPPPATH = ["../Ldns/src/ldns", "src/unbound", "."])
+        if env["target"] == "android" :
+            myenv.Append(CPPPATH = ["src/android/compat", "src/android/config"])
+            myenv.Append(CPPPATH = ["src/android/dns"])
+            myenv.Append(CPPPATH = ["../Ldns/src/android"])
+        myenv.UseFlags(env["OPENSSL_FLAGS"])
 
-		unbound_objects = [
-		"src/unbound/daemon/acl_list.c",
-		"src/unbound/daemon/cachedump.c",
-		"src/unbound/daemon/daemon.c",
-		"src/unbound/daemon/remote.c",
-		"src/unbound/daemon/stats.c",
-		"src/unbound/daemon/unbound.c",
-		# duplicate symbols: "src/src/daemon/worker.c",
-		"src/unbound/iterator/iter_delegpt.c",
-		"src/unbound/iterator/iter_donotq.c",
-		"src/unbound/iterator/iter_fwd.c",
-		"src/unbound/iterator/iter_hints.c",
-		"src/unbound/iterator/iter_priv.c",
-		"src/unbound/iterator/iter_resptype.c",
-		"src/unbound/iterator/iter_scrub.c",
-		"src/unbound/iterator/iter_utils.c",
-		"src/unbound/iterator/iterator.c",
-		"src/unbound/libunbound/context.c",
-		"src/unbound/libunbound/libunbound.c",
-		"src/unbound/libunbound/libworker.c",
-		"src/unbound/services/cache/dns.c",
-		"src/unbound/services/cache/infra.c",
-		"src/unbound/services/cache/rrset.c",
-		"src/unbound/services/listen_dnsport.c",
-		"src/unbound/services/localzone.c",
-		"src/unbound/services/mesh.c",
-		"src/unbound/services/modstack.c",
-		"src/unbound/services/outbound_list.c",
-		"src/unbound/services/outside_network.c",
-		"src/unbound/util/alloc.c",
-		"src/unbound/util/config_file.c",
-		"src/unbound/util/configlexer.c",
-		"src/unbound/util/configparser.c",
-		"src/unbound/util/data/dname.c",
-		"src/unbound/util/data/msgencode.c",
-		"src/unbound/util/data/msgparse.c",
-		"src/unbound/util/data/msgreply.c",
-		"src/unbound/util/data/packed_rrset.c",
-		"src/unbound/util/fptr_wlist.c",
-		"src/unbound/util/locks.c",
-		"src/unbound/util/log.c",
-		"src/unbound/util/mini_event.c",
-		"src/unbound/util/module.c",
-		"src/unbound/util/net_help.c",
-		"src/unbound/util/netevent.c",
-		"src/unbound/util/random.c",
-		"src/unbound/util/rbtree.c",
-		"src/unbound/util/regional.c",
-		"src/unbound/util/rtt.c",
-		"src/unbound/util/storage/dnstree.c",
-		"src/unbound/util/storage/lookup3.c",
-		"src/unbound/util/storage/lruhash.c",
-		"src/unbound/util/storage/slabhash.c",
-		"src/unbound/util/timehist.c",
-		"src/unbound/util/tube.c",
-		#src/unbound/util/winsock_event.c
-		"src/unbound/validator/autotrust.c",
-		"src/unbound/validator/val_anchor.c",
-		"src/unbound/validator/val_kcache.c",
-		"src/unbound/validator/val_kentry.c",
-		"src/unbound/validator/val_neg.c",
-		"src/unbound/validator/val_nsec.c",
-		"src/unbound/validator/val_nsec3.c",
-		"src/unbound/validator/val_secalgo.c",
-		"src/unbound/validator/val_sigcrypt.c",
-		"src/unbound/validator/val_utils.c",
-		"src/unbound/validator/validator.c",
-			]
-		if env["target"] == "android" :
-			unbound_objects.append("src/android/compat/glob.c")
-			unbound_objects.append("src/android/dns/dns_android.cpp")
-		env["UNBOUND_OBJECTS"] = myenv.SwiftenObject(unbound_objects)
+        unbound_objects = [
+        "src/unbound/daemon/acl_list.c",
+        "src/unbound/daemon/cachedump.c",
+        "src/unbound/daemon/daemon.c",
+        "src/unbound/daemon/remote.c",
+        "src/unbound/daemon/stats.c",
+        "src/unbound/daemon/unbound.c",
+        # duplicate symbols: "src/src/daemon/worker.c",
+        "src/unbound/iterator/iter_delegpt.c",
+        "src/unbound/iterator/iter_donotq.c",
+        "src/unbound/iterator/iter_fwd.c",
+        "src/unbound/iterator/iter_hints.c",
+        "src/unbound/iterator/iter_priv.c",
+        "src/unbound/iterator/iter_resptype.c",
+        "src/unbound/iterator/iter_scrub.c",
+        "src/unbound/iterator/iter_utils.c",
+        "src/unbound/iterator/iterator.c",
+        "src/unbound/libunbound/context.c",
+        "src/unbound/libunbound/libunbound.c",
+        "src/unbound/libunbound/libworker.c",
+        "src/unbound/services/cache/dns.c",
+        "src/unbound/services/cache/infra.c",
+        "src/unbound/services/cache/rrset.c",
+        "src/unbound/services/listen_dnsport.c",
+        "src/unbound/services/localzone.c",
+        "src/unbound/services/mesh.c",
+        "src/unbound/services/modstack.c",
+        "src/unbound/services/outbound_list.c",
+        "src/unbound/services/outside_network.c",
+        "src/unbound/util/alloc.c",
+        "src/unbound/util/config_file.c",
+        "src/unbound/util/configlexer.c",
+        "src/unbound/util/configparser.c",
+        "src/unbound/util/data/dname.c",
+        "src/unbound/util/data/msgencode.c",
+        "src/unbound/util/data/msgparse.c",
+        "src/unbound/util/data/msgreply.c",
+        "src/unbound/util/data/packed_rrset.c",
+        "src/unbound/util/fptr_wlist.c",
+        "src/unbound/util/locks.c",
+        "src/unbound/util/log.c",
+        "src/unbound/util/mini_event.c",
+        "src/unbound/util/module.c",
+        "src/unbound/util/net_help.c",
+        "src/unbound/util/netevent.c",
+        "src/unbound/util/random.c",
+        "src/unbound/util/rbtree.c",
+        "src/unbound/util/regional.c",
+        "src/unbound/util/rtt.c",
+        "src/unbound/util/storage/dnstree.c",
+        "src/unbound/util/storage/lookup3.c",
+        "src/unbound/util/storage/lruhash.c",
+        "src/unbound/util/storage/slabhash.c",
+        "src/unbound/util/timehist.c",
+        "src/unbound/util/tube.c",
+        #src/unbound/util/winsock_event.c
+        "src/unbound/validator/autotrust.c",
+        "src/unbound/validator/val_anchor.c",
+        "src/unbound/validator/val_kcache.c",
+        "src/unbound/validator/val_kentry.c",
+        "src/unbound/validator/val_neg.c",
+        "src/unbound/validator/val_nsec.c",
+        "src/unbound/validator/val_nsec3.c",
+        "src/unbound/validator/val_secalgo.c",
+        "src/unbound/validator/val_sigcrypt.c",
+        "src/unbound/validator/val_utils.c",
+        "src/unbound/validator/validator.c",
+            ]
+        if env["target"] == "android" :
+            unbound_objects.append("src/android/compat/glob.c")
+            unbound_objects.append("src/android/dns/dns_android.cpp")
+        env["UNBOUND_OBJECTS"] = myenv.SwiftenObject(unbound_objects)
diff --git a/3rdParty/ZLib/SConscript b/3rdParty/ZLib/SConscript
index 3625ee6..f6f96ec 100644
--- a/3rdParty/ZLib/SConscript
+++ b/3rdParty/ZLib/SConscript
@@ -1,24 +1,24 @@
 Import("env")
 
 if env.get("ZLIB_BUNDLED", False) :
-	if env["SCONS_STAGE"] == "flags" :
-		env["ZLIB_FLAGS"] = {
-				"CPPPATH": [Dir("src")],
-				"LIBPATH": [Dir(".")],
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["ZLIB_FLAGS"] = {
+                "CPPPATH": [Dir("src")],
+                "LIBPATH": [Dir(".")],
+            }
 
-	if env["SCONS_STAGE"] == "build" :
-		env["ZLIB_OBJECTS"] = env.SwiftenObject([
-				"src/adler32.c",
-				"src/compress.c",
-				"src/crc32.c",
-				"src/deflate.c",
-				"src/gzio.c",
-				"src/infback.c",
-				"src/inffast.c",
-				"src/inflate.c",
-				"src/inftrees.c",
-				"src/trees.c",
-				"src/uncompr.c",
-				"src/zutil.c"
-			])
+    if env["SCONS_STAGE"] == "build" :
+        env["ZLIB_OBJECTS"] = env.SwiftenObject([
+                "src/adler32.c",
+                "src/compress.c",
+                "src/crc32.c",
+                "src/deflate.c",
+                "src/gzio.c",
+                "src/infback.c",
+                "src/inffast.c",
+                "src/inflate.c",
+                "src/inftrees.c",
+                "src/trees.c",
+                "src/uncompr.c",
+                "src/zutil.c"
+            ])
diff --git a/BuildTools/CheckHeaders.py b/BuildTools/CheckHeaders.py
index 8d20f4e..79ff85c 100755
--- a/BuildTools/CheckHeaders.py
+++ b/BuildTools/CheckHeaders.py
@@ -3,18 +3,18 @@
 import os, sys
 
 FORBIDDEN_INCLUDES = [
-	("iostream", ["Swiften/Base/format.h"]), 
-	("Base/Log.h", []), 
-	("Base/format.h", []),
-	("algorithm", ["Swiften/Base/Algorithm.h", "Swiften/Base/SafeAllocator.h", "Swiften/Base/Listenable.h", "Swiften/Base/Concat.h"]), 
-	("boost/bind.hpp", ["Swiften/Base/Listenable.h", "Swiften/FileTransfer/S5BTransportSession.h"]), 
-	("boost/filesystem.hpp", []), 
-	("Base/foreach.h", []), 
-	("boost/date_time/date_time.hpp", []), 
-	("boost/filesystem/filesystem.hpp", []),
-
-	# To avoid
-	("Base/Algorithm.h", ["Swiften/StringCodecs/HMAC.h"]),
+    ("iostream", ["Swiften/Base/format.h"]), 
+    ("Base/Log.h", []), 
+    ("Base/format.h", []),
+    ("algorithm", ["Swiften/Base/Algorithm.h", "Swiften/Base/SafeAllocator.h", "Swiften/Base/Listenable.h", "Swiften/Base/Concat.h"]), 
+    ("boost/bind.hpp", ["Swiften/Base/Listenable.h", "Swiften/FileTransfer/S5BTransportSession.h"]), 
+    ("boost/filesystem.hpp", []), 
+    ("Base/foreach.h", []), 
+    ("boost/date_time/date_time.hpp", []), 
+    ("boost/filesystem/filesystem.hpp", []),
+
+    # To avoid
+    ("Base/Algorithm.h", ["Swiften/StringCodecs/HMAC.h"]),
 ]
 
 foundBadHeaders = False
@@ -22,21 +22,21 @@ foundBadHeaders = False
 filename = sys.argv[1]
 
 if "3rdParty" in filename or ".sconf" in filename or ".framework" in filename or not filename.endswith(".h") :
-	sys.exit(0)
+    sys.exit(0)
 if not "Swiften" in filename :
-	sys.exit(0)
+    sys.exit(0)
 if filename.endswith("Swiften.h") :
-	sys.exit(0)
+    sys.exit(0)
 
 file = open(filename, "r")
 for line in file.readlines() :
-	if not "#include" in line :
-		continue
-	if "Base/Log.h" in filename :
-		continue
-	for forbiddenInclude, ignores in FORBIDDEN_INCLUDES :
-		if forbiddenInclude in line and len([x for x in ignores if x in filename]) == 0 :
-			print "Found " + forbiddenInclude + " include in " + filename
-			foundBadHeaders = True
+    if not "#include" in line :
+        continue
+    if "Base/Log.h" in filename :
+        continue
+    for forbiddenInclude, ignores in FORBIDDEN_INCLUDES :
+        if forbiddenInclude in line and len([x for x in ignores if x in filename]) == 0 :
+            print "Found " + forbiddenInclude + " include in " + filename
+            foundBadHeaders = True
 
 sys.exit(foundBadHeaders)
diff --git a/BuildTools/CheckTests.py b/BuildTools/CheckTests.py
index 0ea56bd..7f160e7 100755
--- a/BuildTools/CheckTests.py
+++ b/BuildTools/CheckTests.py
@@ -5,29 +5,29 @@ import os, sys, re
 foundUnregisteredTests = False
 
 for (path, dirs, files) in os.walk(".") :
-	if not "3rdParty" in path :
-		for filename in [os.path.join(path, file) for file in files if file.endswith("Test.cpp") and file != "IdleQuerierTest.cpp" and file != "NotifierTest.cpp" and file != "ClientTest.cpp" and file != "ConnectivityTest.cpp" and file != "ReconnectTest.cpp"] :
-			file = open(filename, "r")
-			isRegistered = False
-			registeredTests = set()
-			declaredTests = set()
-			for line in file.readlines() :
-				m = re.match("\s*CPPUNIT_TEST_SUITE_REGISTRATION\((.*)\)", line)
-				if m :
-					isRegistered = True
-				m = re.match("\s*CPPUNIT_TEST\((.*)\)", line)
-				if m :
-					registeredTests.add(m.group(1))
-					continue
-				m = re.match("\s*void (test.*)\(\)", line)
-				if m :
-					declaredTests.add(m.group(1))
-			if not isRegistered :
-				print filename + ": Registration missing"
-				foundUnregisteredTests = True
-			if registeredTests - declaredTests != set([]) :
-				print filename + ": " + str(registeredTests - declaredTests)
-				foundUnregisteredTests = True
-			file.close()
+    if not "3rdParty" in path :
+        for filename in [os.path.join(path, file) for file in files if file.endswith("Test.cpp") and file != "IdleQuerierTest.cpp" and file != "NotifierTest.cpp" and file != "ClientTest.cpp" and file != "ConnectivityTest.cpp" and file != "ReconnectTest.cpp"] :
+            file = open(filename, "r")
+            isRegistered = False
+            registeredTests = set()
+            declaredTests = set()
+            for line in file.readlines() :
+                m = re.match("\s*CPPUNIT_TEST_SUITE_REGISTRATION\((.*)\)", line)
+                if m :
+                    isRegistered = True
+                m = re.match("\s*CPPUNIT_TEST\((.*)\)", line)
+                if m :
+                    registeredTests.add(m.group(1))
+                    continue
+                m = re.match("\s*void (test.*)\(\)", line)
+                if m :
+                    declaredTests.add(m.group(1))
+            if not isRegistered :
+                print filename + ": Registration missing"
+                foundUnregisteredTests = True
+            if registeredTests - declaredTests != set([]) :
+                print filename + ": " + str(registeredTests - declaredTests)
+                foundUnregisteredTests = True
+            file.close()
 
 sys.exit(foundUnregisteredTests)
diff --git a/BuildTools/CheckTranslations.py b/BuildTools/CheckTranslations.py
index a9b6afd..615f81f 100755
--- a/BuildTools/CheckTranslations.py
+++ b/BuildTools/CheckTranslations.py
@@ -3,48 +3,48 @@
 import os, sys, re, xml.dom.minidom
 
 def getText(nodelist):
-	text = ""
-	for node in nodelist:
-		if node.nodeType == node.TEXT_NODE:
-			text += node.data
-	return text
+    text = ""
+    for node in nodelist:
+        if node.nodeType == node.TEXT_NODE:
+            text += node.data
+    return text
 
 
 desktop_generic_names = set()
 desktop_comments = set()
 f = open("Swift/resources/swift.desktop", "r")
 for l in f.readlines() :
-	m = re.match("GenericName\[(\w+)\].*", l)
-	if m :
-		desktop_generic_names.add(m.group(1))
-	m = re.match("Comment\[(\w+)\].*", l)
-	if m :
-		desktop_comments.add(m.group(1))
+    m = re.match("GenericName\[(\w+)\].*", l)
+    if m :
+        desktop_generic_names.add(m.group(1))
+    m = re.match("Comment\[(\w+)\].*", l)
+    if m :
+        desktop_comments.add(m.group(1))
 f.close()
 
 for filename in os.listdir("Swift/Translations") :
-	m = re.match("swift_(.*)\.ts", filename)
-	if m :
-		language = m.group(1)
-		finished = True
-		f = open("Swift/Translations/" + filename, "r")
-		document = xml.dom.minidom.parse(f)
-		f.close()
+    m = re.match("swift_(.*)\.ts", filename)
+    if m :
+        language = m.group(1)
+        finished = True
+        f = open("Swift/Translations/" + filename, "r")
+        document = xml.dom.minidom.parse(f)
+        f.close()
 
-		for message in document.getElementsByTagName("message") :
-			source = message.getElementsByTagName("source")[0]
-			sourceText = getText(source.childNodes)
-			sourcePlaceholders = set(re.findall("%\d+%?", sourceText))
-			translation = message.getElementsByTagName("translation")[0]
-			if "type" in translation.attributes.keys() and translation.attributes["type"]. value == "unfinished" :
-				finished = False
-			translationText = getText(translation.childNodes)
-			translationPlaceholders = set(re.findall("%\d+%?", translationText))
-			if translationPlaceholders != sourcePlaceholders :
-				print "[Error] " + filename + ": Placeholder mismatch in translation '" + sourceText + "'"
-		if not finished :
-				print "[Warning] " + filename + ": Unfinished"
-		if language not in desktop_generic_names and language != "en" :
-				print "[Warning] GenericName field missing in desktop entry for " + language
-		if language not in desktop_comments and language != "en" :
-				print "[Warning] Comment field missing in desktop entry for " + language
+        for message in document.getElementsByTagName("message") :
+            source = message.getElementsByTagName("source")[0]
+            sourceText = getText(source.childNodes)
+            sourcePlaceholders = set(re.findall("%\d+%?", sourceText))
+            translation = message.getElementsByTagName("translation")[0]
+            if "type" in translation.attributes.keys() and translation.attributes["type"]. value == "unfinished" :
+                finished = False
+            translationText = getText(translation.childNodes)
+            translationPlaceholders = set(re.findall("%\d+%?", translationText))
+            if translationPlaceholders != sourcePlaceholders :
+                print "[Error] " + filename + ": Placeholder mismatch in translation '" + sourceText + "'"
+        if not finished :
+                print "[Warning] " + filename + ": Unfinished"
+        if language not in desktop_generic_names and language != "en" :
+                print "[Warning] GenericName field missing in desktop entry for " + language
+        if language not in desktop_comments and language != "en" :
+                print "[Warning] Comment field missing in desktop entry for " + language
diff --git a/BuildTools/Copyright/find-contribs.py b/BuildTools/Copyright/find-contribs.py
index 63c454e..ac30afb 100755
--- a/BuildTools/Copyright/find-contribs.py
+++ b/BuildTools/Copyright/find-contribs.py
@@ -3,46 +3,46 @@
 import subprocess
 
 def print_log(full_log):
-	full_log_lines = full_log.split("\n")
-
-	commits = []
-
-	commit_bit = "commit "
-	author_bit = "Author: "
-	date_bit = "Date: "
-
-	commit = None
-	for line in full_log_lines:
-
-		if line[0:len(commit_bit)] == commit_bit:
-			if commit:
-				commits.append(commit)
-			commit = {'text':''}
-		handled = False
-		for bit in [commit_bit, author_bit, date_bit]:
-			if line[0:len(bit)] == bit:
-				commit[bit] = line
-				handled = True
-		if not handled:
-			commit['text'] += line
-
-	commits.append(commit)
-
-	contributions = []
-
-	for commit in commits:
-		if not "git@kismith.co.uk" in commit[author_bit] and not "git@el-tramo.be" in commit[author_bit]:
-			contributions.append(commit)
-
-	#print contributions
-	contributors = {}
-	for commit in contributions:
-		if not commit[author_bit] in contributors:
-			contributors[commit[author_bit]] = []
-		contributors[commit[author_bit]].append(commit[commit_bit])
-
-	for contributor in contributors:
-		print contributor + " has contributed patches " + ", ".join([commit[len(commit_bit):] for commit in contributors[contributor]])
+    full_log_lines = full_log.split("\n")
+
+    commits = []
+
+    commit_bit = "commit "
+    author_bit = "Author: "
+    date_bit = "Date: "
+
+    commit = None
+    for line in full_log_lines:
+
+        if line[0:len(commit_bit)] == commit_bit:
+            if commit:
+                commits.append(commit)
+            commit = {'text':''}
+        handled = False
+        for bit in [commit_bit, author_bit, date_bit]:
+            if line[0:len(bit)] == bit:
+                commit[bit] = line
+                handled = True
+        if not handled:
+            commit['text'] += line
+
+    commits.append(commit)
+
+    contributions = []
+
+    for commit in commits:
+        if not "git@kismith.co.uk" in commit[author_bit] and not "git@el-tramo.be" in commit[author_bit]:
+            contributions.append(commit)
+
+    #print contributions
+    contributors = {}
+    for commit in contributions:
+        if not commit[author_bit] in contributors:
+            contributors[commit[author_bit]] = []
+        contributors[commit[author_bit]].append(commit[commit_bit])
+
+    for contributor in contributors:
+        print contributor + " has contributed patches " + ", ".join([commit[len(commit_bit):] for commit in contributors[contributor]])
 
 full_swiften_log = subprocess.check_output(["git", "log", "--", "Swiften"])
 
diff --git a/BuildTools/Copyrighter.py b/BuildTools/Copyrighter.py
index a3b6379..a16050c 100755
--- a/BuildTools/Copyrighter.py
+++ b/BuildTools/Copyrighter.py
@@ -11,32 +11,32 @@ LICENSE_DIR = "Documentation/Licenses"
 reParseLicenseCommentBlocks = re.compile(ur'(\/\*\n\s\*\sCopyright \(c\) (?P<startYear>\d\d\d\d)(-(?P<endYear>\d\d\d\d))? (?P<author>[^\n\.]*)\.?\n.\* (?P<license>[^\n]*)\n \* (?P<seeMore>[^\n]+)\n *\*\/)')
 
 class License :
-	def __init__(self, name, file) :
-		self.name = name
-		self.file = file
+    def __init__(self, name, file) :
+        self.name = name
+        self.file = file
 
 licenses = {
-		"default": License("All rights reserved.", "See the COPYING file for more information."),
-		"gpl3" : License("Licensed under the GNU General Public License v3.", "See " + LICENSE_DIR + "/" + "GPLv3.txt" + " for more information."),
-		"mit" : License("Licensed under the MIT License.", "See " + LICENSE_DIR + "/" +  "MIT.txt" + " for more information."),
-	}
+        "default": License("All rights reserved.", "See the COPYING file for more information."),
+        "gpl3" : License("Licensed under the GNU General Public License v3.", "See " + LICENSE_DIR + "/" + "GPLv3.txt" + " for more information."),
+        "mit" : License("Licensed under the MIT License.", "See " + LICENSE_DIR + "/" +  "MIT.txt" + " for more information."),
+    }
 
 class Copyright :
-	def __init__(self, author, year, license) :
-		self.author = author
-		self.year = year
-		self.license = license
-
-	def to_string(self, comment_chars) :
-		return "\n".join([
-			comment_chars[0],
-			comment_chars[1] + " Copyright (c) %(year)s %(name)s" % {"year" : self.year, "name" : self.author },
-			comment_chars[1] + licenses[self.license].name,
-			comment_chars[1] + licenses[self.license].file,
-			comment_chars[2],
-			"\n"])
-	def __str__(self):
-		return """/*
+    def __init__(self, author, year, license) :
+        self.author = author
+        self.year = year
+        self.license = license
+
+    def to_string(self, comment_chars) :
+        return "\n".join([
+            comment_chars[0],
+            comment_chars[1] + " Copyright (c) %(year)s %(name)s" % {"year" : self.year, "name" : self.author },
+            comment_chars[1] + licenses[self.license].name,
+            comment_chars[1] + licenses[self.license].file,
+            comment_chars[2],
+            "\n"])
+    def __str__(self):
+        return """/*
  * Copyright (c) %s %s.
  * %s
  * %s
@@ -44,145 +44,145 @@ class Copyright :
 """ % (self.year, self.author, licenses[self.license].name, licenses[self.license].file)
 
 class ContentRef :
-	def __init__(self, begin, end, content):
-		self.begin = begin
-		self.end = end
-		self.content = content
+    def __init__(self, begin, end, content):
+        self.begin = begin
+        self.end = end
+        self.content = content
 
 class CopyrightBlock :
-	def __init__(self, yearBegin, yearEnd, author, license, seeMore, total):
-		self.yearBegin = yearBegin
-		self.yearEnd = yearEnd
-		self.author = author
-		self.license = license
-		self.seeMore = seeMore
-		self.total = total
+    def __init__(self, yearBegin, yearEnd, author, license, seeMore, total):
+        self.yearBegin = yearBegin
+        self.yearEnd = yearEnd
+        self.author = author
+        self.license = license
+        self.seeMore = seeMore
+        self.total = total
 
 def cref_from_group(match, group):
-	if match.group(group):
-		return ContentRef(match.start(group), match.end(group), match.group(group))
-	else :
-		return None
+    if match.group(group):
+        return ContentRef(match.start(group), match.end(group), match.group(group))
+    else :
+        return None
 
 def parse_file_new(filename):
-	copyrightBlocks = []
-	with open(filename, 'r') as file:
-		content = file.read()
-		for match in re.finditer(reParseLicenseCommentBlocks, content):
-			copyrightBlocks.append(CopyrightBlock(
-				cref_from_group(match, "startYear"), 
-				cref_from_group(match, "endYear"), 
-				cref_from_group(match, "author"), 
-				cref_from_group(match, "license"), 
-				cref_from_group(match, "seeMore"), 
-				cref_from_group(match, 0)))
-	return copyrightBlocks
+    copyrightBlocks = []
+    with open(filename, 'r') as file:
+        content = file.read()
+        for match in re.finditer(reParseLicenseCommentBlocks, content):
+            copyrightBlocks.append(CopyrightBlock(
+                cref_from_group(match, "startYear"), 
+                cref_from_group(match, "endYear"), 
+                cref_from_group(match, "author"), 
+                cref_from_group(match, "license"), 
+                cref_from_group(match, "seeMore"), 
+                cref_from_group(match, 0)))
+    return copyrightBlocks
 
 def get_userinfo() :
-	p = subprocess.Popen("git config user.name", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
-	username = p.stdout.read().rstrip()
-	p.stdin.close()
-	if p.wait() != 0 :
-		return None
-	p = subprocess.Popen("git config user.email", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
-	email = p.stdout.read().rstrip()
-	p.stdin.close()
-	if p.wait() != 0 :
-		return None
-	return (username, email)
+    p = subprocess.Popen("git config user.name", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
+    username = p.stdout.read().rstrip()
+    p.stdin.close()
+    if p.wait() != 0 :
+        return None
+    p = subprocess.Popen("git config user.email", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
+    email = p.stdout.read().rstrip()
+    p.stdin.close()
+    if p.wait() != 0 :
+        return None
+    return (username, email)
 
 def get_copyright(username, email) :
-	if email in ["git@el-tramo.be", "git@kismith.co.uk"] :
-		license = DEFAULT_LICENSE
-	else :
-		license = CONTRIBUTOR_LICENSE
-	return Copyright(username, datetime.date.today().strftime("%Y"), license)
+    if email in ["git@el-tramo.be", "git@kismith.co.uk"] :
+        license = DEFAULT_LICENSE
+    else :
+        license = CONTRIBUTOR_LICENSE
+    return Copyright(username, datetime.date.today().strftime("%Y"), license)
 
 def get_copyright_setting(username, email) :
-	config = os.getenv("SWIFT_LICENSE_CONFIG")
-	if config :
-		copyrightHolder, license = config.split("|")
-	else :
-		if email.endswith("isode.com") or email in ["git@el-tramo.be", "git@kismith.co.uk", "tm@ayena.de"] :
-			copyrightHolder, license = "Isode Limited", "default"
-		else :
-			copyrightHolder, license = username, "mit"
-	return Copyright(copyrightHolder, datetime.date.today().year, license)
+    config = os.getenv("SWIFT_LICENSE_CONFIG")
+    if config :
+        copyrightHolder, license = config.split("|")
+    else :
+        if email.endswith("isode.com") or email in ["git@el-tramo.be", "git@kismith.co.uk", "tm@ayena.de"] :
+            copyrightHolder, license = "Isode Limited", "default"
+        else :
+            copyrightHolder, license = username, "mit"
+    return Copyright(copyrightHolder, datetime.date.today().year, license)
 
 def check_copyright(filename, hints) :
-	copyrightBlocks = parse_file_new(filename)
-	if copyrightBlocks :
-		# looking for copyright block for current author
-		username, email = get_userinfo()
-		copyrightSetting = get_copyright_setting(username, email)
-		for block in copyrightBlocks :
-			if block.author.content == copyrightSetting.author:
-				year = block.yearBegin.content if not block.yearEnd else block.yearEnd.content
-				if int(year) == copyrightSetting.year:
-					return True
-				else :
-					if hints :
-						print "Copyright block for " + copyrightSetting.author + " does not cover current year in: " + filename
-					return False
-		if hints :
-			print "Missing copyright block for " + copyrightSetting.author + " in: " + filename
-		return False
-	else :
-		if hints :
-			print "No copyright found in: " + filename
-		return False
+    copyrightBlocks = parse_file_new(filename)
+    if copyrightBlocks :
+        # looking for copyright block for current author
+        username, email = get_userinfo()
+        copyrightSetting = get_copyright_setting(username, email)
+        for block in copyrightBlocks :
+            if block.author.content == copyrightSetting.author:
+                year = block.yearBegin.content if not block.yearEnd else block.yearEnd.content
+                if int(year) == copyrightSetting.year:
+                    return True
+                else :
+                    if hints :
+                        print "Copyright block for " + copyrightSetting.author + " does not cover current year in: " + filename
+                    return False
+        if hints :
+            print "Missing copyright block for " + copyrightSetting.author + " in: " + filename
+        return False
+    else :
+        if hints :
+            print "No copyright found in: " + filename
+        return False
 
 def replace_data_in_file(filename, begin, end, replaceWith) :
-	with open(filename, 'r') as file:
-		content = file.read()
-	with open(filename, 'w') as file:
-		file.write(content[:begin] + replaceWith + content[end:])
+    with open(filename, 'r') as file:
+        content = file.read()
+    with open(filename, 'w') as file:
+        file.write(content[:begin] + replaceWith + content[end:])
 
 def set_or_update_copyright(filename) :
-	if check_copyright(filename, False) :
-		print "No update required for file: " + filename
-	else :
-		copyrightBlocks = parse_file_new(filename)
-		username, email = get_userinfo()
-		copyrightSetting = get_copyright_setting(username, email)
-		lastBlock = 0
-		for block in copyrightBlocks :
-			if block.author.content == copyrightSetting.author :
-				if not block.yearEnd :
-					# replace year with range
-					replace_data_in_file(filename, block.yearBegin.begin, block.yearBegin.end, "%s-%s" % (block.yearBegin.content, str(copyrightSetting.year)))
-				else :
-					# replace end of range with current year
-					replace_data_in_file(filename, block.yearEnd.begin, block.yearEnd.end, "%s" % str(copyrightSetting.year))
-				return
-			lastBlock = block.total.end
-
-		# No copyright block found. Append a new one.
-		replace_data_in_file(filename, lastBlock+1, lastBlock+1, "\n" + str(copyrightSetting))
+    if check_copyright(filename, False) :
+        print "No update required for file: " + filename
+    else :
+        copyrightBlocks = parse_file_new(filename)
+        username, email = get_userinfo()
+        copyrightSetting = get_copyright_setting(username, email)
+        lastBlock = 0
+        for block in copyrightBlocks :
+            if block.author.content == copyrightSetting.author :
+                if not block.yearEnd :
+                    # replace year with range
+                    replace_data_in_file(filename, block.yearBegin.begin, block.yearBegin.end, "%s-%s" % (block.yearBegin.content, str(copyrightSetting.year)))
+                else :
+                    # replace end of range with current year
+                    replace_data_in_file(filename, block.yearEnd.begin, block.yearEnd.end, "%s" % str(copyrightSetting.year))
+                return
+            lastBlock = block.total.end
+
+        # No copyright block found. Append a new one.
+        replace_data_in_file(filename, lastBlock+1, lastBlock+1, "\n" + str(copyrightSetting))
 
 def print_help() :
-	print """Usage:
-	Copyrighter.py check-copyright $filename
-		Cheks for the existence of a copyright comment block.
+    print """Usage:
+    Copyrighter.py check-copyright $filename
+        Cheks for the existence of a copyright comment block.
 
-	Copyrighter.py set-copyright $filename
-		Adds or updates the existing copyright comment block.
+    Copyrighter.py set-copyright $filename
+        Adds or updates the existing copyright comment block.
 
-	License setting:
-		A users license configuration can be set via the SWIFT_LICENSE_CONFIG environment variable 
-		in the format "$copyright holder|$license", e.g. "Jane Doe|mit". Possible values for 
-		$license are default, mit and gpl.
-	"""
+    License setting:
+        A users license configuration can be set via the SWIFT_LICENSE_CONFIG environment variable 
+        in the format "$copyright holder|$license", e.g. "Jane Doe|mit". Possible values for 
+        $license are default, mit and gpl.
+    """
 
 if sys.argv[1] == "check-copyright" :
-	file = sys.argv[2]
-	if (file.endswith(".cpp") or file.endswith(".h")) and not "3rdParty" in file :
-		if not check_copyright(file, True) :
-			sys.exit(-1)
+    file = sys.argv[2]
+    if (file.endswith(".cpp") or file.endswith(".h")) and not "3rdParty" in file :
+        if not check_copyright(file, True) :
+            sys.exit(-1)
 elif sys.argv[1] == "set-copyright" :
-	file = sys.argv[2]
-	set_or_update_copyright(file)
+    file = sys.argv[2]
+    set_or_update_copyright(file)
 else :
-	print "Unknown command: " + sys.argv[1]
-	print_help()
-	sys.exit(-1)
+    print "Unknown command: " + sys.argv[1]
+    print_help()
+    sys.exit(-1)
diff --git a/BuildTools/Coverage/FilterLCovData.py b/BuildTools/Coverage/FilterLCovData.py
index 33fd682..e0f5c92 100755
--- a/BuildTools/Coverage/FilterLCovData.py
+++ b/BuildTools/Coverage/FilterLCovData.py
@@ -7,23 +7,23 @@ import sys, re, os.path
 assert(len(sys.argv) == 2)
 
 def isIgnored(file) :
-	return (file.find("/Swiften/") == -1 and file.find("/Slimber/") == -1 and file.find("/Swift/") == -1) or (file.find("/UnitTest/") != -1 or file.find("/QA/") != -1)
+    return (file.find("/Swiften/") == -1 and file.find("/Slimber/") == -1 and file.find("/Swift/") == -1) or (file.find("/UnitTest/") != -1 or file.find("/QA/") != -1)
 
 output = []
 inputFile = open(sys.argv[1])
 inIgnoredFile = False
 for line in inputFile.readlines() :
-	if inIgnoredFile :
-		if line == "end_of_record\n" :
-			inIgnoredFile = False
-	else :
-		if line.startswith("SF:") and isIgnored(line) :
-			inIgnoredFile = True
-		else :
-			m = re.match("SF:(.*)", line)
-			if m :
-				line = "SF:" + os.path.realpath(m.group(1)) + "\n"
-			output.append(line)
+    if inIgnoredFile :
+        if line == "end_of_record\n" :
+            inIgnoredFile = False
+    else :
+        if line.startswith("SF:") and isIgnored(line) :
+            inIgnoredFile = True
+        else :
+            m = re.match("SF:(.*)", line)
+            if m :
+                line = "SF:" + os.path.realpath(m.group(1)) + "\n"
+            output.append(line)
 inputFile.close()
 
 outputFile = open(sys.argv[1], 'w')
diff --git a/BuildTools/Coverage/GenerateSummary.py b/BuildTools/Coverage/GenerateSummary.py
index e572082..9de0f4d 100755
--- a/BuildTools/Coverage/GenerateSummary.py
+++ b/BuildTools/Coverage/GenerateSummary.py
@@ -8,27 +8,27 @@ inputFile = open(sys.argv[1])
 currentFile = ""
 coverage = {}
 for line in inputFile.readlines() :
-	line = line.strip()
-	m = re.match("^SF:(.*)", line)
-	if m :
-		currentFile = m.group(1)
-	else :
-		m = re.match("^DA:(\d+),(\d+)", line)
-		if m :
-			currentFileCoverage = coverage.get(currentFile, {})
-			line = int(m.group(1))
-			count = int(m.group(2))
-			currentFileCoverage[line] = currentFileCoverage.get(line, 0) + count
-			coverage[currentFile] = currentFileCoverage
+    line = line.strip()
+    m = re.match("^SF:(.*)", line)
+    if m :
+        currentFile = m.group(1)
+    else :
+        m = re.match("^DA:(\d+),(\d+)", line)
+        if m :
+            currentFileCoverage = coverage.get(currentFile, {})
+            line = int(m.group(1))
+            count = int(m.group(2))
+            currentFileCoverage[line] = currentFileCoverage.get(line, 0) + count
+            coverage[currentFile] = currentFileCoverage
 inputFile.close()
 
 totalLines = 0
 coveredLines = 0
 for c in coverage.values() :
-	totalLines += len(c)
-	for l in c.values() :
-		if l > 0 :
-			coveredLines += 1
+    totalLines += len(c)
+    for l in c.values() :
+        if l > 0 :
+            coveredLines += 1
 
 outputFile = open(sys.argv[2], 'w')
 outputFile.write(str(coveredLines) + "/" + str(totalLines))
diff --git a/BuildTools/Cppcheck.sh b/BuildTools/Cppcheck.sh
index 9f14cb2..ee52b9b 100755
--- a/BuildTools/Cppcheck.sh
+++ b/BuildTools/Cppcheck.sh
@@ -1,21 +1,21 @@
 #!/bin/sh
 
 cppcheck $@  \
-	--enable=all \
-	--inline-suppr \
-	--suppress=postfixOperator:3rdParty/hippomocks.h \
-	--suppress=stlSize:3rdParty/hippomocks.h \
-	--suppress=noConstructor \
-	--suppress=publicAllocationError:Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp \
-	-i 3rdParty -i .git -i .sconf_temp \
-	-i Swift/QtUI/EventViewer/main.cpp \
-	-i Swift/QtUI/ApplicationTest \
-	-i Swift/QtUI/ChatView/main.cpp \
-	-i Swift/QtUI/Roster/main.cpp \
-	-i Swift/QtUI/NotifierTest/NotifierTest.cpp \
-	-DSWIFTEN_BUILDING -DSWIFTEN_STATIC \
-	-U__BEOS__ -U__CYGWIN__ -U__QNNXTO__ -U__amigaos__ -Uhpux -U__sgi \
-	\
-	-I . \
-	-I Swift/QtUI \
-	.
+    --enable=all \
+    --inline-suppr \
+    --suppress=postfixOperator:3rdParty/hippomocks.h \
+    --suppress=stlSize:3rdParty/hippomocks.h \
+    --suppress=noConstructor \
+    --suppress=publicAllocationError:Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp \
+    -i 3rdParty -i .git -i .sconf_temp \
+    -i Swift/QtUI/EventViewer/main.cpp \
+    -i Swift/QtUI/ApplicationTest \
+    -i Swift/QtUI/ChatView/main.cpp \
+    -i Swift/QtUI/Roster/main.cpp \
+    -i Swift/QtUI/NotifierTest/NotifierTest.cpp \
+    -DSWIFTEN_BUILDING -DSWIFTEN_STATIC \
+    -U__BEOS__ -U__CYGWIN__ -U__QNNXTO__ -U__amigaos__ -Uhpux -U__sgi \
+    \
+    -I . \
+    -I Swift/QtUI \
+    .
diff --git a/BuildTools/DocBook/SCons/DocBook.py b/BuildTools/DocBook/SCons/DocBook.py
index 7641b65..ffb0bfc 100644
--- a/BuildTools/DocBook/SCons/DocBook.py
+++ b/BuildTools/DocBook/SCons/DocBook.py
@@ -6,100 +6,100 @@ import SCons.Util, SCons.Action
 import xml.dom.minidom, re, os.path, sys
 
 def generate(env) :
-	# Location of stylesheets and catalogs
-	docbook_dir = "#/BuildTools/DocBook"
-	docbook_xsl_style_dir = env.Dir(docbook_dir + "/Stylesheets").abspath
-	docbook_xml_catalog = env.File("catalog.xml").abspath
-	if "DOCBOOK_XML_DIR" in env :
-		docbook_xml_dir = env.Dir("$DOCBOOK_XML_DIR").abspath
-	else :
-		docbook_xml_dir = env.Dir("#/3rdParty/DocBook/XML").abspath
-	if "DOCBOOK_XSL_DIR" in env :
-		docbook_xsl_dir = env.Dir("$DOCBOOK_XSL_DIR").abspath
-	else :
-		docbook_xsl_dir = env.Dir("#/3rdParty/DocBook/XSL").abspath
-	fop_fonts_dir = env.Dir(docbook_dir + "/Fonts").abspath
-
-	# Generates a catalog from paths to external tools
-	def buildCatalog(target, source, env) :
-		catalog = """<?xml version='1.0'?>
+    # Location of stylesheets and catalogs
+    docbook_dir = "#/BuildTools/DocBook"
+    docbook_xsl_style_dir = env.Dir(docbook_dir + "/Stylesheets").abspath
+    docbook_xml_catalog = env.File("catalog.xml").abspath
+    if "DOCBOOK_XML_DIR" in env :
+        docbook_xml_dir = env.Dir("$DOCBOOK_XML_DIR").abspath
+    else :
+        docbook_xml_dir = env.Dir("#/3rdParty/DocBook/XML").abspath
+    if "DOCBOOK_XSL_DIR" in env :
+        docbook_xsl_dir = env.Dir("$DOCBOOK_XSL_DIR").abspath
+    else :
+        docbook_xsl_dir = env.Dir("#/3rdParty/DocBook/XSL").abspath
+    fop_fonts_dir = env.Dir(docbook_dir + "/Fonts").abspath
+
+    # Generates a catalog from paths to external tools
+    def buildCatalog(target, source, env) :
+        catalog = """<?xml version='1.0'?>
 <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
-	<rewriteSystem 
-			systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/" 
-			rewritePrefix="%(docbook_xml_dir)s/" />
-	<rewriteSystem 
-			systemIdStartString="docbook-xsl:/" 
-			rewritePrefix="%(docbook_xsl_dir)s/" />
+    <rewriteSystem 
+            systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/" 
+            rewritePrefix="%(docbook_xml_dir)s/" />
+    <rewriteSystem 
+            systemIdStartString="docbook-xsl:/" 
+            rewritePrefix="%(docbook_xsl_dir)s/" />
 </catalog>"""
 
-		docbook_xml_dir = source[0].get_contents()
-		docbook_xsl_dir = source[1].get_contents()
-		if env["PLATFORM"] == "win32" :
-			docbook_xml_dir = docbook_xml_dir.replace("\\","/")
-			docbook_xsl_dir = docbook_xsl_dir.replace("\\","/")
-		file = open(target[0].abspath, "w")
-		file.write(catalog % {
-				"docbook_xml_dir" : docbook_xml_dir,
-				"docbook_xsl_dir" : docbook_xsl_dir,
-			})
-		file.close()
-
-	# Generates a FOP config file
-	def buildFopConfig(target, source, env) :
-		fopcfg = """<fop version=\"1.0\">
-	<renderers>
-		<renderer mime=\"application/pdf\">
-			<fonts>
-				<directory recursive=\"true\">%(fonts_dir)s</directory>
-			</fonts>
-		</renderer>
-	</renderers>
+        docbook_xml_dir = source[0].get_contents()
+        docbook_xsl_dir = source[1].get_contents()
+        if env["PLATFORM"] == "win32" :
+            docbook_xml_dir = docbook_xml_dir.replace("\\","/")
+            docbook_xsl_dir = docbook_xsl_dir.replace("\\","/")
+        file = open(target[0].abspath, "w")
+        file.write(catalog % {
+                "docbook_xml_dir" : docbook_xml_dir,
+                "docbook_xsl_dir" : docbook_xsl_dir,
+            })
+        file.close()
+
+    # Generates a FOP config file
+    def buildFopConfig(target, source, env) :
+        fopcfg = """<fop version=\"1.0\">
+    <renderers>
+        <renderer mime=\"application/pdf\">
+            <fonts>
+                <directory recursive=\"true\">%(fonts_dir)s</directory>
+            </fonts>
+        </renderer>
+    </renderers>
 </fop>"""
 
-		file = open(target[0].abspath, "w")
-		file.write(fopcfg % {
-				"fonts_dir" : source[0].get_contents()
-			})
-		file.close()
+        file = open(target[0].abspath, "w")
+        file.write(fopcfg % {
+                "fonts_dir" : source[0].get_contents()
+            })
+        file.close()
 
-	# Builds a DocBook file
-	def buildDocBook(env, source) :
-		db_env = env.Clone()
-		db_env["XMLCATALOGS"] = [docbook_xml_catalog]
-		db_env["ENV"].update({"OS" : os.environ.get("OS", "")})
+    # Builds a DocBook file
+    def buildDocBook(env, source) :
+        db_env = env.Clone()
+        db_env["XMLCATALOGS"] = [docbook_xml_catalog]
+        db_env["ENV"].update({"OS" : os.environ.get("OS", "")})
 
-		db_env["XMLLINT"] = env.WhereIs("xmllint")
-		db_env["XSLT"] = env.WhereIs("xsltproc")
-		db_env["FO"] = env.WhereIs("fop")
+        db_env["XMLLINT"] = env.WhereIs("xmllint")
+        db_env["XSLT"] = env.WhereIs("xsltproc")
+        db_env["FO"] = env.WhereIs("fop")
 
-		if not db_env["XMLLINT"] or not db_env["XSLT"] :
-			return
+        if not db_env["XMLLINT"] or not db_env["XSLT"] :
+            return
 
-		# PDF generation
-		if db_env["FO"] :
-			fo = db_env.XSLT(os.path.splitext(source)[0] + ".fo", source, 
-					XSLTSTYLESHEET = db_env["DOCBOOK_XSL_FO"])
-			pdf = db_env.FO(fo)
+        # PDF generation
+        if db_env["FO"] :
+            fo = db_env.XSLT(os.path.splitext(source)[0] + ".fo", source, 
+                    XSLTSTYLESHEET = db_env["DOCBOOK_XSL_FO"])
+            pdf = db_env.FO(fo)
 
-		# HTML generation
-		db_env.XSLT(os.path.splitext(source)[0] + ".html", source, 
-				XSLTSTYLESHEET = db_env["DOCBOOK_XSL_HTML"])
+        # HTML generation
+        db_env.XSLT(os.path.splitext(source)[0] + ".html", source, 
+                XSLTSTYLESHEET = db_env["DOCBOOK_XSL_HTML"])
 
-	# Import tools
-	env.Tool("FO", toolpath = [docbook_dir + "/SCons"])
-	env.Tool("XSLT", toolpath = [docbook_dir + "/SCons"])
+    # Import tools
+    env.Tool("FO", toolpath = [docbook_dir + "/SCons"])
+    env.Tool("XSLT", toolpath = [docbook_dir + "/SCons"])
 
-	# Catalog file generation
-	env.Command("catalog.xml", [env.Value(docbook_xml_dir), env.Value(docbook_xsl_dir)], SCons.Action.Action(buildCatalog, cmdstr = "$GENCOMSTR"))
+    # Catalog file generation
+    env.Command("catalog.xml", [env.Value(docbook_xml_dir), env.Value(docbook_xsl_dir)], SCons.Action.Action(buildCatalog, cmdstr = "$GENCOMSTR"))
 
-	# FO config file generation
-	env["FOCFG"] = env.File("fop.cfg").abspath
-	env.Command("fop.cfg", [env.Value(fop_fonts_dir)], SCons.Action.Action(buildFopConfig, cmdstr = "$GENCOMSTR"))
+    # FO config file generation
+    env["FOCFG"] = env.File("fop.cfg").abspath
+    env.Command("fop.cfg", [env.Value(fop_fonts_dir)], SCons.Action.Action(buildFopConfig, cmdstr = "$GENCOMSTR"))
 
-	# DocBook stylesheets
-	env["DOCBOOK_XSL_FO"] = docbook_xsl_style_dir + "/fo/docbook.xsl"
-	env["DOCBOOK_XSL_HTML"] = docbook_xsl_style_dir + "/html/docbook.xsl"
-	env.AddMethod(buildDocBook, "DocBook")
+    # DocBook stylesheets
+    env["DOCBOOK_XSL_FO"] = docbook_xsl_style_dir + "/fo/docbook.xsl"
+    env["DOCBOOK_XSL_HTML"] = docbook_xsl_style_dir + "/html/docbook.xsl"
+    env.AddMethod(buildDocBook, "DocBook")
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/DocBook/SCons/FO.py b/BuildTools/DocBook/SCons/FO.py
index a4079d7..c1c5614 100644
--- a/BuildTools/DocBook/SCons/FO.py
+++ b/BuildTools/DocBook/SCons/FO.py
@@ -6,40 +6,40 @@ import xml.dom.minidom, re
 ################################################################################
 
 def generate(env) :
-	def generate_actions(source, target, env, for_signature) :
-		if len(env["FOCFG"]) > 0 :
-			cmd = "$FO -c $FOCFG $FOFLAGS $SOURCE $TARGET"
-		else :
-			cmd = "$FO $FOFLAGS $SOURCE $TARGET"
-		return SCons.Action.Action(cmd, cmdstr = "$FOCOMSTR")
+    def generate_actions(source, target, env, for_signature) :
+        if len(env["FOCFG"]) > 0 :
+            cmd = "$FO -c $FOCFG $FOFLAGS $SOURCE $TARGET"
+        else :
+            cmd = "$FO $FOFLAGS $SOURCE $TARGET"
+        return SCons.Action.Action(cmd, cmdstr = "$FOCOMSTR")
 
-	def modify_sources(target, source, env) :
-		if len(env["FOCFG"]) > 0 :
-			source.append(env["FOCFG"])
-		return target, source
+    def modify_sources(target, source, env) :
+        if len(env["FOCFG"]) > 0 :
+            source.append(env["FOCFG"])
+        return target, source
 
-	def scan_fo(node, env, path) :
-		dependencies = set()
-		try :
-			document = xml.dom.minidom.parseString(node.get_contents())
-		except xml.parsers.expat.ExpatError:
-			return []
-		for include in document.getElementsByTagNameNS("http://www.w3.org/1999/XSL/Format", "external-graphic") :
-			m = re.match("url\((.*)\)", include.getAttribute("src"))
-			if m :
-				dependencies.add(m.group(1))
-		return list(dependencies)
+    def scan_fo(node, env, path) :
+        dependencies = set()
+        try :
+            document = xml.dom.minidom.parseString(node.get_contents())
+        except xml.parsers.expat.ExpatError:
+            return []
+        for include in document.getElementsByTagNameNS("http://www.w3.org/1999/XSL/Format", "external-graphic") :
+            m = re.match("url\((.*)\)", include.getAttribute("src"))
+            if m :
+                dependencies.add(m.group(1))
+        return list(dependencies)
 
-	env["FO"] = "fop"
-	env["FOFLAGS"] = ""
-	env["FOCFG"] = ""
-	env["BUILDERS"]["FO"] = SCons.Builder.Builder(
-				generator = generate_actions,
-				emitter = modify_sources,
-				source_scanner = SCons.Scanner.Scanner(function = scan_fo, skeys = [".fo"]),
-				suffix = ".pdf",
-				src_suffix = ".fo"
-			)
+    env["FO"] = "fop"
+    env["FOFLAGS"] = ""
+    env["FOCFG"] = ""
+    env["BUILDERS"]["FO"] = SCons.Builder.Builder(
+                generator = generate_actions,
+                emitter = modify_sources,
+                source_scanner = SCons.Scanner.Scanner(function = scan_fo, skeys = [".fo"]),
+                suffix = ".pdf",
+                src_suffix = ".fo"
+            )
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/DocBook/SCons/XSLT.py b/BuildTools/DocBook/SCons/XSLT.py
index 825f129..38e36c5 100644
--- a/BuildTools/DocBook/SCons/XSLT.py
+++ b/BuildTools/DocBook/SCons/XSLT.py
@@ -6,58 +6,58 @@ import xml.dom.minidom, os, os.path
 ################################################################################
 
 def generate(env) :
-	def generate_actions(source, target, env, for_signature) :
-		if not env.has_key("XSLTSTYLESHEET") :
-			raise SCons.Errors.UserError, "The XSLTSTYLESHEET construction variable must be defined"
-
-		# Process the XML catalog files
-		# FIXME: It's probably not clean to do an ENV assignment globally
-		env["ENV"]["XML_CATALOG_FILES"] = " ".join(env.get("XMLCATALOGS", ""))
-
-		# Build the XMLLint command
-		xmllintcmd = ["$XMLLINT", "--nonet", "--xinclude", "--postvalid", "--noout", "$SOURCE"]
-
-		# Build the XSLT command
-		xsltcmd = ["$XSLT", "--nonet", "--xinclude"]
-		for (param, value) in env["XSLTPARAMS"] :
-			xsltcmd += ["--stringparam", param, value]
-		xsltcmd += ["-o", "$TARGET", "$XSLTSTYLESHEET", "$SOURCE"]
-
-		return [
-			SCons.Action.Action([xmllintcmd], cmdstr = "$XMLLINTCOMSTR"),
-			SCons.Action.Action([xsltcmd], cmdstr = "$XSLTCOMSTR")]
-
-	def modify_sources(target, source, env) :
-		if len(env["FOCFG"]) > 0 :
-			source.append(env["FOCFG"])
-		source.append(env.get("XMLCATALOGS", []))
-		return target, source
-
-	def scan_xml(node, env, path) :
-		dependencies = set()
-		nodes = [node]
-		while len(nodes) > 0 :
-			node = nodes.pop()
-			try :
-				document = xml.dom.minidom.parseString(node.get_contents())
-			except xml.parsers.expat.ExpatError:
-				continue
-			for include in document.getElementsByTagNameNS("http://www.w3.org/2001/XInclude", "include") :
-				include_file = include.getAttribute("href")
-				dependencies.add(include_file)
-				if include.getAttribute("parse") != "text" :
-					nodes.append(env.File(include_file))
-		return list(dependencies)
-
-	env["XMLLINT"] = "xmllint"
-	env["XSLT"] = "xsltproc"
-	env["XSLTPARAMS"] = []
-	env["BUILDERS"]["XSLT"] = SCons.Builder.Builder(
-				generator = generate_actions,
-				emitter = modify_sources,
-				source_scanner = SCons.Scanner.Scanner(function = scan_xml),
-				src_suffix = ".xml"
-			)
+    def generate_actions(source, target, env, for_signature) :
+        if not env.has_key("XSLTSTYLESHEET") :
+            raise SCons.Errors.UserError, "The XSLTSTYLESHEET construction variable must be defined"
+
+        # Process the XML catalog files
+        # FIXME: It's probably not clean to do an ENV assignment globally
+        env["ENV"]["XML_CATALOG_FILES"] = " ".join(env.get("XMLCATALOGS", ""))
+
+        # Build the XMLLint command
+        xmllintcmd = ["$XMLLINT", "--nonet", "--xinclude", "--postvalid", "--noout", "$SOURCE"]
+
+        # Build the XSLT command
+        xsltcmd = ["$XSLT", "--nonet", "--xinclude"]
+        for (param, value) in env["XSLTPARAMS"] :
+            xsltcmd += ["--stringparam", param, value]
+        xsltcmd += ["-o", "$TARGET", "$XSLTSTYLESHEET", "$SOURCE"]
+
+        return [
+            SCons.Action.Action([xmllintcmd], cmdstr = "$XMLLINTCOMSTR"),
+            SCons.Action.Action([xsltcmd], cmdstr = "$XSLTCOMSTR")]
+
+    def modify_sources(target, source, env) :
+        if len(env["FOCFG"]) > 0 :
+            source.append(env["FOCFG"])
+        source.append(env.get("XMLCATALOGS", []))
+        return target, source
+
+    def scan_xml(node, env, path) :
+        dependencies = set()
+        nodes = [node]
+        while len(nodes) > 0 :
+            node = nodes.pop()
+            try :
+                document = xml.dom.minidom.parseString(node.get_contents())
+            except xml.parsers.expat.ExpatError:
+                continue
+            for include in document.getElementsByTagNameNS("http://www.w3.org/2001/XInclude", "include") :
+                include_file = include.getAttribute("href")
+                dependencies.add(include_file)
+                if include.getAttribute("parse") != "text" :
+                    nodes.append(env.File(include_file))
+        return list(dependencies)
+
+    env["XMLLINT"] = "xmllint"
+    env["XSLT"] = "xsltproc"
+    env["XSLTPARAMS"] = []
+    env["BUILDERS"]["XSLT"] = SCons.Builder.Builder(
+                generator = generate_actions,
+                emitter = modify_sources,
+                source_scanner = SCons.Scanner.Scanner(function = scan_xml),
+                src_suffix = ".xml"
+            )
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/FilterScanBuildResults.py b/BuildTools/FilterScanBuildResults.py
index ed4a55f..a4861ac 100755
--- a/BuildTools/FilterScanBuildResults.py
+++ b/BuildTools/FilterScanBuildResults.py
@@ -6,23 +6,23 @@ resultsDir = sys.argv[1]
 resultDirs = [ d for d in os.listdir(resultsDir) if os.path.isdir(os.path.join(resultsDir, d)) ]
 resultDirs.sort()
 if len(resultDirs) > 0 :
-	resultDir = os.path.join(resultsDir, resultDirs[-1])
-	resultFileName = os.path.join(resultDir, "index.html")
-	resultData = []
-	f = open(resultFileName, "r")
-	skipLines = 0
-	for line in f.readlines() :
-		if skipLines > 0 :
-			skipLines -= 1
-		else :
-			if ("3rdParty" in line or "SHA1.cpp" in line or "lua.c" in line) :
-				m = re.match(".*(report-.*\.html)", line)
-				os.remove(os.path.join(resultDir, m.group(1)))
-				skipLines = 2
-			else :
-				resultData.append(line)
-	f.close()
+    resultDir = os.path.join(resultsDir, resultDirs[-1])
+    resultFileName = os.path.join(resultDir, "index.html")
+    resultData = []
+    f = open(resultFileName, "r")
+    skipLines = 0
+    for line in f.readlines() :
+        if skipLines > 0 :
+            skipLines -= 1
+        else :
+            if ("3rdParty" in line or "SHA1.cpp" in line or "lua.c" in line) :
+                m = re.match(".*(report-.*\.html)", line)
+                os.remove(os.path.join(resultDir, m.group(1)))
+                skipLines = 2
+            else :
+                resultData.append(line)
+    f.close()
 
-	f = open(resultFileName, "w")
-	f.writelines(resultData)
-	f.close()
+    f = open(resultFileName, "w")
+    f.writelines(resultData)
+    f.close()
diff --git a/BuildTools/FixIncludes.py b/BuildTools/FixIncludes.py
index d409a2c..d1b8268 100755
--- a/BuildTools/FixIncludes.py
+++ b/BuildTools/FixIncludes.py
@@ -9,7 +9,7 @@ filename = sys.argv[1]
 
 inPlace = False
 if "-i" in sys.argv:
-	inPlace = True
+    inPlace = True
 
 filename_base = os.path.basename(filename)
 (filename_name, filename_ext) = os.path.splitext(filename_base)
@@ -19,144 +19,144 @@ c_stdlib_headers = Set(["assert.h",  "limits.h",  "signal.h",  "stdlib.h", "ctyp
 cpp_stdlib_headers = Set(["algorithm", "fstream", "list", "regex", "typeindex", "array", "functional", "locale", "set", "typeinfo", "atomic", "future", "map", "sstream", "type_traits", "bitset", "initializer_list", "memory", "stack", "unordered_map", "chrono", "iomanip", "mutex", "stdexcept", "unordered_set", "codecvt", "ios", "new", "streambuf", "utility", "complex", "iosfwd", "numeric", "string", "valarray", "condition_variable", "iostream", "ostream", "strstream", "vector", "deque", "istream", "queue", "system_error", "exception", "iterator", "random", "thread", "forward_list", "limits", "ratio", "tuple", "cassert", "ciso646", "csetjmp", "cstdio", "ctime", "cctype", "climits", "csignal", "cstdlib", "cwchar", "cerrno", "clocale", "cstdarg", "cstring", "cwctype", "cfloat", "cmath", "cstddef"])
 
 class HeaderType:
-		PRAGMA_ONCE, CORRESPONDING_HEADER, C_STDLIB, CPP_STDLIB, BOOST, QT, OTHER, SWIFTEN, LIMBER, SLIMBER, SWIFT_CONTROLLERS, SLUIFT, SWIFTOOLS, SWIFT = range(14)
+        PRAGMA_ONCE, CORRESPONDING_HEADER, C_STDLIB, CPP_STDLIB, BOOST, QT, OTHER, SWIFTEN, LIMBER, SLIMBER, SWIFT_CONTROLLERS, SLUIFT, SWIFTOOLS, SWIFT = range(14)
 
 def findHeaderBlock(lines):
-	start = False
-	end = False
-	lastLine = None
-
-	for idx, line in enumerate(lines):
-		if not start and line.startswith("#"):
-			start = idx
-		elif start and (not end) and (not line.startswith("#")) and line.strip():
-			end = idx-1
-			break
-	if not end:
-		end = len(lines)
-	return (start, end)
+    start = False
+    end = False
+    lastLine = None
+
+    for idx, line in enumerate(lines):
+        if not start and line.startswith("#"):
+            start = idx
+        elif start and (not end) and (not line.startswith("#")) and line.strip():
+            end = idx-1
+            break
+    if not end:
+        end = len(lines)
+    return (start, end)
 
 def lineToFileName(line):
-	match = re.match( r'#include "(.*)"', line)
-	if match:
-		return match.group(1)
-	match = re.match( r'#include <(.*)>', line)
-	if match:
-		return match.group(1)
-	return False
+    match = re.match( r'#include "(.*)"', line)
+    if match:
+        return match.group(1)
+    match = re.match( r'#include <(.*)>', line)
+    if match:
+        return match.group(1)
+    return False
 
 def fileNameToHeaderType(name):
-	if name.endswith("/" + filename_name + ".h"):
-		return HeaderType.CORRESPONDING_HEADER
+    if name.endswith("/" + filename_name + ".h"):
+        return HeaderType.CORRESPONDING_HEADER
 
-	if name in c_stdlib_headers:
-		return HeaderType.C_STDLIB
+    if name in c_stdlib_headers:
+        return HeaderType.C_STDLIB
 
-	if name in cpp_stdlib_headers:
-		return HeaderType.CPP_STDLIB
+    if name in cpp_stdlib_headers:
+        return HeaderType.CPP_STDLIB
 
-	if name.startswith("boost"):
-		return HeaderType.BOOST
+    if name.startswith("boost"):
+        return HeaderType.BOOST
 
-	if name.startswith("Q"):
-		return HeaderType.QT
+    if name.startswith("Q"):
+        return HeaderType.QT
 
-	if name.startswith("Swiften"):
-		return HeaderType.SWIFTEN
+    if name.startswith("Swiften"):
+        return HeaderType.SWIFTEN
 
-	if name.startswith("Limber"):
-		return HeaderType.LIMBER
+    if name.startswith("Limber"):
+        return HeaderType.LIMBER
 
-	if name.startswith("Slimber"):
-		return HeaderType.SLIMBER
+    if name.startswith("Slimber"):
+        return HeaderType.SLIMBER
 
-	if name.startswith("Swift/Controllers"):
-		return HeaderType.SWIFT_CONTROLLERS
+    if name.startswith("Swift/Controllers"):
+        return HeaderType.SWIFT_CONTROLLERS
 
-	if name.startswith("Sluift"):
-		return HeaderType.SLUIFT
+    if name.startswith("Sluift"):
+        return HeaderType.SLUIFT
 
-	if name.startswith("SwifTools"):
-		return HeaderType.SWIFTOOLS
+    if name.startswith("SwifTools"):
+        return HeaderType.SWIFTOOLS
 
-	if name.startswith("Swift"):
-		return HeaderType.SWIFT
+    if name.startswith("Swift"):
+        return HeaderType.SWIFT
 
-	return HeaderType.OTHER
+    return HeaderType.OTHER
 
 def serializeHeaderGroups(groups):
-	headerList = []
-	for group in range(0, HeaderType.SWIFT + 1):
-		if group in groups:
-			# sorted and without duplicates
-			headers = sorted(list(set(groups[group])))
-			headerList.extend(headers)
-			headerList.extend(["\n"])
-	headerList.pop()
-	return headerList
+    headerList = []
+    for group in range(0, HeaderType.SWIFT + 1):
+        if group in groups:
+            # sorted and without duplicates
+            headers = sorted(list(set(groups[group])))
+            headerList.extend(headers)
+            headerList.extend(["\n"])
+    headerList.pop()
+    return headerList
 
 def overwriteFile(filename, content):
-	with open(filename, 'w') as f:
-		for line in content:
-			f.write(line)
+    with open(filename, 'w') as f:
+        for line in content:
+            f.write(line)
 
 def cleanHeaderFile(content, headerStart, headerEnd, headerGroups):
-	del content[headerStart:headerEnd]
-	newHeaders = serializeHeaderGroups(headerGroups)
-	content[headerStart:1] = newHeaders
+    del content[headerStart:headerEnd]
+    newHeaders = serializeHeaderGroups(headerGroups)
+    content[headerStart:1] = newHeaders
 
-	if inPlace :
-		overwriteFile(filename, content)
-	else :
-		for line in content:
-			print line,
+    if inPlace :
+        overwriteFile(filename, content)
+    else :
+        for line in content:
+            print line,
 
 def cleanImplementationFile(content, headerStart, headerEnd, headerGroups):
-	del content[headerStart:headerEnd]
-	newHeaders = serializeHeaderGroups(headerGroups)
-	content[headerStart:1] = newHeaders
+    del content[headerStart:headerEnd]
+    newHeaders = serializeHeaderGroups(headerGroups)
+    content[headerStart:1] = newHeaders
 
-	if inPlace :
-		overwriteFile(filename, content)
-	else :
-		for line in content:
-			print line,
+    if inPlace :
+        overwriteFile(filename, content)
+    else :
+        for line in content:
+            print line,
 
 
 containsComplexPreprocessorDirectives = False
 
 with open(filename) as f:
-	content = f.readlines()
+    content = f.readlines()
 
 (headerStart, headerEnd) = findHeaderBlock(content)
 
 headerGroups = {}
 
 for line in content[headerStart:headerEnd]:
-	if line.strip():
-		if line.strip().startswith("#pragma once"):
-			headerType = HeaderType.PRAGMA_ONCE
-		elif line.strip().startswith("#if") or line.strip().startswith("#def") or line.strip().startswith("#undef") or line.strip().startswith("#pragma "):
-			containsComplexPreprocessorDirectives = True
-			break
-		else:
-			#print line
-			headerType = fileNameToHeaderType(lineToFileName(line))
-
-		#filename = lineToFileName(line)
-		if headerType in headerGroups:
-			headerGroups[headerType].append(line)
-		else:
-			headerGroups[headerType] = [line]
+    if line.strip():
+        if line.strip().startswith("#pragma once"):
+            headerType = HeaderType.PRAGMA_ONCE
+        elif line.strip().startswith("#if") or line.strip().startswith("#def") or line.strip().startswith("#undef") or line.strip().startswith("#pragma "):
+            containsComplexPreprocessorDirectives = True
+            break
+        else:
+            #print line
+            headerType = fileNameToHeaderType(lineToFileName(line))
+
+        #filename = lineToFileName(line)
+        if headerType in headerGroups:
+            headerGroups[headerType].append(line)
+        else:
+            headerGroups[headerType] = [line]
 
 if containsComplexPreprocessorDirectives:
-	print "Cannot format headers containing preprocessor #if, #pragma, #define or #undef statements!"
-	exit(1)
+    print "Cannot format headers containing preprocessor #if, #pragma, #define or #undef statements!"
+    exit(1)
 
 if filename_base.endswith(".h"):
-	if not HeaderType.PRAGMA_ONCE in headerGroups:
-		print "Missing #pragma once!"
-		exit(2)
-	cleanHeaderFile(content, headerStart, headerEnd, headerGroups)
+    if not HeaderType.PRAGMA_ONCE in headerGroups:
+        print "Missing #pragma once!"
+        exit(2)
+    cleanHeaderFile(content, headerStart, headerEnd, headerGroups)
 elif filename_base.endswith(".cpp") or filename_base.endswith(".mm"):
-	cleanImplementationFile(content, headerStart, headerEnd, headerGroups)
+    cleanImplementationFile(content, headerStart, headerEnd, headerGroups)
diff --git a/BuildTools/GetBuildVersion.py b/BuildTools/GetBuildVersion.py
index fc92d15..70fdc5c 100755
--- a/BuildTools/GetBuildVersion.py
+++ b/BuildTools/GetBuildVersion.py
@@ -8,14 +8,14 @@ assert(len(sys.argv) >= 2)
 
 only_major = False
 if "--major" in sys.argv :
-  only_major = True
+    only_major = True
 
 if only_major :
-  v = Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1])
-  version_match = re.match("(\d+)\.(\d+).*", v)
-  if version_match :
-    print version_match.group(1)
-  else :
-    print "0"
+    v = Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1])
+    version_match = re.match("(\d+)\.(\d+).*", v)
+    if version_match :
+        print version_match.group(1)
+    else :
+        print "0"
 else :
-  print Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1])
+    print Version.getBuildVersion(os.path.dirname(sys.argv[0]) + "/..", sys.argv[1])
diff --git a/BuildTools/Gource/GetGravatars.py b/BuildTools/Gource/GetGravatars.py
index 47f8a68..d1f40a4 100755
--- a/BuildTools/Gource/GetGravatars.py
+++ b/BuildTools/Gource/GetGravatars.py
@@ -5,8 +5,8 @@ import subprocess, os, sys, hashlib, urllib
 GRAVATAR_URL = "http://www.gravatar.com/avatar/%(id)s?d=404"
 
 if len(sys.argv) != 2 :
-	print "Usage: " + sys.argv[0] + " <output-dir>"
-	sys.exit(-1)
+    print "Usage: " + sys.argv[0] + " <output-dir>"
+    sys.exit(-1)
 
 output_dir = sys.argv[1]
 
@@ -14,36 +14,36 @@ output_dir = sys.argv[1]
 authors = {}
 p = subprocess.Popen("git log --pretty=format:'%ae|%an'", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
 for line in p.stdout.readlines() :
-	author_components = line.rstrip().split("|")
-	authors[author_components[0]] = author_components[1]
+    author_components = line.rstrip().split("|")
+    authors[author_components[0]] = author_components[1]
 p.stdin.close()
 if p.wait() != 0 :
-	print "Error"
-	sys.exit(-1)
+    print "Error"
+    sys.exit(-1)
 
 # Get & save the avatars
 if not os.path.isdir(output_dir) :
-	os.makedirs(output_dir)
+    os.makedirs(output_dir)
 for email, name in authors.items() :
-	print "Processing avatar for " + name + " <" + email + ">"
-	filename = os.path.join(output_dir, name + ".png")
-	if os.path.isfile(filename) :
-		print "-> Already there. Skipping."
-		continue
+    print "Processing avatar for " + name + " <" + email + ">"
+    filename = os.path.join(output_dir, name + ".png")
+    if os.path.isfile(filename) :
+        print "-> Already there. Skipping."
+        continue
 
-	m = hashlib.md5()
-	m.update(email)
-	url = GRAVATAR_URL % {"id" : m.hexdigest()}
-	print "- Downloading " + url
-	f = urllib.urlopen(url)
-	input = None
-	if f.getcode() == 200 :
-		input = f.read()
-	f.close()
-	if input :
-		print "- Saving file " + filename
-		f = open(filename, "w")
-		f.write(input)
-		f.close()
-	else :
-		print "- No Gravatar found"
+    m = hashlib.md5()
+    m.update(email)
+    url = GRAVATAR_URL % {"id" : m.hexdigest()}
+    print "- Downloading " + url
+    f = urllib.urlopen(url)
+    input = None
+    if f.getcode() == 200 :
+        input = f.read()
+    f.close()
+    if input :
+        print "- Saving file " + filename
+        f = open(filename, "w")
+        f.write(input)
+        f.close()
+    else :
+        print "- No Gravatar found"
diff --git a/BuildTools/InstallSwiftDependencies.sh b/BuildTools/InstallSwiftDependencies.sh
index d1200b1..7017b5f 100755
--- a/BuildTools/InstallSwiftDependencies.sh
+++ b/BuildTools/InstallSwiftDependencies.sh
@@ -6,27 +6,27 @@ SYSTEM_NAME=$(uname)
 
 if [ "$SYSTEM_NAME" == "Linux" ] 
 then
-	# handle linux distributions
-	SYSTEM_DISTRO=$(lsb_release -i -s)
-	if [ "$SYSTEM_DISTRO" == "Debian" ]
-	then
-		sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools
-	elif [ "$SYSTEM_DISTRO" == "Ubuntu" ]
-	then
-		sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools
-	elif [ "$SYSTEM_DISTRO" == "Arch" ]
-	then
-		sudo pacman -S qt5-base qt5-x11extras qt5-webkit qt5-multimedia qt5-tools
-	elif [ "$SYSTEM_DISTRO" == "openSUSE project" ]
-	then
-		sudo zypper in pkg-config libopenssl-devel libQt5Core-devel libQt5WebKit5-devel libQt5WebKitWidgets-devel libqt5-qtmultimedia-devel libqt5-qtx11extras-devel libqt5-qttools-devel libQt5Gui-devel libQt5Network-devel libQt5DBus-devel python-xml
-	elif [ "$SYSTEM_DISTRO" == "Fedora" ]
-	then
-		sudo dnf groups install "C Development Tools and Libraries"
-		sudo dnf install openssl-devel qt5-qtbase-devel qt5-linguist qt5-qtwebkit-devel qt5-qtmultimedia-devel qt5-qtx11extras-devel
-	else
-		echo "Unsupported Linux distribution."
-	fi
+    # handle linux distributions
+    SYSTEM_DISTRO=$(lsb_release -i -s)
+    if [ "$SYSTEM_DISTRO" == "Debian" ]
+    then
+        sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools
+    elif [ "$SYSTEM_DISTRO" == "Ubuntu" ]
+    then
+        sudo apt-get install pkg-config libssl-dev qt5-default libqt5x11extras5-dev libqt5webkit5-dev qtmultimedia5-dev qttools5-dev-tools
+    elif [ "$SYSTEM_DISTRO" == "Arch" ]
+    then
+        sudo pacman -S qt5-base qt5-x11extras qt5-webkit qt5-multimedia qt5-tools
+    elif [ "$SYSTEM_DISTRO" == "openSUSE project" ]
+    then
+        sudo zypper in pkg-config libopenssl-devel libQt5Core-devel libQt5WebKit5-devel libQt5WebKitWidgets-devel libqt5-qtmultimedia-devel libqt5-qtx11extras-devel libqt5-qttools-devel libQt5Gui-devel libQt5Network-devel libQt5DBus-devel python-xml
+    elif [ "$SYSTEM_DISTRO" == "Fedora" ]
+    then
+        sudo dnf groups install "C Development Tools and Libraries"
+        sudo dnf install openssl-devel qt5-qtbase-devel qt5-linguist qt5-qtwebkit-devel qt5-qtmultimedia-devel qt5-qtx11extras-devel
+    else
+        echo "Unsupported Linux distribution."
+    fi
 else
-	echo "Unsupported system."
+    echo "Unsupported system."
 fi
diff --git a/BuildTools/SCons/Tools/AppBundle.py b/BuildTools/SCons/Tools/AppBundle.py
index 1db7ff8..fda3484 100644
--- a/BuildTools/SCons/Tools/AppBundle.py
+++ b/BuildTools/SCons/Tools/AppBundle.py
@@ -1,64 +1,64 @@
 import SCons.Util, os.path
 
 def generate(env) :
-	def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}, handlesXMPPURIs = False) :
-		bundleDir = bundle + ".app"
-		bundleContentsDir = bundleDir + "/Contents"
-		resourcesDir = bundleContentsDir + "/Resources"
-		frameworksDir = bundleContentsDir + "/Frameworks"
-		env.Install(bundleContentsDir + "/MacOS", bundle)
-		env.WriteVal(bundleContentsDir + "/PkgInfo", env.Value("APPL\77\77\77\77"))
+    def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}, handlesXMPPURIs = False) :
+        bundleDir = bundle + ".app"
+        bundleContentsDir = bundleDir + "/Contents"
+        resourcesDir = bundleContentsDir + "/Resources"
+        frameworksDir = bundleContentsDir + "/Frameworks"
+        env.Install(bundleContentsDir + "/MacOS", bundle)
+        env.WriteVal(bundleContentsDir + "/PkgInfo", env.Value("APPL\77\77\77\77"))
 
-		infoDict = {
-				"CFBundleDevelopmentRegion" : "English",
-				"CFBundleExecutable" : bundle,
-				"CFBundleIdentifier" : "im.swift." + bundle,
-				"CFBundleInfoDictionaryVersion" : "6.0",
-				"CFBundleName" : bundle,
-				"CFBundlePackageType" : "APPL",
-				"CFBundleSignature": "\77\77\77\77",
-				"CFBundleVersion" : version,
-				"CFBundleIconFile" : bundle,
-				"NSPrincipalClass" : "NSApplication",
-				"NSHumanReadableCopyright" : "(c) 2010 Swift Development Team.\nAll Rights Reserved."
-			}
-		infoDict.update(info)
+        infoDict = {
+                "CFBundleDevelopmentRegion" : "English",
+                "CFBundleExecutable" : bundle,
+                "CFBundleIdentifier" : "im.swift." + bundle,
+                "CFBundleInfoDictionaryVersion" : "6.0",
+                "CFBundleName" : bundle,
+                "CFBundlePackageType" : "APPL",
+                "CFBundleSignature": "\77\77\77\77",
+                "CFBundleVersion" : version,
+                "CFBundleIconFile" : bundle,
+                "NSPrincipalClass" : "NSApplication",
+                "NSHumanReadableCopyright" : "(c) 2010 Swift Development Team.\nAll Rights Reserved."
+            }
+        infoDict.update(info)
 
-		plist = """<?xml version="1.0" encoding="UTF-8"?>
-	<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-	<plist version="1.0">
-	<dict>
-	"""
-		for key, value in infoDict.items() :
-			plist += "<key>" + key + "</key>\n"
-			plist += "<string>" + value.encode("utf-8") + "</string>\n"
-		if handlesXMPPURIs :
-			plist += """<key>CFBundleURLTypes</key>
+        plist = """<?xml version="1.0" encoding="UTF-8"?>
+    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+    <plist version="1.0">
+    <dict>
+    """
+        for key, value in infoDict.items() :
+            plist += "<key>" + key + "</key>\n"
+            plist += "<string>" + value.encode("utf-8") + "</string>\n"
+        if handlesXMPPURIs :
+            plist += """<key>CFBundleURLTypes</key>
 <array>
-		<dict>
-				<key>CFBundleURLName</key>
-				<string>XMPP URL</string>
-				<key>CFBundleURLSchemes</key>
-				<array>
-						<string>xmpp</string>
-				</array>
-		</dict>
+        <dict>
+                <key>CFBundleURLName</key>
+                <string>XMPP URL</string>
+                <key>CFBundleURLSchemes</key>
+                <array>
+                        <string>xmpp</string>
+                </array>
+        </dict>
 </array>\n"""
-		plist += """</dict>
-	</plist>
-	"""
-		env.WriteVal(bundleContentsDir + "/Info.plist", env.Value(plist))
+        plist += """</dict>
+    </plist>
+    """
+        env.WriteVal(bundleContentsDir + "/Info.plist", env.Value(plist))
 
-		for (target, resource) in resources.items() :
-			env.Install(os.path.join(resourcesDir, target), resource)
+        for (target, resource) in resources.items() :
+            env.Install(os.path.join(resourcesDir, target), resource)
 
-		for framework in frameworks :
-			env.Install(frameworksDir, framework)
+        for framework in frameworks :
+            env.Install(frameworksDir, framework)
 
-		return env.Dir(bundleDir)
+        return env.Dir(bundleDir)
 
-	env.AddMethod(createAppBundle, "AppBundle")
+    env.AddMethod(createAppBundle, "AppBundle")
 
 
 def exists(env) :
-	return env["PLATFORM"] == "darwin"
+    return env["PLATFORM"] == "darwin"
diff --git a/BuildTools/SCons/Tools/BuildVersion.py b/BuildTools/SCons/Tools/BuildVersion.py
index b15448a..7968282 100644
--- a/BuildTools/SCons/Tools/BuildVersion.py
+++ b/BuildTools/SCons/Tools/BuildVersion.py
@@ -3,16 +3,16 @@ import SCons.Util
 import Version
 
 def generate(env) :
-	def createBuildVersion(env, target, project) :
-		buildVersion = """#pragma once
+    def createBuildVersion(env, target, project) :
+        buildVersion = """#pragma once
 
 static const char* buildVersion = \"%(buildVersion)s\";\n
 #define SWIFT_VERSION_STRING \"%(buildVersion)s\";\n
 """ % { "buildVersion" : Version.getBuildVersion(env.Dir("#").abspath, project) }
-		env.WriteVal(target, env.Value(buildVersion))
+        env.WriteVal(target, env.Value(buildVersion))
 
-	env.AddMethod(createBuildVersion, "BuildVersion")
+    env.AddMethod(createBuildVersion, "BuildVersion")
 
 
 def exists(env) :
-	return true
+    return true
diff --git a/BuildTools/SCons/Tools/DoxyGen.py b/BuildTools/SCons/Tools/DoxyGen.py
index 79af1c9..66a9111 100644
--- a/BuildTools/SCons/Tools/DoxyGen.py
+++ b/BuildTools/SCons/Tools/DoxyGen.py
@@ -1,26 +1,26 @@
 import SCons.Util, os
 
 def generate(env) :
-	def modify_targets(target, source, env) :
-		target = [env.File("html/index.html")]
-		return target, source
+    def modify_targets(target, source, env) :
+        target = [env.File("html/index.html")]
+        return target, source
 
-	def generate_actions(source, target, env, for_signature) :
-		if env.WhereIs("$DOXYGEN") and env.WhereIs("$DOT") :
-			return [SCons.Action.Action("$DOXYGEN $SOURCE", cmdstr = "$DOXYCOMSTR")]
-		else :
-			return []
+    def generate_actions(source, target, env, for_signature) :
+        if env.WhereIs("$DOXYGEN") and env.WhereIs("$DOT") :
+            return [SCons.Action.Action("$DOXYGEN $SOURCE", cmdstr = "$DOXYCOMSTR")]
+        else :
+            return []
 
-	env["DOXYGEN"] = "doxygen"
-	# FIXME: For some reason, things go incredibly slow (at least on OS X)
-	# when not doing this. Some environment flag is having an effect on
-	# this; find out which
-	env["ENV"] = os.environ
-	env["DOT"] = "dot"
-	env["BUILDERS"]["DoxyGen"] = SCons.Builder.Builder(
-		emitter = modify_targets,
-		generator = generate_actions,
-		single_source = True)
+    env["DOXYGEN"] = "doxygen"
+    # FIXME: For some reason, things go incredibly slow (at least on OS X)
+    # when not doing this. Some environment flag is having an effect on
+    # this; find out which
+    env["ENV"] = os.environ
+    env["DOT"] = "dot"
+    env["BUILDERS"]["DoxyGen"] = SCons.Builder.Builder(
+        emitter = modify_targets,
+        generator = generate_actions,
+        single_source = True)
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/SCons/Tools/Flags.py b/BuildTools/SCons/Tools/Flags.py
index 0768181..fe0cfcc 100644
--- a/BuildTools/SCons/Tools/Flags.py
+++ b/BuildTools/SCons/Tools/Flags.py
@@ -1,13 +1,13 @@
 import SCons.Util
 
 def generate(env) :
-	def useFlags(env, flags) :
-		for flag in flags :
-			if flag in env :
-				env[flag] = env[flag] + flags[flag]
-			else :
-				env[flag] = flags[flag]
-	env.AddMethod(useFlags, "UseFlags")
+    def useFlags(env, flags) :
+        for flag in flags :
+            if flag in env :
+                env[flag] = env[flag] + flags[flag]
+            else :
+                env[flag] = flags[flag]
+    env.AddMethod(useFlags, "UseFlags")
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/SCons/Tools/Nib.py b/BuildTools/SCons/Tools/Nib.py
index 91eb064..cf5b0dc 100644
--- a/BuildTools/SCons/Tools/Nib.py
+++ b/BuildTools/SCons/Tools/Nib.py
@@ -1,12 +1,12 @@
 import SCons.Util
 
 def generate(env) :
-	env["IBTOOL"] = "ibtool"
-	env["BUILDERS"]["Nib"] = SCons.Builder.Builder(
-			action = SCons.Action.Action("$IBTOOL --errors --warnings --notices --output-format human-readable-text --compile $TARGET $SOURCE", cmdstr = "$NIBCOMSTR"),
-			suffix = ".nib",
-			src_suffix = ".xib",
-			single_source = True)
+    env["IBTOOL"] = "ibtool"
+    env["BUILDERS"]["Nib"] = SCons.Builder.Builder(
+            action = SCons.Action.Action("$IBTOOL --errors --warnings --notices --output-format human-readable-text --compile $TARGET $SOURCE", cmdstr = "$NIBCOMSTR"),
+            suffix = ".nib",
+            src_suffix = ".xib",
+            single_source = True)
 
 def exists(env) :
-	return env["PLATFORM"] == "darwin"
+    return env["PLATFORM"] == "darwin"
diff --git a/BuildTools/SCons/Tools/ReplacePragmaOnce.py b/BuildTools/SCons/Tools/ReplacePragmaOnce.py
index 3df0f41..cb49bbb 100644
--- a/BuildTools/SCons/Tools/ReplacePragmaOnce.py
+++ b/BuildTools/SCons/Tools/ReplacePragmaOnce.py
@@ -1,25 +1,25 @@
 import SCons.Util, os.path
 
 def generate(env) :
-	root = env.Dir("#").abspath
-	def relpath(path, start) :
-		i = len(os.path.commonprefix([path, start]))
-		return path[i+1:]
+    root = env.Dir("#").abspath
+    def relpath(path, start) :
+        i = len(os.path.commonprefix([path, start]))
+        return path[i+1:]
 
-	def replacePragmaOnce(env, target, source) :
-		guard = relpath(source[0].abspath, root).replace("/", "_").replace(".", "_").upper()
-		data = source[0].get_contents()
-		f = open(str(target[0]), 'wb')
-		if "#pragma once" in data :
-			f.write(data.replace("#pragma once", "#ifndef %(guard)s\n#define %(guard)s" % {"guard": guard}))
-			f.write("\n#endif\n")
-		else :
-			f.write(data)
-		f.close()
+    def replacePragmaOnce(env, target, source) :
+        guard = relpath(source[0].abspath, root).replace("/", "_").replace(".", "_").upper()
+        data = source[0].get_contents()
+        f = open(str(target[0]), 'wb')
+        if "#pragma once" in data :
+            f.write(data.replace("#pragma once", "#ifndef %(guard)s\n#define %(guard)s" % {"guard": guard}))
+            f.write("\n#endif\n")
+        else :
+            f.write(data)
+        f.close()
 
-	env["BUILDERS"]["ReplacePragmaOnce"] = SCons.Builder.Builder(
-		action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"),
-		single_source = True)
+    env["BUILDERS"]["ReplacePragmaOnce"] = SCons.Builder.Builder(
+        action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"),
+        single_source = True)
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/SCons/Tools/SLOCCount.py b/BuildTools/SCons/Tools/SLOCCount.py
index 682a797..be31672 100644
--- a/BuildTools/SCons/Tools/SLOCCount.py
+++ b/BuildTools/SCons/Tools/SLOCCount.py
@@ -1,17 +1,17 @@
 import SCons.Util, os.path, os
 
 def generate(env) :
-	def createSLOCCount(env, source) :
-		myenv = env.Clone()
-		myenv["ENV"]["HOME"] = os.environ["HOME"]
-		source = myenv.Dir(source)
-		target = myenv.File("#/" + source.path + ".sloccount")
-		# FIXME: There's probably a better way to force building the .sc
-		if os.path.exists(target.abspath) :
-			os.unlink(target.abspath)
-		return myenv.Command(target, source, [SCons.Action.Action("sloccount --duplicates --wide --details " + source.path + " | grep -v qrc_ > $TARGET", cmdstr = "$GENCOMSTR")])
+    def createSLOCCount(env, source) :
+        myenv = env.Clone()
+        myenv["ENV"]["HOME"] = os.environ["HOME"]
+        source = myenv.Dir(source)
+        target = myenv.File("#/" + source.path + ".sloccount")
+        # FIXME: There's probably a better way to force building the .sc
+        if os.path.exists(target.abspath) :
+            os.unlink(target.abspath)
+        return myenv.Command(target, source, [SCons.Action.Action("sloccount --duplicates --wide --details " + source.path + " | grep -v qrc_ > $TARGET", cmdstr = "$GENCOMSTR")])
 
-	env.AddMethod(createSLOCCount, "SLOCCount")
+    env.AddMethod(createSLOCCount, "SLOCCount")
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/SCons/Tools/Test.py b/BuildTools/SCons/Tools/Test.py
index 1eee4f6..72acb22 100644
--- a/BuildTools/SCons/Tools/Test.py
+++ b/BuildTools/SCons/Tools/Test.py
@@ -1,53 +1,53 @@
 import SCons.Util, os
 
 def generate(env) :
-	def registerTest(env, target, type = "unit", is_checker = False) :
-		if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type :
-			if SCons.Util.is_List(target) :
-				cmd = target[0].abspath
-			else :
-				cmd = target.abspath
-			params = ""
-
-			# Special support for unittest checker
-			if is_checker and env.get("checker_report", False) :
-				params = " --xml > " + os.path.join(target[0].dir.path, "checker-report.xml")
-
-			ignore_prefix = ""
-			if env.get("TEST_IGNORE_RESULT", False) :
-				ignore_prefix = "-"
-
-			# Set environment variables for running the test
-			test_env = env.Clone()
-			for i in ["HOME", "USERPROFILE", "APPDATA", "ASAN_OPTIONS", "LSAN_OPTIONS", "SWIFT_NETWORK_TEST_IPV4", "SWIFT_NETWORK_TEST_IPV6"]:
-				if os.environ.get(i, "") :
-					test_env["ENV"][i] = os.environ[i]
-			if env["target"] == "android" :
-				test_env["ENV"]["PATH"] = env["android_sdk_bin"] + ";" + test_env["ENV"]["PATH"]
-			else :
-				if test_env["PLATFORM"] == "darwin" :
-					test_env["ENV"]["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(map(lambda x : str(x), test_env.get("LIBPATH", [])))
-				elif test_env["PLATFORM"] == "win32" :
-					test_env["ENV"]["PATH"] = ";".join(map(lambda x : str(x), test_env.get("LIBRUNPATH", []))) + ";" + test_env["ENV"]["PATH"]
-
-
-			# Run the test
-			if env["target"] == "android":
-				exec_name = os.path.basename(cmd)
-				test_env.Command("**dummy**", target, SCons.Action.Action(
-					["adb shell mount -o rw,remount /system",
-					"adb push " + cmd + " /system/bin/" + exec_name,
-					"adb shell SWIFT_CLIENTTEST_JID=\"" + os.getenv("SWIFT_CLIENTTEST_JID") + "\" SWIFT_CLIENTTEST_PASS=\"" + os.getenv("SWIFT_CLIENTTEST_PASS") + "\" " + env.get("TEST_RUNNER", "") + "/system/bin/" + exec_name], cmdstr = "$TESTCOMSTR"))
-			else :
-				test_env.Command("**dummy**", target,
-					SCons.Action.Action(ignore_prefix + env.get("TEST_RUNNER", "") + cmd + " " + params, cmdstr = "$TESTCOMSTR"))
-
-	def registerScriptTests(env, scripts, name, type) :
-		if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type :
-			pass
-
-	env.AddMethod(registerTest, "Test")
-	env.AddMethod(registerScriptTests, "ScriptTests")
+    def registerTest(env, target, type = "unit", is_checker = False) :
+        if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type :
+            if SCons.Util.is_List(target) :
+                cmd = target[0].abspath
+            else :
+                cmd = target.abspath
+            params = ""
+
+            # Special support for unittest checker
+            if is_checker and env.get("checker_report", False) :
+                params = " --xml > " + os.path.join(target[0].dir.path, "checker-report.xml")
+
+            ignore_prefix = ""
+            if env.get("TEST_IGNORE_RESULT", False) :
+                ignore_prefix = "-"
+
+            # Set environment variables for running the test
+            test_env = env.Clone()
+            for i in ["HOME", "USERPROFILE", "APPDATA", "ASAN_OPTIONS", "LSAN_OPTIONS", "SWIFT_NETWORK_TEST_IPV4", "SWIFT_NETWORK_TEST_IPV6"]:
+                if os.environ.get(i, "") :
+                    test_env["ENV"][i] = os.environ[i]
+            if env["target"] == "android" :
+                test_env["ENV"]["PATH"] = env["android_sdk_bin"] + ";" + test_env["ENV"]["PATH"]
+            else :
+                if test_env["PLATFORM"] == "darwin" :
+                    test_env["ENV"]["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(map(lambda x : str(x), test_env.get("LIBPATH", [])))
+                elif test_env["PLATFORM"] == "win32" :
+                    test_env["ENV"]["PATH"] = ";".join(map(lambda x : str(x), test_env.get("LIBRUNPATH", []))) + ";" + test_env["ENV"]["PATH"]
+
+
+            # Run the test
+            if env["target"] == "android":
+                exec_name = os.path.basename(cmd)
+                test_env.Command("**dummy**", target, SCons.Action.Action(
+                    ["adb shell mount -o rw,remount /system",
+                    "adb push " + cmd + " /system/bin/" + exec_name,
+                    "adb shell SWIFT_CLIENTTEST_JID=\"" + os.getenv("SWIFT_CLIENTTEST_JID") + "\" SWIFT_CLIENTTEST_PASS=\"" + os.getenv("SWIFT_CLIENTTEST_PASS") + "\" " + env.get("TEST_RUNNER", "") + "/system/bin/" + exec_name], cmdstr = "$TESTCOMSTR"))
+            else :
+                test_env.Command("**dummy**", target,
+                    SCons.Action.Action(ignore_prefix + env.get("TEST_RUNNER", "") + cmd + " " + params, cmdstr = "$TESTCOMSTR"))
+
+    def registerScriptTests(env, scripts, name, type) :
+        if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type :
+            pass
+
+    env.AddMethod(registerTest, "Test")
+    env.AddMethod(registerScriptTests, "ScriptTests")
 
 def exists(env) :
-	return True
+    return True
diff --git a/BuildTools/SCons/Tools/WindowsBundle.py b/BuildTools/SCons/Tools/WindowsBundle.py
index ef77acb..20d41ff 100644
--- a/BuildTools/SCons/Tools/WindowsBundle.py
+++ b/BuildTools/SCons/Tools/WindowsBundle.py
@@ -4,119 +4,119 @@ import re
 import shutil
 
 def which(program_name):
-	if hasattr(shutil, "which"):
-		return shutil.which(program_name)
-	else:
-		path = os.getenv('PATH')
-		for p in path.split(os.path.pathsep):
-			p = os.path.join(p,program_name)
-			if os.path.exists(p) and os.access(p,os.X_OK):
-				return p
+    if hasattr(shutil, "which"):
+        return shutil.which(program_name)
+    else:
+        path = os.getenv('PATH')
+        for p in path.split(os.path.pathsep):
+            p = os.path.join(p,program_name)
+            if os.path.exists(p) and os.access(p,os.X_OK):
+                return p
 
 def generate(env) :
-	def captureWinDeployQtMapping(release = True):
-		p = False
-
-		qt_bin_folder = ""
-		if "QTDIR" in env:
-			qt_bin_folder = env["QTDIR"] + "\\bin;"
-
-		environ = {"PATH": qt_bin_folder + os.getenv("PATH"), "TEMP": os.getenv("TEMP"), "TMP": os.getenv("TMP")}
-
-		if release:
-			p = subprocess.Popen(['windeployqt', '--release', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ)
-		else:
-			p = subprocess.Popen(['windeployqt', '--debug', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ)
-
-		if p:
-			stdout, stderr = p.communicate()
-
-			mappings = []
-
-			p = re.compile(ur'"([^\"]*)" "([^\"]*)"')
-
-			matches = re.findall(p, stdout)
-			for match in matches:
-				mappings.append(match)
-			return mappings
-		else:
-			return False
-
-	def createWindowsBundleManual(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4') :
-		all_files = []
-		all_files += env.Install(bundle, bundle + ".exe")
-		for lib in qtlibs :
-			all_files += env.Install(bundle, os.path.join(env["QTDIR"], "bin", lib + ".dll"))
-		plugins_suffix = '4'
-		if qtversion == '5' :
-			plugins_suffix = ''
-		for plugin_type in qtplugins:
-			all_files += env.Install(os.path.join(bundle, plugin_type), [os.path.join(env["QTDIR"], "plugins", plugin_type, "q" + plugin + plugins_suffix + ".dll") for plugin in qtplugins[plugin_type]])
-		for dir, resourceFiles in resources.items() :
-			for resource in resourceFiles :
-				e = env.Entry(resource)
-				if e.isdir() :
-					for subresource in env.Glob(str(e) + "/*") :
-						all_files += env.Install(os.path.join(bundle, dir, e.name), subresource)
-				else :
-					all_files += env.Install(os.path.join(bundle, dir), resource)
-		return all_files
-
-	# This version of uses windeployqt tool
-	def createWindowsBundleWithWinDeployQt(env, bundle, resources = {}, qtplugins = {},  qtlibs = [],  qtversion = '4') :
-		assert(qtversion == '5')
-		all_files = []
-
-		# add swift executable
-		all_files += env.Install(bundle, bundle + ".exe")
-
-		# adding resources (swift sounds/images/translations)
-		for dir, resourceFiles in resources.items() :
-			for resource in resourceFiles :
-				e = env.Entry(resource)
-				if e.isdir() :
-					for subresource in env.Glob(str(e) + "/*") :
-						all_files += env.Install(os.path.join(bundle, dir, e.name), subresource)
-				else :
-					all_files += env.Install(os.path.join(bundle, dir), resource)
-
-		qtmappings = captureWinDeployQtMapping()
-		assert(qtmappings)
-
-		# handle core DLLs
-		qt_corelib_regex = re.compile(ur".*bin.*\\(.*)\.dll")
-
-		for qtlib in qtlibs:
-			if qtlib.startswith("Qt5"):
-				(src_path, target_path) = next(((src_path, target_path) for (src_path, target_path) in qtmappings if  qt_corelib_regex.match(src_path) and qt_corelib_regex.match(src_path).group(1) == qtlib), (None, None))
-				if src_path != None:
-					all_files += env.Install(bundle, src_path)
-
-		# handle core dependencies
-		for (src_path, target_path) in qtmappings:
-			if qt_corelib_regex.match(src_path) and not qt_corelib_regex.match(src_path).group(1).startswith("Qt5"):
-				all_files += env.Install(bundle, src_path)
-
-		# handle plugins
-		qt_plugin_regex = re.compile(ur".*plugins.*\\(.*)\\(.*)\.dll")
-		for (src_path, target_path) in qtmappings:
-			if qt_plugin_regex.match(src_path):
-				plugin_folder, filename = qt_plugin_regex.match(src_path).groups()
-				try:
-					if plugin_folder in ["audio"] or filename[1:] in qtplugins[plugin_folder]:
-						all_files += env.Install(os.path.join(bundle, plugin_folder), src_path)
-				except:
-					pass
-		return all_files
-
-	def createWindowsBundle(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4'):
-		if which("windeployqt.exe"):
-			return createWindowsBundleWithWinDeployQt(env, bundle, resources, qtplugins, qtlibs, qtversion)
-		else:
-			return createWindowsBundleManual(env, bundle, resources, qtplugins, qtlibs, qtversion)
-
-	env.AddMethod(createWindowsBundle, "WindowsBundle")
+    def captureWinDeployQtMapping(release = True):
+        p = False
+
+        qt_bin_folder = ""
+        if "QTDIR" in env:
+            qt_bin_folder = env["QTDIR"] + "\\bin;"
+
+        environ = {"PATH": qt_bin_folder + os.getenv("PATH"), "TEMP": os.getenv("TEMP"), "TMP": os.getenv("TMP")}
+
+        if release:
+            p = subprocess.Popen(['windeployqt', '--release', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ)
+        else:
+            p = subprocess.Popen(['windeployqt', '--debug', '--dry-run', '--list', 'mapping', 'Swift.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ)
+
+        if p:
+            stdout, stderr = p.communicate()
+
+            mappings = []
+
+            p = re.compile(ur'"([^\"]*)" "([^\"]*)"')
+
+            matches = re.findall(p, stdout)
+            for match in matches:
+                mappings.append(match)
+            return mappings
+        else:
+            return False
+
+    def createWindowsBundleManual(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4') :
+        all_files = []
+        all_files += env.Install(bundle, bundle + ".exe")
+        for lib in qtlibs :
+            all_files += env.Install(bundle, os.path.join(env["QTDIR"], "bin", lib + ".dll"))
+        plugins_suffix = '4'
+        if qtversion == '5' :
+            plugins_suffix = ''
+        for plugin_type in qtplugins:
+            all_files += env.Install(os.path.join(bundle, plugin_type), [os.path.join(env["QTDIR"], "plugins", plugin_type, "q" + plugin + plugins_suffix + ".dll") for plugin in qtplugins[plugin_type]])
+        for dir, resourceFiles in resources.items() :
+            for resource in resourceFiles :
+                e = env.Entry(resource)
+                if e.isdir() :
+                    for subresource in env.Glob(str(e) + "/*") :
+                        all_files += env.Install(os.path.join(bundle, dir, e.name), subresource)
+                else :
+                    all_files += env.Install(os.path.join(bundle, dir), resource)
+        return all_files
+
+    # This version of uses windeployqt tool
+    def createWindowsBundleWithWinDeployQt(env, bundle, resources = {}, qtplugins = {},  qtlibs = [],  qtversion = '4') :
+        assert(qtversion == '5')
+        all_files = []
+
+        # add swift executable
+        all_files += env.Install(bundle, bundle + ".exe")
+
+        # adding resources (swift sounds/images/translations)
+        for dir, resourceFiles in resources.items() :
+            for resource in resourceFiles :
+                e = env.Entry(resource)
+                if e.isdir() :
+                    for subresource in env.Glob(str(e) + "/*") :
+                        all_files += env.Install(os.path.join(bundle, dir, e.name), subresource)
+                else :
+                    all_files += env.Install(os.path.join(bundle, dir), resource)
+
+        qtmappings = captureWinDeployQtMapping()
+        assert(qtmappings)
+
+        # handle core DLLs
+        qt_corelib_regex = re.compile(ur".*bin.*\\(.*)\.dll")
+
+        for qtlib in qtlibs:
+            if qtlib.startswith("Qt5"):
+                (src_path, target_path) = next(((src_path, target_path) for (src_path, target_path) in qtmappings if  qt_corelib_regex.match(src_path) and qt_corelib_regex.match(src_path).group(1) == qtlib), (None, None))
+                if src_path != None:
+                    all_files += env.Install(bundle, src_path)
+
+        # handle core dependencies
+        for (src_path, target_path) in qtmappings:
+            if qt_corelib_regex.match(src_path) and not qt_corelib_regex.match(src_path).group(1).startswith("Qt5"):
+                all_files += env.Install(bundle, src_path)
+
+        # handle plugins
+        qt_plugin_regex = re.compile(ur".*plugins.*\\(.*)\\(.*)\.dll")
+        for (src_path, target_path) in qtmappings:
+            if qt_plugin_regex.match(src_path):
+                plugin_folder, filename = qt_plugin_regex.match(src_path).groups()
+                try:
+                    if plugin_folder in ["audio"] or filename[1:] in qtplugins[plugin_folder]:
+                        all_files += env.Install(os.path.join(bundle, plugin_folder), src_path)
+                except:
+                    pass
+        return all_files
+
+    def createWindowsBundle(env, bundle, resources = {}, qtplugins = {}, qtlibs = [], qtversion = '4'):
+        if which("windeployqt.exe"):
+            return createWindowsBundleWithWinDeployQt(env, bundle, resources, qtplugins, qtlibs, qtversion)
+        else:
+            return createWindowsBundleManual(env, bundle, resources, qtplugins, qtlibs, qtversion)
+
+    env.AddMethod(createWindowsBundle, "WindowsBundle")
 
 def exists(env) :
-	return env["PLATFORM"] == "win32"
+    return env["PLATFORM"] == "win32"
 
diff --git a/BuildTools/SCons/Tools/WriteVal.py b/BuildTools/SCons/Tools/WriteVal.py
index 4e8d3bb..ad77a99 100644
--- a/BuildTools/SCons/Tools/WriteVal.py
+++ b/BuildTools/SCons/Tools/WriteVal.py
@@ -1,15 +1,15 @@
 import SCons.Util
 
 def generate(env) :
-	def replacePragmaOnce(env, target, source) :
-		f = open(str(target[0]), 'wb')
-		f.write(source[0].get_contents())
-		f.close()
+    def replacePragmaOnce(env, target, source) :
+        f = open(str(target[0]), 'wb')
+        f.write(source[0].get_contents())
+        f.close()
 
-	env["BUILDERS"]["WriteVal"] = SCons.Builder.Builder(
-		action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"),
-		single_source = True)
+    env["BUILDERS"]["WriteVal"] = SCons.Builder.Builder(
+        action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"),
+        single_source = True)
 
 def exists(env) :
-	return True
+    return True
 
diff --git a/BuildTools/SCons/Tools/nsis.py b/BuildTools/SCons/Tools/nsis.py
index f5b2905..393beb8 100644
--- a/BuildTools/SCons/Tools/nsis.py
+++ b/BuildTools/SCons/Tools/nsis.py
@@ -6,34 +6,34 @@ nsisIncludes_re = re.compile(r'^\s*!include (translations-\S*)', re.M)
 
 """
 TODO:
-	- Extract the target from the nsis file
-	- When a target is provided use the output function
+    - Extract the target from the nsis file
+    - When a target is provided use the output function
 """
 
 def generate(env) :
-	"""Add Builders and construction variables for qt to an Environment."""
-	Builder = SCons.Builder.Builder
+    """Add Builders and construction variables for qt to an Environment."""
+    Builder = SCons.Builder.Builder
 
-	env['NSIS_MAKENSIS'] = 'makensis'
-	env['NSIS_OPTIONS'] = ["/V2"]
-	def winToLocalReformat(path) :
-		return os.path.join(*path.split("\\"))
-	def scanNsisContent(node, env, path, arg):
-		contents = node.get_contents()
-		includes = nsisFiles_re.findall(contents) + nsisIncludes_re.findall(contents)
-		includes = [ winToLocalReformat(include) for include in includes ]
-		return filter(lambda x: x.rfind('*')==-1, includes)
-	nsisscanner = env.Scanner(name = 'nsisfile',
-		function = scanNsisContent,
-		argument = None,
-		skeys = ['.nsi'])
-	nsisbuilder = Builder(
-		action = SCons.Action.Action('$NSIS_MAKENSIS $NSIS_OPTIONS $SOURCE', cmdstr = '$NSISCOMSTR'),
-		source_scanner = nsisscanner,
-		single_source = True
-		)
-	env.Append( BUILDERS={'Nsis' : nsisbuilder} )
+    env['NSIS_MAKENSIS'] = 'makensis'
+    env['NSIS_OPTIONS'] = ["/V2"]
+    def winToLocalReformat(path) :
+        return os.path.join(*path.split("\\"))
+    def scanNsisContent(node, env, path, arg):
+        contents = node.get_contents()
+        includes = nsisFiles_re.findall(contents) + nsisIncludes_re.findall(contents)
+        includes = [ winToLocalReformat(include) for include in includes ]
+        return filter(lambda x: x.rfind('*')==-1, includes)
+    nsisscanner = env.Scanner(name = 'nsisfile',
+        function = scanNsisContent,
+        argument = None,
+        skeys = ['.nsi'])
+    nsisbuilder = Builder(
+        action = SCons.Action.Action('$NSIS_MAKENSIS $NSIS_OPTIONS $SOURCE', cmdstr = '$NSISCOMSTR'),
+        source_scanner = nsisscanner,
+        single_source = True
+        )
+    env.Append( BUILDERS={'Nsis' : nsisbuilder} )
 
 def exists(env) :
-	return True
+    return True
 
diff --git a/BuildTools/SCons/Tools/qt4.py b/BuildTools/SCons/Tools/qt4.py
index 1d03c00..a0b29ba 100644
--- a/BuildTools/SCons/Tools/qt4.py
+++ b/BuildTools/SCons/Tools/qt4.py
@@ -47,24 +47,24 @@ import SCons.Util
 import SCons.SConf
 
 class ToolQtWarning(SCons.Warnings.Warning):
-	pass
+    pass
 
 class GeneratedMocFileNotIncluded(ToolQtWarning):
-	pass
+    pass
 
 class QtdirNotFound(ToolQtWarning):
-	pass
+    pass
 
 SCons.Warnings.enableWarningClass(ToolQtWarning)
 
 qrcinclude_re = re.compile(r'<file (alias=\"[^\"]*\")?>([^<]*)</file>', re.M)
 
 def transformToWinePath(path) :
-	return os.popen('winepath -w "%s"'%path).read().strip().replace('\\','/')
+    return os.popen('winepath -w "%s"'%path).read().strip().replace('\\','/')
 
 header_extensions = [".h", ".hxx", ".hpp", ".hh"]
 if SCons.Util.case_sensitive_suffixes('.h', '.H'):
-	header_extensions.append('.H')
+    header_extensions.append('.H')
 # TODO: The following two lines will work when integrated back to SCons
 # TODO: Meanwhile the third line will do the work
 #cplusplus = __import__('c++', globals(), locals(), [])
@@ -72,519 +72,519 @@ if SCons.Util.case_sensitive_suffixes('.h', '.H'):
 cxx_suffixes = [".c", ".cxx", ".cpp", ".cc"]
 
 def checkMocIncluded(target, source, env):
-	moc = target[0]
-	cpp = source[0]
-	# looks like cpp.includes is cleared before the build stage :-(
-	# not really sure about the path transformations (moc.cwd? cpp.cwd?) :-/
-	path = SCons.Defaults.CScan.path_function(env, moc.cwd)
-	includes = SCons.Defaults.CScan(cpp, env, path)
-	if not moc in includes:
-		SCons.Warnings.warn(
-			GeneratedMocFileNotIncluded,
-			"Generated moc file '%s' is not included by '%s'" %
-			(str(moc), str(cpp)))
+    moc = target[0]
+    cpp = source[0]
+    # looks like cpp.includes is cleared before the build stage :-(
+    # not really sure about the path transformations (moc.cwd? cpp.cwd?) :-/
+    path = SCons.Defaults.CScan.path_function(env, moc.cwd)
+    includes = SCons.Defaults.CScan(cpp, env, path)
+    if not moc in includes:
+        SCons.Warnings.warn(
+            GeneratedMocFileNotIncluded,
+            "Generated moc file '%s' is not included by '%s'" %
+            (str(moc), str(cpp)))
 
 def find_file(filename, paths, node_factory):
-	for dir in paths:
-		node = node_factory(filename, dir)
-		if node.rexists():
-			return node
-	return None
+    for dir in paths:
+        node = node_factory(filename, dir)
+        if node.rexists():
+            return node
+    return None
 
 class _Automoc:
-	"""
-	Callable class, which works as an emitter for Programs, SharedLibraries and
-	StaticLibraries.
-	"""
-
-	def __init__(self, objBuilderName):
-		self.objBuilderName = objBuilderName
-		
-	def __call__(self, target, source, env):
-		"""
-		Smart autoscan function. Gets the list of objects for the Program
-		or Lib. Adds objects and builders for the special qt files.
-		"""
-		try:
-			if int(env.subst('$QT4_AUTOSCAN')) == 0:
-				return target, source
-		except ValueError:
-			pass
-		try:
-			debug = int(env.subst('$QT4_DEBUG'))
-		except ValueError:
-			debug = 0
-		
-		# some shortcuts used in the scanner
-		splitext = SCons.Util.splitext
-		objBuilder = getattr(env, self.objBuilderName)
-
-		# some regular expressions:
-		# Q_OBJECT detection
-		q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]') 
-		# cxx and c comment 'eater'
-		#comment = re.compile(r'(//.*)|(/\*(([^*])|(\*[^/]))*\*/)')
-		# CW: something must be wrong with the regexp. See also bug #998222
-		#	 CURRENTLY THERE IS NO TEST CASE FOR THAT
-		
-		# The following is kind of hacky to get builders working properly (FIXME)
-		objBuilderEnv = objBuilder.env
-		objBuilder.env = env
-		mocBuilderEnv = env.Moc4.env
-		env.Moc4.env = env
-		
-		# make a deep copy for the result; MocH objects will be appended
-		out_sources = source[:]
-
-		for obj in source:
-			if isinstance(obj,basestring):	# big kludge!
-				print "scons: qt4: '%s' MAYBE USING AN OLD SCONS VERSION AND NOT CONVERTED TO 'File'. Discarded." % str(obj)
-				continue
-			if not obj.has_builder():
-				# binary obj file provided
-				if debug:
-					print "scons: qt: '%s' seems to be a binary. Discarded." % str(obj)
-				continue
-			cpp = obj.sources[0]
-			if not splitext(str(cpp))[1] in cxx_suffixes:
-				if debug:
-					print "scons: qt: '%s' is no cxx file. Discarded." % str(cpp) 
-				# c or fortran source
-				continue
-			#cpp_contents = comment.sub('', cpp.get_contents())
-			try:
-				cpp_contents = cpp.get_contents()
-			except: continue # may be an still not generated source
-			h=None
-			for h_ext in header_extensions:
-				# try to find the header file in the corresponding source
-				# directory
-				hname = splitext(cpp.name)[0] + h_ext
-				h = find_file(hname, (cpp.get_dir(),), env.File)
-				if h:
-					if debug:
-						print "scons: qt: Scanning '%s' (header of '%s')" % (str(h), str(cpp))
-					#h_contents = comment.sub('', h.get_contents())
-					h_contents = h.get_contents()
-					break
-			if not h and debug:
-				print "scons: qt: no header for '%s'." % (str(cpp))
-			if h and q_object_search.search(h_contents):
-				# h file with the Q_OBJECT macro found -> add moc_cpp
-				moc_cpp = env.Moc4(h)
-				moc_o = objBuilder(moc_cpp)
-				out_sources.append(moc_o)
-				#moc_cpp.target_scanner = SCons.Defaults.CScan
-				if debug:
-					print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(h), str(moc_cpp))
-			if cpp and q_object_search.search(cpp_contents):
-				# cpp file with Q_OBJECT macro found -> add moc
-				# (to be included in cpp)
-				moc = env.Moc4(cpp)
-				env.Ignore(moc, moc)
-				if debug:
-					print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(cpp), str(moc))
-				#moc.source_scanner = SCons.Defaults.CScan
-		# restore the original env attributes (FIXME)
-		objBuilder.env = objBuilderEnv
-		env.Moc4.env = mocBuilderEnv
-
-		return (target, out_sources)
+    """
+    Callable class, which works as an emitter for Programs, SharedLibraries and
+    StaticLibraries.
+    """
+
+    def __init__(self, objBuilderName):
+        self.objBuilderName = objBuilderName
+        
+    def __call__(self, target, source, env):
+        """
+        Smart autoscan function. Gets the list of objects for the Program
+        or Lib. Adds objects and builders for the special qt files.
+        """
+        try:
+            if int(env.subst('$QT4_AUTOSCAN')) == 0:
+                return target, source
+        except ValueError:
+            pass
+        try:
+            debug = int(env.subst('$QT4_DEBUG'))
+        except ValueError:
+            debug = 0
+        
+        # some shortcuts used in the scanner
+        splitext = SCons.Util.splitext
+        objBuilder = getattr(env, self.objBuilderName)
+
+        # some regular expressions:
+        # Q_OBJECT detection
+        q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]') 
+        # cxx and c comment 'eater'
+        #comment = re.compile(r'(//.*)|(/\*(([^*])|(\*[^/]))*\*/)')
+        # CW: something must be wrong with the regexp. See also bug #998222
+        #    CURRENTLY THERE IS NO TEST CASE FOR THAT
+        
+        # The following is kind of hacky to get builders working properly (FIXME)
+        objBuilderEnv = objBuilder.env
+        objBuilder.env = env
+        mocBuilderEnv = env.Moc4.env
+        env.Moc4.env = env
+        
+        # make a deep copy for the result; MocH objects will be appended
+        out_sources = source[:]
+
+        for obj in source:
+            if isinstance(obj,basestring):  # big kludge!
+                print "scons: qt4: '%s' MAYBE USING AN OLD SCONS VERSION AND NOT CONVERTED TO 'File'. Discarded." % str(obj)
+                continue
+            if not obj.has_builder():
+                # binary obj file provided
+                if debug:
+                    print "scons: qt: '%s' seems to be a binary. Discarded." % str(obj)
+                continue
+            cpp = obj.sources[0]
+            if not splitext(str(cpp))[1] in cxx_suffixes:
+                if debug:
+                    print "scons: qt: '%s' is no cxx file. Discarded." % str(cpp) 
+                # c or fortran source
+                continue
+            #cpp_contents = comment.sub('', cpp.get_contents())
+            try:
+                cpp_contents = cpp.get_contents()
+            except: continue # may be an still not generated source
+            h=None
+            for h_ext in header_extensions:
+                # try to find the header file in the corresponding source
+                # directory
+                hname = splitext(cpp.name)[0] + h_ext
+                h = find_file(hname, (cpp.get_dir(),), env.File)
+                if h:
+                    if debug:
+                        print "scons: qt: Scanning '%s' (header of '%s')" % (str(h), str(cpp))
+                    #h_contents = comment.sub('', h.get_contents())
+                    h_contents = h.get_contents()
+                    break
+            if not h and debug:
+                print "scons: qt: no header for '%s'." % (str(cpp))
+            if h and q_object_search.search(h_contents):
+                # h file with the Q_OBJECT macro found -> add moc_cpp
+                moc_cpp = env.Moc4(h)
+                moc_o = objBuilder(moc_cpp)
+                out_sources.append(moc_o)
+                #moc_cpp.target_scanner = SCons.Defaults.CScan
+                if debug:
+                    print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(h), str(moc_cpp))
+            if cpp and q_object_search.search(cpp_contents):
+                # cpp file with Q_OBJECT macro found -> add moc
+                # (to be included in cpp)
+                moc = env.Moc4(cpp)
+                env.Ignore(moc, moc)
+                if debug:
+                    print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(cpp), str(moc))
+                #moc.source_scanner = SCons.Defaults.CScan
+        # restore the original env attributes (FIXME)
+        objBuilder.env = objBuilderEnv
+        env.Moc4.env = mocBuilderEnv
+
+        return (target, out_sources)
 
 AutomocShared = _Automoc('SharedObject')
 AutomocStatic = _Automoc('StaticObject')
 
 def _detect(env):
-	"""Not really safe, but fast method to detect the QT library"""
-	if 'QTDIR' in env :
-		return env['QTDIR']
-
-	if 'QTDIR' in os.environ :
-		return os.environ['QTDIR']
-
-	moc = None
-	if env["qt5"]:
-		moc = env.WhereIs('moc-qt5') or env.WhereIs('moc5') or env.WhereIs('moc')
-	else :
-		moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc')
-	if moc:
-		# Test whether the moc command we found is real, or whether it is just the qtchooser dummy.
-		p = subprocess.Popen([moc, "-v"], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-		p.communicate()
-		if p.returncode == 0:
-			import sys
-			if sys.platform == "darwin" :
-				return ""
-			QTDIR = os.path.dirname(os.path.dirname(moc))
-			return QTDIR
-
-	raise SCons.Errors.StopError(
-		QtdirNotFound,
-		"Could not detect Qt 4 installation")
-	return None
+    """Not really safe, but fast method to detect the QT library"""
+    if 'QTDIR' in env :
+        return env['QTDIR']
+
+    if 'QTDIR' in os.environ :
+        return os.environ['QTDIR']
+
+    moc = None
+    if env["qt5"]:
+        moc = env.WhereIs('moc-qt5') or env.WhereIs('moc5') or env.WhereIs('moc')
+    else :
+        moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc')
+    if moc:
+        # Test whether the moc command we found is real, or whether it is just the qtchooser dummy.
+        p = subprocess.Popen([moc, "-v"], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        p.communicate()
+        if p.returncode == 0:
+            import sys
+            if sys.platform == "darwin" :
+                return ""
+            QTDIR = os.path.dirname(os.path.dirname(moc))
+            return QTDIR
+
+    raise SCons.Errors.StopError(
+        QtdirNotFound,
+        "Could not detect Qt 4 installation")
+    return None
 
 def generate(env):
-	"""Add Builders and construction variables for qt to an Environment."""
-
-	def locateQt4Command(env, command, qtdir) :
-		if len(qtdir) == 0 :
-			qtdir = "/usr"
-		if env["qt5"]:
-			suffixes = [
-				'-qt5',
-				'-qt5.exe',
-				'5',
-				'5.exe',
-				'',
-				'.exe',
-			]
-		else :
-			suffixes = [
-				'-qt4',
-				'-qt4.exe',
-				'4',
-				'4.exe',
-				'',
-				'.exe',
-			]
-		triedPaths = []
-		for suffix in suffixes :
-			fullpath = os.path.join(qtdir,'bin',command + suffix)
-			if os.access(fullpath, os.X_OK) :
-				return fullpath
-			triedPaths.append(fullpath)
-
-		fullpath = env.Detect([command+'-qt4', command+'4', command])
-		if not (fullpath is None) : return fullpath
-
-		raise Exception("Qt4 command '" + command + "' not found. Tried: " + ', '.join(triedPaths))
-		
-
-	CLVar = SCons.Util.CLVar
-	Action = SCons.Action.Action
-	Builder = SCons.Builder.Builder
-	splitext = SCons.Util.splitext
-
-	env['QTDIR']	= _detect(env)
-	# TODO: 'Replace' should be 'SetDefault'
-#	env.SetDefault(
-	env.Replace(
-		QTDIR  = _detect(env),
-		# TODO: This is not reliable to QTDIR value changes but needed in order to support '-qt4' variants
-		QT4_MOC = locateQt4Command(env,'moc', env['QTDIR']),
-		QT4_UIC = locateQt4Command(env,'uic', env['QTDIR']),
-		QT4_RCC = locateQt4Command(env,'rcc', env['QTDIR']),
-		QT4_LUPDATE = locateQt4Command(env,'lupdate', env['QTDIR']),
-		QT4_LRELEASE = locateQt4Command(env,'lrelease', env['QTDIR']),
-		QT4_LIB = '', # KLUDGE to avoid linking qt3 library
-
-		QT4_AUTOSCAN = 1, # Should the qt tool try to figure out, which sources are to be moc'ed?
-
-		# Some QT specific flags. I don't expect someone wants to
-		# manipulate those ...
-		QT4_UICFLAGS = CLVar(''),
-		QT4_MOCFROMHFLAGS = CLVar(''),
-		QT4_MOCFROMCXXFLAGS = CLVar('-i'),
-		QT4_QRCFLAGS = '--compress 9 --threshold 5',
-
-		# suffixes/prefixes for the headers / sources to generate
-		QT4_UISUFFIX = '.ui',
-		QT4_UICDECLPREFIX = 'ui_',
-		QT4_UICDECLSUFFIX = '.h',
-		QT4_MOCHPREFIX = 'moc_',
-		QT4_MOCHSUFFIX = '$CXXFILESUFFIX',
-		QT4_MOCCXXPREFIX = '',
-		QT4_MOCCXXSUFFIX = '.moc',
-		QT4_QRCSUFFIX = '.qrc',
-		QT4_QRCCXXSUFFIX = '$CXXFILESUFFIX',
-		QT4_QRCCXXPREFIX = 'qrc_',
-		QT4_MOCCPPPATH = [],
-		QT4_MOCINCFLAGS = '$( ${_concat("-I", QT4_MOCCPPPATH, INCSUFFIX, __env__, RDirs)} $)',
-
-		# Commands for the qt support ...
-		QT4_UICCOM = '$QT4_UIC $QT4_UICFLAGS -o $TARGET $SOURCE',
-		# FIXME: The -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED flag is a hack to work
-		# around an issue in Qt
-		# See https://bugreports.qt-project.org/browse/QTBUG-22829
-		QT4_MOCFROMHCOM = '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMHFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE',
-		QT4_MOCFROMCXXCOM = [
-			'$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMCXXFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE',
-			Action(checkMocIncluded,None)],
-		QT4_LUPDATECOM = '$QT4_LUPDATE $SOURCE -ts $TARGET',
-		QT4_LRELEASECOM = '$QT4_LRELEASE -silent $SOURCE -qm $TARGET',
-		QT4_RCCCOM = '$QT4_RCC $QT4_QRCFLAGS -name $SOURCE $SOURCE -o $TARGET',
-		)
-	if len(env["QTDIR"]) > 0 :
-		env.Replace(QT4_LIBPATH = os.path.join('$QTDIR', 'lib'))
-
-	# Translation builder
-	tsbuilder = Builder(
-		action = SCons.Action.Action('$QT4_LUPDATECOM'), #,'$QT4_LUPDATECOMSTR'),
-		multi=1
-		)
-	env.Append( BUILDERS = { 'Ts': tsbuilder } )
-	qmbuilder = Builder(
-		action = SCons.Action.Action('$QT4_LRELEASECOM', cmdstr = '$QT4_LRELEASECOMSTR'),
-		src_suffix = '.ts',
-		suffix = '.qm',
-		single_source = True
-		)
-	env.Append( BUILDERS = { 'Qm': qmbuilder } )
-
-	# Resource builder
-	def scanResources(node, env, path, arg):
-		# I've being careful on providing names relative to the qrc file
-		# If that was not needed that code could be simplified a lot
-		def recursiveFiles(basepath, path) :
-			result = []
-			for item in os.listdir(os.path.join(basepath, path)) :
-				itemPath = os.path.join(path, item)
-				if os.path.isdir(os.path.join(basepath, itemPath)) :
-					result += recursiveFiles(basepath, itemPath)
-				else:
-					result.append(itemPath)
-			return result
-		contents = node.get_contents()
-		includes = [included[1] for included in qrcinclude_re.findall(contents)]
-		qrcpath = os.path.dirname(node.path)
-		dirs = [included for included in includes if os.path.isdir(os.path.join(qrcpath,included))]
-		# dirs need to include files recursively
-		for dir in dirs :
-			includes.remove(dir)
-			includes+=recursiveFiles(qrcpath,dir)
-		return includes
-	qrcscanner = SCons.Scanner.Scanner(name = 'qrcfile',
-		function = scanResources,
-		argument = None,
-		skeys = ['.qrc'])
-	qrcbuilder = Builder(
-		action = SCons.Action.Action('$QT4_RCCCOM', cmdstr = '$QT4_RCCCOMSTR'), 
-		source_scanner = qrcscanner,
-		src_suffix = '$QT4_QRCSUFFIX',
-		suffix = '$QT4_QRCCXXSUFFIX',
-		prefix = '$QT4_QRCCXXPREFIX',
-		single_source = True
-		)
-	env.Append( BUILDERS = { 'Qrc': qrcbuilder } )
-
-	# Interface builder
-	uic4builder = Builder(
-		action = SCons.Action.Action('$QT4_UICCOM', cmdstr = '$QT4_UICCOMSTR'), 
-		src_suffix='$QT4_UISUFFIX',
-		suffix='$QT4_UICDECLSUFFIX',
-		prefix='$QT4_UICDECLPREFIX',
-		single_source = True
-		#TODO: Consider the uiscanner on new scons version
-		)
-	env['BUILDERS']['Uic4'] = uic4builder
-
-	# Metaobject builder
-	mocBld = Builder(action={}, prefix={}, suffix={})
-	for h in header_extensions:
-		act = SCons.Action.Action('$QT4_MOCFROMHCOM', cmdstr = '$QT4_MOCFROMHCOMSTR')
-		mocBld.add_action(h, act)
-		mocBld.prefix[h] = '$QT4_MOCHPREFIX'
-		mocBld.suffix[h] = '$QT4_MOCHSUFFIX'
-	for cxx in cxx_suffixes:
-		act = SCons.Action.Action('$QT4_MOCFROMCXXCOM', cmdstr = '$QT4_MOCFROMCXXCOMSTR')
-		mocBld.add_action(cxx, act)
-		mocBld.prefix[cxx] = '$QT4_MOCCXXPREFIX'
-		mocBld.suffix[cxx] = '$QT4_MOCCXXSUFFIX'
-	env['BUILDERS']['Moc4'] = mocBld
-
-	# er... no idea what that was for
-	static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
-	static_obj.src_builder.append('Uic4')
-	shared_obj.src_builder.append('Uic4')
-
-	# We use the emitters of Program / StaticLibrary / SharedLibrary
-	# to scan for moc'able files
-	# We can't refer to the builders directly, we have to fetch them
-	# as Environment attributes because that sets them up to be called
-	# correctly later by our emitter.
-	env.AppendUnique(PROGEMITTER =[AutomocStatic],
-					 SHLIBEMITTER=[AutomocShared],
-					 LIBEMITTER  =[AutomocStatic],
-					 # Of course, we need to link against the qt libraries
-					 LIBPATH=["$QT4_LIBPATH"],
-					 LIBS=['$QT4_LIB'])
-
-	# TODO: Does dbusxml2cpp need an adapter
-	env.AddMethod(enable_modules, "EnableQt4Modules")
+    """Add Builders and construction variables for qt to an Environment."""
+
+    def locateQt4Command(env, command, qtdir) :
+        if len(qtdir) == 0 :
+            qtdir = "/usr"
+        if env["qt5"]:
+            suffixes = [
+                '-qt5',
+                '-qt5.exe',
+                '5',
+                '5.exe',
+                '',
+                '.exe',
+            ]
+        else :
+            suffixes = [
+                '-qt4',
+                '-qt4.exe',
+                '4',
+                '4.exe',
+                '',
+                '.exe',
+            ]
+        triedPaths = []
+        for suffix in suffixes :
+            fullpath = os.path.join(qtdir,'bin',command + suffix)
+            if os.access(fullpath, os.X_OK) :
+                return fullpath
+            triedPaths.append(fullpath)
+
+        fullpath = env.Detect([command+'-qt4', command+'4', command])
+        if not (fullpath is None) : return fullpath
+
+        raise Exception("Qt4 command '" + command + "' not found. Tried: " + ', '.join(triedPaths))
+        
+
+    CLVar = SCons.Util.CLVar
+    Action = SCons.Action.Action
+    Builder = SCons.Builder.Builder
+    splitext = SCons.Util.splitext
+
+    env['QTDIR']    = _detect(env)
+    # TODO: 'Replace' should be 'SetDefault'
+#   env.SetDefault(
+    env.Replace(
+        QTDIR  = _detect(env),
+        # TODO: This is not reliable to QTDIR value changes but needed in order to support '-qt4' variants
+        QT4_MOC = locateQt4Command(env,'moc', env['QTDIR']),
+        QT4_UIC = locateQt4Command(env,'uic', env['QTDIR']),
+        QT4_RCC = locateQt4Command(env,'rcc', env['QTDIR']),
+        QT4_LUPDATE = locateQt4Command(env,'lupdate', env['QTDIR']),
+        QT4_LRELEASE = locateQt4Command(env,'lrelease', env['QTDIR']),
+        QT4_LIB = '', # KLUDGE to avoid linking qt3 library
+
+        QT4_AUTOSCAN = 1, # Should the qt tool try to figure out, which sources are to be moc'ed?
+
+        # Some QT specific flags. I don't expect someone wants to
+        # manipulate those ...
+        QT4_UICFLAGS = CLVar(''),
+        QT4_MOCFROMHFLAGS = CLVar(''),
+        QT4_MOCFROMCXXFLAGS = CLVar('-i'),
+        QT4_QRCFLAGS = '--compress 9 --threshold 5',
+
+        # suffixes/prefixes for the headers / sources to generate
+        QT4_UISUFFIX = '.ui',
+        QT4_UICDECLPREFIX = 'ui_',
+        QT4_UICDECLSUFFIX = '.h',
+        QT4_MOCHPREFIX = 'moc_',
+        QT4_MOCHSUFFIX = '$CXXFILESUFFIX',
+        QT4_MOCCXXPREFIX = '',
+        QT4_MOCCXXSUFFIX = '.moc',
+        QT4_QRCSUFFIX = '.qrc',
+        QT4_QRCCXXSUFFIX = '$CXXFILESUFFIX',
+        QT4_QRCCXXPREFIX = 'qrc_',
+        QT4_MOCCPPPATH = [],
+        QT4_MOCINCFLAGS = '$( ${_concat("-I", QT4_MOCCPPPATH, INCSUFFIX, __env__, RDirs)} $)',
+
+        # Commands for the qt support ...
+        QT4_UICCOM = '$QT4_UIC $QT4_UICFLAGS -o $TARGET $SOURCE',
+        # FIXME: The -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED flag is a hack to work
+        # around an issue in Qt
+        # See https://bugreports.qt-project.org/browse/QTBUG-22829
+        QT4_MOCFROMHCOM = '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMHFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE',
+        QT4_MOCFROMCXXCOM = [
+            '$QT4_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED $QT4_MOCFROMCXXFLAGS $QT4_MOCINCFLAGS -o $TARGET $SOURCE',
+            Action(checkMocIncluded,None)],
+        QT4_LUPDATECOM = '$QT4_LUPDATE $SOURCE -ts $TARGET',
+        QT4_LRELEASECOM = '$QT4_LRELEASE -silent $SOURCE -qm $TARGET',
+        QT4_RCCCOM = '$QT4_RCC $QT4_QRCFLAGS -name $SOURCE $SOURCE -o $TARGET',
+        )
+    if len(env["QTDIR"]) > 0 :
+        env.Replace(QT4_LIBPATH = os.path.join('$QTDIR', 'lib'))
+
+    # Translation builder
+    tsbuilder = Builder(
+        action = SCons.Action.Action('$QT4_LUPDATECOM'), #,'$QT4_LUPDATECOMSTR'),
+        multi=1
+        )
+    env.Append( BUILDERS = { 'Ts': tsbuilder } )
+    qmbuilder = Builder(
+        action = SCons.Action.Action('$QT4_LRELEASECOM', cmdstr = '$QT4_LRELEASECOMSTR'),
+        src_suffix = '.ts',
+        suffix = '.qm',
+        single_source = True
+        )
+    env.Append( BUILDERS = { 'Qm': qmbuilder } )
+
+    # Resource builder
+    def scanResources(node, env, path, arg):
+        # I've being careful on providing names relative to the qrc file
+        # If that was not needed that code could be simplified a lot
+        def recursiveFiles(basepath, path) :
+            result = []
+            for item in os.listdir(os.path.join(basepath, path)) :
+                itemPath = os.path.join(path, item)
+                if os.path.isdir(os.path.join(basepath, itemPath)) :
+                    result += recursiveFiles(basepath, itemPath)
+                else:
+                    result.append(itemPath)
+            return result
+        contents = node.get_contents()
+        includes = [included[1] for included in qrcinclude_re.findall(contents)]
+        qrcpath = os.path.dirname(node.path)
+        dirs = [included for included in includes if os.path.isdir(os.path.join(qrcpath,included))]
+        # dirs need to include files recursively
+        for dir in dirs :
+            includes.remove(dir)
+            includes+=recursiveFiles(qrcpath,dir)
+        return includes
+    qrcscanner = SCons.Scanner.Scanner(name = 'qrcfile',
+        function = scanResources,
+        argument = None,
+        skeys = ['.qrc'])
+    qrcbuilder = Builder(
+        action = SCons.Action.Action('$QT4_RCCCOM', cmdstr = '$QT4_RCCCOMSTR'), 
+        source_scanner = qrcscanner,
+        src_suffix = '$QT4_QRCSUFFIX',
+        suffix = '$QT4_QRCCXXSUFFIX',
+        prefix = '$QT4_QRCCXXPREFIX',
+        single_source = True
+        )
+    env.Append( BUILDERS = { 'Qrc': qrcbuilder } )
+
+    # Interface builder
+    uic4builder = Builder(
+        action = SCons.Action.Action('$QT4_UICCOM', cmdstr = '$QT4_UICCOMSTR'), 
+        src_suffix='$QT4_UISUFFIX',
+        suffix='$QT4_UICDECLSUFFIX',
+        prefix='$QT4_UICDECLPREFIX',
+        single_source = True
+        #TODO: Consider the uiscanner on new scons version
+        )
+    env['BUILDERS']['Uic4'] = uic4builder
+
+    # Metaobject builder
+    mocBld = Builder(action={}, prefix={}, suffix={})
+    for h in header_extensions:
+        act = SCons.Action.Action('$QT4_MOCFROMHCOM', cmdstr = '$QT4_MOCFROMHCOMSTR')
+        mocBld.add_action(h, act)
+        mocBld.prefix[h] = '$QT4_MOCHPREFIX'
+        mocBld.suffix[h] = '$QT4_MOCHSUFFIX'
+    for cxx in cxx_suffixes:
+        act = SCons.Action.Action('$QT4_MOCFROMCXXCOM', cmdstr = '$QT4_MOCFROMCXXCOMSTR')
+        mocBld.add_action(cxx, act)
+        mocBld.prefix[cxx] = '$QT4_MOCCXXPREFIX'
+        mocBld.suffix[cxx] = '$QT4_MOCCXXSUFFIX'
+    env['BUILDERS']['Moc4'] = mocBld
+
+    # er... no idea what that was for
+    static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
+    static_obj.src_builder.append('Uic4')
+    shared_obj.src_builder.append('Uic4')
+
+    # We use the emitters of Program / StaticLibrary / SharedLibrary
+    # to scan for moc'able files
+    # We can't refer to the builders directly, we have to fetch them
+    # as Environment attributes because that sets them up to be called
+    # correctly later by our emitter.
+    env.AppendUnique(PROGEMITTER =[AutomocStatic],
+                     SHLIBEMITTER=[AutomocShared],
+                     LIBEMITTER  =[AutomocStatic],
+                     # Of course, we need to link against the qt libraries
+                     LIBPATH=["$QT4_LIBPATH"],
+                     LIBS=['$QT4_LIB'])
+
+    # TODO: Does dbusxml2cpp need an adapter
+    env.AddMethod(enable_modules, "EnableQt4Modules")
 
 def enable_modules(self, modules, debug=False, crosscompiling=False, version='4') :
-	import sys
-
-	validModules = [
-		'QtCore',
-		'QtGui',
-		'QtOpenGL',
-		'Qt3Support',
-		'QtAssistant',
-		'QtScript',
-		'QtDBus',
-		'QtSql',
-		# The next modules have not been tested yet so, please
-		# maybe they require additional work on non Linux platforms
-		'QtNetwork',
-		'QtSvg',
-		'QtTest',
-		'QtXml',
-		'QtXmlPatterns',
-		'QtUiTools',
-		'QtDesigner',
-		'QtDesignerComponents',
-		'QtWebKit',
-		'QtHelp',
-		'QtScript',
-
-		# Qt5 modules
-		'QtWidgets',
-		'QtMultimedia',
-		'QtWebKitWidgets',
-		'QtWebChannel',
-		]
-	if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling :
-		validModules += ['QtX11Extras']
-	staticModules = [
-		'QtUiTools',
-	]
-	invalidModules=[]
-	for module in modules:
-		if module not in validModules :
-			invalidModules.append(module)
-	if invalidModules :
-		raise Exception("Modules %s are not Qt4 modules. Valid Qt4 modules are: %s"% (
-			str(invalidModules),str(validModules)))
-
-	moduleDefines = {
-		'QtScript'	 : ['QT_SCRIPT_LIB'],
-		'QtSvg'			 : ['QT_SVG_LIB'],
-		'Qt3Support' : ['QT_QT3SUPPORT_LIB','QT3_SUPPORT'],
-		'QtSql'			 : ['QT_SQL_LIB'],
-		'QtXml'			 : ['QT_XML_LIB'],
-		'QtOpenGL'	 : ['QT_OPENGL_LIB'],
-		'QtGui'			 : ['QT_GUI_LIB'],
-		'QtWidgets'  : ['QT_WIDGETS_LIB'],
-		'QtWebKitWidgets' : [],
-		'QtNetwork'  : ['QT_NETWORK_LIB'],
-		'QtCore'		 : ['QT_CORE_LIB'],
-	}
-	for module in modules :
-		try : self.AppendUnique(CPPDEFINES=moduleDefines[module])
-		except: pass
-	debugSuffix = ''
-
-
-	include_flag = "-I"
-	if os.path.basename(self["CC"]) in ("gcc", "clang"):
-		include_flag = "-isystem"
-
-
-	if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling :
-		if self["qt"]:
-			# The user specified qt path in config.py and we are going to use the
-			# installation under that location.
-			UsePkgConfig = False
-		else:
-			# The user did not specify a qt path in config py and we are going to
-			# ask pkg-config for the correct flags.
-			UsePkgConfig = True
-		if not UsePkgConfig:
-			if debug : debugSuffix = '_debug'
-			if version == '4' :
-				self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "include", "phonon")])
-			for module in modules :
-				module_str = module
-				if not version == '4' :
-					module_str = module_str.replace('Qt', 'Qt5')
-				self.AppendUnique(LIBS=[module_str+debugSuffix])
-				self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])
-				self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include")])
-				self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include", module)])
-			self["QT4_MOCCPPPATH"] = self["CPPPATH"]
-			return
-		else:
-			test_conf = self.Configure()
-			modules_str = " ".join(modules)
-			if not version == '4' :
-				modules_str = modules_str.replace('Qt', 'Qt5')
-
-			# Check if Qt is registered at pkg-config
-			ret = test_conf.TryAction('pkg-config --exists \'%s\'' % modules_str)[0]
-			if ret != 1:
-				test_conf.Finish()
-				raise Exception('Qt installation is missing packages. The following are required: %s' % modules_str)
-				return
-			test_conf.env.ParseConfig("pkg-config --cflags --libs " + modules_str)
-			self.AppendUnique(LIBS=test_conf.env["LIBS"], LIBPATH=test_conf.env["LIBPATH"], CPPPATH=test_conf.env["CPPPATH"])
-			self["QT4_MOCCPPPATH"] = self["CPPPATH"]
-			test_conf.Finish()
-			return
-
-	if sys.platform == "win32" or crosscompiling :
-		if crosscompiling:
-			transformedQtdir = transformToWinePath(self['QTDIR'])
-			self['QT4_MOC'] = "QTDIR=%s %s"%( transformedQtdir, self['QT4_MOC'])
-		self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")])
-		try: modules.remove("QtDBus")
-		except: pass
-		if debug : debugSuffix = 'd'
-		if "QtAssistant" in modules:
-			self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include","QtAssistant")])
-			modules.remove("QtAssistant")
-			modules.append("QtAssistantClient")
-		if version == '4' :
-			# FIXME: Phonon Hack
-			self.AppendUnique(LIBS=['phonon'+debugSuffix+version])
-			self.AppendUnique(LIBS=[lib+debugSuffix+version for lib in modules if lib not in staticModules])
-		else :
-			self.AppendUnique(LIBS=[lib.replace('Qt', 'Qt5') + debugSuffix for lib in modules if lib not in staticModules])
-		self.PrependUnique(LIBS=[lib+debugSuffix for lib in modules if lib in staticModules])
-		if 'QtOpenGL' in modules:
-			self.AppendUnique(LIBS=['opengl32'])
-		elif version == '5' :
-			self.Append(CPPDEFINES = ["QT_NO_OPENGL"])
-		self.AppendUnique(CPPPATH=[ '$QTDIR/include/'])
-		self.AppendUnique(CPPPATH=[ '$QTDIR/include/'+module for module in modules])
-		if crosscompiling :
-			self["QT4_MOCCPPPATH"] = [
-				path.replace('$QTDIR', transformedQtdir)
-					for path in self['CPPPATH'] ]
-		else :
-			self["QT4_MOCCPPPATH"] = self["CPPPATH"]
-		self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')])
-		self.PrependUnique(LIBS=["shell32"])
-		return
-
-	if sys.platform=="darwin" :
-		if debug : debugSuffix = 'd'
-
-		if len(self["QTDIR"]) > 0 :
-			self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')])
-			self.AppendUnique(LINKFLAGS="-F$QTDIR/lib")
-			self.AppendUnique(CPPFLAGS="-iframework$QTDIR/lib")
-			self.AppendUnique(LINKFLAGS="-L$QTDIR/lib") #TODO clean!
-
-		# FIXME: Phonon Hack
-		if version == '4' :
-			self.Append(LINKFLAGS=['-framework', "phonon"])
-
-		for module in modules :
-			if module in staticModules :
-				self.AppendUnique(LIBS=[module+debugSuffix]) # TODO: Add the debug suffix
-				self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])
-			else :
-				if len(self["QTDIR"]) > 0 :
-					self.Append(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "lib", module + ".framework", "Versions", version, "Headers")])
-				else :
-					self.Append(CPPFLAGS = [include_flag + os.path.join("/Library/Frameworks", module + ".framework", "Versions", version, "Headers")])
-				self.Append(LINKFLAGS=['-framework', module])
-		if 'QtOpenGL' in modules:
-			self.AppendUnique(LINKFLAGS="-F/System/Library/Frameworks")
-			self.Append(LINKFLAGS=['-framework', 'AGL']) #TODO ughly kludge to avoid quotes
-			self.Append(LINKFLAGS=['-framework', 'OpenGL'])
-		self["QT4_MOCCPPPATH"] = self["CPPPATH"]
+    import sys
+
+    validModules = [
+        'QtCore',
+        'QtGui',
+        'QtOpenGL',
+        'Qt3Support',
+        'QtAssistant',
+        'QtScript',
+        'QtDBus',
+        'QtSql',
+        # The next modules have not been tested yet so, please
+        # maybe they require additional work on non Linux platforms
+        'QtNetwork',
+        'QtSvg',
+        'QtTest',
+        'QtXml',
+        'QtXmlPatterns',
+        'QtUiTools',
+        'QtDesigner',
+        'QtDesignerComponents',
+        'QtWebKit',
+        'QtHelp',
+        'QtScript',
+
+        # Qt5 modules
+        'QtWidgets',
+        'QtMultimedia',
+        'QtWebKitWidgets',
+        'QtWebChannel',
+        ]
+    if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling :
+        validModules += ['QtX11Extras']
+    staticModules = [
+        'QtUiTools',
+    ]
+    invalidModules=[]
+    for module in modules:
+        if module not in validModules :
+            invalidModules.append(module)
+    if invalidModules :
+        raise Exception("Modules %s are not Qt4 modules. Valid Qt4 modules are: %s"% (
+            str(invalidModules),str(validModules)))
+
+    moduleDefines = {
+        'QtScript'   : ['QT_SCRIPT_LIB'],
+        'QtSvg'          : ['QT_SVG_LIB'],
+        'Qt3Support' : ['QT_QT3SUPPORT_LIB','QT3_SUPPORT'],
+        'QtSql'          : ['QT_SQL_LIB'],
+        'QtXml'          : ['QT_XML_LIB'],
+        'QtOpenGL'   : ['QT_OPENGL_LIB'],
+        'QtGui'          : ['QT_GUI_LIB'],
+        'QtWidgets'  : ['QT_WIDGETS_LIB'],
+        'QtWebKitWidgets' : [],
+        'QtNetwork'  : ['QT_NETWORK_LIB'],
+        'QtCore'         : ['QT_CORE_LIB'],
+    }
+    for module in modules :
+        try : self.AppendUnique(CPPDEFINES=moduleDefines[module])
+        except: pass
+    debugSuffix = ''
+
+
+    include_flag = "-I"
+    if os.path.basename(self["CC"]) in ("gcc", "clang"):
+        include_flag = "-isystem"
+
+
+    if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling :
+        if self["qt"]:
+            # The user specified qt path in config.py and we are going to use the
+            # installation under that location.
+            UsePkgConfig = False
+        else:
+            # The user did not specify a qt path in config py and we are going to
+            # ask pkg-config for the correct flags.
+            UsePkgConfig = True
+        if not UsePkgConfig:
+            if debug : debugSuffix = '_debug'
+            if version == '4' :
+                self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "include", "phonon")])
+            for module in modules :
+                module_str = module
+                if not version == '4' :
+                    module_str = module_str.replace('Qt', 'Qt5')
+                self.AppendUnique(LIBS=[module_str+debugSuffix])
+                self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])
+                self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include")])
+                self.AppendUnique(CPPFLAGS = [include_flag + os.path.join("$QTDIR","include", module)])
+            self["QT4_MOCCPPPATH"] = self["CPPPATH"]
+            return
+        else:
+            test_conf = self.Configure()
+            modules_str = " ".join(modules)
+            if not version == '4' :
+                modules_str = modules_str.replace('Qt', 'Qt5')
+
+            # Check if Qt is registered at pkg-config
+            ret = test_conf.TryAction('pkg-config --exists \'%s\'' % modules_str)[0]
+            if ret != 1:
+                test_conf.Finish()
+                raise Exception('Qt installation is missing packages. The following are required: %s' % modules_str)
+                return
+            test_conf.env.ParseConfig("pkg-config --cflags --libs " + modules_str)
+            self.AppendUnique(LIBS=test_conf.env["LIBS"], LIBPATH=test_conf.env["LIBPATH"], CPPPATH=test_conf.env["CPPPATH"])
+            self["QT4_MOCCPPPATH"] = self["CPPPATH"]
+            test_conf.Finish()
+            return
+
+    if sys.platform == "win32" or crosscompiling :
+        if crosscompiling:
+            transformedQtdir = transformToWinePath(self['QTDIR'])
+            self['QT4_MOC'] = "QTDIR=%s %s"%( transformedQtdir, self['QT4_MOC'])
+        self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")])
+        try: modules.remove("QtDBus")
+        except: pass
+        if debug : debugSuffix = 'd'
+        if "QtAssistant" in modules:
+            self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include","QtAssistant")])
+            modules.remove("QtAssistant")
+            modules.append("QtAssistantClient")
+        if version == '4' :
+            # FIXME: Phonon Hack
+            self.AppendUnique(LIBS=['phonon'+debugSuffix+version])
+            self.AppendUnique(LIBS=[lib+debugSuffix+version for lib in modules if lib not in staticModules])
+        else :
+            self.AppendUnique(LIBS=[lib.replace('Qt', 'Qt5') + debugSuffix for lib in modules if lib not in staticModules])
+        self.PrependUnique(LIBS=[lib+debugSuffix for lib in modules if lib in staticModules])
+        if 'QtOpenGL' in modules:
+            self.AppendUnique(LIBS=['opengl32'])
+        elif version == '5' :
+            self.Append(CPPDEFINES = ["QT_NO_OPENGL"])
+        self.AppendUnique(CPPPATH=[ '$QTDIR/include/'])
+        self.AppendUnique(CPPPATH=[ '$QTDIR/include/'+module for module in modules])
+        if crosscompiling :
+            self["QT4_MOCCPPPATH"] = [
+                path.replace('$QTDIR', transformedQtdir)
+                    for path in self['CPPPATH'] ]
+        else :
+            self["QT4_MOCCPPPATH"] = self["CPPPATH"]
+        self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')])
+        self.PrependUnique(LIBS=["shell32"])
+        return
+
+    if sys.platform=="darwin" :
+        if debug : debugSuffix = 'd'
+
+        if len(self["QTDIR"]) > 0 :
+            self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')])
+            self.AppendUnique(LINKFLAGS="-F$QTDIR/lib")
+            self.AppendUnique(CPPFLAGS="-iframework$QTDIR/lib")
+            self.AppendUnique(LINKFLAGS="-L$QTDIR/lib") #TODO clean!
+
+        # FIXME: Phonon Hack
+        if version == '4' :
+            self.Append(LINKFLAGS=['-framework', "phonon"])
+
+        for module in modules :
+            if module in staticModules :
+                self.AppendUnique(LIBS=[module+debugSuffix]) # TODO: Add the debug suffix
+                self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])
+            else :
+                if len(self["QTDIR"]) > 0 :
+                    self.Append(CPPFLAGS = [include_flag + os.path.join("$QTDIR", "lib", module + ".framework", "Versions", version, "Headers")])
+                else :
+                    self.Append(CPPFLAGS = [include_flag + os.path.join("/Library/Frameworks", module + ".framework", "Versions", version, "Headers")])
+                self.Append(LINKFLAGS=['-framework', module])
+        if 'QtOpenGL' in modules:
+            self.AppendUnique(LINKFLAGS="-F/System/Library/Frameworks")
+            self.Append(LINKFLAGS=['-framework', 'AGL']) #TODO ughly kludge to avoid quotes
+            self.Append(LINKFLAGS=['-framework', 'OpenGL'])
+        self["QT4_MOCCPPPATH"] = self["CPPPATH"]
 
 def exists(env):
-	return _detect(env)
+    return _detect(env)
diff --git a/BuildTools/SCons/Tools/textfile.py b/BuildTools/SCons/Tools/textfile.py
index b290125..89f8963 100644
--- a/BuildTools/SCons/Tools/textfile.py
+++ b/BuildTools/SCons/Tools/textfile.py
@@ -25,23 +25,23 @@
 __doc__ = """
 Textfile/Substfile builder for SCons.
 
-	Create file 'target' which typically is a textfile.  The 'source'
-	may be any combination of strings, Nodes, or lists of same.  A
-	'linesep' will be put between any part written and defaults to
-	os.linesep.
-
-	The only difference between the Textfile builder and the Substfile
-	builder is that strings are converted to Value() nodes for the
-	former and File() nodes for the latter.  To insert files in the
-	former or strings in the latter, wrap them in a File() or Value(),
-	respectively.
-
-	The values of SUBST_DICT first have any construction variables
-	expanded (its keys are not expanded).  If a value of SUBST_DICT is
-	a python callable function, it is called and the result is expanded
-	as the value.  Values are substituted in a "random" order; if any
-	substitution could be further expanded by another subsitition, it
-	is unpredictible whether the expansion will occur.
+    Create file 'target' which typically is a textfile.  The 'source'
+    may be any combination of strings, Nodes, or lists of same.  A
+    'linesep' will be put between any part written and defaults to
+    os.linesep.
+
+    The only difference between the Textfile builder and the Substfile
+    builder is that strings are converted to Value() nodes for the
+    former and File() nodes for the latter.  To insert files in the
+    former or strings in the latter, wrap them in a File() or Value(),
+    respectively.
+
+    The values of SUBST_DICT first have any construction variables
+    expanded (its keys are not expanded).  If a value of SUBST_DICT is
+    a python callable function, it is called and the result is expanded
+    as the value.  Values are substituted in a "random" order; if any
+    substitution could be further expanded by another subsitition, it
+    is unpredictible whether the expansion will occur.
 """
 
 __revision__ = "src/engine/SCons/Tool/textfile.py 5357 2011/09/09 21:31:03 bdeegan"
@@ -56,117 +56,117 @@ from SCons.Node.Python import Value
 from SCons.Util import is_String, is_Sequence, is_Dict
 
 def _do_subst(node, subs):
-	"""
-	Fetch the node contents and replace all instances of the keys with
-	their values.  For example, if subs is
-		{'%VERSION%': '1.2345', '%BASE%': 'MyProg', '%prefix%': '/bin'},
-	then all instances of %VERSION% in the file will be replaced with
-	1.2345 and so forth.
-	"""
-	contents = node.get_text_contents()
-	if not subs: return contents
-	for (k,v) in subs:
-		contents = re.sub(k, v, contents)
-	return contents
+    """
+    Fetch the node contents and replace all instances of the keys with
+    their values.  For example, if subs is
+        {'%VERSION%': '1.2345', '%BASE%': 'MyProg', '%prefix%': '/bin'},
+    then all instances of %VERSION% in the file will be replaced with
+    1.2345 and so forth.
+    """
+    contents = node.get_text_contents()
+    if not subs: return contents
+    for (k,v) in subs:
+        contents = re.sub(k, v, contents)
+    return contents
 
 def _action(target, source, env):
-	# prepare the line separator
-	linesep = env['LINESEPARATOR']
-	if linesep is None:
-		linesep = os.linesep
-	elif is_String(linesep):
-		pass
-	elif isinstance(linesep, Value):
-		linesep = linesep.get_text_contents()
-	else:
-		raise SCons.Errors.UserError(
-						   'unexpected type/class for LINESEPARATOR: %s'
-										 % repr(linesep), None)
-
-	# create a dictionary to use for the substitutions
-	if 'SUBST_DICT' not in env:
-		subs = None    # no substitutions
-	else:
-		d = env['SUBST_DICT']
-		if is_Dict(d):
-			d = list(d.items())
-		elif is_Sequence(d):
-			pass
-		else:
-			raise SCons.Errors.UserError('SUBST_DICT must be dict or sequence')
-		subs = []
-		for (k,v) in d:
-			if callable(v):
-				v = v()
-			if is_String(v):
-				v = env.subst(v)
-			else:
-				v = str(v)
-			subs.append((k,v))
-
-	# write the file
-	try:
-		fd = open(target[0].get_path(), "wb")
-	except (OSError,IOError), e:
-		raise SCons.Errors.UserError("Can't write target file %s" % target[0])
-	# separate lines by 'linesep' only if linesep is not empty
-	lsep = None
-	for s in source:
-		if lsep: fd.write(lsep)
-		fd.write(_do_subst(s, subs))
-		lsep = linesep
-	fd.close()
+    # prepare the line separator
+    linesep = env['LINESEPARATOR']
+    if linesep is None:
+        linesep = os.linesep
+    elif is_String(linesep):
+        pass
+    elif isinstance(linesep, Value):
+        linesep = linesep.get_text_contents()
+    else:
+        raise SCons.Errors.UserError(
+                           'unexpected type/class for LINESEPARATOR: %s'
+                                         % repr(linesep), None)
+
+    # create a dictionary to use for the substitutions
+    if 'SUBST_DICT' not in env:
+        subs = None    # no substitutions
+    else:
+        d = env['SUBST_DICT']
+        if is_Dict(d):
+            d = list(d.items())
+        elif is_Sequence(d):
+            pass
+        else:
+            raise SCons.Errors.UserError('SUBST_DICT must be dict or sequence')
+        subs = []
+        for (k,v) in d:
+            if callable(v):
+                v = v()
+            if is_String(v):
+                v = env.subst(v)
+            else:
+                v = str(v)
+            subs.append((k,v))
+
+    # write the file
+    try:
+        fd = open(target[0].get_path(), "wb")
+    except (OSError,IOError), e:
+        raise SCons.Errors.UserError("Can't write target file %s" % target[0])
+    # separate lines by 'linesep' only if linesep is not empty
+    lsep = None
+    for s in source:
+        if lsep: fd.write(lsep)
+        fd.write(_do_subst(s, subs))
+        lsep = linesep
+    fd.close()
 
 def _strfunc(target, source, env):
-	return "Creating '%s'" % target[0]
+    return "Creating '%s'" % target[0]
 
 def _convert_list_R(newlist, sources):
-	for elem in sources:
-		if is_Sequence(elem):
-			_convert_list_R(newlist, elem)
-		elif isinstance(elem, Node):
-			newlist.append(elem)
-		else:
-			newlist.append(Value(elem))
+    for elem in sources:
+        if is_Sequence(elem):
+            _convert_list_R(newlist, elem)
+        elif isinstance(elem, Node):
+            newlist.append(elem)
+        else:
+            newlist.append(Value(elem))
 def _convert_list(target, source, env):
-	if len(target) != 1:
-		raise SCons.Errors.UserError("Only one target file allowed")
-	newlist = []
-	_convert_list_R(newlist, source)
-	return target, newlist
+    if len(target) != 1:
+        raise SCons.Errors.UserError("Only one target file allowed")
+    newlist = []
+    _convert_list_R(newlist, source)
+    return target, newlist
 
 _common_varlist = ['SUBST_DICT', 'LINESEPARATOR']
 
 _text_varlist = _common_varlist + ['TEXTFILEPREFIX', 'TEXTFILESUFFIX']
 _text_builder = SCons.Builder.Builder(
-	action = SCons.Action.Action(_action, _strfunc, varlist = _text_varlist),
-	source_factory = Value,
-	emitter = _convert_list,
-	prefix = '$TEXTFILEPREFIX',
-	suffix = '$TEXTFILESUFFIX',
-	)
+    action = SCons.Action.Action(_action, _strfunc, varlist = _text_varlist),
+    source_factory = Value,
+    emitter = _convert_list,
+    prefix = '$TEXTFILEPREFIX',
+    suffix = '$TEXTFILESUFFIX',
+    )
 
 _subst_varlist = _common_varlist + ['SUBSTFILEPREFIX', 'TEXTFILESUFFIX']
 _subst_builder = SCons.Builder.Builder(
-	action = SCons.Action.Action(_action, _strfunc, varlist = _subst_varlist),
-	source_factory = SCons.Node.FS.File,
-	emitter = _convert_list,
-	prefix = '$SUBSTFILEPREFIX',
-	suffix = '$SUBSTFILESUFFIX',
-	src_suffix = ['.in'],
-	)
+    action = SCons.Action.Action(_action, _strfunc, varlist = _subst_varlist),
+    source_factory = SCons.Node.FS.File,
+    emitter = _convert_list,
+    prefix = '$SUBSTFILEPREFIX',
+    suffix = '$SUBSTFILESUFFIX',
+    src_suffix = ['.in'],
+    )
 
 def generate(env):
-	env['LINESEPARATOR'] = os.linesep
-	env['BUILDERS']['MyTextfile'] = _text_builder
-	env['TEXTFILEPREFIX'] = ''
-	env['TEXTFILESUFFIX'] = '.txt'
-	env['BUILDERS']['MySubstfile'] = _subst_builder
-	env['SUBSTFILEPREFIX'] = ''
-	env['SUBSTFILESUFFIX'] = ''
+    env['LINESEPARATOR'] = os.linesep
+    env['BUILDERS']['MyTextfile'] = _text_builder
+    env['TEXTFILEPREFIX'] = ''
+    env['TEXTFILESUFFIX'] = '.txt'
+    env['BUILDERS']['MySubstfile'] = _subst_builder
+    env['SUBSTFILEPREFIX'] = ''
+    env['SUBSTFILESUFFIX'] = ''
 
 def exists(env):
-	return 1
+    return 1
 
 # Local Variables:
 # tab-width:4
diff --git a/BuildTools/SCons/Tools/wix.py b/BuildTools/SCons/Tools/wix.py
index 705d249..907b6d9 100644
--- a/BuildTools/SCons/Tools/wix.py
+++ b/BuildTools/SCons/Tools/wix.py
@@ -3,49 +3,49 @@ import SCons.Util
 from subprocess import call
 
 def generate(env) :
-	wixPath = env.get("wix_bindir", "")
-	if len(wixPath) > 0 and wixPath[-1] != "\\":
-		wixPath += "\\"
-	env['WIX_HEAT'] = wixPath + 'heat.exe'
-	env['WIX_HEAT_OPTIONS'] = '-nologo -ag -sfrag -suid -template fragment -dr ProgramFilesFolder'
-	env['WIX_CANDLE'] = wixPath + 'candle.exe'
-	env['WIX_CANDLE_OPTIONS'] = '-nologo'
-	env['WIX_LIGHT'] = wixPath + 'light.exe'
-	env['WIX_LIGHT_OPTIONS'] = '-nologo -ext WixUIExtension'
-
-	def WiX_IncludeScanner(source, env, path, arg):
-		wixIncludeRegexp = re.compile(r'^\s*\<\?include (\S+.wxs)\s*\?\>\S*', re.M)
-		contents = source.get_contents()
-		includes = wixIncludeRegexp.findall(contents)
-		return [ "" + include for include in includes ]
-
-	heat_builder = SCons.Builder.Builder(
- 		action = '"$WIX_HEAT" dir "$WIX_SOURCE_OBJECT_DIR" -cg Files $WIX_HEAT_OPTIONS -o ${TARGET} -t Swift\\Packaging\\WiX\\include.xslt',
-		suffix = '.wxi')
-
-
-	candle_scanner = env.Scanner(name = 'wixincludefile',
-		function = WiX_IncludeScanner,
-		argument = None,
-		skeys = ['.wxs'])
-
-	candle_builder = SCons.Builder.Builder(
- 		action = '"$WIX_CANDLE" $WIX_CANDLE_OPTIONS ${SOURCES} -o ${TARGET}',
-		src_suffix = '.wxs',
-		suffix = '.wixobj',
-		source_scanner = candle_scanner,
- 		src_builder = heat_builder)
-
-
-	light_builder = SCons.Builder.Builder(
- 		action = '"$WIX_LIGHT" $WIX_LIGHT_OPTIONS -b "$WIX_SOURCE_OBJECT_DIR" ${SOURCES} -o ${TARGET}',
-		src_suffix = '.wixobj',
- 		src_builder = candle_builder)
-
-	env['BUILDERS']['WiX_Heat'] = heat_builder
-	env['BUILDERS']['WiX_Candle'] = candle_builder
-	env['BUILDERS']['WiX_Light'] = light_builder
+    wixPath = env.get("wix_bindir", "")
+    if len(wixPath) > 0 and wixPath[-1] != "\\":
+        wixPath += "\\"
+    env['WIX_HEAT'] = wixPath + 'heat.exe'
+    env['WIX_HEAT_OPTIONS'] = '-nologo -ag -sfrag -suid -template fragment -dr ProgramFilesFolder'
+    env['WIX_CANDLE'] = wixPath + 'candle.exe'
+    env['WIX_CANDLE_OPTIONS'] = '-nologo'
+    env['WIX_LIGHT'] = wixPath + 'light.exe'
+    env['WIX_LIGHT_OPTIONS'] = '-nologo -ext WixUIExtension'
+
+    def WiX_IncludeScanner(source, env, path, arg):
+        wixIncludeRegexp = re.compile(r'^\s*\<\?include (\S+.wxs)\s*\?\>\S*', re.M)
+        contents = source.get_contents()
+        includes = wixIncludeRegexp.findall(contents)
+        return [ "" + include for include in includes ]
+
+    heat_builder = SCons.Builder.Builder(
+        action = '"$WIX_HEAT" dir "$WIX_SOURCE_OBJECT_DIR" -cg Files $WIX_HEAT_OPTIONS -o ${TARGET} -t Swift\\Packaging\\WiX\\include.xslt',
+        suffix = '.wxi')
+
+
+    candle_scanner = env.Scanner(name = 'wixincludefile',
+        function = WiX_IncludeScanner,
+        argument = None,
+        skeys = ['.wxs'])
+
+    candle_builder = SCons.Builder.Builder(
+        action = '"$WIX_CANDLE" $WIX_CANDLE_OPTIONS ${SOURCES} -o ${TARGET}',
+        src_suffix = '.wxs',
+        suffix = '.wixobj',
+        source_scanner = candle_scanner,
+        src_builder = heat_builder)
+
+
+    light_builder = SCons.Builder.Builder(
+        action = '"$WIX_LIGHT" $WIX_LIGHT_OPTIONS -b "$WIX_SOURCE_OBJECT_DIR" ${SOURCES} -o ${TARGET}',
+        src_suffix = '.wixobj',
+        src_builder = candle_builder)
+
+    env['BUILDERS']['WiX_Heat'] = heat_builder
+    env['BUILDERS']['WiX_Candle'] = candle_builder
+    env['BUILDERS']['WiX_Light'] = light_builder
 
 def exists(env) :
-	return True
+    return True
 
diff --git a/BuildTools/SCons/Version.py b/BuildTools/SCons/Version.py
index 6482664..d34c2a7 100644
--- a/BuildTools/SCons/Version.py
+++ b/BuildTools/SCons/Version.py
@@ -1,68 +1,68 @@
 import subprocess, os, datetime, re, os.path
 
 def getGitBuildVersion(root, project) :
-	tag = git("describe --tags --exact --match \"" + project + "-*\"", root)
-	if tag :
-		return tag.rstrip()[len(project)+1:]
-	tag = git("describe --tags --match \"" + project + "-*\"", root)
-	if tag :
-		m = re.match(project + "-(.*)-(.*)-(.*)", tag)
-		if m :
-			return m.group(1) + "-dev" + m.group(2)
-	return None
+    tag = git("describe --tags --exact --match \"" + project + "-*\"", root)
+    if tag :
+        return tag.rstrip()[len(project)+1:]
+    tag = git("describe --tags --match \"" + project + "-*\"", root)
+    if tag :
+        m = re.match(project + "-(.*)-(.*)-(.*)", tag)
+        if m :
+            return m.group(1) + "-dev" + m.group(2)
+    return None
 
 def git(cmd, root) :
-	full_cmd = "git " + cmd
-	p = subprocess.Popen(full_cmd, cwd=root, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
-	gitVersion = p.stdout.read()
-	# error = p.stderr.read()
-	# if error:
-	#   print "Git error: " + error
-	p.stdin.close()
-	if p.wait() == 0 :
-		return gitVersion
-	return None
+    full_cmd = "git " + cmd
+    p = subprocess.Popen(full_cmd, cwd=root, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
+    gitVersion = p.stdout.read()
+    # error = p.stderr.read()
+    # if error:
+    #   print "Git error: " + error
+    p.stdin.close()
+    if p.wait() == 0 :
+        return gitVersion
+    return None
 
 def getBuildVersion(root, project) :
-	versionFilename = os.path.join(root, "VERSION." + project)
-	if os.path.isfile(versionFilename) :
-		f = open(versionFilename)
-		version = f.read().strip()
-		f.close()
-		return version
+    versionFilename = os.path.join(root, "VERSION." + project)
+    if os.path.isfile(versionFilename) :
+        f = open(versionFilename)
+        version = f.read().strip()
+        f.close()
+        return version
 
-	gitVersion = getGitBuildVersion(root, project)
-	if gitVersion :
-		return gitVersion
+    gitVersion = getGitBuildVersion(root, project)
+    if gitVersion :
+        return gitVersion
 
-	return datetime.date.today().strftime("%Y%m%d")
+    return datetime.date.today().strftime("%Y%m%d")
 
 def convertToWindowsVersion(version) :
-	version_match = re.match("(\d+)\.(\d+)(.*)", version)
-	major = version_match and int(version_match.group(1)) or 0
-	minor = version_match and int(version_match.group(2)) or 0
-	if version_match and len(version_match.group(3)) == 0 :
-		patch = 60000
-	else :
-		match = re.match("^beta(\d+)(.*)", version_match.group(3))
-		build_string = ""
-		if match :
-			patch = 1000*int(match.group(1))
-			build_string = match.group(2)
-		else :
-			rc_match = re.match("^rc(\d+)(.*)", version_match.group(3))
-			if rc_match :
-				patch = 10000*int(rc_match.group(1))
-				build_string = rc_match.group(2)
-			else :
-				patch = 0
-				alpha_match = re.match("^alpha(.*)", version_match.group(3))
-				if alpha_match :
-					build_string = alpha_match.group(1)
+    version_match = re.match("(\d+)\.(\d+)(.*)", version)
+    major = version_match and int(version_match.group(1)) or 0
+    minor = version_match and int(version_match.group(2)) or 0
+    if version_match and len(version_match.group(3)) == 0 :
+        patch = 60000
+    else :
+        match = re.match("^beta(\d+)(.*)", version_match.group(3))
+        build_string = ""
+        if match :
+            patch = 1000*int(match.group(1))
+            build_string = match.group(2)
+        else :
+            rc_match = re.match("^rc(\d+)(.*)", version_match.group(3))
+            if rc_match :
+                patch = 10000*int(rc_match.group(1))
+                build_string = rc_match.group(2)
+            else :
+                patch = 0
+                alpha_match = re.match("^alpha(.*)", version_match.group(3))
+                if alpha_match :
+                    build_string = alpha_match.group(1)
 
-		if len(build_string) > 0 :
-			build_match = re.match("^-dev(\d+)", build_string)
-			if build_match :
-				patch += int(build_match.group(1))
+        if len(build_string) > 0 :
+            build_match = re.match("^-dev(\d+)", build_string)
+            if build_match :
+                patch += int(build_match.group(1))
 
-	return (major, minor, patch)
+    return (major, minor, patch)
diff --git a/BuildTools/UpdateDebianChangelog.py b/BuildTools/UpdateDebianChangelog.py
index 0693461..1d0e3ea 100755
--- a/BuildTools/UpdateDebianChangelog.py
+++ b/BuildTools/UpdateDebianChangelog.py
@@ -14,28 +14,28 @@ project = ""
 last_version = ""
 m = re.match("([\w-]+) \((.*)-\d+\)", last_version_line)
 if m :
-	project = m.group(1)
-	last_version = m.group(2)
+    project = m.group(1)
+    last_version = m.group(2)
 
 if project == "" :
-	project="swift-im"
+    project="swift-im"
 
 if "dev" in version :
-	distribution = "development"
+    distribution = "development"
 elif "beta" in version or "rc" in version :
-	distribution = "beta development"
+    distribution = "beta development"
 else :
-	distribution = "release beta development"
+    distribution = "release beta development"
 
 if last_version != version :
-	changelog = open(sys.argv[1])
-	changelog_data = changelog.read()
-	changelog.close()
-	changelog = open(sys.argv[1], "w")
-	changelog.write(project + " (" + version + "-1)" + " " + distribution + "; urgency=low\n\n")
-	changelog.write("  * Upstream development snapshot\n\n")
-	changelog.write(" -- Swift Package Maintainer <packages@swift.im>  " + email.utils.formatdate() + "\n")
-	changelog.write("\n")
-	changelog.write(changelog_data)
-	changelog.close()
+    changelog = open(sys.argv[1])
+    changelog_data = changelog.read()
+    changelog.close()
+    changelog = open(sys.argv[1], "w")
+    changelog.write(project + " (" + version + "-1)" + " " + distribution + "; urgency=low\n\n")
+    changelog.write("  * Upstream development snapshot\n\n")
+    changelog.write(" -- Swift Package Maintainer <packages@swift.im>  " + email.utils.formatdate() + "\n")
+    changelog.write("\n")
+    changelog.write(changelog_data)
+    changelog.close()
 
diff --git a/BuildTools/scons2ninja.py b/BuildTools/scons2ninja.py
index 5d084cd..91cd3cc 100755
--- a/BuildTools/scons2ninja.py
+++ b/BuildTools/scons2ninja.py
@@ -24,202 +24,202 @@ SCONS_ARGS = ' '.join(sys.argv[1:])
 BINARY_FLAGS = ["-framework", "-arch", "-x", "--output-format", "-isystem", "-include"]
 
 if sys.platform == 'win32' :
-	LIB_PREFIX = ""
-	LIB_SUFFIX = ""
-	EXE_SUFFIX = ".exe"
+    LIB_PREFIX = ""
+    LIB_SUFFIX = ""
+    EXE_SUFFIX = ".exe"
 else :
-	LIB_PREFIX = "lib"
-	LIB_SUFFIX = ".a"
-	EXE_SUFFIX = ""
+    LIB_PREFIX = "lib"
+    LIB_SUFFIX = ".a"
+    EXE_SUFFIX = ""
 
 def is_regexp(x) :
-	return 'match' in dir(x)
+    return 'match' in dir(x)
 
 def is_list(l) :
-	return type(l) is list
+    return type(l) is list
 
 def escape(s) :
-	return s.replace(' ', '$ ').replace(':', '$:')
+    return s.replace(' ', '$ ').replace(':', '$:')
 
 def quote_spaces(s) :
-	if ' ' in s :
-		return '"' + s + '"'
-	else :
-		return s
+    if ' ' in s :
+        return '"' + s + '"'
+    else :
+        return s
 
 def to_list(l) :
-	if not l :
-		return []
-	if is_list(l) :
-		return l
-	return [l]
+    if not l :
+        return []
+    if is_list(l) :
+        return l
+    return [l]
 
 def partition(l, f) :
-	x = []
-	y = []
-	for v in l :
-		if f(v) :
-			x.append(v)
-		else :
-			y.append(v)
-	return (x, y)
+    x = []
+    y = []
+    for v in l :
+        if f(v) :
+            x.append(v)
+        else :
+            y.append(v)
+    return (x, y)
 
 def get_unary_flags(prefix, flags) :
-	return [x[len(prefix):] for x in flags if x.lower().startswith(prefix.lower())]
+    return [x[len(prefix):] for x in flags if x.lower().startswith(prefix.lower())]
 
 def extract_unary_flags(prefix, flags) :
-	f1, f2 = partition(flags, lambda x : x.lower().startswith(prefix.lower()))
-	return ([f[len(prefix):] for f in f1], f2)
+    f1, f2 = partition(flags, lambda x : x.lower().startswith(prefix.lower()))
+    return ([f[len(prefix):] for f in f1], f2)
 
 def extract_unary_flag(prefix, flags) :
-	flag, flags = extract_unary_flags(prefix, flags)
-	return (flag[0], flags)
+    flag, flags = extract_unary_flags(prefix, flags)
+    return (flag[0], flags)
 
 def extract_binary_flag(prefix, flags) :
-	i = flags.index(prefix)
-	flag = flags[i + 1]
-	del flags[i]
-	del flags[i]
-	return (flag, flags)
+    i = flags.index(prefix)
+    flag = flags[i + 1]
+    del flags[i]
+    del flags[i]
+    return (flag, flags)
 
 def get_non_flags(flags) :
-	skip = False
-	result = []
-	for f in flags :
-		if skip :
-			skip = False
-		elif f in BINARY_FLAGS :
-			skip = True
-		elif not f.startswith("/") and not f.startswith("-") :
-			result.append(f)
-	return result
+    skip = False
+    result = []
+    for f in flags :
+        if skip :
+            skip = False
+        elif f in BINARY_FLAGS :
+            skip = True
+        elif not f.startswith("/") and not f.startswith("-") :
+            result.append(f)
+    return result
 
 def extract_non_flags(flags) :
-	non_flags = get_non_flags(flags)
-	return (non_flags, filter(lambda x : x not in non_flags, flags))
+    non_flags = get_non_flags(flags)
+    return (non_flags, filter(lambda x : x not in non_flags, flags))
 
 def get_dependencies(target, build_targets) :
-	result = []
-	queue = list(dependencies.get(target, []))
-	while len(queue) > 0 :
-		n = queue.pop()
-		# Filter out Value() results
-		if n in build_targets or os.path.exists(n) :
-			result.append(n)
-			queue += list(dependencies.get(n, []))
-	return result
+    result = []
+    queue = list(dependencies.get(target, []))
+    while len(queue) > 0 :
+        n = queue.pop()
+        # Filter out Value() results
+        if n in build_targets or os.path.exists(n) :
+            result.append(n)
+            queue += list(dependencies.get(n, []))
+    return result
 
 def get_built_libs(libs, libpaths, outputs) :
-	canonical_outputs = [os.path.abspath(p) for p in outputs]
-	result = []
-	for libpath in libpaths :
-		for lib in libs :
-			lib_libpath = os.path.join(libpath, LIB_PREFIX + lib + LIB_SUFFIX)
-			if os.path.abspath(lib_libpath) in canonical_outputs :
-				result.append(lib_libpath)
-	return result
+    canonical_outputs = [os.path.abspath(p) for p in outputs]
+    result = []
+    for libpath in libpaths :
+        for lib in libs :
+            lib_libpath = os.path.join(libpath, LIB_PREFIX + lib + LIB_SUFFIX)
+            if os.path.abspath(lib_libpath) in canonical_outputs :
+                result.append(lib_libpath)
+    return result
 
 def parse_tool_command(line) :
-	command = shlex.split(line, False, False if sys.platform == 'win32' else True)
-	flags = command[1:]
-	tool = os.path.splitext(os.path.basename(command[0]))[0]
-	if tool.startswith('clang++') or tool.startswith('g++') :
-		tool = "cxx"
-	elif tool.startswith('clang') or tool.startswith('gcc') :
-		tool = "cc"
-	if tool in ["cc", "cxx"] and not "-c" in flags :
-		tool = "glink"
-	tool = tool.replace('-qt4', '')
-	return tool, command, flags
+    command = shlex.split(line, False, False if sys.platform == 'win32' else True)
+    flags = command[1:]
+    tool = os.path.splitext(os.path.basename(command[0]))[0]
+    if tool.startswith('clang++') or tool.startswith('g++') :
+        tool = "cxx"
+    elif tool.startswith('clang') or tool.startswith('gcc') :
+        tool = "cc"
+    if tool in ["cc", "cxx"] and not "-c" in flags :
+        tool = "glink"
+    tool = tool.replace('-qt4', '')
+    return tool, command, flags
 
 def rglob(pattern, root = '.') :
-	return [os.path.join(path, f) for path, dirs, files in os.walk(root) for f in fnmatch.filter(files, pattern)]
+    return [os.path.join(path, f) for path, dirs, files in os.walk(root) for f in fnmatch.filter(files, pattern)]
 
 ################################################################################
 # Helper for building Ninja files
 ################################################################################
 
 class NinjaBuilder :
-	def __init__(self) :
-		self._header = ""
-		self.variables = ""
-		self.rules = ""
-		self._build = ""
-		self.pools = ""
-		self._flags = {}
-		self.targets = []
-
-	def header(self, text) :
-		self._header += text + "\n"
-
-	def rule(self, name, **kwargs) :
-		self.rules += "rule " + name + "\n"
-		for k, v in kwargs.iteritems() :
-			self.rules += "  " + str(k) + " = " + str(v) + "\n"
-		self.rules += "\n"
-
-	def pool(self, name, **kwargs) :
-		self.pools += "pool " + name + "\n"
-		for k, v in kwargs.iteritems() :
-			self.pools += "  " + str(k) + " = " + str(v) + "\n"
-		self.pools += "\n"
-
-	def variable(self, name, value) :
-		self.variables += str(name) + " = " + str(value) + "\n"
-
-	def build(self, target, rule, sources = None, **kwargs) :
-		self._build += "build " + self.to_string(target) + ": " + rule
-		if sources :
-			self._build += " " + self.to_string(sources)
-		if 'deps' in kwargs and kwargs['deps'] :
-			self._build += " | " + self.to_string(kwargs["deps"])
-		if 'order_deps' in kwargs :
-			self._build += " || " + self.to_string(kwargs['order_deps'])
-		self._build += "\n"
-		for var, value in kwargs.iteritems() :
-			if var in ['deps', 'order_deps'] :
-				continue
-			value = self.to_string(value, quote = True)
-			if var.endswith("flags") :
-				value = self.get_flags_variable(var, value)
-			self._build += "  " + var + " = " + value + "\n"
-		self.targets += to_list(target)
-
-	def header_targets(self) :
-		return [x for x in self.targets if x.endswith('.h') or x.endswith('.hh')]
-
-	def serialize(self) :
-		result = ""
-		result += self._header + "\n"
-		result += self.variables + "\n"
-		for prefix in self._flags.values() :
-			for k, v in prefix.iteritems() :
-				result += v + " = " + k + "\n"
-		result += "\n"
-		result += self.pools + "\n"
-		result += self.rules + "\n"
-		result += self._build + "\n"
-		return result
-
-	def to_string(self, lst, quote = False) :
-		if is_list(lst) :
-			if quote :
-				return ' '.join([quote_spaces(x) for x in lst]) 
-			else :
-				return ' '.join([escape(x) for x in lst]) 
-		if is_regexp(lst) :
-			return ' '.join([escape(x) for x in self.targets if lst.match(x)])
-		return escape(lst)
-
-	def get_flags_variable(self, flags_type, flags) :
-		if len(flags) == 0 :
-			return ''
-		if flags_type not in self._flags :
-			self._flags[flags_type] = {}
-		type_flags = self._flags[flags_type]
-		if flags not in type_flags :
-			type_flags[flags] = flags_type + "_" + str(len(type_flags))
-		return "$" + type_flags[flags]
+    def __init__(self) :
+        self._header = ""
+        self.variables = ""
+        self.rules = ""
+        self._build = ""
+        self.pools = ""
+        self._flags = {}
+        self.targets = []
+
+    def header(self, text) :
+        self._header += text + "\n"
+
+    def rule(self, name, **kwargs) :
+        self.rules += "rule " + name + "\n"
+        for k, v in kwargs.iteritems() :
+            self.rules += "  " + str(k) + " = " + str(v) + "\n"
+        self.rules += "\n"
+
+    def pool(self, name, **kwargs) :
+        self.pools += "pool " + name + "\n"
+        for k, v in kwargs.iteritems() :
+            self.pools += "  " + str(k) + " = " + str(v) + "\n"
+        self.pools += "\n"
+
+    def variable(self, name, value) :
+        self.variables += str(name) + " = " + str(value) + "\n"
+
+    def build(self, target, rule, sources = None, **kwargs) :
+        self._build += "build " + self.to_string(target) + ": " + rule
+        if sources :
+            self._build += " " + self.to_string(sources)
+        if 'deps' in kwargs and kwargs['deps'] :
+            self._build += " | " + self.to_string(kwargs["deps"])
+        if 'order_deps' in kwargs :
+            self._build += " || " + self.to_string(kwargs['order_deps'])
+        self._build += "\n"
+        for var, value in kwargs.iteritems() :
+            if var in ['deps', 'order_deps'] :
+                continue
+            value = self.to_string(value, quote = True)
+            if var.endswith("flags") :
+                value = self.get_flags_variable(var, value)
+            self._build += "  " + var + " = " + value + "\n"
+        self.targets += to_list(target)
+
+    def header_targets(self) :
+        return [x for x in self.targets if x.endswith('.h') or x.endswith('.hh')]
+
+    def serialize(self) :
+        result = ""
+        result += self._header + "\n"
+        result += self.variables + "\n"
+        for prefix in self._flags.values() :
+            for k, v in prefix.iteritems() :
+                result += v + " = " + k + "\n"
+        result += "\n"
+        result += self.pools + "\n"
+        result += self.rules + "\n"
+        result += self._build + "\n"
+        return result
+
+    def to_string(self, lst, quote = False) :
+        if is_list(lst) :
+            if quote :
+                return ' '.join([quote_spaces(x) for x in lst]) 
+            else :
+                return ' '.join([escape(x) for x in lst]) 
+        if is_regexp(lst) :
+            return ' '.join([escape(x) for x in self.targets if lst.match(x)])
+        return escape(lst)
+
+    def get_flags_variable(self, flags_type, flags) :
+        if len(flags) == 0 :
+            return ''
+        if flags_type not in self._flags :
+            self._flags[flags_type] = {}
+        type_flags = self._flags[flags_type]
+        if flags not in type_flags :
+            type_flags[flags] = flags_type + "_" + str(len(type_flags))
+        return "$" + type_flags[flags]
 
 
 ################################################################################
@@ -231,7 +231,7 @@ scons_cmd = "scons"
 scons_dependencies = ['SConstruct'] + rglob('SConscript')
 
 def ninja_custom_command(ninja, line) :
-	return False
+    return False
 
 CONFIGURATION_FILE = '.scons2ninja.conf'
 execfile(CONFIGURATION_FILE)
@@ -248,104 +248,104 @@ ninja = NinjaBuilder()
 ninja.pool('scons_pool', depth = 1)
 
 if sys.platform == 'win32' :
-	ninja.rule('cl', 
-		deps = 'msvc', 
-		command = '$cl /showIncludes $clflags -c $in /Fo$out',
-		description = 'CXX $out')
-
-	ninja.rule('link',
-		command = '$link $in $linkflags $libs /out:$out',
-		description = 'LINK $out')
-
-	ninja.rule('link_mt',
-		command = '$link $in $linkflags $libs /out:$out ; $mt $mtflags',
-		description = 'LINK $out')
-
-	ninja.rule('lib',
-		command = '$lib $libflags /out:$out $in',
-		description = 'AR $out')
-
-	ninja.rule('rc',
-		command = '$rc $rcflags /Fo$out $in',
-		description = 'RC $out')
-
-	# SCons doesn't touch files if they didn't change, which makes
-	# ninja rebuild the file over and over again. There's no touch on Windows :(
-	# Could implement it with a script, but for now, delete the file if
-	# this problem occurs. I'll fix it if it occurs too much.
-	ninja.rule('scons',
-		command = scons_cmd + " ${scons_args} $out",
-		pool = 'scons_pool',
-		description = 'GEN $out')
-
-	ninja.rule('install', command = 'cmd /c copy $in $out')
-	ninja.rule('run', command = '$in')
+    ninja.rule('cl', 
+        deps = 'msvc', 
+        command = '$cl /showIncludes $clflags -c $in /Fo$out',
+        description = 'CXX $out')
+
+    ninja.rule('link',
+        command = '$link $in $linkflags $libs /out:$out',
+        description = 'LINK $out')
+
+    ninja.rule('link_mt',
+        command = '$link $in $linkflags $libs /out:$out ; $mt $mtflags',
+        description = 'LINK $out')
+
+    ninja.rule('lib',
+        command = '$lib $libflags /out:$out $in',
+        description = 'AR $out')
+
+    ninja.rule('rc',
+        command = '$rc $rcflags /Fo$out $in',
+        description = 'RC $out')
+
+    # SCons doesn't touch files if they didn't change, which makes
+    # ninja rebuild the file over and over again. There's no touch on Windows :(
+    # Could implement it with a script, but for now, delete the file if
+    # this problem occurs. I'll fix it if it occurs too much.
+    ninja.rule('scons',
+        command = scons_cmd + " ${scons_args} $out",
+        pool = 'scons_pool',
+        description = 'GEN $out')
+
+    ninja.rule('install', command = 'cmd /c copy $in $out')
+    ninja.rule('run', command = '$in')
 else :
-	ninja.rule('cxx',
-		deps = 'gcc',
-		depfile = '$out.d',
-		command = '$cxx -MMD -MF $out.d $cxxflags -c $in -o $out',
-		description = 'CXX $out')
+    ninja.rule('cxx',
+        deps = 'gcc',
+        depfile = '$out.d',
+        command = '$cxx -MMD -MF $out.d $cxxflags -c $in -o $out',
+        description = 'CXX $out')
 
-	ninja.rule('cc',
-		deps = 'gcc',
-		depfile = '$out.d',
-		command = '$cc -MMD -MF $out.d $ccflags -c $in -o $out',
-		description = 'CC $out')
+    ninja.rule('cc',
+        deps = 'gcc',
+        depfile = '$out.d',
+        command = '$cc -MMD -MF $out.d $ccflags -c $in -o $out',
+        description = 'CC $out')
 
-	ninja.rule('link',
-		command = '$glink -o $out $in $linkflags',
-		description = 'LINK $out')
+    ninja.rule('link',
+        command = '$glink -o $out $in $linkflags',
+        description = 'LINK $out')
 
-	ninja.rule('ar',
-		command = 'ar $arflags $out $in && ranlib $out',
-		description = 'AR $out')
+    ninja.rule('ar',
+        command = 'ar $arflags $out $in && ranlib $out',
+        description = 'AR $out')
 
-	# SCons doesn't touch files if they didn't change, which makes
-	# ninja rebuild the file over and over again. Touching solves this.
-	ninja.rule('scons',
-		command = scons_cmd + " $out && touch $out",
-		pool = 'scons_pool',
-		description = 'GEN $out')
+    # SCons doesn't touch files if they didn't change, which makes
+    # ninja rebuild the file over and over again. Touching solves this.
+    ninja.rule('scons',
+        command = scons_cmd + " $out && touch $out",
+        pool = 'scons_pool',
+        description = 'GEN $out')
 
-	ninja.rule('install', command = 'install $in $out')
-	ninja.rule('run', command = './$in')
+    ninja.rule('install', command = 'install $in $out')
+    ninja.rule('run', command = './$in')
 
 
 ninja.rule('moc',
-	command = '$moc $mocflags -o $out $in',
-	description = 'MOC $out')
+    command = '$moc $mocflags -o $out $in',
+    description = 'MOC $out')
 
 ninja.rule('rcc',
-	command = '$rcc $rccflags -name $name -o $out $in',
-	description = 'RCC $out')
+    command = '$rcc $rccflags -name $name -o $out $in',
+    description = 'RCC $out')
 
 ninja.rule('uic',
-	command = '$uic $uicflags -o $out $in',
-	description = 'UIC $out')
+    command = '$uic $uicflags -o $out $in',
+    description = 'UIC $out')
 
 ninja.rule('lrelease',
-	command = '$lrelease $lreleaseflags $in -qm $out',
-	description = 'LRELEASE $out')
+    command = '$lrelease $lreleaseflags $in -qm $out',
+    description = 'LRELEASE $out')
 
 ninja.rule('ibtool',
-	command = '$ibtool $ibtoolflags --compile $out $in',
-	description = 'IBTOOL $out')
+    command = '$ibtool $ibtoolflags --compile $out $in',
+    description = 'IBTOOL $out')
 
 ninja.rule('dsymutil',
-	command = '$dsymutil $dsymutilflags -o $out $in',
-	description = 'DSYMUTIL $out')
+    command = '$dsymutil $dsymutilflags -o $out $in',
+    description = 'DSYMUTIL $out')
 
 ninja.rule('generator',
-	command = "python " + SCRIPT + " ${scons_args}",
-	depfile = ".scons2ninja.deps",
-	pool = 'scons_pool',
-	generator = '1',
-	description = 'Regenerating build.ninja')
+    command = "python " + SCRIPT + " ${scons_args}",
+    depfile = ".scons2ninja.deps",
+    pool = 'scons_pool',
+    generator = '1',
+    description = 'Regenerating build.ninja')
 
 ninja.rule('sdef',
-	command = 'sdef $in | sdp -fh --basename $basename -o $outdir',
-	description = 'SDEF $out')
+    command = 'sdef $in | sdp -fh --basename $basename -o $outdir',
+    description = 'SDEF $out')
 
 ################################################################################
 # Build Statements
@@ -365,235 +365,235 @@ stage = 'preamble'
 skip_nth_line = -1
 stack = ['.']
 for line in f.stdout :
-	line = line.rstrip()
-
-	# Skip lines if requested from previous command
-	if skip_nth_line >= 0 :
-		skip_nth_line -= 1 
-	if skip_nth_line == 0 :
-		continue
-
-	if line.startswith('scons: done building targets') :
-		break
-
-	if stage == "preamble" :
-		# Pass all lines from the SCons configuration step to output
-		if re.match("^scons: Building targets ...", line) :
-			stage = "build"
-		else :
-			print line
-
-	elif stage == "build" :
-		if line.startswith('+-') :
-			stage = "dependencies"
-		elif re.match("^Using tempfile", line) :
-			# Ignore response files from MSVS
-			skip_nth_line = 2
-		else :
-			build_lines.append(line)
-
-			# Already detect targets that will need 'mt'
-			tool, _, flags = parse_tool_command(line)
-			if tool == 'mt' :
-				target = get_unary_flags("-outputresource:", flags)[0]
-				target = target[0:target.index(';')]
-				mtflags[target] = flags
-
-	elif stage == "dependencies" :
-		if not re.match('^[\s|]+\+\-', line) :
-			# Work around bug in SCons that splits output over multiple lines
-			continue
-
-		level = line.index('+-') / 2
-		filename = line[level*2+2:]
-		if filename.startswith('[') :
-			filename = filename[1:-1] 
-
-		# Check if we use the 'fixed' format which escapes filenamenames
-		if filename.startswith('\'') and filename.endswith('\'') :
-			filename = eval(filename)
-
-		if level < len(stack) :
-			stack = stack[0:level]
-		elif level > len(stack) :
-			if level != len(stack) + 1 :
-				raise Exception("Internal Error" )
-			stack.append(previous_filename)
-
-		# Skip absolute paths
-		if not os.path.isabs(filename) :
-			target = stack[-1]
-			if target not in dependencies :
-				dependencies[target] = []
-			dependencies[target].append(filename)
-		previous_filename = filename
+    line = line.rstrip()
+
+    # Skip lines if requested from previous command
+    if skip_nth_line >= 0 :
+        skip_nth_line -= 1 
+    if skip_nth_line == 0 :
+        continue
+
+    if line.startswith('scons: done building targets') :
+        break
+
+    if stage == "preamble" :
+        # Pass all lines from the SCons configuration step to output
+        if re.match("^scons: Building targets ...", line) :
+            stage = "build"
+        else :
+            print line
+
+    elif stage == "build" :
+        if line.startswith('+-') :
+            stage = "dependencies"
+        elif re.match("^Using tempfile", line) :
+            # Ignore response files from MSVS
+            skip_nth_line = 2
+        else :
+            build_lines.append(line)
+
+            # Already detect targets that will need 'mt'
+            tool, _, flags = parse_tool_command(line)
+            if tool == 'mt' :
+                target = get_unary_flags("-outputresource:", flags)[0]
+                target = target[0:target.index(';')]
+                mtflags[target] = flags
+
+    elif stage == "dependencies" :
+        if not re.match('^[\s|]+\+\-', line) :
+            # Work around bug in SCons that splits output over multiple lines
+            continue
+
+        level = line.index('+-') / 2
+        filename = line[level*2+2:]
+        if filename.startswith('[') :
+            filename = filename[1:-1] 
+
+        # Check if we use the 'fixed' format which escapes filenamenames
+        if filename.startswith('\'') and filename.endswith('\'') :
+            filename = eval(filename)
+
+        if level < len(stack) :
+            stack = stack[0:level]
+        elif level > len(stack) :
+            if level != len(stack) + 1 :
+                raise Exception("Internal Error" )
+            stack.append(previous_filename)
+
+        # Skip absolute paths
+        if not os.path.isabs(filename) :
+            target = stack[-1]
+            if target not in dependencies :
+                dependencies[target] = []
+            dependencies[target].append(filename)
+        previous_filename = filename
 
 if f.wait() != 0 :
-	print "Error calling '" + scons_generate_cmd + "'"
-	print f.stderr.read()
-	exit(-1)
+    print "Error calling '" + scons_generate_cmd + "'"
+    print f.stderr.read()
+    exit(-1)
 
 # Pass 2: Parse build rules
 tools = {}
 for line in build_lines :
-	# Custom python function
-	m = re.match('^(\w+)\(\[([^\]]*)\]', line)
-	if m :
-		out = [x[1:-1] for x in m.group(2).split(',')]
-		for x in out :
-			# 'Note' = To be more correct, deps should also include $scons_dependencies,
-			# but this regenerates a bit too often, so leaving it out for now.
-			ninja.build(x, 'scons', None, deps = sorted(get_dependencies(x, ninja.targets)))
-		continue
-
-
-	# TextFile
-	m = re.match("^Creating '([^']+)'", line)
-	if m :
-		out = m.group(1)
-		# Note: To be more correct, deps should also include $scons_dependencies,
-		# but this regenerates a bit too often, so leaving it out for now.
-		ninja.build(out, 'scons', None, deps = sorted(get_dependencies(out, ninja.targets)))
-		continue
-
-	# Install
-	m = re.match('^Install file: "(.*)" as "(.*)"', line)
-	if m :
-		ninja.build(m.group(2), 'install', m.group(1))
-		continue
-
-	m = re.match('^Install directory: "(.*)" as "(.*)"', line)
-	if m :
-		for source in rglob('*', m.group(1)) :
-			if os.path.isdir(source) :
-				continue
-			target = os.path.join(m.group(2), os.path.relpath(source, m.group(1)))
-			ninja.build(target, 'install', source)
-		continue
-
-	# Tools
-	tool, command, flags = parse_tool_command(line)
-	tools[tool] = command[0]
-
-	############################################################
-	# clang/gcc tools
-	############################################################
-
-	if tool == 'cc':
-		out, flags = extract_binary_flag("-o", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'cc', files, order_deps = '_generated_headers', ccflags = flags)
-
-	elif tool == 'cxx':
-		out, flags = extract_binary_flag("-o", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'cxx', files, order_deps = '_generated_headers', cxxflags = flags)
-
-	elif tool == 'glink':
-		out, flags = extract_binary_flag("-o", flags)
-		files, flags = extract_non_flags(flags)
-		libs = get_unary_flags('-l', flags)
-		libpaths = get_unary_flags("-L", flags)
-		deps = get_built_libs(libs, libpaths, ninja.targets)
-		ninja.build(out, 'link', files, deps = sorted(deps), linkflags = flags)
-
-	elif tool == 'ar':
-		objects, flags = partition(flags, lambda x: x.endswith('.o'))
-		libs, flags = partition(flags, lambda x: x.endswith('.a'))
-		out = libs[0]
-		ninja.build(out, 'ar', objects, arflags = flags)
-
-	elif tool == 'ranlib':
-		pass
-
-
-	############################################################
-	# MSVC tools
-	############################################################
-
-	elif tool == 'cl':
-		out, flags = extract_unary_flag("/Fo", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'cl', files, order_deps = '_generated_headers', clflags = flags)
-
-	elif tool == 'lib':
-		out, flags = extract_unary_flag("/out:", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'lib', files, libflags = flags)
-
-	elif tool == 'link':
-		objects, flags = partition(flags, lambda x: x.endswith('.obj') or x.endswith('.res'))
-		out, flags = extract_unary_flag("/out:", flags)
-		libs, flags = partition(flags, lambda x: not x.startswith("/") and x.endswith(".lib"))
-		libpaths = get_unary_flags("/libpath:", flags)
-		deps = get_built_libs(libs, libpaths, ninja.targets)
-		if out in mtflags :
-			ninja.build(out, 'link_mt', objects, deps = sorted(deps), 
-				libs = libs, linkflags = flags, mtflags = mtflags[out])
-		else :
-			ninja.build(out, 'link', objects, deps = sorted(deps), 
-				libs = libs, linkflags = flags)
-
-	elif tool == 'rc':
-		out, flags = extract_unary_flag("/fo", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'rc', files[0], order_deps = '_generated_headers', rcflags = flags)
-
-	elif tool == 'mt':
-		# Already handled
-		pass
-
-	############################################################
-	# Qt tools
-	############################################################
-
-	elif tool == 'moc':
-		out, flags = extract_binary_flag("-o", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'moc', files, mocflags = flags)
-
-	elif tool == 'uic':
-		out, flags = extract_binary_flag("-o", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'uic', files, uicflags = flags)
-
-	elif tool == 'lrelease':
-		out, flags = extract_binary_flag("-qm", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'lrelease', files, lreleaseflags = flags)
-
-	elif tool == 'rcc':
-		out, flags = extract_binary_flag("-o", flags)
-		name, flags = extract_binary_flag("-name", flags)
-		files, flags = extract_non_flags(flags)
-		deps = list(set(get_dependencies(out, ninja.targets)) - set(files))
-		ninja.build(out, 'rcc', files, deps = sorted(deps), name = name, rccflags = flags)
-
-	############################################################
-	# OS X tools
-	############################################################
-
-	elif tool == 'ibtool':
-		out, flags = extract_binary_flag("--compile", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'ibtool', files, ibtoolflags = flags)
-
-	elif tool == 'dsymutil':
-		out, flags = extract_binary_flag("-o", flags)
-		files, flags = extract_non_flags(flags)
-		ninja.build(out, 'dsymutil', files, dsymutilflags = flags)
-
-	elif tool == 'sdef' :
-		source = flags[0];
-		outdir, flags = extract_binary_flag("-o", flags)
-		basename, flags = extract_binary_flag("--basename", flags)
-		ninja.build(os.path.join(outdir, basename + ".h"), 'sdef', [source], 
-				basename = basename,
-				outdir = outdir)
-
-
-	elif not ninja_custom_command(ninja, line)  :
-		raise Exception("Unknown tool: '" + line + "'")
+    # Custom python function
+    m = re.match('^(\w+)\(\[([^\]]*)\]', line)
+    if m :
+        out = [x[1:-1] for x in m.group(2).split(',')]
+        for x in out :
+            # 'Note' = To be more correct, deps should also include $scons_dependencies,
+            # but this regenerates a bit too often, so leaving it out for now.
+            ninja.build(x, 'scons', None, deps = sorted(get_dependencies(x, ninja.targets)))
+        continue
+
+
+    # TextFile
+    m = re.match("^Creating '([^']+)'", line)
+    if m :
+        out = m.group(1)
+        # Note: To be more correct, deps should also include $scons_dependencies,
+        # but this regenerates a bit too often, so leaving it out for now.
+        ninja.build(out, 'scons', None, deps = sorted(get_dependencies(out, ninja.targets)))
+        continue
+
+    # Install
+    m = re.match('^Install file: "(.*)" as "(.*)"', line)
+    if m :
+        ninja.build(m.group(2), 'install', m.group(1))
+        continue
+
+    m = re.match('^Install directory: "(.*)" as "(.*)"', line)
+    if m :
+        for source in rglob('*', m.group(1)) :
+            if os.path.isdir(source) :
+                continue
+            target = os.path.join(m.group(2), os.path.relpath(source, m.group(1)))
+            ninja.build(target, 'install', source)
+        continue
+
+    # Tools
+    tool, command, flags = parse_tool_command(line)
+    tools[tool] = command[0]
+
+    ############################################################
+    # clang/gcc tools
+    ############################################################
+
+    if tool == 'cc':
+        out, flags = extract_binary_flag("-o", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'cc', files, order_deps = '_generated_headers', ccflags = flags)
+
+    elif tool == 'cxx':
+        out, flags = extract_binary_flag("-o", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'cxx', files, order_deps = '_generated_headers', cxxflags = flags)
+
+    elif tool == 'glink':
+        out, flags = extract_binary_flag("-o", flags)
+        files, flags = extract_non_flags(flags)
+        libs = get_unary_flags('-l', flags)
+        libpaths = get_unary_flags("-L", flags)
+        deps = get_built_libs(libs, libpaths, ninja.targets)
+        ninja.build(out, 'link', files, deps = sorted(deps), linkflags = flags)
+
+    elif tool == 'ar':
+        objects, flags = partition(flags, lambda x: x.endswith('.o'))
+        libs, flags = partition(flags, lambda x: x.endswith('.a'))
+        out = libs[0]
+        ninja.build(out, 'ar', objects, arflags = flags)
+
+    elif tool == 'ranlib':
+        pass
+
+
+    ############################################################
+    # MSVC tools
+    ############################################################
+
+    elif tool == 'cl':
+        out, flags = extract_unary_flag("/Fo", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'cl', files, order_deps = '_generated_headers', clflags = flags)
+
+    elif tool == 'lib':
+        out, flags = extract_unary_flag("/out:", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'lib', files, libflags = flags)
+
+    elif tool == 'link':
+        objects, flags = partition(flags, lambda x: x.endswith('.obj') or x.endswith('.res'))
+        out, flags = extract_unary_flag("/out:", flags)
+        libs, flags = partition(flags, lambda x: not x.startswith("/") and x.endswith(".lib"))
+        libpaths = get_unary_flags("/libpath:", flags)
+        deps = get_built_libs(libs, libpaths, ninja.targets)
+        if out in mtflags :
+            ninja.build(out, 'link_mt', objects, deps = sorted(deps), 
+                libs = libs, linkflags = flags, mtflags = mtflags[out])
+        else :
+            ninja.build(out, 'link', objects, deps = sorted(deps), 
+                libs = libs, linkflags = flags)
+
+    elif tool == 'rc':
+        out, flags = extract_unary_flag("/fo", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'rc', files[0], order_deps = '_generated_headers', rcflags = flags)
+
+    elif tool == 'mt':
+        # Already handled
+        pass
+
+    ############################################################
+    # Qt tools
+    ############################################################
+
+    elif tool == 'moc':
+        out, flags = extract_binary_flag("-o", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'moc', files, mocflags = flags)
+
+    elif tool == 'uic':
+        out, flags = extract_binary_flag("-o", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'uic', files, uicflags = flags)
+
+    elif tool == 'lrelease':
+        out, flags = extract_binary_flag("-qm", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'lrelease', files, lreleaseflags = flags)
+
+    elif tool == 'rcc':
+        out, flags = extract_binary_flag("-o", flags)
+        name, flags = extract_binary_flag("-name", flags)
+        files, flags = extract_non_flags(flags)
+        deps = list(set(get_dependencies(out, ninja.targets)) - set(files))
+        ninja.build(out, 'rcc', files, deps = sorted(deps), name = name, rccflags = flags)
+
+    ############################################################
+    # OS X tools
+    ############################################################
+
+    elif tool == 'ibtool':
+        out, flags = extract_binary_flag("--compile", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'ibtool', files, ibtoolflags = flags)
+
+    elif tool == 'dsymutil':
+        out, flags = extract_binary_flag("-o", flags)
+        files, flags = extract_non_flags(flags)
+        ninja.build(out, 'dsymutil', files, dsymutilflags = flags)
+
+    elif tool == 'sdef' :
+        source = flags[0];
+        outdir, flags = extract_binary_flag("-o", flags)
+        basename, flags = extract_binary_flag("--basename", flags)
+        ninja.build(os.path.join(outdir, basename + ".h"), 'sdef', [source], 
+                basename = basename,
+                outdir = outdir)
+
+
+    elif not ninja_custom_command(ninja, line)  :
+        raise Exception("Unknown tool: '" + line + "'")
 
 
 # Phony target for all generated headers, used as an order-only depency from all C/C++ sources
@@ -607,11 +607,11 @@ ninja.header("# This file is generated by " + SCRIPT)
 ninja.variable("ninja_required_version", "1.3")
 ninja.variable("scons_args", SCONS_ARGS)
 for k, v in tools.iteritems() :
-	ninja.variable(k, v)
+    ninja.variable(k, v)
 
 # Extra customizations
 if 'ninja_post' in dir() :
-	ninja_post(ninja)
+    ninja_post(ninja)
 
 
 ################################################################################
diff --git a/Documentation/API/SConscript b/Documentation/API/SConscript
index df20b27..a8a8b1b 100644
--- a/Documentation/API/SConscript
+++ b/Documentation/API/SConscript
@@ -1,6 +1,6 @@
 Import("env")
 
 if "doc" in ARGUMENTS :
-	myenv = env.Clone()
-	myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"])
-	myenv.DoxyGen("Doxyfile")
+    myenv = env.Clone()
+    myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"])
+    myenv.DoxyGen("Doxyfile")
diff --git a/Documentation/SConscript b/Documentation/SConscript
index 161cd83..e2f6393 100644
--- a/Documentation/SConscript
+++ b/Documentation/SConscript
@@ -1,4 +1,4 @@
 Import("env")
 
 if env["SCONS_STAGE"] == "build" :
-	SConscript(dirs = ["SwiftenDevelopersGuide", "SwiftUserGuide", "API", "SwiftAPI"])
+    SConscript(dirs = ["SwiftenDevelopersGuide", "SwiftUserGuide", "API", "SwiftAPI"])
diff --git a/Documentation/SwiftAPI/SConscript b/Documentation/SwiftAPI/SConscript
index df20b27..a8a8b1b 100644
--- a/Documentation/SwiftAPI/SConscript
+++ b/Documentation/SwiftAPI/SConscript
@@ -1,6 +1,6 @@
 Import("env")
 
 if "doc" in ARGUMENTS :
-	myenv = env.Clone()
-	myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"])
-	myenv.DoxyGen("Doxyfile")
+    myenv = env.Clone()
+    myenv.Tool("DoxyGen", toolpath = ["#/BuildTools/SCons/Tools"])
+    myenv.DoxyGen("Doxyfile")
diff --git a/Documentation/SwiftUserGuide/SConscript b/Documentation/SwiftUserGuide/SConscript
index 50f60bc..1577b83 100644
--- a/Documentation/SwiftUserGuide/SConscript
+++ b/Documentation/SwiftUserGuide/SConscript
@@ -11,5 +11,5 @@ import sys, re, os.path
 ################################################################################
 
 if "doc" in ARGUMENTS :
-	env.DocBook("Swift Users Guide.xml")
+    env.DocBook("Swift Users Guide.xml")
 
diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
index f3cb0d7..268ab9a 100644
--- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
+++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
@@ -7,11 +7,11 @@ example_env.UseFlags(example_env["SWIFTEN_DEP_FLAGS"])
 # Precompile Swiften header
 # This is useful to slightly speed up compilation.
 # if example_env["PLATFORM"] == "win32":
-# 	example_env.WriteVal("Swiften.cpp", example_env.Value("#include <Swiften/Swiften.h>\n"))
-# 	example_env["PCH"] = example_env.PCH("Swiften.cpp")[0]
-# 	example_env["PCHSTOP"] = "Swiften/Swiften.h"
+#   example_env.WriteVal("Swiften.cpp", example_env.Value("#include <Swiften/Swiften.h>\n"))
+#   example_env["PCH"] = example_env.PCH("Swiften.cpp")[0]
+#   example_env["PCHSTOP"] = "Swiften/Swiften.h"
 
 for i in range(1,7) :
-	example_env.Program("EchoBot" + str(i), ["EchoBot" + str(i) + ".cpp"])
+    example_env.Program("EchoBot" + str(i), ["EchoBot" + str(i) + ".cpp"])
 example_env.Program("EchoBot0x", "EchoBot0x.cpp")
 example_env.Program("EchoComponent", "EchoComponent.cpp")
diff --git a/Documentation/SwiftenDevelopersGuide/SConscript b/Documentation/SwiftenDevelopersGuide/SConscript
index ba0eb0b..ac7c67a 100644
--- a/Documentation/SwiftenDevelopersGuide/SConscript
+++ b/Documentation/SwiftenDevelopersGuide/SConscript
@@ -9,89 +9,89 @@ env.Tool("DocBook", toolpath = ["#/BuildTools/DocBook/SCons"])
 import sys, re, os.path
 
 def generateDocBookCode(env, target, source) :
-	# Strips empty lines from the beginning & end of a program
-	def stripEmptyLines(program) :
-		programLines = program.split('\n')
-		newProgramLines = []
-		inProgram = False
-		for line in programLines :
-			if not re.match("^\s*$", line) or inProgram :
-				inProgram = True
-				newProgramLines.append(line)
-		return '\n'.join(newProgramLines).rstrip()
+    # Strips empty lines from the beginning & end of a program
+    def stripEmptyLines(program) :
+        programLines = program.split('\n')
+        newProgramLines = []
+        inProgram = False
+        for line in programLines :
+            if not re.match("^\s*$", line) or inProgram :
+                inProgram = True
+                newProgramLines.append(line)
+        return '\n'.join(newProgramLines).rstrip()
 
-	def createCallouts(program, calloutPrefix) :
-		newProgramLines = []
-		calloutLines = []
-		nextID = 0
-		for line in program.split("\n") :
-			# FIXME: Takes the largest match
-			m = re.match(".*\/* \(\*\) (.*) \*/.*", line)
-			if m :
-				cobID = "cob-" + calloutPrefix + "-" + str(nextID)
-				coID = "co-" + calloutPrefix + "-" + str(nextID)
-				nextID += 1
-				line = re.sub("/\*.*\*/", "]]><co id=\"%(cobID)s\" linkends=\"%(coID)s\"/><![CDATA[" % {"cobID" : cobID, "coID" : coID}, line)
-				calloutLines.append("<callout arearefs=\"%(cobID)s\" id=\"%(coID)s\"><para>%(text)s</para></callout>" % {"cobID": cobID, "coID": coID, "text": m.group(1)})
-			newProgramLines.append(line)
-			callouts = ""
-			if len(calloutLines) > 0 :
-				callouts = "<calloutlist>" + "\n".join(calloutLines) + "</calloutlist>"
-		return ("\n".join(newProgramLines), callouts)
+    def createCallouts(program, calloutPrefix) :
+        newProgramLines = []
+        calloutLines = []
+        nextID = 0
+        for line in program.split("\n") :
+            # FIXME: Takes the largest match
+            m = re.match(".*\/* \(\*\) (.*) \*/.*", line)
+            if m :
+                cobID = "cob-" + calloutPrefix + "-" + str(nextID)
+                coID = "co-" + calloutPrefix + "-" + str(nextID)
+                nextID += 1
+                line = re.sub("/\*.*\*/", "]]><co id=\"%(cobID)s\" linkends=\"%(coID)s\"/><![CDATA[" % {"cobID" : cobID, "coID" : coID}, line)
+                calloutLines.append("<callout arearefs=\"%(cobID)s\" id=\"%(coID)s\"><para>%(text)s</para></callout>" % {"cobID": cobID, "coID": coID, "text": m.group(1)})
+            newProgramLines.append(line)
+            callouts = ""
+            if len(calloutLines) > 0 :
+                callouts = "<calloutlist>" + "\n".join(calloutLines) + "</calloutlist>"
+        return ("\n".join(newProgramLines), callouts)
 
-	# Parse program
-	filename = source[0].abspath
-	filenameBase = os.path.basename(filename).replace(".cpp", "")
-	inputfile = open(filename)
-	program = ""
-	programs = {}
-	programName = ""
-	inEllipsis = False
-	for line in inputfile.readlines() :
-		if inEllipsis :
-			if "//..." in line :
-				inEllipsis = False
-		else :
-			if line.startswith("/*") or line.startswith(" *") :
-				continue
-			if "//..." in line :
-				inEllipsis = True
-				line = line.replace("//...", "]]>&#x2026;<![CDATA[")
-			else :
-				m = re.match("^/// (.*)", line)
-				if m :
-					if programName :
-						programs[programName] = program
-					program = ""
-					programName = m.group(1).strip().replace(" ", "")
-					continue
-			line = re.sub("\t", "  ", line)
-			program += line
-	programs[programName] = program
-	inputfile.close()
+    # Parse program
+    filename = source[0].abspath
+    filenameBase = os.path.basename(filename).replace(".cpp", "")
+    inputfile = open(filename)
+    program = ""
+    programs = {}
+    programName = ""
+    inEllipsis = False
+    for line in inputfile.readlines() :
+        if inEllipsis :
+            if "//..." in line :
+                inEllipsis = False
+        else :
+            if line.startswith("/*") or line.startswith(" *") :
+                continue
+            if "//..." in line :
+                inEllipsis = True
+                line = line.replace("//...", "]]>&#x2026;<![CDATA[")
+            else :
+                m = re.match("^/// (.*)", line)
+                if m :
+                    if programName :
+                        programs[programName] = program
+                    program = ""
+                    programName = m.group(1).strip().replace(" ", "")
+                    continue
+            line = re.sub("\t", "  ", line)
+            program += line
+    programs[programName] = program
+    inputfile.close()
 
-	for programName, program in programs.items() :
-		program = stripEmptyLines(program)
-		(program, callouts) = createCallouts(program, filenameBase + "-" + programName)
+    for programName, program in programs.items() :
+        program = stripEmptyLines(program)
+        (program, callouts) = createCallouts(program, filenameBase + "-" + programName)
 
-		document = "<foo><programlisting><![CDATA[" + program + "]]></programlisting>" + callouts + "</foo>"
+        document = "<foo><programlisting><![CDATA[" + program + "]]></programlisting>" + callouts + "</foo>"
 
-		# Generate code
-		output = open(target[0].abspath, 'w')
-		output.write(document)
-		output.close()
+        # Generate code
+        output = open(target[0].abspath, 'w')
+        output.write(document)
+        output.close()
 
 ################################################################################
 
 if "doc" in ARGUMENTS :
-	env.DocBook("Swiften Developers Guide.xml")
+    env.DocBook("Swiften Developers Guide.xml")
 
 sources = []
 for i in range(1, 7) :
-	sources.append("Examples/EchoBot/EchoBot" + str(i) + ".cpp")
+    sources.append("Examples/EchoBot/EchoBot" + str(i) + ".cpp")
 sources.append("Examples/EchoBot/EchoBot0x.cpp")
 sources += ["Examples/EchoBot/" + i for i in ["EchoPayloadParserFactory.h", "EchoPayloadSerializer.h", "EchoPayload.h", "EchoComponent.cpp"]]
 for source in sources :
-	env.Command(source + ".xml", source, Action(generateDocBookCode, cmdstr = "$GENCOMSTR"))
+    env.Command(source + ".xml", source, Action(generateDocBookCode, cmdstr = "$GENCOMSTR"))
 
 SConscript(dirs = ["Examples"])
diff --git a/Limber/SConscript b/Limber/SConscript
index 13bc0df..7aca509 100644
--- a/Limber/SConscript
+++ b/Limber/SConscript
@@ -1,30 +1,30 @@
 Import("env")
 
 if env["SCONS_STAGE"] == "flags" :
-	env["LIMBER_FLAGS"] = {
-		"LIBPATH": [Dir(".")],
-		"LIBS": ["Limber"],
-	}
+    env["LIMBER_FLAGS"] = {
+        "LIBPATH": [Dir(".")],
+        "LIBS": ["Limber"],
+    }
 
 elif env["SCONS_STAGE"] == "build" :
-	libenv = env.Clone()
-	libenv.UseFlags(env["SWIFTEN_FLAGS"])
-	libenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
-	libenv.StaticLibrary("Limber", [
-			"Server/ServerFromClientSession.cpp",
-			"Server/ServerSession.cpp",
-			"Server/ServerStanzaRouter.cpp",
-			"Server/SimpleUserRegistry.cpp",
-			"Server/UserRegistry.cpp",
-		])
+    libenv = env.Clone()
+    libenv.UseFlags(env["SWIFTEN_FLAGS"])
+    libenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
+    libenv.StaticLibrary("Limber", [
+            "Server/ServerFromClientSession.cpp",
+            "Server/ServerSession.cpp",
+            "Server/ServerStanzaRouter.cpp",
+            "Server/SimpleUserRegistry.cpp",
+            "Server/UserRegistry.cpp",
+        ])
 
-	myenv = env.Clone()
-	myenv.BuildVersion("BuildVersion.h", project = "limber")
-	myenv.UseFlags(env["LIMBER_FLAGS"])
-	myenv.UseFlags(env["SWIFTEN_FLAGS"])
-	myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
-	myenv.Program("limber", ["main.cpp"])
+    myenv = env.Clone()
+    myenv.BuildVersion("BuildVersion.h", project = "limber")
+    myenv.UseFlags(env["LIMBER_FLAGS"])
+    myenv.UseFlags(env["SWIFTEN_FLAGS"])
+    myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
+    myenv.Program("limber", ["main.cpp"])
 
-	env.Append(UNITTEST_SOURCES = [
-			File("Server/UnitTest/ServerStanzaRouterTest.cpp"),
-		])
+    env.Append(UNITTEST_SOURCES = [
+            File("Server/UnitTest/ServerStanzaRouterTest.cpp"),
+        ])
diff --git a/QA/Checker/SConscript b/QA/Checker/SConscript
index 13dec62..06ec01b 100644
--- a/QA/Checker/SConscript
+++ b/QA/Checker/SConscript
@@ -1,17 +1,17 @@
 Import("env")
 
 if env["TEST"] :
-	if env["SCONS_STAGE"] == "flags" :
-			env["CHECKER_FLAGS"] = {
-					"CPPPATH" : ["#/3rdParty/HippoMocks"],
-					"LIBS": ["Checker"],
-					"LIBPATH": [Dir(".")],
-					"LINKFLAGS": env["PLATFORM"] == "win32" and ["/SUBSYSTEM:CONSOLE"] or []
-				}
+    if env["SCONS_STAGE"] == "flags" :
+            env["CHECKER_FLAGS"] = {
+                    "CPPPATH" : ["#/3rdParty/HippoMocks"],
+                    "LIBS": ["Checker"],
+                    "LIBPATH": [Dir(".")],
+                    "LINKFLAGS": env["PLATFORM"] == "win32" and ["/SUBSYSTEM:CONSOLE"] or []
+                }
 
-	if env["SCONS_STAGE"] == "build" :
-			checker_env = env.Clone()
-			checker_env.UseFlags(env["SWIFTEN_FLAGS"])
-			checker_env.UseFlags(env["BOOST_FLAGS"])
-			checker_env.UseFlags(env["CPPUNIT_FLAGS"])
-			checker_env.Library("Checker", ["checker.cpp", "IO.cpp"])
+    if env["SCONS_STAGE"] == "build" :
+            checker_env = env.Clone()
+            checker_env.UseFlags(env["SWIFTEN_FLAGS"])
+            checker_env.UseFlags(env["BOOST_FLAGS"])
+            checker_env.UseFlags(env["CPPUNIT_FLAGS"])
+            checker_env.Library("Checker", ["checker.cpp", "IO.cpp"])
diff --git a/QA/SConscript b/QA/SConscript
index 5c626e3..b4125cf 100644
--- a/QA/SConscript
+++ b/QA/SConscript
@@ -1,4 +1,4 @@
 SConscript(dirs = [
-		"Checker", 
-		"UnitTest"
-	])
+        "Checker",
+        "UnitTest"
+    ])
diff --git a/QA/UnitTest/SConscript b/QA/UnitTest/SConscript
index 0cacc7c..1874f99 100644
--- a/QA/UnitTest/SConscript
+++ b/QA/UnitTest/SConscript
@@ -3,27 +3,27 @@ import os
 Import("env")
 
 if env["TEST"] :
-	if env["SCONS_STAGE"] == "flags" :
-		env["UNITTEST_SOURCES"] = []
-		env["UNITTEST_OBJECTS"] = []
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.UseFlags(env.get("CHECKER_FLAGS",""))
-		myenv.UseFlags(env.get("INJECTED_UNITTEST_FLAGS","")) # So things that piggy-back our build system can piggy-back our test system too
-		myenv.UseFlags(env.get("SLIMBER_FLAGS",""))
-		myenv.UseFlags(env.get("SWIFT_CONTROLLERS_FLAGS",""))
-		myenv.UseFlags(env.get("SWIFTOOLS_FLAGS",""))
-		myenv.UseFlags(env.get("LIMBER_FLAGS",""))
-		myenv.UseFlags(env.get("SWIFTEN_FLAGS",""))
-		myenv.UseFlags(env.get("CPPUNIT_FLAGS",""))
-		myenv.UseFlags(env.get("SWIFTEN_DEP_FLAGS", ""))
-		if env.get("HAVE_LIBXML") :
-			myenv.Append(CPPDEFINES = ["HAVE_LIBXML"])
-		if env.get("HAVE_EXPAT") :
-			myenv.Append(CPPDEFINES = ["HAVE_EXPAT"])
-		if env["TEST_CREATE_LIBRARIES"] :
-			lib = myenv.StaticLibrary("Swift_UnitTests", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"])
-			myenv.Program("checker", lib)
-		else :
-			checker = myenv.Program("checker", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"])
-			myenv.Test(checker, is_checker = True)
+    if env["SCONS_STAGE"] == "flags" :
+        env["UNITTEST_SOURCES"] = []
+        env["UNITTEST_OBJECTS"] = []
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.UseFlags(env.get("CHECKER_FLAGS",""))
+        myenv.UseFlags(env.get("INJECTED_UNITTEST_FLAGS","")) # So things that piggy-back our build system can piggy-back our test system too
+        myenv.UseFlags(env.get("SLIMBER_FLAGS",""))
+        myenv.UseFlags(env.get("SWIFT_CONTROLLERS_FLAGS",""))
+        myenv.UseFlags(env.get("SWIFTOOLS_FLAGS",""))
+        myenv.UseFlags(env.get("LIMBER_FLAGS",""))
+        myenv.UseFlags(env.get("SWIFTEN_FLAGS",""))
+        myenv.UseFlags(env.get("CPPUNIT_FLAGS",""))
+        myenv.UseFlags(env.get("SWIFTEN_DEP_FLAGS", ""))
+        if env.get("HAVE_LIBXML") :
+            myenv.Append(CPPDEFINES = ["HAVE_LIBXML"])
+        if env.get("HAVE_EXPAT") :
+            myenv.Append(CPPDEFINES = ["HAVE_EXPAT"])
+        if env["TEST_CREATE_LIBRARIES"] :
+            lib = myenv.StaticLibrary("Swift_UnitTests", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"])
+            myenv.Program("checker", lib)
+        else :
+            checker = myenv.Program("checker", env["UNITTEST_SOURCES"] + env["UNITTEST_OBJECTS"])
+            myenv.Test(checker, is_checker = True)
diff --git a/SConstruct b/SConstruct
index 15f6dd0..1cf0bd8 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,5 +1,5 @@
 variant_dir = SConscript("BuildTools/SCons/SConscript.boot")
 if variant_dir :
-	SConscript("BuildTools/SCons/SConstruct", variant_dir = variant_dir, src_dir = ".")
+    SConscript("BuildTools/SCons/SConstruct", variant_dir = variant_dir, src_dir = ".")
 else :
-	SConscript("BuildTools/SCons/SConstruct")
+    SConscript("BuildTools/SCons/SConstruct")
diff --git a/Slimber/CLI/SConscript b/Slimber/CLI/SConscript
index e17996d..9dfa174 100644
--- a/Slimber/CLI/SConscript
+++ b/Slimber/CLI/SConscript
@@ -8,6 +8,6 @@ myenv.UseFlags(env["SWIFTEN_FLAGS"])
 myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
 
 myenv.Program("slimber", [
-		"main.cpp",
-		"DummyMenulet.cpp",
-	])
+        "main.cpp",
+        "DummyMenulet.cpp",
+    ])
diff --git a/Slimber/Cocoa/SConscript b/Slimber/Cocoa/SConscript
index 441dc27..8f3c104 100644
--- a/Slimber/Cocoa/SConscript
+++ b/Slimber/Cocoa/SConscript
@@ -8,22 +8,22 @@ myenv.MergeFlags(env["SWIFTEN_FLAGS"])
 myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"])
 
 myenv.Program("Slimber", [
-		"main.mm",
-		"CocoaController.mm",
-		"CocoaMenulet.mm",
-	])
+        "main.mm",
+        "CocoaController.mm",
+        "CocoaMenulet.mm",
+    ])
 
 myenv.Nib("MainMenu")
 
 myenv.AppBundle("Slimber", resources = { "": [
-		"MainMenu.nib",
-		"../Resources/Slimber.icns",
-		"../Resources/Credits.html",
-		"../Resources/Online.png",
-		"../Resources/Offline.png",
-		"../Resources/UsersOnline.png",
-		"../Resources/UsersOffline.png"
-	]}, info = {
-		"NSMainNibFile" : "MainMenu",
-		"LSUIElement" : "1",
-	})
+        "MainMenu.nib",
+        "../Resources/Slimber.icns",
+        "../Resources/Credits.html",
+        "../Resources/Online.png",
+        "../Resources/Offline.png",
+        "../Resources/UsersOnline.png",
+        "../Resources/UsersOffline.png"
+    ]}, info = {
+        "NSMainNibFile" : "MainMenu",
+        "LSUIElement" : "1",
+    })
diff --git a/Slimber/Qt/SConscript b/Slimber/Qt/SConscript
index 9d965cc..8328f8c 100644
--- a/Slimber/Qt/SConscript
+++ b/Slimber/Qt/SConscript
@@ -15,11 +15,11 @@ myenv.UseFlags(env.get("AVAHI_FLAGS", ""))
 myenv.UseFlags(myenv["PLATFORM_FLAGS"])
 
 if myenv.get("HAVE_ICU") :
-	myenv.MergeFlags(env["ICU_FLAGS"])
-	myenv.Append(CPPDEFINES = ["HAVE_ICU"])
+    myenv.MergeFlags(env["ICU_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_ICU"])
 if myenv.get("HAVE_LIBIDN") :
-	myenv.MergeFlags(env["LIBIDN_FLAGS"])
-	myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"])
+    myenv.MergeFlags(env["LIBIDN_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"])
 
 myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
 myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"])
@@ -27,39 +27,39 @@ myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"])
 
 qt4modules = ['QtCore', 'QtGui']
 if myenv["qt5"] :
-	qt_version = '5'
-	qt4modules += ['QtWidgets']
+    qt_version = '5'
+    qt4modules += ['QtWidgets']
 else :
-	qt_version = '4'
+    qt_version = '4'
 myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version)
 
 if env["PLATFORM"] == "win32" :
-	myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
-	myenv.Append(LIBS = "qtmain")
+    myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
+    myenv.Append(LIBS = "qtmain")
 
 myenv.BuildVersion("BuildVersion.h", project = "slimber")
 
 sources = [
-		"main.cpp", 
-		"QtMenulet.cpp",
-		"QtAboutDialog.cpp",
-		myenv.Qrc("Slimber.qrc"),
-	]
+        "main.cpp", 
+        "QtMenulet.cpp",
+        "QtAboutDialog.cpp",
+        myenv.Qrc("Slimber.qrc"),
+    ]
 
 #if env["PLATFORM"] == "win32" :
-#	myenv.RES("../resources/Windows/Slimber.rc")
-#	sources += ["../resources/Windows/Slimber.res"]
+#   myenv.RES("../resources/Windows/Slimber.rc")
+#   sources += ["../resources/Windows/Slimber.res"]
 
 if env["PLATFORM"] == "win32" :
-	slimberProgram = myenv.Program("Slimber", sources)
+    slimberProgram = myenv.Program("Slimber", sources)
 else :
-	slimberProgram = myenv.Program("slimber", sources)
+    slimberProgram = myenv.Program("slimber", sources)
 
 if env["PLATFORM"] == "win32" :
-	if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") :
-		myenv.WindowsBundle("Slimber", resources = {}, qtlibs = ["QtCore4", "QtGui4"])
-		myenv.Append(NSIS_OPTIONS = [
-				"/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"", 
-				"/DbuildDate=" + datetime.date.today().strftime("%Y%m%d")
-			])
-		#myenv.Nsis("../Packaging/nsis/slimber.nsi")
+    if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") :
+        myenv.WindowsBundle("Slimber", resources = {}, qtlibs = ["QtCore4", "QtGui4"])
+        myenv.Append(NSIS_OPTIONS = [
+                "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"", 
+                "/DbuildDate=" + datetime.date.today().strftime("%Y%m%d")
+            ])
+        #myenv.Nsis("../Packaging/nsis/slimber.nsi")
diff --git a/Slimber/SConscript b/Slimber/SConscript
index ff4f57d..a41fe0b 100644
--- a/Slimber/SConscript
+++ b/Slimber/SConscript
@@ -4,18 +4,18 @@ Import("env")
 
 env["BUILD_SLIMBER"] = True
 if env["PLATFORM"] == "win32" :
-	if not env.get("HAVE_BONJOUR") and "Slimber" in env["PROJECTS"] :
-		env["PROJECTS"].remove("Slimber")
+    if not env.get("HAVE_BONJOUR") and "Slimber" in env["PROJECTS"] :
+        env["PROJECTS"].remove("Slimber")
 elif env["PLATFORM"] != "darwin" :
-	if not env.get("HAVE_AVAHI", False) and "Slimber" in env["PROJECTS"] :
-		env["PROJECTS"].remove("Slimber")
+    if not env.get("HAVE_AVAHI", False) and "Slimber" in env["PROJECTS"] :
+        env["PROJECTS"].remove("Slimber")
 
 if not "Slimber" in env["PROJECTS"] and env["SCONS_STAGE"] == "flags" :
-		print "Bonjour missing. Not building Slimber."
+        print "Bonjour missing. Not building Slimber."
 
 if not env.get("HAVE_QT", False) and "Slimber" in env["PROJECTS"] :
-	print "Qt missing. Not building Slimber."
-	env["PROJECTS"].remove("Slimber")
+    print "Qt missing. Not building Slimber."
+    env["PROJECTS"].remove("Slimber")
 
 if "Slimber" in env["PROJECTS"] :
 
@@ -23,42 +23,42 @@ if "Slimber" in env["PROJECTS"] :
 # Flags
 ################################################################################
 
-	if env["SCONS_STAGE"] == "flags" :
-		env["SLIMBER_FLAGS"] = {
-				"LIBPATH": [Dir(".")],
-				"LIBS": ["Slimber"]
-			}
+    if env["SCONS_STAGE"] == "flags" :
+        env["SLIMBER_FLAGS"] = {
+                "LIBPATH": [Dir(".")],
+                "LIBS": ["Slimber"]
+            }
 
 ################################################################################
 # Build
 ################################################################################
 
-	if env["SCONS_STAGE"] == "build" :
-		myenv = env.Clone()
-		myenv.UseFlags(env["LIMBER_FLAGS"])
-		myenv.MergeFlags(env["BOOST_FLAGS"])
-		myenv.MergeFlags(env["SWIFTEN_FLAGS"])
-		myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"])
-		myenv.StaticLibrary("Slimber", [
-				"LinkLocalPresenceManager.cpp",
-				"FileVCardCollection.cpp",
-				"VCardCollection.cpp",
-				"Server.cpp",
-				"MainController.cpp",
-				"MenuletController.cpp",
-				"Menulet.cpp"
-			])
+    if env["SCONS_STAGE"] == "build" :
+        myenv = env.Clone()
+        myenv.UseFlags(env["LIMBER_FLAGS"])
+        myenv.MergeFlags(env["BOOST_FLAGS"])
+        myenv.MergeFlags(env["SWIFTEN_FLAGS"])
+        myenv.MergeFlags(env["SWIFTEN_DEP_FLAGS"])
+        myenv.StaticLibrary("Slimber", [
+                "LinkLocalPresenceManager.cpp",
+                "FileVCardCollection.cpp",
+                "VCardCollection.cpp",
+                "Server.cpp",
+                "MainController.cpp",
+                "MenuletController.cpp",
+                "Menulet.cpp"
+            ])
 
 
-		env["SLIMBER_VERSION"] = "0.9.9." + datetime.date.today().strftime("%Y%m%d")
+        env["SLIMBER_VERSION"] = "0.9.9." + datetime.date.today().strftime("%Y%m%d")
 
-		env.Append(UNITTEST_SOURCES = [
-				File("UnitTest/LinkLocalPresenceManagerTest.cpp"),
-				File("UnitTest/MenuletControllerTest.cpp")
-			])
+        env.Append(UNITTEST_SOURCES = [
+                File("UnitTest/LinkLocalPresenceManagerTest.cpp"),
+                File("UnitTest/MenuletControllerTest.cpp")
+            ])
 
-		SConscript("CLI/SConscript")
-		if env["PLATFORM"] == "darwin" :
-			SConscript("Cocoa/SConscript")
-		else :
-			SConscript("Qt/SConscript")
+        SConscript("CLI/SConscript")
+        if env["PLATFORM"] == "darwin" :
+            SConscript("Cocoa/SConscript")
+        else :
+            SConscript("Qt/SConscript")
diff --git a/Sluift/ElementConvertors/SConscript b/Sluift/ElementConvertors/SConscript
index 265017b..b67c65b 100644
--- a/Sluift/ElementConvertors/SConscript
+++ b/Sluift/ElementConvertors/SConscript
@@ -2,53 +2,53 @@
 Import('env')
 
 convertors = [
-	env.File("PubSubRetractConvertor.cpp"),
-	env.File("PubSubAffiliationsConvertor.cpp"),
-	env.File("PubSubPublishConvertor.cpp"),
-	env.File("PubSubItemsConvertor.cpp"),
-	env.File("PubSubOwnerRedirectConvertor.cpp"),
-	env.File("PubSubEventRedirectConvertor.cpp"),
-	env.File("UserTuneConvertor.cpp"),
-	env.File("PubSubConfigureConvertor.cpp"),
-	env.File("PubSubEventDisassociateConvertor.cpp"),
-	env.File("PubSubOwnerAffiliationsConvertor.cpp"),
-	env.File("PubSubOwnerConfigureConvertor.cpp"),
-	env.File("UserLocationConvertor.cpp"),
-	env.File("PubSubSubscribeOptionsConvertor.cpp"),
-	env.File("PubSubOwnerSubscriptionsConvertor.cpp"),
-	env.File("PubSubDefaultConvertor.cpp"),
-	env.File("PubSubEventCollectionConvertor.cpp"),
-	env.File("PubSubEventSubscriptionConvertor.cpp"),
-	env.File("PubSubEventRetractConvertor.cpp"),
-	env.File("PubSubItemConvertor.cpp"),
-	env.File("PubSubUnsubscribeConvertor.cpp"),
-	env.File("PubSubEventDeleteConvertor.cpp"),
-	env.File("PubSubCreateConvertor.cpp"),
-	env.File("PubSubOwnerPurgeConvertor.cpp"),
-	env.File("PubSubEventItemsConvertor.cpp"),
-	env.File("PubSubOptionsConvertor.cpp"),
-	env.File("PubSubEventItemConvertor.cpp"),
-	env.File("PubSubOwnerSubscriptionConvertor.cpp"),
-	env.File("PubSubOwnerAffiliationConvertor.cpp"),
-	env.File("PubSubEventPurgeConvertor.cpp"),
-	env.File("PubSubAffiliationConvertor.cpp"),
-	env.File("PubSubSubscribeConvertor.cpp"),
-	env.File("PubSubOwnerDeleteConvertor.cpp"),
-	env.File("PubSubOwnerDefaultConvertor.cpp"),
-	env.File("PubSubSubscriptionsConvertor.cpp"),
-	env.File("PubSubEventAssociateConvertor.cpp"),
-	env.File("PubSubSubscriptionConvertor.cpp"),
-	env.File("SecurityLabelConvertor.cpp"),
-	env.File("PubSubEventConfigurationConvertor.cpp"),
-	env.File("IQConvertor.cpp"),
-	env.File("PresenceConvertor.cpp"),
-	env.File("MessageConvertor.cpp"),
-	env.File("ResultSetConvertor.cpp"),
-	env.File("ForwardedConvertor.cpp"),
-	env.File("MAMResultConvertor.cpp"),
-	env.File("MAMQueryConvertor.cpp"),
-	env.File("MAMFinConvertor.cpp"),
-	env.File("SubjectConvertor.cpp"),
-	env.File("IsodeIQDelegationConvertor.cpp")
+    env.File("PubSubRetractConvertor.cpp"),
+    env.File("PubSubAffiliationsConvertor.cpp"),
+    env.File("PubSubPublishConvertor.cpp"),
+    env.File("PubSubItemsConvertor.cpp"),
+    env.File("PubSubOwnerRedirectConvertor.cpp"),
+    env.File("PubSubEventRedirectConvertor.cpp"),
+    env.File("UserTuneConvertor.cpp"),
+    env.File("PubSubConfigureConvertor.cpp"),
+    env.File("PubSubEventDisassociateConvertor.cpp"),
+    env.File("PubSubOwnerAffiliationsConvertor.cpp"),
+    env.File("PubSubOwnerConfigureConvertor.cpp"),
+    env.File("UserLocationConvertor.cpp"),
+    env.File("PubSubSubscribeOptionsConvertor.cpp"),
+    env.File("PubSubOwnerSubscriptionsConvertor.cpp"),
+    env.File("PubSubDefaultConvertor.cpp"),
+    env.File("PubSubEventCollectionConvertor.cpp"),
+    env.File("PubSubEventSubscriptionConvertor.cpp"),
+    env.File("PubSubEventRetractConvertor.cpp"),
+    env.File("PubSubItemConvertor.cpp"),
+    env.File("PubSubUnsubscribeConvertor.cpp"),
+    env.File("PubSubEventDeleteConvertor.cpp"),
+    env.File("PubSubCreateConvertor.cpp"),
+    env.File("PubSubOwnerPurgeConvertor.cpp"),
+    env.File("PubSubEventItemsConvertor.cpp"),
+    env.File("PubSubOptionsConvertor.cpp"),
+    env.File("PubSubEventItemConvertor.cpp"),
+    env.File("PubSubOwnerSubscriptionConvertor.cpp"),
+    env.File("PubSubOwnerAffiliationConvertor.cpp"),
+    env.File("PubSubEventPurgeConvertor.cpp"),
+    env.File("PubSubAffiliationConvertor.cpp"),
+    env.File("PubSubSubscribeConvertor.cpp"),
+    env.File("PubSubOwnerDeleteConvertor.cpp"),
+    env.File("PubSubOwnerDefaultConvertor.cpp"),
+    env.File("PubSubSubscriptionsConvertor.cpp"),
+    env.File("PubSubEventAssociateConvertor.cpp"),
+    env.File("PubSubSubscriptionConvertor.cpp"),
+    env.File("SecurityLabelConvertor.cpp"),
+    env.File("PubSubEventConfigurationConvertor.cpp"),
+    env.File("IQConvertor.cpp"),
+    env.File("PresenceConvertor.cpp"),
+    env.File("MessageConvertor.cpp"),
+    env.File("ResultSetConvertor.cpp"),
+    env.File("ForwardedConvertor.cpp"),
+    env.File("MAMResultConvertor.cpp"),
+    env.File("MAMQueryConvertor.cpp"),
+    env.File("MAMFinConvertor.cpp"),
+    env.File("SubjectConvertor.cpp"),
+    env.File("IsodeIQDelegationConvertor.cpp")
 ]
 Return('convertors')
diff --git a/Sluift/SConscript b/Sluift/SConscript
index 09da0a9..de9cab6 100644
--- a/Sluift/SConscript
+++ b/Sluift/SConscript
@@ -3,86 +3,86 @@ import Version, os.path
 Import(["env"])
 
 if env["SCONS_STAGE"] == "build" and not GetOption("help") and not env.get("HAVE_LUA", 0) :
-	print "Warning: Lua was not found. Sluift will not be built."
-	if "Sluift" in env["PROJECTS"] :
-		env["PROJECTS"].remove("Sluift")
-		
+    print "Warning: Lua was not found. Sluift will not be built."
+    if "Sluift" in env["PROJECTS"] :
+        env["PROJECTS"].remove("Sluift")
+
 elif env["SCONS_STAGE"] == "build" :
-	sluift_sources = [
-		"Lua/Value.cpp",
-		"Lua/Exception.cpp",
-		"Lua/Check.cpp",
-		"Lua/FunctionRegistration.cpp",
-		"Lua/FunctionRegistry.cpp",
-		"Lua/LuaUtils.cpp",
-		"LuaElementConvertors.cpp",
-		"LuaElementConvertor.cpp",
-		"Response.cpp",
-		"ElementConvertors/BodyConvertor.cpp",
-		"ElementConvertors/VCardUpdateConvertor.cpp",
-		"ElementConvertors/PubSubEventConvertor.cpp",
-		"ElementConvertors/RawXMLElementConvertor.cpp",
-		"ElementConvertors/DOMElementConvertor.cpp",
-		"ElementConvertors/DefaultElementConvertor.cpp",
-		"ElementConvertors/DiscoInfoConvertor.cpp",
-		"ElementConvertors/DiscoItemsConvertor.cpp",
-		"ElementConvertors/FormConvertor.cpp",
-		"ElementConvertors/SoftwareVersionConvertor.cpp",
-		"ElementConvertors/VCardConvertor.cpp",
-		"ElementConvertors/CommandConvertor.cpp",
-		"ElementConvertors/StatusConvertor.cpp",
-		"ElementConvertors/StatusShowConvertor.cpp",
-		"ElementConvertors/DelayConvertor.cpp",
-		"Helpers.cpp",
-		"SluiftClient.cpp",
-		"SluiftComponent.cpp",
-		"Watchdog.cpp",
-		"core.c",
-		"client.cpp",
-		"component.cpp",
-		"sluift.cpp"
-	]
-	sluift_sources += env.SConscript("ElementConvertors/SConscript")
+    sluift_sources = [
+        "Lua/Value.cpp",
+        "Lua/Exception.cpp",
+        "Lua/Check.cpp",
+        "Lua/FunctionRegistration.cpp",
+        "Lua/FunctionRegistry.cpp",
+        "Lua/LuaUtils.cpp",
+        "LuaElementConvertors.cpp",
+        "LuaElementConvertor.cpp",
+        "Response.cpp",
+        "ElementConvertors/BodyConvertor.cpp",
+        "ElementConvertors/VCardUpdateConvertor.cpp",
+        "ElementConvertors/PubSubEventConvertor.cpp",
+        "ElementConvertors/RawXMLElementConvertor.cpp",
+        "ElementConvertors/DOMElementConvertor.cpp",
+        "ElementConvertors/DefaultElementConvertor.cpp",
+        "ElementConvertors/DiscoInfoConvertor.cpp",
+        "ElementConvertors/DiscoItemsConvertor.cpp",
+        "ElementConvertors/FormConvertor.cpp",
+        "ElementConvertors/SoftwareVersionConvertor.cpp",
+        "ElementConvertors/VCardConvertor.cpp",
+        "ElementConvertors/CommandConvertor.cpp",
+        "ElementConvertors/StatusConvertor.cpp",
+        "ElementConvertors/StatusShowConvertor.cpp",
+        "ElementConvertors/DelayConvertor.cpp",
+        "Helpers.cpp",
+        "SluiftClient.cpp",
+        "SluiftComponent.cpp",
+        "Watchdog.cpp",
+        "core.c",
+        "client.cpp",
+        "component.cpp",
+        "sluift.cpp"
+    ]
+    sluift_sources += env.SConscript("ElementConvertors/SConscript")
 
 
 
-	sluift_env = env.Clone()
-	sluift_env.UseFlags(env.get("LUA_FLAGS", {}))
-	sluift_env.UseFlags(env["SWIFTEN_FLAGS"])
-	sluift_env.UseFlags(env["SWIFTEN_DEP_FLAGS"])
-	# Support compilation on both Lua 5.1 and Lua 5.2
-	sluift_env.Append(CPPDEFINES = ["LUA_COMPAT_ALL"])
-	if sluift_env["PLATFORM"] == "win32" :
-		sluift_env.Append(CPPDEFINES = ["SLUIFT_BUILD_DLL"])
+    sluift_env = env.Clone()
+    sluift_env.UseFlags(env.get("LUA_FLAGS", {}))
+    sluift_env.UseFlags(env["SWIFTEN_FLAGS"])
+    sluift_env.UseFlags(env["SWIFTEN_DEP_FLAGS"])
+    # Support compilation on both Lua 5.1 and Lua 5.2
+    sluift_env.Append(CPPDEFINES = ["LUA_COMPAT_ALL"])
+    if sluift_env["PLATFORM"] == "win32" :
+        sluift_env.Append(CPPDEFINES = ["SLUIFT_BUILD_DLL"])
 
-	if sluift_env["PLATFORM"] == "darwin" and os.path.isdir("/Applications/iTunes.app") :
-		sluift_env.Append(FRAMEWORKS = ["ScriptingBridge"])
-		sluift_env.Command("iTunes.h", "/Applications/iTunes.app", 
-				"sdef ${SOURCE} | sdp -fh --basename iTunes -V 10.10 -o ${TARGET.dir}")
-		sluift_env.Append(CPPDEFINES = ["HAVE_ITUNES"])
-		sluift_sources += ["ITunesInterface.mm"]
+    if sluift_env["PLATFORM"] == "darwin" and os.path.isdir("/Applications/iTunes.app") :
+        sluift_env.Append(FRAMEWORKS = ["ScriptingBridge"])
+        sluift_env.Command("iTunes.h", "/Applications/iTunes.app", 
+                "sdef ${SOURCE} | sdp -fh --basename iTunes -V 10.10 -o ${TARGET.dir}")
+        sluift_env.Append(CPPDEFINES = ["HAVE_ITUNES"])
+        sluift_sources += ["ITunesInterface.mm"]
 
-	# Generate Version.h
-	version_header = "#pragma once\n\n"
-	version_header += "#define SLUIFT_VERSION_STRING \"" + Version.getBuildVersion(env.Dir("#").abspath, "sluift") + "\"\n"
-	sluift_env.WriteVal("Version.h", sluift_env.Value(version_header))
+    # Generate Version.h
+    version_header = "#pragma once\n\n"
+    version_header += "#define SLUIFT_VERSION_STRING \"" + Version.getBuildVersion(env.Dir("#").abspath, "sluift") + "\"\n"
+    sluift_env.WriteVal("Version.h", sluift_env.Value(version_header))
 
-	# Generate core.c
-	def generate_embedded_lua(env, target, source) :
-		f = open(source[0].abspath, "r")
-		data = f.read()
-		f.close()
-		f = open(target[0].abspath, "w")
-		f.write('#include <stddef.h>\n')
-		f.write('const size_t ' + source[0].name.replace(".", "_") + "_size = " + str(len(data)) + ";\n")
-		f.write('const char ' + source[0].name.replace(".", "_") + "[] = {" + ", ".join([str(ord(c)) for c in data]) + "};\n")
-		f.close()
-	sluift_env.Command("core.c", ["core.lua"], env.Action(generate_embedded_lua, cmdstr="$GENCOMSTR"))
+    # Generate core.c
+    def generate_embedded_lua(env, target, source) :
+        f = open(source[0].abspath, "r")
+        data = f.read()
+        f.close()
+        f = open(target[0].abspath, "w")
+        f.write('#include <stddef.h>\n')
+        f.write('const size_t ' + source[0].name.replace(".", "_") + "_size = " + str(len(data)) + ";\n")
+        f.write('const char ' + source[0].name.replace(".", "_") + "[] = {" + ", ".join([str(ord(c)) for c in data]) + "};\n")
+        f.close()
+    sluift_env.Command("core.c", ["core.lua"], env.Action(generate_embedded_lua, cmdstr="$GENCOMSTR"))
 
-	sluift_env.WriteVal("dll.c", sluift_env.Value(""))
+    sluift_env.WriteVal("dll.c", sluift_env.Value(""))
 
-	sluift_sources = [env.File(x) for x in sluift_sources]
-	for sluift_variant in ['dll', 'exe'] :
-		SConscript(["SConscript.variant"], variant_dir = sluift_variant,
-				duplicate = 0,
-				exports = ['sluift_sources', 'sluift_variant', 'sluift_env'])
+    sluift_sources = [env.File(x) for x in sluift_sources]
+    for sluift_variant in ['dll', 'exe'] :
+        SConscript(["SConscript.variant"], variant_dir = sluift_variant,
+                duplicate = 0,
+                exports = ['sluift_sources', 'sluift_variant', 'sluift_env'])
diff --git a/Sluift/SConscript.variant b/Sluift/SConscript.variant
index d0e2b18..9f56c91 100644
--- a/Sluift/SConscript.variant
+++ b/Sluift/SConscript.variant
@@ -6,37 +6,37 @@ Import('sluift_variant')
 Import('sluift_sources')
 
 if sluift_variant == 'exe' :
-	common_objects = sluift_env.StaticObject(sluift_sources)
+    common_objects = sluift_env.StaticObject(sluift_sources)
 
-	sluift_exe_env = sluift_env.Clone()
-	tokenize = sluift_exe_env.StaticObject("#/Sluift/tokenize.cpp")
-	exe_sources = tokenize + [
-		"#/Sluift/Console.cpp",
-		"#/Sluift/Terminal.cpp",
-		"#/Sluift/StandardTerminal.cpp",
-		"#/Sluift/Completer.cpp",
-		"#/Sluift/main.cpp",
-	]
+    sluift_exe_env = sluift_env.Clone()
+    tokenize = sluift_exe_env.StaticObject("#/Sluift/tokenize.cpp")
+    exe_sources = tokenize + [
+        "#/Sluift/Console.cpp",
+        "#/Sluift/Terminal.cpp",
+        "#/Sluift/StandardTerminal.cpp",
+        "#/Sluift/Completer.cpp",
+        "#/Sluift/main.cpp",
+    ]
 
-	if sluift_exe_env.get("HAVE_EDITLINE", False) :
-		sluift_exe_env.Append(CPPDEFINES = ["HAVE_EDITLINE"])
-		sluift_exe_env.MergeFlags(sluift_exe_env["EDITLINE_FLAGS"])
-		exe_sources += ["#/Sluift/EditlineTerminal.cpp"]
+    if sluift_exe_env.get("HAVE_EDITLINE", False) :
+        sluift_exe_env.Append(CPPDEFINES = ["HAVE_EDITLINE"])
+        sluift_exe_env.MergeFlags(sluift_exe_env["EDITLINE_FLAGS"])
+        exe_sources += ["#/Sluift/EditlineTerminal.cpp"]
 
-	env["SLUIFT"] = sluift_exe_env.Program("sluift", common_objects + exe_sources)
-	if sluift_exe_env.get("SLUIFT_INSTALLDIR", "") :
-		sluift_exe_env.Install(os.path.join(sluift_exe_env["SLUIFT_INSTALLDIR"], "bin"), env["SLUIFT"])
+    env["SLUIFT"] = sluift_exe_env.Program("sluift", common_objects + exe_sources)
+    if sluift_exe_env.get("SLUIFT_INSTALLDIR", "") :
+        sluift_exe_env.Install(os.path.join(sluift_exe_env["SLUIFT_INSTALLDIR"], "bin"), env["SLUIFT"])
 
-	# Unit tests
-	env.Append(UNITTEST_OBJECTS = tokenize + ["#/Sluift/UnitTest/TokenizeTest.cpp"])
+    # Unit tests
+    env.Append(UNITTEST_OBJECTS = tokenize + ["#/Sluift/UnitTest/TokenizeTest.cpp"])
 else :
-	sluift_env["SLUIFT_DLL_SUFFIX"] = "${SHLIBSUFFIX}"
-	if sluift_env["PLATFORM"] == "darwin" :
-		sluift_env["SLUIFT_DLL_SUFFIX"] = ".so"
-	sluift_dll = sluift_env.SharedLibrary(sluift_env.File("sluift${SLUIFT_DLL_SUFFIX}"), 
-			sluift_sources + ["#/Sluift/dll.c"])
-	if sluift_env.get("SLUIFT_INSTALLDIR", False) and sluift_env.get("LUA_VERSION", False) :
-		sluift_env.Install(
-				os.path.join(sluift_env["SLUIFT_INSTALLDIR"], "lib", "lua", sluift_env["LUA_VERSION"]), 
-				sluift_dll)
+    sluift_env["SLUIFT_DLL_SUFFIX"] = "${SHLIBSUFFIX}"
+    if sluift_env["PLATFORM"] == "darwin" :
+        sluift_env["SLUIFT_DLL_SUFFIX"] = ".so"
+    sluift_dll = sluift_env.SharedLibrary(sluift_env.File("sluift${SLUIFT_DLL_SUFFIX}"), 
+            sluift_sources + ["#/Sluift/dll.c"])
+    if sluift_env.get("SLUIFT_INSTALLDIR", False) and sluift_env.get("LUA_VERSION", False) :
+        sluift_env.Install(
+                os.path.join(sluift_env["SLUIFT_INSTALLDIR"], "lib", "lua", sluift_env["LUA_VERSION"]), 
+                sluift_dll)
 
diff --git a/SwifTools/Application/SConscript b/SwifTools/Application/SConscript
index 32924fc..29bcceb 100644
--- a/SwifTools/Application/SConscript
+++ b/SwifTools/Application/SConscript
@@ -1,27 +1,27 @@
 Import("swiftools_env", "env")
 
 sources = [
-		"ApplicationPathProvider.cpp",
-	]
+        "ApplicationPathProvider.cpp",
+    ]
 
 if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" :
-	sources += [
-			"CocoaApplication.mm",
-			"MacOSXApplicationPathProvider.cpp",
-		]
+    sources += [
+            "CocoaApplication.mm",
+            "MacOSXApplicationPathProvider.cpp",
+        ]
 elif swiftools_env["PLATFORM"] == "win32" :
-	sources += [
-			"WindowsApplicationPathProvider.cpp"
-		]
+    sources += [
+            "WindowsApplicationPathProvider.cpp"
+        ]
 else :
-	sources += [
-			"UnixApplicationPathProvider.cpp"
-		]
+    sources += [
+            "UnixApplicationPathProvider.cpp"
+        ]
 
 objects = swiftools_env.StaticObject(sources)
 swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects])
 
 if swiftools_env["PLATFORM"] != "darwin" or swiftools_env["target"] == "native" :
-	env.Append(UNITTEST_SOURCES = [
-			File("UnitTest/ApplicationPathProviderTest.cpp")
-		])
+    env.Append(UNITTEST_SOURCES = [
+            File("UnitTest/ApplicationPathProviderTest.cpp")
+        ])
diff --git a/SwifTools/Cocoa/SConscript b/SwifTools/Cocoa/SConscript
index 4ae4a07..f4bd286 100644
--- a/SwifTools/Cocoa/SConscript
+++ b/SwifTools/Cocoa/SConscript
@@ -2,7 +2,7 @@ Import("swiftools_env", "env")
 
 sources = []
 if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" :
-	sources += ["CocoaAction.mm"]
+    sources += ["CocoaAction.mm"]
 
 objects = swiftools_env.StaticObject(sources)
 swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects])
diff --git a/SwifTools/Dock/SConscript b/SwifTools/Dock/SConscript
index 94797cb..3dbcf60 100644
--- a/SwifTools/Dock/SConscript
+++ b/SwifTools/Dock/SConscript
@@ -1,13 +1,13 @@
 Import("swiftools_env")
 
 sources = [
-		"Dock.cpp",
-	]
+        "Dock.cpp",
+    ]
 
 if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" :
-	sources += [
-			"MacOSXDock.mm",
-		]
+    sources += [
+            "MacOSXDock.mm",
+        ]
 
 objects = swiftools_env.StaticObject(sources)
 swiftools_env.Append(SWIFTOOLS_OBJECTS = objects)
diff --git a/SwifTools/Idle/IdleQuerierTest/SConscript b/SwifTools/Idle/IdleQuerierTest/SConscript
index 5878a46..89bb3f9 100644
--- a/SwifTools/Idle/IdleQuerierTest/SConscript
+++ b/SwifTools/Idle/IdleQuerierTest/SConscript
@@ -1,12 +1,12 @@
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["BOOST_FLAGS"])
-	if myenv["HAVE_XSS"] :
-		myenv.MergeFlags(myenv.get("XSS_FLAGS", {}))
-		myenv.Append(LIBS = ["X11"])
-	myenv.MergeFlags(myenv["PLATFORM_FLAGS"])
-	tester = myenv.Program("IdleQuerierTest", ["IdleQuerierTest.cpp"])
+    myenv = env.Clone()
+    myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["BOOST_FLAGS"])
+    if myenv["HAVE_XSS"] :
+        myenv.MergeFlags(myenv.get("XSS_FLAGS", {}))
+        myenv.Append(LIBS = ["X11"])
+    myenv.MergeFlags(myenv["PLATFORM_FLAGS"])
+    tester = myenv.Program("IdleQuerierTest", ["IdleQuerierTest.cpp"])
diff --git a/SwifTools/Idle/UnitTest/SConscript b/SwifTools/Idle/UnitTest/SConscript
index f193349..26a9190 100644
--- a/SwifTools/Idle/UnitTest/SConscript
+++ b/SwifTools/Idle/UnitTest/SConscript
@@ -1,5 +1,5 @@
 Import("env")
 
 env.Append(UNITTEST_SOURCES = [
-		File("ActualIdleDetectorTest.cpp")
-	])
+        File("ActualIdleDetectorTest.cpp")
+    ])
diff --git a/SwifTools/Notifier/SConscript b/SwifTools/Notifier/SConscript
index e60937b..a8e8590 100644
--- a/SwifTools/Notifier/SConscript
+++ b/SwifTools/Notifier/SConscript
@@ -3,25 +3,25 @@ Import("swiftools_env")
 myenv = swiftools_env.Clone()
 
 sources = [
-		"Notifier.cpp",
-	]
+        "Notifier.cpp",
+    ]
 
 if swiftools_env.get("HAVE_GROWL", False) :
-	sources += [
-			"GrowlNotifier.mm",
-			"GrowlNotifierDelegate.mm",
-		]
+    sources += [
+            "GrowlNotifier.mm",
+            "GrowlNotifierDelegate.mm",
+        ]
 elif myenv["PLATFORM"] == "darwin" :
-	sources += [
-			"NotificationCenterNotifier.mm",
-			"NotificationCenterNotifierDelegate.mm",
-		]
+    sources += [
+            "NotificationCenterNotifier.mm",
+            "NotificationCenterNotifierDelegate.mm",
+        ]
 
 if swiftools_env.get("HAVE_SNARL", False) :
-	myenv.MergeFlags(myenv["SNARL_FLAGS"])
-	sources += [
-			"SnarlNotifier.cpp",
-		]
-		
+    myenv.MergeFlags(myenv["SNARL_FLAGS"])
+    sources += [
+            "SnarlNotifier.cpp",
+        ]
+
 objects = myenv.StaticObject(sources)
 swiftools_env.Append(SWIFTOOLS_OBJECTS = objects)
diff --git a/SwifTools/SConscript b/SwifTools/SConscript
index b9822e0..aa6d47e 100644
--- a/SwifTools/SConscript
+++ b/SwifTools/SConscript
@@ -5,79 +5,79 @@ Import("env")
 ################################################################################
 
 if env["SCONS_STAGE"] == "flags" :
-	env["SWIFTOOLS_FLAGS"] = {
-			"LIBPATH": [Dir(".")],
-			"LIBS": ["SwifTools"]
-		}
+    env["SWIFTOOLS_FLAGS"] = {
+            "LIBPATH": [Dir(".")],
+            "LIBS": ["SwifTools"]
+        }
 
 ################################################################################
 # Build
 ################################################################################
 
 if env["SCONS_STAGE"] == "build" :
-	swiftools_env = env.Clone()
-	swiftools_env.UseFlags(swiftools_env["SWIFTEN_FLAGS"])
-	swiftools_env.UseFlags(swiftools_env["BOOST_FLAGS"])
+    swiftools_env = env.Clone()
+    swiftools_env.UseFlags(swiftools_env["SWIFTEN_FLAGS"])
+    swiftools_env.UseFlags(swiftools_env["BOOST_FLAGS"])
 
-	sources = [
-			"Idle/IdleDetector.cpp",
-			"Idle/ActualIdleDetector.cpp",
-			"Idle/IdleQuerier.cpp",
-			"Idle/PlatformIdleQuerier.cpp",
-			"AutoUpdater/AutoUpdater.cpp",
-			"AutoUpdater/PlatformAutoUpdaterFactory.cpp",
-			"Linkify.cpp",
-			"TabComplete.cpp",
-			"LastLineTracker.cpp",
-		]
-	
-	if swiftools_env["HAVE_HUNSPELL"] :
-		swiftools_env.UseFlags(swiftools_env["HUNSPELL_FLAGS"])
-		swiftools_env.Append(CPPDEFINES = ["HAVE_HUNSPELL"])
-		sources += [
-			"SpellCheckerFactory.cpp",
-			"HunspellChecker.cpp",
-			"SpellParser.cpp",
-		]
-	elif swiftools_env["PLATFORM"] == "darwin" and env["target"] == "native" :
-		sources += [
-			"SpellCheckerFactory.cpp",
-			"MacOSXChecker.mm",
-			"SpellParser.cpp",
-		]
+    sources = [
+            "Idle/IdleDetector.cpp",
+            "Idle/ActualIdleDetector.cpp",
+            "Idle/IdleQuerier.cpp",
+            "Idle/PlatformIdleQuerier.cpp",
+            "AutoUpdater/AutoUpdater.cpp",
+            "AutoUpdater/PlatformAutoUpdaterFactory.cpp",
+            "Linkify.cpp",
+            "TabComplete.cpp",
+            "LastLineTracker.cpp",
+        ]
 
+    if swiftools_env["HAVE_HUNSPELL"] :
+        swiftools_env.UseFlags(swiftools_env["HUNSPELL_FLAGS"])
+        swiftools_env.Append(CPPDEFINES = ["HAVE_HUNSPELL"])
+        sources += [
+            "SpellCheckerFactory.cpp",
+            "HunspellChecker.cpp",
+            "SpellParser.cpp",
+        ]
+    elif swiftools_env["PLATFORM"] == "darwin" and env["target"] == "native" :
+        sources += [
+            "SpellCheckerFactory.cpp",
+            "MacOSXChecker.mm",
+            "SpellParser.cpp",
+        ]
 
-	if swiftools_env.get("HAVE_SPARKLE", 0) :
-		swiftools_env.UseFlags(swiftools_env["SPARKLE_FLAGS"])
-		swiftools_env.Append(CPPDEFINES = ["HAVE_SPARKLE"])
-		sources += ["AutoUpdater/SparkleAutoUpdater.mm"]
 
-	if swiftools_env["PLATFORM"] == "win32" :
-		sources += ["Idle/WindowsIdleQuerier.cpp"]
-	elif swiftools_env["PLATFORM"] == "darwin" and swiftools_env.get("HAVE_IOKIT", False) :
-			swiftools_env.Append(CPPDEFINES = ["HAVE_IOKIT"])
-			sources += ["Idle/MacOSXIdleQuerier.cpp"]
-	elif swiftools_env["HAVE_XSS"] :
-		swiftools_env.Append(CPPDEFINES = ["HAVE_XSS"])
-		sources += ["Idle/XSSIdleQuerier.cpp"]
+    if swiftools_env.get("HAVE_SPARKLE", 0) :
+        swiftools_env.UseFlags(swiftools_env["SPARKLE_FLAGS"])
+        swiftools_env.Append(CPPDEFINES = ["HAVE_SPARKLE"])
+        sources += ["AutoUpdater/SparkleAutoUpdater.mm"]
 
-	if env.get("HAVE_BREAKPAD", False) :
-		swiftools_env.UseFlags(swiftools_env["BREAKPAD_FLAGS"])
-		swiftools_env.Append(CPPDEFINES = ["HAVE_BREAKPAD"])
-	sources += ["CrashReporter.cpp"]
-	
-	swiftools_env["SWIFTOOLS_OBJECTS"] = []
-	Export("swiftools_env")
-	
-	SConscript(dirs = [
-			"Application",
-			"Dock",
-			"Notifier",
-			"URIHandler",
-			"Idle/IdleQuerierTest",
-			"Idle/UnitTest",
-			"Cocoa",
-			"UnitTest"
-		])
+    if swiftools_env["PLATFORM"] == "win32" :
+        sources += ["Idle/WindowsIdleQuerier.cpp"]
+    elif swiftools_env["PLATFORM"] == "darwin" and swiftools_env.get("HAVE_IOKIT", False) :
+            swiftools_env.Append(CPPDEFINES = ["HAVE_IOKIT"])
+            sources += ["Idle/MacOSXIdleQuerier.cpp"]
+    elif swiftools_env["HAVE_XSS"] :
+        swiftools_env.Append(CPPDEFINES = ["HAVE_XSS"])
+        sources += ["Idle/XSSIdleQuerier.cpp"]
 
-	swiftools_env.StaticLibrary("SwifTools", sources + swiftools_env["SWIFTOOLS_OBJECTS"])
+    if env.get("HAVE_BREAKPAD", False) :
+        swiftools_env.UseFlags(swiftools_env["BREAKPAD_FLAGS"])
+        swiftools_env.Append(CPPDEFINES = ["HAVE_BREAKPAD"])
+    sources += ["CrashReporter.cpp"]
+
+    swiftools_env["SWIFTOOLS_OBJECTS"] = []
+    Export("swiftools_env")
+
+    SConscript(dirs = [
+            "Application",
+            "Dock",
+            "Notifier",
+            "URIHandler",
+            "Idle/IdleQuerierTest",
+            "Idle/UnitTest",
+            "Cocoa",
+            "UnitTest"
+        ])
+
+    swiftools_env.StaticLibrary("SwifTools", sources + swiftools_env["SWIFTOOLS_OBJECTS"])
diff --git a/SwifTools/URIHandler/SConscript b/SwifTools/URIHandler/SConscript
index 90ec00a..8ebbdaf 100644
--- a/SwifTools/URIHandler/SConscript
+++ b/SwifTools/URIHandler/SConscript
@@ -1,22 +1,22 @@
 Import("swiftools_env", "env")
 
 sources = [
-		"XMPPURI.cpp",
-		"URIHandler.cpp",
-	]
+        "XMPPURI.cpp",
+        "URIHandler.cpp",
+    ]
 
 if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" :
-	sources += [
-			"MacOSXURIHandler.mm"
-		]
+    sources += [
+            "MacOSXURIHandler.mm"
+        ]
 elif swiftools_env["PLATFORM"] == "win32" :
-	sources += []
+    sources += []
 else :
-	sources += []
+    sources += []
 
 objects = swiftools_env.StaticObject(sources)
 swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects])
 
 env.Append(UNITTEST_SOURCES = [
-		File("UnitTest/XMPPURITest.cpp"),
-	])
+        File("UnitTest/XMPPURITest.cpp"),
+    ])
diff --git a/SwifTools/UnitTest/SConscript b/SwifTools/UnitTest/SConscript
index dbd1ce5..bf44899 100644
--- a/SwifTools/UnitTest/SConscript
+++ b/SwifTools/UnitTest/SConscript
@@ -1,12 +1,12 @@
 Import("env")
 
 env.Append(UNITTEST_SOURCES = [
-		File("LinkifyTest.cpp"),
-		File("TabCompleteTest.cpp"),
-		File("LastLineTrackerTest.cpp"),
-	])
+        File("LinkifyTest.cpp"),
+        File("TabCompleteTest.cpp"),
+        File("LastLineTrackerTest.cpp"),
+    ])
 
 if env["HAVE_HUNSPELL"] :
-	env.Append(UNITTEST_SOURCES = [
-		File("SpellParserTest.cpp"),
-	])
+    env.Append(UNITTEST_SOURCES = [
+        File("SpellParserTest.cpp"),
+    ])
diff --git a/Swift/Controllers/SConscript b/Swift/Controllers/SConscript
index 5ebbdd3..105b44b 100644
--- a/Swift/Controllers/SConscript
+++ b/Swift/Controllers/SConscript
@@ -6,10 +6,10 @@ import Version
 ################################################################################
 
 if env["SCONS_STAGE"] == "flags" :
-	env["SWIFT_CONTROLLERS_FLAGS"] = {
-			"LIBPATH": [Dir(".")],
-			"LIBS": ["SwiftControllers"]
-		}
+    env["SWIFT_CONTROLLERS_FLAGS"] = {
+            "LIBPATH": [Dir(".")],
+            "LIBS": ["SwiftControllers"]
+        }
 
 
 ################################################################################
@@ -17,95 +17,95 @@ if env["SCONS_STAGE"] == "flags" :
 ################################################################################
 
 if env["SCONS_STAGE"] == "build" :
-	myenv = env.Clone()
-	myenv.BuildVersion("BuildVersion.h", project = "swift")
-	myenv.UseFlags(env["SWIFTEN_FLAGS"])
-	myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
-	myenv.StaticLibrary("SwiftControllers", [
-			"Chat/ChatController.cpp",
-			"Chat/ChatControllerBase.cpp",
-			"Chat/ChatsManager.cpp",
-			"Chat/MUCController.cpp",
-			"Chat/MUCSearchController.cpp",
-			"Chat/UserSearchController.cpp",
-			"Chat/ChatMessageParser.cpp",
-			"ContactSuggester.cpp",
-			"MainController.cpp",
-			"ProfileController.cpp",
-			"ShowProfileController.cpp",
-			"ContactEditController.cpp",
-			"FileTransfer/FileTransferController.cpp",
-			"FileTransfer/FileTransferOverview.cpp",
-			"FileTransfer/FileTransferProgressInfo.cpp",
-			"Roster/RosterController.cpp",
-			"Roster/RosterGroupExpandinessPersister.cpp",
-			"Roster/ContactRosterItem.cpp",
-			"Roster/GroupRosterItem.cpp",
-			"Roster/RosterItem.cpp",
-			"Roster/Roster.cpp",
-			"Roster/RosterVCardProvider.cpp",
-			"Roster/TableRoster.cpp",
-			"EventWindowController.cpp",
-			"SoundEventController.cpp",
-			"SystemTrayController.cpp",
-			"XMLConsoleController.cpp",
-			"HistoryViewController.cpp",
-			"HistoryController.cpp",
-			"FileTransferListController.cpp",
-			"BlockListController.cpp",
-			"StatusTracker.cpp",
-			"PresenceNotifier.cpp",
-			"EventNotifier.cpp",
-			"AdHocManager.cpp",
-			"AdHocController.cpp",
-			"XMPPEvents/EventController.cpp",
-			"UIEvents/UIEvent.cpp",
-			"UIInterfaces/XMLConsoleWidget.cpp",
-			"UIInterfaces/ChatListWindow.cpp",
-			"UIInterfaces/HighlightEditorWindow.cpp",
-			"PreviousStatusStore.cpp",
-			"ProfileSettingsProvider.cpp",
-			"Settings/SettingsProviderHierachy.cpp",
-			"Settings/XMLSettingsProvider.cpp",
-			"Storages/CertificateStorageFactory.cpp",
-			"Storages/CertificateStorage.cpp",
-			"Storages/CertificateFileStorage.cpp",
-			"Storages/CertificateMemoryStorage.cpp",
-			"Storages/AvatarFileStorage.cpp",
-			"Storages/FileStorages.cpp",
-			"Storages/RosterFileStorage.cpp",
-			"Storages/CapsFileStorage.cpp",
-			"Storages/VCardFileStorage.cpp",
-			"StatusUtil.cpp",
-			"Translator.cpp",
-			"XMPPURIController.cpp",
-			"ChatMessageSummarizer.cpp",
-			"SettingConstants.cpp",
-			"WhiteboardManager.cpp",
-			"StatusCache.cpp",
-			"HighlightAction.cpp",
-			"HighlightEditorController.cpp",
-			"HighlightManager.cpp",
-			"HighlightRule.cpp",
-			"Highlighter.cpp",
-			"ContactsFromXMPPRoster.cpp",
-			"ContactProvider.cpp",
-			"Contact.cpp"
-		])
+    myenv = env.Clone()
+    myenv.BuildVersion("BuildVersion.h", project = "swift")
+    myenv.UseFlags(env["SWIFTEN_FLAGS"])
+    myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
+    myenv.StaticLibrary("SwiftControllers", [
+            "Chat/ChatController.cpp",
+            "Chat/ChatControllerBase.cpp",
+            "Chat/ChatsManager.cpp",
+            "Chat/MUCController.cpp",
+            "Chat/MUCSearchController.cpp",
+            "Chat/UserSearchController.cpp",
+            "Chat/ChatMessageParser.cpp",
+            "ContactSuggester.cpp",
+            "MainController.cpp",
+            "ProfileController.cpp",
+            "ShowProfileController.cpp",
+            "ContactEditController.cpp",
+            "FileTransfer/FileTransferController.cpp",
+            "FileTransfer/FileTransferOverview.cpp",
+            "FileTransfer/FileTransferProgressInfo.cpp",
+            "Roster/RosterController.cpp",
+            "Roster/RosterGroupExpandinessPersister.cpp",
+            "Roster/ContactRosterItem.cpp",
+            "Roster/GroupRosterItem.cpp",
+            "Roster/RosterItem.cpp",
+            "Roster/Roster.cpp",
+            "Roster/RosterVCardProvider.cpp",
+            "Roster/TableRoster.cpp",
+            "EventWindowController.cpp",
+            "SoundEventController.cpp",
+            "SystemTrayController.cpp",
+            "XMLConsoleController.cpp",
+            "HistoryViewController.cpp",
+            "HistoryController.cpp",
+            "FileTransferListController.cpp",
+            "BlockListController.cpp",
+            "StatusTracker.cpp",
+            "PresenceNotifier.cpp",
+            "EventNotifier.cpp",
+            "AdHocManager.cpp",
+            "AdHocController.cpp",
+            "XMPPEvents/EventController.cpp",
+            "UIEvents/UIEvent.cpp",
+            "UIInterfaces/XMLConsoleWidget.cpp",
+            "UIInterfaces/ChatListWindow.cpp",
+            "UIInterfaces/HighlightEditorWindow.cpp",
+            "PreviousStatusStore.cpp",
+            "ProfileSettingsProvider.cpp",
+            "Settings/SettingsProviderHierachy.cpp",
+            "Settings/XMLSettingsProvider.cpp",
+            "Storages/CertificateStorageFactory.cpp",
+            "Storages/CertificateStorage.cpp",
+            "Storages/CertificateFileStorage.cpp",
+            "Storages/CertificateMemoryStorage.cpp",
+            "Storages/AvatarFileStorage.cpp",
+            "Storages/FileStorages.cpp",
+            "Storages/RosterFileStorage.cpp",
+            "Storages/CapsFileStorage.cpp",
+            "Storages/VCardFileStorage.cpp",
+            "StatusUtil.cpp",
+            "Translator.cpp",
+            "XMPPURIController.cpp",
+            "ChatMessageSummarizer.cpp",
+            "SettingConstants.cpp",
+            "WhiteboardManager.cpp",
+            "StatusCache.cpp",
+            "HighlightAction.cpp",
+            "HighlightEditorController.cpp",
+            "HighlightManager.cpp",
+            "HighlightRule.cpp",
+            "Highlighter.cpp",
+            "ContactsFromXMPPRoster.cpp",
+            "ContactProvider.cpp",
+            "Contact.cpp"
+        ])
 
-	env.Append(UNITTEST_SOURCES = [
-			File("Roster/UnitTest/RosterControllerTest.cpp"),
-			File("Roster/UnitTest/RosterTest.cpp"),
-			File("Roster/UnitTest/LeastCommonSubsequenceTest.cpp"),
-			File("Roster/UnitTest/TableRosterTest.cpp"),	
-			File("UnitTest/PreviousStatusStoreTest.cpp"),
-			File("UnitTest/PresenceNotifierTest.cpp"),
-			File("Chat/UnitTest/ChatsManagerTest.cpp"),
-			File("Chat/UnitTest/MUCControllerTest.cpp"),
-			File("Chat/UnitTest/ChatMessageParserTest.cpp"),
-			File("UnitTest/MockChatWindow.cpp"),
-			File("UnitTest/ChatMessageSummarizerTest.cpp"),
-			File("Settings/UnitTest/SettingsProviderHierachyTest.cpp"),
-			File("UnitTest/HighlightRuleTest.cpp"),
-			File("UnitTest/ContactSuggesterTest.cpp")
-		])
+    env.Append(UNITTEST_SOURCES = [
+            File("Roster/UnitTest/RosterControllerTest.cpp"),
+            File("Roster/UnitTest/RosterTest.cpp"),
+            File("Roster/UnitTest/LeastCommonSubsequenceTest.cpp"),
+            File("Roster/UnitTest/TableRosterTest.cpp"),    
+            File("UnitTest/PreviousStatusStoreTest.cpp"),
+            File("UnitTest/PresenceNotifierTest.cpp"),
+            File("Chat/UnitTest/ChatsManagerTest.cpp"),
+            File("Chat/UnitTest/MUCControllerTest.cpp"),
+            File("Chat/UnitTest/ChatMessageParserTest.cpp"),
+            File("UnitTest/MockChatWindow.cpp"),
+            File("UnitTest/ChatMessageSummarizerTest.cpp"),
+            File("Settings/UnitTest/SettingsProviderHierachyTest.cpp"),
+            File("UnitTest/HighlightRuleTest.cpp"),
+            File("UnitTest/ContactSuggesterTest.cpp")
+        ])
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index e3a8d39..9c3d0af 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -2,20 +2,20 @@ import os, datetime, re, time
 import Version
 
 def generateQRCTheme(dir, prefix) :
-	sourceDir = dir.abspath
-	result = "<!-- WARNING: This file is automatically generated. Any changes will be overwritten. -->\n"
-	result += "<RCC version =\"1.0\">"
-	result += "<qresource prefix=\"/themes/" + prefix + "\">"
-	for (path, dirs, files) in os.walk(sourceDir) :
-		for file in files :
-			filePath = os.path.join(path,file)
-			result += "<file alias=\"%(alias)s\">%(path)s</file>" % {
-					"alias": filePath[len(sourceDir)+1:],
-					"path": filePath
-				}
-	result += "</qresource>"
-	result += "</RCC>"
-	return result
+    sourceDir = dir.abspath
+    result = "<!-- WARNING: This file is automatically generated. Any changes will be overwritten. -->\n"
+    result += "<RCC version =\"1.0\">"
+    result += "<qresource prefix=\"/themes/" + prefix + "\">"
+    for (path, dirs, files) in os.walk(sourceDir) :
+        for file in files :
+            filePath = os.path.join(path,file)
+            result += "<file alias=\"%(alias)s\">%(path)s</file>" % {
+                    "alias": filePath[len(sourceDir)+1:],
+                    "path": filePath
+                }
+    result += "</qresource>"
+    result += "</RCC>"
+    return result
 
 Import("env")
 
@@ -24,33 +24,33 @@ myenv = env.Clone()
 # Disable warnings that affect Qt
 myenv["CXXFLAGS"] = filter(lambda x : x != "-Wfloat-equal", myenv["CXXFLAGS"])
 if "clang" in env["CC"] :
-	myenv.Append(CXXFLAGS = ["-Wno-float-equal", "-Wno-shorten-64-to-32", "-Wno-missing-prototypes", "-Wno-unreachable-code", "-Wno-disabled-macro-expansion", "-Wno-unused-private-field", "-Wno-extra-semi", "-Wno-duplicate-enum", "-Wno-missing-variable-declarations", "-Wno-conversion", "-Wno-undefined-reinterpret-cast"])
+    myenv.Append(CXXFLAGS = ["-Wno-float-equal", "-Wno-shorten-64-to-32", "-Wno-missing-prototypes", "-Wno-unreachable-code", "-Wno-disabled-macro-expansion", "-Wno-unused-private-field", "-Wno-extra-semi", "-Wno-duplicate-enum", "-Wno-missing-variable-declarations", "-Wno-conversion", "-Wno-undefined-reinterpret-cast"])
 
 myenv.UseFlags(env["SWIFT_CONTROLLERS_FLAGS"])
 myenv.UseFlags(env["SWIFTOOLS_FLAGS"])
 if myenv["HAVE_XSS"] :
-	myenv.UseFlags(env["XSS_FLAGS"])
+    myenv.UseFlags(env["XSS_FLAGS"])
 if env["PLATFORM"] == "posix" :
-	myenv.Append(LIBS = ["X11"])
+    myenv.Append(LIBS = ["X11"])
 if myenv["HAVE_SPARKLE"] :
-	myenv.UseFlags(env["SPARKLE_FLAGS"])
+    myenv.UseFlags(env["SPARKLE_FLAGS"])
 myenv.UseFlags(env["SWIFTEN_FLAGS"])
 myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
 if myenv.get("HAVE_BREAKPAD") :
-	myenv.UseFlags(env["BREAKPAD_FLAGS"])
+    myenv.UseFlags(env["BREAKPAD_FLAGS"])
 if myenv.get("HAVE_GROWL", False) :
-	myenv.UseFlags(myenv["GROWL_FLAGS"])
-	myenv.Append(CPPDEFINES = ["HAVE_GROWL"])
+    myenv.UseFlags(myenv["GROWL_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_GROWL"])
 if myenv["swift_mobile"] :
-	myenv.Append(CPPDEFINES = ["SWIFT_MOBILE"])
+    myenv.Append(CPPDEFINES = ["SWIFT_MOBILE"])
 if myenv.get("HAVE_SNARL", False) :
-	myenv.UseFlags(myenv["SNARL_FLAGS"])
-	myenv.Append(CPPDEFINES = ["HAVE_SNARL"])
+    myenv.UseFlags(myenv["SNARL_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_SNARL"])
 if myenv.get("HAVE_HUNSPELL", True):
-	myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"])
-	myenv.UseFlags(myenv["HUNSPELL_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"])
+    myenv.UseFlags(myenv["HUNSPELL_FLAGS"])
 if env["PLATFORM"] == "win32" :
-	myenv.Append(LIBS = ["cryptui"])
+    myenv.Append(LIBS = ["cryptui"])
 myenv.UseFlags(myenv["PLATFORM_FLAGS"])
 
 myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
@@ -59,174 +59,174 @@ myenv.Tool("wix", toolpath = ["#/BuildTools/SCons/Tools"])
 myenv.Tool("textfile", toolpath = ["#/BuildTools/SCons/Tools"])
 qt4modules = ['QtCore', 'QtWebKit', 'QtGui']
 if myenv["qt5"] :
-	qt_version = '5'
-	qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia']
-	if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
-		qt4modules += ['QtX11Extras']
+    qt_version = '5'
+    qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia']
+    if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
+        qt4modules += ['QtX11Extras']
 else :
-	qt_version = '4'
+    qt_version = '4'
 if env["PLATFORM"] == "posix" :
-	qt4modules += ["QtDBus"]
+    qt4modules += ["QtDBus"]
 if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
-	qt4modules += ["QtNetwork"]
+    qt4modules += ["QtNetwork"]
 
 myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version)
 
 if env["PLATFORM"] == "win32" :
-	#myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"])
-	myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
-	myenv.Append(LIBS = "qtmain")
-	if myenv.get("HAVE_SCHANNEL", 0) :
-		myenv.Append(LIBS = "Cryptui")
-		myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
-		if env["debug"] and not env["optimize"]:
-			myenv.Append(LINKFLAGS = ["/NODEFAULTLIB:msvcrt"])
+    #myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"])
+    myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
+    myenv.Append(LIBS = "qtmain")
+    if myenv.get("HAVE_SCHANNEL", 0) :
+        myenv.Append(LIBS = "Cryptui")
+        myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
+        if env["debug"] and not env["optimize"]:
+            myenv.Append(LINKFLAGS = ["/NODEFAULTLIB:msvcrt"])
 
 myenv.WriteVal("DefaultTheme.qrc", myenv.Value(generateQRCTheme(myenv.Dir("#/Swift/resources/themes/Default"), "Default")))
 
 sources = [
-	"main.cpp",
-	"QtAboutWidget.cpp",
-	"QtSpellCheckerWindow.cpp",
-	"QtAvatarWidget.cpp",
-	"QtUIFactory.cpp",
-	"QtChatWindowFactory.cpp",
-	"QtClickableLabel.cpp",
-	"QtLoginWindow.cpp",
-	"QtMainWindow.cpp",
-	"QtProfileWindow.cpp",
-	"QtBlockListEditorWindow.cpp",
-	"QtNameWidget.cpp",
-	"QtSettingsProvider.cpp",
-	"QtStatusWidget.cpp",
-	"QtScaledAvatarCache.cpp",
-	"QtSwift.cpp",
-	"QtURIHandler.cpp",
-	"QtChatWindow.cpp",
-	"QtChatView.cpp",
-	"QtWebKitChatView.cpp",
-	"QtPlainChatView.cpp",
-	"QtChatTheme.cpp",
-	"QtChatTabs.cpp",
-	"QtChatTabsBase.cpp",
-	"QtChatTabsShortcutOnlySubstitute.cpp",
-	"QtSoundPlayer.cpp",
-	"QtSystemTray.cpp",
-	"QtCachedImageScaler.cpp",
-	"QtTabbable.cpp",
-	"QtTabWidget.cpp",
-	"QtTextEdit.cpp",
-	"QtXMLConsoleWidget.cpp",
-	"QtHistoryWindow.cpp",
-	"QtFileTransferListWidget.cpp",
-	"QtFileTransferListItemModel.cpp",
-	"QtAdHocCommandWindow.cpp",
-	"QtAdHocCommandWithJIDWindow.cpp",
-	"QtUtilities.cpp",
-	"QtBookmarkDetailWindow.cpp",
-	"QtAddBookmarkWindow.cpp",
-	"QtEditBookmarkWindow.cpp",
-	"QtEmoticonsGrid.cpp",
-	"QtEmoticonCell.cpp",
-	"QtContactEditWindow.cpp",
-	"QtContactEditWidget.cpp",
-	"QtSingleWindow.cpp",
-	"QtHighlightEditor.cpp",
-	"QtColorToolButton.cpp",
-	"QtClosableLineEdit.cpp",
-	"ChatSnippet.cpp",
-	"MessageSnippet.cpp",
-	"SystemMessageSnippet.cpp",
-	"QtElidingLabel.cpp",
-	"QtFormWidget.cpp",
-	"QtFormResultItemModel.cpp",
-	"QtLineEdit.cpp",
-	"QtJoinMUCWindow.cpp",
-	"QtConnectionSettingsWindow.cpp",
-	"Roster/RosterModel.cpp",
-	"Roster/QtTreeWidget.cpp",
-#	"Roster/QtTreeWidgetItem.cpp",
-	"Roster/RosterDelegate.cpp",
-	"Roster/GroupItemDelegate.cpp",
-	"Roster/DelegateCommons.cpp",
-	"Roster/QtFilterWidget.cpp",
-	"Roster/QtRosterWidget.cpp",
-	"Roster/QtOccupantListWidget.cpp",
-	"Roster/RosterTooltip.cpp",
-	"EventViewer/EventModel.cpp",
-	"EventViewer/EventDelegate.cpp",
-	"EventViewer/TwoLineDelegate.cpp",
-	"EventViewer/QtEventWindow.cpp",
-	"EventViewer/QtEvent.cpp",
-	"ChatList/QtChatListWindow.cpp",
-	"ChatList/ChatListModel.cpp",
-	"ChatList/ChatListDelegate.cpp",
-	"ChatList/ChatListMUCItem.cpp",
-	"ChatList/ChatListRecentItem.cpp",
-	"ChatList/ChatListWhiteboardItem.cpp",
-	"MUCSearch/QtMUCSearchWindow.cpp",
-	"MUCSearch/MUCSearchModel.cpp",
-	"MUCSearch/MUCSearchRoomItem.cpp",
-	"MUCSearch/MUCSearchEmptyItem.cpp",
-	"MUCSearch/MUCSearchDelegate.cpp",
-	"UserSearch/ContactListDelegate.cpp",
-	"UserSearch/ContactListModel.cpp",
-	"UserSearch/QtContactListWidget.cpp",
-	"UserSearch/QtSuggestingJIDInput.cpp",
-	"UserSearch/QtUserSearchFirstPage.cpp",
-	"UserSearch/QtUserSearchFirstMultiJIDPage.cpp",
-	"UserSearch/QtUserSearchFieldsPage.cpp",
-	"UserSearch/QtUserSearchResultsPage.cpp",
-	"UserSearch/QtUserSearchDetailsPage.cpp",
-	"UserSearch/QtUserSearchWindow.cpp",
-	"UserSearch/UserSearchModel.cpp",
-	"UserSearch/UserSearchDelegate.cpp",
-	"Whiteboard/FreehandLineItem.cpp",
-	"Whiteboard/GView.cpp",
-	"Whiteboard/TextDialog.cpp",
-	"Whiteboard/QtWhiteboardWindow.cpp",
-	"Whiteboard/ColorWidget.cpp",
-	"QtSubscriptionRequestWindow.cpp",
-	"QtRosterHeader.cpp",
-	"QtWebView.cpp",
-	"qrc_DefaultTheme.cc",
-	"qrc_Swift.cc",
-	"QtChatWindowJSBridge.cpp",
-	"QtMUCConfigurationWindow.cpp",
-	"QtAffiliationEditor.cpp",
-	"QtUISettingConstants.cpp",
-	"QtURLValidator.cpp",
-	"QtResourceHelper.cpp",
-	"QtSpellCheckHighlighter.cpp",
-	"Trellis/QtDynamicGridLayout.cpp",
-	"Trellis/QtDNDTabBar.cpp",
-	"Trellis/QtGridSelectionDialog.cpp"
+    "main.cpp",
+    "QtAboutWidget.cpp",
+    "QtSpellCheckerWindow.cpp",
+    "QtAvatarWidget.cpp",
+    "QtUIFactory.cpp",
+    "QtChatWindowFactory.cpp",
+    "QtClickableLabel.cpp",
+    "QtLoginWindow.cpp",
+    "QtMainWindow.cpp",
+    "QtProfileWindow.cpp",
+    "QtBlockListEditorWindow.cpp",
+    "QtNameWidget.cpp",
+    "QtSettingsProvider.cpp",
+    "QtStatusWidget.cpp",
+    "QtScaledAvatarCache.cpp",
+    "QtSwift.cpp",
+    "QtURIHandler.cpp",
+    "QtChatWindow.cpp",
+    "QtChatView.cpp",
+    "QtWebKitChatView.cpp",
+    "QtPlainChatView.cpp",
+    "QtChatTheme.cpp",
+    "QtChatTabs.cpp",
+    "QtChatTabsBase.cpp",
+    "QtChatTabsShortcutOnlySubstitute.cpp",
+    "QtSoundPlayer.cpp",
+    "QtSystemTray.cpp",
+    "QtCachedImageScaler.cpp",
+    "QtTabbable.cpp",
+    "QtTabWidget.cpp",
+    "QtTextEdit.cpp",
+    "QtXMLConsoleWidget.cpp",
+    "QtHistoryWindow.cpp",
+    "QtFileTransferListWidget.cpp",
+    "QtFileTransferListItemModel.cpp",
+    "QtAdHocCommandWindow.cpp",
+    "QtAdHocCommandWithJIDWindow.cpp",
+    "QtUtilities.cpp",
+    "QtBookmarkDetailWindow.cpp",
+    "QtAddBookmarkWindow.cpp",
+    "QtEditBookmarkWindow.cpp",
+    "QtEmoticonsGrid.cpp",
+    "QtEmoticonCell.cpp",
+    "QtContactEditWindow.cpp",
+    "QtContactEditWidget.cpp",
+    "QtSingleWindow.cpp",
+    "QtHighlightEditor.cpp",
+    "QtColorToolButton.cpp",
+    "QtClosableLineEdit.cpp",
+    "ChatSnippet.cpp",
+    "MessageSnippet.cpp",
+    "SystemMessageSnippet.cpp",
+    "QtElidingLabel.cpp",
+    "QtFormWidget.cpp",
+    "QtFormResultItemModel.cpp",
+    "QtLineEdit.cpp",
+    "QtJoinMUCWindow.cpp",
+    "QtConnectionSettingsWindow.cpp",
+    "Roster/RosterModel.cpp",
+    "Roster/QtTreeWidget.cpp",
+#   "Roster/QtTreeWidgetItem.cpp",
+    "Roster/RosterDelegate.cpp",
+    "Roster/GroupItemDelegate.cpp",
+    "Roster/DelegateCommons.cpp",
+    "Roster/QtFilterWidget.cpp",
+    "Roster/QtRosterWidget.cpp",
+    "Roster/QtOccupantListWidget.cpp",
+    "Roster/RosterTooltip.cpp",
+    "EventViewer/EventModel.cpp",
+    "EventViewer/EventDelegate.cpp",
+    "EventViewer/TwoLineDelegate.cpp",
+    "EventViewer/QtEventWindow.cpp",
+    "EventViewer/QtEvent.cpp",
+    "ChatList/QtChatListWindow.cpp",
+    "ChatList/ChatListModel.cpp",
+    "ChatList/ChatListDelegate.cpp",
+    "ChatList/ChatListMUCItem.cpp",
+    "ChatList/ChatListRecentItem.cpp",
+    "ChatList/ChatListWhiteboardItem.cpp",
+    "MUCSearch/QtMUCSearchWindow.cpp",
+    "MUCSearch/MUCSearchModel.cpp",
+    "MUCSearch/MUCSearchRoomItem.cpp",
+    "MUCSearch/MUCSearchEmptyItem.cpp",
+    "MUCSearch/MUCSearchDelegate.cpp",
+    "UserSearch/ContactListDelegate.cpp",
+    "UserSearch/ContactListModel.cpp",
+    "UserSearch/QtContactListWidget.cpp",
+    "UserSearch/QtSuggestingJIDInput.cpp",
+    "UserSearch/QtUserSearchFirstPage.cpp",
+    "UserSearch/QtUserSearchFirstMultiJIDPage.cpp",
+    "UserSearch/QtUserSearchFieldsPage.cpp",
+    "UserSearch/QtUserSearchResultsPage.cpp",
+    "UserSearch/QtUserSearchDetailsPage.cpp",
+    "UserSearch/QtUserSearchWindow.cpp",
+    "UserSearch/UserSearchModel.cpp",
+    "UserSearch/UserSearchDelegate.cpp",
+    "Whiteboard/FreehandLineItem.cpp",
+    "Whiteboard/GView.cpp",
+    "Whiteboard/TextDialog.cpp",
+    "Whiteboard/QtWhiteboardWindow.cpp",
+    "Whiteboard/ColorWidget.cpp",
+    "QtSubscriptionRequestWindow.cpp",
+    "QtRosterHeader.cpp",
+    "QtWebView.cpp",
+    "qrc_DefaultTheme.cc",
+    "qrc_Swift.cc",
+    "QtChatWindowJSBridge.cpp",
+    "QtMUCConfigurationWindow.cpp",
+    "QtAffiliationEditor.cpp",
+    "QtUISettingConstants.cpp",
+    "QtURLValidator.cpp",
+    "QtResourceHelper.cpp",
+    "QtSpellCheckHighlighter.cpp",
+    "Trellis/QtDynamicGridLayout.cpp",
+    "Trellis/QtDNDTabBar.cpp",
+    "Trellis/QtGridSelectionDialog.cpp"
 ]
 
 if env["PLATFORM"] == "win32" :
-	sources.extend(["qrc_SwiftWindows.cc"])
+    sources.extend(["qrc_SwiftWindows.cc"])
 
 # QtVCardWidget
 sources.extend([
-	"QtVCardWidget/QtCloseButton.cpp",
-	"QtVCardWidget/QtRemovableItemDelegate.cpp",
-	"QtVCardWidget/QtResizableLineEdit.cpp",
-	"QtVCardWidget/QtTagComboBox.cpp",
-	"QtVCardWidget/QtVCardHomeWork.cpp",
-	"QtVCardWidget/QtVCardAddressField.cpp",
-	"QtVCardWidget/QtVCardAddressLabelField.cpp",
-	"QtVCardWidget/QtVCardBirthdayField.cpp",
-	"QtVCardWidget/QtVCardDescriptionField.cpp",
-	"QtVCardWidget/QtVCardInternetEMailField.cpp",
-	"QtVCardWidget/QtVCardJIDField.cpp",
-	"QtVCardWidget/QtVCardOrganizationField.cpp",
-	"QtVCardWidget/QtVCardPhotoAndNameFields.cpp",
-	"QtVCardWidget/QtVCardRoleField.cpp",
-	"QtVCardWidget/QtVCardTelephoneField.cpp",
-	"QtVCardWidget/QtVCardTitleField.cpp",
-	"QtVCardWidget/QtVCardURLField.cpp",
-	"QtVCardWidget/QtVCardGeneralField.cpp",
-	"QtVCardWidget/QtVCardWidget.cpp"
+    "QtVCardWidget/QtCloseButton.cpp",
+    "QtVCardWidget/QtRemovableItemDelegate.cpp",
+    "QtVCardWidget/QtResizableLineEdit.cpp",
+    "QtVCardWidget/QtTagComboBox.cpp",
+    "QtVCardWidget/QtVCardHomeWork.cpp",
+    "QtVCardWidget/QtVCardAddressField.cpp",
+    "QtVCardWidget/QtVCardAddressLabelField.cpp",
+    "QtVCardWidget/QtVCardBirthdayField.cpp",
+    "QtVCardWidget/QtVCardDescriptionField.cpp",
+    "QtVCardWidget/QtVCardInternetEMailField.cpp",
+    "QtVCardWidget/QtVCardJIDField.cpp",
+    "QtVCardWidget/QtVCardOrganizationField.cpp",
+    "QtVCardWidget/QtVCardPhotoAndNameFields.cpp",
+    "QtVCardWidget/QtVCardRoleField.cpp",
+    "QtVCardWidget/QtVCardTelephoneField.cpp",
+    "QtVCardWidget/QtVCardTitleField.cpp",
+    "QtVCardWidget/QtVCardURLField.cpp",
+    "QtVCardWidget/QtVCardGeneralField.cpp",
+    "QtVCardWidget/QtVCardWidget.cpp"
 ])
 
 myenv.Uic4("QtVCardWidget/QtVCardPhotoAndNameFields.ui")
@@ -237,52 +237,52 @@ myenv.Uic4("QtProfileWindow.ui")
 # Determine the version
 myenv["SWIFT_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift")
 if env["PLATFORM"] == "win32" :
-	swift_windows_version = Version.convertToWindowsVersion(myenv["SWIFT_VERSION"])
-	myenv["SWIFT_VERSION_MAJOR"] = swift_windows_version[0]
-	myenv["SWIFT_VERSION_MINOR"] = swift_windows_version[1]
-	myenv["SWIFT_VERSION_PATCH"] = swift_windows_version[2]
+    swift_windows_version = Version.convertToWindowsVersion(myenv["SWIFT_VERSION"])
+    myenv["SWIFT_VERSION_MAJOR"] = swift_windows_version[0]
+    myenv["SWIFT_VERSION_MINOR"] = swift_windows_version[1]
+    myenv["SWIFT_VERSION_PATCH"] = swift_windows_version[2]
 
 
 if env["PLATFORM"] == "win32" :
-	res_env = myenv.Clone()
-	res_env.Append(CPPDEFINES = [
-			("SWIFT_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])),
-			("SWIFT_VERSION_MAJOR", "${SWIFT_VERSION_MAJOR}"),
-			("SWIFT_VERSION_MINOR", "${SWIFT_VERSION_MINOR}"),
-			("SWIFT_VERSION_PATCH", "${SWIFT_VERSION_PATCH}"),
-		])
-	res = res_env.RES("#/Swift/resources/Windows/Swift.rc")
-	# For some reason, SCons isn't picking up the dependency correctly
-	# Adding it explicitly until i figure out why
-	myenv.Depends(res, "../Controllers/BuildVersion.h")
-	sources += [
-			"WinUIHelpers.cpp",
-			"CAPICertificateSelector.cpp",
-			"WindowsNotifier.cpp",
-			"#/Swift/resources/Windows/Swift.res"
-		]
+    res_env = myenv.Clone()
+    res_env.Append(CPPDEFINES = [
+            ("SWIFT_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])),
+            ("SWIFT_VERSION_MAJOR", "${SWIFT_VERSION_MAJOR}"),
+            ("SWIFT_VERSION_MINOR", "${SWIFT_VERSION_MINOR}"),
+            ("SWIFT_VERSION_PATCH", "${SWIFT_VERSION_PATCH}"),
+        ])
+    res = res_env.RES("#/Swift/resources/Windows/Swift.rc")
+    # For some reason, SCons isn't picking up the dependency correctly
+    # Adding it explicitly until i figure out why
+    myenv.Depends(res, "../Controllers/BuildVersion.h")
+    sources += [
+            "WinUIHelpers.cpp",
+            "CAPICertificateSelector.cpp",
+            "WindowsNotifier.cpp",
+            "#/Swift/resources/Windows/Swift.res"
+        ]
 
 if env["PLATFORM"] == "posix" :
-	sources += [
-			"FreeDesktopNotifier.cpp",
-			"QtDBUSURIHandler.cpp",
-	]
+    sources += [
+            "FreeDesktopNotifier.cpp",
+            "QtDBUSURIHandler.cpp",
+    ]
 
 if env["PLATFORM"] == "darwin" :
-	sources += ["CocoaApplicationActivateHelper.mm"]
-	sources += ["CocoaUIHelpers.mm"]
+    sources += ["CocoaApplicationActivateHelper.mm"]
+    sources += ["CocoaUIHelpers.mm"]
 
 if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" :
-	swiftProgram = myenv.Program("Swift", sources)
+    swiftProgram = myenv.Program("Swift", sources)
 else :
-	sources += ["QtCertificateViewerDialog.cpp"];
-	myenv.Uic4("QtCertificateViewerDialog.ui");
-	swiftProgram = myenv.Program("swift-im", sources)
+    sources += ["QtCertificateViewerDialog.cpp"];
+    myenv.Uic4("QtCertificateViewerDialog.ui");
+    swiftProgram = myenv.Program("swift-im", sources)
 
 if env["PLATFORM"] != "darwin" and env["PLATFORM"] != "win32" :
-	openURIProgram = myenv.Program("swift-open-uri", "swift-open-uri.cpp")
+    openURIProgram = myenv.Program("swift-open-uri", "swift-open-uri.cpp")
 else :
-	openURIProgram = []
+    openURIProgram = []
 
 myenv.Uic4("MUCSearch/QtMUCSearchWindow.ui")
 myenv.Uic4("UserSearch/QtUserSearchWizard.ui")
@@ -302,11 +302,11 @@ myenv.Qrc("DefaultTheme.qrc")
 myenv.Qrc("Swift.qrc")
 
 if env["PLATFORM"] == "win32" :
-	myenv.Qrc("SwiftWindows.qrc")
+    myenv.Qrc("SwiftWindows.qrc")
 
 # Resources
 commonResources = {
-	"": ["#/Swift/resources/sounds"]
+    "": ["#/Swift/resources/sounds"]
 }
 
 myenv["TEXTFILESUFFIX"] = ""
@@ -319,138 +319,138 @@ myenv.MyTextfile(target = "COPYING", source = [myenv.File("../../COPYING.gpl"),
 # Collect available languages
 translation_languages = []
 for file in os.listdir(Dir("#/Swift/Translations").abspath) :
-	if file.startswith("swift_") and file.endswith(".ts") :
-		translation_languages.append(file[6:-3])
+    if file.startswith("swift_") and file.endswith(".ts") :
+        translation_languages.append(file[6:-3])
 
 # Generate translation modules
 translation_sources = [env.File("#/Swift/Translations/swift.ts").abspath]
 translation_modules = []
 for lang in translation_languages :
-	translation_resource = "#/Swift/resources/translations/swift_" + lang + ".qm"
-	translation_source = "#/Swift/Translations/swift_" + lang + ".ts"
-	translation_sources.append(env.File(translation_source).abspath)
-	translation_modules.append(env.File(translation_resource).abspath)
-	myenv.Qm(translation_resource, translation_source)
-	commonResources["translations"] = commonResources.get("translations", []) + [translation_resource]
+    translation_resource = "#/Swift/resources/translations/swift_" + lang + ".qm"
+    translation_source = "#/Swift/Translations/swift_" + lang + ".ts"
+    translation_sources.append(env.File(translation_source).abspath)
+    translation_modules.append(env.File(translation_resource).abspath)
+    myenv.Qm(translation_resource, translation_source)
+    commonResources["translations"] = commonResources.get("translations", []) + [translation_resource]
 
 # LUpdate translation (if requested)
 if ARGUMENTS.get("update_translations", False) :
-	myenv.Precious(translation_sources)
-	remove_obsolete_option = ""
-	codecfortr = ""
-	if ARGUMENTS.get("remove_obsolete_translations", False) :
-		remove_obsolete_option = " -no-obsolete"
-	if qt_version == '4':
-		codecfortr = "-codecfortr UTF-8"
-	for translation_source in filter(lambda x: not x.endswith("_en.ts"), translation_sources) :
-		t = myenv.Command([translation_source], [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + remove_obsolete_option + " -silent " + codecfortr + " -recursive Swift -ts " + translation_source, cmdstr = "$QT4_LUPDATECOMSTR")])
-		myenv.AlwaysBuild(t)
+    myenv.Precious(translation_sources)
+    remove_obsolete_option = ""
+    codecfortr = ""
+    if ARGUMENTS.get("remove_obsolete_translations", False) :
+        remove_obsolete_option = " -no-obsolete"
+    if qt_version == '4':
+        codecfortr = "-codecfortr UTF-8"
+    for translation_source in filter(lambda x: not x.endswith("_en.ts"), translation_sources) :
+        t = myenv.Command([translation_source], [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + remove_obsolete_option + " -silent " + codecfortr + " -recursive Swift -ts " + translation_source, cmdstr = "$QT4_LUPDATECOMSTR")])
+        myenv.AlwaysBuild(t)
 
 # NSIS installation script
 if env["PLATFORM"] == "win32" :
-	nsis_translation_install_script = ""
-	nsis_translation_uninstall_script = ""
-	for lang in translation_languages :
-		nsis_translation_install_script += "File \"..\\..\\QtUI\\Swift\\translations\\swift_" + lang + ".qm\"\n"
-		nsis_translation_uninstall_script += "delete $INSTDIR\\translations\\swift_" + lang + ".qm\n"
-	myenv.WriteVal("../Packaging/nsis/translations-install.nsh", myenv.Value(nsis_translation_install_script))
-	myenv.WriteVal("../Packaging/nsis/translations-uninstall.nsh", myenv.Value(nsis_translation_uninstall_script))
+    nsis_translation_install_script = ""
+    nsis_translation_uninstall_script = ""
+    for lang in translation_languages :
+        nsis_translation_install_script += "File \"..\\..\\QtUI\\Swift\\translations\\swift_" + lang + ".qm\"\n"
+        nsis_translation_uninstall_script += "delete $INSTDIR\\translations\\swift_" + lang + ".qm\n"
+    myenv.WriteVal("../Packaging/nsis/translations-install.nsh", myenv.Value(nsis_translation_install_script))
+    myenv.WriteVal("../Packaging/nsis/translations-uninstall.nsh", myenv.Value(nsis_translation_uninstall_script))
 
 
 ################################################################################
 
 if env["PLATFORM"] == "darwin" :
-	frameworks = []
-	if env["HAVE_SPARKLE"] :
-		frameworks.append(env["SPARKLE_FRAMEWORK"])
-	if env["HAVE_GROWL"] :
-		frameworks.append(env["GROWL_FRAMEWORK"])
-	commonResources[""] = commonResources.get("", []) + ["#/Swift/resources/MacOSX/Swift.icns"]
-	app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = commonResources, frameworks = frameworks, handlesXMPPURIs = True)
-	if env["DIST"] :
-		myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR"])
-		dsym = myenv.Command(["Swift-${SWIFT_VERSION}.dSYM"], ["Swift"], ["dsymutil -o ${TARGET} ${SOURCE}"])
-		myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dSYM.zip"], dsym, ["cd ${SOURCE.dir} && zip -r ${TARGET.abspath} ${SOURCE.name}"])
+    frameworks = []
+    if env["HAVE_SPARKLE"] :
+        frameworks.append(env["SPARKLE_FRAMEWORK"])
+    if env["HAVE_GROWL"] :
+        frameworks.append(env["GROWL_FRAMEWORK"])
+    commonResources[""] = commonResources.get("", []) + ["#/Swift/resources/MacOSX/Swift.icns"]
+    app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = commonResources, frameworks = frameworks, handlesXMPPURIs = True)
+    if env["DIST"] :
+        myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR"])
+        dsym = myenv.Command(["Swift-${SWIFT_VERSION}.dSYM"], ["Swift"], ["dsymutil -o ${TARGET} ${SOURCE}"])
+        myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dSYM.zip"], dsym, ["cd ${SOURCE.dir} && zip -r ${TARGET.abspath} ${SOURCE.name}"])
 
 if env.get("SWIFT_INSTALLDIR", "") :
-	env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram + openURIProgram)
-	env.InstallAs(os.path.join(env["SWIFT_INSTALLDIR"], "share", "pixmaps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm")
-	icons_path = os.path.join(env["SWIFT_INSTALLDIR"], "share", "icons", "hicolor")
-	env.InstallAs(os.path.join(icons_path, "32x32", "apps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm")
-	env.InstallAs(os.path.join(icons_path, "scalable", "apps", "swift.svg"), "#/Swift/resources/logo/logo-icon.svg")
-	for i in ["16", "22", "24", "64", "128"] :
-		env.InstallAs(os.path.join(icons_path, i + "x" + i, "apps", "swift.png"), "#/Swift/resources/logo/logo-icon-" + i + ".png")
-	env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "applications"), "#/Swift/resources/swift.desktop")
-	for dir, resource in commonResources.items() :
-		env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "swift", dir), resource)
+    env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram + openURIProgram)
+    env.InstallAs(os.path.join(env["SWIFT_INSTALLDIR"], "share", "pixmaps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm")
+    icons_path = os.path.join(env["SWIFT_INSTALLDIR"], "share", "icons", "hicolor")
+    env.InstallAs(os.path.join(icons_path, "32x32", "apps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm")
+    env.InstallAs(os.path.join(icons_path, "scalable", "apps", "swift.svg"), "#/Swift/resources/logo/logo-icon.svg")
+    for i in ["16", "22", "24", "64", "128"] :
+        env.InstallAs(os.path.join(icons_path, i + "x" + i, "apps", "swift.png"), "#/Swift/resources/logo/logo-icon-" + i + ".png")
+    env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "applications"), "#/Swift/resources/swift.desktop")
+    for dir, resource in commonResources.items() :
+        env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "swift", dir), resource)
 
 if env["PLATFORM"] == "win32" :
-	if env["DIST"] or ARGUMENTS.get("dump_trace") :
-		commonResources[""] = commonResources.get("", []) + [
-				#os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
-				#os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
-				"#/Swift/resources/images",
-			]
-		if env["SWIFTEN_DLL"] :
-			commonResources[""] = commonResources.get("", []) + ["#/Swiften/${SWIFTEN_LIBRARY_FILE}"]
-		qtplugins = {}
-		qtplugins["imageformats"] = ["gif", "ico", "jpeg", "mng", "svg", "tiff"]
-		qtlibs = ["QtCore", "QtGui", "QtNetwork", "QtWebKit", "QtXMLPatterns"]
-		if qt_version == '4' :
-			qtlibs.append("phonon")
-			qtlibs = [lib + '4' for lib in qtlibs]
-		else :
-			qtlibs += ['QtQuick', 'QtQml', 'QtPositioning', 'QtMultimedia', 'QtSql', 'QtSensors', 'QtWidgets', 'QtWebChannel', 'QtWebKitWidgets', 'QtMultimediaWidgets', 'QtOpenGL', 'QtPrintSupport']
-			qtlibs = [lib.replace('Qt', 'Qt5') for lib in qtlibs]
-			qtlibs += ['icuin51', 'icuuc51', 'icudt51', 'libGLESv2', 'libEGL']
-			qtplugins["platforms"] = ['windows']
-			qtplugins["accessible"] = ["taccessiblewidgets"]
-
-		windowsBundleFiles = myenv.WindowsBundle("Swift",
-				 resources = commonResources,
-				 qtplugins = qtplugins,
-				 qtlibs = qtlibs,
-				 qtversion = qt_version)
-
-	if env["DIST"] :
-		#myenv.Append(NSIS_OPTIONS = [
-		#    "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
-		#    "/DbuildVersion=" + myenv["SWIFT_VERSION"]
-		#  ])
-		#myenv.Nsis("../Packaging/nsis/swift.nsi")
-		if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None):
-			def convertToRTF(env, target, source) :
-				infile = open(source[0].abspath, 'r')
-				outfile = open(target[0].abspath, 'w')
-				outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n')
-				for line in infile:
-					for char in line.decode("utf-8") :
-						if ord(char) > 127 :
-							# FIXME: This is incorrect, because it only works for latin1.
-							# The correct way is \u<decimal utf16 point>? , but this is more
-							# work
-							outfile.write("\\'%X" % ord(char))
-						else :
-							outfile.write(char)
-					outfile.write('\\par ')
-				outfile.write('}')
-				outfile.close()
-				infile.close()
-			copying = env.Command(["Swift/COPYING.rtf"], ["COPYING"], convertToRTF)
-			wixvariables = {
-				'VCCRTFile': env["vcredist"],
-				'Version': str(myenv["SWIFT_VERSION_MAJOR"]) + "." + str(myenv["SWIFT_VERSION_MINOR"]) + "." + str(myenv["SWIFT_VERSION_PATCH"])
-			}
-			wixincludecontent = "<Include>"
-			for key in wixvariables:
-				wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key])
-			wixincludecontent += "</Include>"
-			myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent))
-			myenv["WIX_SOURCE_OBJECT_DIR"] = "Swift\\QtUI\\Swift"
-			myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', windowsBundleFiles + copying)
-			myenv.WiX_Candle('..\\Packaging\\WiX\\Swift.wixobj', '..\\Packaging\\WiX\\Swift.wxs')
-			myenv.WiX_Candle('..\\Packaging\\WiX\\gen_files.wixobj', '..\\Packaging\\WiX\\gen_files.wxs')
-			myenv.WiX_Light('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj'])
-
-			if myenv["debug"] :
-				myenv.InstallAs('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.pdb', "Swift.pdb")
+    if env["DIST"] or ARGUMENTS.get("dump_trace") :
+        commonResources[""] = commonResources.get("", []) + [
+                #os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
+                #os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
+                "#/Swift/resources/images",
+            ]
+        if env["SWIFTEN_DLL"] :
+            commonResources[""] = commonResources.get("", []) + ["#/Swiften/${SWIFTEN_LIBRARY_FILE}"]
+        qtplugins = {}
+        qtplugins["imageformats"] = ["gif", "ico", "jpeg", "mng", "svg", "tiff"]
+        qtlibs = ["QtCore", "QtGui", "QtNetwork", "QtWebKit", "QtXMLPatterns"]
+        if qt_version == '4' :
+            qtlibs.append("phonon")
+            qtlibs = [lib + '4' for lib in qtlibs]
+        else :
+            qtlibs += ['QtQuick', 'QtQml', 'QtPositioning', 'QtMultimedia', 'QtSql', 'QtSensors', 'QtWidgets', 'QtWebChannel', 'QtWebKitWidgets', 'QtMultimediaWidgets', 'QtOpenGL', 'QtPrintSupport']
+            qtlibs = [lib.replace('Qt', 'Qt5') for lib in qtlibs]
+            qtlibs += ['icuin51', 'icuuc51', 'icudt51', 'libGLESv2', 'libEGL']
+            qtplugins["platforms"] = ['windows']
+            qtplugins["accessible"] = ["taccessiblewidgets"]
+
+        windowsBundleFiles = myenv.WindowsBundle("Swift",
+                 resources = commonResources,
+                 qtplugins = qtplugins,
+                 qtlibs = qtlibs,
+                 qtversion = qt_version)
+
+    if env["DIST"] :
+        #myenv.Append(NSIS_OPTIONS = [
+        #    "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
+        #    "/DbuildVersion=" + myenv["SWIFT_VERSION"]
+        #  ])
+        #myenv.Nsis("../Packaging/nsis/swift.nsi")
+        if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None):
+            def convertToRTF(env, target, source) :
+                infile = open(source[0].abspath, 'r')
+                outfile = open(target[0].abspath, 'w')
+                outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n')
+                for line in infile:
+                    for char in line.decode("utf-8") :
+                        if ord(char) > 127 :
+                            # FIXME: This is incorrect, because it only works for latin1.
+                            # The correct way is \u<decimal utf16 point>? , but this is more
+                            # work
+                            outfile.write("\\'%X" % ord(char))
+                        else :
+                            outfile.write(char)
+                    outfile.write('\\par ')
+                outfile.write('}')
+                outfile.close()
+                infile.close()
+            copying = env.Command(["Swift/COPYING.rtf"], ["COPYING"], convertToRTF)
+            wixvariables = {
+                'VCCRTFile': env["vcredist"],
+                'Version': str(myenv["SWIFT_VERSION_MAJOR"]) + "." + str(myenv["SWIFT_VERSION_MINOR"]) + "." + str(myenv["SWIFT_VERSION_PATCH"])
+            }
+            wixincludecontent = "<Include>"
+            for key in wixvariables:
+                wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key])
+            wixincludecontent += "</Include>"
+            myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent))
+            myenv["WIX_SOURCE_OBJECT_DIR"] = "Swift\\QtUI\\Swift"
+            myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', windowsBundleFiles + copying)
+            myenv.WiX_Candle('..\\Packaging\\WiX\\Swift.wixobj', '..\\Packaging\\WiX\\Swift.wxs')
+            myenv.WiX_Candle('..\\Packaging\\WiX\\gen_files.wixobj', '..\\Packaging\\WiX\\gen_files.wxs')
+            myenv.WiX_Light('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj'])
+
+            if myenv["debug"] :
+                myenv.InstallAs('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.pdb', "Swift.pdb")
diff --git a/Swiften/AdHoc/SConscript b/Swiften/AdHoc/SConscript
index 69c9083..6d3f176 100644
--- a/Swiften/AdHoc/SConscript
+++ b/Swiften/AdHoc/SConscript
@@ -1,6 +1,6 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"OutgoingAdHocCommandSession.cpp",
-		])
+            "OutgoingAdHocCommandSession.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Avatars/SConscript b/Swiften/Avatars/SConscript
index 9c219a4..0cd419d 100644
--- a/Swiften/Avatars/SConscript
+++ b/Swiften/Avatars/SConscript
@@ -1,13 +1,13 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"VCardUpdateAvatarManager.cpp",
-			"VCardAvatarManager.cpp",
-			"OfflineAvatarManager.cpp",
-			"AvatarManager.cpp",
-			"AvatarManagerImpl.cpp",
-			"AvatarStorage.cpp",
-			"AvatarProvider.cpp",
-			"CombinedAvatarProvider.cpp",
-		])
+            "VCardUpdateAvatarManager.cpp",
+            "VCardAvatarManager.cpp",
+            "OfflineAvatarManager.cpp",
+            "AvatarManager.cpp",
+            "AvatarManagerImpl.cpp",
+            "AvatarStorage.cpp",
+            "AvatarProvider.cpp",
+            "CombinedAvatarProvider.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Base/SConscript b/Swiften/Base/SConscript
index d7fd7cc..62e5117 100644
--- a/Swiften/Base/SConscript
+++ b/Swiften/Base/SConscript
@@ -1,22 +1,22 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"ByteArray.cpp",
-			"DateTime.cpp",
-			"SafeByteArray.cpp",
-			"SafeAllocator.cpp",
-			"Error.cpp",
-			"Log.cpp",
-			"Path.cpp",
-			"Paths.cpp",
-			"String.cpp",
-			"IDGenerator.cpp",
-			"SimpleIDGenerator.cpp",
-			"RandomGenerator.cpp",
-			"BoostRandomGenerator.cpp",
-			"sleep.cpp",
-			"URL.cpp",
-			"Regex.cpp",
-			"FileSize.cpp"
-		])
+            "ByteArray.cpp",
+            "DateTime.cpp",
+            "SafeByteArray.cpp",
+            "SafeAllocator.cpp",
+            "Error.cpp",
+            "Log.cpp",
+            "Path.cpp",
+            "Paths.cpp",
+            "String.cpp",
+            "IDGenerator.cpp",
+            "SimpleIDGenerator.cpp",
+            "RandomGenerator.cpp",
+            "BoostRandomGenerator.cpp",
+            "sleep.cpp",
+            "URL.cpp",
+            "Regex.cpp",
+            "FileSize.cpp"
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Component/SConscript b/Swiften/Component/SConscript
index ef5700c..2553ac6 100644
--- a/Swiften/Component/SConscript
+++ b/Swiften/Component/SConscript
@@ -1,13 +1,13 @@
 Import("swiften_env")
 
 sources = [
-		"ComponentHandshakeGenerator.cpp",
-		"ComponentConnector.cpp",
-		"ComponentSession.cpp",
-		"ComponentSessionStanzaChannel.cpp",
-		"CoreComponent.cpp",
-		"Component.cpp",
-		"ComponentXMLTracer.cpp",
-	]
+        "ComponentHandshakeGenerator.cpp",
+        "ComponentConnector.cpp",
+        "ComponentSession.cpp",
+        "ComponentSessionStanzaChannel.cpp",
+        "CoreComponent.cpp",
+        "Component.cpp",
+        "ComponentXMLTracer.cpp",
+    ]
 
 swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
diff --git a/Swiften/Config/SConscript b/Swiften/Config/SConscript
index 837884b..6eddb0e 100644
--- a/Swiften/Config/SConscript
+++ b/Swiften/Config/SConscript
@@ -3,16 +3,16 @@ import os.path
 Import("env")
 
 def replaceSwiftenPath(input) :
-	return input.replace(env.Dir("#").abspath, "#")
+    return input.replace(env.Dir("#").abspath, "#")
 
 def cStringVariable(env, cVar, sconsVar) :
-	result = "static const char* " + cVar + "[] = {\n"
-	# FIXME: Probably not very robust
-	for var in sconsVar.split(" ") :
-		result += "\t\"" + env.subst(var).replace("\\", "\\\\") + "\",\n"
-	result += "\t0\n"
-	result += "};\n"
-	return result
+    result = "static const char* " + cVar + "[] = {\n"
+    # FIXME: Probably not very robust
+    for var in sconsVar.split(" ") :
+        result += "\t\"" + env.subst(var).replace("\\", "\\\\") + "\",\n"
+    result += "\t0\n"
+    result += "};\n"
+    return result
 
 config_flags = ""
 
@@ -21,36 +21,36 @@ swiften_env.UseFlags(swiften_env["SWIFTEN_FLAGS"])
 swiften_env.UseFlags(swiften_env["SWIFTEN_DEP_FLAGS"])
 
 cppflags = replaceSwiftenPath(" ".join([
-	swiften_env.subst("$CPPFLAGS").replace("-isystem ","-I"),
-	swiften_env.subst("$_CPPDEFFLAGS"), 
-	swiften_env.subst("$_CPPINCFLAGS")]))
+    swiften_env.subst("$CPPFLAGS").replace("-isystem ","-I"),
+    swiften_env.subst("$_CPPDEFFLAGS"), 
+    swiften_env.subst("$_CPPINCFLAGS")]))
 config_flags += cStringVariable(swiften_env, "CPPFLAGS", cppflags)
 
 libflags = replaceSwiftenPath(" ".join([
-		swiften_env.subst("$_LIBDIRFLAGS"), 
-		swiften_env.subst("$_LIBFLAGS"), 
-		swiften_env.subst("$_FRAMEWORKPATH"), 
-		swiften_env.subst("$_FRAMEWORKS"), 
-		swiften_env.subst("$_FRAMEWORKSFLAGS")
-	]))
+        swiften_env.subst("$_LIBDIRFLAGS"), 
+        swiften_env.subst("$_LIBFLAGS"), 
+        swiften_env.subst("$_FRAMEWORKPATH"), 
+        swiften_env.subst("$_FRAMEWORKS"), 
+        swiften_env.subst("$_FRAMEWORKSFLAGS")
+    ]))
 config_flags += cStringVariable(swiften_env, "LIBFLAGS", libflags)
 
 config_env = env.Clone()
 # Create a local copy of Paths.cpp to avoid a Swiften dependency
 config_env.Install(".", [
-	"#/Swiften/Base/Paths.cpp",
-	"#/Swiften/Base/Path.cpp",
-	"#/Swiften/Base/String.cpp",
+    "#/Swiften/Base/Paths.cpp",
+    "#/Swiften/Base/Path.cpp",
+    "#/Swiften/Base/String.cpp",
 ])
 config_env.UseFlags(config_env["BOOST_FLAGS"])
 config_env.UseFlags(config_env["PLATFORM_FLAGS"])
 config_env.WriteVal("swiften-config.h", config_env.Value(config_flags))
 swiften_config = config_env.Program("swiften-config", [
-		"Paths.cpp",
-		"Path.cpp",
-		"String.cpp",
-		"swiften-config.cpp"
-	])
+        "Paths.cpp",
+        "Path.cpp",
+        "String.cpp",
+        "swiften-config.cpp"
+    ])
 
 if swiften_env.get("SWIFTEN_INSTALLDIR", "") :
-	swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "bin"), swiften_config)
+    swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "bin"), swiften_config)
diff --git a/Swiften/Crypto/SConscript b/Swiften/Crypto/SConscript
index ce4bdae..d5532fd 100644
--- a/Swiften/Crypto/SConscript
+++ b/Swiften/Crypto/SConscript
@@ -2,27 +2,27 @@ Import("swiften_env", "env")
 
 
 objects = swiften_env.SwiftenObject([
-	"CryptoProvider.cpp",
-	"Hash.cpp"
+    "CryptoProvider.cpp",
+    "Hash.cpp"
 ])
 
 myenv = swiften_env.Clone()
 if myenv["PLATFORM"] == "win32" :
-	objects += myenv.SwiftenObject(["WindowsCryptoProvider.cpp"])
+    objects += myenv.SwiftenObject(["WindowsCryptoProvider.cpp"])
 if myenv.get("HAVE_OPENSSL", False) :
-	myenv.Append(CPPDEFINES = ["HAVE_OPENSSL_CRYPTO_PROVIDER"])
-	objects += myenv.SwiftenObject(["OpenSSLCryptoProvider.cpp"])
+    myenv.Append(CPPDEFINES = ["HAVE_OPENSSL_CRYPTO_PROVIDER"])
+    objects += myenv.SwiftenObject(["OpenSSLCryptoProvider.cpp"])
 if myenv["PLATFORM"] == "darwin" and myenv["target"] == "native" :
-	myenv.Append(CPPDEFINES = ["HAVE_COMMONCRYPTO_CRYPTO_PROVIDER"])
-	objects += myenv.SwiftenObject(["CommonCryptoCryptoProvider.cpp"])
+    myenv.Append(CPPDEFINES = ["HAVE_COMMONCRYPTO_CRYPTO_PROVIDER"])
+    objects += myenv.SwiftenObject(["CommonCryptoCryptoProvider.cpp"])
 
 objects += myenv.SwiftenObject(["PlatformCryptoProvider.cpp"])
 
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
 
 if env["TEST"] :
-	test_env = myenv.Clone()
-	test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"])
-	env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([
-				File("UnitTest/CryptoProviderTest.cpp"),
-	]))
+    test_env = myenv.Clone()
+    test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"])
+    env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([
+                File("UnitTest/CryptoProviderTest.cpp"),
+    ]))
diff --git a/Swiften/Disco/SConscript b/Swiften/Disco/SConscript
index 1779e26..15137ae 100644
--- a/Swiften/Disco/SConscript
+++ b/Swiften/Disco/SConscript
@@ -1,16 +1,16 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"CapsInfoGenerator.cpp",
-			"CapsManager.cpp",
-			"EntityCapsManager.cpp",
-			"EntityCapsProvider.cpp",
-			"DummyEntityCapsProvider.cpp",
-			"CapsStorage.cpp",
-			"ClientDiscoManager.cpp",
-			"DiscoInfoResponder.cpp",
-			"JIDDiscoInfoResponder.cpp",
-			"DiscoServiceWalker.cpp",
-			"FeatureOracle.cpp",
-		])
+            "CapsInfoGenerator.cpp",
+            "CapsManager.cpp",
+            "EntityCapsManager.cpp",
+            "EntityCapsProvider.cpp",
+            "DummyEntityCapsProvider.cpp",
+            "CapsStorage.cpp",
+            "ClientDiscoManager.cpp",
+            "DiscoInfoResponder.cpp",
+            "JIDDiscoInfoResponder.cpp",
+            "DiscoServiceWalker.cpp",
+            "FeatureOracle.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Entity/SConscript b/Swiften/Entity/SConscript
index 1342ec1..284e0c0 100644
--- a/Swiften/Entity/SConscript
+++ b/Swiften/Entity/SConscript
@@ -1,6 +1,6 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"Entity.cpp",
-		])
+            "Entity.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/EventLoop/SConscript b/Swiften/EventLoop/SConscript
index b810e8c..7aea53f 100644
--- a/Swiften/EventLoop/SConscript
+++ b/Swiften/EventLoop/SConscript
@@ -1,23 +1,23 @@
 Import("swiften_env")
 
 sources = [
-		"BoostASIOEventLoop.cpp",
-		"DummyEventLoop.cpp",
-		"Event.cpp",
-		"EventLoop.cpp",
-		"EventOwner.cpp",
-		"SimpleEventLoop.cpp",
-		"SingleThreadedEventLoop.cpp",
-	]
+        "BoostASIOEventLoop.cpp",
+        "DummyEventLoop.cpp",
+        "Event.cpp",
+        "EventLoop.cpp",
+        "EventOwner.cpp",
+        "SimpleEventLoop.cpp",
+        "SingleThreadedEventLoop.cpp",
+    ]
 
 objects = swiften_env.SwiftenObject(sources)
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
 
 if swiften_env["PLATFORM"] == "darwin" and swiften_env["target"] == "native" or swiften_env["target"] == 'xcode':
-	myenv = swiften_env.Clone()
-	myenv.Append(CXXFLAGS = myenv["OBJCCFLAGS"])
-	objects = myenv.SwiftenObject([
-			"Cocoa/CocoaEventLoop.mm",
-			"Cocoa/CocoaEvent.mm"
-		])
-	swiften_env.Append(SWIFTEN_OBJECTS = [objects])
+    myenv = swiften_env.Clone()
+    myenv.Append(CXXFLAGS = myenv["OBJCCFLAGS"])
+    objects = myenv.SwiftenObject([
+            "Cocoa/CocoaEventLoop.mm",
+            "Cocoa/CocoaEvent.mm"
+        ])
+    swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Examples/LinkLocalTool/SConscript b/Swiften/Examples/LinkLocalTool/SConscript
index 18eb91f..d7617ed 100644
--- a/Swiften/Examples/LinkLocalTool/SConscript
+++ b/Swiften/Examples/LinkLocalTool/SConscript
@@ -5,5 +5,5 @@ myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
 myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
 
 linkLocalTool = myenv.Program("LinkLocalTool", [
-		"main.cpp"
-	])
+        "main.cpp"
+    ])
diff --git a/Swiften/Examples/NetworkTool/SConscript b/Swiften/Examples/NetworkTool/SConscript
index 38622ff..c850232 100644
--- a/Swiften/Examples/NetworkTool/SConscript
+++ b/Swiften/Examples/NetworkTool/SConscript
@@ -1,10 +1,10 @@
 Import("env")
 
 if env["experimental"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
+    myenv = env.Clone()
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
 
-	linkLocalTool = myenv.Program("NetworkTool", [
-			"main.cpp"
-		])
+    linkLocalTool = myenv.Program("NetworkTool", [
+            "main.cpp"
+        ])
diff --git a/Swiften/Examples/SConscript b/Swiften/Examples/SConscript
index 8a0a48f..601cba2 100644
--- a/Swiften/Examples/SConscript
+++ b/Swiften/Examples/SConscript
@@ -3,12 +3,12 @@ Import("swiften_env")
 myenv = swiften_env.Clone()
 
 SConscript(dirs = [
-	"SendMessage",
-	"SendFile",
-	"ConnectivityTest",
-	"LinkLocalTool",
-	"NetworkTool",
-	"ParserTester",
-	"BenchTool",
-	"MUCListAndJoin",
+    "SendMessage",
+    "SendFile",
+    "ConnectivityTest",
+    "LinkLocalTool",
+    "NetworkTool",
+    "ParserTester",
+    "BenchTool",
+    "MUCListAndJoin",
 ])
diff --git a/Swiften/FileTransfer/SConscript b/Swiften/FileTransfer/SConscript
index 41af8d4..83f229b 100644
--- a/Swiften/FileTransfer/SConscript
+++ b/Swiften/FileTransfer/SConscript
@@ -1,52 +1,52 @@
 Import("swiften_env", "env")
 
 sources = [
-		"ByteArrayReadBytestream.cpp",
-		"OutgoingFileTransfer.cpp",
-		"OutgoingJingleFileTransfer.cpp",
-		"OutgoingFileTransferManager.cpp",
-		"IncomingFileTransfer.cpp",
-		"IncomingJingleFileTransfer.cpp",
-		"IncomingFileTransferManager.cpp",
-		"JingleFileTransfer.cpp",
-		"FileTransferOptions.cpp",
-		"FileTransferTransporter.cpp",
-		"FileTransferTransporterFactory.cpp",
-		"DefaultFileTransferTransporter.cpp",
-		"DefaultFileTransferTransporterFactory.cpp",
-		"RemoteJingleTransportCandidateSelector.cpp",
-		"LocalJingleTransportCandidateGenerator.cpp",
-		"ReadBytestream.cpp",
-		"WriteBytestream.cpp",
-		"FileReadBytestream.cpp",
-		"FileWriteBytestream.cpp",
-		"FileTransfer.cpp",
-		"TransportSession.cpp",
-		"IBBSendTransportSession.cpp",
-		"IBBReceiveTransportSession.cpp",
-		"SOCKS5BytestreamClientSession.cpp",
-		"SOCKS5BytestreamServerManager.cpp",
-		"SOCKS5BytestreamServer.cpp",
-		"SOCKS5BytestreamServerSession.cpp",
-		"SOCKS5BytestreamRegistry.cpp",
-		"SOCKS5BytestreamProxiesManager.cpp",
-		"SOCKS5BytestreamProxyFinder.cpp",
-		"IBBSendSession.cpp",
-		"IBBReceiveSession.cpp",
-		"FileTransferManager.cpp",
-		"FileTransferManagerImpl.cpp",
-		"IncrementalBytestreamHashCalculator.cpp",
-		"SOCKS5BytestreamServerResourceUser.cpp",
-		"SOCKS5BytestreamServerPortForwardingUser.cpp",
-	]
+        "ByteArrayReadBytestream.cpp",
+        "OutgoingFileTransfer.cpp",
+        "OutgoingJingleFileTransfer.cpp",
+        "OutgoingFileTransferManager.cpp",
+        "IncomingFileTransfer.cpp",
+        "IncomingJingleFileTransfer.cpp",
+        "IncomingFileTransferManager.cpp",
+        "JingleFileTransfer.cpp",
+        "FileTransferOptions.cpp",
+        "FileTransferTransporter.cpp",
+        "FileTransferTransporterFactory.cpp",
+        "DefaultFileTransferTransporter.cpp",
+        "DefaultFileTransferTransporterFactory.cpp",
+        "RemoteJingleTransportCandidateSelector.cpp",
+        "LocalJingleTransportCandidateGenerator.cpp",
+        "ReadBytestream.cpp",
+        "WriteBytestream.cpp",
+        "FileReadBytestream.cpp",
+        "FileWriteBytestream.cpp",
+        "FileTransfer.cpp",
+        "TransportSession.cpp",
+        "IBBSendTransportSession.cpp",
+        "IBBReceiveTransportSession.cpp",
+        "SOCKS5BytestreamClientSession.cpp",
+        "SOCKS5BytestreamServerManager.cpp",
+        "SOCKS5BytestreamServer.cpp",
+        "SOCKS5BytestreamServerSession.cpp",
+        "SOCKS5BytestreamRegistry.cpp",
+        "SOCKS5BytestreamProxiesManager.cpp",
+        "SOCKS5BytestreamProxyFinder.cpp",
+        "IBBSendSession.cpp",
+        "IBBReceiveSession.cpp",
+        "FileTransferManager.cpp",
+        "FileTransferManagerImpl.cpp",
+        "IncrementalBytestreamHashCalculator.cpp",
+        "SOCKS5BytestreamServerResourceUser.cpp",
+        "SOCKS5BytestreamServerPortForwardingUser.cpp",
+    ]
 
 swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
 
 env.Append(UNITTEST_SOURCES = [
-			File("UnitTest/SOCKS5BytestreamServerSessionTest.cpp"),
-			File("UnitTest/SOCKS5BytestreamClientSessionTest.cpp"),
-			File("UnitTest/IBBSendSessionTest.cpp"),
-			File("UnitTest/IBBReceiveSessionTest.cpp"),
-			File("UnitTest/IncomingJingleFileTransferTest.cpp"),
-			File("UnitTest/OutgoingJingleFileTransferTest.cpp"),
-	])
+            File("UnitTest/SOCKS5BytestreamServerSessionTest.cpp"),
+            File("UnitTest/SOCKS5BytestreamClientSessionTest.cpp"),
+            File("UnitTest/IBBSendSessionTest.cpp"),
+            File("UnitTest/IBBReceiveSessionTest.cpp"),
+            File("UnitTest/IncomingJingleFileTransferTest.cpp"),
+            File("UnitTest/OutgoingJingleFileTransferTest.cpp"),
+    ])
diff --git a/Swiften/History/SConscript b/Swiften/History/SConscript
index bd56818..65be489 100644
--- a/Swiften/History/SConscript
+++ b/Swiften/History/SConscript
@@ -2,10 +2,10 @@ Import("swiften_env")
 
 myenv = swiften_env.Clone()
 if myenv["target"] == "native":
-	myenv.MergeFlags(swiften_env.get("SQLITE_FLAGS", {}))
+    myenv.MergeFlags(swiften_env.get("SQLITE_FLAGS", {}))
 
 if myenv["experimental"]:
-	objects = myenv.SwiftenObject([
-			"SQLiteHistoryStorage.cpp",
-			])
-	swiften_env.Append(SWIFTEN_OBJECTS = [objects])
+    objects = myenv.SwiftenObject([
+            "SQLiteHistoryStorage.cpp",
+            ])
+    swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/IDN/SConscript b/Swiften/IDN/SConscript
index 7a3c061..28596f7 100644
--- a/Swiften/IDN/SConscript
+++ b/Swiften/IDN/SConscript
@@ -5,27 +5,27 @@ objects = swiften_env.SwiftenObject(["IDNConverter.cpp"])
 
 myenv = swiften_env.Clone()
 if myenv.get("NEED_IDN"):
-	myenv.Append(CPPDEFINES = ["NEED_IDN"])
+    myenv.Append(CPPDEFINES = ["NEED_IDN"])
 if myenv.get("HAVE_ICU") :
-	myenv.MergeFlags(swiften_env["ICU_FLAGS"])
-	myenv.Append(CPPDEFINES = ["HAVE_ICU"])
-	objects += myenv.SwiftenObject(["ICUConverter.cpp"])
+    myenv.MergeFlags(swiften_env["ICU_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_ICU"])
+    objects += myenv.SwiftenObject(["ICUConverter.cpp"])
 if myenv.get("HAVE_LIBIDN") :
-	myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"])
-	myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"])
-	objects += myenv.SwiftenObject(["LibIDNConverter.cpp"])
+    myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"])
+    myenv.Append(CPPDEFINES = ["HAVE_LIBIDN"])
+    objects += myenv.SwiftenObject(["LibIDNConverter.cpp"])
 objects += myenv.SwiftenObject([
-	"PlatformIDNConverter.cpp"
-	])
+    "PlatformIDNConverter.cpp"
+    ])
 
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
 
 if env["TEST"] :
-	test_env = myenv.Clone()
-	test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"])
-	env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([
-				File("UnitTest/IDNConverterTest.cpp"),
-				File("UnitTest/UTF8ValidatorTest.cpp")
-	]))
+    test_env = myenv.Clone()
+    test_env.UseFlags(swiften_env["CPPUNIT_FLAGS"])
+    env.Append(UNITTEST_OBJECTS = test_env.SwiftenObject([
+                File("UnitTest/IDNConverterTest.cpp"),
+                File("UnitTest/UTF8ValidatorTest.cpp")
+    ]))
 
 
diff --git a/Swiften/JID/SConscript b/Swiften/JID/SConscript
index 12565fc..122388e 100644
--- a/Swiften/JID/SConscript
+++ b/Swiften/JID/SConscript
@@ -2,6 +2,6 @@ Import("swiften_env")
 
 myenv = swiften_env.Clone()
 objects = myenv.SwiftenObject([
-			"JID.cpp",
-		])
+            "JID.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Jingle/SConscript b/Swiften/Jingle/SConscript
index 546c1b2..4d25a78 100644
--- a/Swiften/Jingle/SConscript
+++ b/Swiften/Jingle/SConscript
@@ -1,14 +1,14 @@
 Import("swiften_env")
 
 sources = [
-		"JingleSession.cpp",
-		"JingleSessionListener.cpp",
-		"AbstractJingleSessionListener.cpp",
-		"JingleSessionImpl.cpp",	
-		"IncomingJingleSessionHandler.cpp",
-		"JingleSessionManager.cpp",	
-		"JingleResponder.cpp",
-		"FakeJingleSession.cpp",
-	]
+        "JingleSession.cpp",
+        "JingleSessionListener.cpp",
+        "AbstractJingleSessionListener.cpp",
+        "JingleSessionImpl.cpp",    
+        "IncomingJingleSessionHandler.cpp",
+        "JingleSessionManager.cpp", 
+        "JingleResponder.cpp",
+        "FakeJingleSession.cpp",
+    ]
 
 swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
diff --git a/Swiften/LinkLocal/SConscript b/Swiften/LinkLocal/SConscript
index 29ea692..697037a 100644
--- a/Swiften/LinkLocal/SConscript
+++ b/Swiften/LinkLocal/SConscript
@@ -4,39 +4,39 @@ myenv = swiften_env.Clone()
 myenv.MergeFlags(swiften_env.get("BONJOUR_FLAGS", ""))
 
 sources = [
-		"DNSSD/DNSSDBrowseQuery.cpp",
-		"DNSSD/DNSSDQuerier.cpp",
-		"DNSSD/DNSSDRegisterQuery.cpp",
-		"DNSSD/DNSSDResolveHostnameQuery.cpp",
-		"DNSSD/DNSSDResolveServiceQuery.cpp",
-		"DNSSD/DNSSDServiceID.cpp",
-		"DNSSD/Fake/FakeDNSSDQuerier.cpp",
-		"DNSSD/Fake/FakeDNSSDQuery.cpp",
-		"DNSSD/PlatformDNSSDQuerierFactory.cpp",
-		"IncomingLinkLocalSession.cpp",
-		"LinkLocalConnector.cpp",
-		"LinkLocalService.cpp",
-		"LinkLocalServiceBrowser.cpp",
-		"LinkLocalServiceInfo.cpp",
-		"OutgoingLinkLocalSession.cpp",
-	]
+        "DNSSD/DNSSDBrowseQuery.cpp",
+        "DNSSD/DNSSDQuerier.cpp",
+        "DNSSD/DNSSDRegisterQuery.cpp",
+        "DNSSD/DNSSDResolveHostnameQuery.cpp",
+        "DNSSD/DNSSDResolveServiceQuery.cpp",
+        "DNSSD/DNSSDServiceID.cpp",
+        "DNSSD/Fake/FakeDNSSDQuerier.cpp",
+        "DNSSD/Fake/FakeDNSSDQuery.cpp",
+        "DNSSD/PlatformDNSSDQuerierFactory.cpp",
+        "IncomingLinkLocalSession.cpp",
+        "LinkLocalConnector.cpp",
+        "LinkLocalService.cpp",
+        "LinkLocalServiceBrowser.cpp",
+        "LinkLocalServiceInfo.cpp",
+        "OutgoingLinkLocalSession.cpp",
+    ]
 
 if myenv.get("HAVE_BONJOUR", 0) :
-	myenv.Append(CPPDEFINES = "HAVE_BONJOUR")
-	sources += [
-			"DNSSD/Bonjour/BonjourQuerier.cpp",
-			"DNSSD/Bonjour/BonjourQuery.cpp",
-		]
+    myenv.Append(CPPDEFINES = "HAVE_BONJOUR")
+    sources += [
+            "DNSSD/Bonjour/BonjourQuerier.cpp",
+            "DNSSD/Bonjour/BonjourQuery.cpp",
+        ]
 elif myenv.get("HAVE_AVAHI", 0) :
-	myenv.Append(CPPDEFINES = ["HAVE_AVAHI"])
-	sources += [
-			"DNSSD/Avahi/AvahiQuerier.cpp",
-			"DNSSD/Avahi/AvahiQuery.cpp",
-			"DNSSD/Avahi/AvahiResolveHostnameQuery.cpp",
-			"DNSSD/Avahi/AvahiResolveServiceQuery.cpp",
-			"DNSSD/Avahi/AvahiRegisterQuery.cpp",
-			"DNSSD/Avahi/AvahiBrowseQuery.cpp",
-		]
+    myenv.Append(CPPDEFINES = ["HAVE_AVAHI"])
+    sources += [
+            "DNSSD/Avahi/AvahiQuerier.cpp",
+            "DNSSD/Avahi/AvahiQuery.cpp",
+            "DNSSD/Avahi/AvahiResolveHostnameQuery.cpp",
+            "DNSSD/Avahi/AvahiResolveServiceQuery.cpp",
+            "DNSSD/Avahi/AvahiRegisterQuery.cpp",
+            "DNSSD/Avahi/AvahiBrowseQuery.cpp",
+        ]
 
 objects = myenv.SwiftenObject(sources)
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Network/SConscript b/Swiften/Network/SConscript
index e9da1bc..9c2a134 100644
--- a/Swiften/Network/SConscript
+++ b/Swiften/Network/SConscript
@@ -3,109 +3,109 @@ Import("swiften_env")
 myenv = swiften_env.Clone()
 
 if myenv.get("unbound", False) :
-	myenv.MergeFlags(myenv.get("UNBOUND_FLAGS", {}))
-	myenv.MergeFlags(myenv.get("LDNS_FLAGS", {}))
+    myenv.MergeFlags(myenv.get("UNBOUND_FLAGS", {}))
+    myenv.MergeFlags(myenv.get("LDNS_FLAGS", {}))
 
 sourceList = [
-			"ProxiedConnection.cpp",
-			"HTTPConnectProxiedConnection.cpp",
-			"HTTPConnectProxiedConnectionFactory.cpp",
-			"SOCKS5ProxiedConnection.cpp",
-			"SOCKS5ProxiedConnectionFactory.cpp",
-			"BoostConnection.cpp",
-			"BoostConnectionFactory.cpp",
-			"BoostConnectionServer.cpp",
-			"BoostConnectionServerFactory.cpp",
-			"BoostIOServiceThread.cpp",
-			"BOSHConnection.cpp",
-			"BOSHConnectionPool.cpp",
-			"CachingDomainNameResolver.cpp",
-			"ConnectionFactory.cpp",
-			"ConnectionServer.cpp",
-			"ConnectionServerFactory.cpp",
-			"DummyConnection.cpp",
-			"FakeConnection.cpp",
-			"ChainedConnector.cpp",
-			"Connector.cpp",
-			"Connection.cpp",
-			"TimerFactory.cpp",
-			"DummyTimerFactory.cpp",
-			"BoostTimerFactory.cpp",
-			"DomainNameResolver.cpp",
-			"DomainNameAddressQuery.cpp",
-			"DomainNameServiceQuery.cpp",
-			"StaticDomainNameResolver.cpp",
-			"HostAddress.cpp",
-			"HostAddressPort.cpp",
-			"HostNameOrAddress.cpp",
-			"NetworkFactories.cpp",
-			"BoostNetworkFactories.cpp",
-			"NetworkEnvironment.cpp",
-			"Timer.cpp",
-			"TLSConnection.cpp",
-			"TLSConnectionFactory.cpp",
-			"BoostTimer.cpp",
-			"ProxyProvider.cpp",
-			"NullProxyProvider.cpp",
-			"NATTraverser.cpp",
-			"NullNATTraverser.cpp",
-			"NATTraversalGetPublicIPRequest.cpp",
-			"NATTraversalForwardPortRequest.cpp",
-			"NATTraversalRemovePortForwardingRequest.cpp",
-			"NATTraversalInterface.cpp",
-			"HTTPTrafficFilter.cpp",
-	]
+            "ProxiedConnection.cpp",
+            "HTTPConnectProxiedConnection.cpp",
+            "HTTPConnectProxiedConnectionFactory.cpp",
+            "SOCKS5ProxiedConnection.cpp",
+            "SOCKS5ProxiedConnectionFactory.cpp",
+            "BoostConnection.cpp",
+            "BoostConnectionFactory.cpp",
+            "BoostConnectionServer.cpp",
+            "BoostConnectionServerFactory.cpp",
+            "BoostIOServiceThread.cpp",
+            "BOSHConnection.cpp",
+            "BOSHConnectionPool.cpp",
+            "CachingDomainNameResolver.cpp",
+            "ConnectionFactory.cpp",
+            "ConnectionServer.cpp",
+            "ConnectionServerFactory.cpp",
+            "DummyConnection.cpp",
+            "FakeConnection.cpp",
+            "ChainedConnector.cpp",
+            "Connector.cpp",
+            "Connection.cpp",
+            "TimerFactory.cpp",
+            "DummyTimerFactory.cpp",
+            "BoostTimerFactory.cpp",
+            "DomainNameResolver.cpp",
+            "DomainNameAddressQuery.cpp",
+            "DomainNameServiceQuery.cpp",
+            "StaticDomainNameResolver.cpp",
+            "HostAddress.cpp",
+            "HostAddressPort.cpp",
+            "HostNameOrAddress.cpp",
+            "NetworkFactories.cpp",
+            "BoostNetworkFactories.cpp",
+            "NetworkEnvironment.cpp",
+            "Timer.cpp",
+            "TLSConnection.cpp",
+            "TLSConnectionFactory.cpp",
+            "BoostTimer.cpp",
+            "ProxyProvider.cpp",
+            "NullProxyProvider.cpp",
+            "NATTraverser.cpp",
+            "NullNATTraverser.cpp",
+            "NATTraversalGetPublicIPRequest.cpp",
+            "NATTraversalForwardPortRequest.cpp",
+            "NATTraversalRemovePortForwardingRequest.cpp",
+            "NATTraversalInterface.cpp",
+            "HTTPTrafficFilter.cpp",
+    ]
 
 if myenv.get("unbound", False) :
-	myenv.Append(CPPDEFINES = "USE_UNBOUND")
-	sourceList.append("UnboundDomainNameResolver.cpp")
+    myenv.Append(CPPDEFINES = "USE_UNBOUND")
+    sourceList.append("UnboundDomainNameResolver.cpp")
 else :
-	sourceList.append("PlatformDomainNameResolver.cpp")
-	sourceList.append("PlatformDomainNameServiceQuery.cpp")
-	sourceList.append("PlatformDomainNameAddressQuery.cpp")
+    sourceList.append("PlatformDomainNameResolver.cpp")
+    sourceList.append("PlatformDomainNameServiceQuery.cpp")
+    sourceList.append("PlatformDomainNameAddressQuery.cpp")
 
 if myenv["PLATFORM"] == "darwin" and myenv["target"] != "android":
-	myenv.Append(FRAMEWORKS = ["CoreServices", "SystemConfiguration"])
-	sourceList += [ "MacOSXProxyProvider.cpp" ]
-	sourceList += [ "UnixNetworkEnvironment.cpp" ]
+    myenv.Append(FRAMEWORKS = ["CoreServices", "SystemConfiguration"])
+    sourceList += [ "MacOSXProxyProvider.cpp" ]
+    sourceList += [ "UnixNetworkEnvironment.cpp" ]
 elif myenv["PLATFORM"] == "win32" :
-	sourceList += [ "WindowsProxyProvider.cpp" ]
-	sourceList += [ "WindowsNetworkEnvironment.cpp" ]
+    sourceList += [ "WindowsProxyProvider.cpp" ]
+    sourceList += [ "WindowsNetworkEnvironment.cpp" ]
 elif myenv["PLATFORM"] == "sunos" :
-	sourceList += [ "UnixProxyProvider.cpp" ]
-	sourceList += [ "SolarisNetworkEnvironment.cpp" ]
-	sourceList += [ "EnvironmentProxyProvider.cpp" ]
+    sourceList += [ "UnixProxyProvider.cpp" ]
+    sourceList += [ "SolarisNetworkEnvironment.cpp" ]
+    sourceList += [ "EnvironmentProxyProvider.cpp" ]
 else :
-	sourceList += [ "UnixNetworkEnvironment.cpp" ]
-	sourceList += [ "UnixProxyProvider.cpp" ]
-	sourceList += [ "EnvironmentProxyProvider.cpp" ]
-	if myenv.get("HAVE_GCONF", 0) :
-		myenv.Append(CPPDEFINES = "HAVE_GCONF")
-		myenv.MergeFlags(myenv["GCONF_FLAGS"])
-		sourceList += [ "GConfProxyProvider.cpp" ]
+    sourceList += [ "UnixNetworkEnvironment.cpp" ]
+    sourceList += [ "UnixProxyProvider.cpp" ]
+    sourceList += [ "EnvironmentProxyProvider.cpp" ]
+    if myenv.get("HAVE_GCONF", 0) :
+        myenv.Append(CPPDEFINES = "HAVE_GCONF")
+        myenv.MergeFlags(myenv["GCONF_FLAGS"])
+        sourceList += [ "GConfProxyProvider.cpp" ]
 
 objects = myenv.SwiftenObject(sourceList)
 
 if myenv["experimental_ft"] :
-	# LibNATPMP classes
-	if myenv.get("HAVE_LIBNATPMP", False) :
-		natpmp_env = myenv.Clone()
-		natpmp_env.Append(CPPDEFINES = natpmp_env["LIBNATPMP_FLAGS"].get("INTERNAL_CPPDEFINES", []))
-		myenv.Append(CPPDEFINES = ["HAVE_LIBNATPMP"])
-		objects += natpmp_env.SwiftenObject([
-					"NATPMPInterface.cpp",
-				])
+    # LibNATPMP classes
+    if myenv.get("HAVE_LIBNATPMP", False) :
+        natpmp_env = myenv.Clone()
+        natpmp_env.Append(CPPDEFINES = natpmp_env["LIBNATPMP_FLAGS"].get("INTERNAL_CPPDEFINES", []))
+        myenv.Append(CPPDEFINES = ["HAVE_LIBNATPMP"])
+        objects += natpmp_env.SwiftenObject([
+                    "NATPMPInterface.cpp",
+                ])
 
-	# LibMINIUPnP classes
-	if myenv.get("HAVE_LIBMINIUPNPC", False) :
-		upnp_env = myenv.Clone()
-		upnp_env.Append(CPPDEFINES = upnp_env["LIBMINIUPNPC_FLAGS"].get("INTERNAL_CPPDEFINES", []))
-		myenv.Append(CPPDEFINES = ["HAVE_LIBMINIUPNPC"])
-		objects += upnp_env.SwiftenObject([
-					"MiniUPnPInterface.cpp",
-				])
-	objects += myenv.SwiftenObject([
-				"PlatformNATTraversalWorker.cpp",
-			])
+    # LibMINIUPnP classes
+    if myenv.get("HAVE_LIBMINIUPNPC", False) :
+        upnp_env = myenv.Clone()
+        upnp_env.Append(CPPDEFINES = upnp_env["LIBMINIUPNPC_FLAGS"].get("INTERNAL_CPPDEFINES", []))
+        myenv.Append(CPPDEFINES = ["HAVE_LIBMINIUPNPC"])
+        objects += upnp_env.SwiftenObject([
+                    "MiniUPnPInterface.cpp",
+                ])
+    objects += myenv.SwiftenObject([
+                "PlatformNATTraversalWorker.cpp",
+            ])
 
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Parser/SConscript b/Swiften/Parser/SConscript
index 03870e5..840cbda 100644
--- a/Swiften/Parser/SConscript
+++ b/Swiften/Parser/SConscript
@@ -6,114 +6,114 @@ myenv.MergeFlags(swiften_env.get("LIBXML_FLAGS", ""))
 myenv.MergeFlags(swiften_env.get("EXPAT_FLAGS", ""))
 
 sources = [
-		"AttributeMap.cpp",
-		"AuthRequestParser.cpp",
-		"AuthChallengeParser.cpp",
-		"AuthSuccessParser.cpp",
-		"AuthResponseParser.cpp",
-		"CompressParser.cpp",
-		"ElementParser.cpp",
-		"IQParser.cpp",
-		"MessageParser.cpp",
-		"PayloadParser.cpp",
-		"StanzaAckParser.cpp",
-		"BOSHBodyExtractor.cpp",
-		"ComponentHandshakeParser.cpp",
-		"PayloadParserFactory.cpp",
-		"PayloadParserFactoryCollection.cpp",
-		"PayloadParsers/BodyParser.cpp",
-		"PayloadParsers/SubjectParser.cpp",
-		"PayloadParsers/ThreadParser.cpp",
-		"PayloadParsers/CarbonsEnableParser.cpp",
-		"PayloadParsers/CarbonsDisableParser.cpp",
-		"PayloadParsers/CarbonsPrivateParser.cpp",
-		"PayloadParsers/CarbonsReceivedParser.cpp",
-		"PayloadParsers/CarbonsSentParser.cpp",
-		"PayloadParsers/ChatStateParser.cpp",
-		"PayloadParsers/CapsInfoParser.cpp",
-		"PayloadParsers/DiscoInfoParser.cpp",
-		"PayloadParsers/DiscoItemsParser.cpp",
-		"PayloadParsers/ErrorParser.cpp",
-		"PayloadParsers/FormParser.cpp",
-		"PayloadParsers/IBBParser.cpp",
-		"PayloadParsers/JingleParser.cpp",
-		"PayloadParsers/JingleReasonParser.cpp",
-		"PayloadParsers/JingleContentPayloadParser.cpp",
-		"PayloadParsers/JingleIBBTransportMethodPayloadParser.cpp",
-		"PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp",
-		"PayloadParsers/JingleFileTransferDescriptionParser.cpp",
-		"PayloadParsers/JingleFileTransferHashParser.cpp",
-		"PayloadParsers/JingleFileTransferFileInfoParser.cpp",
-		"PayloadParsers/StreamInitiationFileInfoParser.cpp",
-		"PayloadParsers/CommandParser.cpp",
-		"PayloadParsers/InBandRegistrationPayloadParser.cpp",
-		"PayloadParsers/SearchPayloadParser.cpp",
-		"PayloadParsers/FullPayloadParserFactoryCollection.cpp",
-		"PayloadParsers/PriorityParser.cpp",
-		"PayloadParsers/PrivateStorageParser.cpp",
-		"PayloadParsers/RawXMLPayloadParser.cpp",
-		"PayloadParsers/ResourceBindParser.cpp",
-		"PayloadParsers/RosterItemExchangeParser.cpp",
-		"PayloadParsers/RosterParser.cpp",
-		"PayloadParsers/SecurityLabelParser.cpp",
-		"PayloadParsers/SecurityLabelsCatalogParser.cpp",
-		"PayloadParsers/SoftwareVersionParser.cpp",
-		"PayloadParsers/StorageParser.cpp",
-		"PayloadParsers/StatusParser.cpp",
-		"PayloadParsers/StatusShowParser.cpp",
-		"PayloadParsers/StreamInitiationParser.cpp",
-		"PayloadParsers/BytestreamsParser.cpp",
-		"PayloadParsers/VCardParser.cpp",
-		"PayloadParsers/VCardUpdateParser.cpp",
-		"PayloadParsers/DelayParser.cpp",
-		"PayloadParsers/MUCUserPayloadParser.cpp",
-		"PayloadParsers/MUCAdminPayloadParser.cpp",
-		"PayloadParsers/MUCOwnerPayloadParser.cpp",
-		"PayloadParsers/MUCDestroyPayloadParser.cpp",
-		"PayloadParsers/MUCInvitationPayloadParser.cpp",
-		"PayloadParsers/MUCItemParser.cpp",
-		"PayloadParsers/NicknameParser.cpp",
-		"PayloadParsers/ReplaceParser.cpp",
-		"PayloadParsers/LastParser.cpp",
-		"PayloadParsers/IdleParser.cpp",
-		"PayloadParsers/S5BProxyRequestParser.cpp",
-		"PayloadParsers/DeliveryReceiptParser.cpp",
-		"PayloadParsers/DeliveryReceiptRequestParser.cpp",
-		"PayloadParsers/UserLocationParser.cpp",
-		"PayloadParsers/UserTuneParser.cpp",
-		"PayloadParsers/WhiteboardParser.cpp",
-		"PayloadParsers/PubSubErrorParserFactory.cpp",
-		"PayloadParsers/ResultSetParser.cpp",
-		"PayloadParsers/ForwardedParser.cpp",
-		"PayloadParsers/MAMFinParser.cpp",
-		"PayloadParsers/MAMResultParser.cpp",
-		"PayloadParsers/MAMQueryParser.cpp",
-		"PayloadParsers/IsodeIQDelegationParser.cpp",
-		"PlatformXMLParserFactory.cpp",
-		"PresenceParser.cpp",
-		"SerializingParser.cpp",
-		"StanzaParser.cpp",
-		"StreamErrorParser.cpp",
-		"StreamFeaturesParser.cpp",
-		"StreamManagementEnabledParser.cpp",
-		"StreamResumeParser.cpp",
-		"StreamResumedParser.cpp",
-		"Tree/ParserElement.cpp",
-		"Tree/NullParserElement.cpp",
-		"Tree/TreeReparser.cpp",
-		"XMLParser.cpp",
-		"XMLParserClient.cpp",
-		"XMLParserFactory.cpp",
-		"XMPPParser.cpp",
-		"XMPPParserClient.cpp",
-	]
+        "AttributeMap.cpp",
+        "AuthRequestParser.cpp",
+        "AuthChallengeParser.cpp",
+        "AuthSuccessParser.cpp",
+        "AuthResponseParser.cpp",
+        "CompressParser.cpp",
+        "ElementParser.cpp",
+        "IQParser.cpp",
+        "MessageParser.cpp",
+        "PayloadParser.cpp",
+        "StanzaAckParser.cpp",
+        "BOSHBodyExtractor.cpp",
+        "ComponentHandshakeParser.cpp",
+        "PayloadParserFactory.cpp",
+        "PayloadParserFactoryCollection.cpp",
+        "PayloadParsers/BodyParser.cpp",
+        "PayloadParsers/SubjectParser.cpp",
+        "PayloadParsers/ThreadParser.cpp",
+        "PayloadParsers/CarbonsEnableParser.cpp",
+        "PayloadParsers/CarbonsDisableParser.cpp",
+        "PayloadParsers/CarbonsPrivateParser.cpp",
+        "PayloadParsers/CarbonsReceivedParser.cpp",
+        "PayloadParsers/CarbonsSentParser.cpp",
+        "PayloadParsers/ChatStateParser.cpp",
+        "PayloadParsers/CapsInfoParser.cpp",
+        "PayloadParsers/DiscoInfoParser.cpp",
+        "PayloadParsers/DiscoItemsParser.cpp",
+        "PayloadParsers/ErrorParser.cpp",
+        "PayloadParsers/FormParser.cpp",
+        "PayloadParsers/IBBParser.cpp",
+        "PayloadParsers/JingleParser.cpp",
+        "PayloadParsers/JingleReasonParser.cpp",
+        "PayloadParsers/JingleContentPayloadParser.cpp",
+        "PayloadParsers/JingleIBBTransportMethodPayloadParser.cpp",
+        "PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp",
+        "PayloadParsers/JingleFileTransferDescriptionParser.cpp",
+        "PayloadParsers/JingleFileTransferHashParser.cpp",
+        "PayloadParsers/JingleFileTransferFileInfoParser.cpp",
+        "PayloadParsers/StreamInitiationFileInfoParser.cpp",
+        "PayloadParsers/CommandParser.cpp",
+        "PayloadParsers/InBandRegistrationPayloadParser.cpp",
+        "PayloadParsers/SearchPayloadParser.cpp",
+        "PayloadParsers/FullPayloadParserFactoryCollection.cpp",
+        "PayloadParsers/PriorityParser.cpp",
+        "PayloadParsers/PrivateStorageParser.cpp",
+        "PayloadParsers/RawXMLPayloadParser.cpp",
+        "PayloadParsers/ResourceBindParser.cpp",
+        "PayloadParsers/RosterItemExchangeParser.cpp",
+        "PayloadParsers/RosterParser.cpp",
+        "PayloadParsers/SecurityLabelParser.cpp",
+        "PayloadParsers/SecurityLabelsCatalogParser.cpp",
+        "PayloadParsers/SoftwareVersionParser.cpp",
+        "PayloadParsers/StorageParser.cpp",
+        "PayloadParsers/StatusParser.cpp",
+        "PayloadParsers/StatusShowParser.cpp",
+        "PayloadParsers/StreamInitiationParser.cpp",
+        "PayloadParsers/BytestreamsParser.cpp",
+        "PayloadParsers/VCardParser.cpp",
+        "PayloadParsers/VCardUpdateParser.cpp",
+        "PayloadParsers/DelayParser.cpp",
+        "PayloadParsers/MUCUserPayloadParser.cpp",
+        "PayloadParsers/MUCAdminPayloadParser.cpp",
+        "PayloadParsers/MUCOwnerPayloadParser.cpp",
+        "PayloadParsers/MUCDestroyPayloadParser.cpp",
+        "PayloadParsers/MUCInvitationPayloadParser.cpp",
+        "PayloadParsers/MUCItemParser.cpp",
+        "PayloadParsers/NicknameParser.cpp",
+        "PayloadParsers/ReplaceParser.cpp",
+        "PayloadParsers/LastParser.cpp",
+        "PayloadParsers/IdleParser.cpp",
+        "PayloadParsers/S5BProxyRequestParser.cpp",
+        "PayloadParsers/DeliveryReceiptParser.cpp",
+        "PayloadParsers/DeliveryReceiptRequestParser.cpp",
+        "PayloadParsers/UserLocationParser.cpp",
+        "PayloadParsers/UserTuneParser.cpp",
+        "PayloadParsers/WhiteboardParser.cpp",
+        "PayloadParsers/PubSubErrorParserFactory.cpp",
+        "PayloadParsers/ResultSetParser.cpp",
+        "PayloadParsers/ForwardedParser.cpp",
+        "PayloadParsers/MAMFinParser.cpp",
+        "PayloadParsers/MAMResultParser.cpp",
+        "PayloadParsers/MAMQueryParser.cpp",
+        "PayloadParsers/IsodeIQDelegationParser.cpp",
+        "PlatformXMLParserFactory.cpp",
+        "PresenceParser.cpp",
+        "SerializingParser.cpp",
+        "StanzaParser.cpp",
+        "StreamErrorParser.cpp",
+        "StreamFeaturesParser.cpp",
+        "StreamManagementEnabledParser.cpp",
+        "StreamResumeParser.cpp",
+        "StreamResumedParser.cpp",
+        "Tree/ParserElement.cpp",
+        "Tree/NullParserElement.cpp",
+        "Tree/TreeReparser.cpp",
+        "XMLParser.cpp",
+        "XMLParserClient.cpp",
+        "XMLParserFactory.cpp",
+        "XMPPParser.cpp",
+        "XMPPParserClient.cpp",
+    ]
 
 if myenv.get("HAVE_EXPAT", 0) :
-	myenv.Append(CPPDEFINES = "HAVE_EXPAT")
-	sources += ["ExpatParser.cpp"]
+    myenv.Append(CPPDEFINES = "HAVE_EXPAT")
+    sources += ["ExpatParser.cpp"]
 if myenv.get("HAVE_LIBXML", 0) :
-	myenv.Append(CPPDEFINES = "HAVE_LIBXML")
-	sources += ["LibXMLParser.cpp"]
+    myenv.Append(CPPDEFINES = "HAVE_LIBXML")
+    sources += ["LibXMLParser.cpp"]
 
 objects = myenv.SwiftenObject(sources)
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Presence/SConscript b/Swiften/Presence/SConscript
index 33acbd3..c3e32f2 100644
--- a/Swiften/Presence/SConscript
+++ b/Swiften/Presence/SConscript
@@ -1,11 +1,11 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"PresenceOracle.cpp",
-			"PresenceSender.cpp",
-			"DirectedPresenceSender.cpp",
-			"PayloadAddingPresenceSender.cpp",
-			"StanzaChannelPresenceSender.cpp",
-			"SubscriptionManager.cpp",
-		])
+            "PresenceOracle.cpp",
+            "PresenceSender.cpp",
+            "DirectedPresenceSender.cpp",
+            "PayloadAddingPresenceSender.cpp",
+            "StanzaChannelPresenceSender.cpp",
+            "SubscriptionManager.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/QA/ClientTest/SConscript b/Swiften/QA/ClientTest/SConscript
index 15a68c6..812c472 100644
--- a/Swiften/QA/ClientTest/SConscript
+++ b/Swiften/QA/ClientTest/SConscript
@@ -3,15 +3,15 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
+    myenv = env.Clone()
+    myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
 
-	for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]:
-		if ARGUMENTS.get(i.lower(), False) :
-			myenv["ENV"][i] = ARGUMENTS[i.lower()]
-		elif os.environ.get(i, "") :
-			myenv["ENV"][i] = os.environ[i]
+    for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]:
+        if ARGUMENTS.get(i.lower(), False) :
+            myenv["ENV"][i] = ARGUMENTS[i.lower()]
+        elif os.environ.get(i, "") :
+            myenv["ENV"][i] = os.environ[i]
 
-	tester = myenv.Program("ClientTest", ["ClientTest.cpp"])
-	myenv.Test(tester, "system")
+    tester = myenv.Program("ClientTest", ["ClientTest.cpp"])
+    myenv.Test(tester, "system")
diff --git a/Swiften/QA/ConcurrentFileTransferTest/SConscript b/Swiften/QA/ConcurrentFileTransferTest/SConscript
index 1b4cdbc..94b37fd 100644
--- a/Swiften/QA/ConcurrentFileTransferTest/SConscript
+++ b/Swiften/QA/ConcurrentFileTransferTest/SConscript
@@ -3,15 +3,15 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
+    myenv = env.Clone()
+    myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
 
-	for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]:
-		if ARGUMENTS.get(i.lower(), False) :
-			myenv["ENV"][i] = ARGUMENTS[i.lower()]
-		elif os.environ.get(i, "") :
-			myenv["ENV"][i] = os.environ[i]
+    for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]:
+        if ARGUMENTS.get(i.lower(), False) :
+            myenv["ENV"][i] = ARGUMENTS[i.lower()]
+        elif os.environ.get(i, "") :
+            myenv["ENV"][i] = os.environ[i]
 
-	tester = myenv.Program("ConcurrentFileTransferTest", ["ConcurrentFileTransferTest.cpp"])
-	myenv.Test(tester, "system")
+    tester = myenv.Program("ConcurrentFileTransferTest", ["ConcurrentFileTransferTest.cpp"])
+    myenv.Test(tester, "system")
diff --git a/Swiften/QA/DNSSDTest/SConscript b/Swiften/QA/DNSSDTest/SConscript
index d35d06f..275a314 100644
--- a/Swiften/QA/DNSSDTest/SConscript
+++ b/Swiften/QA/DNSSDTest/SConscript
@@ -3,19 +3,19 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(myenv["CHECKER_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
-	myenv.MergeFlags(myenv["BOOST_FLAGS"])
-	myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
-	if myenv.get("HAVE_BONJOUR", 0) :
-		myenv.Append(CPPDEFINES = "HAVE_BONJOUR")
-	elif myenv.get("HAVE_AVAHI", 0) :
-		myenv.Append(CPPDEFINES = ["HAVE_AVAHI"])
-		myenv.MergeFlags(myenv["AVAHI_FLAGS"])
+    myenv = env.Clone()
+    myenv.MergeFlags(myenv["CHECKER_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
+    myenv.MergeFlags(myenv["BOOST_FLAGS"])
+    myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
+    if myenv.get("HAVE_BONJOUR", 0) :
+        myenv.Append(CPPDEFINES = "HAVE_BONJOUR")
+    elif myenv.get("HAVE_AVAHI", 0) :
+        myenv.Append(CPPDEFINES = ["HAVE_AVAHI"])
+        myenv.MergeFlags(myenv["AVAHI_FLAGS"])
 
-	tester = myenv.Program("DNSSDTest", [
-			"DNSSDTest.cpp",
-		])
-	myenv.Test(tester, "system")
+    tester = myenv.Program("DNSSDTest", [
+            "DNSSDTest.cpp",
+        ])
+    myenv.Test(tester, "system")
diff --git a/Swiften/QA/FileTransferTest/SConscript b/Swiften/QA/FileTransferTest/SConscript
index 3275985..4b77674 100644
--- a/Swiften/QA/FileTransferTest/SConscript
+++ b/Swiften/QA/FileTransferTest/SConscript
@@ -3,18 +3,18 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
+    myenv = env.Clone()
+    myenv.UseFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"])
 
-	for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]:
-		if ARGUMENTS.get(i.lower(), False) :
-			myenv["ENV"][i] = ARGUMENTS[i.lower()]
-		elif os.environ.get(i, "") :
-			myenv["ENV"][i] = os.environ[i]
+    for i in ["SWIFT_FILETRANSFERTEST_JID", "SWIFT_FILETRANSFERTEST_PASS", "SWIFT_FILETRANSFERTEST2_JID", "SWIFT_FILETRANSFERTEST2_PASS"]:
+        if ARGUMENTS.get(i.lower(), False) :
+            myenv["ENV"][i] = ARGUMENTS[i.lower()]
+        elif os.environ.get(i, "") :
+            myenv["ENV"][i] = os.environ[i]
 
-	# test in-band transfers, direct SOCKS5 bytestream transfers and proxied SOCKS5 bytestream transfers
-	myenv["ENV"]["SWIFT_FILETRANSFERTEST_CONFIG"] = "1:1|2:2|4:4"
+    # test in-band transfers, direct SOCKS5 bytestream transfers and proxied SOCKS5 bytestream transfers
+    myenv["ENV"]["SWIFT_FILETRANSFERTEST_CONFIG"] = "1:1|2:2|4:4"
 
-	tester = myenv.Program("FileTransferTest", ["FileTransferTest.cpp"])
-	myenv.Test(tester, "system")
+    tester = myenv.Program("FileTransferTest", ["FileTransferTest.cpp"])
+    myenv.Test(tester, "system")
diff --git a/Swiften/QA/NetworkTest/SConscript b/Swiften/QA/NetworkTest/SConscript
index b090165..387bafc 100644
--- a/Swiften/QA/NetworkTest/SConscript
+++ b/Swiften/QA/NetworkTest/SConscript
@@ -3,20 +3,20 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	if "test_ipv6" in ARGUMENTS :
-		myenv.Append(CPPDEFINES = ["TEST_IPV6"])
-	myenv.MergeFlags(myenv["CHECKER_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
-	myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
+    myenv = env.Clone()
+    if "test_ipv6" in ARGUMENTS :
+        myenv.Append(CPPDEFINES = ["TEST_IPV6"])
+    myenv.MergeFlags(myenv["CHECKER_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
+    myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
 
-	if env.get("unbound", False) :
-		myenv.Append(CPPDEFINES = ["USE_UNBOUND"])
+    if env.get("unbound", False) :
+        myenv.Append(CPPDEFINES = ["USE_UNBOUND"])
 
-	tester = myenv.Program("NetworkTest", [
-			"BoostConnectionServerTest.cpp",
-			"BoostConnectionTest.cpp",
-			"DomainNameResolverTest.cpp",
-		])
-	myenv.Test(tester, "system", is_checker = True)
+    tester = myenv.Program("NetworkTest", [
+            "BoostConnectionServerTest.cpp",
+            "BoostConnectionTest.cpp",
+            "DomainNameResolverTest.cpp",
+        ])
+    myenv.Test(tester, "system", is_checker = True)
diff --git a/Swiften/QA/ProxyProviderTest/SConscript b/Swiften/QA/ProxyProviderTest/SConscript
index 2eb123d..3e28360 100644
--- a/Swiften/QA/ProxyProviderTest/SConscript
+++ b/Swiften/QA/ProxyProviderTest/SConscript
@@ -7,5 +7,5 @@ myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
 myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
 
 myenv.Program("ProxyProviderTest", [
-		"ProxyProviderTest.cpp",
-	])
+        "ProxyProviderTest.cpp",
+    ])
diff --git a/Swiften/QA/ReconnectTest/SConscript b/Swiften/QA/ReconnectTest/SConscript
index 6db6a6f..a94af5e 100644
--- a/Swiften/QA/ReconnectTest/SConscript
+++ b/Swiften/QA/ReconnectTest/SConscript
@@ -3,23 +3,23 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
-	myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
-	myenv.MergeFlags(myenv["BOOST_FLAGS"])
-	myenv.MergeFlags(myenv.get("SQLITE_FLAGS", ""))
-	myenv.MergeFlags(myenv["ZLIB_FLAGS"])
-	myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
-	myenv.MergeFlags(myenv.get("LIBXML_FLAGS", ""))
-	myenv.MergeFlags(myenv.get("EXPAT_FLAGS", ""))
-	myenv.MergeFlags(myenv["PLATFORM_FLAGS"])
-#	myenv.Append(LIBPATH = ["/opt/local/lib"])
-#	myenv.Append(LIBS = ["efence"])
+    myenv = env.Clone()
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
+    myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
+    myenv.MergeFlags(myenv["BOOST_FLAGS"])
+    myenv.MergeFlags(myenv.get("SQLITE_FLAGS", ""))
+    myenv.MergeFlags(myenv["ZLIB_FLAGS"])
+    myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
+    myenv.MergeFlags(myenv.get("LIBXML_FLAGS", ""))
+    myenv.MergeFlags(myenv.get("EXPAT_FLAGS", ""))
+    myenv.MergeFlags(myenv["PLATFORM_FLAGS"])
+#   myenv.Append(LIBPATH = ["/opt/local/lib"])
+#   myenv.Append(LIBS = ["efence"])
 
-	for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]:
-		if os.environ.get(i, "") :
-			myenv["ENV"][i] = os.environ[i]
+    for i in ["SWIFT_CLIENTTEST_JID", "SWIFT_CLIENTTEST_PASS"]:
+        if os.environ.get(i, "") :
+            myenv["ENV"][i] = os.environ[i]
 
-	tester = myenv.Program("ReconnectTest", ["ReconnectTest.cpp"])
-	myenv.Test(tester, "system", is_checker = True)
+    tester = myenv.Program("ReconnectTest", ["ReconnectTest.cpp"])
+    myenv.Test(tester, "system", is_checker = True)
diff --git a/Swiften/QA/SConscript b/Swiften/QA/SConscript
index 2c588e5..2bb3e51 100644
--- a/Swiften/QA/SConscript
+++ b/Swiften/QA/SConscript
@@ -1,13 +1,13 @@
 Import("swiften_env")
 
 SConscript(dirs = [
-		"NetworkTest",
-#		"ReconnectTest",
-		"ClientTest",
-#		"DNSSDTest",
-		"StorageTest",
-		"TLSTest",
-		"ScriptedTests",
-		"ProxyProviderTest",
-		"FileTransferTest",
-	])
+        "NetworkTest",
+#       "ReconnectTest",
+        "ClientTest",
+#       "DNSSDTest",
+        "StorageTest",
+        "TLSTest",
+        "ScriptedTests",
+        "ProxyProviderTest",
+        "FileTransferTest",
+    ])
diff --git a/Swiften/QA/ScriptedTests/SConscript b/Swiften/QA/ScriptedTests/SConscript
index 298c455..ae315fe 100644
--- a/Swiften/QA/ScriptedTests/SConscript
+++ b/Swiften/QA/ScriptedTests/SConscript
@@ -1,7 +1,7 @@
 Import("env")
 
 if env["TEST"] :
-	env.ScriptTests([
-			"SendMessage.lua",
-			"MultipleClients.lua",
-		], "Swiften.QA.ScriptedTests", "system")
+    env.ScriptTests([
+            "SendMessage.lua",
+            "MultipleClients.lua",
+        ], "Swiften.QA.ScriptedTests", "system")
diff --git a/Swiften/QA/StorageTest/SConscript b/Swiften/QA/StorageTest/SConscript
index fff2a2b..bb1a2c6 100644
--- a/Swiften/QA/StorageTest/SConscript
+++ b/Swiften/QA/StorageTest/SConscript
@@ -3,20 +3,20 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(myenv["CHECKER_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
-	myenv.MergeFlags(myenv["BOOST_FLAGS"])
-	myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
-	myenv.MergeFlags(myenv.get("EXPAT_FLAGS", {}))
-	myenv.MergeFlags(myenv.get("LIBXML_FLAGS", {}))
-	myenv.MergeFlags(myenv["PLATFORM_FLAGS"])
+    myenv = env.Clone()
+    myenv.MergeFlags(myenv["CHECKER_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
+    myenv.MergeFlags(myenv["BOOST_FLAGS"])
+    myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
+    myenv.MergeFlags(myenv.get("EXPAT_FLAGS", {}))
+    myenv.MergeFlags(myenv.get("LIBXML_FLAGS", {}))
+    myenv.MergeFlags(myenv["PLATFORM_FLAGS"])
 
-	tester = myenv.Program("StorageTest", [
-			#"VCardFileStorageTest.cpp",
-			"FileReadBytestreamTest.cpp",
-			"FileWriteBytestreamTest.cpp",
-		])
-	myenv.Test(tester, "system", is_checker = True)
+    tester = myenv.Program("StorageTest", [
+            #"VCardFileStorageTest.cpp",
+            "FileReadBytestreamTest.cpp",
+            "FileWriteBytestreamTest.cpp",
+        ])
+    myenv.Test(tester, "system", is_checker = True)
diff --git a/Swiften/QA/TLSTest/SConscript b/Swiften/QA/TLSTest/SConscript
index 1a2e2c0..ba884e4 100644
--- a/Swiften/QA/TLSTest/SConscript
+++ b/Swiften/QA/TLSTest/SConscript
@@ -3,23 +3,23 @@ import os
 Import("env")
 
 if env["TEST"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(myenv["CHECKER_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
-	myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
-	
-	if myenv.get("HAVE_OPENSSL", 0) :
-		myenv.Append(CPPDEFINES = "HAVE_OPENSSL")
-		myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
-	elif myenv.get("HAVE_SCHANNEL", 0) :
-		myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
-	elif myenv.get("HAVE_SECURETRANSPORT", 0) :
-		myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT")
-	
-	tester = myenv.Program("TLSTest", [
-			"CertificateTest.cpp",
-			"CertificateErrorTest.cpp"
-		])
-	myenv.Test(tester, "system")
\ No newline at end of file
+    myenv = env.Clone()
+    myenv.MergeFlags(myenv["CHECKER_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTOOLS_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+    myenv.MergeFlags(myenv["SWIFTEN_DEP_FLAGS"])
+    myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
+
+    if myenv.get("HAVE_OPENSSL", 0) :
+        myenv.Append(CPPDEFINES = "HAVE_OPENSSL")
+        myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
+    elif myenv.get("HAVE_SCHANNEL", 0) :
+        myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
+    elif myenv.get("HAVE_SECURETRANSPORT", 0) :
+        myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT")
+
+    tester = myenv.Program("TLSTest", [
+            "CertificateTest.cpp",
+            "CertificateErrorTest.cpp"
+        ])
+    myenv.Test(tester, "system")
\ No newline at end of file
diff --git a/Swiften/SASL/SConscript b/Swiften/SASL/SConscript
index 7e1fd07..6aa3e72 100644
--- a/Swiften/SASL/SConscript
+++ b/Swiften/SASL/SConscript
@@ -3,31 +3,31 @@ Import("swiften_env", "env")
 myenv = swiften_env.Clone()
 
 objects = myenv.SwiftenObject([
-		"ClientAuthenticator.cpp",
-		"EXTERNALClientAuthenticator.cpp",
-		"PLAINClientAuthenticator.cpp",
-		"PLAINMessage.cpp",
-		"SCRAMSHA1ClientAuthenticator.cpp",
-		"DIGESTMD5Properties.cpp",
-		"DIGESTMD5ClientAuthenticator.cpp",
-	])
+        "ClientAuthenticator.cpp",
+        "EXTERNALClientAuthenticator.cpp",
+        "PLAINClientAuthenticator.cpp",
+        "PLAINMessage.cpp",
+        "SCRAMSHA1ClientAuthenticator.cpp",
+        "DIGESTMD5Properties.cpp",
+        "DIGESTMD5ClientAuthenticator.cpp",
+    ])
 if myenv["PLATFORM"] == "win32" :
-	objects += myenv.SwiftenObject([
-		"WindowsServicePrincipalName.cpp",
-		"WindowsAuthentication.cpp",
-		"WindowsGSSAPIClientAuthenticator.cpp"
-	])
+    objects += myenv.SwiftenObject([
+        "WindowsServicePrincipalName.cpp",
+        "WindowsAuthentication.cpp",
+        "WindowsGSSAPIClientAuthenticator.cpp"
+    ])
 
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
 
 env.Append(UNITTEST_SOURCES = [
-			File("UnitTest/PLAINMessageTest.cpp"),
-			File("UnitTest/PLAINClientAuthenticatorTest.cpp"),
-			File("UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp"),
-			File("UnitTest/DIGESTMD5PropertiesTest.cpp"),
-			File("UnitTest/DIGESTMD5ClientAuthenticatorTest.cpp"),
-	])
+            File("UnitTest/PLAINMessageTest.cpp"),
+            File("UnitTest/PLAINClientAuthenticatorTest.cpp"),
+            File("UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp"),
+            File("UnitTest/DIGESTMD5PropertiesTest.cpp"),
+            File("UnitTest/DIGESTMD5ClientAuthenticatorTest.cpp"),
+    ])
 if myenv["PLATFORM"] == "win32" :
-	env.Append(UNITTEST_SOURCES = [
-			File("UnitTest/WindowsServicePrincipalNameTest.cpp"),
-		])
+    env.Append(UNITTEST_SOURCES = [
+            File("UnitTest/WindowsServicePrincipalNameTest.cpp"),
+        ])
diff --git a/Swiften/SConscript b/Swiften/SConscript
index 54ce18b..5270ac5 100644
--- a/Swiften/SConscript
+++ b/Swiften/SConscript
@@ -10,592 +10,592 @@ swiften_dep_modules = ["BOOST", "GCONF", "ICU", "LIBIDN", "ZLIB", "LDNS", "UNBOU
 external_swiften_dep_modules = ["BOOST"]
 
 if env["SCONS_STAGE"] == "flags" :
-	env["SWIFTEN_DLL"] = env["swiften_dll"]
-	env["SWIFTEN_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift")
-	version_match = re.match("(\d+)\.(\d+).*", env["SWIFTEN_VERSION"])
-	if version_match :
-		env["SWIFTEN_VERSION_MAJOR"] = int(version_match.group(1))
-		env["SWIFTEN_VERSION_MINOR"] = int(version_match.group(2))
-	else :
-		env["SWIFTEN_VERSION_MAJOR"] = 0
-		env["SWIFTEN_VERSION_MINOR"] = 0
-	env["SWIFTEN_VERSION_PATCH"] = 0
-	env["SWIFTEN_LIBRARY"] = "Swiften"
-	env["SWIFTEN_LIBRARY_FILE"] = "Swiften"
-	env["SWIFTEN_LIBRARY_ALIASES"] = []
-	
-	if env["SWIFTEN_DLL"] :
-		if env["PLATFORM"] == "win32" :
-			env["SWIFTEN_LIBRARY"] = env.subst("Swiften${SWIFTEN_VERSION_MAJOR}")
-			env["SWIFTEN_LIBRARY_FILE"] = env.subst("${SWIFTEN_LIBRARY}.dll")
-		elif env["PLATFORM"] == "darwin" :
-			env["SWIFTEN_LIBRARY_FILE"] = env.subst("Swiften.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}")
-			env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.dylib", env.subst("libSwiften.${SWIFTEN_VERSION_MAJOR}.dylib")]
-		else :
-			env["SWIFTEN_LIBRARY_FILE"] = env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}")
-			env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.so", env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}")]
+    env["SWIFTEN_DLL"] = env["swiften_dll"]
+    env["SWIFTEN_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift")
+    version_match = re.match("(\d+)\.(\d+).*", env["SWIFTEN_VERSION"])
+    if version_match :
+        env["SWIFTEN_VERSION_MAJOR"] = int(version_match.group(1))
+        env["SWIFTEN_VERSION_MINOR"] = int(version_match.group(2))
+    else :
+        env["SWIFTEN_VERSION_MAJOR"] = 0
+        env["SWIFTEN_VERSION_MINOR"] = 0
+    env["SWIFTEN_VERSION_PATCH"] = 0
+    env["SWIFTEN_LIBRARY"] = "Swiften"
+    env["SWIFTEN_LIBRARY_FILE"] = "Swiften"
+    env["SWIFTEN_LIBRARY_ALIASES"] = []
+    
+    if env["SWIFTEN_DLL"] :
+        if env["PLATFORM"] == "win32" :
+            env["SWIFTEN_LIBRARY"] = env.subst("Swiften${SWIFTEN_VERSION_MAJOR}")
+            env["SWIFTEN_LIBRARY_FILE"] = env.subst("${SWIFTEN_LIBRARY}.dll")
+        elif env["PLATFORM"] == "darwin" :
+            env["SWIFTEN_LIBRARY_FILE"] = env.subst("Swiften.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}")
+            env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.dylib", env.subst("libSwiften.${SWIFTEN_VERSION_MAJOR}.dylib")]
+        else :
+            env["SWIFTEN_LIBRARY_FILE"] = env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}")
+            env["SWIFTEN_LIBRARY_ALIASES"] = ["libSwiften.so", env.subst("libSwiften.so.${SWIFTEN_VERSION_MAJOR}")]
 
-	if env["SWIFTEN_DLL"] :
-		env.AddMethod(lambda e,s : e.SharedObject(s), "SwiftenObject")
-	else :
-		env.AddMethod(lambda e,s : e.StaticObject(s), "SwiftenObject")
+    if env["SWIFTEN_DLL"] :
+        env.AddMethod(lambda e,s : e.SharedObject(s), "SwiftenObject")
+    else :
+        env.AddMethod(lambda e,s : e.StaticObject(s), "SwiftenObject")
 
-	swiften_env = env.Clone()
-	swiften_env["LIBPATH"] = [Dir(".")]
-	swiften_env["LIBRUNPATH"] = [Dir(".")]
-	swiften_env["LIBS"] = [swiften_env["SWIFTEN_LIBRARY"]]
-	if not env["SWIFTEN_DLL"] :
-		swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"])
-	dep_env = env.Clone()
-	for module in swiften_dep_modules :
-		module_flags = env.get(module + "_FLAGS", {})
-		if env.get(module + "_BUNDLED", False) :
-			if module in external_swiften_dep_modules :
-				swiften_env.UseFlags(module_flags)
-		else :
-			if module in external_swiften_dep_modules :
-				dep_env.UseFlags(module_flags)
-			else :
-				# Expose only libraries
-				dep_env.Append(LIBPATH = module_flags.get("LIBPATH", []))
-				dep_env.Append(LIBS = module_flags.get("LIBS", []))
-				dep_env.Append(FRAMEWORKS = module_flags.get("FRAMEWORKS", []))
-	dep_env.UseFlags(dep_env["PLATFORM_FLAGS"])
+    swiften_env = env.Clone()
+    swiften_env["LIBPATH"] = [Dir(".")]
+    swiften_env["LIBRUNPATH"] = [Dir(".")]
+    swiften_env["LIBS"] = [swiften_env["SWIFTEN_LIBRARY"]]
+    if not env["SWIFTEN_DLL"] :
+        swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"])
+    dep_env = env.Clone()
+    for module in swiften_dep_modules :
+        module_flags = env.get(module + "_FLAGS", {})
+        if env.get(module + "_BUNDLED", False) :
+            if module in external_swiften_dep_modules :
+                swiften_env.UseFlags(module_flags)
+        else :
+            if module in external_swiften_dep_modules :
+                dep_env.UseFlags(module_flags)
+            else :
+                # Expose only libraries
+                dep_env.Append(LIBPATH = module_flags.get("LIBPATH", []))
+                dep_env.Append(LIBS = module_flags.get("LIBS", []))
+                dep_env.Append(FRAMEWORKS = module_flags.get("FRAMEWORKS", []))
+    dep_env.UseFlags(dep_env["PLATFORM_FLAGS"])
 
-	if env.get("HAVE_SCHANNEL", 0) :
-		dep_env.Append(LIBS = ["Winscard"])
+    if env.get("HAVE_SCHANNEL", 0) :
+        dep_env.Append(LIBS = ["Winscard"])
 
-	for var, e in [("SWIFTEN_FLAGS", swiften_env), ("SWIFTEN_DEP_FLAGS", dep_env)] : 
-		env[var] = {
-				"CPPDEFINES": e.get("CPPDEFINES", []),
-				"CPPPATH": e.get("CPPPATH", []),
-				"CPPFLAGS": e.get("CPPFLAGS", []),
-				"LIBPATH": e.get("LIBPATH", []),
-				"LIBRUNPATH": e.get("LIBRUNPATH", []),
-				"LIBS": e.get("LIBS", []),
-				"FRAMEWORKS": e.get("FRAMEWORKS", []),
-			}
+    for var, e in [("SWIFTEN_FLAGS", swiften_env), ("SWIFTEN_DEP_FLAGS", dep_env)] : 
+        env[var] = {
+                "CPPDEFINES": e.get("CPPDEFINES", []),
+                "CPPPATH": e.get("CPPPATH", []),
+                "CPPFLAGS": e.get("CPPFLAGS", []),
+                "LIBPATH": e.get("LIBPATH", []),
+                "LIBRUNPATH": e.get("LIBRUNPATH", []),
+                "LIBS": e.get("LIBS", []),
+                "FRAMEWORKS": e.get("FRAMEWORKS", []),
+            }
 
-	if env["PLATFORM"] == "win32" :
-		# 0x0600 = _WIN32_WINNT_VISTA, 0x06000000 = NTDDI_VISTA
-		env.Append(CPPDEFINES = [("_WIN32_WINNT","0x0600") , ("NTDDI_VERSION","0x06000000")])
+    if env["PLATFORM"] == "win32" :
+        # 0x0600 = _WIN32_WINNT_VISTA, 0x06000000 = NTDDI_VISTA
+        env.Append(CPPDEFINES = [("_WIN32_WINNT","0x0600") , ("NTDDI_VERSION","0x06000000")])
 
 ################################################################################
 # Build
 ################################################################################
 
 if env["SCONS_STAGE"] == "build" :
-	swiften_env = env.Clone()
-	swiften_env.Append(CPPDEFINES = ["SWIFTEN_BUILDING"])
-	for module in swiften_dep_modules :
-		swiften_env.UseFlags(swiften_env.get(module + "_FLAGS", {}))
-		if env.get(module + "_BUNDLED", False) :
-			swiften_env.Append(SWIFTEN_OBJECTS = env.get(module + "_OBJECTS", []))
-	swiften_env.UseFlags(swiften_env["PLATFORM_FLAGS"])
-	
-	if swiften_env["SWIFTEN_DLL"] :
-		swiften_env.AddMethod(lambda e,l,o : e.SharedLibrary(l,o), "SwiftenLibrary")
-	else :
-		swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"])
-		swiften_env.AddMethod(lambda e,l,o  : e.StaticLibrary(l,o), "SwiftenLibrary")
-	Export("swiften_env")
+    swiften_env = env.Clone()
+    swiften_env.Append(CPPDEFINES = ["SWIFTEN_BUILDING"])
+    for module in swiften_dep_modules :
+        swiften_env.UseFlags(swiften_env.get(module + "_FLAGS", {}))
+        if env.get(module + "_BUNDLED", False) :
+            swiften_env.Append(SWIFTEN_OBJECTS = env.get(module + "_OBJECTS", []))
+    swiften_env.UseFlags(swiften_env["PLATFORM_FLAGS"])
+    
+    if swiften_env["SWIFTEN_DLL"] :
+        swiften_env.AddMethod(lambda e,l,o : e.SharedLibrary(l,o), "SwiftenLibrary")
+    else :
+        swiften_env.Append(CPPDEFINES = ["SWIFTEN_STATIC"])
+        swiften_env.AddMethod(lambda e,l,o  : e.StaticLibrary(l,o), "SwiftenLibrary")
+    Export("swiften_env")
 
 # TODO: Move all this to a submodule SConscript
-	sources = [
-			"Base/Debug.cpp",
-			"Chat/ChatStateTracker.cpp",
-			"Chat/ChatStateNotifier.cpp",
-			"Client/ClientSessionStanzaChannel.cpp",
-			"Client/CoreClient.cpp",
-			"Client/Client.cpp",
-			"Client/ClientXMLTracer.cpp",
-			"Client/ClientSession.cpp",
-			"Client/BlockList.cpp",
-			"Client/BlockListImpl.cpp",
-			"Client/ClientBlockListManager.cpp",
-			"Client/MemoryStorages.cpp",
-			"Client/NickResolver.cpp",
-			"Client/NickManager.cpp",
-			"Client/NickManagerImpl.cpp",
-			"Client/Storages.cpp",
-			"Client/XMLBeautifier.cpp",
-			"Compress/ZLibCodecompressor.cpp",
-			"Compress/ZLibDecompressor.cpp",
-			"Compress/ZLibCompressor.cpp",
-			"Elements/CarbonsEnable.cpp",
-			"Elements/CarbonsDisable.cpp",
-			"Elements/CarbonsPrivate.cpp",
-			"Elements/CarbonsReceived.cpp",
-			"Elements/CarbonsSent.cpp",
-			"Elements/DiscoInfo.cpp",
-			"Elements/Presence.cpp",
-			"Elements/Form.cpp",
-			"Elements/FormField.cpp",
-			"Elements/FormPage.cpp",
-			"Elements/FormSection.cpp",
-			"Elements/FormText.cpp",
-			"Elements/StreamFeatures.cpp",
-			"Elements/Element.cpp",
-			"Elements/ToplevelElement.cpp",
-			"Elements/IQ.cpp",
-			"Elements/Payload.cpp",
-			"Elements/PubSubPayload.cpp",
-			"Elements/PubSubOwnerPayload.cpp",
-			"Elements/PubSubEventPayload.cpp",
-			"Elements/RosterItemExchangePayload.cpp",
-			"Elements/RosterPayload.cpp",
-			"Elements/SecurityLabel.cpp",
-			"Elements/Stanza.cpp",
-			"Elements/StanzaAck.cpp",
-			"Elements/StatusShow.cpp",
-			"Elements/StreamManagementEnabled.cpp",
-			"Elements/StreamResume.cpp",
-			"Elements/StreamResumed.cpp",
-			"Elements/UserLocation.cpp",
-			"Elements/UserTune.cpp",
-			"Elements/VCard.cpp",
-			"Elements/MUCOccupant.cpp",
-			"Elements/ResultSet.cpp",
-			"Elements/Forwarded.cpp",
-			"Elements/MAMResult.cpp",
-			"Elements/MAMQuery.cpp",
-			"Elements/MAMFin.cpp",
-			"Elements/Thread.cpp",
-			"Elements/IsodeIQDelegation.cpp",
-			"Entity/Entity.cpp",
-			"Entity/PayloadPersister.cpp",
-			"MUC/MUC.cpp",
-			"MUC/MUCImpl.cpp",
-			"MUC/MUCManager.cpp",
-			"MUC/MUCRegistry.cpp",
-			"MUC/MUCBookmarkManager.cpp",
-			"PubSub/PubSubManager.cpp",
-			"PubSub/PubSubManagerImpl.cpp",
-			"Queries/IQChannel.cpp",
-			"Queries/IQHandler.cpp",
-			"Queries/IQRouter.cpp",
-			"Queries/Request.cpp",
-			"Queries/Responders/SoftwareVersionResponder.cpp",
-			"Roster/RosterStorage.cpp",
-			"Roster/RosterMemoryStorage.cpp",
-			"Roster/XMPPRoster.cpp",
-			"Roster/XMPPRosterImpl.cpp",
-			"Roster/XMPPRosterController.cpp",
-			"Serializer/AuthRequestSerializer.cpp",
-			"Serializer/AuthSuccessSerializer.cpp",
-			"Serializer/AuthChallengeSerializer.cpp",
-			"Serializer/AuthResponseSerializer.cpp",
-			"Serializer/CompressRequestSerializer.cpp",
-			"Serializer/ElementSerializer.cpp",
-			"Serializer/MessageSerializer.cpp",
-			"Serializer/StreamManagementEnabledSerializer.cpp",
-			"Serializer/StreamResumeSerializer.cpp",
-			"Serializer/StreamResumedSerializer.cpp",
-			"Serializer/ComponentHandshakeSerializer.cpp",
-			"Serializer/PayloadSerializer.cpp",
-			"Serializer/PayloadSerializerCollection.cpp",
-			"Serializer/PayloadSerializers/IBBSerializer.cpp",
-			"Serializer/PayloadSerializers/CapsInfoSerializer.cpp",
-			"Serializer/PayloadSerializers/CarbonsDisableSerializer.cpp",
-			"Serializer/PayloadSerializers/CarbonsEnableSerializer.cpp",
-			"Serializer/PayloadSerializers/CarbonsPrivateSerializer.cpp",
-			"Serializer/PayloadSerializers/CarbonsSentSerializer.cpp",
-			"Serializer/PayloadSerializers/CarbonsReceivedSerializer.cpp",
-			"Serializer/PayloadSerializers/ChatStateSerializer.cpp",
-			"Serializer/PayloadSerializers/DiscoInfoSerializer.cpp",
-			"Serializer/PayloadSerializers/DiscoItemsSerializer.cpp",
-			"Serializer/PayloadSerializers/ErrorSerializer.cpp",
-			"Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp",
-			"Serializer/PayloadSerializers/MUCPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/MUCOwnerPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/ResourceBindSerializer.cpp",
-			"Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp",
-			"Serializer/PayloadSerializers/RosterSerializer.cpp",
-			"Serializer/PayloadSerializers/SecurityLabelSerializer.cpp",
-			"Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp",
-			"Serializer/PayloadSerializers/SoftwareVersionSerializer.cpp",
-			"Serializer/PayloadSerializers/StreamInitiationSerializer.cpp",
-			"Serializer/PayloadSerializers/BytestreamsSerializer.cpp",
-			"Serializer/PayloadSerializers/VCardSerializer.cpp",
-			"Serializer/PayloadSerializers/VCardUpdateSerializer.cpp",
-			"Serializer/PayloadSerializers/StorageSerializer.cpp",
-			"Serializer/PayloadSerializers/PrivateStorageSerializer.cpp",
-			"Serializer/PayloadSerializers/DelaySerializer.cpp",
-			"Serializer/PayloadSerializers/CommandSerializer.cpp",
-			"Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/SearchPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/FormSerializer.cpp",
-			"Serializer/PayloadSerializers/NicknameSerializer.cpp",
-			"Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp",
-			"Serializer/PayloadSerializers/JinglePayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp",
-			"Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp",
-			"Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp",
-			"Serializer/PayloadSerializers/DeliveryReceiptSerializer.cpp",
-			"Serializer/PayloadSerializers/DeliveryReceiptRequestSerializer.cpp",
-			"Serializer/PayloadSerializers/UserLocationSerializer.cpp",
-			"Serializer/PayloadSerializers/UserTuneSerializer.cpp",
-			"Serializer/PayloadSerializers/WhiteboardSerializer.cpp",
-			"Serializer/PayloadSerializers/ResultSetSerializer.cpp",
-			"Serializer/PayloadSerializers/ForwardedSerializer.cpp",
-			"Serializer/PayloadSerializers/MAMFinSerializer.cpp",
-			"Serializer/PayloadSerializers/MAMResultSerializer.cpp",
-			"Serializer/PayloadSerializers/MAMQuerySerializer.cpp",
-			"Serializer/PayloadSerializers/IsodeIQDelegationSerializer.cpp",
-			"Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp",
-			"Serializer/PayloadSerializers/ThreadSerializer.cpp",
-			"Serializer/PresenceSerializer.cpp",
-			"Serializer/StanzaSerializer.cpp",
-			"Serializer/StreamErrorSerializer.cpp",
-			"Serializer/StreamFeaturesSerializer.cpp",
-			"Serializer/XML/XMLElement.cpp",
-			"Serializer/XML/XMLNode.cpp",
-			"Serializer/XMPPSerializer.cpp",
-			"Session/Session.cpp",
-			"Session/SessionTracer.cpp",
-			"Session/SessionStream.cpp",
-			"Session/BasicSessionStream.cpp",
-			"Session/BOSHSessionStream.cpp",
-			"StringCodecs/Base64.cpp",
-			"StringCodecs/Hexify.cpp",
-			"Whiteboard/WhiteboardResponder.cpp",
-			"Whiteboard/WhiteboardSession.cpp",
-			"Whiteboard/IncomingWhiteboardSession.cpp",
-			"Whiteboard/OutgoingWhiteboardSession.cpp",
-			"Whiteboard/WhiteboardSessionManager.cpp",
-			"Whiteboard/WhiteboardServer.cpp",
-			"Whiteboard/WhiteboardClient.cpp",
-			"Elements/Whiteboard/WhiteboardColor.cpp",
-			"Whiteboard/WhiteboardTransformer.cpp",
-		]
-	
-	elements = [
-			"PubSub", "PubSubAffiliations", "PubSubAffiliation", "PubSubConfigure", "PubSubCreate", "PubSubDefault",
-			"PubSubItems", "PubSubItem", "PubSubOptions", "PubSubPublish", "PubSubRetract", "PubSubSubscribeOptions",
-			"PubSubSubscribe", "PubSubSubscriptions", "PubSubSubscription", "PubSubUnsubscribe",
+    sources = [
+            "Base/Debug.cpp",
+            "Chat/ChatStateTracker.cpp",
+            "Chat/ChatStateNotifier.cpp",
+            "Client/ClientSessionStanzaChannel.cpp",
+            "Client/CoreClient.cpp",
+            "Client/Client.cpp",
+            "Client/ClientXMLTracer.cpp",
+            "Client/ClientSession.cpp",
+            "Client/BlockList.cpp",
+            "Client/BlockListImpl.cpp",
+            "Client/ClientBlockListManager.cpp",
+            "Client/MemoryStorages.cpp",
+            "Client/NickResolver.cpp",
+            "Client/NickManager.cpp",
+            "Client/NickManagerImpl.cpp",
+            "Client/Storages.cpp",
+            "Client/XMLBeautifier.cpp",
+            "Compress/ZLibCodecompressor.cpp",
+            "Compress/ZLibDecompressor.cpp",
+            "Compress/ZLibCompressor.cpp",
+            "Elements/CarbonsEnable.cpp",
+            "Elements/CarbonsDisable.cpp",
+            "Elements/CarbonsPrivate.cpp",
+            "Elements/CarbonsReceived.cpp",
+            "Elements/CarbonsSent.cpp",
+            "Elements/DiscoInfo.cpp",
+            "Elements/Presence.cpp",
+            "Elements/Form.cpp",
+            "Elements/FormField.cpp",
+            "Elements/FormPage.cpp",
+            "Elements/FormSection.cpp",
+            "Elements/FormText.cpp",
+            "Elements/StreamFeatures.cpp",
+            "Elements/Element.cpp",
+            "Elements/ToplevelElement.cpp",
+            "Elements/IQ.cpp",
+            "Elements/Payload.cpp",
+            "Elements/PubSubPayload.cpp",
+            "Elements/PubSubOwnerPayload.cpp",
+            "Elements/PubSubEventPayload.cpp",
+            "Elements/RosterItemExchangePayload.cpp",
+            "Elements/RosterPayload.cpp",
+            "Elements/SecurityLabel.cpp",
+            "Elements/Stanza.cpp",
+            "Elements/StanzaAck.cpp",
+            "Elements/StatusShow.cpp",
+            "Elements/StreamManagementEnabled.cpp",
+            "Elements/StreamResume.cpp",
+            "Elements/StreamResumed.cpp",
+            "Elements/UserLocation.cpp",
+            "Elements/UserTune.cpp",
+            "Elements/VCard.cpp",
+            "Elements/MUCOccupant.cpp",
+            "Elements/ResultSet.cpp",
+            "Elements/Forwarded.cpp",
+            "Elements/MAMResult.cpp",
+            "Elements/MAMQuery.cpp",
+            "Elements/MAMFin.cpp",
+            "Elements/Thread.cpp",
+            "Elements/IsodeIQDelegation.cpp",
+            "Entity/Entity.cpp",
+            "Entity/PayloadPersister.cpp",
+            "MUC/MUC.cpp",
+            "MUC/MUCImpl.cpp",
+            "MUC/MUCManager.cpp",
+            "MUC/MUCRegistry.cpp",
+            "MUC/MUCBookmarkManager.cpp",
+            "PubSub/PubSubManager.cpp",
+            "PubSub/PubSubManagerImpl.cpp",
+            "Queries/IQChannel.cpp",
+            "Queries/IQHandler.cpp",
+            "Queries/IQRouter.cpp",
+            "Queries/Request.cpp",
+            "Queries/Responders/SoftwareVersionResponder.cpp",
+            "Roster/RosterStorage.cpp",
+            "Roster/RosterMemoryStorage.cpp",
+            "Roster/XMPPRoster.cpp",
+            "Roster/XMPPRosterImpl.cpp",
+            "Roster/XMPPRosterController.cpp",
+            "Serializer/AuthRequestSerializer.cpp",
+            "Serializer/AuthSuccessSerializer.cpp",
+            "Serializer/AuthChallengeSerializer.cpp",
+            "Serializer/AuthResponseSerializer.cpp",
+            "Serializer/CompressRequestSerializer.cpp",
+            "Serializer/ElementSerializer.cpp",
+            "Serializer/MessageSerializer.cpp",
+            "Serializer/StreamManagementEnabledSerializer.cpp",
+            "Serializer/StreamResumeSerializer.cpp",
+            "Serializer/StreamResumedSerializer.cpp",
+            "Serializer/ComponentHandshakeSerializer.cpp",
+            "Serializer/PayloadSerializer.cpp",
+            "Serializer/PayloadSerializerCollection.cpp",
+            "Serializer/PayloadSerializers/IBBSerializer.cpp",
+            "Serializer/PayloadSerializers/CapsInfoSerializer.cpp",
+            "Serializer/PayloadSerializers/CarbonsDisableSerializer.cpp",
+            "Serializer/PayloadSerializers/CarbonsEnableSerializer.cpp",
+            "Serializer/PayloadSerializers/CarbonsPrivateSerializer.cpp",
+            "Serializer/PayloadSerializers/CarbonsSentSerializer.cpp",
+            "Serializer/PayloadSerializers/CarbonsReceivedSerializer.cpp",
+            "Serializer/PayloadSerializers/ChatStateSerializer.cpp",
+            "Serializer/PayloadSerializers/DiscoInfoSerializer.cpp",
+            "Serializer/PayloadSerializers/DiscoItemsSerializer.cpp",
+            "Serializer/PayloadSerializers/ErrorSerializer.cpp",
+            "Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp",
+            "Serializer/PayloadSerializers/MUCPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/MUCAdminPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/MUCOwnerPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/ResourceBindSerializer.cpp",
+            "Serializer/PayloadSerializers/RosterItemExchangeSerializer.cpp",
+            "Serializer/PayloadSerializers/RosterSerializer.cpp",
+            "Serializer/PayloadSerializers/SecurityLabelSerializer.cpp",
+            "Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.cpp",
+            "Serializer/PayloadSerializers/SoftwareVersionSerializer.cpp",
+            "Serializer/PayloadSerializers/StreamInitiationSerializer.cpp",
+            "Serializer/PayloadSerializers/BytestreamsSerializer.cpp",
+            "Serializer/PayloadSerializers/VCardSerializer.cpp",
+            "Serializer/PayloadSerializers/VCardUpdateSerializer.cpp",
+            "Serializer/PayloadSerializers/StorageSerializer.cpp",
+            "Serializer/PayloadSerializers/PrivateStorageSerializer.cpp",
+            "Serializer/PayloadSerializers/DelaySerializer.cpp",
+            "Serializer/PayloadSerializers/CommandSerializer.cpp",
+            "Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/SearchPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/FormSerializer.cpp",
+            "Serializer/PayloadSerializers/NicknameSerializer.cpp",
+            "Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp",
+            "Serializer/PayloadSerializers/JinglePayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/JingleContentPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/JingleFileTransferHashSerializer.cpp",
+            "Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp",
+            "Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.cpp",
+            "Serializer/PayloadSerializers/DeliveryReceiptSerializer.cpp",
+            "Serializer/PayloadSerializers/DeliveryReceiptRequestSerializer.cpp",
+            "Serializer/PayloadSerializers/UserLocationSerializer.cpp",
+            "Serializer/PayloadSerializers/UserTuneSerializer.cpp",
+            "Serializer/PayloadSerializers/WhiteboardSerializer.cpp",
+            "Serializer/PayloadSerializers/ResultSetSerializer.cpp",
+            "Serializer/PayloadSerializers/ForwardedSerializer.cpp",
+            "Serializer/PayloadSerializers/MAMFinSerializer.cpp",
+            "Serializer/PayloadSerializers/MAMResultSerializer.cpp",
+            "Serializer/PayloadSerializers/MAMQuerySerializer.cpp",
+            "Serializer/PayloadSerializers/IsodeIQDelegationSerializer.cpp",
+            "Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.cpp",
+            "Serializer/PayloadSerializers/ThreadSerializer.cpp",
+            "Serializer/PresenceSerializer.cpp",
+            "Serializer/StanzaSerializer.cpp",
+            "Serializer/StreamErrorSerializer.cpp",
+            "Serializer/StreamFeaturesSerializer.cpp",
+            "Serializer/XML/XMLElement.cpp",
+            "Serializer/XML/XMLNode.cpp",
+            "Serializer/XMPPSerializer.cpp",
+            "Session/Session.cpp",
+            "Session/SessionTracer.cpp",
+            "Session/SessionStream.cpp",
+            "Session/BasicSessionStream.cpp",
+            "Session/BOSHSessionStream.cpp",
+            "StringCodecs/Base64.cpp",
+            "StringCodecs/Hexify.cpp",
+            "Whiteboard/WhiteboardResponder.cpp",
+            "Whiteboard/WhiteboardSession.cpp",
+            "Whiteboard/IncomingWhiteboardSession.cpp",
+            "Whiteboard/OutgoingWhiteboardSession.cpp",
+            "Whiteboard/WhiteboardSessionManager.cpp",
+            "Whiteboard/WhiteboardServer.cpp",
+            "Whiteboard/WhiteboardClient.cpp",
+            "Elements/Whiteboard/WhiteboardColor.cpp",
+            "Whiteboard/WhiteboardTransformer.cpp",
+        ]
+    
+    elements = [
+            "PubSub", "PubSubAffiliations", "PubSubAffiliation", "PubSubConfigure", "PubSubCreate", "PubSubDefault",
+            "PubSubItems", "PubSubItem", "PubSubOptions", "PubSubPublish", "PubSubRetract", "PubSubSubscribeOptions",
+            "PubSubSubscribe", "PubSubSubscriptions", "PubSubSubscription", "PubSubUnsubscribe",
 
-			"PubSubEvent", "PubSubEventAssociate", "PubSubEventCollection", "PubSubEventConfiguration", "PubSubEventDelete",
-			"PubSubEventDisassociate", "PubSubEventItem", "PubSubEventItems", "PubSubEventPurge", "PubSubEventRedirect",
-			"PubSubEventRetract", "PubSubEventSubscription",
+            "PubSubEvent", "PubSubEventAssociate", "PubSubEventCollection", "PubSubEventConfiguration", "PubSubEventDelete",
+            "PubSubEventDisassociate", "PubSubEventItem", "PubSubEventItems", "PubSubEventPurge", "PubSubEventRedirect",
+            "PubSubEventRetract", "PubSubEventSubscription",
 
-			"PubSubOwnerAffiliation", "PubSubOwnerAffiliations", "PubSubOwnerConfigure", "PubSubOwnerDefault",
-			"PubSubOwnerDelete", "PubSubOwnerPubSub", "PubSubOwnerPurge", "PubSubOwnerRedirect",
-			"PubSubOwnerSubscription", "PubSubOwnerSubscriptions",
+            "PubSubOwnerAffiliation", "PubSubOwnerAffiliations", "PubSubOwnerConfigure", "PubSubOwnerDefault",
+            "PubSubOwnerDelete", "PubSubOwnerPubSub", "PubSubOwnerPurge", "PubSubOwnerRedirect",
+            "PubSubOwnerSubscription", "PubSubOwnerSubscriptions",
 
-			"PubSubError",
-	]
-	for element in elements :
-		sources += [
-			"Elements/" + element + ".cpp", 
-			"Serializer/PayloadSerializers/" + element + "Serializer.cpp",
-			"Parser/PayloadParsers/" + element + "Parser.cpp",
-		]
+            "PubSubError",
+    ]
+    for element in elements :
+        sources += [
+            "Elements/" + element + ".cpp", 
+            "Serializer/PayloadSerializers/" + element + "Serializer.cpp",
+            "Parser/PayloadParsers/" + element + "Parser.cpp",
+        ]
 
-	SConscript(dirs = [
-			"Avatars",
-			"Base",
-			"IDN",
-			"SASL",
-			"TLS",
-			"Crypto",
-			"EventLoop",
-			"Parser",
-			"JID",
-			"Jingle",
-			"Disco",
-			"VCards",
-			"Network",
-			"Presence",
-			"FileTransfer",
-			"History",
-			"StreamStack",
-			"LinkLocal",
-			"StreamManagement",
-			"Component",
-			"AdHoc"
-		])
-	if env["build_examples"] :
-		SConscript(dirs = [
-				"Config",
-				"Examples"
-			])
-	env.SConscript(test_only = True, dirs = [
-			"QA",
-		])
+    SConscript(dirs = [
+            "Avatars",
+            "Base",
+            "IDN",
+            "SASL",
+            "TLS",
+            "Crypto",
+            "EventLoop",
+            "Parser",
+            "JID",
+            "Jingle",
+            "Disco",
+            "VCards",
+            "Network",
+            "Presence",
+            "FileTransfer",
+            "History",
+            "StreamStack",
+            "LinkLocal",
+            "StreamManagement",
+            "Component",
+            "AdHoc"
+        ])
+    if env["build_examples"] :
+        SConscript(dirs = [
+                "Config",
+                "Examples"
+            ])
+    env.SConscript(test_only = True, dirs = [
+            "QA",
+        ])
 
-	myenv = swiften_env.Clone()
-	if myenv["PLATFORM"] != "darwin" and myenv["PLATFORM"] != "win32" and myenv.get("HAVE_GCONF", 0) :
-		env.MergeFlags(env["GCONF_FLAGS"])
+    myenv = swiften_env.Clone()
+    if myenv["PLATFORM"] != "darwin" and myenv["PLATFORM"] != "win32" and myenv.get("HAVE_GCONF", 0) :
+        env.MergeFlags(env["GCONF_FLAGS"])
 
-	if myenv["SWIFTEN_DLL"] :
-		if myenv["PLATFORM"] == "posix" :
-			myenv.Append(LINKFLAGS = ["-Wl,-soname,libSwiften.so.$SWIFTEN_VERSION_MAJOR"])
-			myenv["SHLIBSUFFIX"] = ""
-		elif myenv["PLATFORM"] == "darwin" :
-			myenv.Append(LINKFLAGS = ["-Wl,-install_name,${SHLIBPREFIX}Swiften.${SWIFTEN_VERSION_MAJOR}${SHLIBSUFFIX}", "-Wl,-compatibility_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}", "-Wl,-current_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}"])
-		elif myenv["PLATFORM"] == "win32" :
-			res_env = myenv.Clone()
-			res_env.Append(CPPDEFINES = [
-					("SWIFTEN_LIBRARY_FILE", "\"\\\"${SWIFTEN_LIBRARY_FILE}\\\"\""),
-					("SWIFTEN_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])),
-					("SWIFTEN_VERSION_MAJOR", "${SWIFTEN_VERSION_MAJOR}"),
-					("SWIFTEN_VERSION_MINOR", "${SWIFTEN_VERSION_MINOR}"),
-					("SWIFTEN_VERSION_PATCH", "${SWIFTEN_VERSION_PATCH}"),
-				])
-			res = res_env.RES("Swiften.rc")
-			# For some reason, SCons isn't picking up the dependency correctly
-			# Adding it explicitly until i figure out why
-			res_env.Depends(res, "Version.h")
-			sources += res
+    if myenv["SWIFTEN_DLL"] :
+        if myenv["PLATFORM"] == "posix" :
+            myenv.Append(LINKFLAGS = ["-Wl,-soname,libSwiften.so.$SWIFTEN_VERSION_MAJOR"])
+            myenv["SHLIBSUFFIX"] = ""
+        elif myenv["PLATFORM"] == "darwin" :
+            myenv.Append(LINKFLAGS = ["-Wl,-install_name,${SHLIBPREFIX}Swiften.${SWIFTEN_VERSION_MAJOR}${SHLIBSUFFIX}", "-Wl,-compatibility_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}", "-Wl,-current_version,${SWIFTEN_VERSION_MAJOR}.${SWIFTEN_VERSION_MINOR}"])
+        elif myenv["PLATFORM"] == "win32" :
+            res_env = myenv.Clone()
+            res_env.Append(CPPDEFINES = [
+                    ("SWIFTEN_LIBRARY_FILE", "\"\\\"${SWIFTEN_LIBRARY_FILE}\\\"\""),
+                    ("SWIFTEN_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])),
+                    ("SWIFTEN_VERSION_MAJOR", "${SWIFTEN_VERSION_MAJOR}"),
+                    ("SWIFTEN_VERSION_MINOR", "${SWIFTEN_VERSION_MINOR}"),
+                    ("SWIFTEN_VERSION_PATCH", "${SWIFTEN_VERSION_PATCH}"),
+                ])
+            res = res_env.RES("Swiften.rc")
+            # For some reason, SCons isn't picking up the dependency correctly
+            # Adding it explicitly until i figure out why
+            res_env.Depends(res, "Version.h")
+            sources += res
 
-	swiften_lib = myenv.SwiftenLibrary(swiften_env["SWIFTEN_LIBRARY_FILE"], sources + swiften_env["SWIFTEN_OBJECTS"])
-	def symlink(env, target, source) :
-		if os.path.exists(str(target[0])) :
-			os.unlink(str(target[0]))
-		os.symlink(source[0].get_contents(), str(target[0]))
-	for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] :
-		myenv.Command(myenv.File(alias), [myenv.Value(swiften_lib[0].name), swiften_lib[0]], symlink)
+    swiften_lib = myenv.SwiftenLibrary(swiften_env["SWIFTEN_LIBRARY_FILE"], sources + swiften_env["SWIFTEN_OBJECTS"])
+    def symlink(env, target, source) :
+        if os.path.exists(str(target[0])) :
+            os.unlink(str(target[0]))
+        os.symlink(source[0].get_contents(), str(target[0]))
+    for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] :
+        myenv.Command(myenv.File(alias), [myenv.Value(swiften_lib[0].name), swiften_lib[0]], symlink)
 
-	env.Append(UNITTEST_SOURCES = [
-			File("Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp"),
-			File("Avatars/UnitTest/VCardAvatarManagerTest.cpp"),
-			File("Avatars/UnitTest/CombinedAvatarProviderTest.cpp"),
-			File("Avatars/UnitTest/AvatarManagerImplTest.cpp"),
-			File("Base/UnitTest/IDGeneratorTest.cpp"),
-			File("Base/UnitTest/SimpleIDGeneratorTest.cpp"),
-			File("Base/UnitTest/StringTest.cpp"),
-			File("Base/UnitTest/DateTimeTest.cpp"),
-			File("Base/UnitTest/ByteArrayTest.cpp"),
-			File("Base/UnitTest/URLTest.cpp"),
-			File("Base/UnitTest/PathTest.cpp"),
-			File("Chat/UnitTest/ChatStateNotifierTest.cpp"),
-#		File("Chat/UnitTest/ChatStateTrackerTest.cpp"),
-			File("Client/UnitTest/ClientSessionTest.cpp"),
-			File("Client/UnitTest/NickResolverTest.cpp"),
-			File("Client/UnitTest/ClientBlockListManagerTest.cpp"),
-			File("Client/UnitTest/BlockListImplTest.cpp"),
-			File("Compress/UnitTest/ZLibCompressorTest.cpp"),
-			File("Compress/UnitTest/ZLibDecompressorTest.cpp"),
-			File("Component/UnitTest/ComponentHandshakeGeneratorTest.cpp"),
-			File("Component/UnitTest/ComponentConnectorTest.cpp"),
-			File("Component/UnitTest/ComponentSessionTest.cpp"),
-			File("Disco/UnitTest/CapsInfoGeneratorTest.cpp"),
-			File("Disco/UnitTest/CapsManagerTest.cpp"),
-			File("Disco/UnitTest/EntityCapsManagerTest.cpp"),
-			File("Disco/UnitTest/JIDDiscoInfoResponderTest.cpp"),
-			File("Disco/UnitTest/DiscoInfoResponderTest.cpp"),
-			File("Elements/UnitTest/IQTest.cpp"),
-			File("Elements/UnitTest/StanzaTest.cpp"),
-			File("Elements/UnitTest/FormTest.cpp"),
-			File("EventLoop/UnitTest/EventLoopTest.cpp"),
-			File("EventLoop/UnitTest/SimpleEventLoopTest.cpp"),
-#			File("History/UnitTest/SQLiteHistoryManagerTest.cpp"),
-			File("JID/UnitTest/JIDTest.cpp"),
-			File("LinkLocal/UnitTest/LinkLocalConnectorTest.cpp"),
-			File("LinkLocal/UnitTest/LinkLocalServiceBrowserTest.cpp"),
-			File("LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp"),
-			File("LinkLocal/UnitTest/LinkLocalServiceTest.cpp"),
-			File("MUC/UnitTest/MUCTest.cpp"),
-			File("MUC/UnitTest/MockMUC.cpp"),
-			File("Network/UnitTest/HostAddressTest.cpp"),
-			File("Network/UnitTest/ConnectorTest.cpp"),
-			File("Network/UnitTest/ChainedConnectorTest.cpp"),
-			File("Network/UnitTest/DomainNameServiceQueryTest.cpp"),
-			File("Network/UnitTest/HTTPConnectProxiedConnectionTest.cpp"),
-			File("Network/UnitTest/BOSHConnectionTest.cpp"),
-			File("Network/UnitTest/BOSHConnectionPoolTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/BlockParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/BodyParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/DiscoInfoParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/DiscoItemsParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/ErrorParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/FormParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/CommandParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/PriorityParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/RawXMLPayloadParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/ResourceBindParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/RosterItemExchangeParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/RosterParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/IBBParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/InBandRegistrationPayloadParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/JingleParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/SearchPayloadParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/SecurityLabelParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/SecurityLabelsCatalogParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/SoftwareVersionParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/StatusParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/StatusShowParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/StreamInitiationParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/VCardParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/StorageParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/PrivateStorageParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/VCardUpdateParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/ReplaceTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/MUCAdminPayloadParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/MUCUserPayloadParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/DeliveryReceiptParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/IdleParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/ForwardedParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/MAMFinParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/MAMResultParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/CarbonsParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/UserTuneParserTest.cpp"),
-			File("Parser/PayloadParsers/UnitTest/UserLocationParserTest.cpp"),
-			File("Parser/UnitTest/BOSHBodyExtractorTest.cpp"),
-			File("Parser/UnitTest/AttributeMapTest.cpp"),
-			File("Parser/UnitTest/EnumParserTest.cpp"),
-			File("Parser/UnitTest/IQParserTest.cpp"),
-			File("Parser/UnitTest/GenericPayloadTreeParserTest.cpp"),
-			File("Parser/UnitTest/MessageParserTest.cpp"),
-			File("Parser/UnitTest/PayloadParserFactoryCollectionTest.cpp"),
-			File("Parser/UnitTest/PresenceParserTest.cpp"),
-			File("Parser/UnitTest/StanzaAckParserTest.cpp"),
-			File("Parser/UnitTest/SerializingParserTest.cpp"),
-			File("Parser/UnitTest/StanzaParserTest.cpp"),
-			File("Parser/UnitTest/StreamFeaturesParserTest.cpp"),
-			File("Parser/UnitTest/StreamManagementEnabledParserTest.cpp"),
-			File("Parser/UnitTest/XMLParserTest.cpp"),
-			File("Parser/UnitTest/XMPPParserTest.cpp"),
-			File("Presence/UnitTest/PresenceOracleTest.cpp"),
-			File("Presence/UnitTest/DirectedPresenceSenderTest.cpp"),
-			File("Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp"),
-			File("Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp"),
-			File("Queries/UnitTest/IQRouterTest.cpp"),
-			File("Queries/UnitTest/RequestTest.cpp"),
-			File("Queries/UnitTest/ResponderTest.cpp"),
-			File("Roster/UnitTest/XMPPRosterImplTest.cpp"),
-			File("Roster/UnitTest/XMPPRosterControllerTest.cpp"),
-			File("Roster/UnitTest/XMPPRosterSignalHandler.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/PayloadsSerializer.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/BlockSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/CarbonsSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/CapsInfoSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/ChatStateSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/FormSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/DiscoInfoSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/ErrorSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/IBBSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/PrioritySerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/ResourceBindSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/RosterItemExchangeSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/SearchPayloadSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/SecurityLabelsCatalogSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/SoftwareVersionSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/StatusSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/StatusShowSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/StreamInitiationSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/InBandRegistrationPayloadSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/IsodeIQDelegationSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/VCardSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/StorageSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/PrivateStorageSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/ReplaceSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/MUCAdminPayloadSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/DeliveryReceiptSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/IdleSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/ResultSetSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/ForwardedSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/MAMFinSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/MAMResultSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/PubSubItemSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/PubSubItemsSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/UserTuneSerializerTest.cpp"),
-			File("Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp"),
-			File("Serializer/UnitTest/StreamFeaturesSerializerTest.cpp"),
-			File("Serializer/UnitTest/AuthSuccessSerializerTest.cpp"),
-			File("Serializer/UnitTest/AuthChallengeSerializerTest.cpp"),
-			File("Serializer/UnitTest/AuthRequestSerializerTest.cpp"),
-			File("Serializer/UnitTest/AuthResponseSerializerTest.cpp"),
-			File("Serializer/UnitTest/XMPPSerializerTest.cpp"),
-			File("Serializer/XML/UnitTest/XMLElementTest.cpp"),
-			File("StreamManagement/UnitTest/StanzaAckRequesterTest.cpp"),
-			File("StreamManagement/UnitTest/StanzaAckResponderTest.cpp"),
-			File("StreamStack/UnitTest/StreamStackTest.cpp"),
-			File("StreamStack/UnitTest/XMPPLayerTest.cpp"),
-			File("StringCodecs/UnitTest/Base64Test.cpp"),
-			File("StringCodecs/UnitTest/HexifyTest.cpp"),
-			File("StringCodecs/UnitTest/PBKDF2Test.cpp"),
-			File("TLS/UnitTest/ServerIdentityVerifierTest.cpp"),
-			File("TLS/UnitTest/CertificateTest.cpp"),
-			File("VCards/UnitTest/VCardManagerTest.cpp"),
-			File("Whiteboard/UnitTest/WhiteboardServerTest.cpp"),
-			File("Whiteboard/UnitTest/WhiteboardClientTest.cpp"),
-		])
-	
-	# Generate the Swiften header
-	def relpath(path, start) :
-		i = len(os.path.commonprefix([path, start]))
-		return path[i+1:]
-	swiften_header = "#pragma once\n"
-	swiften_includes = []
-	swiften_public_includes = []
-	top_path = env.Dir("..").abspath
-	for root, dirs, files in os.walk(env.Dir(".").abspath) :
-		if root.endswith("UnitTest") :
-			continue
-		for file in files :
-			if not file.endswith(".h") :
-				continue
-			include = relpath(os.path.join(root, file), top_path)
-			if swiften_env["PLATFORM"] == "win32" :
-				include = include.replace("\\", "/")
-			swiften_includes.append(include)
-			# Private modules
-			if root.endswith("Config") :
-				continue
+    env.Append(UNITTEST_SOURCES = [
+            File("Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp"),
+            File("Avatars/UnitTest/VCardAvatarManagerTest.cpp"),
+            File("Avatars/UnitTest/CombinedAvatarProviderTest.cpp"),
+            File("Avatars/UnitTest/AvatarManagerImplTest.cpp"),
+            File("Base/UnitTest/IDGeneratorTest.cpp"),
+            File("Base/UnitTest/SimpleIDGeneratorTest.cpp"),
+            File("Base/UnitTest/StringTest.cpp"),
+            File("Base/UnitTest/DateTimeTest.cpp"),
+            File("Base/UnitTest/ByteArrayTest.cpp"),
+            File("Base/UnitTest/URLTest.cpp"),
+            File("Base/UnitTest/PathTest.cpp"),
+            File("Chat/UnitTest/ChatStateNotifierTest.cpp"),
+#       File("Chat/UnitTest/ChatStateTrackerTest.cpp"),
+            File("Client/UnitTest/ClientSessionTest.cpp"),
+            File("Client/UnitTest/NickResolverTest.cpp"),
+            File("Client/UnitTest/ClientBlockListManagerTest.cpp"),
+            File("Client/UnitTest/BlockListImplTest.cpp"),
+            File("Compress/UnitTest/ZLibCompressorTest.cpp"),
+            File("Compress/UnitTest/ZLibDecompressorTest.cpp"),
+            File("Component/UnitTest/ComponentHandshakeGeneratorTest.cpp"),
+            File("Component/UnitTest/ComponentConnectorTest.cpp"),
+            File("Component/UnitTest/ComponentSessionTest.cpp"),
+            File("Disco/UnitTest/CapsInfoGeneratorTest.cpp"),
+            File("Disco/UnitTest/CapsManagerTest.cpp"),
+            File("Disco/UnitTest/EntityCapsManagerTest.cpp"),
+            File("Disco/UnitTest/JIDDiscoInfoResponderTest.cpp"),
+            File("Disco/UnitTest/DiscoInfoResponderTest.cpp"),
+            File("Elements/UnitTest/IQTest.cpp"),
+            File("Elements/UnitTest/StanzaTest.cpp"),
+            File("Elements/UnitTest/FormTest.cpp"),
+            File("EventLoop/UnitTest/EventLoopTest.cpp"),
+            File("EventLoop/UnitTest/SimpleEventLoopTest.cpp"),
+#           File("History/UnitTest/SQLiteHistoryManagerTest.cpp"),
+            File("JID/UnitTest/JIDTest.cpp"),
+            File("LinkLocal/UnitTest/LinkLocalConnectorTest.cpp"),
+            File("LinkLocal/UnitTest/LinkLocalServiceBrowserTest.cpp"),
+            File("LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp"),
+            File("LinkLocal/UnitTest/LinkLocalServiceTest.cpp"),
+            File("MUC/UnitTest/MUCTest.cpp"),
+            File("MUC/UnitTest/MockMUC.cpp"),
+            File("Network/UnitTest/HostAddressTest.cpp"),
+            File("Network/UnitTest/ConnectorTest.cpp"),
+            File("Network/UnitTest/ChainedConnectorTest.cpp"),
+            File("Network/UnitTest/DomainNameServiceQueryTest.cpp"),
+            File("Network/UnitTest/HTTPConnectProxiedConnectionTest.cpp"),
+            File("Network/UnitTest/BOSHConnectionTest.cpp"),
+            File("Network/UnitTest/BOSHConnectionPoolTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/BlockParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/BodyParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/DiscoInfoParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/DiscoItemsParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/ErrorParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/FormParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/CommandParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/PriorityParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/RawXMLPayloadParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/ResourceBindParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/RosterItemExchangeParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/RosterParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/IBBParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/InBandRegistrationPayloadParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/JingleParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/SearchPayloadParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/SecurityLabelParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/SecurityLabelsCatalogParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/SoftwareVersionParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/StatusParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/StatusShowParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/StreamInitiationParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/VCardParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/StorageParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/PrivateStorageParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/VCardUpdateParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/ReplaceTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/MUCAdminPayloadParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/MUCUserPayloadParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/DeliveryReceiptParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/IdleParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/ResultSetParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/ForwardedParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/MAMFinParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/MAMResultParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/MAMQueryParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/CarbonsParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/UserTuneParserTest.cpp"),
+            File("Parser/PayloadParsers/UnitTest/UserLocationParserTest.cpp"),
+            File("Parser/UnitTest/BOSHBodyExtractorTest.cpp"),
+            File("Parser/UnitTest/AttributeMapTest.cpp"),
+            File("Parser/UnitTest/EnumParserTest.cpp"),
+            File("Parser/UnitTest/IQParserTest.cpp"),
+            File("Parser/UnitTest/GenericPayloadTreeParserTest.cpp"),
+            File("Parser/UnitTest/MessageParserTest.cpp"),
+            File("Parser/UnitTest/PayloadParserFactoryCollectionTest.cpp"),
+            File("Parser/UnitTest/PresenceParserTest.cpp"),
+            File("Parser/UnitTest/StanzaAckParserTest.cpp"),
+            File("Parser/UnitTest/SerializingParserTest.cpp"),
+            File("Parser/UnitTest/StanzaParserTest.cpp"),
+            File("Parser/UnitTest/StreamFeaturesParserTest.cpp"),
+            File("Parser/UnitTest/StreamManagementEnabledParserTest.cpp"),
+            File("Parser/UnitTest/XMLParserTest.cpp"),
+            File("Parser/UnitTest/XMPPParserTest.cpp"),
+            File("Presence/UnitTest/PresenceOracleTest.cpp"),
+            File("Presence/UnitTest/DirectedPresenceSenderTest.cpp"),
+            File("Presence/UnitTest/PayloadAddingPresenceSenderTest.cpp"),
+            File("Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp"),
+            File("Queries/UnitTest/IQRouterTest.cpp"),
+            File("Queries/UnitTest/RequestTest.cpp"),
+            File("Queries/UnitTest/ResponderTest.cpp"),
+            File("Roster/UnitTest/XMPPRosterImplTest.cpp"),
+            File("Roster/UnitTest/XMPPRosterControllerTest.cpp"),
+            File("Roster/UnitTest/XMPPRosterSignalHandler.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/PayloadsSerializer.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/BlockSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/CarbonsSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/CapsInfoSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/ChatStateSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/FormSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/DiscoInfoSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/ErrorSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/IBBSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/PrioritySerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/ResourceBindSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/RosterItemExchangeSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/RosterSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/SearchPayloadSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/SecurityLabelSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/SecurityLabelsCatalogSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/SoftwareVersionSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/StatusSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/StatusShowSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/StreamInitiationSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/InBandRegistrationPayloadSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/IsodeIQDelegationSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/VCardUpdateSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/VCardSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/StorageSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/PrivateStorageSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/ReplaceSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/MUCAdminPayloadSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/DeliveryReceiptSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/IdleSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/ResultSetSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/ForwardedSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/MAMFinSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/MAMResultSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/PubSubItemSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/PubSubItemsSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/UserTuneSerializerTest.cpp"),
+            File("Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp"),
+            File("Serializer/UnitTest/StreamFeaturesSerializerTest.cpp"),
+            File("Serializer/UnitTest/AuthSuccessSerializerTest.cpp"),
+            File("Serializer/UnitTest/AuthChallengeSerializerTest.cpp"),
+            File("Serializer/UnitTest/AuthRequestSerializerTest.cpp"),
+            File("Serializer/UnitTest/AuthResponseSerializerTest.cpp"),
+            File("Serializer/UnitTest/XMPPSerializerTest.cpp"),
+            File("Serializer/XML/UnitTest/XMLElementTest.cpp"),
+            File("StreamManagement/UnitTest/StanzaAckRequesterTest.cpp"),
+            File("StreamManagement/UnitTest/StanzaAckResponderTest.cpp"),
+            File("StreamStack/UnitTest/StreamStackTest.cpp"),
+            File("StreamStack/UnitTest/XMPPLayerTest.cpp"),
+            File("StringCodecs/UnitTest/Base64Test.cpp"),
+            File("StringCodecs/UnitTest/HexifyTest.cpp"),
+            File("StringCodecs/UnitTest/PBKDF2Test.cpp"),
+            File("TLS/UnitTest/ServerIdentityVerifierTest.cpp"),
+            File("TLS/UnitTest/CertificateTest.cpp"),
+            File("VCards/UnitTest/VCardManagerTest.cpp"),
+            File("Whiteboard/UnitTest/WhiteboardServerTest.cpp"),
+            File("Whiteboard/UnitTest/WhiteboardClientTest.cpp"),
+        ])
+    
+    # Generate the Swiften header
+    def relpath(path, start) :
+        i = len(os.path.commonprefix([path, start]))
+        return path[i+1:]
+    swiften_header = "#pragma once\n"
+    swiften_includes = []
+    swiften_public_includes = []
+    top_path = env.Dir("..").abspath
+    for root, dirs, files in os.walk(env.Dir(".").abspath) :
+        if root.endswith("UnitTest") :
+            continue
+        for file in files :
+            if not file.endswith(".h") :
+                continue
+            include = relpath(os.path.join(root, file), top_path)
+            if swiften_env["PLATFORM"] == "win32" :
+                include = include.replace("\\", "/")
+            swiften_includes.append(include)
+            # Private modules
+            if root.endswith("Config") :
+                continue
 
-			# Library-specfifc private modules
-			if root.endswith("OpenSSL") or root.endswith("Cocoa") or root.endswith("Qt") or root.endswith("Avahi") or root.endswith("Bonjour") :
-				continue
+            # Library-specfifc private modules
+            if root.endswith("OpenSSL") or root.endswith("Cocoa") or root.endswith("Qt") or root.endswith("Avahi") or root.endswith("Bonjour") :
+                continue
 
-			# Library-specific files
-			if file.endswith("_Private.h") or file.startswith("Schannel") or file.startswith("CAPI") or file.startswith("MacOSX") or file.startswith("SecureTransport") or file.startswith("Windows") or file.endswith("_Windows.h") or file.startswith("SQLite") or file == "ICUConverter.h" or file == "UnboundDomainNameResolver.h" :
-				continue
+            # Library-specific files
+            if file.endswith("_Private.h") or file.startswith("Schannel") or file.startswith("CAPI") or file.startswith("MacOSX") or file.startswith("SecureTransport") or file.startswith("Windows") or file.endswith("_Windows.h") or file.startswith("SQLite") or file == "ICUConverter.h" or file == "UnboundDomainNameResolver.h" :
+                continue
 
-			# Specific headers we don't want to globally include
-			if file == "Swiften.h" or file == "foreach.h" or file == "Log.h" or file == "format.h" :
-				continue
-			swiften_header += "#include <" + include + ">\n"
-			swiften_public_includes.append(include)
-			swiften_includes.append(include)
-	swiften_env.WriteVal("Swiften.h", swiften_env.Value(swiften_header))
-	swiften_includes.append("Swiften/Swiften.h")
+            # Specific headers we don't want to globally include
+            if file == "Swiften.h" or file == "foreach.h" or file == "Log.h" or file == "format.h" :
+                continue
+            swiften_header += "#include <" + include + ">\n"
+            swiften_public_includes.append(include)
+            swiften_includes.append(include)
+    swiften_env.WriteVal("Swiften.h", swiften_env.Value(swiften_header))
+    swiften_includes.append("Swiften/Swiften.h")
 
-	version_header = "#pragma once\n\n"
-	version_header += "#define SWIFTEN_VERSION 0x%02X%02X%02X\n" % (swiften_env["SWIFTEN_VERSION_MAJOR"], swiften_env["SWIFTEN_VERSION_MINOR"], swiften_env["SWIFTEN_VERSION_PATCH"])
-	version_header += "#define SWIFTEN_VERSION_STRING \"%s\"\n" % swiften_env["SWIFTEN_VERSION"]
-	swiften_env.WriteVal("Version.h", swiften_env.Value(version_header))
-	swiften_includes.append("Swiften/Version.h")
+    version_header = "#pragma once\n\n"
+    version_header += "#define SWIFTEN_VERSION 0x%02X%02X%02X\n" % (swiften_env["SWIFTEN_VERSION_MAJOR"], swiften_env["SWIFTEN_VERSION_MINOR"], swiften_env["SWIFTEN_VERSION_PATCH"])
+    version_header += "#define SWIFTEN_VERSION_STRING \"%s\"\n" % swiften_env["SWIFTEN_VERSION"]
+    swiften_env.WriteVal("Version.h", swiften_env.Value(version_header))
+    swiften_includes.append("Swiften/Version.h")
 
-	# Check headers
-	if env["check_headers"] :
-		test_env = swiften_env.Clone()
-		for header in swiften_public_includes:
-			program_text = "#include <%s>\n" % (header)
-			filename = Dir('#/.sconf_temp').abspath + ("/%s.cpp" % (urllib.quote(header, '') ))
-			text_file = open(filename, "w")
-			text_file.write(program_text)
-			text_file.close()
-			test_obj = test_env.Object(File("#/.sconf_temp/%s.cpp" % (urllib.quote(header, '') )))
-			test_env.Default(test_obj)
+    # Check headers
+    if env["check_headers"] :
+        test_env = swiften_env.Clone()
+        for header in swiften_public_includes:
+            program_text = "#include <%s>\n" % (header)
+            filename = Dir('#/.sconf_temp').abspath + ("/%s.cpp" % (urllib.quote(header, '') ))
+            text_file = open(filename, "w")
+            text_file.write(program_text)
+            text_file.close()
+            test_obj = test_env.Object(File("#/.sconf_temp/%s.cpp" % (urllib.quote(header, '') )))
+            test_env.Default(test_obj)
 
-	# Install swiften
-	if swiften_env.get("SWIFTEN_INSTALLDIR", "") :
-		swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib"), swiften_lib)
-		for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] :
-			myenv.Command(myenv.File(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib", alias)), [env.Value(swiften_lib[0].name), swiften_lib[0]], symlink)
-		for include in swiften_includes :
-			swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "include", os.path.dirname(include)), "#/" + include)
+    # Install swiften
+    if swiften_env.get("SWIFTEN_INSTALLDIR", "") :
+        swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib"), swiften_lib)
+        for alias in myenv["SWIFTEN_LIBRARY_ALIASES"] :
+            myenv.Command(myenv.File(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "lib", alias)), [env.Value(swiften_lib[0].name), swiften_lib[0]], symlink)
+        for include in swiften_includes :
+            swiften_env.Install(os.path.join(swiften_env["SWIFTEN_INSTALLDIR"], "include", os.path.dirname(include)), "#/" + include)
diff --git a/Swiften/StreamManagement/SConscript b/Swiften/StreamManagement/SConscript
index ce95fc7..8eab91b 100644
--- a/Swiften/StreamManagement/SConscript
+++ b/Swiften/StreamManagement/SConscript
@@ -1,8 +1,8 @@
 Import("swiften_env")
 
 sources = [
-		"StanzaAckRequester.cpp",
-		"StanzaAckResponder.cpp",
-	]
+        "StanzaAckRequester.cpp",
+        "StanzaAckResponder.cpp",
+    ]
 
 swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
diff --git a/Swiften/StreamStack/SConscript b/Swiften/StreamStack/SConscript
index 06fcc03..0a8bab1 100644
--- a/Swiften/StreamStack/SConscript
+++ b/Swiften/StreamStack/SConscript
@@ -3,14 +3,14 @@ Import("swiften_env")
 myenv = swiften_env.Clone()
 
 sources = [
-		"HighLayer.cpp",
-		"LowLayer.cpp",
-		"StreamStack.cpp",
-		"ConnectionLayer.cpp",
-		"TLSLayer.cpp",
-		"WhitespacePingLayer.cpp",
-		"XMPPLayer.cpp",
-	]
+        "HighLayer.cpp",
+        "LowLayer.cpp",
+        "StreamStack.cpp",
+        "ConnectionLayer.cpp",
+        "TLSLayer.cpp",
+        "WhitespacePingLayer.cpp",
+        "XMPPLayer.cpp",
+    ]
 
 objects = myenv.SwiftenObject(sources)
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/TLS/SConscript b/Swiften/TLS/SConscript
index c1ff425..68bf50b 100644
--- a/Swiften/TLS/SConscript
+++ b/Swiften/TLS/SConscript
@@ -1,40 +1,40 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"Certificate.cpp",
-			"CertificateFactory.cpp",
-			"CertificateTrustChecker.cpp",
-			"ServerIdentityVerifier.cpp",
-			"TLSContext.cpp",
-			"TLSContextFactory.cpp",
-		])
-		
+            "Certificate.cpp",
+            "CertificateFactory.cpp",
+            "CertificateTrustChecker.cpp",
+            "ServerIdentityVerifier.cpp",
+            "TLSContext.cpp",
+            "TLSContextFactory.cpp",
+        ])
+
 myenv = swiften_env.Clone()
 if myenv.get("HAVE_OPENSSL", 0) :
-	myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
-	objects += myenv.SwiftenObject([
-			"OpenSSL/OpenSSLContext.cpp",
-			"OpenSSL/OpenSSLCertificate.cpp",
-			"OpenSSL/OpenSSLContextFactory.cpp",
-		])
-	myenv.Append(CPPDEFINES = "HAVE_OPENSSL")
+    myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
+    objects += myenv.SwiftenObject([
+            "OpenSSL/OpenSSLContext.cpp",
+            "OpenSSL/OpenSSLCertificate.cpp",
+            "OpenSSL/OpenSSLContextFactory.cpp",
+        ])
+    myenv.Append(CPPDEFINES = "HAVE_OPENSSL")
 elif myenv.get("HAVE_SCHANNEL", 0) :
-	swiften_env.Append(LIBS = ["Winscard"])
-	objects += myenv.SwiftenObject([
-			"CAPICertificate.cpp",
-			"Schannel/SchannelContext.cpp",
-			"Schannel/SchannelCertificate.cpp",
-			"Schannel/SchannelContextFactory.cpp",
-		])
-	myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
+    swiften_env.Append(LIBS = ["Winscard"])
+    objects += myenv.SwiftenObject([
+            "CAPICertificate.cpp",
+            "Schannel/SchannelContext.cpp",
+            "Schannel/SchannelCertificate.cpp",
+            "Schannel/SchannelContextFactory.cpp",
+        ])
+    myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
 elif myenv.get("HAVE_SECURETRANSPORT", 0) :
-	#swiften_env.Append(LIBS = ["Winscard"])
-	objects += myenv.SwiftenObject([
-			"SecureTransport/SecureTransportContext.mm",
-			"SecureTransport/SecureTransportCertificate.mm",
-			"SecureTransport/SecureTransportContextFactory.cpp",
-		])
-	myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT")
+    #swiften_env.Append(LIBS = ["Winscard"])
+    objects += myenv.SwiftenObject([
+            "SecureTransport/SecureTransportContext.mm",
+            "SecureTransport/SecureTransportCertificate.mm",
+            "SecureTransport/SecureTransportContextFactory.cpp",
+        ])
+    myenv.Append(CPPDEFINES = "HAVE_SECURETRANSPORT")
 
 objects += myenv.SwiftenObject(["PlatformTLSFactories.cpp"])
 
diff --git a/Swiften/VCards/SConscript b/Swiften/VCards/SConscript
index c20c17d..d8189cb 100644
--- a/Swiften/VCards/SConscript
+++ b/Swiften/VCards/SConscript
@@ -1,7 +1,7 @@
 Import("swiften_env")
 
 objects = swiften_env.SwiftenObject([
-			"VCardManager.cpp",
-			"VCardStorage.cpp",
-		])
+            "VCardManager.cpp",
+            "VCardStorage.cpp",
+        ])
 swiften_env.Append(SWIFTEN_OBJECTS = [objects])
-- 
cgit v0.10.2-6-g49f6