author | cgandhi |
Thu, 05 Aug 2010 16:35:33 +0530 | |
changeset 16 | b78fa4cdbf2b |
parent 15 | 9b00ca3cc206 |
child 17 | 106a4bfcb866 |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/.cproject Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?fileVersion 4.0.0?> + +<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> +<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" extraSBSv2Args="" infBuildComponents="" infFileLocation="bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/> +<storageModule moduleId="org.eclipse.cdt.core.settings"> +<cconfiguration id="Emulator Debug (WINSCW) [Nokia_Symbian3_SDK_v0.8]"> +<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (WINSCW) [Nokia_Symbian3_SDK_v0.8]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (WINSCW) [Nokia_Symbian3_SDK_v0.8]"> +<externalSettings/> +<extensions> +<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +</extensions> +</storageModule> +<storageModule moduleId="CarbideConfigurationDataProvider"> +<ENV_VAR_DATA_ID/> +<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/> +<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\rom\"/> +</storageModule> +<storageModule filesCache="D:\smf\MissingCode\DemoGUI\DemoGUI_0xE9d1bae8.mmp;D:\smf\MissingCode\DemoGUI\bld.inf;" includesCache="D:/Qt/4.6.2/include/QtCore;D:/Qt/4.6.2/include/QtCore/tmp;D:/Qt/4.6.2/include/QtNetwork;D:/Qt/4.6.2/include/QtNetwork/tmp;D:/Qt/4.6.2/include/QtGui;D:/Qt/4.6.2/include/QtGui/tmp;D:/Qt/4.6.2/include;D:/Qt/4.6.2/include/tmp;D:/smf/MissingCode/DemoGUI;D:/smf/MissingCode/DemoGUI/tmp;D:/Qt/4.6.2/mkspecs/common/symbian;D:/Qt/4.6.2/mkspecs/common/symbian/tmp;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/sys;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc/sc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/stlportv5;" macrosCache="QT_CORE_LIB;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__WINSCW__;__SYMBIAN32__;QT_KEYPAD_NAVIGATION;__EXE__;QT_USE_MATH_H_FLOATS;__CW32__;__WINS__;QT_GUI_LIB;UNICODE;QT_NETWORK_LIB;QT_SOFTKEYS_ENABLED;_DEBUG;" moduleId="configDataCache" sourcesCache="" timestampCache="1280473572226" useMmpMacrosCache="true"/> +<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> +</cconfiguration> +<cconfiguration id="Phone Debug (ARMV5) [Nokia_Symbian3_SDK_v0.8]"> +<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV5) [Nokia_Symbian3_SDK_v0.8]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV5) [Nokia_Symbian3_SDK_v0.8]"> +<externalSettings/> +<extensions> +<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +</extensions> +</storageModule> +<storageModule moduleId="CarbideConfigurationDataProvider"> +<ENV_VAR_DATA_ID/> +<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/> +<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\rom\"/> +</storageModule> +<storageModule filesCache="D:\smf\MissingCode\DemoGUI\DemoGUI_0xE9d1bae8.mmp;D:\smf\MissingCode\DemoGUI\bld.inf;" includesCache="D:/Qt/4.6.2/include/QtCore;D:/Qt/4.6.2/include/QtCore/tmp;D:/Qt/4.6.2/include/QtNetwork;D:/Qt/4.6.2/include/QtNetwork/tmp;D:/Qt/4.6.2/include/QtGui;D:/Qt/4.6.2/include/QtGui/tmp;D:/Qt/4.6.2/include;D:/Qt/4.6.2/include/tmp;D:/smf/MissingCode/DemoGUI;D:/smf/MissingCode/DemoGUI/tmp;D:/Qt/4.6.2/mkspecs/common/symbian;D:/Qt/4.6.2/mkspecs/common/symbian/tmp;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/sys;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc/sc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/stlportv5;" macrosCache="QT_CORE_LIB;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;QT_KEYPAD_NAVIGATION;__MARM__;QT_USE_MATH_H_FLOATS;__EXE__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;QT_GUI_LIB;UNICODE;QT_NETWORK_LIB;QT_SOFTKEYS_ENABLED;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="" timestampCache="1280473572257" useMmpMacrosCache="true"/> +</cconfiguration> +<cconfiguration id="Phone Release (ARMV5) [Nokia_Symbian3_SDK_v0.8]"> +<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV5) [Nokia_Symbian3_SDK_v0.8]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV5) [Nokia_Symbian3_SDK_v0.8]"> +<externalSettings/> +<extensions> +<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +</extensions> +</storageModule> +<storageModule moduleId="CarbideConfigurationDataProvider"> +<ENV_VAR_DATA_ID/> +<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/> +<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\rom\"/> +</storageModule> +<storageModule filesCache="D:\smf\MissingCode\DemoGUI\DemoGUI_0xE9d1bae8.mmp;D:\smf\MissingCode\DemoGUI\bld.inf;" includesCache="D:/Qt/4.6.2/include/QtCore;D:/Qt/4.6.2/include/QtCore/tmp;D:/Qt/4.6.2/include/QtNetwork;D:/Qt/4.6.2/include/QtNetwork/tmp;D:/Qt/4.6.2/include/QtGui;D:/Qt/4.6.2/include/QtGui/tmp;D:/Qt/4.6.2/include;D:/Qt/4.6.2/include/tmp;D:/smf/MissingCode/DemoGUI;D:/smf/MissingCode/DemoGUI/tmp;D:/Qt/4.6.2/mkspecs/common/symbian;D:/Qt/4.6.2/mkspecs/common/symbian/tmp;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/sys;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc/sc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/stlportv5;" macrosCache="QT_CORE_LIB;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;NDEBUG;__ARMCC__;__ARMCC_2_2__;__SYMBIAN32__;QT_KEYPAD_NAVIGATION;__MARM__;QT_USE_MATH_H_FLOATS;__EXE__;__ARMCC_2__;__EPOC32__;__GENERIC_MARM__;QT_GUI_LIB;UNICODE;QT_NETWORK_LIB;QT_SOFTKEYS_ENABLED;__EABI__;" moduleId="configDataCache" sourcesCache="" timestampCache="1280473572273" useMmpMacrosCache="true"/> +</cconfiguration> +<cconfiguration id="Phone Debug (GCCE) [Nokia_Symbian3_SDK_v0.8]"> +<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (GCCE) [Nokia_Symbian3_SDK_v0.8]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (GCCE) [Nokia_Symbian3_SDK_v0.8]"> +<externalSettings/> +<extensions> +<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.GCCECompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.GCCEAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.GCCELinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +</extensions> +</storageModule> +<storageModule moduleId="CarbideConfigurationDataProvider"> +<ENV_VAR_DATA_ID/> +<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/> +<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\rom\"/> +</storageModule> +<storageModule filesCache="D:\smf\MissingCode\DemoGUI\DemoGUI_0xE9d1bae8.mmp;D:\smf\MissingCode\DemoGUI\bld.inf;" includesCache="D:/Qt/4.6.2/include/QtCore;D:/Qt/4.6.2/include/QtCore/tmp;D:/Qt/4.6.2/include/QtNetwork;D:/Qt/4.6.2/include/QtNetwork/tmp;D:/Qt/4.6.2/include/QtGui;D:/Qt/4.6.2/include/QtGui/tmp;D:/Qt/4.6.2/include;D:/Qt/4.6.2/include/tmp;D:/smf/MissingCode/DemoGUI;D:/smf/MissingCode/DemoGUI/tmp;D:/Qt/4.6.2/mkspecs/common/symbian;D:/Qt/4.6.2/mkspecs/common/symbian/tmp;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/sys;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc/sc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/stlportv5;" macrosCache="QT_CORE_LIB;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__SYMBIAN32__;QT_KEYPAD_NAVIGATION;__GCCE__;__MARM__;QT_USE_MATH_H_FLOATS;__EXE__;__EPOC32__;__GENERIC_MARM__;QT_GUI_LIB;UNICODE;QT_NETWORK_LIB;QT_SOFTKEYS_ENABLED;__EABI__;_DEBUG;" moduleId="configDataCache" sourcesCache="" timestampCache="1280473572304" useMmpMacrosCache="true"/> +</cconfiguration> +<cconfiguration id="Phone Release (GCCE) [Nokia_Symbian3_SDK_v0.8]"> +<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (GCCE) [Nokia_Symbian3_SDK_v0.8]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (GCCE) [Nokia_Symbian3_SDK_v0.8]"> +<externalSettings/> +<extensions> +<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.GCCECompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.GCCEAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +<extension id="com.nokia.carbide.cdt.builder.GCCELinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +</extensions> +</storageModule> +<storageModule moduleId="CarbideConfigurationDataProvider"> +<ENV_VAR_DATA_ID/> +<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/> +<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="D:\S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\rom\"/> +</storageModule> +<storageModule filesCache="D:\smf\MissingCode\DemoGUI\DemoGUI_0xE9d1bae8.mmp;D:\smf\MissingCode\DemoGUI\bld.inf;" includesCache="D:/Qt/4.6.2/include/QtCore;D:/Qt/4.6.2/include/QtCore/tmp;D:/Qt/4.6.2/include/QtNetwork;D:/Qt/4.6.2/include/QtNetwork/tmp;D:/Qt/4.6.2/include/QtGui;D:/Qt/4.6.2/include/QtGui/tmp;D:/Qt/4.6.2/include;D:/Qt/4.6.2/include/tmp;D:/smf/MissingCode/DemoGUI;D:/smf/MissingCode/DemoGUI/tmp;D:/Qt/4.6.2/mkspecs/common/symbian;D:/Qt/4.6.2/mkspecs/common/symbian/tmp;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/sys;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/app/loc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/platform/mw/loc/sc;D:/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/stdapis/stlportv5;" macrosCache="QT_CORE_LIB;_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;NDEBUG;__SYMBIAN32__;QT_KEYPAD_NAVIGATION;__GCCE__;__MARM__;QT_USE_MATH_H_FLOATS;__EXE__;__EPOC32__;__GENERIC_MARM__;QT_GUI_LIB;UNICODE;QT_NETWORK_LIB;QT_SOFTKEYS_ENABLED;__EABI__;" moduleId="configDataCache" sourcesCache="" timestampCache="1280473572320" useMmpMacrosCache="true"/> +</cconfiguration> +</storageModule> +</cproject>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/CustomListWidget.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,401 @@ +#include "CustomListWidget.h" +#include <qlistwidget.h> +#include <qboxlayout.h> +#include <qlabel.h> +#include <qdebug.h> +#include "ScreenSize.h" +#include <qpushbutton.h> +#include "WidgetConstants.h" + +CustomListWidget::CustomListWidget() +{ + setStyleSheet("selection-color: yellow;" + "selection-background-color: grey;"); +} +CustomListWidget::~CustomListWidget() +{ + +} + +void CustomListWidget::AddListItem(QString aIconPath,QString aFirstLine,QString aSecondLine) +{ + QWidget* customwidget = new QWidget; + QHBoxLayout* HMainlayout = new QHBoxLayout(customwidget); + QLabel *lab =new QLabel(); + lab->setPixmap(QPixmap(aIconPath)); + lab->setFixedSize(60,60); + HMainlayout->addWidget(lab); + + //To add First & second row horizontal layouts + QVBoxLayout* VTextlayout = new QVBoxLayout; + + QHBoxLayout* HFirstrowLayout = new QHBoxLayout; + //Add FirstLine label + QLabel *lab1 =new QLabel(aFirstLine); + lab1->setStyleSheet("font: bold 20px;"); + HFirstrowLayout->addWidget(lab1); + //Add Images to + QLabel *Img1lab =new QLabel(); + Img1lab->setPixmap(QPixmap(aIconPath)); + Img1lab->setFixedSize(10,10); + QLabel *Img2lab =new QLabel(); + Img2lab->setPixmap(QPixmap(aIconPath)); + Img2lab->setFixedSize(10,10); + QLabel *Img3lab =new QLabel(); + Img3lab->setPixmap(QPixmap(aIconPath)); + Img3lab->setFixedSize(10,10); + + HFirstrowLayout->addWidget(Img1lab); + HFirstrowLayout->addWidget(Img2lab); + HFirstrowLayout->addWidget(Img3lab); + +// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight); + + VTextlayout->addLayout(HFirstrowLayout); + + + QHBoxLayout* HSecondrowLayout = new QHBoxLayout; + QLabel *lab2 =new QLabel(aSecondLine); + lab2->setStyleSheet("font: 16px;"); + HSecondrowLayout->addWidget(lab2); + + QLabel *Timestamplabel =new QLabel("00:00 JUL 12"); + Timestamplabel->setStyleSheet("font: 12px;"); + HSecondrowLayout->addWidget(Timestamplabel); + + HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight); + + VTextlayout->addLayout(HSecondrowLayout); + + + HMainlayout->addLayout(VTextlayout); + customwidget->setLayout(HMainlayout); + QListWidgetItem *item=new QListWidgetItem; + + //customlist->adjustSize(); + //customlist->adjustSize(); + item->setSizeHint(QSize(60,60)); + + addItem(item); + setItemWidget(item,customwidget); +} + +void CustomListWidget::AddListItem(QMainWindow *mainWindow,QStringList aIconPath,QStringList aNames) +{ + qDebug()<<"Inside GridView::CreateGridView()"; + qDebug()<<"aIconPath count = "<<aIconPath.count(); + qDebug()<<"names count = "<<aNames.count(); + + int row; + int col; + //QWidget* widget = new QWidget(); + QGridLayout* GridLayout = new QGridLayout(this); + if((6 == aIconPath.count()) || (5 == aIconPath.count())) + { + row = 3; + col = 2; + } + else if((4 == aIconPath.count()) || (3 == aIconPath.count())) + { + row = col = 2; + } + else if((2 == aIconPath.count()) || (1 == aIconPath.count())) + { + row = 1; + col = 2; + } + else if(0 == aIconPath.count()) + { + row = col = 0; + } + + int rowSpace = (ScreenSize::GetScreenRect().height() - (KHeadNameHeight+ToolbarIconHeight+2*KWidgetGapFactor))/row; + int colSpace = (ScreenSize::GetScreenRect().width() - 2*KWidgetGapFactor )/col; + + int index = 0; + for(int i=0;i<row;i++) + { + for(int j=0;j<col;j++) + { + QPushButton *pushBtn = new QPushButton(); + qDebug()<<"name = "<<aNames[index]; + int gapFac = KHeadNameHeight+ToolbarIconHeight; + pushBtn->setGeometry(i*colSpace,(j*rowSpace + KWidgetGapFactor),colSpace,rowSpace); + pushBtn->setIconSize(QSize(colSpace-(3*KWidgetGapFactor),colSpace+(3*KWidgetGapFactor))); + qDebug()<<"icon = "<<aIconPath[index]; + pushBtn->setIcon(QIcon(aIconPath[index])); + qDebug()<<"After image display"; + GridLayout->addWidget(pushBtn,i,j); + + index++; + if(index == aNames.count()) + { + qDebug()<<"Count became same so exiting"; + break; + } + } + if(index == aNames.count()) + { + qDebug()<<"Count became same so exiting"; + break; + } + } + //Its required please don't remove + show(); +} + + +QWidget* CustomListWidget::CreateListwidget(SmfContactList* friendsList) + { + qDebug()<<"Inside CustomListWidget::CreateListwidget() for friends"; + qDebug()<<"Friends count = "<<friendsList->count(); + + QListWidget* customlist = new QListWidget(); + + // Todo:- Display something when no friends are available + foreach(SmfContact contact, *friendsList) + { + QString name(contact.value("Name").value<QContactName>().firstName()); + QString status(contact.value("Presence").value<QContactPresence>().customMessage()); + if(!status.size()) + status.append("Not available"); + //QUrl url(contact.value("Avatar").value<QContactAvatar>().imageUrl()); + QString url("C:\\data\\sample.bmp"); // ToDo:- should be the profile image path + + QWidget* widgetItem = new QWidget(); + QHBoxLayout* HMainlayout = new QHBoxLayout(widgetItem); + QLabel *lab =new QLabel(); + lab->setPixmap(QPixmap(url)); + lab->setFixedSize(60,60); + HMainlayout->addWidget(lab); + + //To add First & second row horizontal layouts + QVBoxLayout* VTextlayout = new QVBoxLayout; + + QHBoxLayout* HFirstrowLayout = new QHBoxLayout; + + //Add FirstLine label + QLabel *lab1 = new QLabel(name); + lab1->setStyleSheet("font: bold 16px;"); + HFirstrowLayout->addWidget(lab1); + + //Add Images to + QLabel *Img1lab =new QLabel(); + Img1lab->setPixmap(QPixmap(url)); + Img1lab->setFixedSize(10,10); + QLabel *Img2lab =new QLabel(); + Img2lab->setPixmap(QPixmap(url)); + Img2lab->setFixedSize(10,10); + QLabel *Img3lab =new QLabel(); + Img3lab->setPixmap(QPixmap(url)); + Img3lab->setFixedSize(10,10); + + HFirstrowLayout->addWidget(Img1lab); + HFirstrowLayout->addWidget(Img2lab); + HFirstrowLayout->addWidget(Img3lab); + +// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight); + + VTextlayout->addLayout(HFirstrowLayout); + + + QHBoxLayout* HSecondrowLayout = new QHBoxLayout; + QLabel *lab2 =new QLabel(status); + lab2->setStyleSheet("font: 8px;"); + HSecondrowLayout->addWidget(lab2); + + QLabel *Timestamplabel =new QLabel(""); + Timestamplabel->setStyleSheet("font: 7px;"); + HSecondrowLayout->addWidget(Timestamplabel); + + HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight); + + VTextlayout->addLayout(HSecondrowLayout); + + + HMainlayout->addLayout(VTextlayout); + widgetItem->setLayout(HMainlayout); + QListWidgetItem *item=new QListWidgetItem; + + //customlist->adjustSize(); + //customlist->adjustSize(); + item->setSizeHint(QSize(60,60)); + + customlist->addItem(item); + customlist->setItemWidget(item,widgetItem); + } + customlist->setStyleSheet("selection-color: yellow;" + "selection-background-color: grey;"); + return customlist; + } + + +QWidget* CustomListWidget::CreateListwidget(SmfPostList *postsList) + { + qDebug()<<"Inside CustomListWidget::CreateListwidget() for posts"; + qDebug()<<"Posts count = "<<postsList->count(); + + QListWidget* customlist = new QListWidget(); + + // Todo:- Display something when no posts are available + foreach(SmfPost post, *postsList) + { + QString text(post.description()); + QString ownerName(post.owner().value("Name").value<QContactName>().firstName()); + + //QUrl url(contact.value("Avatar").value<QContactAvatar>().imageUrl()); + QString url("C:\\data\\sample.bmp"); // ToDo:- should be the profile image path + + QWidget* widgetItem = new QWidget(); + QHBoxLayout* HMainlayout = new QHBoxLayout(widgetItem); + QLabel *lab =new QLabel(); + lab->setPixmap(QPixmap(url)); + lab->setFixedSize(60,60); + HMainlayout->addWidget(lab); + + //To add First & second row horizontal layouts + QVBoxLayout* VTextlayout = new QVBoxLayout; + + QHBoxLayout* HFirstrowLayout = new QHBoxLayout; + + //Add FirstLine label + QLabel *lab1 = new QLabel(ownerName); + lab1->setStyleSheet("font: bold 16px;"); + HFirstrowLayout->addWidget(lab1); + + //Add Images to + QLabel *Img1lab =new QLabel(); + Img1lab->setPixmap(QPixmap(url)); + Img1lab->setFixedSize(10,10); + QLabel *Img2lab =new QLabel(); + Img2lab->setPixmap(QPixmap(url)); + Img2lab->setFixedSize(10,10); + QLabel *Img3lab =new QLabel(); + Img3lab->setPixmap(QPixmap(url)); + Img3lab->setFixedSize(10,10); + + HFirstrowLayout->addWidget(Img1lab); + HFirstrowLayout->addWidget(Img2lab); + HFirstrowLayout->addWidget(Img3lab); + +// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight); + + VTextlayout->addLayout(HFirstrowLayout); + + + QHBoxLayout* HSecondrowLayout = new QHBoxLayout; + QLabel *lab2 =new QLabel(text); + lab2->setStyleSheet("font: 8px;"); + HSecondrowLayout->addWidget(lab2); + + QLabel *Timestamplabel =new QLabel(""); + Timestamplabel->setStyleSheet("font: 7px;"); + HSecondrowLayout->addWidget(Timestamplabel); + + HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight); + + VTextlayout->addLayout(HSecondrowLayout); + + + HMainlayout->addLayout(VTextlayout); + widgetItem->setLayout(HMainlayout); + QListWidgetItem *item=new QListWidgetItem; + + //customlist->adjustSize(); + //customlist->adjustSize(); + item->setSizeHint(QSize(60,60)); + + customlist->addItem(item); + customlist->setItemWidget(item,widgetItem); + } + customlist->setStyleSheet("selection-color: yellow;" + "selection-background-color: grey;"); + return customlist; + + } +QWidget* CreateListwidget(SmfActivityEntryList *activityList) + { + + } + +/*QWidget* CustomListWidget::CreateListwidget(QString aIconPath,QString aFirstLine,QString aSecondLine) +{ + qDebug()<<"Inside CustomListWidget::CreateListwidget()"; + qDebug()<<"Icon path = "<<aIconPath; + qDebug()<<"firstline = "<<aFirstLine; + qDebug()<<"second line = "<<aSecondLine; + QListWidget* customlist = new QListWidget(); + //for(int i =0;i<2;i++) + //{ + QWidget* widgetItem = new QWidget(); + QHBoxLayout* HMainlayout = new QHBoxLayout(widgetItem); + QLabel *lab =new QLabel(); + lab->setPixmap(QPixmap(aIconPath)); + lab->setFixedSize(60,60); + HMainlayout->addWidget(lab); + + //To add First & second row horizontal layouts + QVBoxLayout* VTextlayout = new QVBoxLayout; + + QHBoxLayout* HFirstrowLayout = new QHBoxLayout; + //Add FirstLine label + QLabel *lab1 =new QLabel(aFirstLine); + lab1->setStyleSheet("font: bold 16px;"); + HFirstrowLayout->addWidget(lab1); + //Add Images to + QLabel *Img1lab =new QLabel(); + Img1lab->setPixmap(QPixmap(aIconPath)); + Img1lab->setFixedSize(10,10); + QLabel *Img2lab =new QLabel(); + Img2lab->setPixmap(QPixmap(aIconPath)); + Img2lab->setFixedSize(10,10); + QLabel *Img3lab =new QLabel(); + Img3lab->setPixmap(QPixmap(aIconPath)); + Img3lab->setFixedSize(10,10); + + HFirstrowLayout->addWidget(Img1lab); + HFirstrowLayout->addWidget(Img2lab); + HFirstrowLayout->addWidget(Img3lab); + +// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight); +// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight); + + VTextlayout->addLayout(HFirstrowLayout); + + + QHBoxLayout* HSecondrowLayout = new QHBoxLayout; + QLabel *lab2 =new QLabel(aSecondLine); + lab2->setStyleSheet("font: 8px;"); + HSecondrowLayout->addWidget(lab2); + + QLabel *Timestamplabel =new QLabel("00:00 JUN 29"); + Timestamplabel->setStyleSheet("font: 7px;"); + HSecondrowLayout->addWidget(Timestamplabel); + + HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight); + + VTextlayout->addLayout(HSecondrowLayout); + + + HMainlayout->addLayout(VTextlayout); + widgetItem->setLayout(HMainlayout); + QListWidgetItem *item=new QListWidgetItem; + + //customlist->adjustSize(); + //customlist->adjustSize(); + item->setSizeHint(QSize(60,60)); + + customlist->addItem(item); + customlist->setItemWidget(item,widgetItem); + //} +customlist->setStyleSheet("selection-color: yellow;" + "selection-background-color: grey;"); + return customlist; +}*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/CustomListWidget.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,25 @@ +#ifndef CUSTOMLISTWIDGET_H +#define CUSTOMLISTWIDGET_H + +#include <qlistwidget.h> +#include <smfcontact.h> +#include <smfpost.h> +#include <smfactions.h> +#include "qmainwindow.h" + +class CustomListWidget : public QListWidget +{ +public: + CustomListWidget(); + //QWidget* CreateListwidget(QStrng aIconPath,QString aFirstLine,QString aSecondLine); + QWidget* CreateListwidget(SmfContactList* friendsList); + QWidget* CreateListwidget(SmfPostList *postsList); + QWidget* CreateListwidget(SmfActivityEntryList *activityList); + void AddListItem(QString aIconPath,QString aFirstLine,QString aSecondLine); + void AddListItem(QMainWindow *mainWindow,QStringList aIconPath, QStringList iconName); + ~CustomListWidget(); + +}; + + +#endif // CUSTOMLISTWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/DemoGUI.loc Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,13 @@ +// ============================================================================ +// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:14:37 +// * This file is generated by qmake and should not be modified by the +// * user. +// ============================================================================ + +#ifdef LANGUAGE_SC +#define STRING_r_short_caption "DemoGUI" +#define STRING_r_caption "DemoGUI" +#else +#define STRING_r_short_caption "DemoGUI" +#define STRING_r_caption "DemoGUI" +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/DemoGUI.pro Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,40 @@ +# ------------------------------------------------- +# Project created by QtCreator 2010-06-29T13:53:43 +# ------------------------------------------------- +TARGET = DemoGUI +TEMPLATE = app +QT += network +CONFIG += mobility +MOBILITY += contacts \ + location +SOURCES += ImageDownload.cpp \ + main.cpp \ + mainwindow.cpp \ + CustomListWidget.cpp \ + HomeView.cpp \ + GridView.cpp \ + ToolBar.cpp +HEADERS += ImageDownload.h \ + mainwindow.h \ + CustomListWidget.h \ + HomeView.h \ + ScreenSize.h \ + GridView.h \ + ToolBar.h \ + WidgetConstants.h +FORMS += mainwindow.ui +symbian: { + TARGET.CAPABILITY = NetworkServices \ + ReadUserData \ + WriteUserData \ + LocalServices \ + UserEnvironment \ + ReadDeviceData \ + WriteDeviceData + LIBS += -lsmfclient.dll \ + -lcone \ + -leikcore \ + -lavkon \ + -lsmfcommon + ICON = sasken_logo.svg +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/DemoGUI.rss Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,21 @@ +// ============================================================================ +// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:14:37 +// * This file is generated by qmake and should not be modified by the +// * user. +// ============================================================================ + +#include <appinfo.rh> +#include "DemoGUI.loc" + +RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info + { + short_caption = STRING_r_short_caption; + caption_and_icon = + CAPTION_AND_ICON_INFO + { + caption = STRING_r_caption; + number_of_icons = 1; + icon_file = "\\resource\\apps\\DemoGUI.mif"; + }; + } +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/DemoGUI_installer.pkg Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,30 @@ +; DemoGUI_installer.pkg generated by qmake at 2010-07-30T14:14:37 +; This file is generated by qmake and should not be modified by the user +; + +; Language +&EN + +; SIS header: name, uid, version +#{"DemoGUI installer"},(0xA000D7CE),1,0,0 + +; Localised Vendor name +%{"Vendor"} + +; Unique Vendor name +:"Vendor" + + +; Manual PKG pre-rules from PRO files +; Default HW/platform dependencies +[0x101F7961],0,0,0,{"S60ProductID"} +[0x102032BE],0,0,0,{"S60ProductID"} +[0x102752AE],0,0,0,{"S60ProductID"} +[0x1028315F],0,0,0,{"S60ProductID"} + +; Default dependency to Qt libraries +; Default dependency to QtMobility libraries + + +"D:/smf/MissingCode/DemoGUI/DemoGUI.sis" - "c:\adm\DemoGUI.sis" +@"D:/Qt/4.6.2/smartinstaller.sis",(0x2002CCCD)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/DemoGUI_reg.rss Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,18 @@ +// ============================================================================ +// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:14:37 +// * This file is generated by qmake and should not be modified by the +// * user. +// ============================================================================ + +#include <DemoGUI.rsg> +#include <appinfo.rh> + +UID2 KUidAppRegistrationResourceFile +UID3 0xE9d1bae8 + +RESOURCE APP_REGISTRATION_INFO + { + app_file="DemoGUI"; + localisable_resource_file="\\resource\\apps\\DemoGUI"; + + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/DemoGUI_template.pkg Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,37 @@ +; DemoGUI_template.pkg generated by qmake at 2010-07-30T14:14:37 +; This file is generated by qmake and should not be modified by the user +; + +; Language +&EN + +; SIS header: name, uid, version +#{"DemoGUI"},(0xE9d1bae8),1,0,0 + +; Localised Vendor name +%{"Vendor"} + +; Unique Vendor name +:"Vendor" + + +; Manual PKG pre-rules from PRO files +; Default HW/platform dependencies +[0x101F7961],0,0,0,{"S60ProductID"} +[0x102032BE],0,0,0,{"S60ProductID"} +[0x102752AE],0,0,0,{"S60ProductID"} +[0x1028315F],0,0,0,{"S60ProductID"} + +; Default dependency to Qt libraries +(0x2001E61C), 4, 6, 2, {"Qt"} +; Default dependency to QtMobility libraries +(0x2002AC89), 1, 0, 0, {"QtMobility"} + +; Executable and default resource files +"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/release/$(PLATFORM)/$(TARGET)/DemoGUI.exe" - "!:\sys\bin\DemoGUI.exe" +"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/resource/apps/DemoGUI.rsc" - "!:\resource\apps\DemoGUI.rsc" +"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/private/10003a3f/import/apps/DemoGUI_reg.rsc" - "!:\private\10003a3f\import\apps\DemoGUI_reg.rsc" +"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/resource/apps/DemoGUI.mif" - "!:\resource\apps\DemoGUI.mif" + + +; Manual PKG post-rules from PRO files
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/FriendView.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,71 @@ +#include "FriendView.h" +#include "ScreenSize.h" +#include "qpushbutton.h" +#include "ToolBar.h" +#include <qmessagebox.h> + +//Forward declaration +class ScreenSize; +class CustomListWidget; +class GridView; + +FriendView::FriendView(QString aHeadName): + iHeadName(aHeadName) +{ + +} +FriendView::~FriendView() +{ + +} +void FriendView::SetupUI() +{ + //iMainwindow = Mainwindow; + QPushButton* HomeButton = new QPushButton(this); + HomeButton->setText(iHeadName); + HomeButton->setGeometry(0,0,ScreenSize::GetScreenRect().width(),KHeadNameHeight); + HomeButton->setStyleSheet("background-color: rgb(0,0,0);" + "border-width: 2px;" + "font: bold 16px;" + "min-width: 10em;" + "padding: 4px;" + "color: white;" + ); + + HomeButton->setDisabled(true); + + TabWidget = new QTabWidget(this); + + iPostsListWidget = new CustomListWidget(); + TabWidget->addTab(iPostsListWidget,"Posts"); + + AlbumView = new GridView(); + QStringList Iconpathlist; + Iconpathlist.append("E:/Images/SMF/SMF.JPG"); + Iconpathlist.append("E:/Images/SMF/SMF.JPG"); + Iconpathlist.append("E:/Images/SMF/SMF.JPG"); + Iconpathlist.append("E:/Images/SMF/SMF.JPG"); + Iconpathlist.append("E:/Images/SMF/SMF.JPG"); + Iconpathlist.append("E:/Images/SMF/SMF.JPG"); + + TabWidget->addTab(AlbumView->CreateGridView(Iconpathlist),"Album"); + + TabWidget->setGeometry(0,KHeadNameHeight + KWidgetGapFactor,ScreenSize::GetScreenRect().width(),ScreenSize::GetScreenRect().height() - (ToolbarIconHeight + KWidgetGapFactor)); + + connect(TabWidget,SIGNAL(currentChanged(int)),this,SLOT(Navigated2OtherTab(int))); + //Drawing Tool bar + ToolBar* ToolBarwidget = new ToolBar; + QStringList actionList; + actionList.append("Post"); + actionList.append("Reply"); + actionList.append("Add Service"); + ToolBarwidget->GetToolBar(this,actionList); + showFullScreen(); +} + +void FriendView::Navigated2OtherTab(int tabIndex) +{ + if(tabIndex == 0) + iPostsListWidget->AddListItem("E:/Images/SMF/SMF.JPG","Rajat","Hello !"); + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/FriendView.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,29 @@ +#ifndef FRIENDVIEW_H +#define FRIENDVIEW_H + +#include <qmainwindow.h> +#include <WidgetConstants.h> +#include "customListwidget.h" +#include "GridView.h" +#include <qtablewidget.h> + + +class FriendView : public QMainWindow +{ + Q_OBJECT +public: + FriendView(QString aHeadName); + void SetupUI(); + ~FriendView(); +private: + QString iHeadName; +private slots: + void Navigated2OtherTab(int tabIndex); +private: + QMainWindow *iMainwindow; + QTabWidget* TabWidget; + GridView* AlbumView; + CustomListWidget* iPostsListWidget; +}; + +#endif // FRIENDVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/GridView.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,77 @@ +#include "GridView.h" +#include "ScreenSize.h" +#include <qgridlayout.h> +#include <qpushbutton.h> +#include <qdebug.h> + +GridView::GridView() +{ + +} +GridView::~GridView() +{ + +} +void GridView::CreateGridView(QStringList aIconPath, QStringList names) +{ + qDebug()<<"Inside GridView::CreateGridView()"; + qDebug()<<"aIconPath count = "<<aIconPath.count(); + qDebug()<<"names count = "<<names.count(); + + int row; + int col; + QWidget* widget = new QWidget(); + QGridLayout* GridLayout = new QGridLayout(widget); + if((6 == aIconPath.count()) || (5 == aIconPath.count())) + { + row = 3; + col = 2; + } + else if((4 == aIconPath.count()) || (3 == aIconPath.count())) + { + row = col = 2; + } + else if((2 == aIconPath.count()) || (1 == aIconPath.count())) + { + row = 1; + col = 2; + } + else if(0 == aIconPath.count()) + { + row = col = 0; + } + + int rowSpace = (ScreenSize::GetScreenRect().height() - (KHeadNameHeight+ToolbarIconHeight+2*KWidgetGapFactor))/row; + int colSpace = (ScreenSize::GetScreenRect().width() - 2*KWidgetGapFactor )/col; + + int index = 0; + for(int i=0;i<row;i++) + { + for(int j=0;j<col;j++) + { + QPushButton *pushBtn = new QPushButton(); + qDebug()<<"name = "<<names[index]; + //pushBtn-> + pushBtn->setGeometry(i*colSpace,(j*rowSpace + KWidgetGapFactor),colSpace,rowSpace); + pushBtn->setIconSize(QSize(colSpace,colSpace)); + qDebug()<<"icon = "<<aIconPath[index]; + pushBtn->setIcon(QIcon(aIconPath[index])); + GridLayout->addWidget(pushBtn,i,j); + pushBtn->show(); + + index++; + if(index == names.count()) + { + qDebug()<<"Count became same so exiting"; + break; + } + } + if(index == names.count()) + { + qDebug()<<"Count became same so exiting"; + break; + } + } + //return widget; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/GridView.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,22 @@ +#ifndef GRIDVIEW_H +#define GRIDVIEW_H + +///Its not in use at this poin + +#include <qwidget.h> +#include "WidgetConstants.h" +#include<qpushbutton.h> + +class GridView : public QWidget +{ +Q_OBJECT + +public: + GridView(); + void CreateGridView(QStringList aIconPath, QStringList names); + ~GridView(); + +}; + + +#endif // GRIDVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/HomeView.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,758 @@ +#include "HomeView.h" +#include "ScreenSize.h" +#include "qpushbutton.h" +#include "customListwidget.h" +#include "GridView.h" +#include <qtablewidget.h> + +#include <QMapIterator> +#include <smfclient.h> +#include <smfprovider.h> +#include <QMessageBox> +#include <QDebug> +#include "ImageDownload.h" + +static int tab = 0; + +HomeView::HomeView(QString aHeadName): + iHeadName(aHeadName) + { + //m_providerList = NULL; + m_mainWindow = NULL; + TabWidget = NULL; + iFrndsListWidget = NULL; + iPostsListWidget = NULL; + iActivityListWidget = NULL; + AlbumView = NULL; + + m_contactFetcher = NULL; + m_postProvider = NULL; + m_gallery = NULL; + m_activityFetcher = NULL; + m_friendsList = NULL; + m_postsList = NULL; + m_albumsList = NULL; + m_activitiesList = NULL; + m_picList = NULL; + } + +HomeView::~HomeView() + { + if(TabWidget) + { + delete TabWidget; + TabWidget = NULL; + } + if(iFrndsListWidget) + { + delete iFrndsListWidget; + iFrndsListWidget = NULL; + } + if(iPostsListWidget) + { + delete iPostsListWidget; + iPostsListWidget = NULL; + } + if(iActivityListWidget) + { + delete iActivityListWidget; + iActivityListWidget = NULL; + } + if(AlbumView) + { + delete AlbumView; + AlbumView = NULL; + } + + if(m_contactFetcher) + { + delete m_contactFetcher; + m_contactFetcher =NULL; + } + if(m_postProvider) + { + delete m_postProvider; + m_postProvider =NULL; + } + if(m_gallery) + { + delete m_gallery; + m_gallery =NULL; + } + if(m_activityFetcher) + { + delete m_activityFetcher; + m_activityFetcher =NULL; + } + if(m_friendsList) + { + delete m_friendsList; + m_friendsList =NULL; + } + if(m_postsList) + { + delete m_postsList; + m_postsList =NULL; + } + if(m_albumsList) + { + delete m_albumsList; + m_albumsList =NULL; + } + if(m_activitiesList) + { + delete m_activitiesList; + m_activitiesList =NULL; + } + if(m_picList) + { + delete m_picList; + m_picList =NULL; + } + } + + +void HomeView::SetupUI(QMainWindow *Mainwindow) + { + qDebug()<<"Inside HomeView::SetupUI()"; + + m_mainWindow = Mainwindow; + + QPushButton* HomeButton = new QPushButton(m_mainWindow); + HomeButton->setText(iHeadName); + HomeButton->setGeometry(0,0,ScreenSize::GetScreenRect().width(),KHeadNameHeight); + HomeButton->setStyleSheet("background-color: rgb(0,0,0);" + "border-width: 2px;" + "font: bold 16px;" + "min-width: 10em;" + "padding: 4px;" + "color: white;" + ); + + HomeButton->setDisabled(true); + qDebug()<<"Home button created and setup"; + + TabWidget = new QTabWidget(m_mainWindow); + connect(TabWidget,SIGNAL(currentChanged(int)),this,SLOT(Navigated2OtherTab(int))); + qDebug()<<"Tab widget created"; + + iFrndsListWidget = new CustomListWidget(); + TabWidget->addTab(iFrndsListWidget,"Friends"); + qDebug()<<"Friends Tab created"; + + iPostsListWidget = new CustomListWidget(); + TabWidget->addTab(iPostsListWidget,"Posts"); + qDebug()<<"Posts Tab created"; + + //AlbumView = new GridView(); + /*QWidget *widget = new QWidget(); + TabWidget->addTab(widget,"Album");*/ + iAlbumWidget = new CustomListWidget(); + TabWidget->addTab(iAlbumWidget,"Album"); + + qDebug()<<"Albums Tab created"; + +/* + QStringList Iconpathlist; + Iconpathlist.append("C:\\data\\AlbumDefault.JPG"); + Iconpathlist.append("C:\\data\\AlbumDefault.JPG"); + Iconpathlist.append("C:\\data\\AlbumDefault.JPG"); + Iconpathlist.append("C:\\data\\AlbumDefault.JPG"); + + + TabWidget->addTab(AlbumView->CreateGridView(Iconpathlist),"Album"); + qDebug()<<"Albums Tab created"; +*/ + + iActivityListWidget = new CustomListWidget(); + TabWidget->addTab(iActivityListWidget,"Activity"); + qDebug()<<"Activity Tab created"; + + TabWidget->setGeometry(0,KHeadNameHeight + KWidgetGapFactor,ScreenSize::GetScreenRect().width(),ScreenSize::GetScreenRect().height() - 100); + + //Drawing Tool bar + ToolBarwidget = new ToolBar; + QStringList actionList; + actionList.append("Add Services"); + //actionList.append("Open"); + //actionList.append("Reply"); + ToolBarwidget->GetToolBar(m_mainWindow,actionList); + qDebug()<<"Tool bar created"; + } + + +void HomeView::getFriends() + { + qDebug()<<"Inside HomeView::getFriends()"; + + // Get the list of providers + SmfClient client; + QString intfName("org.symbian.smf.plugin.contact.fetcher"); + + SmfProviderList *providerList = client.GetServices(intfName); + qDebug()<<"client.GetServices returned a list with count = "<<providerList->count(); + + // flag to check if required plugin is there + bool pluginFound = false; + foreach(SmfProvider provider, *providerList) + { + if("Facebook" == provider.serviceName()) + { + qDebug()<<"Plugin for Facebook found"; + pluginFound = true; + m_contactFetcher = new SmfContactFetcher(&provider); + bool ret = connect(m_contactFetcher, SIGNAL(friendsListAvailable(SmfContactList*, SmfError , SmfResultPage)), + this, SLOT(friendsAvailable(SmfContactList*, SmfError , SmfResultPage))); + + qDebug()<<"Connected ?"<<ret; + m_contactFetcher->friends(1,5); + } + } + + if(!pluginFound) + { + qDebug()<<"Plugin for Facebook not found!!!"; + QString smferrString("No Facebook plugin found!!!"); + QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok); + } + } + + +void HomeView::friendsAvailable(SmfContactList* friendsList, SmfError error, SmfResultPage resultPage) + { + qDebug()<<"Inside HomeView::friendsAvailable()"; + + m_friendsList = friendsList; + if(error) + { + SmfClient client; + QString errStr = client.errorString(error); + qDebug()<<"Error found, code = "<<error; + qDebug()<<"Error string is = "<<errStr; + + QMessageBox::information(m_mainWindow,"Error",errStr,QMessageBox::Ok); + return; + } + + //display friends description + int count = 0; + qDebug()<<"Number of friends retrieved = "<<friendsList->count(); + if(friendsList->count() == 0) + { + QString smferrString("No Friends"); + QMessageBox::information(m_mainWindow,"No Friends",smferrString,QMessageBox::Ok); + return; + } + + QMap<QString, QUrl> urlMap; + foreach(SmfContact contact, *friendsList) + { + QString name(contact.value("Name").value<QContactName>().firstName()); + QString status(contact.value("Presence").value<QContactPresence>().customMessage()); + if(!status.size()) + status.append("Not available"); + QUrl url(contact.value("Avatar").value<QContactAvatar>().imageUrl()); + + qDebug()<<"Friends name = "<<contact.value("Name").value<QContactName>().firstName(); + qDebug()<<"Friends status msg desc = "<<contact.value("Presence").value<QContactPresence>().customMessage(); + qDebug()<<"Friends profile image URL = "<<contact.value("Avatar").value<QContactAvatar>().imageUrl(); + urlMap.insert(name, url); + } + + // Download Images + downloadImages(SmfFriendsFetch, urlMap); + + } + +void HomeView::populateFriendsWidget() + { + foreach(SmfContact contact, *m_friendsList) + { + QString name(contact.value("Name").value<QContactName>().firstName()); + QString status(contact.value("Presence").value<QContactPresence>().customMessage()); + if(!status.size()) + status.append("Not available"); + QString url("C:\\data\\"); + url.append(name); + url.append(".jpg"); + + // Add this contact to the list widget + iFrndsListWidget->AddListItem(url,name,status); + } + } + +void HomeView::downloadImages(const SmfItemIdentifier &identifier, const QMap<QString, QUrl> urlMap) + { + qDebug()<<"Inside HomeView::downloadImages()"; + QMapIterator<QString, QUrl> iter(urlMap); + + while(iter.hasNext()) + { + iter.next(); + m_downloader.downloadImage(this, iter.key(), iter.value(), identifier); + downloading = true; + } + } + +void HomeView::Navigated2OtherTab(int tabIndex) + { + qDebug()<<"Inside HomeView::Navigated2OtherTab() for tab index = "<<tabIndex; + + // Display friends + if(tabIndex == 0) + { + qDebug()<<"Downloading images?? "<<downloading; + if(!iFrndsListWidget->count()) + { + if(!downloading) + { + getFriends(); + + /*if (10 == tab) + { + ToolBarwidget->newAction1->setVisible(false); + ToolBarwidget->newAction2->setVisible(false); + }*/ + } + } + } + + // Display albums + else if(tabIndex == 1) + { + if(!iPostsListWidget->count()) + { + if(!downloading) + { + getPosts(); + /*ToolBarwidget->menu->addAction(ToolBarwidget->newAction1); + ToolBarwidget->menu->addAction(ToolBarwidget->newAction2); + tab = 10; + qDebug()<<"Action is visible ?"<<(ToolBarwidget->newAction1->isVisible()); + if (10 == tab || !(ToolBarwidget->newAction1->isVisible())) + { + ToolBarwidget->newAction1->setVisible(true); + ToolBarwidget->newAction2->setVisible(true); + }*/ + } + } + } + + // Display albums + else if(tabIndex == 2) + { + if(!m_picList) + { + if(!downloading) + { + getPhotos(); + /*if (ToolBarwidget->newAction1->isVisible()) + { + ToolBarwidget->newAction1->setVisible(false); + ToolBarwidget->newAction2->setVisible(false); + }*/ + } + } + + } + + // Display activities + else if(tabIndex == 3) + { + if(!iActivityListWidget->count()) + { + getActivities(); + /*if (ToolBarwidget->newAction1->isVisible()) + { + ToolBarwidget->newAction1->setVisible(false); + ToolBarwidget->newAction2->setVisible(false); + }*/ + } + } + } + +void HomeView::getPosts() + { + qDebug()<<"Inside HomeView::getPosts()"; + + SmfClient client; + QString intfName("org.symbian.smf.client.contact.posts"); + SmfProviderList *providerList = client.GetServices(intfName); + bool pluginFound = false; + qDebug()<<"client.GetServices returned a list with count = "<<providerList->count(); + foreach(SmfProvider provider, *providerList) + { + if("Facebook" == provider.serviceName()) + { + qDebug()<<"Plugin for facebook found"; + pluginFound = true; + m_postProvider = new SmfPostProvider(&provider); + bool ret = connect(m_postProvider, SIGNAL(postsAvailable(SmfPostList*, SmfError , SmfResultPage)), + this, SLOT(postsAvailable(SmfPostList*, SmfError , SmfResultPage))); + + qDebug()<<"Connected ?"<<ret; + m_postProvider->posts(); + } + } + + if(!pluginFound) + { + qDebug()<<"Plugin for facebook not found!!!"; + QString smferrString("No Facebook plugin found!!!"); + QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok); + } + } + +void HomeView::postsAvailable(SmfPostList* postsList, SmfError error, SmfResultPage page) + { + Q_UNUSED(page); + + qDebug()<<"Inside HomeView::postsAvailable()"; + + m_postsList = postsList; + if(error) + { + SmfClient client; + QString errStr = client.errorString(error); + qDebug()<<"Error found, code = "<<error; + qDebug()<<"Error string is = "<<errStr; + + QMessageBox::information(m_mainWindow,"Error",errStr,QMessageBox::Ok); + return; + } + + //display posts details + int count = 0; + qDebug()<<"Number of posts retrieved = "<<postsList->count(); + if(postsList->count() == 0) + { + QString smferrString("No Posts"); + QMessageBox::information(m_mainWindow,"No Posts",smferrString,QMessageBox::Ok); + return; + } + QMap<QString, QUrl> urlMap; + foreach(SmfPost post, *postsList) + { + QString name(post.owner().value("Name").value<QContactName>().firstName()); + QUrl url(post.owner().value("Avatar").value<QContactAvatar>().imageUrl()); + + qDebug()<<"Post text = "<<post.description(); + qDebug()<<"owner = "<<name; + qDebug()<<"owner's profile image url = "<<url.toString(); + + urlMap.insert(name, url); + } + + // Download Images + downloadImages(SmfPostsFetch, urlMap); + } + + +void HomeView::populatePostsWidget() + { + // Add individual items to the widget + foreach(SmfPost post, *m_postsList) + { + QString name(post.owner().value("Name").value<QContactName>().firstName()); + QString text(post.description()); + + QString url("C:\\data\\"); + url.append(name); + url.append(".jpg"); + + // Add this contact to the list widget + iPostsListWidget->AddListItem(url,name,text); + } + } + +void HomeView::getAlbums() + { + qDebug()<<"Inside HomeView::getAlbums()"; + + SmfClient client; + QString intfName("org.symbian.smf.client.gallery"); + SmfProviderList *providerList = client.GetServices(intfName); + bool pluginFound = false; + qDebug()<<"client.GetServices returned a list with count = "<<providerList->count(); + foreach(SmfProvider provider, *providerList) + { + if("Flickr" == provider.serviceName()) + { + qDebug()<<"Plugin for flickr found"; + pluginFound = true; + m_gallery = new SmfGallery(&provider); + bool ret = connect(m_gallery, SIGNAL(albumsAvailable(SmfPictureAlbumList*, SmfError , SmfResultPage)), + this, SLOT(albumsAvailable(SmfPictureAlbumList*, SmfError , SmfResultPage))); + + qDebug()<<"Connected ?"<<ret; + QStringList names; + + SmfContact user; // current user + + m_gallery->albums(names, &user); + } + } + if(!pluginFound) + { + qDebug()<<"Plugin for flickr not found!!!"; + QString smferrString("No flickr plugin found!!!"); + QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok); + } + } + +void HomeView::albumsAvailable(SmfPictureAlbumList* albums, SmfError error, SmfResultPage resultPage) + { + Q_UNUSED(resultPage); + + qDebug()<<"Inside HomeView::albumsAvailable()"; + + m_albumsList = albums; + if(error) + { + SmfClient client; + QString errStr = client.errorString(error); + qDebug()<<"Error found, code = "<<error; + qDebug()<<"Error string is = "<<errStr; + + QMessageBox::information(m_mainWindow,"Error",errStr,QMessageBox::Ok); + return; + } + + //display album details + int count = 0; + qDebug()<<"Number of albums retrieved = "<<albums->count(); + if(albums->count() == 0) + { + QString smferrString("No Albums"); + QMessageBox::information(m_mainWindow,"No Albums",smferrString,QMessageBox::Ok); + return; + } + + QStringList albumPicList; + QStringList albumNameList; + foreach(SmfPictureAlbum album, *m_albumsList) + { + + qDebug()<<"Album name = "<<album.title(); + qDebug()<<"Album description = "<<album.description(); + qDebug()<<"Album pictureCount = "<<album.pictureCount(); + qDebug()<<"Album id = "<<album.id(); + albumNameList.append(album.title()); + albumPicList.append("C:\\data\\sample.bmp"); + } + + // Create the grip view + AlbumView->CreateGridView(albumPicList, albumNameList); + } + + +void HomeView::getActivities() + { + qDebug()<<"Inside HomeView::getActivities()"; + + // Get the list of providers + SmfClient client; + QString intfName("org.symbian.smf.client.activity.fetcher"); + + SmfProviderList *providerList = client.GetServices(intfName); + qDebug()<<"client.GetServices returned a list with count = "<<providerList->count(); + + // flag to check if required plugin is there + bool pluginFound = false; + int index = 0; + foreach(SmfProvider provider, *providerList) + { + if("Facebook" == provider.serviceName()) + { + qDebug()<<"Plugin for Facebook found"; + pluginFound = true; + m_activityFetcher = new SmfActivityFetcher(&provider); + bool ret = connect(m_activityFetcher, SIGNAL(resultsAvailable(SmfActivityEntryList*, SmfError , SmfResultPage)), + this, SLOT(activitiesAvailable(SmfActivityEntryList*, SmfError , SmfResultPage))); + + qDebug()<<"Connected ?"<<ret; + m_activityFetcher->selfActivities(); + } + index++; + } + + if(!pluginFound) + { + qDebug()<<"Plugin for Facebook not found!!!"; + QString smferrString("No Facebook plugin found!!!"); + QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok); + } + } + + +void HomeView::activitiesAvailable(SmfActivityEntryList* activitiesList, SmfError error, SmfResultPage resultPage) + { + qDebug()<<"Inside HomeView::activitiesAvailable()"; + + m_activitiesList = activitiesList; + qDebug()<<"Number of activities retrieved = "<<activitiesList->count(); + if(error) + { + SmfClient client; + QString errStr = client.errorString(error); + qDebug()<<"Error found, code = "<<error; + qDebug()<<"Error string is = "<<errStr; + + QMessageBox::information(m_mainWindow,"Error",errStr,QMessageBox::Ok); + return; + } + + //display activity description + int count = 0; + qDebug()<<"Number of activities retrieved = "<<activitiesList->count(); + + if(activitiesList->count() == 0) + { + QString smferrString("No Recent Activities"); + QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok); + return; + } + + foreach(SmfActivityEntry activity, *activitiesList) + { + qDebug()<<"Activity author name = "<<activity.author().value("Name").value<QContactName>().firstName(); + qDebug()<<"Activity title = "<<activity.title().title(); + qDebug()<<"Activity details = "<<activity.details().description(); + } + + populateActivitiesWidget(); + + } + +void HomeView::populateActivitiesWidget() + { + qDebug()<<"Inside HomeView::populateActivityWidget()"; + QString defImagePath("C:\\data\\genericfriendicon.svg"); + foreach(SmfActivityEntry activity, *m_activitiesList) + { + QString name(activity.author().value("Name").value<QContactName>().firstName()); + QString title(activity.title().title()); + + + // Add this contact to the list widget + iActivityListWidget->AddListItem(defImagePath, name, title); + } + } + + + +void HomeView::getPhotos() + { + qDebug()<<"Inside HomeView::getPhotos()"; + + // Get the list of providers + SmfClient client; + QString intfName("org.symbian.smf.client.gallery"); + + SmfProviderList *providerList = client.GetServices(intfName); + qDebug()<<"client.GetServices returned a list with count = "<<providerList->count(); + + // flag to check if required plugin is there + bool pluginFound = false; + int index = 0; + foreach(SmfProvider provider, *providerList) + { + if("Flickr" == provider.serviceName()) + { + qDebug()<<"Plugin for flickr found"; + pluginFound = true; + if(!m_gallery) + m_gallery = new SmfGallery(&provider); + bool ret = connect(m_gallery, SIGNAL(picturesAvailable(SmfPictureList*, SmfError , SmfResultPage)), + this, SLOT(picturesAvailable(SmfPictureList*, SmfError , SmfResultPage))); + + qDebug()<<"Connected ?"<<ret; + +#ifndef IFNOALBUMIDOFTHELOGGEDINUSERISAVAILABLE + SmfPictureAlbumList list; // pass empty list to fetch photos which are not part of any set, when albumID is not available +#else // If the album id is known use the below piece of code + SmfPictureAlbumList list; + SmfPictureAlbum album; + album.setId("72157623348359220"); + list.append(album); +#endif + + m_gallery->pictures(list); + } + index++; + } + + if(!pluginFound) + { + qDebug()<<"Plugin for flickr not found!!!"; + QString smferrString("No Flickr plugin found!!!"); + QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok); + } + } + + +void HomeView::picturesAvailable(SmfPictureList* picList, SmfError error, SmfResultPage resultPage) + { + qDebug()<<"Inside HomeView::picturesAvailable()"; + + m_picList = picList; + if(error) + { + SmfClient client; + QString errStr = client.errorString(error); + qDebug()<<"Error found, code = "<<error; + qDebug()<<"Error string is = "<<errStr; + + QMessageBox::information(m_mainWindow,"Error",errStr,QMessageBox::Ok); + return; + } + + //display pic description + int count = 0; + qDebug()<<"Number of pic retrieved = "<<picList->count(); + + QMap<QString, QUrl> urlMap; + foreach(SmfPicture pic, *picList) + { + qDebug()<<"Photo title = "<<pic.title(); + qDebug()<<"Photo posted date = "<<pic.postedDate(); + qDebug()<<"Photo url = "<<pic.url(); + qDebug()<<"Photo id = "<<pic.id(); + + QString name(pic.title()); + QUrl url(pic.url()); + + urlMap.insert(name, url); + } + + // Download Images + downloadImages(SmfPhotosFetch, urlMap); + } + + +void HomeView::populatePhotosGridView() + { + qDebug()<<"Inside HomeView::populatePhotosGridView()"; + + QStringList albumPicList; + QStringList albumNameList; + + foreach(SmfPicture pic, *m_picList) + { + QString name(pic.title()); + + qDebug()<<"Name :"<<name; + QString url("C:\\data\\"); + url.append(name); + url.append(".jpg"); + + + albumNameList.append(name); + albumPicList.append(url); + } + + // Create the grip view + iAlbumWidget->AddListItem(m_mainWindow,albumPicList,albumNameList); +// AlbumView->CreateGridView(albumPicList,albumNameList); + + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/HomeView.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,75 @@ +#ifndef HOMEVIEW_H +#define HOMEVIEW_H + +#include <qmainwindow.h> +#include <WidgetConstants.h> +//#include <smfglobal.h> +#include <smfcontact.h> +#include <smfpost.h> +#include <smfpicturealbum.h> +#include <smfactions.h> +#include <smfpicture.h> +#include <smfcontactfetcher.h> +#include <smfpostprovider.h> +#include <smfgallery.h> +#include <smfactivityfetcher.h> +#include "ImageDownload.h" +#include "ToolBar.h" +#include <qmenu.h> + +class CustomListWidget; +class GridView; + +class HomeView : public QObject +{ + Q_OBJECT +public: + HomeView(QString aHeadName); + ~HomeView(); + void SetupUI(QMainWindow *Mainwindow); + void populateFriendsWidget(); + void populatePostsWidget(); + void populateActivitiesWidget(); + void populatePhotosGridView(); + +private: + void getFriends(); + void getPosts(); + void downloadImages(const SmfItemIdentifier &identifier, const QMap<QString, QUrl> urlMap); + void getAlbums(); + void getActivities(); + void getPhotos(); + +private slots: + void friendsAvailable(SmfContactList* friendsList, SmfError , SmfResultPage ); + void postsAvailable(SmfPostList* postsList, SmfError , SmfResultPage ); + void albumsAvailable(SmfPictureAlbumList* albums, SmfError error, SmfResultPage resultPage); + void activitiesAvailable(SmfActivityEntryList* postsList, SmfError , SmfResultPage ); + void picturesAvailable(SmfPictureList* albums, SmfError error, SmfResultPage resultPage); + void Navigated2OtherTab(int index); + +private: + QString iHeadName; + ToolBar* ToolBarwidget; + QMainWindow *m_mainWindow; + QTabWidget *TabWidget; + CustomListWidget *iFrndsListWidget; + CustomListWidget *iPostsListWidget; + CustomListWidget *iActivityListWidget; + CustomListWidget *iAlbumWidget; + GridView *AlbumView; + ImageDownload m_downloader; + + SmfContactFetcher *m_contactFetcher; + SmfPostProvider *m_postProvider; + SmfGallery *m_gallery; + SmfActivityFetcher *m_activityFetcher; + SmfContactList *m_friendsList; + SmfPostList *m_postsList; + SmfPictureAlbumList *m_albumsList; + SmfActivityEntryList *m_activitiesList; + SmfPictureList *m_picList; + +}; + +#endif // HOMEVIEW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/ImageDownload.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Trolltech hereby grants a license to use the Qt/Eclipse Integration +** plug-in (the software contained herein), in binary form, solely for the +** purpose of creating code to be used with Trolltech's Qt software. +** +** Qt Designer is licensed under the terms of the GNU General Public +** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the +** right to use certain no GPL licensed software under the terms of its GPL +** Exception version 1.2 (http://trolltech.com/products/qt/gplexception). +** +** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS +** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** Since we now have the GPL exception I think that the "special exception +** is no longer needed. The license text proposed above (other than the +** special exception portion of it) is the BSD license and we have added +** the BSD license as a permissible license under the exception. +** +****************************************************************************/ + +#include <qdebug.h> +#include <QImage> +#include <QByteArray> +#include <qnetworkproxy.h> +#include <qfile.h> +#include "ImageDownload.h" +#include "HomeView.h" + +bool downloading = false; + +#define EMULATORTESTING + +ImageDownload::ImageDownload(QObject *parent) + { + manager = new QNetworkAccessManager(this); + +#ifdef EMULATORTESTING + qDebug()<<"Using PROXY SETTINGS!!!, change for device testing in image download"; + + // Reading the keys, CSM Stubbed - START + QFile winFile("c:\\data\\DoNotShare.txt"); + if (!winFile.open(QIODevice::ReadOnly)) + { + qDebug()<<"File to read the windows username and password could not be opened, returning!!!"; + return; + } + + QByteArray winArr = winFile.readAll(); + QList<QByteArray> winList = winArr.split(' '); + winFile.close(); + + QString httpUser(winList[0]); + QString httpPass(winList[1]); + + // For proxy settings on emulator only - REMOVE for device + QString httpProxy = "10.1.0.214"; + QString httpPort = "3128"; + + qDebug()<<httpUser; + qDebug()<<httpPass; + + //==Classes used from Network Module== + QNetworkProxy proxy; + + proxy.setType(QNetworkProxy::HttpProxy); + proxy.setHostName(httpProxy); + proxy.setPort(httpPort.toInt()); + proxy.setUser(httpUser); + proxy.setPassword(httpPass); + + QNetworkProxy::setApplicationProxy(proxy); +#endif + } + +ImageDownload::~ImageDownload() + { + if(manager) + delete manager; + } + +void ImageDownload::downloadImage(HomeView *homeView, QString name, QUrl url, const SmfItemIdentifier &identifier) + { + m_homeView = homeView; + m_identifier = identifier; + qDebug()<<"Inside ImageDownload::downloadImage(name, url)"; + QNetworkRequest request; + request.setUrl(url); + qDebug()<<"URL of image to be downloaded = "<<url; + connect(manager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(networkReplyFinished(QNetworkReply*))); + + QNetworkReply* reply = manager->get(request); + m_nameReplyHash.insert(name, reply); + } + + + +void ImageDownload::networkReplyFinished ( QNetworkReply *aNetworkReply ) + { + qDebug()<<"Error code if any = "<<aNetworkReply->error(); + qDebug()<<"Response for reply = "<<aNetworkReply; + + QByteArray response = aNetworkReply->readAll(); + qDebug()<<"Response Size :"<<response.size(); + if(response.size()) + { + QImage image = QImage::fromData(response); + + QString fileName("c:\\data\\"); + fileName.append(m_nameReplyHash.key(aNetworkReply)); + fileName.append(".jpg"); + + qDebug()<<"Image URL :"<<fileName; + + bool saved = image.save(fileName, "JPG", -1); + qDebug()<<"Image saved ? "<<saved; + m_nameReplyHash.remove(m_nameReplyHash.key(aNetworkReply)); + if(m_nameReplyHash.count() == 0) + { + downloading = false; + if(SmfFriendsFetch == m_identifier) + m_homeView->populateFriendsWidget(); + else if(SmfPostsFetch == m_identifier) + m_homeView->populatePostsWidget(); + else if(SmfPhotosFetch == m_identifier) + m_homeView->populatePhotosGridView(); + // ToDo:- for albums, photos and activity + else + qDebug()<<"Unknown request for download, so do nothing"; + } + } + else + { + qDebug()<<"Response data is NULL"; + } + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/ImageDownload.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Trolltech hereby grants a license to use the Qt/Eclipse Integration +** plug-in (the software contained herein), in binary form, solely for the +** purpose of creating code to be used with Trolltech's Qt software. +** +** Qt Designer is licensed under the terms of the GNU General Public +** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the +** right to use certain no GPL licensed software under the terms of its GPL +** Exception version 1.2 (http://trolltech.com/products/qt/gplexception). +** +** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS +** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** Since we now have the GPL exception I think that the "special exception +** is no longer needed. The license text proposed above (other than the +** special exception portion of it) is the BSD license and we have added +** the BSD license as a permissible license under the exception. +** +****************************************************************************/ + +#ifndef IMAGEDOWNLOAD_H_ +#define IMAGEDOWNLOAD_H_ + +#include <QNetworkReply> +#include <QList> +#include <QNetworkAccessManager> +#include <qhash.h> + +class HomeView; + +extern bool downloading; + +enum SmfItemIdentifier + { + SmfFriendsFetch = 0, + SmfPostsFetch, + SmfAlbumsFetch, + SmfPhotosFetch, + SmfActivityFetch + }; + +class ImageDownload : public QObject +{ + Q_OBJECT +public: + ImageDownload(QObject *parent = 0); + ~ImageDownload(); + void downloadImage(HomeView *homeView, QString name, QUrl url, const SmfItemIdentifier &identifier); + +public slots: + void networkReplyFinished ( QNetworkReply *aNetworkReply ); + +private: + SmfItemIdentifier m_identifier; + QNetworkAccessManager *manager; + HomeView *m_homeView; + QString m_name; + QHash<QString, QNetworkReply*> m_nameReplyHash; +}; + +#endif /* IMAGEDOWNLOAD_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/SMF.loc Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,13 @@ +// ============================================================================ +// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-10T15:20:20 +// * This file is generated by qmake and should not be modified by the +// * user. +// ============================================================================ + +#ifdef LANGUAGE_SC +#define STRING_r_short_caption "SMF" +#define STRING_r_caption "SMF" +#else +#define STRING_r_short_caption "SMF" +#define STRING_r_caption "SMF" +#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/SMF.rss Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,21 @@ +// ============================================================================ +// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-10T15:20:20 +// * This file is generated by qmake and should not be modified by the +// * user. +// ============================================================================ + +#include <appinfo.rh> +#include "SMF.loc" + +RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info + { + short_caption = STRING_r_short_caption; + caption_and_icon = + CAPTION_AND_ICON_INFO + { + caption = STRING_r_caption; + number_of_icons = 1; + icon_file = "\\resource\\apps\\SMF.mif"; + }; + } +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/SMF_reg.rss Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,18 @@ +// ============================================================================ +// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-10T15:20:20 +// * This file is generated by qmake and should not be modified by the +// * user. +// ============================================================================ + +#include <SMF.rsg> +#include <appinfo.rh> + +UID2 KUidAppRegistrationResourceFile +UID3 0xE850fc7b + +RESOURCE APP_REGISTRATION_INFO + { + app_file="SMF"; + localisable_resource_file="\\resource\\apps\\SMF"; + + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/ScreenSize.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,18 @@ +#ifndef SCREENSIZE_H +#define SCREENSIZE_H + +#include <qobject.h> +#include <qrect.h> +#include <qapplication.h> +#include <qdesktopwidget.h> + +class ScreenSize : public QObject +{ +public: + inline static QRect GetScreenRect() + { + return QApplication::desktop()->screenGeometry(); + } +}; + +#endif // SCREENSIZE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/ToolBar.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,262 @@ +#include "ToolBar.h" +#include "ScreenSize.h" +#include <qinputdialog.h> +#include <qplaintextedit.h> +#include <qdir.h> //Checl lateer +#include <qmessagebox.h> +#include <qdebug.h> +#include <qtooltip.h> +//#include <apacmdln.h> +//#include <apgcli.h> + + +//MACRO +#define KNullUid TUid::Null() + +//Forward declaration +class ScreenSize; + +ToolBar::ToolBar() +{ + +} +ToolBar::~ToolBar() +{ + +} +void ToolBar::GetToolBar(QMainWindow *Mainwindow,QStringList aListOfActions) +{ + //iMainWindow = new QMainWindow; + iMainWindow = Mainwindow; + + QHBoxLayout* layout = new QHBoxLayout; + QToolBar* tool = new QToolBar(Mainwindow); + QToolButton* button1 = new QToolButton(Mainwindow); + QToolButton* button2 = new QToolButton(Mainwindow); + QToolButton* button3 = new QToolButton(Mainwindow); + QToolButton* button4 = new QToolButton(Mainwindow); + + tool->setGeometry(0,ScreenSize::GetScreenRect().height() - (ToolbarIconHeight + KWidgetGapFactor),(ScreenSize::GetScreenRect().width()-(KWidgetGapFactor)),ToolbarIconHeight); + + //ToDo :- Ankit to check on button resizing + const int IconWidth = ScreenSize::GetScreenRect().width()/7; + button1->setGeometry(0,ScreenSize::GetScreenRect().height() - (ToolbarIconHeight + KWidgetGapFactor),IconWidth,ToolbarIconHeight); + + button1->setFixedWidth(IconWidth); + button2->setFixedWidth(IconWidth); + button3->setFixedWidth(IconWidth); + button4->setFixedWidth(IconWidth); + + + QIcon icon1("E:/Images/SMF/home.svg"); + QIcon icon2("E:/Images/SMF/all_friends.svg"); //next.PNG + QIcon icon3("E:/Images/SMF/mail-message-new.svg"); + QIcon icon4("E:/Images/SMF/Phone.svg"); + QIcon icon5("E:/Images/SMF/system-log-out.svg"); + + button1->setIcon(icon1); + button2->setIcon(icon3); + button3->setIcon(icon4); + button4->setIcon(icon5); + + button1->setToolTip("Home"); + + menu = new QMenu(Mainwindow); + icon2.actualSize(QSize(IconWidth-10,ToolbarIconHeight)); + //menu->setFixedWidth(IconWidth+10); + menu->setIcon(icon2); + + QMenu *addServ = new QMenu(Mainwindow); + addServ->setTitle(aListOfActions.at(0)); + + //For Facebook and Flickr SP + QAction *addServ_Facebk = new QAction("FaceBook",Mainwindow); + QAction *addServ_Flickr = new QAction("Flickr",Mainwindow); + + + addServ->addAction(addServ_Facebk); + addServ->addAction(addServ_Flickr); + + // } + //Create Actions + //newAction1 = new QAction(aListOfActions.at(1),Mainwindow); + //newAction2 = new QAction(aListOfActions.at(2),Mainwindow); + + //need to be modified + //menu->addAction(newAction1); + //menu->addAction(newAction2); + + //to add services to the menu button + menu->addMenu(addServ); + + //TODO: button to be disabled + //button2->setEnabled(false); + //button3->setEnabled(false); + + tool->addWidget(button1); + tool->addAction(menu->menuAction()); + tool->addWidget(button2); + tool->addWidget(button3); + tool->addWidget(button4); + + layout->addWidget(tool); + + //connect actions + connect(button1,SIGNAL(clicked()),this,SLOT(homeView())); + connect(button2,SIGNAL(clicked()),this,SLOT(msg())); + connect(button3,SIGNAL(clicked()),this,SLOT(call())); + connect(button4,SIGNAL(clicked()),this,SLOT(exitApp())); + //connect(newAction1,SIGNAL(triggered()),this,SLOT(post())); + //connect(newAction2,SIGNAL(triggered()),this,SLOT(reply())); + + //connect for authentication + connect(addServ_Facebk,SIGNAL(triggered()),this,SLOT(authApp_Fb())); + connect(addServ_Flickr,SIGNAL(triggered()),this,SLOT(authApp_Flkr())); + +} + +//changing to home view +void ToolBar::homeView() +{ + //debug + qDebug()<<"Inside View_Change()"; +} + + + +//slot for post comment +/*void ToolBar::post() +{ + //debug purpose + qDebug()<<"Inside My Post"; + bool ok; + QInputDialog inptDialg; + inptDialg.setStyleSheet("background: black;");//rgb(255,255,255);"); + QString text = inptDialg.getText(iMainWindow, tr("QInputDialog::getText()"),tr("Post"), + QLineEdit::Normal,QString::null, &ok,Qt::Window); + + + if ( ok && !text.isEmpty() ) { + // user entered something and pressed OK + } else { + // user entered nothing or pressed Cancel + } + + +}*/ + +//slot for reply comment +/*void ToolBar::reply() +{ + //debug purpose + qDebug()<<"Inside Reply"; + + bool ok; + QString text = QInputDialog::getText(iMainWindow, tr("QInputDialog::getText()"),tr("Reply To Post"), + QLineEdit::Normal,QString::null, &ok,Qt::Window); + + + if ( ok && !text.isEmpty() ) { + // user entered something and pressed OK + } else { + // user entered nothing or pressed Cancel + } + + +}*/ +//calling +//calling +void ToolBar::call() + { + QMessageBox msgbox; + QString msg ("Calling not configured!"); + msgbox.setText(msg); + msgbox.exec(); + } + + + +//msging +void ToolBar::msg() + { + QMessageBox msgbox; + QString msg ("Messaging not configured!"); + msgbox.setText(msg); + msgbox.exec(); + } +//exiting application +void ToolBar::exitApp() +{ + //qDebug()<<"Inside Exit_App()"; + QApplication::exit(); +} + + +//Auth_App for FaceBook +void ToolBar::authApp_Fb() +{ + //debug + qDebug()<<"Inside Auth app of faceBook"; + launchFB(); +} + +//Auth App for Flickr +void ToolBar::authApp_Flkr() +{ + //debug + qDebug()<<"Inside Auth App of Flickr"; + launchFlickr(); +} + + +//Facebook AuthApp Launch +void ToolBar::launchFB() + { + qDebug()<<"Inside Launch FB AuthApp"; + QMessageBox msgbox; + QString msg ("Please Login Using Facebook Auth App!"); + msgbox.setText(msg); + msgbox.exec(); + /*TInt result; + _LIT(KExecutableName,"release\\winscw\\udeb\\AuthApp.exe"); + + //we can ignore using UID + //const TProcessId FBUid(KFBUid3); + RProcess fbProc; + result = fbProc.Create(KExecutableName,KNullDesC); + if(result != KErrNone) + { + qDebug()<<"FB Can't be opened"; + return; + } + qDebug()<<"FB AuthApp Launched"; + fbProc.Resume(); + fbProc.Close();*/ + return; + + } + +void ToolBar::launchFlickr() + { + qDebug()<<"Inside Launch FB AuthApp"; + QMessageBox msgbox; + QString msg ("Please Login Using Flickr Auth App!"); + msgbox.setText(msg); + msgbox.exec(); + /*TInt result; + _LIT(KExecutableName,"release\\winscw\\udeb\\Flickr.exe"); + + //we can ignore using UID + //const TProcessId FBUid(KFBUid3); + RProcess flickrProc; + result = flickrProc.Create(KExecutableName,KNullDesC); + if(result != KErrNone) + { + qDebug()<<"Flickr Can't be opened"; + return; + } + qDebug()<<"Flickr AuthApp Launched"; + flickrProc.Resume(); + flickrProc.Close();*/ + return; + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/ToolBar.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,44 @@ +#ifndef TOOLBAR_H +#define TOOLBAR_H + +#include <qobject.h> +#include <qmainwindow.h> +#include <qboxlayout.h> +#include <qtoolbar.h> +#include <qtoolbutton.h> +#include <qsignalmapper.h> +#include "WidgetConstants.h" +#include <qmenu.h> + +//FaceBook AuthApp UID +const TUint32 KFBUid3 = { 0xEFE2FD23 }; +const TUint32 KFlickUid3 = { 0xE1D8C7D7 }; + +class ToolBar : public QObject +{ + Q_OBJECT +public: + ToolBar(); + void GetToolBar(QMainWindow *Mainwindow,QStringList aListOfActions); + void launchFB(); + void launchFlickr(); + ~ToolBar(); +public slots: + //void post(); + //void reply(); + void exitApp(); + void homeView(); + void msg(); + void call(); + void authApp_Fb(); + void authApp_Flkr(); +private: + QMainWindow *iMainWindow; + QSignalMapper *signal; +public: + QMenu* menu; + //QAction *newAction1; + //QAction *newAction2; +}; + +#endif // TOOLBAR_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/WidgetConstants.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,10 @@ +#ifndef WIDGETCONSTANTS_H +#define WIDGETCONSTANTS_H + +//For Home Screen +const int KHeadNameHeight = 40; +const int KWidgetGapFactor = 5; +const int ToolbarIconHeight = 50; + + +#endif // WIDGETCONSTANTS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/debug/.svn/all-wcprops Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 122 +/svn/symbian/!svn/ver/414/products/s-series/engg/symbian/s60-app-dev/SocialMobileFrameWork/MissingCodeForSmf/DemoGUI/debug +END
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/debug/.svn/entries Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,28 @@ +10 + +dir +415 +http://svnz02/svn/symbian/products/s-series/engg/symbian/s60-app-dev/SocialMobileFrameWork/MissingCodeForSmf/DemoGUI/debug +http://svnz02/svn/symbian + + + +2010-07-30T12:20:29.303136Z +414 +nalinah + + + + + + + + + + + + + + +ddc49ed9-7720-479e-b42b-43a572c34f33 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/main.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,60 @@ +#include <QtGui/QApplication> +#include "mainwindow.h" +#include<qfile.h> +#include<qtextstream.h> +#ifdef Q_OS_SYMBIAN +#include <eikenv.h> +#include <eikappui.h> +#include <aknenv.h> +#include <aknappui.h> +#endif + +void debugOutput(QtMsgType type, const char *msg) + { + QFile logFile("c://data//SmfLog.txt"); + Q_ASSERT(logFile.open( QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append )); + QTextStream stream(&logFile); + + switch (type) + { + case QtDebugMsg: + stream<<msg<<"\n"; + break; + + case QtWarningMsg: + stream<<"Warning: "; + stream<<msg<<"\n"; + break; + + case QtCriticalMsg: + stream<<"Critical: "; + stream<<msg<<"\n"; + break; + + case QtFatalMsg: + stream<<"Fatal: "; + stream<<msg<<"\n"; + break; + + default:; + } + } + +int main(int argc, char *argv[]) +{ + qInstallMsgHandler(debugOutput); + QApplication a(argc, argv); + MainWindow w; +#ifdef Q_OS_SYMBIAN +CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi()); +TRAPD(error, +if (appUi) { // Lock application orientation into landscape +appUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait); +} +); +#endif + + + w.showFullScreen(); + return a.exec(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/mainwindow.cpp Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,33 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + //ui->setupUi(this); + setStyleSheet("selection-color: Black;"); + + Ptr2HomeView = new HomeView("SMF"); + //Ptr2HomeView->getFriends(this); + Ptr2HomeView->SetupUI(this); +} + +MainWindow::~MainWindow() +{ + //delete ui; + delete Ptr2HomeView; + +} + +void MainWindow::changeEvent(QEvent *e) +{ + QMainWindow::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/mainwindow.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,25 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include <QMainWindow> +#include "HomeView.h" + +namespace Ui { + class MainWindow; +} + +class MainWindow : public QMainWindow { + Q_OBJECT +public: + MainWindow(QWidget *parent = 0); + ~MainWindow(); + +protected: + void changeEvent(QEvent *e); + +private: + Ui::MainWindow *ui; + HomeView* Ptr2HomeView; +}; + +#endif // MAINWINDOW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/mainwindow.ui Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>600</width> + <height>400</height> + </rect> + </property> + <property name="windowTitle"> + <string>MainWindow</string> + </property> + <widget class="QWidget" name="centralWidget"> + <widget class="QTextEdit" name="textEdit"> + <property name="geometry"> + <rect> + <x>40</x> + <y>50</y> + <width>104</width> + <height>64</height> + </rect> + </property> + </widget> + </widget> + <widget class="QMenuBar" name="menuBar"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>600</width> + <height>21</height> + </rect> + </property> + </widget> + <widget class="QToolBar" name="mainToolBar"> + <attribute name="toolBarArea"> + <enum>TopToolBarArea</enum> + </attribute> + <attribute name="toolBarBreak"> + <bool>false</bool> + </attribute> + </widget> + <widget class="QStatusBar" name="statusBar"/> + </widget> + <layoutdefault spacing="6" margin="11"/> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/object_script.DemoGUI.Debug Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,13 @@ +INPUT( +./debug\main.o +./debug\mainwindow.o +./debug\CustomListWidget.o +./debug\HomeView.o +./debug\GridView.o +./debug\ToolBar.o +./debug\Documents.o +./debug\and.o +./debug\My.o +./debug\GridView.o +./debug\moc_mainwindow.o +);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/object_script.DemoGUI.Release Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,13 @@ +INPUT( +./release\main.o +./release\mainwindow.o +./release\CustomListWidget.o +./release\HomeView.o +./release\GridView.o +./release\ToolBar.o +./release\Documents.o +./release\and.o +./release\My.o +./release\GridView.o +./release\moc_mainwindow.o +);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/release/.svn/all-wcprops Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 124 +/svn/symbian/!svn/ver/414/products/s-series/engg/symbian/s60-app-dev/SocialMobileFrameWork/MissingCodeForSmf/DemoGUI/release +END
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/release/.svn/entries Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,28 @@ +10 + +dir +415 +http://svnz02/svn/symbian/products/s-series/engg/symbian/s60-app-dev/SocialMobileFrameWork/MissingCodeForSmf/DemoGUI/release +http://svnz02/svn/symbian + + + +2010-07-30T12:20:29.303136Z +414 +nalinah + + + + + + + + + + + + + + +ddc49ed9-7720-479e-b42b-43a572c34f33 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/sasken_logo.svg Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,1501 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg width="44" height="34"> + <circle cx="0" cy="0" r="1" fill="white"/> + <circle cx="1" cy="0" r="1" fill="white"/> + <circle cx="2" cy="0" r="1" fill="white"/> + <circle cx="3" cy="0" r="1" fill="white"/> + <circle cx="4" cy="0" r="1" fill="white"/> + <circle cx="5" cy="0" r="1" fill="white"/> + <circle cx="6" cy="0" r="1" fill="white"/> + <circle cx="7" cy="0" r="1" fill="white"/> + <circle cx="8" cy="0" r="1" fill="white"/> + <circle cx="9" cy="0" r="1" fill="white"/> + <circle cx="10" cy="0" r="1" fill="white"/> + <circle cx="11" cy="0" r="1" fill="white"/> + <circle cx="12" cy="0" r="1" fill="white"/> + <circle cx="13" cy="0" r="1" fill="white"/> + <circle cx="14" cy="0" r="1" fill="white"/> + <circle cx="15" cy="0" r="1" fill="white"/> + <circle cx="16" cy="0" r="1" fill="rgb(254,255,253)"/> + <circle cx="17" cy="0" r="1" fill="rgb(254,255,253)"/> + <circle cx="18" cy="0" r="1" fill="rgb(254,255,253)"/> + <circle cx="19" cy="0" r="1" fill="rgb(254,255,253)"/> + <circle cx="20" cy="0" r="1" fill="rgb(255,255,253)"/> + <circle cx="21" cy="0" r="1" fill="white"/> + <circle cx="22" cy="0" r="1" fill="white"/> + <circle cx="23" cy="0" r="1" fill="white"/> + <circle cx="24" cy="0" r="1" fill="white"/> + <circle cx="25" cy="0" r="1" fill="rgb(255,254,255)"/> + <circle cx="26" cy="0" r="1" fill="rgb(254,255,255)"/> + <circle cx="27" cy="0" r="1" fill="rgb(254,255,255)"/> + <circle cx="28" cy="0" r="1" fill="rgb(252,255,255)"/> + <circle cx="29" cy="0" r="1" fill="rgb(252,255,255)"/> + <circle cx="30" cy="0" r="1" fill="rgb(251,255,255)"/> + <circle cx="31" cy="0" r="1" fill="rgb(251,255,255)"/> + <circle cx="32" cy="0" r="1" fill="white"/> + <circle cx="33" cy="0" r="1" fill="white"/> + <circle cx="34" cy="0" r="1" fill="white"/> + <circle cx="35" cy="0" r="1" fill="white"/> + <circle cx="36" cy="0" r="1" fill="white"/> + <circle cx="37" cy="0" r="1" fill="white"/> + <circle cx="38" cy="0" r="1" fill="white"/> + <circle cx="39" cy="0" r="1" fill="white"/> + <circle cx="40" cy="0" r="1" fill="white"/> + <circle cx="41" cy="0" r="1" fill="white"/> + <circle cx="42" cy="0" r="1" fill="white"/> + <circle cx="43" cy="0" r="1" fill="white"/> + <circle cx="0" cy="1" r="1" fill="white"/> + <circle cx="1" cy="1" r="1" fill="white"/> + <circle cx="2" cy="1" r="1" fill="white"/> + <circle cx="3" cy="1" r="1" fill="white"/> + <circle cx="4" cy="1" r="1" fill="white"/> + <circle cx="5" cy="1" r="1" fill="white"/> + <circle cx="6" cy="1" r="1" fill="white"/> + <circle cx="7" cy="1" r="1" fill="white"/> + <circle cx="8" cy="1" r="1" fill="white"/> + <circle cx="9" cy="1" r="1" fill="white"/> + <circle cx="10" cy="1" r="1" fill="white"/> + <circle cx="11" cy="1" r="1" fill="white"/> + <circle cx="12" cy="1" r="1" fill="white"/> + <circle cx="13" cy="1" r="1" fill="white"/> + <circle cx="14" cy="1" r="1" fill="white"/> + <circle cx="15" cy="1" r="1" fill="white"/> + <circle cx="16" cy="1" r="1" fill="rgb(254,255,253)"/> + <circle cx="17" cy="1" r="1" fill="rgb(254,255,253)"/> + <circle cx="18" cy="1" r="1" fill="rgb(254,255,253)"/> + <circle cx="19" cy="1" r="1" fill="rgb(254,255,253)"/> + <circle cx="20" cy="1" r="1" fill="rgb(255,255,253)"/> + <circle cx="21" cy="1" r="1" fill="white"/> + <circle cx="22" cy="1" r="1" fill="white"/> + <circle cx="23" cy="1" r="1" fill="white"/> + <circle cx="24" cy="1" r="1" fill="rgb(254,254,255)"/> + <circle cx="25" cy="1" r="1" fill="rgb(254,254,255)"/> + <circle cx="26" cy="1" r="1" fill="rgb(254,253,255)"/> + <circle cx="27" cy="1" r="1" fill="rgb(253,254,255)"/> + <circle cx="28" cy="1" r="1" fill="rgb(253,254,255)"/> + <circle cx="29" cy="1" r="1" fill="rgb(251,254,255)"/> + <circle cx="30" cy="1" r="1" fill="rgb(251,254,255)"/> + <circle cx="31" cy="1" r="1" fill="rgb(251,254,255)"/> + <circle cx="32" cy="1" r="1" fill="white"/> + <circle cx="33" cy="1" r="1" fill="white"/> + <circle cx="34" cy="1" r="1" fill="white"/> + <circle cx="35" cy="1" r="1" fill="white"/> + <circle cx="36" cy="1" r="1" fill="white"/> + <circle cx="37" cy="1" r="1" fill="white"/> + <circle cx="38" cy="1" r="1" fill="white"/> + <circle cx="39" cy="1" r="1" fill="white"/> + <circle cx="40" cy="1" r="1" fill="white"/> + <circle cx="41" cy="1" r="1" fill="white"/> + <circle cx="42" cy="1" r="1" fill="white"/> + <circle cx="43" cy="1" r="1" fill="white"/> + <circle cx="0" cy="2" r="1" fill="white"/> + <circle cx="1" cy="2" r="1" fill="white"/> + <circle cx="2" cy="2" r="1" fill="white"/> + <circle cx="3" cy="2" r="1" fill="white"/> + <circle cx="4" cy="2" r="1" fill="white"/> + <circle cx="5" cy="2" r="1" fill="white"/> + <circle cx="6" cy="2" r="1" fill="white"/> + <circle cx="7" cy="2" r="1" fill="white"/> + <circle cx="8" cy="2" r="1" fill="white"/> + <circle cx="9" cy="2" r="1" fill="white"/> + <circle cx="10" cy="2" r="1" fill="white"/> + <circle cx="11" cy="2" r="1" fill="white"/> + <circle cx="12" cy="2" r="1" fill="white"/> + <circle cx="13" cy="2" r="1" fill="white"/> + <circle cx="14" cy="2" r="1" fill="white"/> + <circle cx="15" cy="2" r="1" fill="white"/> + <circle cx="16" cy="2" r="1" fill="rgb(254,255,253)"/> + <circle cx="17" cy="2" r="1" fill="rgb(254,255,253)"/> + <circle cx="18" cy="2" r="1" fill="rgb(254,255,253)"/> + <circle cx="19" cy="2" r="1" fill="rgb(254,255,253)"/> + <circle cx="20" cy="2" r="1" fill="rgb(255,255,253)"/> + <circle cx="21" cy="2" r="1" fill="white"/> + <circle cx="22" cy="2" r="1" fill="white"/> + <circle cx="23" cy="2" r="1" fill="white"/> + <circle cx="24" cy="2" r="1" fill="rgb(254,254,255)"/> + <circle cx="25" cy="2" r="1" fill="rgb(254,254,255)"/> + <circle cx="26" cy="2" r="1" fill="rgb(254,254,255)"/> + <circle cx="27" cy="2" r="1" fill="rgb(254,253,255)"/> + <circle cx="28" cy="2" r="1" fill="rgb(253,254,255)"/> + <circle cx="29" cy="2" r="1" fill="rgb(253,254,255)"/> + <circle cx="30" cy="2" r="1" fill="rgb(253,254,255)"/> + <circle cx="31" cy="2" r="1" fill="rgb(253,254,255)"/> + <circle cx="32" cy="2" r="1" fill="white"/> + <circle cx="33" cy="2" r="1" fill="white"/> + <circle cx="34" cy="2" r="1" fill="white"/> + <circle cx="35" cy="2" r="1" fill="white"/> + <circle cx="36" cy="2" r="1" fill="white"/> + <circle cx="37" cy="2" r="1" fill="white"/> + <circle cx="38" cy="2" r="1" fill="white"/> + <circle cx="39" cy="2" r="1" fill="white"/> + <circle cx="40" cy="2" r="1" fill="white"/> + <circle cx="41" cy="2" r="1" fill="white"/> + <circle cx="42" cy="2" r="1" fill="white"/> + <circle cx="43" cy="2" r="1" fill="white"/> + <circle cx="0" cy="3" r="1" fill="white"/> + <circle cx="1" cy="3" r="1" fill="white"/> + <circle cx="2" cy="3" r="1" fill="white"/> + <circle cx="3" cy="3" r="1" fill="white"/> + <circle cx="4" cy="3" r="1" fill="white"/> + <circle cx="5" cy="3" r="1" fill="white"/> + <circle cx="6" cy="3" r="1" fill="white"/> + <circle cx="7" cy="3" r="1" fill="white"/> + <circle cx="8" cy="3" r="1" fill="white"/> + <circle cx="9" cy="3" r="1" fill="white"/> + <circle cx="10" cy="3" r="1" fill="white"/> + <circle cx="11" cy="3" r="1" fill="white"/> + <circle cx="12" cy="3" r="1" fill="white"/> + <circle cx="13" cy="3" r="1" fill="white"/> + <circle cx="14" cy="3" r="1" fill="white"/> + <circle cx="15" cy="3" r="1" fill="white"/> + <circle cx="16" cy="3" r="1" fill="rgb(254,255,253)"/> + <circle cx="17" cy="3" r="1" fill="rgb(254,255,253)"/> + <circle cx="18" cy="3" r="1" fill="rgb(254,255,253)"/> + <circle cx="19" cy="3" r="1" fill="rgb(254,255,253)"/> + <circle cx="20" cy="3" r="1" fill="white"/> + <circle cx="21" cy="3" r="1" fill="white"/> + <circle cx="22" cy="3" r="1" fill="white"/> + <circle cx="23" cy="3" r="1" fill="white"/> + <circle cx="24" cy="3" r="1" fill="white"/> + <circle cx="25" cy="3" r="1" fill="white"/> + <circle cx="26" cy="3" r="1" fill="white"/> + <circle cx="27" cy="3" r="1" fill="white"/> + <circle cx="28" cy="3" r="1" fill="white"/> + <circle cx="29" cy="3" r="1" fill="white"/> + <circle cx="30" cy="3" r="1" fill="white"/> + <circle cx="31" cy="3" r="1" fill="white"/> + <circle cx="32" cy="3" r="1" fill="white"/> + <circle cx="33" cy="3" r="1" fill="white"/> + <circle cx="34" cy="3" r="1" fill="white"/> + <circle cx="35" cy="3" r="1" fill="white"/> + <circle cx="36" cy="3" r="1" fill="white"/> + <circle cx="37" cy="3" r="1" fill="white"/> + <circle cx="38" cy="3" r="1" fill="white"/> + <circle cx="39" cy="3" r="1" fill="white"/> + <circle cx="40" cy="3" r="1" fill="white"/> + <circle cx="41" cy="3" r="1" fill="white"/> + <circle cx="42" cy="3" r="1" fill="white"/> + <circle cx="43" cy="3" r="1" fill="white"/> + <circle cx="0" cy="4" r="1" fill="white"/> + <circle cx="1" cy="4" r="1" fill="white"/> + <circle cx="2" cy="4" r="1" fill="white"/> + <circle cx="3" cy="4" r="1" fill="white"/> + <circle cx="4" cy="4" r="1" fill="white"/> + <circle cx="5" cy="4" r="1" fill="white"/> + <circle cx="6" cy="4" r="1" fill="white"/> + <circle cx="7" cy="4" r="1" fill="white"/> + <circle cx="8" cy="4" r="1" fill="white"/> + <circle cx="9" cy="4" r="1" fill="white"/> + <circle cx="10" cy="4" r="1" fill="white"/> + <circle cx="11" cy="4" r="1" fill="white"/> + <circle cx="12" cy="4" r="1" fill="white"/> + <circle cx="13" cy="4" r="1" fill="white"/> + <circle cx="14" cy="4" r="1" fill="white"/> + <circle cx="15" cy="4" r="1" fill="white"/> + <circle cx="16" cy="4" r="1" fill="rgb(254,255,253)"/> + <circle cx="17" cy="4" r="1" fill="rgb(254,255,253)"/> + <circle cx="18" cy="4" r="1" fill="rgb(254,255,255)"/> + <circle cx="19" cy="4" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="4" r="1" fill="rgb(254,255,255)"/> + <circle cx="21" cy="4" r="1" fill="white"/> + <circle cx="22" cy="4" r="1" fill="white"/> + <circle cx="23" cy="4" r="1" fill="white"/> + <circle cx="24" cy="4" r="1" fill="white"/> + <circle cx="25" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="26" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="27" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="28" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="29" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="30" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="31" cy="4" r="1" fill="rgb(255,254,255)"/> + <circle cx="32" cy="4" r="1" fill="white"/> + <circle cx="33" cy="4" r="1" fill="white"/> + <circle cx="34" cy="4" r="1" fill="white"/> + <circle cx="35" cy="4" r="1" fill="white"/> + <circle cx="36" cy="4" r="1" fill="white"/> + <circle cx="37" cy="4" r="1" fill="white"/> + <circle cx="38" cy="4" r="1" fill="white"/> + <circle cx="39" cy="4" r="1" fill="white"/> + <circle cx="40" cy="4" r="1" fill="white"/> + <circle cx="41" cy="4" r="1" fill="white"/> + <circle cx="42" cy="4" r="1" fill="white"/> + <circle cx="43" cy="4" r="1" fill="white"/> + <circle cx="0" cy="5" r="1" fill="white"/> + <circle cx="1" cy="5" r="1" fill="white"/> + <circle cx="2" cy="5" r="1" fill="white"/> + <circle cx="3" cy="5" r="1" fill="white"/> + <circle cx="4" cy="5" r="1" fill="white"/> + <circle cx="5" cy="5" r="1" fill="white"/> + <circle cx="6" cy="5" r="1" fill="white"/> + <circle cx="7" cy="5" r="1" fill="white"/> + <circle cx="8" cy="5" r="1" fill="white"/> + <circle cx="9" cy="5" r="1" fill="white"/> + <circle cx="10" cy="5" r="1" fill="white"/> + <circle cx="11" cy="5" r="1" fill="white"/> + <circle cx="12" cy="5" r="1" fill="white"/> + <circle cx="13" cy="5" r="1" fill="white"/> + <circle cx="14" cy="5" r="1" fill="white"/> + <circle cx="15" cy="5" r="1" fill="white"/> + <circle cx="16" cy="5" r="1" fill="rgb(254,255,255)"/> + <circle cx="17" cy="5" r="1" fill="rgb(254,255,255)"/> + <circle cx="18" cy="5" r="1" fill="rgb(254,255,255)"/> + <circle cx="19" cy="5" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="5" r="1" fill="rgb(254,255,255)"/> + <circle cx="21" cy="5" r="1" fill="rgb(254,255,255)"/> + <circle cx="22" cy="5" r="1" fill="rgb(255,255,253)"/> + <circle cx="23" cy="5" r="1" fill="rgb(255,255,253)"/> + <circle cx="24" cy="5" r="1" fill="rgb(255,255,253)"/> + <circle cx="25" cy="5" r="1" fill="rgb(255,255,253)"/> + <circle cx="26" cy="5" r="1" fill="rgb(255,255,253)"/> + <circle cx="27" cy="5" r="1" fill="rgb(255,254,253)"/> + <circle cx="28" cy="5" r="1" fill="rgb(255,253,253)"/> + <circle cx="29" cy="5" r="1" fill="rgb(255,253,253)"/> + <circle cx="30" cy="5" r="1" fill="rgb(255,253,253)"/> + <circle cx="31" cy="5" r="1" fill="rgb(255,253,253)"/> + <circle cx="32" cy="5" r="1" fill="white"/> + <circle cx="33" cy="5" r="1" fill="white"/> + <circle cx="34" cy="5" r="1" fill="white"/> + <circle cx="35" cy="5" r="1" fill="white"/> + <circle cx="36" cy="5" r="1" fill="white"/> + <circle cx="37" cy="5" r="1" fill="white"/> + <circle cx="38" cy="5" r="1" fill="white"/> + <circle cx="39" cy="5" r="1" fill="white"/> + <circle cx="40" cy="5" r="1" fill="white"/> + <circle cx="41" cy="5" r="1" fill="white"/> + <circle cx="42" cy="5" r="1" fill="white"/> + <circle cx="43" cy="5" r="1" fill="white"/> + <circle cx="0" cy="6" r="1" fill="white"/> + <circle cx="1" cy="6" r="1" fill="white"/> + <circle cx="2" cy="6" r="1" fill="white"/> + <circle cx="3" cy="6" r="1" fill="white"/> + <circle cx="4" cy="6" r="1" fill="white"/> + <circle cx="5" cy="6" r="1" fill="white"/> + <circle cx="6" cy="6" r="1" fill="white"/> + <circle cx="7" cy="6" r="1" fill="white"/> + <circle cx="8" cy="6" r="1" fill="white"/> + <circle cx="9" cy="6" r="1" fill="white"/> + <circle cx="10" cy="6" r="1" fill="white"/> + <circle cx="11" cy="6" r="1" fill="white"/> + <circle cx="12" cy="6" r="1" fill="white"/> + <circle cx="13" cy="6" r="1" fill="white"/> + <circle cx="14" cy="6" r="1" fill="white"/> + <circle cx="15" cy="6" r="1" fill="white"/> + <circle cx="16" cy="6" r="1" fill="rgb(254,255,255)"/> + <circle cx="17" cy="6" r="1" fill="rgb(254,255,255)"/> + <circle cx="18" cy="6" r="1" fill="rgb(254,255,255)"/> + <circle cx="19" cy="6" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="6" r="1" fill="rgb(254,255,255)"/> + <circle cx="21" cy="6" r="1" fill="rgb(254,255,253)"/> + <circle cx="22" cy="6" r="1" fill="rgb(254,255,253)"/> + <circle cx="23" cy="6" r="1" fill="rgb(255,255,253)"/> + <circle cx="24" cy="6" r="1" fill="rgb(253,253,251)"/> + <circle cx="25" cy="6" r="1" fill="rgb(254,253,249)"/> + <circle cx="26" cy="6" r="1" fill="rgb(255,252,249)"/> + <circle cx="27" cy="6" r="1" fill="rgb(255,252,249)"/> + <circle cx="28" cy="6" r="1" fill="rgb(255,251,248)"/> + <circle cx="29" cy="6" r="1" fill="rgb(255,250,248)"/> + <circle cx="30" cy="6" r="1" fill="rgb(255,250,248)"/> + <circle cx="31" cy="6" r="1" fill="rgb(255,250,248)"/> + <circle cx="32" cy="6" r="1" fill="white"/> + <circle cx="33" cy="6" r="1" fill="white"/> + <circle cx="34" cy="6" r="1" fill="white"/> + <circle cx="35" cy="6" r="1" fill="white"/> + <circle cx="36" cy="6" r="1" fill="white"/> + <circle cx="37" cy="6" r="1" fill="white"/> + <circle cx="38" cy="6" r="1" fill="white"/> + <circle cx="39" cy="6" r="1" fill="white"/> + <circle cx="40" cy="6" r="1" fill="white"/> + <circle cx="41" cy="6" r="1" fill="white"/> + <circle cx="42" cy="6" r="1" fill="white"/> + <circle cx="43" cy="6" r="1" fill="white"/> + <circle cx="0" cy="7" r="1" fill="white"/> + <circle cx="1" cy="7" r="1" fill="white"/> + <circle cx="2" cy="7" r="1" fill="white"/> + <circle cx="3" cy="7" r="1" fill="white"/> + <circle cx="4" cy="7" r="1" fill="white"/> + <circle cx="5" cy="7" r="1" fill="white"/> + <circle cx="6" cy="7" r="1" fill="white"/> + <circle cx="7" cy="7" r="1" fill="white"/> + <circle cx="8" cy="7" r="1" fill="white"/> + <circle cx="9" cy="7" r="1" fill="white"/> + <circle cx="10" cy="7" r="1" fill="white"/> + <circle cx="11" cy="7" r="1" fill="white"/> + <circle cx="12" cy="7" r="1" fill="white"/> + <circle cx="13" cy="7" r="1" fill="white"/> + <circle cx="14" cy="7" r="1" fill="white"/> + <circle cx="15" cy="7" r="1" fill="white"/> + <circle cx="16" cy="7" r="1" fill="rgb(254,255,255)"/> + <circle cx="17" cy="7" r="1" fill="rgb(254,255,255)"/> + <circle cx="18" cy="7" r="1" fill="rgb(254,255,255)"/> + <circle cx="19" cy="7" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="7" r="1" fill="rgb(254,255,255)"/> + <circle cx="21" cy="7" r="1" fill="rgb(254,255,253)"/> + <circle cx="22" cy="7" r="1" fill="rgb(254,255,253)"/> + <circle cx="23" cy="7" r="1" fill="rgb(255,255,251)"/> + <circle cx="24" cy="7" r="1" fill="rgb(252,251,247)"/> + <circle cx="25" cy="7" r="1" fill="rgb(254,251,246)"/> + <circle cx="26" cy="7" r="1" fill="rgb(255,250,246)"/> + <circle cx="27" cy="7" r="1" fill="rgb(255,250,244)"/> + <circle cx="28" cy="7" r="1" fill="rgb(255,248,244)"/> + <circle cx="29" cy="7" r="1" fill="rgb(255,247,244)"/> + <circle cx="30" cy="7" r="1" fill="rgb(255,247,244)"/> + <circle cx="31" cy="7" r="1" fill="rgb(255,247,242)"/> + <circle cx="32" cy="7" r="1" fill="white"/> + <circle cx="33" cy="7" r="1" fill="white"/> + <circle cx="34" cy="7" r="1" fill="white"/> + <circle cx="35" cy="7" r="1" fill="white"/> + <circle cx="36" cy="7" r="1" fill="white"/> + <circle cx="37" cy="7" r="1" fill="white"/> + <circle cx="38" cy="7" r="1" fill="white"/> + <circle cx="39" cy="7" r="1" fill="white"/> + <circle cx="40" cy="7" r="1" fill="white"/> + <circle cx="41" cy="7" r="1" fill="white"/> + <circle cx="42" cy="7" r="1" fill="white"/> + <circle cx="43" cy="7" r="1" fill="white"/> + <circle cx="0" cy="8" r="1" fill="white"/> + <circle cx="1" cy="8" r="1" fill="white"/> + <circle cx="2" cy="8" r="1" fill="white"/> + <circle cx="3" cy="8" r="1" fill="white"/> + <circle cx="4" cy="8" r="1" fill="white"/> + <circle cx="5" cy="8" r="1" fill="white"/> + <circle cx="6" cy="8" r="1" fill="white"/> + <circle cx="7" cy="8" r="1" fill="white"/> + <circle cx="8" cy="8" r="1" fill="white"/> + <circle cx="9" cy="8" r="1" fill="white"/> + <circle cx="10" cy="8" r="1" fill="white"/> + <circle cx="11" cy="8" r="1" fill="white"/> + <circle cx="12" cy="8" r="1" fill="white"/> + <circle cx="13" cy="8" r="1" fill="white"/> + <circle cx="14" cy="8" r="1" fill="white"/> + <circle cx="15" cy="8" r="1" fill="white"/> + <circle cx="16" cy="8" r="1" fill="white"/> + <circle cx="17" cy="8" r="1" fill="white"/> + <circle cx="18" cy="8" r="1" fill="rgb(254,255,255)"/> + <circle cx="19" cy="8" r="1" fill="rgb(253,255,254)"/> + <circle cx="20" cy="8" r="1" fill="rgb(252,254,253)"/> + <circle cx="21" cy="8" r="1" fill="rgb(253,255,252)"/> + <circle cx="22" cy="8" r="1" fill="rgb(254,255,253)"/> + <circle cx="23" cy="8" r="1" fill="rgb(255,255,251)"/> + <circle cx="24" cy="8" r="1" fill="rgb(253,252,247)"/> + <circle cx="25" cy="8" r="1" fill="rgb(255,255,248)"/> + <circle cx="26" cy="8" r="1" fill="rgb(248,241,235)"/> + <circle cx="27" cy="8" r="1" fill="rgb(255,251,244)"/> + <circle cx="28" cy="8" r="1" fill="rgb(183,170,164)"/> + <circle cx="29" cy="8" r="1" fill="rgb(152,135,128)"/> + <circle cx="30" cy="8" r="1" fill="rgb(160,141,135)"/> + <circle cx="31" cy="8" r="1" fill="rgb(196,177,171)"/> + <circle cx="32" cy="8" r="1" fill="rgb(251,251,251)"/> + <circle cx="33" cy="8" r="1" fill="white"/> + <circle cx="34" cy="8" r="1" fill="white"/> + <circle cx="35" cy="8" r="1" fill="white"/> + <circle cx="36" cy="8" r="1" fill="grey98"/> + <circle cx="37" cy="8" r="1" fill="rgb(253,253,253)"/> + <circle cx="38" cy="8" r="1" fill="white"/> + <circle cx="39" cy="8" r="1" fill="rgb(251,251,251)"/> + <circle cx="40" cy="8" r="1" fill="rgb(254,254,254)"/> + <circle cx="41" cy="8" r="1" fill="rgb(254,254,254)"/> + <circle cx="42" cy="8" r="1" fill="rgb(254,254,254)"/> + <circle cx="43" cy="8" r="1" fill="rgb(254,254,254)"/> + <circle cx="0" cy="9" r="1" fill="white"/> + <circle cx="1" cy="9" r="1" fill="white"/> + <circle cx="2" cy="9" r="1" fill="white"/> + <circle cx="3" cy="9" r="1" fill="white"/> + <circle cx="4" cy="9" r="1" fill="white"/> + <circle cx="5" cy="9" r="1" fill="white"/> + <circle cx="6" cy="9" r="1" fill="white"/> + <circle cx="7" cy="9" r="1" fill="white"/> + <circle cx="8" cy="9" r="1" fill="white"/> + <circle cx="9" cy="9" r="1" fill="white"/> + <circle cx="10" cy="9" r="1" fill="white"/> + <circle cx="11" cy="9" r="1" fill="white"/> + <circle cx="12" cy="9" r="1" fill="white"/> + <circle cx="13" cy="9" r="1" fill="white"/> + <circle cx="14" cy="9" r="1" fill="white"/> + <circle cx="15" cy="9" r="1" fill="white"/> + <circle cx="16" cy="9" r="1" fill="rgb(251,250,255)"/> + <circle cx="17" cy="9" r="1" fill="rgb(252,252,254)"/> + <circle cx="18" cy="9" r="1" fill="rgb(253,254,255)"/> + <circle cx="19" cy="9" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="9" r="1" fill="rgb(254,255,255)"/> + <circle cx="21" cy="9" r="1" fill="rgb(252,255,253)"/> + <circle cx="22" cy="9" r="1" fill="rgb(254,255,251)"/> + <circle cx="23" cy="9" r="1" fill="rgb(255,255,250)"/> + <circle cx="24" cy="9" r="1" fill="rgb(255,255,248)"/> + <circle cx="25" cy="9" r="1" fill="rgb(255,255,246)"/> + <circle cx="26" cy="9" r="1" fill="rgb(250,243,235)"/> + <circle cx="27" cy="9" r="1" fill="rgb(174,161,153)"/> + <circle cx="28" cy="9" r="1" fill="rgb(220,203,195)"/> + <circle cx="29" cy="9" r="1" fill="rgb(255,250,243)"/> + <circle cx="30" cy="9" r="1" fill="rgb(255,249,241)"/> + <circle cx="31" cy="9" r="1" fill="rgb(190,165,158)"/> + <circle cx="32" cy="9" r="1" fill="rgb(238,238,238)"/> + <circle cx="33" cy="9" r="1" fill="rgb(243,243,243)"/> + <circle cx="34" cy="9" r="1" fill="grey94"/> + <circle cx="35" cy="9" r="1" fill="white"/> + <circle cx="36" cy="9" r="1" fill="white"/> + <circle cx="37" cy="9" r="1" fill="white"/> + <circle cx="38" cy="9" r="1" fill="white"/> + <circle cx="39" cy="9" r="1" fill="rgb(251,251,251)"/> + <circle cx="40" cy="9" r="1" fill="rgb(254,254,254)"/> + <circle cx="41" cy="9" r="1" fill="rgb(254,254,254)"/> + <circle cx="42" cy="9" r="1" fill="rgb(254,254,254)"/> + <circle cx="43" cy="9" r="1" fill="rgb(254,254,254)"/> + <circle cx="0" cy="10" r="1" fill="white"/> + <circle cx="1" cy="10" r="1" fill="white"/> + <circle cx="2" cy="10" r="1" fill="white"/> + <circle cx="3" cy="10" r="1" fill="white"/> + <circle cx="4" cy="10" r="1" fill="white"/> + <circle cx="5" cy="10" r="1" fill="white"/> + <circle cx="6" cy="10" r="1" fill="white"/> + <circle cx="7" cy="10" r="1" fill="white"/> + <circle cx="8" cy="10" r="1" fill="white"/> + <circle cx="9" cy="10" r="1" fill="white"/> + <circle cx="10" cy="10" r="1" fill="white"/> + <circle cx="11" cy="10" r="1" fill="white"/> + <circle cx="12" cy="10" r="1" fill="white"/> + <circle cx="13" cy="10" r="1" fill="white"/> + <circle cx="14" cy="10" r="1" fill="white"/> + <circle cx="15" cy="10" r="1" fill="white"/> + <circle cx="16" cy="10" r="1" fill="rgb(251,250,255)"/> + <circle cx="17" cy="10" r="1" fill="rgb(252,251,255)"/> + <circle cx="18" cy="10" r="1" fill="rgb(253,254,255)"/> + <circle cx="19" cy="10" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="10" r="1" fill="rgb(252,255,255)"/> + <circle cx="21" cy="10" r="1" fill="rgb(252,255,253)"/> + <circle cx="22" cy="10" r="1" fill="rgb(253,255,250)"/> + <circle cx="23" cy="10" r="1" fill="rgb(252,255,248)"/> + <circle cx="24" cy="10" r="1" fill="rgb(251,251,243)"/> + <circle cx="25" cy="10" r="1" fill="rgb(255,253,244)"/> + <circle cx="26" cy="10" r="1" fill="rgb(255,250,241)"/> + <circle cx="27" cy="10" r="1" fill="rgb(156,142,133)"/> + <circle cx="28" cy="10" r="1" fill="rgb(255,251,241)"/> + <circle cx="29" cy="10" r="1" fill="rgb(255,240,229)"/> + <circle cx="30" cy="10" r="1" fill="rgb(255,237,228)"/> + <circle cx="31" cy="10" r="1" fill="rgb(255,228,217)"/> + <circle cx="32" cy="10" r="1" fill="rgb(254,254,254)"/> + <circle cx="33" cy="10" r="1" fill="white"/> + <circle cx="34" cy="10" r="1" fill="rgb(254,254,254)"/> + <circle cx="35" cy="10" r="1" fill="grey98"/> + <circle cx="36" cy="10" r="1" fill="rgb(254,254,254)"/> + <circle cx="37" cy="10" r="1" fill="rgb(243,243,243)"/> + <circle cx="38" cy="10" r="1" fill="rgb(249,249,249)"/> + <circle cx="39" cy="10" r="1" fill="white"/> + <circle cx="40" cy="10" r="1" fill="white"/> + <circle cx="41" cy="10" r="1" fill="white"/> + <circle cx="42" cy="10" r="1" fill="white"/> + <circle cx="43" cy="10" r="1" fill="white"/> + <circle cx="0" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="1" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="2" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="3" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="4" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="5" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="6" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="7" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="8" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="9" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="10" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="11" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="12" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="13" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="14" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="15" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="16" cy="11" r="1" fill="rgb(255,254,255)"/> + <circle cx="17" cy="11" r="1" fill="rgb(255,254,255)"/> + <circle cx="18" cy="11" r="1" fill="rgb(253,254,255)"/> + <circle cx="19" cy="11" r="1" fill="rgb(253,254,255)"/> + <circle cx="20" cy="11" r="1" fill="rgb(251,255,254)"/> + <circle cx="21" cy="11" r="1" fill="rgb(251,255,252)"/> + <circle cx="22" cy="11" r="1" fill="rgb(249,254,248)"/> + <circle cx="23" cy="11" r="1" fill="rgb(250,253,244)"/> + <circle cx="24" cy="11" r="1" fill="rgb(255,255,246)"/> + <circle cx="25" cy="11" r="1" fill="rgb(242,238,227)"/> + <circle cx="26" cy="11" r="1" fill="rgb(206,196,186)"/> + <circle cx="27" cy="11" r="1" fill="rgb(153,137,124)"/> + <circle cx="28" cy="11" r="1" fill="rgb(179,159,148)"/> + <circle cx="29" cy="11" r="1" fill="rgb(255,233,222)"/> + <circle cx="30" cy="11" r="1" fill="rgb(255,247,236)"/> + <circle cx="31" cy="11" r="1" fill="rgb(255,246,235)"/> + <circle cx="32" cy="11" r="1" fill="grey65"/> + <circle cx="33" cy="11" r="1" fill="rgb(243,243,243)"/> + <circle cx="34" cy="11" r="1" fill="white"/> + <circle cx="35" cy="11" r="1" fill="grey98"/> + <circle cx="36" cy="11" r="1" fill="rgb(254,254,254)"/> + <circle cx="37" cy="11" r="1" fill="grey98"/> + <circle cx="38" cy="11" r="1" fill="rgb(251,251,251)"/> + <circle cx="39" cy="11" r="1" fill="grey98"/> + <circle cx="40" cy="11" r="1" fill="white"/> + <circle cx="41" cy="11" r="1" fill="white"/> + <circle cx="42" cy="11" r="1" fill="white"/> + <circle cx="43" cy="11" r="1" fill="white"/> + <circle cx="0" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="1" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="2" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="3" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="4" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="5" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="6" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="7" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="8" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="9" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="10" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="11" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="12" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="13" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="14" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="15" cy="12" r="1" fill="rgb(254,254,254)"/> + <circle cx="16" cy="12" r="1" fill="rgb(255,254,255)"/> + <circle cx="17" cy="12" r="1" fill="rgb(255,254,255)"/> + <circle cx="18" cy="12" r="1" fill="rgb(251,252,255)"/> + <circle cx="19" cy="12" r="1" fill="rgb(250,251,253)"/> + <circle cx="20" cy="12" r="1" fill="rgb(250,254,253)"/> + <circle cx="21" cy="12" r="1" fill="rgb(252,255,253)"/> + <circle cx="22" cy="12" r="1" fill="rgb(252,255,250)"/> + <circle cx="23" cy="12" r="1" fill="rgb(253,255,247)"/> + <circle cx="24" cy="12" r="1" fill="rgb(255,255,246)"/> + <circle cx="25" cy="12" r="1" fill="rgb(244,240,228)"/> + <circle cx="26" cy="12" r="1" fill="rgb(255,250,238)"/> + <circle cx="27" cy="12" r="1" fill="rgb(167,149,137)"/> + <circle cx="28" cy="12" r="1" fill="rgb(228,204,192)"/> + <circle cx="29" cy="12" r="1" fill="rgb(166,138,126)"/> + <circle cx="30" cy="12" r="1" fill="rgb(252,220,207)"/> + <circle cx="31" cy="12" r="1" fill="rgb(255,246,234)"/> + <circle cx="32" cy="12" r="1" fill="grey60"/> + <circle cx="33" cy="12" r="1" fill="rgb(233,233,233)"/> + <circle cx="34" cy="12" r="1" fill="white"/> + <circle cx="35" cy="12" r="1" fill="grey98"/> + <circle cx="36" cy="12" r="1" fill="white"/> + <circle cx="37" cy="12" r="1" fill="white"/> + <circle cx="38" cy="12" r="1" fill="white"/> + <circle cx="39" cy="12" r="1" fill="white"/> + <circle cx="40" cy="12" r="1" fill="white"/> + <circle cx="41" cy="12" r="1" fill="white"/> + <circle cx="42" cy="12" r="1" fill="white"/> + <circle cx="43" cy="12" r="1" fill="white"/> + <circle cx="0" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="1" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="2" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="3" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="4" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="5" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="6" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="7" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="8" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="9" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="10" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="11" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="12" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="13" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="14" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="15" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="16" cy="13" r="1" fill="rgb(255,254,255)"/> + <circle cx="17" cy="13" r="1" fill="rgb(252,251,255)"/> + <circle cx="18" cy="13" r="1" fill="rgb(248,249,253)"/> + <circle cx="19" cy="13" r="1" fill="rgb(249,250,252)"/> + <circle cx="20" cy="13" r="1" fill="rgb(251,255,254)"/> + <circle cx="21" cy="13" r="1" fill="rgb(252,255,253)"/> + <circle cx="22" cy="13" r="1" fill="rgb(252,255,250)"/> + <circle cx="23" cy="13" r="1" fill="rgb(254,255,248)"/> + <circle cx="24" cy="13" r="1" fill="rgb(215,215,203)"/> + <circle cx="25" cy="13" r="1" fill="rgb(219,213,201)"/> + <circle cx="26" cy="13" r="1" fill="rgb(247,235,221)"/> + <circle cx="27" cy="13" r="1" fill="rgb(247,229,215)"/> + <circle cx="28" cy="13" r="1" fill="rgb(177,154,140)"/> + <circle cx="29" cy="13" r="1" fill="rgb(202,173,159)"/> + <circle cx="30" cy="13" r="1" fill="rgb(190,157,142)"/> + <circle cx="31" cy="13" r="1" fill="rgb(159,121,108)"/> + <circle cx="32" cy="13" r="1" fill="grey95"/> + <circle cx="33" cy="13" r="1" fill="white"/> + <circle cx="34" cy="13" r="1" fill="grey99"/> + <circle cx="35" cy="13" r="1" fill="rgb(253,253,253)"/> + <circle cx="36" cy="13" r="1" fill="white"/> + <circle cx="37" cy="13" r="1" fill="rgb(248,248,248)"/> + <circle cx="38" cy="13" r="1" fill="rgb(251,251,251)"/> + <circle cx="39" cy="13" r="1" fill="white"/> + <circle cx="40" cy="13" r="1" fill="rgb(254,254,254)"/> + <circle cx="41" cy="13" r="1" fill="rgb(254,254,254)"/> + <circle cx="42" cy="13" r="1" fill="rgb(254,254,254)"/> + <circle cx="43" cy="13" r="1" fill="rgb(254,254,254)"/> + <circle cx="0" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="1" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="2" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="3" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="4" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="5" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="6" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="7" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="8" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="9" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="10" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="11" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="12" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="13" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="14" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="15" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="16" cy="14" r="1" fill="rgb(253,252,255)"/> + <circle cx="17" cy="14" r="1" fill="rgb(251,250,255)"/> + <circle cx="18" cy="14" r="1" fill="rgb(249,250,254)"/> + <circle cx="19" cy="14" r="1" fill="rgb(251,252,254)"/> + <circle cx="20" cy="14" r="1" fill="rgb(252,255,255)"/> + <circle cx="21" cy="14" r="1" fill="rgb(251,255,252)"/> + <circle cx="22" cy="14" r="1" fill="rgb(246,251,244)"/> + <circle cx="23" cy="14" r="1" fill="rgb(243,246,237)"/> + <circle cx="24" cy="14" r="1" fill="rgb(211,211,199)"/> + <circle cx="25" cy="14" r="1" fill="rgb(202,196,182)"/> + <circle cx="26" cy="14" r="1" fill="rgb(255,247,233)"/> + <circle cx="27" cy="14" r="1" fill="rgb(255,251,236)"/> + <circle cx="28" cy="14" r="1" fill="rgb(246,220,205)"/> + <circle cx="29" cy="14" r="1" fill="rgb(221,189,174)"/> + <circle cx="30" cy="14" r="1" fill="rgb(163,127,113)"/> + <circle cx="31" cy="14" r="1" fill="rgb(255,245,229)"/> + <circle cx="32" cy="14" r="1" fill="rgb(243,243,243)"/> + <circle cx="33" cy="14" r="1" fill="grey97"/> + <circle cx="34" cy="14" r="1" fill="rgb(243,243,243)"/> + <circle cx="35" cy="14" r="1" fill="white"/> + <circle cx="36" cy="14" r="1" fill="white"/> + <circle cx="37" cy="14" r="1" fill="grey98"/> + <circle cx="38" cy="14" r="1" fill="rgb(248,248,248)"/> + <circle cx="39" cy="14" r="1" fill="rgb(241,241,241)"/> + <circle cx="40" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="41" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="42" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="43" cy="14" r="1" fill="rgb(253,253,253)"/> + <circle cx="0" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="1" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="2" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="3" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="4" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="5" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="6" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="7" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="8" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="9" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="10" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="11" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="12" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="13" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="14" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="15" cy="15" r="1" fill="rgb(253,253,253)"/> + <circle cx="16" cy="15" r="1" fill="rgb(255,254,255)"/> + <circle cx="17" cy="15" r="1" fill="rgb(253,252,255)"/> + <circle cx="18" cy="15" r="1" fill="rgb(252,253,255)"/> + <circle cx="19" cy="15" r="1" fill="rgb(254,255,255)"/> + <circle cx="20" cy="15" r="1" fill="rgb(252,255,255)"/> + <circle cx="21" cy="15" r="1" fill="rgb(247,252,248)"/> + <circle cx="22" cy="15" r="1" fill="rgb(236,241,234)"/> + <circle cx="23" cy="15" r="1" fill="rgb(229,232,221)"/> + <circle cx="24" cy="15" r="1" fill="rgb(218,218,206)"/> + <circle cx="25" cy="15" r="1" fill="rgb(178,172,158)"/> + <circle cx="26" cy="15" r="1" fill="rgb(255,253,239)"/> + <circle cx="27" cy="15" r="1" fill="rgb(255,244,229)"/> + <circle cx="28" cy="15" r="1" fill="rgb(255,245,230)"/> + <circle cx="29" cy="15" r="1" fill="rgb(255,247,232)"/> + <circle cx="30" cy="15" r="1" fill="rgb(183,146,130)"/> + <circle cx="31" cy="15" r="1" fill="rgb(255,244,229)"/> + <circle cx="32" cy="15" r="1" fill="grey99"/> + <circle cx="33" cy="15" r="1" fill="white"/> + <circle cx="34" cy="15" r="1" fill="rgb(254,254,254)"/> + <circle cx="35" cy="15" r="1" fill="rgb(251,251,251)"/> + <circle cx="36" cy="15" r="1" fill="rgb(244,244,244)"/> + <circle cx="37" cy="15" r="1" fill="grey98"/> + <circle cx="38" cy="15" r="1" fill="white"/> + <circle cx="39" cy="15" r="1" fill="rgb(254,254,254)"/> + <circle cx="40" cy="15" r="1" fill="grey99"/> + <circle cx="41" cy="15" r="1" fill="grey99"/> + <circle cx="42" cy="15" r="1" fill="grey99"/> + <circle cx="43" cy="15" r="1" fill="grey99"/> + <circle cx="0" cy="16" r="1" fill="rgb(255,255,214)"/> + <circle cx="1" cy="16" r="1" fill="rgb(254,254,218)"/> + <circle cx="2" cy="16" r="1" fill="rgb(255,255,236)"/> + <circle cx="3" cy="16" r="1" fill="rgb(255,249,242)"/> + <circle cx="4" cy="16" r="1" fill="rgb(255,245,242)"/> + <circle cx="5" cy="16" r="1" fill="rgb(255,246,233)"/> + <circle cx="6" cy="16" r="1" fill="rgb(255,252,225)"/> + <circle cx="7" cy="16" r="1" fill="rgb(255,252,214)"/> + <circle cx="8" cy="16" r="1" fill="rgb(255,254,216)"/> + <circle cx="9" cy="16" r="1" fill="rgb(255,234,205)"/> + <circle cx="10" cy="16" r="1" fill="rgb(255,250,232)"/> + <circle cx="11" cy="16" r="1" fill="rgb(255,244,234)"/> + <circle cx="12" cy="16" r="1" fill="rgb(255,251,236)"/> + <circle cx="13" cy="16" r="1" fill="rgb(255,246,219)"/> + <circle cx="14" cy="16" r="1" fill="rgb(255,255,212)"/> + <circle cx="15" cy="16" r="1" fill="rgb(250,251,193)"/> + <circle cx="16" cy="16" r="1" fill="rgb(251,255,255)"/> + <circle cx="17" cy="16" r="1" fill="rgb(253,239,252)"/> + <circle cx="18" cy="16" r="1" fill="rgb(255,233,255)"/> + <circle cx="19" cy="16" r="1" fill="rgb(255,231,255)"/> + <circle cx="20" cy="16" r="1" fill="rgb(255,238,255)"/> + <circle cx="21" cy="16" r="1" fill="rgb(246,232,249)"/> + <circle cx="22" cy="16" r="1" fill="rgb(219,239,240)"/> + <circle cx="23" cy="16" r="1" fill="rgb(17,58,44)"/> + <circle cx="24" cy="16" r="1" fill="rgb(235,255,248)"/> + <circle cx="25" cy="16" r="1" fill="rgb(156,153,138)"/> + <circle cx="26" cy="16" r="1" fill="rgb(227,176,172)"/> + <circle cx="27" cy="16" r="1" fill="rgb(255,225,230)"/> + <circle cx="28" cy="16" r="1" fill="rgb(255,191,202)"/> + <circle cx="29" cy="16" r="1" fill="rgb(205,128,134)"/> + <circle cx="30" cy="16" r="1" fill="rgb(235,189,189)"/> + <circle cx="31" cy="16" r="1" fill="rgb(255,248,243)"/> + <circle cx="32" cy="16" r="1" fill="rgb(255,235,255)"/> + <circle cx="33" cy="16" r="1" fill="rgb(255,236,255)"/> + <circle cx="34" cy="16" r="1" fill="rgb(255,234,255)"/> + <circle cx="35" cy="16" r="1" fill="rgb(255,241,255)"/> + <circle cx="36" cy="16" r="1" fill="rgb(255,245,255)"/> + <circle cx="37" cy="16" r="1" fill="rgb(255,243,255)"/> + <circle cx="38" cy="16" r="1" fill="rgb(255,249,255)"/> + <circle cx="39" cy="16" r="1" fill="rgb(248,239,255)"/> + <circle cx="40" cy="16" r="1" fill="rgb(250,239,255)"/> + <circle cx="41" cy="16" r="1" fill="rgb(255,249,255)"/> + <circle cx="42" cy="16" r="1" fill="rgb(255,247,255)"/> + <circle cx="43" cy="16" r="1" fill="rgb(253,225,237)"/> + <circle cx="0" cy="17" r="1" fill="rgb(240,255,242)"/> + <circle cx="1" cy="17" r="1" fill="rgb(223,246,238)"/> + <circle cx="2" cy="17" r="1" fill="rgb(232,255,255)"/> + <circle cx="3" cy="17" r="1" fill="rgb(230,255,255)"/> + <circle cx="4" cy="17" r="1" fill="rgb(231,255,255)"/> + <circle cx="5" cy="17" r="1" fill="azure"/> + <circle cx="6" cy="17" r="1" fill="rgb(249,255,255)"/> + <circle cx="7" cy="17" r="1" fill="rgb(255,255,250)"/> + <circle cx="8" cy="17" r="1" fill="rgb(248,247,242)"/> + <circle cx="9" cy="17" r="1" fill="rgb(251,255,255)"/> + <circle cx="10" cy="17" r="1" fill="rgb(239,255,255)"/> + <circle cx="11" cy="17" r="1" fill="rgb(227,255,255)"/> + <circle cx="12" cy="17" r="1" fill="rgb(219,252,255)"/> + <circle cx="13" cy="17" r="1" fill="rgb(235,255,255)"/> + <circle cx="14" cy="17" r="1" fill="rgb(213,234,217)"/> + <circle cx="15" cy="17" r="1" fill="rgb(248,255,237)"/> + <circle cx="16" cy="17" r="1" fill="rgb(210,255,255)"/> + <circle cx="17" cy="17" r="1" fill="LightCyan"/> + <circle cx="18" cy="17" r="1" fill="rgb(244,255,255)"/> + <circle cx="19" cy="17" r="1" fill="rgb(255,250,255)"/> + <circle cx="20" cy="17" r="1" fill="rgb(252,247,255)"/> + <circle cx="21" cy="17" r="1" fill="rgb(237,253,255)"/> + <circle cx="22" cy="17" r="1" fill="rgb(167,211,212)"/> + <circle cx="23" cy="17" r="1" fill="rgb(36,98,85)"/> + <circle cx="24" cy="17" r="1" fill="rgb(191,244,226)"/> + <circle cx="25" cy="17" r="1" fill="rgb(234,255,240)"/> + <circle cx="26" cy="17" r="1" fill="rgb(187,168,162)"/> + <circle cx="27" cy="17" r="1" fill="rgb(190,144,146)"/> + <circle cx="28" cy="17" r="1" fill="rgb(203,157,159)"/> + <circle cx="29" cy="17" r="1" fill="rgb(223,202,199)"/> + <circle cx="30" cy="17" r="1" fill="rgb(247,255,250)"/> + <circle cx="31" cy="17" r="1" fill="rgb(229,255,250)"/> + <circle cx="32" cy="17" r="1" fill="rgb(254,254,255)"/> + <circle cx="33" cy="17" r="1" fill="rgb(245,247,255)"/> + <circle cx="34" cy="17" r="1" fill="rgb(249,255,255)"/> + <circle cx="35" cy="17" r="1" fill="rgb(237,249,255)"/> + <circle cx="36" cy="17" r="1" fill="rgb(229,247,255)"/> + <circle cx="37" cy="17" r="1" fill="rgb(235,255,255)"/> + <circle cx="38" cy="17" r="1" fill="rgb(227,255,255)"/> + <circle cx="39" cy="17" r="1" fill="rgb(233,255,255)"/> + <circle cx="40" cy="17" r="1" fill="rgb(228,255,255)"/> + <circle cx="41" cy="17" r="1" fill="rgb(226,251,255)"/> + <circle cx="42" cy="17" r="1" fill="rgb(241,255,255)"/> + <circle cx="43" cy="17" r="1" fill="rgb(247,255,255)"/> + <circle cx="0" cy="18" r="1" fill="rgb(223,250,255)"/> + <circle cx="1" cy="18" r="1" fill="rgb(221,255,255)"/> + <circle cx="2" cy="18" r="1" fill="rgb(105,176,204)"/> + <circle cx="3" cy="18" r="1" fill="rgb(87,176,210)"/> + <circle cx="4" cy="18" r="1" fill="rgb(96,185,219)"/> + <circle cx="5" cy="18" r="1" fill="rgb(101,167,201)"/> + <circle cx="6" cy="18" r="1" fill="rgb(196,233,255)"/> + <circle cx="7" cy="18" r="1" fill="azure"/> + <circle cx="8" cy="18" r="1" fill="azure"/> + <circle cx="9" cy="18" r="1" fill="rgb(181,218,245)"/> + <circle cx="10" cy="18" r="1" fill="rgb(95,162,191)"/> + <circle cx="11" cy="18" r="1" fill="rgb(108,195,225)"/> + <circle cx="12" cy="18" r="1" fill="rgb(98,188,215)"/> + <circle cx="13" cy="18" r="1" fill="rgb(172,244,255)"/> + <circle cx="14" cy="18" r="1" fill="rgb(221,255,255)"/> + <circle cx="15" cy="18" r="1" fill="rgb(223,250,255)"/> + <circle cx="16" cy="18" r="1" fill="rgb(88,217,197)"/> + <circle cx="17" cy="18" r="1" fill="rgb(93,199,189)"/> + <circle cx="18" cy="18" r="1" fill="rgb(106,177,183)"/> + <circle cx="19" cy="18" r="1" fill="rgb(118,161,180)"/> + <circle cx="20" cy="18" r="1" fill="rgb(149,184,206)"/> + <circle cx="21" cy="18" r="1" fill="rgb(220,255,255)"/> + <circle cx="22" cy="18" r="1" fill="rgb(171,240,245)"/> + <circle cx="23" cy="18" r="1" fill="rgb(0,81,75)"/> + <circle cx="24" cy="18" r="1" fill="rgb(205,255,255)"/> + <circle cx="25" cy="18" r="1" fill="rgb(223,255,255)"/> + <circle cx="26" cy="18" r="1" fill="rgb(235,251,248)"/> + <circle cx="27" cy="18" r="1" fill="rgb(180,178,181)"/> + <circle cx="28" cy="18" r="1" fill="rgb(232,238,238)"/> + <circle cx="29" cy="18" r="1" fill="rgb(228,255,255)"/> + <circle cx="30" cy="18" r="1" fill="rgb(199,255,255)"/> + <circle cx="31" cy="18" r="1" fill="rgb(127,235,211)"/> + <circle cx="32" cy="18" r="1" fill="rgb(110,159,166)"/> + <circle cx="33" cy="18" r="1" fill="rgb(132,182,189)"/> + <circle cx="34" cy="18" r="1" fill="rgb(133,188,193)"/> + <circle cx="35" cy="18" r="1" fill="rgb(204,255,255)"/> + <circle cx="36" cy="18" r="1" fill="rgb(210,255,255)"/> + <circle cx="37" cy="18" r="1" fill="rgb(140,208,209)"/> + <circle cx="38" cy="18" r="1" fill="rgb(159,229,229)"/> + <circle cx="39" cy="18" r="1" fill="rgb(180,250,250)"/> + <circle cx="40" cy="18" r="1" fill="rgb(130,198,197)"/> + <circle cx="41" cy="18" r="1" fill="rgb(106,172,170)"/> + <circle cx="42" cy="18" r="1" fill="rgb(162,222,220)"/> + <circle cx="43" cy="18" r="1" fill="rgb(215,255,255)"/> + <circle cx="0" cy="19" r="1" fill="rgb(237,255,255)"/> + <circle cx="1" cy="19" r="1" fill="rgb(86,130,157)"/> + <circle cx="2" cy="19" r="1" fill="rgb(27,102,134)"/> + <circle cx="3" cy="19" r="1" fill="rgb(38,136,171)"/> + <circle cx="4" cy="19" r="1" fill="rgb(40,138,175)"/> + <circle cx="5" cy="19" r="1" fill="rgb(25,103,139)"/> + <circle cx="6" cy="19" r="1" fill="rgb(49,95,129)"/> + <circle cx="7" cy="19" r="1" fill="rgb(227,252,255)"/> + <circle cx="8" cy="19" r="1" fill="rgb(227,252,255)"/> + <circle cx="9" cy="19" r="1" fill="rgb(158,207,239)"/> + <circle cx="10" cy="19" r="1" fill="rgb(50,129,162)"/> + <circle cx="11" cy="19" r="1" fill="rgb(38,141,174)"/> + <circle cx="12" cy="19" r="1" fill="rgb(7,107,139)"/> + <circle cx="13" cy="19" r="1" fill="rgb(3,82,112)"/> + <circle cx="14" cy="19" r="1" fill="rgb(217,255,255)"/> + <circle cx="15" cy="19" r="1" fill="rgb(203,230,251)"/> + <circle cx="16" cy="19" r="1" fill="rgb(0,118,109)"/> + <circle cx="17" cy="19" r="1" fill="rgb(31,149,149)"/> + <circle cx="18" cy="19" r="1" fill="rgb(51,134,150)"/> + <circle cx="19" cy="19" r="1" fill="rgb(63,118,148)"/> + <circle cx="20" cy="19" r="1" fill="rgb(39,85,118)"/> + <circle cx="21" cy="19" r="1" fill="rgb(126,183,212)"/> + <circle cx="22" cy="19" r="1" fill="rgb(175,250,255)"/> + <circle cx="23" cy="19" r="1" fill="rgb(7,94,103)"/> + <circle cx="24" cy="19" r="1" fill="rgb(182,255,255)"/> + <circle cx="25" cy="19" r="1" fill="rgb(216,255,255)"/> + <circle cx="26" cy="19" r="1" fill="rgb(103,131,142)"/> + <circle cx="27" cy="19" r="1" fill="rgb(55,69,82)"/> + <circle cx="28" cy="19" r="1" fill="rgb(206,230,242)"/> + <circle cx="29" cy="19" r="1" fill="rgb(207,255,255)"/> + <circle cx="30" cy="19" r="1" fill="rgb(117,213,209)"/> + <circle cx="31" cy="19" r="1" fill="rgb(0,108,97)"/> + <circle cx="32" cy="19" r="1" fill="rgb(54,121,137)"/> + <circle cx="33" cy="19" r="1" fill="rgb(58,126,139)"/> + <circle cx="34" cy="19" r="1" fill="rgb(16,86,98)"/> + <circle cx="35" cy="19" r="1" fill="rgb(85,158,167)"/> + <circle cx="36" cy="19" r="1" fill="rgb(201,255,255)"/> + <circle cx="37" cy="19" r="1" fill="rgb(73,148,154)"/> + <circle cx="38" cy="19" r="1" fill="rgb(50,125,130)"/> + <circle cx="39" cy="19" r="1" fill="rgb(48,123,126)"/> + <circle cx="40" cy="19" r="1" fill="rgb(25,99,100)"/> + <circle cx="41" cy="19" r="1" fill="rgb(24,95,97)"/> + <circle cx="42" cy="19" r="1" fill="rgb(50,118,119)"/> + <circle cx="43" cy="19" r="1" fill="rgb(191,255,255)"/> + <circle cx="0" cy="20" r="1" fill="rgb(241,252,255)"/> + <circle cx="1" cy="20" r="1" fill="rgb(68,95,106)"/> + <circle cx="2" cy="20" r="1" fill="rgb(103,148,167)"/> + <circle cx="3" cy="20" r="1" fill="rgb(199,255,255)"/> + <circle cx="4" cy="20" r="1" fill="rgb(194,255,255)"/> + <circle cx="5" cy="20" r="1" fill="rgb(208,255,255)"/> + <circle cx="6" cy="20" r="1" fill="rgb(181,220,235)"/> + <circle cx="7" cy="20" r="1" fill="rgb(224,253,255)"/> + <circle cx="8" cy="20" r="1" fill="rgb(218,248,255)"/> + <circle cx="9" cy="20" r="1" fill="LightCyan"/> + <circle cx="10" cy="20" r="1" fill="rgb(194,252,255)"/> + <circle cx="11" cy="20" r="1" fill="rgb(203,255,255)"/> + <circle cx="12" cy="20" r="1" fill="rgb(194,255,255)"/> + <circle cx="13" cy="20" r="1" fill="rgb(55,108,126)"/> + <circle cx="14" cy="20" r="1" fill="rgb(201,235,245)"/> + <circle cx="15" cy="20" r="1" fill="rgb(182,203,208)"/> + <circle cx="16" cy="20" r="1" fill="rgb(18,115,131)"/> + <circle cx="17" cy="20" r="1" fill="rgb(132,210,233)"/> + <circle cx="18" cy="20" r="1" fill="rgb(205,255,255)"/> + <circle cx="19" cy="20" r="1" fill="rgb(222,255,255)"/> + <circle cx="20" cy="20" r="1" fill="rgb(190,222,255)"/> + <circle cx="21" cy="20" r="1" fill="rgb(193,240,255)"/> + <circle cx="22" cy="20" r="1" fill="rgb(184,253,255)"/> + <circle cx="23" cy="20" r="1" fill="rgb(1,81,104)"/> + <circle cx="24" cy="20" r="1" fill="rgb(188,255,255)"/> + <circle cx="25" cy="20" r="1" fill="rgb(68,119,140)"/> + <circle cx="26" cy="20" r="1" fill="rgb(70,91,118)"/> + <circle cx="27" cy="20" r="1" fill="rgb(221,226,255)"/> + <circle cx="28" cy="20" r="1" fill="rgb(242,251,255)"/> + <circle cx="29" cy="20" r="1" fill="rgb(212,246,255)"/> + <circle cx="30" cy="20" r="1" fill="rgb(48,114,136)"/> + <circle cx="31" cy="20" r="1" fill="rgb(85,174,192)"/> + <circle cx="32" cy="20" r="1" fill="rgb(214,255,255)"/> + <circle cx="33" cy="20" r="1" fill="rgb(200,253,255)"/> + <circle cx="34" cy="20" r="1" fill="rgb(160,214,242)"/> + <circle cx="35" cy="20" r="1" fill="rgb(49,103,129)"/> + <circle cx="36" cy="20" r="1" fill="rgb(191,243,255)"/> + <circle cx="37" cy="20" r="1" fill="rgb(105,158,176)"/> + <circle cx="38" cy="20" r="1" fill="rgb(42,94,108)"/> + <circle cx="39" cy="20" r="1" fill="rgb(99,148,162)"/> + <circle cx="40" cy="20" r="1" fill="rgb(220,255,255)"/> + <circle cx="41" cy="20" r="1" fill="rgb(205,251,255)"/> + <circle cx="42" cy="20" r="1" fill="rgb(58,100,116)"/> + <circle cx="43" cy="20" r="1" fill="rgb(187,225,244)"/> + <circle cx="0" cy="21" r="1" fill="rgb(242,254,240)"/> + <circle cx="1" cy="21" r="1" fill="rgb(217,232,227)"/> + <circle cx="2" cy="21" r="1" fill="rgb(59,76,86)"/> + <circle cx="3" cy="21" r="1" fill="rgb(53,74,93)"/> + <circle cx="4" cy="21" r="1" fill="rgb(129,156,177)"/> + <circle cx="5" cy="21" r="1" fill="rgb(204,236,247)"/> + <circle cx="6" cy="21" r="1" fill="rgb(223,255,255)"/> + <circle cx="7" cy="21" r="1" fill="rgb(220,255,250)"/> + <circle cx="8" cy="21" r="1" fill="rgb(222,255,253)"/> + <circle cx="9" cy="21" r="1" fill="rgb(124,166,164)"/> + <circle cx="10" cy="21" r="1" fill="rgb(84,124,136)"/> + <circle cx="11" cy="21" r="1" fill="rgb(78,114,136)"/> + <circle cx="12" cy="21" r="1" fill="rgb(91,123,144)"/> + <circle cx="13" cy="21" r="1" fill="rgb(50,78,90)"/> + <circle cx="14" cy="21" r="1" fill="rgb(195,221,220)"/> + <circle cx="15" cy="21" r="1" fill="rgb(231,255,246)"/> + <circle cx="16" cy="21" r="1" fill="rgb(85,133,169)"/> + <circle cx="17" cy="21" r="1" fill="rgb(46,83,125)"/> + <circle cx="18" cy="21" r="1" fill="rgb(75,97,147)"/> + <circle cx="19" cy="21" r="1" fill="rgb(161,173,233)"/> + <circle cx="20" cy="21" r="1" fill="rgb(233,255,255)"/> + <circle cx="21" cy="21" r="1" fill="rgb(219,255,255)"/> + <circle cx="22" cy="21" r="1" fill="rgb(134,203,244)"/> + <circle cx="23" cy="21" r="1" fill="rgb(24,109,138)"/> + <circle cx="24" cy="21" r="1" fill="rgb(59,136,162)"/> + <circle cx="25" cy="21" r="1" fill="rgb(36,90,118)"/> + <circle cx="26" cy="21" r="1" fill="rgb(219,241,255)"/> + <circle cx="27" cy="21" r="1" fill="rgb(251,250,255)"/> + <circle cx="28" cy="21" r="1" fill="rgb(236,230,255)"/> + <circle cx="29" cy="21" r="1" fill="rgb(244,252,255)"/> + <circle cx="30" cy="21" r="1" fill="rgb(7,38,84)"/> + <circle cx="31" cy="21" r="1" fill="rgb(165,212,254)"/> + <circle cx="32" cy="21" r="1" fill="rgb(177,220,255)"/> + <circle cx="33" cy="21" r="1" fill="rgb(186,227,255)"/> + <circle cx="34" cy="21" r="1" fill="rgb(162,201,242)"/> + <circle cx="35" cy="21" r="1" fill="rgb(56,92,128)"/> + <circle cx="36" cy="21" r="1" fill="rgb(206,241,255)"/> + <circle cx="37" cy="21" r="1" fill="rgb(119,150,178)"/> + <circle cx="38" cy="21" r="1" fill="rgb(125,153,177)"/> + <circle cx="39" cy="21" r="1" fill="rgb(234,255,255)"/> + <circle cx="40" cy="21" r="1" fill="rgb(235,255,255)"/> + <circle cx="41" cy="21" r="1" fill="rgb(238,255,255)"/> + <circle cx="42" cy="21" r="1" fill="rgb(46,66,91)"/> + <circle cx="43" cy="21" r="1" fill="rgb(200,219,249)"/> + <circle cx="0" cy="22" r="1" fill="rgb(238,255,253)"/> + <circle cx="1" cy="22" r="1" fill="rgb(222,243,244)"/> + <circle cx="2" cy="22" r="1" fill="rgb(239,255,255)"/> + <circle cx="3" cy="22" r="1" fill="rgb(181,200,230)"/> + <circle cx="4" cy="22" r="1" fill="rgb(39,66,95)"/> + <circle cx="5" cy="22" r="1" fill="rgb(48,87,104)"/> + <circle cx="6" cy="22" r="1" fill="rgb(102,156,158)"/> + <circle cx="7" cy="22" r="1" fill="rgb(212,255,255)"/> + <circle cx="8" cy="22" r="1" fill="rgb(88,154,144)"/> + <circle cx="9" cy="22" r="1" fill="rgb(28,88,89)"/> + <circle cx="10" cy="22" r="1" fill="rgb(101,148,168)"/> + <circle cx="11" cy="22" r="1" fill="rgb(125,161,193)"/> + <circle cx="12" cy="22" r="1" fill="rgb(95,128,161)"/> + <circle cx="13" cy="22" r="1" fill="rgb(55,87,110)"/> + <circle cx="14" cy="22" r="1" fill="rgb(183,220,226)"/> + <circle cx="15" cy="22" r="1" fill="rgb(227,255,255)"/> + <circle cx="16" cy="22" r="1" fill="rgb(223,255,255)"/> + <circle cx="17" cy="22" r="1" fill="rgb(197,230,255)"/> + <circle cx="18" cy="22" r="1" fill="rgb(131,155,203)"/> + <circle cx="19" cy="22" r="1" fill="rgb(54,75,128)"/> + <circle cx="20" cy="22" r="1" fill="rgb(46,82,134)"/> + <circle cx="21" cy="22" r="1" fill="rgb(175,234,255)"/> + <circle cx="22" cy="22" r="1" fill="rgb(166,250,255)"/> + <circle cx="23" cy="22" r="1" fill="rgb(14,112,137)"/> + <circle cx="24" cy="22" r="1" fill="rgb(16,108,129)"/> + <circle cx="25" cy="22" r="1" fill="rgb(35,105,130)"/> + <circle cx="26" cy="22" r="1" fill="rgb(181,222,254)"/> + <circle cx="27" cy="22" r="1" fill="rgb(218,236,255)"/> + <circle cx="28" cy="22" r="1" fill="rgb(244,252,255)"/> + <circle cx="29" cy="22" r="1" fill="rgb(237,255,255)"/> + <circle cx="30" cy="22" r="1" fill="rgb(42,76,122)"/> + <circle cx="31" cy="22" r="1" fill="rgb(43,90,134)"/> + <circle cx="32" cy="22" r="1" fill="rgb(38,92,136)"/> + <circle cx="33" cy="22" r="1" fill="rgb(43,96,138)"/> + <circle cx="34" cy="22" r="1" fill="rgb(16,65,105)"/> + <circle cx="35" cy="22" r="1" fill="rgb(48,94,128)"/> + <circle cx="36" cy="22" r="1" fill="rgb(202,243,255)"/> + <circle cx="37" cy="22" r="1" fill="rgb(84,120,144)"/> + <circle cx="38" cy="22" r="1" fill="rgb(136,167,187)"/> + <circle cx="39" cy="22" r="1" fill="rgb(231,255,255)"/> + <circle cx="40" cy="22" r="1" fill="rgb(230,255,255)"/> + <circle cx="41" cy="22" r="1" fill="rgb(235,255,255)"/> + <circle cx="42" cy="22" r="1" fill="rgb(49,73,97)"/> + <circle cx="43" cy="22" r="1" fill="rgb(183,207,235)"/> + <circle cx="0" cy="23" r="1" fill="rgb(223,253,255)"/> + <circle cx="1" cy="23" r="1" fill="rgb(227,255,255)"/> + <circle cx="2" cy="23" r="1" fill="rgb(208,251,255)"/> + <circle cx="3" cy="23" r="1" fill="rgb(213,255,255)"/> + <circle cx="4" cy="23" r="1" fill="rgb(207,255,255)"/> + <circle cx="5" cy="23" r="1" fill="rgb(135,201,233)"/> + <circle cx="6" cy="23" r="1" fill="rgb(34,105,125)"/> + <circle cx="7" cy="23" r="1" fill="rgb(175,249,255)"/> + <circle cx="8" cy="23" r="1" fill="rgb(56,132,145)"/> + <circle cx="9" cy="23" r="1" fill="rgb(103,179,202)"/> + <circle cx="10" cy="23" r="1" fill="rgb(198,255,255)"/> + <circle cx="11" cy="23" r="1" fill="rgb(199,255,255)"/> + <circle cx="12" cy="23" r="1" fill="rgb(181,248,255)"/> + <circle cx="13" cy="23" r="1" fill="rgb(51,111,148)"/> + <circle cx="14" cy="23" r="1" fill="rgb(159,210,237)"/> + <circle cx="15" cy="23" r="1" fill="rgb(212,255,255)"/> + <circle cx="16" cy="23" r="1" fill="rgb(201,255,255)"/> + <circle cx="17" cy="23" r="1" fill="rgb(204,255,255)"/> + <circle cx="18" cy="23" r="1" fill="rgb(213,255,255)"/> + <circle cx="19" cy="23" r="1" fill="rgb(216,255,255)"/> + <circle cx="20" cy="23" r="1" fill="rgb(51,109,146)"/> + <circle cx="21" cy="23" r="1" fill="rgb(99,174,205)"/> + <circle cx="22" cy="23" r="1" fill="rgb(156,248,255)"/> + <circle cx="23" cy="23" r="1" fill="rgb(0,93,108)"/> + <circle cx="24" cy="23" r="1" fill="rgb(181,255,255)"/> + <circle cx="25" cy="23" r="1" fill="rgb(73,152,165)"/> + <circle cx="26" cy="23" r="1" fill="rgb(38,97,115)"/> + <circle cx="27" cy="23" r="1" fill="rgb(148,192,217)"/> + <circle cx="28" cy="23" r="1" fill="rgb(223,255,255)"/> + <circle cx="29" cy="23" r="1" fill="rgb(195,248,255)"/> + <circle cx="30" cy="23" r="1" fill="rgb(15,84,113)"/> + <circle cx="31" cy="23" r="1" fill="rgb(127,208,235)"/> + <circle cx="32" cy="23" r="1" fill="rgb(182,255,255)"/> + <circle cx="33" cy="23" r="1" fill="rgb(183,255,255)"/> + <circle cx="34" cy="23" r="1" fill="rgb(190,255,255)"/> + <circle cx="35" cy="23" r="1" fill="rgb(190,255,255)"/> + <circle cx="36" cy="23" r="1" fill="rgb(210,255,255)"/> + <circle cx="37" cy="23" r="1" fill="rgb(84,141,152)"/> + <circle cx="38" cy="23" r="1" fill="rgb(110,160,167)"/> + <circle cx="39" cy="23" r="1" fill="rgb(218,255,255)"/> + <circle cx="40" cy="23" r="1" fill="LightCyan"/> + <circle cx="41" cy="23" r="1" fill="rgb(216,255,255)"/> + <circle cx="42" cy="23" r="1" fill="rgb(56,98,110)"/> + <circle cx="43" cy="23" r="1" fill="rgb(152,198,214)"/> + <circle cx="0" cy="24" r="1" fill="rgb(234,248,255)"/> + <circle cx="1" cy="24" r="1" fill="rgb(49,82,113)"/> + <circle cx="2" cy="24" r="1" fill="rgb(97,157,194)"/> + <circle cx="3" cy="24" r="1" fill="rgb(109,192,234)"/> + <circle cx="4" cy="24" r="1" fill="rgb(103,195,236)"/> + <circle cx="5" cy="24" r="1" fill="rgb(80,164,200)"/> + <circle cx="6" cy="24" r="1" fill="rgb(24,93,124)"/> + <circle cx="7" cy="24" r="1" fill="rgb(204,255,255)"/> + <circle cx="8" cy="24" r="1" fill="rgb(83,143,169)"/> + <circle cx="9" cy="24" r="1" fill="rgb(35,110,142)"/> + <circle cx="10" cy="24" r="1" fill="rgb(114,206,245)"/> + <circle cx="11" cy="24" r="1" fill="rgb(74,177,222)"/> + <circle cx="12" cy="24" r="1" fill="rgb(17,114,159)"/> + <circle cx="13" cy="24" r="1" fill="rgb(23,98,140)"/> + <circle cx="14" cy="24" r="1" fill="rgb(159,209,246)"/> + <circle cx="15" cy="24" r="1" fill="rgb(148,181,214)"/> + <circle cx="16" cy="24" r="1" fill="rgb(31,123,118)"/> + <circle cx="17" cy="24" r="1" fill="rgb(82,166,166)"/> + <circle cx="18" cy="24" r="1" fill="rgb(142,215,224)"/> + <circle cx="19" cy="24" r="1" fill="rgb(113,176,193)"/> + <circle cx="20" cy="24" r="1" fill="rgb(41,103,124)"/> + <circle cx="21" cy="24" r="1" fill="rgb(114,180,202)"/> + <circle cx="22" cy="24" r="1" fill="rgb(163,236,253)"/> + <circle cx="23" cy="24" r="1" fill="rgb(21,99,111)"/> + <circle cx="24" cy="24" r="1" fill="rgb(193,255,255)"/> + <circle cx="25" cy="24" r="1" fill="rgb(208,255,255)"/> + <circle cx="26" cy="24" r="1" fill="rgb(124,177,185)"/> + <circle cx="27" cy="24" r="1" fill="rgb(14,64,75)"/> + <circle cx="28" cy="24" r="1" fill="rgb(129,187,199)"/> + <circle cx="29" cy="24" r="1" fill="rgb(200,255,255)"/> + <circle cx="30" cy="24" r="1" fill="rgb(54,148,156)"/> + <circle cx="31" cy="24" r="1" fill="rgb(1,110,117)"/> + <circle cx="32" cy="24" r="1" fill="rgb(118,202,226)"/> + <circle cx="33" cy="24" r="1" fill="rgb(109,191,212)"/> + <circle cx="34" cy="24" r="1" fill="rgb(114,191,209)"/> + <circle cx="35" cy="24" r="1" fill="rgb(108,180,192)"/> + <circle cx="36" cy="24" r="1" fill="rgb(207,255,255)"/> + <circle cx="37" cy="24" r="1" fill="rgb(84,144,145)"/> + <circle cx="38" cy="24" r="1" fill="rgb(96,151,148)"/> + <circle cx="39" cy="24" r="1" fill="rgb(220,255,255)"/> + <circle cx="40" cy="24" r="1" fill="rgb(219,255,255)"/> + <circle cx="41" cy="24" r="1" fill="rgb(223,255,255)"/> + <circle cx="42" cy="24" r="1" fill="rgb(36,84,88)"/> + <circle cx="43" cy="24" r="1" fill="rgb(149,199,208)"/> + <circle cx="0" cy="25" r="1" fill="rgb(255,249,255)"/> + <circle cx="1" cy="25" r="1" fill="rgb(174,187,206)"/> + <circle cx="2" cy="25" r="1" fill="rgb(53,103,126)"/> + <circle cx="3" cy="25" r="1" fill="rgb(38,115,141)"/> + <circle cx="4" cy="25" r="1" fill="rgb(32,118,143)"/> + <circle cx="5" cy="25" r="1" fill="rgb(39,109,134)"/> + <circle cx="6" cy="25" r="1" fill="rgb(151,196,217)"/> + <circle cx="7" cy="25" r="1" fill="rgb(235,255,255)"/> + <circle cx="8" cy="25" r="1" fill="rgb(216,243,255)"/> + <circle cx="9" cy="25" r="1" fill="rgb(61,109,131)"/> + <circle cx="10" cy="25" r="1" fill="rgb(31,108,134)"/> + <circle cx="11" cy="25" r="1" fill="rgb(40,138,167)"/> + <circle cx="12" cy="25" r="1" fill="rgb(65,156,185)"/> + <circle cx="13" cy="25" r="1" fill="rgb(66,130,158)"/> + <circle cx="14" cy="25" r="1" fill="rgb(184,211,238)"/> + <circle cx="15" cy="25" r="1" fill="rgb(242,246,255)"/> + <circle cx="16" cy="25" r="1" fill="rgb(65,141,128)"/> + <circle cx="17" cy="25" r="1" fill="rgb(47,114,107)"/> + <circle cx="18" cy="25" r="1" fill="rgb(36,92,93)"/> + <circle cx="19" cy="25" r="1" fill="rgb(59,103,112)"/> + <circle cx="20" cy="25" r="1" fill="rgb(112,151,166)"/> + <circle cx="21" cy="25" r="1" fill="rgb(205,242,255)"/> + <circle cx="22" cy="25" r="1" fill="rgb(204,240,255)"/> + <circle cx="23" cy="25" r="1" fill="rgb(63,97,109)"/> + <circle cx="24" cy="25" r="1" fill="rgb(233,255,255)"/> + <circle cx="25" cy="25" r="1" fill="rgb(217,242,247)"/> + <circle cx="26" cy="25" r="1" fill="rgb(238,255,255)"/> + <circle cx="27" cy="25" r="1" fill="rgb(153,181,185)"/> + <circle cx="28" cy="25" r="1" fill="rgb(94,135,139)"/> + <circle cx="29" cy="25" r="1" fill="rgb(212,255,255)"/> + <circle cx="30" cy="25" r="1" fill="rgb(198,255,255)"/> + <circle cx="31" cy="25" r="1" fill="rgb(74,168,167)"/> + <circle cx="32" cy="25" r="1" fill="rgb(44,102,122)"/> + <circle cx="33" cy="25" r="1" fill="rgb(41,98,115)"/> + <circle cx="34" cy="25" r="1" fill="rgb(55,108,122)"/> + <circle cx="35" cy="25" r="1" fill="rgb(70,118,128)"/> + <circle cx="36" cy="25" r="1" fill="rgb(191,232,238)"/> + <circle cx="37" cy="25" r="1" fill="rgb(129,164,166)"/> + <circle cx="38" cy="25" r="1" fill="rgb(148,178,178)"/> + <circle cx="39" cy="25" r="1" fill="rgb(232,255,255)"/> + <circle cx="40" cy="25" r="1" fill="rgb(223,248,245)"/> + <circle cx="41" cy="25" r="1" fill="rgb(232,255,255)"/> + <circle cx="42" cy="25" r="1" fill="rgb(112,137,141)"/> + <circle cx="43" cy="25" r="1" fill="rgb(177,206,214)"/> + <circle cx="0" cy="26" r="1" fill="rgb(255,242,238)"/> + <circle cx="1" cy="26" r="1" fill="rgb(255,253,251)"/> + <circle cx="2" cy="26" r="1" fill="rgb(228,249,254)"/> + <circle cx="3" cy="26" r="1" fill="rgb(223,255,255)"/> + <circle cx="4" cy="26" r="1" fill="rgb(219,255,255)"/> + <circle cx="5" cy="26" r="1" fill="rgb(216,253,255)"/> + <circle cx="6" cy="26" r="1" fill="rgb(244,255,255)"/> + <circle cx="7" cy="26" r="1" fill="rgb(249,251,248)"/> + <circle cx="8" cy="26" r="1" fill="rgb(254,255,253)"/> + <circle cx="9" cy="26" r="1" fill="rgb(239,255,255)"/> + <circle cx="10" cy="26" r="1" fill="LightCyan"/> + <circle cx="11" cy="26" r="1" fill="rgb(208,255,255)"/> + <circle cx="12" cy="26" r="1" fill="rgb(216,255,255)"/> + <circle cx="13" cy="26" r="1" fill="rgb(223,255,255)"/> + <circle cx="14" cy="26" r="1" fill="rgb(251,255,255)"/> + <circle cx="15" cy="26" r="1" fill="rgb(255,251,250)"/> + <circle cx="16" cy="26" r="1" fill="rgb(233,255,252)"/> + <circle cx="17" cy="26" r="1" fill="azure"/> + <circle cx="18" cy="26" r="1" fill="rgb(242,255,255)"/> + <circle cx="19" cy="26" r="1" fill="rgb(240,253,255)"/> + <circle cx="20" cy="26" r="1" fill="rgb(239,249,255)"/> + <circle cx="21" cy="26" r="1" fill="rgb(248,255,255)"/> + <circle cx="22" cy="26" r="1" fill="rgb(249,255,255)"/> + <circle cx="23" cy="26" r="1" fill="rgb(243,247,255)"/> + <circle cx="24" cy="26" r="1" fill="rgb(254,255,255)"/> + <circle cx="25" cy="26" r="1" fill="rgb(246,244,247)"/> + <circle cx="26" cy="26" r="1" fill="rgb(255,254,255)"/> + <circle cx="27" cy="26" r="1" fill="rgb(254,254,255)"/> + <circle cx="28" cy="26" r="1" fill="rgb(231,241,242)"/> + <circle cx="29" cy="26" r="1" fill="rgb(230,254,255)"/> + <circle cx="30" cy="26" r="1" fill="rgb(226,255,255)"/> + <circle cx="31" cy="26" r="1" fill="rgb(223,255,255)"/> + <circle cx="32" cy="26" r="1" fill="rgb(238,255,255)"/> + <circle cx="33" cy="26" r="1" fill="azure"/> + <circle cx="34" cy="26" r="1" fill="rgb(236,252,255)"/> + <circle cx="35" cy="26" r="1" fill="rgb(225,237,249)"/> + <circle cx="36" cy="26" r="1" fill="rgb(249,255,255)"/> + <circle cx="37" cy="26" r="1" fill="rgb(248,251,255)"/> + <circle cx="38" cy="26" r="1" fill="rgb(245,244,249)"/> + <circle cx="39" cy="26" r="1" fill="rgb(255,253,255)"/> + <circle cx="40" cy="26" r="1" fill="rgb(255,253,255)"/> + <circle cx="41" cy="26" r="1" fill="rgb(255,253,255)"/> + <circle cx="42" cy="26" r="1" fill="rgb(242,237,244)"/> + <circle cx="43" cy="26" r="1" fill="rgb(254,252,255)"/> + <circle cx="0" cy="27" r="1" fill="rgb(255,253,230)"/> + <circle cx="1" cy="27" r="1" fill="rgb(254,245,230)"/> + <circle cx="2" cy="27" r="1" fill="rgb(255,255,251)"/> + <circle cx="3" cy="27" r="1" fill="rgb(247,252,255)"/> + <circle cx="4" cy="27" r="1" fill="rgb(244,253,255)"/> + <circle cx="5" cy="27" r="1" fill="rgb(249,255,255)"/> + <circle cx="6" cy="27" r="1" fill="rgb(245,248,237)"/> + <circle cx="7" cy="27" r="1" fill="rgb(255,255,239)"/> + <circle cx="8" cy="27" r="1" fill="rgb(255,255,239)"/> + <circle cx="9" cy="27" r="1" fill="rgb(252,255,246)"/> + <circle cx="10" cy="27" r="1" fill="rgb(247,255,255)"/> + <circle cx="11" cy="27" r="1" fill="rgb(235,250,255)"/> + <circle cx="12" cy="27" r="1" fill="rgb(242,255,255)"/> + <circle cx="13" cy="27" r="1" fill="rgb(251,255,255)"/> + <circle cx="14" cy="27" r="1" fill="rgb(255,255,241)"/> + <circle cx="15" cy="27" r="1" fill="rgb(255,252,228)"/> + <circle cx="16" cy="27" r="1" fill="rgb(255,238,240)"/> + <circle cx="17" cy="27" r="1" fill="rgb(255,243,248)"/> + <circle cx="18" cy="27" r="1" fill="rgb(255,242,249)"/> + <circle cx="19" cy="27" r="1" fill="rgb(255,250,255)"/> + <circle cx="20" cy="27" r="1" fill="rgb(255,253,255)"/> + <circle cx="21" cy="27" r="1" fill="rgb(252,255,255)"/> + <circle cx="22" cy="27" r="1" fill="rgb(250,255,255)"/> + <circle cx="23" cy="27" r="1" fill="rgb(252,255,255)"/> + <circle cx="24" cy="27" r="1" fill="rgb(250,250,248)"/> + <circle cx="25" cy="27" r="1" fill="rgb(255,252,248)"/> + <circle cx="26" cy="27" r="1" fill="rgb(255,248,244)"/> + <circle cx="27" cy="27" r="1" fill="rgb(255,251,248)"/> + <circle cx="28" cy="27" r="1" fill="rgb(255,251,251)"/> + <circle cx="29" cy="27" r="1" fill="rgb(255,251,255)"/> + <circle cx="30" cy="27" r="1" fill="rgb(255,251,255)"/> + <circle cx="31" cy="27" r="1" fill="rgb(255,253,255)"/> + <circle cx="32" cy="27" r="1" fill="rgb(244,242,255)"/> + <circle cx="33" cy="27" r="1" fill="rgb(252,248,255)"/> + <circle cx="34" cy="27" r="1" fill="rgb(255,252,255)"/> + <circle cx="35" cy="27" r="1" fill="rgb(254,247,255)"/> + <circle cx="36" cy="27" r="1" fill="rgb(255,250,255)"/> + <circle cx="37" cy="27" r="1" fill="rgb(255,250,255)"/> + <circle cx="38" cy="27" r="1" fill="rgb(255,249,255)"/> + <circle cx="39" cy="27" r="1" fill="rgb(255,249,253)"/> + <circle cx="40" cy="27" r="1" fill="rgb(255,244,248)"/> + <circle cx="41" cy="27" r="1" fill="rgb(255,242,248)"/> + <circle cx="42" cy="27" r="1" fill="rgb(255,249,255)"/> + <circle cx="43" cy="27" r="1" fill="rgb(255,249,255)"/> + <circle cx="0" cy="28" r="1" fill="rgb(251,255,233)"/> + <circle cx="1" cy="28" r="1" fill="rgb(252,254,240)"/> + <circle cx="2" cy="28" r="1" fill="rgb(251,247,248)"/> + <circle cx="3" cy="28" r="1" fill="rgb(255,251,255)"/> + <circle cx="4" cy="28" r="1" fill="rgb(255,250,255)"/> + <circle cx="5" cy="28" r="1" fill="rgb(249,246,253)"/> + <circle cx="6" cy="28" r="1" fill="rgb(249,255,245)"/> + <circle cx="7" cy="28" r="1" fill="rgb(248,255,240)"/> + <circle cx="8" cy="28" r="1" fill="rgb(249,255,241)"/> + <circle cx="9" cy="28" r="1" fill="rgb(236,244,233)"/> + <circle cx="10" cy="28" r="1" fill="rgb(239,238,243)"/> + <circle cx="11" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="12" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="13" cy="28" r="1" fill="rgb(255,255,253)"/> + <circle cx="14" cy="28" r="1" fill="rgb(250,255,239)"/> + <circle cx="15" cy="28" r="1" fill="rgb(240,253,223)"/> + <circle cx="16" cy="28" r="1" fill="rgb(255,242,250)"/> + <circle cx="17" cy="28" r="1" fill="rgb(255,244,251)"/> + <circle cx="18" cy="28" r="1" fill="rgb(255,248,255)"/> + <circle cx="19" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="20" cy="28" r="1" fill="rgb(251,255,255)"/> + <circle cx="21" cy="28" r="1" fill="rgb(236,251,254)"/> + <circle cx="22" cy="28" r="1" fill="rgb(235,255,254)"/> + <circle cx="23" cy="28" r="1" fill="rgb(241,255,255)"/> + <circle cx="24" cy="28" r="1" fill="rgb(239,255,245)"/> + <circle cx="25" cy="28" r="1" fill="rgb(251,255,246)"/> + <circle cx="26" cy="28" r="1" fill="rgb(255,255,244)"/> + <circle cx="27" cy="28" r="1" fill="rgb(255,251,241)"/> + <circle cx="28" cy="28" r="1" fill="rgb(243,232,228)"/> + <circle cx="29" cy="28" r="1" fill="rgb(255,244,246)"/> + <circle cx="30" cy="28" r="1" fill="rgb(255,248,255)"/> + <circle cx="31" cy="28" r="1" fill="rgb(255,239,252)"/> + <circle cx="32" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="33" cy="28" r="1" fill="rgb(255,253,255)"/> + <circle cx="34" cy="28" r="1" fill="rgb(255,254,255)"/> + <circle cx="35" cy="28" r="1" fill="rgb(255,253,255)"/> + <circle cx="36" cy="28" r="1" fill="rgb(247,241,243)"/> + <circle cx="37" cy="28" r="1" fill="rgb(255,250,253)"/> + <circle cx="38" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="39" cy="28" r="1" fill="rgb(255,247,250)"/> + <circle cx="40" cy="28" r="1" fill="rgb(255,250,254)"/> + <circle cx="41" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="42" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="43" cy="28" r="1" fill="rgb(255,252,255)"/> + <circle cx="0" cy="29" r="1" fill="rgb(247,255,243)"/> + <circle cx="1" cy="29" r="1" fill="rgb(248,255,251)"/> + <circle cx="2" cy="29" r="1" fill="rgb(247,254,255)"/> + <circle cx="3" cy="29" r="1" fill="rgb(251,254,255)"/> + <circle cx="4" cy="29" r="1" fill="rgb(252,253,255)"/> + <circle cx="5" cy="29" r="1" fill="rgb(250,252,255)"/> + <circle cx="6" cy="29" r="1" fill="rgb(252,255,255)"/> + <circle cx="7" cy="29" r="1" fill="rgb(252,255,246)"/> + <circle cx="8" cy="29" r="1" fill="rgb(252,255,246)"/> + <circle cx="9" cy="29" r="1" fill="rgb(252,255,253)"/> + <circle cx="10" cy="29" r="1" fill="rgb(254,254,255)"/> + <circle cx="11" cy="29" r="1" fill="rgb(252,253,255)"/> + <circle cx="12" cy="29" r="1" fill="rgb(233,235,250)"/> + <circle cx="13" cy="29" r="1" fill="rgb(245,250,253)"/> + <circle cx="14" cy="29" r="1" fill="rgb(249,255,244)"/> + <circle cx="15" cy="29" r="1" fill="rgb(248,255,236)"/> + <circle cx="16" cy="29" r="1" fill="rgb(255,245,251)"/> + <circle cx="17" cy="29" r="1" fill="rgb(253,230,236)"/> + <circle cx="18" cy="29" r="1" fill="rgb(253,244,249)"/> + <circle cx="19" cy="29" r="1" fill="rgb(248,253,255)"/> + <circle cx="20" cy="29" r="1" fill="rgb(241,255,255)"/> + <circle cx="21" cy="29" r="1" fill="azure"/> + <circle cx="22" cy="29" r="1" fill="azure"/> + <circle cx="23" cy="29" r="1" fill="rgb(242,255,255)"/> + <circle cx="24" cy="29" r="1" fill="rgb(245,255,251)"/> + <circle cx="25" cy="29" r="1" fill="rgb(248,255,246)"/> + <circle cx="26" cy="29" r="1" fill="rgb(240,248,233)"/> + <circle cx="27" cy="29" r="1" fill="rgb(253,255,243)"/> + <circle cx="28" cy="29" r="1" fill="rgb(255,255,246)"/> + <circle cx="29" cy="29" r="1" fill="rgb(253,245,243)"/> + <circle cx="30" cy="29" r="1" fill="rgb(249,237,241)"/> + <circle cx="31" cy="29" r="1" fill="rgb(255,250,255)"/> + <circle cx="32" cy="29" r="1" fill="rgb(255,255,250)"/> + <circle cx="33" cy="29" r="1" fill="rgb(250,251,245)"/> + <circle cx="34" cy="29" r="1" fill="rgb(245,248,241)"/> + <circle cx="35" cy="29" r="1" fill="rgb(254,255,251)"/> + <circle cx="36" cy="29" r="1" fill="rgb(246,251,247)"/> + <circle cx="37" cy="29" r="1" fill="rgb(252,255,255)"/> + <circle cx="38" cy="29" r="1" fill="rgb(248,254,252)"/> + <circle cx="39" cy="29" r="1" fill="rgb(247,253,253)"/> + <circle cx="40" cy="29" r="1" fill="rgb(249,255,255)"/> + <circle cx="41" cy="29" r="1" fill="rgb(251,255,255)"/> + <circle cx="42" cy="29" r="1" fill="rgb(237,243,241)"/> + <circle cx="43" cy="29" r="1" fill="rgb(251,255,255)"/> + <circle cx="0" cy="30" r="1" fill="rgb(255,255,243)"/> + <circle cx="1" cy="30" r="1" fill="rgb(245,250,244)"/> + <circle cx="2" cy="30" r="1" fill="rgb(242,255,255)"/> + <circle cx="3" cy="30" r="1" fill="rgb(232,255,255)"/> + <circle cx="4" cy="30" r="1" fill="rgb(235,254,255)"/> + <circle cx="5" cy="30" r="1" fill="rgb(249,255,255)"/> + <circle cx="6" cy="30" r="1" fill="rgb(255,244,248)"/> + <circle cx="7" cy="30" r="1" fill="rgb(255,249,246)"/> + <circle cx="8" cy="30" r="1" fill="rgb(255,249,246)"/> + <circle cx="9" cy="30" r="1" fill="rgb(247,235,237)"/> + <circle cx="10" cy="30" r="1" fill="rgb(239,244,250)"/> + <circle cx="11" cy="30" r="1" fill="rgb(241,255,255)"/> + <circle cx="12" cy="30" r="1" fill="azure"/> + <circle cx="13" cy="30" r="1" fill="rgb(245,255,255)"/> + <circle cx="14" cy="30" r="1" fill="rgb(251,253,239)"/> + <circle cx="15" cy="30" r="1" fill="rgb(255,255,233)"/> + <circle cx="16" cy="30" r="1" fill="rgb(255,252,255)"/> + <circle cx="17" cy="30" r="1" fill="rgb(253,251,254)"/> + <circle cx="18" cy="30" r="1" fill="rgb(251,255,255)"/> + <circle cx="19" cy="30" r="1" fill="rgb(243,255,255)"/> + <circle cx="20" cy="30" r="1" fill="rgb(236,251,255)"/> + <circle cx="21" cy="30" r="1" fill="rgb(244,254,255)"/> + <circle cx="22" cy="30" r="1" fill="rgb(242,245,254)"/> + <circle cx="23" cy="30" r="1" fill="rgb(255,253,255)"/> + <circle cx="24" cy="30" r="1" fill="rgb(255,252,253)"/> + <circle cx="25" cy="30" r="1" fill="rgb(253,244,239)"/> + <circle cx="26" cy="30" r="1" fill="rgb(255,255,246)"/> + <circle cx="27" cy="30" r="1" fill="rgb(255,255,246)"/> + <circle cx="28" cy="30" r="1" fill="rgb(252,255,248)"/> + <circle cx="29" cy="30" r="1" fill="rgb(251,255,251)"/> + <circle cx="30" cy="30" r="1" fill="rgb(251,255,255)"/> + <circle cx="31" cy="30" r="1" fill="rgb(236,242,242)"/> + <circle cx="32" cy="30" r="1" fill="rgb(255,255,244)"/> + <circle cx="33" cy="30" r="1" fill="rgb(255,255,244)"/> + <circle cx="34" cy="30" r="1" fill="rgb(245,246,238)"/> + <circle cx="35" cy="30" r="1" fill="rgb(252,255,250)"/> + <circle cx="36" cy="30" r="1" fill="rgb(251,255,253)"/> + <circle cx="37" cy="30" r="1" fill="rgb(249,255,255)"/> + <circle cx="38" cy="30" r="1" fill="rgb(241,253,251)"/> + <circle cx="39" cy="30" r="1" fill="rgb(247,255,255)"/> + <circle cx="40" cy="30" r="1" fill="rgb(245,255,255)"/> + <circle cx="41" cy="30" r="1" fill="rgb(245,255,255)"/> + <circle cx="42" cy="30" r="1" fill="rgb(247,255,255)"/> + <circle cx="43" cy="30" r="1" fill="rgb(247,255,255)"/> + <circle cx="0" cy="31" r="1" fill="rgb(255,249,239)"/> + <circle cx="1" cy="31" r="1" fill="rgb(255,253,247)"/> + <circle cx="2" cy="31" r="1" fill="rgb(237,255,255)"/> + <circle cx="3" cy="31" r="1" fill="rgb(228,255,255)"/> + <circle cx="4" cy="31" r="1" fill="rgb(231,255,255)"/> + <circle cx="5" cy="31" r="1" fill="rgb(245,252,255)"/> + <circle cx="6" cy="31" r="1" fill="rgb(255,246,250)"/> + <circle cx="7" cy="31" r="1" fill="rgb(255,240,243)"/> + <circle cx="8" cy="31" r="1" fill="rgb(255,239,239)"/> + <circle cx="9" cy="31" r="1" fill="rgb(255,247,248)"/> + <circle cx="10" cy="31" r="1" fill="rgb(251,255,255)"/> + <circle cx="11" cy="31" r="1" fill="rgb(220,250,250)"/> + <circle cx="12" cy="31" r="1" fill="rgb(231,255,255)"/> + <circle cx="13" cy="31" r="1" fill="rgb(240,255,247)"/> + <circle cx="14" cy="31" r="1" fill="rgb(255,248,231)"/> + <circle cx="15" cy="31" r="1" fill="rgb(255,248,228)"/> + <circle cx="16" cy="31" r="1" fill="rgb(247,253,253)"/> + <circle cx="17" cy="31" r="1" fill="rgb(247,255,255)"/> + <circle cx="18" cy="31" r="1" fill="rgb(245,255,255)"/> + <circle cx="19" cy="31" r="1" fill="rgb(239,252,255)"/> + <circle cx="20" cy="31" r="1" fill="rgb(248,255,255)"/> + <circle cx="21" cy="31" r="1" fill="rgb(255,252,255)"/> + <circle cx="22" cy="31" r="1" fill="rgb(248,229,248)"/> + <circle cx="23" cy="31" r="1" fill="rgb(255,244,255)"/> + <circle cx="24" cy="31" r="1" fill="rgb(255,242,253)"/> + <circle cx="25" cy="31" r="1" fill="rgb(255,245,250)"/> + <circle cx="26" cy="31" r="1" fill="rgb(255,249,248)"/> + <circle cx="27" cy="31" r="1" fill="rgb(255,249,241)"/> + <circle cx="28" cy="31" r="1" fill="rgb(252,255,250)"/> + <circle cx="29" cy="31" r="1" fill="rgb(247,255,253)"/> + <circle cx="30" cy="31" r="1" fill="rgb(233,252,248)"/> + <circle cx="31" cy="31" r="1" fill="rgb(241,255,255)"/> + <circle cx="32" cy="31" r="1" fill="rgb(255,250,238)"/> + <circle cx="33" cy="31" r="1" fill="rgb(255,255,243)"/> + <circle cx="34" cy="31" r="1" fill="rgb(255,252,243)"/> + <circle cx="35" cy="31" r="1" fill="rgb(251,252,246)"/> + <circle cx="36" cy="31" r="1" fill="rgb(252,255,253)"/> + <circle cx="37" cy="31" r="1" fill="rgb(247,253,251)"/> + <circle cx="38" cy="31" r="1" fill="rgb(233,243,244)"/> + <circle cx="39" cy="31" r="1" fill="rgb(247,255,255)"/> + <circle cx="40" cy="31" r="1" fill="rgb(247,255,255)"/> + <circle cx="41" cy="31" r="1" fill="rgb(239,250,252)"/> + <circle cx="42" cy="31" r="1" fill="rgb(247,255,255)"/> + <circle cx="43" cy="31" r="1" fill="rgb(238,249,245)"/> + <circle cx="0" cy="32" r="1" fill="white"/> + <circle cx="1" cy="32" r="1" fill="white"/> + <circle cx="2" cy="32" r="1" fill="white"/> + <circle cx="3" cy="32" r="1" fill="white"/> + <circle cx="4" cy="32" r="1" fill="white"/> + <circle cx="5" cy="32" r="1" fill="white"/> + <circle cx="6" cy="32" r="1" fill="white"/> + <circle cx="7" cy="32" r="1" fill="white"/> + <circle cx="8" cy="32" r="1" fill="white"/> + <circle cx="9" cy="32" r="1" fill="white"/> + <circle cx="10" cy="32" r="1" fill="white"/> + <circle cx="11" cy="32" r="1" fill="white"/> + <circle cx="12" cy="32" r="1" fill="white"/> + <circle cx="13" cy="32" r="1" fill="white"/> + <circle cx="14" cy="32" r="1" fill="white"/> + <circle cx="15" cy="32" r="1" fill="white"/> + <circle cx="16" cy="32" r="1" fill="white"/> + <circle cx="17" cy="32" r="1" fill="white"/> + <circle cx="18" cy="32" r="1" fill="white"/> + <circle cx="19" cy="32" r="1" fill="white"/> + <circle cx="20" cy="32" r="1" fill="white"/> + <circle cx="21" cy="32" r="1" fill="white"/> + <circle cx="22" cy="32" r="1" fill="white"/> + <circle cx="23" cy="32" r="1" fill="white"/> + <circle cx="24" cy="32" r="1" fill="white"/> + <circle cx="25" cy="32" r="1" fill="white"/> + <circle cx="26" cy="32" r="1" fill="white"/> + <circle cx="27" cy="32" r="1" fill="white"/> + <circle cx="28" cy="32" r="1" fill="white"/> + <circle cx="29" cy="32" r="1" fill="white"/> + <circle cx="30" cy="32" r="1" fill="white"/> + <circle cx="31" cy="32" r="1" fill="white"/> + <circle cx="32" cy="32" r="1" fill="white"/> + <circle cx="33" cy="32" r="1" fill="white"/> + <circle cx="34" cy="32" r="1" fill="white"/> + <circle cx="35" cy="32" r="1" fill="white"/> + <circle cx="36" cy="32" r="1" fill="white"/> + <circle cx="37" cy="32" r="1" fill="white"/> + <circle cx="38" cy="32" r="1" fill="white"/> + <circle cx="39" cy="32" r="1" fill="white"/> + <circle cx="40" cy="32" r="1" fill="white"/> + <circle cx="41" cy="32" r="1" fill="white"/> + <circle cx="42" cy="32" r="1" fill="white"/> + <circle cx="43" cy="32" r="1" fill="white"/> + <circle cx="0" cy="33" r="1" fill="white"/> + <circle cx="1" cy="33" r="1" fill="white"/> + <circle cx="2" cy="33" r="1" fill="white"/> + <circle cx="3" cy="33" r="1" fill="white"/> + <circle cx="4" cy="33" r="1" fill="white"/> + <circle cx="5" cy="33" r="1" fill="white"/> + <circle cx="6" cy="33" r="1" fill="white"/> + <circle cx="7" cy="33" r="1" fill="white"/> + <circle cx="8" cy="33" r="1" fill="white"/> + <circle cx="9" cy="33" r="1" fill="white"/> + <circle cx="10" cy="33" r="1" fill="white"/> + <circle cx="11" cy="33" r="1" fill="white"/> + <circle cx="12" cy="33" r="1" fill="white"/> + <circle cx="13" cy="33" r="1" fill="white"/> + <circle cx="14" cy="33" r="1" fill="white"/> + <circle cx="15" cy="33" r="1" fill="white"/> + <circle cx="16" cy="33" r="1" fill="white"/> + <circle cx="17" cy="33" r="1" fill="white"/> + <circle cx="18" cy="33" r="1" fill="white"/> + <circle cx="19" cy="33" r="1" fill="white"/> + <circle cx="20" cy="33" r="1" fill="white"/> + <circle cx="21" cy="33" r="1" fill="white"/> + <circle cx="22" cy="33" r="1" fill="white"/> + <circle cx="23" cy="33" r="1" fill="white"/> + <circle cx="24" cy="33" r="1" fill="white"/> + <circle cx="25" cy="33" r="1" fill="white"/> + <circle cx="26" cy="33" r="1" fill="white"/> + <circle cx="27" cy="33" r="1" fill="white"/> + <circle cx="28" cy="33" r="1" fill="white"/> + <circle cx="29" cy="33" r="1" fill="white"/> + <circle cx="30" cy="33" r="1" fill="white"/> + <circle cx="31" cy="33" r="1" fill="white"/> + <circle cx="32" cy="33" r="1" fill="white"/> + <circle cx="33" cy="33" r="1" fill="white"/> + <circle cx="34" cy="33" r="1" fill="white"/> + <circle cx="35" cy="33" r="1" fill="white"/> + <circle cx="36" cy="33" r="1" fill="white"/> + <circle cx="37" cy="33" r="1" fill="white"/> + <circle cx="38" cy="33" r="1" fill="white"/> + <circle cx="39" cy="33" r="1" fill="white"/> + <circle cx="40" cy="33" r="1" fill="white"/> + <circle cx="41" cy="33" r="1" fill="white"/> + <circle cx="42" cy="33" r="1" fill="white"/> + <circle cx="43" cy="33" r="1" fill="white"/> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/smfdemo.svg Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="iso-8859-1"?><!-- Generator: eNetzwerk JPG2SVG 0.1 http://www.enetzwerk.de/svg --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN" "http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd" [ + <!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"> +]> +<svg width="256" height="228" viewBox="0 0 256 228" xml:space="preserve"> + <g id="Ebene_x0020_1" style="&st0;"> + <image width="256" height="228" xlink:href="data:image/jpeg;base64,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" transform="matrix(1 0 0 1 0 0)"/> + </g> +</svg> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/tmp/.svn/all-wcprops Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 120 +/svn/symbian/!svn/ver/414/products/s-series/engg/symbian/s60-app-dev/SocialMobileFrameWork/MissingCodeForSmf/DemoGUI/tmp +END
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/tmp/.svn/entries Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,28 @@ +10 + +dir +415 +http://svnz02/svn/symbian/products/s-series/engg/symbian/s60-app-dev/SocialMobileFrameWork/MissingCodeForSmf/DemoGUI/tmp +http://svnz02/svn/symbian + + + +2010-07-30T12:20:29.303136Z +414 +nalinah + + + + + + + + + + + + + + +ddc49ed9-7720-479e-b42b-43a572c34f33 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/DemoGUI/ui_mainwindow.h Thu Aug 05 16:35:33 2010 +0530 @@ -0,0 +1,76 @@ +/******************************************************************************** +** Form generated from reading UI file 'mainwindow.ui' +** +** Created: Fri Jul 30 12:42:18 2010 +** by: Qt User Interface Compiler version 4.6.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_MAINWINDOW_H +#define UI_MAINWINDOW_H + +#include <QtCore/QVariant> +#include <QtGui/QAction> +#include <QtGui/QApplication> +#include <QtGui/QButtonGroup> +#include <QtGui/QHeaderView> +#include <QtGui/QMainWindow> +#include <QtGui/QMenuBar> +#include <QtGui/QStatusBar> +#include <QtGui/QTextEdit> +#include <QtGui/QToolBar> +#include <QtGui/QWidget> + +QT_BEGIN_NAMESPACE + +class Ui_MainWindow +{ +public: + QWidget *centralWidget; + QTextEdit *textEdit; + QMenuBar *menuBar; + QToolBar *mainToolBar; + QStatusBar *statusBar; + + void setupUi(QMainWindow *MainWindow) + { + if (MainWindow->objectName().isEmpty()) + MainWindow->setObjectName(QString::fromUtf8("MainWindow")); + MainWindow->resize(600, 400); + centralWidget = new QWidget(MainWindow); + centralWidget->setObjectName(QString::fromUtf8("centralWidget")); + textEdit = new QTextEdit(centralWidget); + textEdit->setObjectName(QString::fromUtf8("textEdit")); + textEdit->setGeometry(QRect(40, 50, 104, 64)); + MainWindow->setCentralWidget(centralWidget); + menuBar = new QMenuBar(MainWindow); + menuBar->setObjectName(QString::fromUtf8("menuBar")); + menuBar->setGeometry(QRect(0, 0, 600, 21)); + MainWindow->setMenuBar(menuBar); + mainToolBar = new QToolBar(MainWindow); + mainToolBar->setObjectName(QString::fromUtf8("mainToolBar")); + MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar); + statusBar = new QStatusBar(MainWindow); + statusBar->setObjectName(QString::fromUtf8("statusBar")); + MainWindow->setStatusBar(statusBar); + + retranslateUi(MainWindow); + + QMetaObject::connectSlotsByName(MainWindow); + } // setupUi + + void retranslateUi(QMainWindow *MainWindow) + { + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class MainWindow: public Ui_MainWindow {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_MAINWINDOW_H