Submitting following changes -
authorcgandhi
Mon, 11 Oct 2010 21:59:54 +0530
changeset 26 83d6a149c755
parent 25 a180113055cb
child 27 b3e1347ac96a
Submitting following changes - AuthApps for Last.fm and Twitter added API for checking ServiceAuthorization added for SMFCredMgrClient API added for forcefully removing credential details from SMFCredMgr Extra argument checks in SMfClient APIs APIs for service login and logout from SMFClient Redundant members removed from SmfServerSymbian DSM bug fixes Test Apps included
ReadMe.txt
Tests/DemoGUI/.settings/carbide_cs_settings.xml
Tests/DemoGUI/CustomListWidget.cpp
Tests/DemoGUI/CustomListWidget.h
Tests/DemoGUI/DemoGUI.loc
Tests/DemoGUI/DemoGUI.pro
Tests/DemoGUI/DemoGUI.rss
Tests/DemoGUI/DemoGUI_reg.rss
Tests/DemoGUI/FriendView.cpp
Tests/DemoGUI/FriendView.h
Tests/DemoGUI/GridView.cpp
Tests/DemoGUI/GridView.h
Tests/DemoGUI/HomeView.cpp
Tests/DemoGUI/HomeView.h
Tests/DemoGUI/ImageDownload.cpp
Tests/DemoGUI/ImageDownload.h
Tests/DemoGUI/SMF.loc
Tests/DemoGUI/SMF.rss
Tests/DemoGUI/SMF_reg.rss
Tests/DemoGUI/ScreenSize.h
Tests/DemoGUI/ToolBar.cpp
Tests/DemoGUI/ToolBar.h
Tests/DemoGUI/WidgetConstants.h
Tests/DemoGUI/main.cpp
Tests/DemoGUI/mainwindow.cpp
Tests/DemoGUI/mainwindow.h
Tests/DemoGUI/mainwindow.ui
Tests/DemoGUI/object_script.DemoGUI.Debug
Tests/DemoGUI/object_script.DemoGUI.Release
Tests/DemoGUI/sasken_logo.svg
Tests/DemoGUI/smfdemo.svg
Tests/DemoGUI/ui_mainwindow.h
Tests/SmfMusicEventsnService/SmfMusicEventsnService.cpp
Tests/SmfMusicEventsnService/SmfMusicEventsnService.h
Tests/SmfMusicEventsnService/SmfMusicEventsnService.pro
Tests/SmfMusicEventsnService/SmfMusicEventsnService.ui
Tests/SmfMusicEventsnService/main.cpp
Tests/SmfMusicEventsnService/ui_SmfMusicEventsnService.h
Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.cpp
Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.h
Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.pro
Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.ui
Tests/SmfTestMusicnActivty/main.cpp
Tests/SmfTestMusicnActivty/ui_SmfTestMusicnActivty.h
Tests/TestApp/Mainwindow.cpp
Tests/TestApp/Mainwindow.h
Tests/TestApp/TestApp.pro
Tests/TestApp/TestAppMain.cpp
example/AuthApp/AuthApp.cpp
example/AuthApp/AuthApp.loc
example/AuthApp/AuthApp.rss
example/AuthApp/AuthApp_reg.rss
example/AuthApp/src/baseDialog.cpp
example/AuthApp/src/loginDialog.cpp
example/AuthApp/src/requestSP.cpp
example/AuthApp/ui_AuthApp.h
example/AuthApp/ui_progressbar.h
example/DemoGUI/CustomListWidget.cpp
example/DemoGUI/DemoGUI.loc
example/DemoGUI/DemoGUI.rss
example/DemoGUI/DemoGUI_reg.rss
example/DemoGUI/HomeView.cpp
example/DemoGUI/ImageDownload.cpp
example/DemoGUI/ui_mainwindow.h
example/FlickrAuthApp/AuthApp.cpp
example/FlickrAuthApp/Flickr.loc
example/FlickrAuthApp/Flickr.rss
example/FlickrAuthApp/Flickr_reg.rss
example/FlickrAuthApp/inc/keys.h
example/FlickrAuthApp/src/baseDialog.cpp
example/FlickrAuthApp/src/loginDialog.cpp
example/FlickrAuthApp/src/requestSP.cpp
example/FlickrAuthApp/src/sessionSP.cpp
example/FlickrAuthApp/ui_AuthApp.h
example/FlickrAuthApp/ui_progressbar.h
example/LastFmAuthApp/AuthApp.cpp
example/LastFmAuthApp/AuthApp.h
example/LastFmAuthApp/AuthApp.loc
example/LastFmAuthApp/AuthApp.ui
example/LastFmAuthApp/LastFm.loc
example/LastFmAuthApp/LastFm.rss
example/LastFmAuthApp/LastFmAuthApp.pro
example/LastFmAuthApp/LastFm_reg.rss
example/LastFmAuthApp/Lastfm.svg
example/LastFmAuthApp/backup_registration.xml
example/LastFmAuthApp/inc/authAppConstants.h
example/LastFmAuthApp/inc/baseDialog.h
example/LastFmAuthApp/inc/errorCodes.h
example/LastFmAuthApp/inc/keys.h
example/LastFmAuthApp/inc/loginDialog.h
example/LastFmAuthApp/inc/requestSP.h
example/LastFmAuthApp/inc/sessionSP.h
example/LastFmAuthApp/inc/xmlParser.h
example/LastFmAuthApp/main.cpp
example/LastFmAuthApp/progressbar.cpp
example/LastFmAuthApp/progressbar.h
example/LastFmAuthApp/progressbar.ui
example/LastFmAuthApp/src/baseDialog.cpp
example/LastFmAuthApp/src/loginDialog.cpp
example/LastFmAuthApp/src/requestSP.cpp
example/LastFmAuthApp/src/sessionSP.cpp
example/LastFmAuthApp/src/xmlParser.cpp
example/LastFmAuthApp/ui_AuthApp.h
example/LastFmAuthApp/ui_progressbar.h
example/LinkedInAuthApp/AuthApp.cpp
example/LinkedInAuthApp/AuthApp.h
example/LinkedInAuthApp/AuthApp.ui
example/LinkedInAuthApp/LinkedInAuthApp.pro
example/LinkedInAuthApp/Linkedin.loc
example/LinkedInAuthApp/Linkedin.rss
example/LinkedInAuthApp/Linkedin.svg
example/LinkedInAuthApp/Linkedin_reg.rss
example/LinkedInAuthApp/backup_registration.xml
example/LinkedInAuthApp/inc/authAppConstants.h
example/LinkedInAuthApp/inc/baseDialog.h
example/LinkedInAuthApp/inc/errorCodes.h
example/LinkedInAuthApp/inc/keys.h
example/LinkedInAuthApp/inc/loginDialog.h
example/LinkedInAuthApp/inc/requestSP.h
example/LinkedInAuthApp/inc/sessionSP.h
example/LinkedInAuthApp/inc/xmlParser.h
example/LinkedInAuthApp/main.cpp
example/LinkedInAuthApp/progressbar.cpp
example/LinkedInAuthApp/progressbar.h
example/LinkedInAuthApp/progressbar.ui
example/LinkedInAuthApp/src/baseDialog.cpp
example/LinkedInAuthApp/src/loginDialog.cpp
example/LinkedInAuthApp/src/requestSP.cpp
example/LinkedInAuthApp/src/sessionSP.cpp
example/LinkedInAuthApp/src/xmlParser.cpp
example/LinkedInAuthApp/ui_AuthApp.h
example/LinkedInAuthApp/ui_progressbar.h
example/MusicLyricsPlugin/MusicLyricsPlugin.cpp
example/MusicLyricsPlugin/MusicLyricsPlugin.h
example/MusicLyricsPlugin/plugin_commonU.def
example/MusicLyricsPlugin/qmakepluginstubs/musiclyricsplugin.qtplugin
example/TwitterAuthApp/AuthApp.cpp
example/TwitterAuthApp/AuthApp.h
example/TwitterAuthApp/AuthApp.ui
example/TwitterAuthApp/Twitter.loc
example/TwitterAuthApp/Twitter.rss
example/TwitterAuthApp/Twitter.svg
example/TwitterAuthApp/TwitterAuthApp.pro
example/TwitterAuthApp/Twitter_reg.rss
example/TwitterAuthApp/backup_registration.xml
example/TwitterAuthApp/inc/authAppConstants.h
example/TwitterAuthApp/inc/baseDialog.h
example/TwitterAuthApp/inc/errorCodes.h
example/TwitterAuthApp/inc/keys.h
example/TwitterAuthApp/inc/loginDialog.h
example/TwitterAuthApp/inc/requestSP.h
example/TwitterAuthApp/inc/sessionSP.h
example/TwitterAuthApp/inc/xmlParser.h
example/TwitterAuthApp/main.cpp
example/TwitterAuthApp/progressbar.cpp
example/TwitterAuthApp/progressbar.h
example/TwitterAuthApp/progressbar.ui
example/TwitterAuthApp/src/baseDialog.cpp
example/TwitterAuthApp/src/loginDialog.cpp
example/TwitterAuthApp/src/requestSP.cpp
example/TwitterAuthApp/src/sessionSP.cpp
example/TwitterAuthApp/src/xmlParser.cpp
example/TwitterAuthApp/ui_AuthApp.h
example/TwitterAuthApp/ui_progressbar.h
example/example.pro
example/fbactivityfetcherplugin/fbactivityfetcherplugin.cpp
example/fbactivityfetcherplugin/fbactivityfetcherplugin.h
example/fbactivityfetcherplugin/plugin_commonU.def
example/fbactivityfetcherplugin/qmakepluginstubs/fbactivityfetcherplugin.qtplugin
example/fbcontactfetcherplugin/fbcontactfetcherplugin.cpp
example/fbcontactfetcherplugin/fbcontactfetcherplugin.h
example/fbcontactfetcherplugin/plugin_commonU.def
example/fbcontactfetcherplugin/qmakepluginstubs/fbcontactfetcherplugin.qtplugin
example/fbpostproviderplugin/fbpostproviderplugin.cpp
example/fbpostproviderplugin/fbpostproviderplugin.h
example/fbpostproviderplugin/plugin_commonU.def
example/fbpostproviderplugin/qmakepluginstubs/fbpostproviderplugin.qtplugin
example/flickrcontactfetcherplugin/flickrcontactfetcherplugin.cpp
example/flickrcontactfetcherplugin/flickrcontactfetcherplugin.h
example/flickrcontactfetcherplugin/plugin_commonU.def
example/flickrcontactfetcherplugin/qmakepluginstubs/flickrcontactfetcherplugin.qtplugin
example/flickrgalleryplugin/flickrgalleryplugin.cpp
example/flickrgalleryplugin/flickrgalleryplugin.h
example/flickrgalleryplugin/plugin_commonU.def
example/flickrgalleryplugin/qmakepluginstubs/flickrgalleryplugin.qtplugin
example/lastfmmusiceventplugin/lastfmmusiceventplugin.cpp
example/lastfmmusiceventplugin/lastfmmusiceventplugin.h
example/lastfmmusiceventplugin/plugin_commonU.def
example/lastfmmusiceventplugin/qmakepluginstubs/lastfmmusiceventplugin.qtplugin
example/lastfmmusicsearchplugin/lastfmmusicsearchplugin.cpp
example/lastfmmusicsearchplugin/lastfmmusicsearchplugin.h
example/lastfmmusicsearchplugin/plugin_commonU.def
example/lastfmmusicsearchplugin/qmakepluginstubs/lastfmmusicsearchplugin.qtplugin
example/lastfmmusicserviceplugin/lastfmmusicserviceplugin.cpp
example/lastfmmusicserviceplugin/lastfmmusicserviceplugin.h
example/lastfmmusicserviceplugin/plugin_commonU.def
example/lastfmmusicserviceplugin/qmakepluginstubs/lastfmmusicserviceplugin.qtplugin
example/lastfmplaylistserviceplugin/lastfmplaylistserviceplugin.cpp
example/lastfmplaylistserviceplugin/lastfmplaylistserviceplugin.h
example/lastfmplaylistserviceplugin/plugin_commonU.def
example/lastfmplaylistserviceplugin/qmakepluginstubs/lastfmplaylistserviceplugin.qtplugin
example/smfclientapp/smfclientapp.loc
example/smfclientapp/smfclientapp.rss
example/smfclientapp/smfclientapp_reg.rss
example/smfclientapp/ui_displaywidget.h
example/smfclientapp/ui_posttestui.h
example/smfclientapp/ui_smfclientapp.h
smf/smf.pro
smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def
smf/smfcredentialmgr/smfcredmgrclient/eabi/smfcredmgrclientu.def
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.h
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.h
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientsession.cpp
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientsession.h
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.h
smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrcommon.h
smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h
smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h
smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp
smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp
smf/smfservermodule/smfclient/bwins/smfclientu.def
smf/smfservermodule/smfclient/eabi/smfclientu.def
smf/smfservermodule/smfclient/smfactivityfetcher_p.cpp
smf/smfservermodule/smfclient/smfclient.cpp
smf/smfservermodule/smfclient/smfclient.h
smf/smfservermodule/smfclient/smfclient.pro
smf/smfservermodule/smfclient/smfclientsymbian.cpp
smf/smfservermodule/smfclient/smfclientsymbian.h
smf/smfservermodule/smfclient/smfclientsymbiansession.h
smf/smfservermodule/smfclient/smfgallery.d
smf/smfservermodule/smfclient/smfgallery_p.cpp
smf/smfservermodule/smfclient/smfrelationmgr.cpp
smf/smfservermodule/smfclient/smfrelationmgr.h
smf/smfservermodule/smfclient/smfrelationmgr_p.cpp
smf/smfservermodule/smfclient/smfrelationmgr_p.h
smf/smfservermodule/smfcommon/bwins/smfcommonu.def
smf/smfservermodule/smfcommon/eabi/smfcommonu.def
smf/smfservermodule/smfcommon/smfcontact.cpp
smf/smfservermodule/smfcommon/smfglobal.h
smf/smfservermodule/smfcommon/smfprovider.cpp
smf/smfservermodule/smfcommon/smfprovider.h
smf/smfservermodule/smfserver/datastoremgr/dsm.cpp
smf/smfservermodule/smfserver/datastoremgr/dsm.h
smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp
smf/smfservermodule/smfserver/server/smfserver.cpp
smf/smfservermodule/smfserver/server/smfserver.h
smf/smfservermodule/smfserver/server/smfserverqt_p.h
smf/smfservermodule/smfserver/server/smfserversymbian.cpp
smf/smfservermodule/smfserver/server/smfserversymbian_p.h
smf/smfservermodule/smfserver/server/smfsettingshandler.cpp
smf/smfservermodule/smfserver/server/smfsettingshandler_qt.cpp
smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp
smf/smfservermodule/smfserver/smfplugins/smfproviderbase.h
smf/smfservermodule/smfserver/smfserver.loc
smf/smfservermodule/smfserver/smfserver.rss
smf/smfservermodule/smfserver/smfserver_reg.rss
smf/smfservermodule/smfserver/transportmgr/smftransportmanagerutil.cpp
smf/smfservermodule/util/qjson/lib/qjson.prl
smf/smfservermodule/util/qjson/src/bwins/qjsonu.def
smf/smfsettingsui/SMFSettings.loc
smf/smfsettingsui/SMFSettings.rss
smf/smfsettingsui/SMFSettings_reg.rss
smf/smfsettingsui/ui_SMFSettings.h
--- a/ReadMe.txt	Thu Sep 23 17:43:31 2010 +0530
+++ b/ReadMe.txt	Mon Oct 11 21:59:54 2010 +0530
@@ -34,6 +34,8 @@
                                 \smf\smfservermodule\util\qjson
 
                 \smf\smfsettingsui - this contains SMF settins UI [incomplete]
+                
+                \Tests - contains test code for testing at smfclient level
 
 
 
@@ -65,14 +67,6 @@
     If your proxy requires authentication, provide "<username> space <password>" in plaintext in a file 
     "DoNotShare.txt" and place this file in "C:/Data/" - which is at "\epoc32\winscw\c\data" under your 
     SDK installation folder. You are good to go now.
-2. Since sample plugins are not integrated with Auth App and Credential Mgr yet, currently it expects
-the necessary credentials in plain text. Sample smfclientapp uses facebook plugins, place a file 
-named "FaceBookKeys.txt" under "C:/Data/" - which is at "\epoc32\winscw\c\data". This file should
-contain keys in the following order:  API key, API secret, session key, session secret.. all separated by \n
-If you want to know how to generate these, please see 
-http://wiki.developers.facebook.com/index.php/Authorization_and_Authentication_for_Desktop_Applications
-We are integrating plugins with CredentialMgr, so these painful steps won't be required once it is up.
-
 
 
 Building Steps :  - 
@@ -168,4 +162,22 @@
 	smfcredmgrclientdatastruct.h
 	smfcredmgrclientglobal.h
 	smfutils.h
-	smfcredmgrcommon.h
\ No newline at end of file
+	smfcredmgrcommon.h
+	
+	
+Observed Dependencies
+==============================================================================
+The authentication applications are loading web pages through Qt Webkit and hence its performance depends 
+on your network speed and response from the service provider. So if the page taken time to load please be 
+patient enough till loading is completed.
+
+
+
+Using Test Applications
+==============================================================================
+1) For testing individual interfaces, build the test applications provided (they are console bases applications). 
+Start the eshell and start individual application from eshell.
+
+2) For using test applications used to test SMF from Multiple client application, use the CrossTest1 and CrossTest2 
+applications. Build both and from the emulator start CrossTest1.exe (which in turn will send the request and 
+starts CrossTest2 immediately after sending the request to SMF.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/.settings/carbide_cs_settings.xml	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<section name="root">
+	<section name="CodeScannerPropertyPage">
+		<item value="1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:" key="CodeScannerRulesEnabled"/>
+		<item value="RunL" key="CodeScannerLFunctionIgnore"/>
+		<item value="false" key="CodeScannerProjectSettings"/>
+		<item value="RDesReadStream|RDesWriteStream" key="CodeScannerOpenIgnore"/>
+		<item value="low:low:low:low:medium:low:low:low:low:low:low:low:low:high:medium:low:low:high:low:medium:low:medium:low:high:high:low:low:medium:medium:low:low:medium:medium:low:low:low:low:low:low:low:low:high:low:low:high:medium:low:low:low:low:low:high:low:low:high:low:low:low:medium:medium:low:low:low:low:low:low:low:low:high:medium:low:low:low:low:high:high:high:low:low:high:low:low:low:low:low:medium:low:low:high:medium:low:medium:low:medium:medium:low:medium:low:low:low:low:low:" key="CodeScannerRuleSeverities"/>
+		<item value="Typhoon|Hurricane|Epoc|Nokia Mobile Phones|NMP" key="CodeScannerForbiddenWords"/>
+		<item value="false" key="CodeScannerXMLResults"/>
+		<item value="accessArrayElementWithoutCheck:accessArrayElementWithoutCheck2:activestart:activestop:arraypassing:arrayptrcleanup:assertdebuginvariant:baddefines:baseconstruct:callActiveObjectWithoutCheckingOrStopping:changenotification:cleanup:commentcode:connect:ConnectAndDontCloseMemberVariable:constnames:consttdescptr:controlornull:crepository:ctltargettype:customizableicons:debugrom:declarename:deleteMemberVariable:destructor:doubleSemiColon:driveletters:eikbuttons:eikonenvstatic:enummembers:enumnames:exportinline:exportpurevirtual:flags:foff:forbiddenwords:forgottoputptroncleanupstack:friend:goto:ifassignments:ifpreprocessor:inheritanceorder:intleaves:jmp:leave:LeaveNoError:leavingoperators:LFunctionCantLeave:longlines:magicnumbers:mclassdestructor:memberlc:membervariablecallld:missingcancel:missingcclass:mmpsourcepath:multilangrsc:multipledeclarations:multipleinheritance:mydocs:namespace:newlreferences:noleavetrap:nonconsthbufc:nonconsttdesc:nonleavenew:nonunicodeskins:null:open:pointertoarrays:pragmadisable:pragmamessage:pragmaother:privateinheritance:pushaddrvar:pushmember:readresource:resourcenotoncleanupstack:resourcesonheap:returndescriptoroutofscope:rfs:rssnames:stringliterals:stringsinresourcefiles:struct:tcclasses:tclassdestructor:todocomments:trapcleanup:trapeleave:traprunl:trspassing:uids:uncompressedaif:uncompressedbmp:unicodesource:userafter:userfree:userWaitForRequest:variablenames:voidparameter:worryingcomments:" key="CodeScannerRuleScripts"/>
+		<item value="D:\Carbide.c++ v2.3\plugins\com.nokia.carbide.cpp.codescanner_1.4.0.v200911050858_60\tools\" key="CodeScannerFolder"/>
+		<item value="CBase" key="CodeScannerCClassIgnore"/>
+		<item value="160" key="CodeScannerLongLinesLength"/>
+		<item value="false" key="CodeScannerKnowledgeBaseScanning"/>
+		<item value="" key="CodeScannerIcons"/>
+		<item value=".*\.au:.*\.avi:.*\.bat:.*\.bin:.*\.bmp:.*\.cmd:.*\.dll:.*\.doc:.*\.exe:.*\.gif:.*\.jpg:.*\.lib:.*\.log:.*\.mbm:.*\.mp3:.*\.mpg:.*\.png:.*\.raw:.*\.rtf:.*\.tif:.*\.wav:.*\.wbmp:.*\.wmf:.*\.xls:.*\.zip:" key="CodeScannerFileFilters"/>
+		<item value="false" key="CodeScanerHTMLResults"/>
+		<item value="kludge|workaround|\scrap|hack" key="CodeScannerWorryingComments"/>
+		<item value="" key="CodeScannerResultsFolder"/>
+		<item value="false" key="CodeScannerAutoscan"/>
+		<item value="codereview:codereview:codereview:codereview:performance:codereview:codingstandards:codingstandards:codereview:codereview:codereview:codingstandards:codereview:canpanic:functionality:codingstandards:codingstandards:canpanic:other:functionality:other:performance:codingstandards:canpanic:canpanic:codereview:codingstandards:localisation:performance:codingstandards:codingstandards:functionality:functionality:other:codereview:codingstandards:codereview:codereview:codingstandards:codingstandards:codingstandards:canpanic:codereview:codingstandards:canpanic:functionality:codereview:codereview:codingstandards:codingstandards:codingstandards:canpanic:codingstandards:codingstandards:canpanic:codingstandards:codereview:codingstandards:functionality:functionality:codingstandards:codingstandards:codereview:codingstandards:codingstandards:codereview:codereview:codingstandards:canpanic:performance:codingstandards:codingstandards:codereview:codingstandards:canpanic:canpanic:canpanic:codereview:codingstandards:canpanic:codereview:codereview:codingstandards:codereview:codingstandards:functionality:codingstandards:codereview:panic:performance:codingstandards:functionality:codereview:performance:performance:codereview:performance:codereview:codereview:codingstandards:codingstandards:codereview:" key="CodeScannerRuleCategories"/>
+	</section>
+</section>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/CustomListWidget.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,564 @@
+#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(QString aPlaylistname)
+{
+	 qDebug()<<"CustomListWidget AddList Item Widget = "<<aPlaylistname;
+    QWidget* customwidget = new QWidget;
+    QHBoxLayout* HMainlayout = new QHBoxLayout(customwidget);
+    qDebug()<<"CustomListWidget AddList Item Widget = 2";
+    QLabel *lab =new QLabel(aPlaylistname);
+    qDebug()<<"CustomListWidget AddList Item Widget = 3";
+
+    
+    HMainlayout->addWidget(lab);
+
+    qDebug()<<"CustomListWidget AddList Item Widget = 4";
+
+    //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);*/
+    qDebug()<<"CustomListWidget AddList Item Widget = 5";
+
+    customwidget->setLayout(HMainlayout);
+    qDebug()<<"CustomListWidget AddList Item Widget = 6";
+
+    QListWidgetItem *item=new QListWidgetItem;
+    
+    qDebug()<<"CustomListWidget AddList Item Widget = 7";
+
+
+    //customlist->adjustSize();
+    //customlist->adjustSize();
+    item->setSizeHint(QSize(60,60));
+    qDebug()<<"CustomListWidget AddList Item Widget = 8";
+
+
+    addItem(item);
+    qDebug()<<"CustomListWidget AddList Item Widget = 9";
+
+    setItemWidget(item,customwidget);
+    qDebug()<<"CustomListWidget AddList Item Widget = 10";
+
+}
+
+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,colSpace));
+		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(SmfPlaylistList *playList)
+	{
+	  QListWidget* customlist = new QListWidget();
+	    
+	    // Todo:- Display something when no posts are available
+	    foreach(SmfPlaylist playlist, *playList)
+	    {
+	    	QString playlistTitle(playlist.playListTitle());
+	    //	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(playlistTitle);
+	        //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* 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/Tests/DemoGUI/CustomListWidget.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,28 @@
+#ifndef CUSTOMLISTWIDGET_H
+#define CUSTOMLISTWIDGET_H
+
+#include <qlistwidget.h>
+#include <smfcontact.h>
+#include <smfpost.h>
+#include <smfactions.h>
+#include <smfplaylist.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);
+    QWidget* CreateListwidget(SmfPlaylistList *playList);
+    void AddListItem(QString aIconPath,QString aFirstLine,QString aSecondLine);
+    void AddListItem(QMainWindow *mainWindow,QStringList aIconPath, QStringList iconName);
+    void AddListItem(QString aPlaylistname);
+    ~CustomListWidget();
+
+};
+
+
+#endif // CUSTOMLISTWIDGET_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/DemoGUI.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,13 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-10-11T19:37:15
+// * 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/Tests/DemoGUI/DemoGUI.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,52 @@
+# -------------------------------------------------
+# Project created by QtCreator 2010-06-29T13:53:43
+# -------------------------------------------------
+TARGET = DemoGUI
+TEMPLATE = app
+QT += network
+CONFIG += mobility
+MOBILITY += contacts \
+    location
+SOURCES += CustomListWidget.cpp \
+    DemoGUI.rss \
+    DemoGUI_reg.rss \
+    FriendView.cpp \
+    GridView.cpp \
+    HomeView.cpp \
+    ImageDownload.cpp \
+    SMF.rss \
+    SMF_reg.rss \
+    ToolBar.cpp \
+    main.cpp \
+    mainwindow.cpp 
+    
+HEADERS += CustomListWidget.h \
+    DemoGUI.loc \
+    FriendView.h \
+    GridView.h \
+    HomeView.h \
+    ImageDownload.h \
+    SMF.loc \
+    ScreenSize.h \
+    ToolBar.h \
+    WidgetConstants.h \
+    mainwindow.h 
+   
+   
+FORMS += mainwindow.ui \
+    mainwindow.ui
+symbian: { 
+    TARGET.CAPABILITY = NetworkServices \
+        ReadUserData \
+        WriteUserData \
+        LocalServices \
+        UserEnvironment \
+        ReadDeviceData \
+        WriteDeviceData
+    LIBS += -lsmfclient.dll \
+        -lcone \
+        -leikcore \
+        -lsmfcommon \
+        -lavkon
+    ICON = sasken_logo.svg
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/DemoGUI.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,21 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-10-11T19:37:15
+// * 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/Tests/DemoGUI/DemoGUI_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,18 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-10-11T19:37:15
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <DemoGUI.rsg>
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xE808af5e
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="DemoGUI";
+	localisable_resource_file="\\resource\\apps\\DemoGUI";
+
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/FriendView.cpp	Mon Oct 11 21:59:54 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/Tests/DemoGUI/FriendView.h	Mon Oct 11 21:59:54 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/Tests/DemoGUI/GridView.cpp	Mon Oct 11 21:59:54 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/Tests/DemoGUI/GridView.h	Mon Oct 11 21:59:54 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/Tests/DemoGUI/HomeView.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,1011 @@
+#include "HomeView.h"
+#include "ScreenSize.h"
+#include "qpushbutton.h"
+#include "customListwidget.h"
+#include "GridView.h"
+#include <qtablewidget.h>
+#include "ToolBar.h"
+#include <QMapIterator>
+#include <smfclient.h>
+#include <smfprovider.h>
+#include <QMessageBox>
+#include <QDebug>
+#include <qsettings.h>
+#include "ImageDownload.h"
+
+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 New");
+    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";
+
+    
+    iPlaylistWidget = new CustomListWidget();
+    TabWidget->addTab(iPlaylistWidget,"PlayList");
+    qDebug()<<"Music Tab created";
+    
+    iEventslistWidget = new CustomListWidget();
+    TabWidget->addTab(iEventslistWidget,"EventsList");
+    qDebug()<<"Events Tab created";
+    
+    iMusicSearchListWidget=new CustomListWidget();
+    TabWidget->addTab(iMusicSearchListWidget,"SearchList");
+    qDebug()<<"Search Tab created";
+   
+    TabWidget->setGeometry(0,KHeadNameHeight + KWidgetGapFactor,ScreenSize::GetScreenRect().width(),ScreenSize::GetScreenRect().height() - 100);
+
+    //Drawing Tool bar
+    ToolBar* ToolBarwidget = new ToolBar;
+    QStringList actionList;
+    actionList.append("Open");
+    actionList.append("Reply");
+    actionList.append("Add Services");
+    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)
+				//getPlayList();
+				//getFriends();
+        	}
+    	}
+    
+    // Display albums
+    else if(tabIndex == 1)
+    	{
+		if(!iPostsListWidget->count())
+			{
+			if(!downloading)
+				getPosts();
+			}
+    	}
+    
+    // Display albums
+    else if(tabIndex == 2)
+    	{
+		if(!m_picList)
+			{
+			if(!downloading)
+				getPhotos();
+			}
+    	}
+    	
+    // Display activities
+    else if(tabIndex == 3)
+    	{
+		if(!iActivityListWidget->count())
+			getActivities();
+    	}
+    else if(tabIndex == 4)
+    	{	
+          qDebug()<<"MUSICCCCCCccc? ";
+          if(!iPlaylistWidget->count())
+          	{
+  	
+  				getPlayList();
+  
+          	}
+    	}
+    else if(tabIndex == 5)
+        	{	
+              qDebug()<<"MUSICCCCCCccc Events? ";
+              if(!iEventslistWidget->count())
+              	{
+      	           getEvents();
+      			 }
+        	}
+    else if(tabIndex ==6 )
+            	{	
+                  qDebug()<<"MUSICC Search? ";
+                  if(!iMusicSearchListWidget->count())
+                  	{
+                        getRecommendationList();
+          			 }
+            	}
+
+	}
+
+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\\sample.bmp");
+	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);
+	
+	}
+
+void HomeView::getPlayList()
+	{
+	qDebug()<<"Inside HomeView::getPlayList()";
+	
+	// Get the list of providers
+	SmfClient client;
+	QString intfName("org.symbian.smf.plugin.music.playlist");
+	
+	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("Last.fm" == provider.serviceName())
+			{
+			qDebug()<<"Plugin for Last.fm found";
+			pluginFound = true;
+			m_playlistService = new SmfPlaylistService(&provider);
+			bool ret = connect(m_playlistService, SIGNAL(playlistsListAvailable(SmfPlaylistList*, SmfError , SmfResultPage)),
+					this, SLOT( playListAvailable(SmfPlaylistList*, SmfError, SmfResultPage)));
+			
+			qDebug()<<"Connected ?"<<ret;
+			m_playlistService->playlists(1,5);
+			}
+		}
+	
+	if(!pluginFound)
+		{
+		qDebug()<<"Plugin for last.fm not found!!!";
+		QString smferrString("No last.fm plugin found!!!");
+		QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok);
+		}
+	}
+
+void HomeView::playListAvailable(SmfPlaylistList* playList, SmfError error, SmfResultPage resultPage)
+	{
+	  qDebug()<<"Inside slot : playlist availaible";
+	
+	  m_playlist = playList;
+		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 playlist  retrieved = "<<playList->count();
+		if(playList->count() == 0)
+			{
+			QString smferrString("No playlist");
+			QMessageBox::information(m_mainWindow,"No Playlist",smferrString,QMessageBox::Ok);
+			return;
+			}
+			
+		
+		foreach(SmfPlaylist playlist, *playList)
+			{
+			 QString title(playlist.playListTitle());
+		     qDebug()<<"playlists title = "<<title;
+			
+			}
+		populatePlaylistWidget();
+	}
+
+void HomeView::populatePlaylistWidget()
+	{
+	 qDebug()<<"playst Widget = ";
+	foreach(SmfPlaylist playlist, *m_playlist)
+		{
+		QString title(playlist.playListTitle());
+		
+		qDebug()<<" Widget = "<<title;
+		//Add this contact to the list widget
+		iPlaylistWidget->AddListItem(title);
+		}
+	}
+//For getting the events
+void HomeView::getEvents()
+	{
+	qDebug()<<"Inside HomeView::getEvents()";
+		
+		// Get the list of providers
+		SmfClient client;
+		QString intfName("org.symbian.smf.plugin.music.events");
+		
+		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("Last.fm" == provider.serviceName())
+				{
+				qDebug()<<"Plugin for Last.fm found";
+				pluginFound = true;
+		/*		m_musicEvents = new SmfMusicEvents(&provider);
+				bool ret = connect(m_musicEvents, SIGNAL(eventsAvailable(SmfEventList*, SmfError , SmfResultPage)),
+						this, SLOT( EventListAvailable(SmfEventList*, SmfError, SmfResultPage)));
+				SmfLocation location;
+				qDebug()<<"Connected ?"<<ret;
+				m_musicEvents->events(location,1,5);*/
+				}
+			}
+		
+		if(!pluginFound)
+			{
+			qDebug()<<"Plugin for last.fm not found!!!";
+			QString smferrString("No last.fm plugin found!!!");
+			QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok);
+			}
+	
+	}
+void HomeView::EventListAvailable(SmfEventList* eventsList,SmfError error, SmfResultPage resultPage)
+	{
+	 qDebug()<<"Inside slot : eventlist availaible";
+		
+	 m_eventList = eventsList;
+	  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;
+	  }
+	  int count = 0;
+	  qDebug()<<"Number of events  retrieved = "<<eventsList->count();
+	  if(eventsList->count() == 0)
+	  {
+		 QString smferrString("No events");
+		 QMessageBox::information(m_mainWindow,"No events",smferrString,QMessageBox::Ok);
+		 return;
+	   }
+				
+	   foreach(SmfEvent smfEvent, *eventsList)
+	   {
+		  QString title(smfEvent.title());
+		  qDebug()<<"events title= "<<title;
+				
+	   }
+	   populateEventlistWidget();
+	
+	}
+void HomeView::populateEventlistWidget()
+	{
+	  foreach(SmfEvent smfEvent, *m_eventList)
+	   {
+		  QString title(smfEvent.title());
+		  qDebug()<<"events title= "<<title;
+		  iEventslistWidget->AddListItem(title);
+		  qDebug()<<"events title= last"<<title;
+	    }
+	}
+void HomeView::getRecommendationList()
+	{
+	qDebug()<<"Inside HomeView::getRecommendations()";
+			
+			// Get the list of providers
+			SmfClient client;
+			QString intfName("org.symbian.smf.plugin.music.search");
+			
+			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("Last.fm" == provider.serviceName())
+					{
+					qDebug()<<"Plugin for Last.fm found";
+					pluginFound = true;
+					m_musicSearch = new SmfMusicSearch(&provider);
+					bool ret = connect(m_musicSearch, SIGNAL(trackSearchAvailable(SmfTrackInfoList*, SmfError , SmfResultPage)),
+							this, SLOT( RecommendationListAvailable(SmfTrackInfoList*, SmfError, SmfResultPage)));
+					SmfTrackInfo track;
+					qDebug()<<"Connected ?"<<ret;
+					//m_musicSearch->tracks(track,1,5);
+					}
+				}
+			
+			if(!pluginFound)
+				{
+				qDebug()<<"Plugin for last.fm not found!!!";
+				QString smferrString("No last.fm plugin found!!!");
+				QMessageBox::information(m_mainWindow,"Error",smferrString,QMessageBox::Ok);
+				}
+	}
+void HomeView::RecommendationListAvailable(SmfTrackInfoList* trackInfoList,SmfError error, SmfResultPage resultPage)
+	{
+	 qDebug()<<"Inside slot : Recommendationlist availaible";
+		
+	 m_TrackinfoList = trackInfoList;
+	  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;
+	  }
+	  int count = 0;
+	  qDebug()<<"Number of track  retrieved = "<<trackInfoList->count();
+	/*  if(trackInfoList->count() == 0)
+	  {
+		 QString smferrString("No trach");
+		 QMessageBox::information(m_mainWindow,"No track",smferrString,QMessageBox::Ok);
+		 return;
+	   }
+				
+	   foreach(SmfTrackInfo smfTrack, *trackInfoList)
+	   {
+		  //QString title(smfTrack.title());
+	
+				
+	   }
+	   populateRecommendationListWidget();*/
+	
+	}
+void HomeView::populateRecommendationListWidget()
+	{
+	  foreach(SmfTrackInfo smfTrack, *m_TrackinfoList)
+	   {
+		  //QString title(smfEvent.title());
+		  //qDebug()<<"events title= "<<title;
+		  //iEventslistWidget->AddListItem(title);
+	//	  qDebug()<<"events title= last"<<title;
+	    }
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/HomeView.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,99 @@
+#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>
+
+//added by sangeeta 
+#include <smfplaylist.h>
+#include <smfmusic.h>
+#include "ImageDownload.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();
+    void populatePlaylistWidget();
+    void populateEventlistWidget();
+    void populateRecommendationListWidget();
+    
+private:
+    void getFriends();
+    void getPosts();
+    void downloadImages(const SmfItemIdentifier &identifier, const QMap<QString, QUrl> urlMap);
+    void getAlbums();
+    void getActivities();
+    void getPhotos();
+    void getEvents();
+    void getPlayList();
+    void getRecommendationList();
+    
+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 playListAvailable(SmfPlaylistList* playlist, SmfError error, SmfResultPage resultPage);
+    void EventListAvailable(SmfEventList* eventsList,SmfError error, SmfResultPage resultPage);
+    void RecommendationListAvailable(SmfTrackInfoList* eventsList,SmfError error, SmfResultPage resultPage);
+    void Navigated2OtherTab(int index);
+    
+private:
+    QString iHeadName;
+    QMainWindow *m_mainWindow;
+    QTabWidget *TabWidget;
+    CustomListWidget *iFrndsListWidget;
+    CustomListWidget *iPostsListWidget;
+    CustomListWidget *iActivityListWidget;
+    CustomListWidget *iAlbumWidget;
+    CustomListWidget *iPlaylistWidget;
+    
+    CustomListWidget *iEventslistWidget;
+    CustomListWidget *iMusicSearchListWidget;
+    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;
+    SmfPlaylistService* m_playlistService;
+  //  SmfMusicEvents* m_musicEvents;
+    SmfTrackInfoList* m_TrackinfoList;
+    
+    //added by sangeeta
+    
+       
+    SmfPlaylistList *m_playlist;
+    SmfEventList *m_eventList;
+    SmfMusicSearch *m_musicSearch;
+    
+};
+
+#endif // HOMEVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/ImageDownload.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,144 @@
+/****************************************************************************
+**
+** 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";
+	
+	// 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();
+	
+	if(response.size())
+		{
+		QImage image = QImage::fromData(response);
+		
+		QString fileName("c:\\data\\");
+		fileName.append(m_nameReplyHash.key(aNetworkReply));
+		fileName.append(".jpg");
+	
+		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/Tests/DemoGUI/ImageDownload.h	Mon Oct 11 21:59:54 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/Tests/DemoGUI/SMF.loc	Mon Oct 11 21:59:54 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/Tests/DemoGUI/SMF.rss	Mon Oct 11 21:59:54 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/Tests/DemoGUI/SMF_reg.rss	Mon Oct 11 21:59:54 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/Tests/DemoGUI/ScreenSize.h	Mon Oct 11 21:59:54 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/Tests/DemoGUI/ToolBar.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,255 @@
+#include "ToolBar.h"
+#include <qmenu.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);
+
+   
+    //QToolTip *tTip = new QToolTip();
+    
+    button1->setToolTip("Home");
+    
+    QMenu* 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(2));
+
+    //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
+    QAction *newAction1 = new QAction(aListOfActions.at(0),Mainwindow);
+    QAction *newAction2 = new QAction(aListOfActions.at(1),Mainwindow);
+
+    menu->addMenu(addServ);
+    menu->addAction(newAction1);
+    menu->addAction(newAction2);
+    
+    //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";
+	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";
+	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/Tests/DemoGUI/ToolBar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,37 @@
+#ifndef TOOLBAR_H
+#define TOOLBAR_H
+
+#include <qobject.h>
+#include <qmainwindow.h>
+#include <qboxlayout.h>
+#include <qtoolbar.h>
+#include <qtoolbutton.h>
+#include "WidgetConstants.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;
+};
+
+#endif // TOOLBAR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/WidgetConstants.h	Mon Oct 11 21:59:54 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/Tests/DemoGUI/main.cpp	Mon Oct 11 21:59:54 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/Tests/DemoGUI/mainwindow.cpp	Mon Oct 11 21:59:54 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/Tests/DemoGUI/mainwindow.h	Mon Oct 11 21:59:54 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/Tests/DemoGUI/mainwindow.ui	Mon Oct 11 21:59:54 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/Tests/DemoGUI/object_script.DemoGUI.Debug	Mon Oct 11 21:59:54 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/Tests/DemoGUI/object_script.DemoGUI.Release	Mon Oct 11 21:59:54 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/Tests/DemoGUI/sasken_logo.svg	Mon Oct 11 21:59:54 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/Tests/DemoGUI/smfdemo.svg	Mon Oct 11 21:59:54 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,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAWRXhpZgAASUkqAAgAAAAAAAAAAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADkAQADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iig8CgAqpPfxQHa27PsuaxNb1sRym2iwSpIfdG3UY6HNYRviev8jWsKTauzGVVJ2R2B1ZOxb/vihdVj/jLfglcf9t/ztNH23/O01p7FEe2Z3UV9DMQF3c+oqyDmvPPtx9f0Nbmja7ulW3mxzgLtjbOSQBzmolSaV0XCqnozp6KKKxNgpMj1psxxBIf9k1wlzekXUoyeHPY1cIcxE58p3uR60ZHrXnv24+p/I/40fbm9T+R/xrT2L7mftkehZHrS1wC6pIowMfirf410vhzUzqGnr5gxMuS21CF68YJJrOcHEuFRSNqiikPSoNAyKMiuKm1yYTNgJjjqjen1qP8At2f0j/74b/GtfYyMvbRO5yKWuITxBcJnCxc+qN/8VTv+Ekuv7kP/AH7b/wCKo9jIPbRO1orJ8PauNZsHn4+SQxnCFen1rUY7VJ9BmsjUdRXISeKbxJCoWD/v03/xVN/4Su9/u2//AH6b/wCKrX2UjL2sTsaK47/hK73+7b/9+m/+KqYeKpMf8s/+/Lf40vZSH7WJ1dFcr/wlUn/TP/v03+NH/CVSf9M/+/Lf40eykHtYnVUVzX/CVR/3h/35b/GtDS9YXUZWRT0XP+rK/wA6ThJK7GpxbsjVrI8RagNP0uRiQPMDRjIJ5Kn0rWNeceOL2SXVxbKx8pYlbHI+bc4P8qdKPNKwVJWiYbXBdix6nk0nnVTwfX9aMN6/rXo2RxWLnnUedVPDf5NGG/yaLILFzzqVLgo6sOqkH8jVLDev60Yb1/WlZBY9V8L6iL/TFXI3RABgARgnPrW5Xkmgaymi6gtzcyOtsFKMFBbLHpwK9aFefVjyyaO2DvEZcf8AHtL/ALh/lXkt9N/p9x/10b+des3P/HrN/uH+VeOX4P8AaNzz/wAtW7+9bYbqZV+g/wA6jzqp4b1/WjDev6112Rz2LnnUngnxHHa/E/VdMmYKLiOCOHCMSTgk5PQVUw3r+tcRrt63hrxvp3iBGIZJgzZ+YHancDBPWufEL3bm1HSR9UVHPJ5URao7C4F1Y284/wCWkSv0x1UH+tVddlMOlu4OPmH8640rux0t2R5WJuKXzqp4OOv60Yb1/WvTsjgsXPOpRNyKpYb1/WlAOR/jTsgsbPwg1lXl1DR8jcs81x905xvA69O9eqSf6tv9018y/D3XG0X4oz7nIS5X7OBgsMtMo6A/rX01L/q3/wB0/wAq8t7netjyK4m/fn6D+VRedUN0D9ob6Dv7CocN6/rXppKxw2LnnUedVPDev60Yb1/WnZCsXPOo86qeG9f1ow3r+tFkFi551b/g27Ca5IrHAaIKOCeSwrlMN6/rUun3jWfiDShuI868ii4z3YVjXXuGtJe8e1scDJ6V5PrchuNavGP8E0kY+gdv8a9SvTizlP8As15fdpuvrlvWeQ/+PGsMPu2XXeiRm+X70ojJOBVvyzVXUpVstNuLlzhYk3E+n5V1OVkc6V3YbCbeUfecHdt6U94cMwGdoPU1wHh7Wlg1WRZZT5UrNsJ3HLFhge1ehpJ8okABZeGBHGa5Y4iV9djpdFW0IPLo8v3q55dHlmurmOUxdYs3utNeJCd29W4bHTmvQvhn4qPinwla3M20Xjea8qojBQPOcLgnPYDvXL+Xw2R/Cf5V558FPEM+i+LIdJbBGoGOHaxY7eC/y44FcuI3TOqg9Gj6buf+PWX/AHD/ACryO+TOoXH/AF0bv7165Pzaye6H+VeXXkf+nT/9dD/Onh3ZsVfoZnl+9Hl+9XPLNHlmunmOYp+X71wPxUh26bpj92llH/jor0ryzXCfFO1aXSLBwOIZJGPI9BWdZ3gzSlpNHrnwi1BtR8ELKxJK3DR857KvrW94vfZoEuOu9f51wP7P9yD4HlticsL2Z+c9MJXb+L2/4l4jz97B/IiuSn8SOqo7RZ535dHl+9XPLNHlmu/mOEp+X70oj5/+vVvyzSiPkUcwHiMbtF8SNOZeo1GE/XEwr7At5WnsFlYAM6knH418fN/yUew/7CMX/o4V9fWP/IKi/wBw/wBa857noLY8ouY/9Ib6D+VReX71o3Ef74/QfyqLyzXoqRwMp+X70eX71c8ujy6fMIp+X70eX71c8ujy6OYCn5fvWJrLmDX/AAowPB1u2B+m4V0/l1zPiZduueFP+w3bf+hCsaz9w1o/Ge86kcadOf8AYrzyWPdPKfV2P6mvRrxd9nKvqtcPNDieUY6Ow/U1jRdrmtZXsZ3k1j+KrVpfC2oqud3lHAGOeldN5XtUdxaLcwPC4G1xg5ANbN3VjFKzufPUbNBcc8MpyOe+a9M8M6ql5YqCwLRALL1ODjvmud8U+DL3TJXubeKWW3J3GQhQF6kjr2xWV4bv2tNRjIcmM7i67jgnacZHeuNqx2J3Wh7HFHuiBp/lU3F3YW0a3FvtJ6bj1oXUiB/qIz9a6FVVjndJ3HeVwfoa+ftdE+g+LpvJLxzWwiZCDtIJhU9R069q9/bUmIP+jxj6V4N44064svEtxJKZHjkEQSVzkviJM/l0rOpNSNKcHHc+ovBfiG18SeEI7i1nExgjW3lIDcSCJCwOep+aueuos3kx/wBs/wA6xPgDOjeCtQiMp8z+0JiE55HkwjNdRcRf6VLx/GadF2uKsr2MzyaPK5xV7yvaq1y4glizgeY4QZ9635jDlIvJrmfH1mJPB+oyEZMUDMOnqtdp5XtWD44h/wCKD17jn7Icf99LSm7xY4K0kZH7Pl3lLq0448yTv3Kj6V6f4tIL26eqsf1FeKfs+3JTxffQsxC/YyQMnqXFe1eI/wB7dwjH3VYfqK56fxHRU+E5jyaXyflzV3yvaogR9rNv/EI9+PbOK6eY5uUreTSiH5hV3yvalEXzDinzC5T52kGPiTY/9hKL/wBHCvr2x/5BcX+4f618iT8fEuy/7CUf/o6vruw/5BkX+4a4nudq2OAmizKfw/lUfk1oyxfvDx2H8qZ5XtXYmcbiUfKquLkhQFRGHqa1Wi+RuP4T/KudtZA8CjPIzn8zWVWT0NaUd7l37U3/ADyj/Wni9YD/AFEX5VWorHmZtyos/bm/54Rfka898T3k8/xL8NRFFWEajaMNpP3t47V3Ncl4itgPF3he5I+9q9smcD++KHJvcaikfRMg3RlfWuQuIv8ASp+P+Wr9v9o12Brn7y2KXT8feJbp6k1VN6kVFdGX5X+cUeV7fpV3yfajyT6Vpcy5TNns4bmIxzxJIh/hdQR+Vc/a+AtNi8SwalmNYED7rX7MvlncpAzz2znpXZeSfSjyT6UnZ7jV1sSa/YQ6hppltdpeFSQqKPmzgVwrKUdkYYIJBru4mkiI5JTumeDXM61p0kM5njTMTckjAAJySOtZONjaMrmTXJ+O9CGqaM9xEp8+2BcBUBMhOBgntXV5pGVJFKyKHQ9VYZBqSjmPgLevHqt7pjEj5ZpSu49cRr06dq9WnizcScfxHtXlngKzi8KfFGZ7qbZbXdnIUOzjfJLgLgZ9OtewTQkTScfxGtKbsZ1Fcz/K/wA4rnvE0v2WfSB082/ij6465rrvJPpXC/EaQ2s/hdugbW7dW+nNW3oRGOp1ph5PHf0qhrdgL3Qr61K7hNFsxtBzyO1bnlh8suCp6HFKtt5jqhAwzAdPcU2xJHz38I7r7B8QJU3bd5EPXH/LYDFfQeqjzLxv9lmH618x+Erv7D8SLUZx5uqJF1x1nFfUV3GWu5jj+M1lDc1nsZflf5xXPJcE/EmbT+w0dZ8Z/wCmuOldf5JPauKtis3xrudpBx4dUf8AkcVo5GaidR5Xt+lAi5HH6Vd8k+lKsPzDinzE8p8v3Ix8TrP/ALCcf/o6vrvT/wDkGRf7hr5GvBj4oWg/6ikf/o+vrnT/APkGQ/7hrnOjocxJF+8PHYdqb5X+cVfeLLnim+SfSuhMwcSg8X7t+P4T29q830W9eXxLrlk2dlsluV+Y/wAS5PHavVnh/dvx/Cf5V5F4WhlPxavQY91tO9or5IwwEY6jvUVHcumrHT5FGRXp39k6T/z423/fsVFJommOQVtbdfpHWRqebZFYHidM3Ggzj/l31SKYn/dOa9l/sHTj0gg/791W1Dwhp9/CkZhgUo24HygcGgDoqo30IYh8c8DpV6qGqwTy2weCRlaJvM2KP9Zjnb14z07007MTVyp5XtR5XtT7GdbyDcUEcygebDncYmP8JOBVryfb9Ku5Nil5XtR5XtV3yfb9KPJ9v0ouKxS8r2pktqk8TRuisCCOVBxxjNaHk+36UeT7fpRcLGLbeFbViH81TxypiXir0XhuyjJ3RQPn+9AtWZZWs4jKF3cgYziryOsi7lII9RUMtGPP4Y0mR0n/ALPshcRkETC2TfgHOM4zjNOkjzIxx1Na7fdNUzF8x47+lOLsKSuUvK9q8z+MR8i18Ny9NmswN+QY16z5Pt+leR/Hs/Z/D+jS9Nmpxt6dEc02xJHoekn7To9pP18yMNnrV+KPE0Zx0YfzrM8Ft9q8EaLP132iNnOf1reWLDqcdD6UXCx8krYPpfxT0yJwwJ1WGUBhjg3FfUyKZY1kPVhk18/+M7D7J8b9CiCYDXFk5+XHWc19Gpb7I1THQY6Uk7DaK0cOZFGOpFeU+Db5dU+MWpSqwcJorR5BzyLhfX617EsYV1OP4h2968D+DDNN8T9b3sWP2K4GTz/y3jptgke3eV7UqxfMOKueT7fpSrF8w4/SncVj5Hvhj4pW3/YUT/0fX1xp3/INh/3a+SNQ/wCSqW3/AGFE/wDR9fXGnf8AINh/3azLKLRfN0pPK9qumLnp+lHk+36VdyLFLygRjH6VUh0bTbe5N1BptnFcEgmaO3RX46fMBnitjyfb9KPJ9v0p3CxVzL/ff/vo0Zl/vv8A99GrXk+36UeT7fpRcLGXqV3JY6XdXRkYCGMvy5Fbls/m2sUn95Fb8xXK+PS1v4A12VMhltGwRweore0K4W50a0dGDYiQEg552ioZSNGkIyCD3paKQzm9UZ9FvftsUbGB9zTKvyqTwBuP404eJrNkDia3KnoROMVt3dpBe27QXEayRt1VuleTazp17oV1JaPLJJCADHMI9ikkZIAyen1pO5UbX1O+/wCEms/+e0H/AH/Wj/hJrP8A57Qf9/1rxm+1LUbR/lknlTGdytgD26GqH/CT3f8Afm/7+j/CsnUsdscIpK6Pdf8AhJrP/ntB/wB/1o/4Saz/AOe0H/f9a8K/4Se7/vzf9/R/hR/wk93/AH5v+/o/wo9qV9SZ7nJ4isJUKO9sw9DMp5rL8A+I3vIpNFvbnztQs0DyyTTZkfexZcr1HBAHsK8g/wCEnu/783/f0f4VS0zxZe+H/HMWtCeRbe5dBPCZAqyqkeMM2OmRnpVQnd2Ma+HdOPMfUTttjZj0AzWDJ4jtI5XQywAqcHMwFaEd8l9oP2yIjElt5mFbOMrnGfxrwPVPEl1Hq94geXCzOOJR6/SnOXKRQo+1ue1f8JNZ/wDPaD/v+teUfHnVIdQ8K6cInjYrfA/JIG/5Zv6Vg/8ACT3f9+b/AL+j/CsDxvqk2o+HLYSs5xeZ+Z8/wN7VMal3Y1q4Vwg5HtHw38UWy+BtLt3lhDQW6IQ04B6enaus/wCEms/+e0H/AH/Wvmzwnr9za6WYUkk2qQABIBjj6Vvf8JPd/wB+b/v6P8KHUs7Dp4TnipGp4weK/wDjVpd8oQ28Udo3mA5TcsxJ+bpmvYT4ms8n99B/3/Wvn661CWaeHUGDmVXVdxbJwDnrirn/AAk93/fm/wC/o/wodQccG3c9uu/FNpHau6zQZXB4nHqK8U+D2oRWXxE1e4lZFV7OcAs4UczRnrVPUPE15/Ztwweb5Vz/AK0ev0rmvC2oS2Orz3EZYM8LA7WweWU+ntTU7xuZToctRQ7n1H/wk1n/AM9oP+/60q+JrPcP30HX/nuteE/8JPd/35v+/o/woHie7z9+b/v6P8Kn2pv9SZyN5IJPijaupBB1SMjBz/y3r6508402H/cr46t5DL4+0yRs5a/hPJ/6aivsKzONIQ/9Mz/Wtjz2rOxmv4ks1bBlg/GYUn/CTWf/AD2g/wC/614je+JbtLplDzdF/wCWo9B7VB/wk93/AH5v+/o/wrH2p3rBM91/4Saz/wCe0H/f9aP+Ems/+e0H/f8AWvCv+Enu/wC/N/39H+FH/CT3f9+b/v6P8KPaj+pM91/4Saz/AOe0H/f9aP8AhJrP/ntB/wB/1rwr/hJ7v+/N/wB/R/hR/wAJPd/35v8Av6P8KPah9SZ6r45121u/AutwLLCWa1YACYEnkdqufCvUW1PwaszOXKzvGCW3cAAV4pqfiG6udLuoWeUq8ZU5kBH8q9Z+CH/JPz/1+y/0q4S5kctel7JpHpFFYPiTxLF4bt4ppbd5hKxUBWCngZ71yE3xYt3Xaml3aEHqJUoc4x3YU8NVqK8Voem1k6/okGtae8TqvnDmJ2ydjdM4HtXnFx8TZ5HzDFdxrzwWQ/0q14b+Icj6vbWupSSOl2/lI0joojPXJ4FJVIt2Rc8HVpwc5bHPXli1pdPa3kD7ckASIyZGcZGcHHWsTVNCjwJbRFRR/AisxbJ/GvZfEfhWPWgLm2eGOTA/eNubKgH0PvXAXWnXFhM9tOrMFOBJsKr+tVKCluZ0a86TujzowkHBUg+hBFJ5XtWzqFqIrxwFwvGKqeVXE9HY+hhacVJdSj5XtWP4nhMdlZSFgQzuFTHPpXT+VXPeMz5dhpvH3ZJDxWlJ+8c2Ohai2exfCPxY2r+FL3Tby9Wa8j8zy0eWPesSxRgDYMHGc84/GvPNXi/4nV9x/wAt37e9UvhLePbeLJxHKI1eykBPGDkrxzW3q8X/ABOb7j/lu/8AOrrvRHLlqu5GJ5XtWX4pTb4et/8Ar7/9kNdF5VYvjFNvh22/6/P/AGRqzpP30deMjaizM8LfPbzr33jH5Vv+V7Vz3hE5neP1JOPwrr/Koq6SDBLmoorEZthFtPDbs1F5XtV7yqXyqi51ezMy+jC6JqJPUQjH/fQrD0Jd19IP+mR/mK3ddkFvpMyH/lsu0fzrH8Mru1KUf9MD/wChLW8f4TPLq/75FG35XtS+Vz0/SrvlUvle1c9z1OQ4yzGPHWkj/p+g/wDRor7Dtf8AkDp/1yP9a+PbUY8eaV/1/Q/+jRX2Haf8ghP+uZ/rXetj5ifxM+aL+L/TH47L/wCgiq3le1a17F/pbcdl/wDQRVfyq4Wz6aMNCkIcsBjvXU2/hi3lgRz5JJz2b1PvWIIuQfeu00mTzdMhY/e+bP8A30a1pRUtzhx05UkuVnPnwbLuJF5CBngbG4pP+ENm/wCf2H/vhq6+itvZQ7Hn/XK3f8jz7X/DkumaLd3RnSVY4yxCofbvXq/wPOfh7n1vJf6VyniW3+1eGNTgHWSAqPzFdT8Dc/8ACvWB/hvpl/LFVGKjsY1Ks6jvIv8AxNtRcaVaMVB8p3bp0+WvKPJ9q9t8a24n0CZiM7EY9/avJfs/t+lc1Ze8e1ls17Gz6GZ5PtWZr8Dx6PPeRHbNaqZI3xyp6ZFdN9n9v0rO1+0eTw7qEUaMXki2gKpJPPpWcNJI6cTaVGS8j0f4VePIfEmjLa3E2LyHcCssqlyqhBnAxxlq76+0601GLZdQLKvo2fXNfG3hnXr3wv4givbWV4mVhHMFUZaPeCy8jjO2vr7w7rcPiDQ7XU4BtS4QPsLhiuexxXefMHlXjHw/JpFxCzOjrKzAFVI6Aev1rmPJ9q9L+IsguJ7SEMCYmfjOcZArh/s/t+lcVX42fR4GVqEbmZ5PtXL+Oo9tjp+O8j59+K7v7P7fpXF+PAClrFxlHY4+qinRXvk4+S9g0cr4avpbDXLVo2Zd0qqcdwWHFeq6knm6pdybCu6ZjtPbmvI9OAGtaeSOftUXPtuFe2XsIe/uGA4MrH9a0r7I5MraTlcxfJ9q53x0m3w5a/8AX5/7I1dr9n9v0rlPiJHs8N2nH/L6P/QGrKl8aO3HSToSOU8Gtu1+OLBO5HP/AI7Xofk+1cD4Cj8zxdbr/wBMpf8A0GvURb8dP0qq694xy2a9k0+5meT7UeT7Vp/Z/b9KPs/t+lY2PR5kcZ40iCaZp7ADJmf+RrN8Irv1aYf9O5/9CWtXx3IBBZ246xykkZ9Vz/WqPgZN+tzjr/orf+hLXUlakeI5Xx1/M6vyfalEPPStL7P7fpSi356fpXKe3zI8tg48faYPS/h/9GivsGz/AOQRH/1zP9a+P4xj4g6aP+ohD/6NFfYFn/yCY/8Armf616C2PlJ/GzwO8hzdNx2X+QqDyfatm7t83Lcdl7ewqH7P7fpXntH1MZKxmeT7Vb8KXslxrOraeSzC3SAxp7uCTgdasG34PH6VleB2ZfitcxA/u5JLRXHqNldGH3Z5eaNOMbHdfZrj/nhL/wB8ml+zXH/PCX/vk16d/Zln/wA8R+Zo/syz/wCeI/M10njnlkls8qNE0TYbg5BrT+Cj+X4QubZwQ41C4bB443DtXdnQ9OLbjbLn/eP+NN0nQNM0RHTT7VYA7M7BWJySck8mgBviKHztAvUHUxECvKWtirFSOVJB617PNGssTRsMhuDzivNNRszFqV0vYzSEdem84rGqtmehganKnEw/s/tR9n9q0/Io8isbHoe0PFfGPhmaw1FpbaEvFIAxEas3J3Ek/lXtnwZ1MJ4MeK4zGbby0CvhT07UxrYOhRvusMEZNRWunQ2cckcCbVkILAsTkjp1rVVGkefPCxcrp6C6vcHU9SludpCseAw56Y7VR+z+1afkUeRWT11O6M1FWRmfZ/avMPHGf+EjuYc8R+WRj3iQ/wBa9i8jgn2rxbXLj+0dTmuj/wAtAnUAdEUdvpWtJa3OTG1LwUTAto2/tO0KHDeemD77q9zSCQxqZSGkI+ZgOp714xp8edZsVPe5jH/j4r3+W22TOvTDEd6dVbGeBlytmT9n9q4r4oR7PDVn/wBfo/8AQGr0jyK4H4tx7PDNj/1+j/0W9RTXvI6cVO9Jo4r4cDPjW2H/AExl/wDQDXr/ANn9q8i+G3/I72v/AFxm/wDQDXuktr5chX0+tVWWxhgZ2TRk/Z/ak+z+1ankUeRWVjv9qeMePDIni27tmbKRrCVAHTMSH+taXw7si97PdY4MTx9/7yGszx5IJfGt84OQY4P/AESldp8MrPd4Ye6x1u5Y88/3YzXQ17ljyISviObzOh+z+1At+RxWn5FKIORXNY9f2h4TjHxF08f9RGL/ANHCvr6y/wCQXF/1zP8AWvkJxj4kWA/6iUX/AKOFfXtj/wAguL/cP9a7FseDL4meUXMH79uOw/lUX2f2rXuIP3x+g/lUfkVyWPdVTQyzb/KeOxrl/BYx8Xph/wBNbT/0Cu7aD5W+hrhvB4x8YZ/+utp/6LFa0lucOOlzJH0jRRRW55wUUUUAFcp4hs/9PEo6FAOp65Y11dUdStRc259V+brjoKmSujSlPllc4vyKPIrV+z44/rSeQP8AJrGx2e0MvyKPIrU8gf5NHkD/ACaLB7Qy/Io8itTyB/k0GAY/+vRYPaHJ+JrttK0Z7hDh96qOM8HOeDXi0kO1QvoMV6T48v1utRFmmcWxZHyMc8EYPeuEuIsgnv3raCsjkqz5pFHSbZ5df08JjctzEf8Ax8V9DXUDG7mLfe3nP515V8MdJi1PxgY5QSIrdpRhyvKsuK9onhzcSH1YnrU1EXQly3MfyK83+M0ezwxYf9fw/wDRb1655A/ya8u+OUezwvp//X8vf/pm9TBamlWd4NHm3w3/AOR3tf8ArjN/6Aa+j9Qttl9Ivpjv7V84fDf/AJHe1/64zf8AoBr6l1OHN/Ifp39quaujKhLlZgeRQLfmtTyB/k0jIIlL+nvWVjpdQ+VtTvRqGoS3YBAdVHIx0UD+le1/Cu1I+Grluv8Aa0vQnoY0/wAK8GJxAx9Aa+nPAlgLXwIkf968Mn3s9Y1raWxxU376ZY8ilWD5hWn5A/yaVYBuH+NY2O32h8yT8fEyyH/USj/9HCvruwGdLi/3DXyNdDHxPtB/1E4//R9fXOn/APINh/3K3OB7nGywZkP0H8qZ5Fa0kHzn8O9N8gf5NYWO9VDKaD5G/wB0/wAq8z8JDHxkuB/01tP/AEWK9geAeW/+6e/tXkPhYY+M9wP+mtn/AOixWlNGFeXMkfRtFFFaHMFFFFABTXUOjKehGKdRQBwuvz3Gj3h8zyzHKWaLaMnaMdc455rD/wCEqx/A3/fA/wAa9Nv7GLULN7abd5bYyFYg8e9eTa9of2Sd7S8AMZxkI5PUZ61Dj2NYVEtJFz/hKv8AYb/vgf40f8JV/sN/3wP8a5hvDNiUJSI5PTMhqOLwvDjMsan/AHZDUcsjXnpnWDxVkgbG5/2B/jUOo+I5mtHijUZlQoxZBjawIPfrzWTbaVa2JJt0Zc+rE0s8XBx0+tXGPcynUT0ic7dQ5J9RWRPHgZ/OumniP4j3rMeye6nWGMDMnyjJPpVmR3Pwn0BIba811jmVDJb4DHG3ajDjHuau3fijy72ePY3yuR9wev1ru9KsVi8OwW3zHfbqGyxPOwDg+nFeb6roNvZ38qFDgu2MOTxmpkm9jSnJLcn/AOEr/wBh/wDvgf41wPxb1b+0vDNiNpG29B5UD/lm/vXU/wBmW391v++zXD/EjSCunwTxBfKEmDljuyFY/lUxi0ypzi1ZHNfDb/kd7X/rjN/6Aa+kfFWsf2df7dpO444UHt9a+bvht/yO9r/1xm/9ANfRHj7w/bX0kVzcxlhuJG1yOwqpK60Ig0nqZP8AwlX+w3/fA/xqjrHizbpkjbH6j+Aev1rM/wCEY0v/AJ4yf9/DWH4r8O20OiySWseMMudzk96hRdzVzhbQ8rl4tpB/sn+VfVtzKNB8F6cwBbzJI+nzdY/fHpXy7Z2/2q6S3I++GHXHY19QeMtK/tLwppkMqhoY2ifG4g5EbD+taPYxi0nqYv8AwlX+w3/fA/xpR4r+YfI3/fA/xrmv+EY07/nk3/fw01/C9kUPlxHf2zIcVlyyOjnpnmMknnfEixk/valEfzmFfXticaXEfRD/AFr45tAyePtPRuq6lEv5SivsS0BOkR4/55n+tbHM9zzyfxRtmI2N0H8A9PrUf/CVf7Df98D/ABrlpPDSyPulRN5AzhyO30pv/CLw/wBxP+/h/wAKx5ZHSpUzqm8VZRhsbkEfcHp9a4XwfJ53xhnf1ltP/RYq8/hiJY3YImVUkfvD2GfSue+F9xJdfEbzpcb2mtwcDHQEdPwq4JrczquLtyn1JRRRVmIUUUUAFFFFABWVr2kJq9gY/m8xclAG2gn3ODWrRQB5Jf2E+j3f2a68tSQGAV9xwTx6elRAgHr8pr1a+sItQhWKVnChg3ynHP8Ak1zeoeEVaYG1DurZLl5AOaAONdahZeo9RXTS+EtSAAihQ/WUU1fB+pFTvhTOO0ooA4u5iA4LKPTLYrvvAmgJbWg1FyTJNkHbIGU7XYdMe3rW1oHh6PS0Sdy4uSuJF37lz7VvUAFYPiXSft9r5qf65AAuXwuM5OeK3qQjII9aAPIuhxx+FQXlst5ZTWz52yxshwcHBGOv413934Wiur2SRvM2HGCJAO1Rf8Ibbes3/fwf4UAfPPhnRzo/xNjt1wY/Ln2fPuOAvfgV9UX9qL2ylgbOHXbwcfrXB678OUvJIry1Ez3cK7EVpwFwTzkYr0XtQB5JNH5U7x5BwSODnvUbAMuDnFd5rnh9tRvFnQMTgKfnA4Gf8az/APhD2/ut/wB/RQB4Dp2iLYfEuw0ssP8AWKP9YCfmi3dce/pX1JJb+bpIh7mLaOf9nFcRc+Brpdf0bUrWMs1ncGV90wwBsKjjvXoSA+WN3XHP1oA8ou4DaXktuxG6Ntpwc1FXc614fkv7+KSNSYyG8w7wMHtis9/CEgQ7EYt2zKKAPD/E2lNB470S7jI8lry2Xl8tuMmTxjpX01pwzpsA/wBmvOdf+H+oalaW4ihDS29wtxGPPAG5eRn2zXf+H4Lu10Cygv0RLpIwJVQ5UN7UAcZ4mtGt9VlYEbGxt5yfujrWNXoXiPSZtUhiEK7mTJGWx1rn/wDhEb3H+rH/AH9FAHOMMqR6jFcf4Yt0074wmIZKvPaheckfuwTn869Mfwnqwc7IIyvbMorJk8B68PGegapHbxeRbXfmXbGcfKoVQMDv0NAHrNFIudoz170tABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFc34+8QXfhXwRqWtWMcMlzaqhRZ1JQ5dVOQCD0J70UUAf//Z" transform="matrix(1 0 0 1 0 0)"/>
+	</g>
+</svg>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/DemoGUI/ui_mainwindow.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,76 @@
+/********************************************************************************
+** Form generated from reading UI file 'mainwindow.ui'
+**
+** Created: Tue Jul 27 13:53:17 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfMusicEventsnService/SmfMusicEventsnService.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,287 @@
+/****************************************************************************
+**
+** 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 <smfclient.h>
+#include <smfcontactfetcher.h>
+
+#include "SmfMusicEventsnService.h"
+
+SmfTestApp::SmfTestApp(QWidget *parent)
+    : QWidget(parent)
+{
+	ui.setupUi(this);
+	m_contactFetcher = NULL;
+	m_providerList = NULL;
+}
+
+SmfTestApp::~SmfTestApp()
+{
+	if(m_contactFetcher)
+		delete m_contactFetcher;
+	if(m_providerList)
+		delete m_providerList;
+}
+
+void SmfTestApp::getFacebookFriends()
+	{
+	qDebug()<<"Inside SmfTestApp::getFacebookFriends()";
+	
+	// Get the list of providers
+	SmfClient client;
+	QString intfName("org.symbian.smf.plugin.contact.fetcher");
+	
+	m_providerList = client.GetServices(intfName);
+	qDebug()<<"client.GetServices returned a list with count = "<<m_providerList->count();
+	
+	// flag to check if required plugin is there
+	bool pluginFound = false;
+	foreach(SmfProvider provider, *m_providerList)
+		{
+		if("Facebook" == provider.serviceName())
+			{
+			qDebug()<<"Plugin for Facebook found";
+			pluginFound = true;
+			m_contactFetcher = new SmfContactFetcher(&provider);
+			SmfError err = m_contactFetcher->friends(1, 10);
+			qDebug()<<"Ret value of friends() = "<<err;
+			
+			bool connected = connect(m_contactFetcher, SIGNAL(friendsListAvailable(SmfContactList*, SmfError , SmfResultPage)),
+					this, SLOT(friendsListAvailable(SmfContactList*, SmfError , SmfResultPage)));
+			qDebug()<<"Signal-slot connected ? = "<<connected;
+			}
+		}
+	
+	if(!pluginFound)
+		{
+		qDebug()<<"Plugin for Facebook not found!!!";
+		}
+	
+	qDebug()<<"Returning from SmfTestApp::getFacebookFriends()";
+	}
+
+
+void SmfTestApp::friendsListAvailable ( SmfContactList* list, SmfError error, SmfResultPage resultPage )
+	{
+	Q_UNUSED(resultPage)
+	qDebug()<<"Inside SmfTestApp::friendsListAvailable()";
+			
+	if(error)
+		{
+		SmfClient client;
+		QString errStr = client.errorString(error);
+		qDebug()<<"Error found, code = "<<error;
+		qDebug()<<"Error string is = "<<errStr;
+
+		return;
+		}
+		
+	//display friends information
+	int count = 0;
+	qDebug()<<"Number of friends retrieved = "<<list->count();
+	if(0 == list->count())
+		{
+		qDebug()<<"No friends available!!!";
+		return;
+		}
+		
+	foreach(SmfContact contact, *list)
+		{
+		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();
+		qDebug()<<"";
+		}
+	
+	delete list;
+	}
+//chinmaya
+void SmfTestApp::lastFm()
+	{
+	qDebug()<<"Inside SmfTestApp::lastFm()";
+		
+	// Get the list of providers
+	SmfClient client;
+	QString intfName("org.symbian.smf.plugin.music.service");
+	
+	m_providerList = client.GetServices(intfName);
+	qDebug()<<"client.GetServices returned a list with count = "<<m_providerList->count();
+	
+	// flag to check if required plugin is there
+	bool pluginFound = false;
+	foreach(SmfProvider provider, *m_providerList)
+		{
+		if("last.fm" == provider.serviceName())
+			{
+			qDebug()<<"Plugin for last.fm found";
+			pluginFound = true;
+			SmfMusicService *m_musicService = new SmfMusicService(&provider);
+			SmfError err = m_musicService->userMusicInfo();			
+			bool connected = QObject::connect(m_musicService,SIGNAL(userMusicInfoAvailable(SmfMusicProfile*,SmfError)),
+					this,SLOT(userMusicInfoAvlbl(SmfMusicProfile*,SmfError)));
+			qDebug() <<"Smfmusicservice::userMusicInfo" ;
+			qDebug()<<"Signal-slot connected ? = "<<connected;
+			}
+		}
+	
+	if(!pluginFound)
+		{
+		qDebug()<<"Plugin for last.fm not found!!!";
+		}
+	
+	qDebug()<<"Returning from SmfTestApp::last.fm()";
+	}
+void SmfTestApp::userMusicInfoAvlbl(SmfMusicProfile*,SmfError)
+	{
+	qDebug()<<"User music info";
+	}
+
+
+
+
+
+void SmfTestApp::FacebookFiltered()
+	{
+	qDebug()<<"Inside SmfTestApp::FacebookFiltered()";
+		
+	// Get the list of providers
+	SmfClient client;
+	QString intfName("org.symbian.smf.client.activity.fetcher");
+	
+	m_providerList = client.GetServices(intfName);
+	qDebug()<<"client.GetServices returned a list with count = "<<m_providerList->count();
+	
+	// flag to check if required plugin is there
+	bool pluginFound = false;
+	foreach(SmfProvider provider, *m_providerList)
+		{
+		if("Facebook" == provider.serviceName())
+			{
+			qDebug()<<"Plugin for Facebook found";
+			pluginFound = true;
+			SmfActivityFetcher *p_smfActivityFetcher = new SmfActivityFetcher(&provider);
+			QList<SmfActivityObjectType> Article;
+			
+			SmfActivityObjectType SmfActivityObjTypeComment;			
+			Article.append(SmfActivityObjTypeComment);
+			
+			// specify some dummy value for Article
+			int pageNum = 1,perPage=1;			  
+			SmfError err = p_smfActivityFetcher->filtered(Article);
+			bool connected = QObject::connect(p_smfActivityFetcher,SIGNAL(resultsAvailable(SmfActivityEntryList*, SmfError, SmfResultPage)),
+					this,SLOT(resultsAvailableSlot(SmfActivityEntryList*, SmfError, SmfResultPage)));
+			qDebug() <<"SmfActivityFetcher::filter" ;
+			qDebug()<<"Signal-slot connected ? = "<<connected;
+			}
+		}
+	
+	if(!pluginFound)
+		{
+		qDebug()<<"Plugin for Facebook not found!!!";
+		}
+	
+	qDebug()<<"Returning from SmfTestApp::getFacebookFriends()";
+	}
+
+void SmfTestApp::FacebookActivities()
+	{
+	qDebug()<<"Inside SmfTestApp::FacebookFiltered()";
+		
+	// Get the list of providers
+	SmfClient client;
+	QString intfName("org.symbian.smf.client.activity.fetcher");
+	
+	m_providerList = client.GetServices(intfName);
+	qDebug()<<"client.GetServices returned a list with count = "<<m_providerList->count();
+	
+	// flag to check if required plugin is there
+	bool pluginFound = false;
+	foreach(SmfProvider provider, *m_providerList)
+		{
+		if("Facebook" == provider.serviceName())
+			{
+			qDebug()<<"Plugin for Facebook found";
+			pluginFound = true;
+			SmfActivityFetcher *p_smfActivityFetcher = new SmfActivityFetcher(&provider);
+			QContactName Name;
+			//Name.setFirstName("Siddartha");
+			//Name.setLastName("Chandra");
+			
+			SmfContact aFriend;
+			// add some dummy values to aFriend methods
+			QString str;
+			str.append("Name");
+			QVariant var = QVariant::fromValue<QContactName>(Name);
+
+			aFriend.setValue(str,var);
+			QContactGuid guid;
+
+			// contact->value("Guid").value<QContactGuid>() ;
+
+			QString userId = "558588290";
+
+			guid.setGuid(userId); 
+
+			QVariant contactId = QVariant::fromValue<QContactGuid>(guid);
+
+			aFriend.setValue("Guid",contactId);
+			int pageNum = 1,perPage=2;			  
+			SmfError err = p_smfActivityFetcher->friendsActivities(aFriend,pageNum,perPage);
+			bool connected = QObject::connect(p_smfActivityFetcher,SIGNAL(resultsAvailable(SmfActivityEntryList*, SmfError, SmfResultPage)),
+					this,SLOT(resultsAvailableSlot(SmfActivityEntryList*, SmfError, SmfResultPage)));
+			qDebug() <<"SmfActivityFetcher::filter" ;
+			qDebug()<<"Signal-slot connected ? = "<<connected;
+			}
+		}
+	
+	if(!pluginFound)
+		{
+		qDebug()<<"Plugin for Facebook not found!!!";
+		}
+	
+	qDebug()<<"Returning from SmfTestApp::getFacebookFriends()";
+	}
+
+
+void SmfTestApp::resultsAvailableSlot(SmfActivityEntryList *ptr, SmfError _t2, SmfResultPage _t3)
+	{
+	qDebug()<<"inside resultsAvailableSlot";	
+	//qDebug()<<"data"<<SmfActivityEntryList->_t3;
+	qDebug()<<ptr->at(0).id();
+	foreach(SmfActivityEntry contact, (*ptr))
+		{
+		qDebug()<<"SmfActivityEntry id = "<<contact.id();
+		/*qDebug()<<"Friends status msg desc = "<<contact.;
+		qDebug()<<"Friends profile image URL = "<<contact.value("Avatar").value<QContactAvatar>().imageUrl();
+		qDebug()<<"";*/
+		}
+	
+	delete ptr;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfMusicEventsnService/SmfMusicEventsnService.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** 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 SMFTESTAPP_H
+#define SMFTESTAPP_H
+
+#include <QtGui/QWidget>
+#include <smfprovider.h>
+#include <smfcontact.h>
+#include <smfglobal.h>
+#include <qcontactguid.h>
+
+#include "ui_SmfMusicEventsnService.h"
+#include <smfactivityfetcher.h>
+#include <smfmusic.h>
+
+class SmfContactFetcher;
+
+class SmfTestApp : public QWidget
+{
+    Q_OBJECT
+
+public:
+	SmfTestApp(QWidget *parent = 0);
+    ~SmfTestApp();
+    void getFacebookFriends();
+    void getTracksOfArtists();
+    void FacebookFiltered();
+    void lastFm();
+    void FacebookActivities();
+            
+private slots:
+	void friendsListAvailable ( SmfContactList* list, SmfError error, SmfResultPage resultPage );
+	void resultsAvailableSlot(SmfActivityEntryList * _t1, SmfError _t2, SmfResultPage _t3);
+	void userMusicInfoAvlbl(SmfMusicProfile*,SmfError);
+	
+private:
+    Ui::SmfTestApp ui;
+    SmfContactFetcher *m_contactFetcher;
+    SmfProviderList *m_providerList;
+};
+
+#endif // SMFTESTAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfMusicEventsnService/SmfMusicEventsnService.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,28 @@
+TEMPLATE = app
+TARGET = SmfMusicEventsnService 
+CONFIG += mobility
+MOBILITY += contacts \
+    location
+QT += core \
+    gui \
+    xml \
+    network 
+HEADERS   += SmfMusicEventsnService.h
+SOURCES   += SmfMusicEventsnService_reg.rss \
+    main.cpp \
+    SmfMusicEventsnService.cpp
+FORMS	  += SmfMusicEventsnService.ui
+RESOURCES +=
+symbian:
+	{
+	TARGET.UID3 = 0xE565EECD
+	TARGET.CAPABILITY = NetworkServices \
+        ReadUserData \
+        WriteUserData \
+        LocalServices \
+        UserEnvironment \
+        ReadDeviceData \
+        WriteDeviceData
+    LIBS += -lsmfclient \
+        -lsmfcommon
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfMusicEventsnService/SmfMusicEventsnService.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,19 @@
+<ui version="4.0" >
+ <class>SmfTestApp</class>
+ <widget class="QWidget" name="SmfTestApp" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>SmfTestApp</string>
+  </property>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfMusicEventsnService/main.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** 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 "SmfMusicEventsnService.h"
+
+#include <QtGui>
+#include <QApplication>
+
+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[])
+{
+    QApplication a(argc, argv);
+    qInstallMsgHandler(debugOutput);
+    SmfTestApp w;
+    //w.getFacebookFriends();
+    //w.FacebookFiltered();
+    w.FacebookActivities();
+    //w.lastFm();
+    w.showMaximized();
+    return a.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfMusicEventsnService/ui_SmfMusicEventsnService.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,50 @@
+/********************************************************************************
+** Form generated from reading UI file 'SMFMUSICEVENTSNSERVIC.ui'
+**
+** Created: Fri Oct 8 14:49:55 2010
+**      by: Qt User Interface Compiler version 4.6.3
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_SMFMUSICEVENTSNSERVICE_H
+#define UI_SMFMUSICEVENTSNSERVIC_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_SmfTestApp
+{
+public:
+
+    void setupUi(QWidget *SmfTestApp)
+    {
+        if (SmfTestApp->objectName().isEmpty())
+            SmfTestApp->setObjectName(QString::fromUtf8("SmfTestApp"));
+        SmfTestApp->resize(400, 300);
+
+        retranslateUi(SmfTestApp);
+
+        QMetaObject::connectSlotsByName(SmfTestApp);
+    } // setupUi
+
+    void retranslateUi(QWidget *SmfTestApp)
+    {
+        SmfTestApp->setWindowTitle(QApplication::translate("SmfTestApp", "SmfTestApp", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class SmfTestApp: public Ui_SmfTestApp {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_SMFMUSICEVENTSNSERVIC_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,635 @@
+/****************************************************************************
+**
+** 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 <smfclient.h>
+#include <smfcontactfetcher.h>
+#include <smfmusic.h>
+#include <smfplaylist.h>
+
+#include "SmfTestMusicnActivity.h"
+
+SmfTestApp::SmfTestApp(QWidget *parent)
+    : QWidget(parent)
+{
+	ui.setupUi(this);
+	m_contactFetcher = NULL;
+	m_providerList = NULL;
+	m_tracksofartist=NULL;
+	m_tracksimilar=NULL;
+	m_trackofAlbum=NULL;
+	m_Playlist=NULL;
+	m_Stores=NULL;
+}
+
+SmfTestApp::~SmfTestApp()
+{
+	if(m_contactFetcher)
+		delete m_contactFetcher;
+	if(m_providerList)
+		delete m_providerList;
+	if(m_tracksofartist)
+		delete m_tracksofartist;
+	if(m_tracksimilar)
+		delete m_tracksimilar;
+	if(m_trackofAlbum)
+		delete m_trackofAlbum;
+	if(m_Playlist)
+		delete m_Playlist;
+	if(m_Stores)
+		delete m_Stores;
+}
+
+
+void SmfTestApp::getTracksOfArtists()
+	{
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::tracksofartist()";
+
+			QString intfName("org.symbian.smf.client.music.search");
+			
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+		         		if("last.fm" == provider.serviceName())
+		         			{
+							pluginFound = true;
+		         			qDebug()<<"Plugin for last.fm found";
+		         			m_tracksofartist = new SmfMusicSearch(&provider);
+		         			SmfTrackInfo TInfo;
+		         			TInfo.setTitle("Aja Nachle");
+		         			SmfArtists Artists; 
+		 			        QStringList QList;
+		         			QList.append("Adnan Sami");//A.R.Rehman");
+		         			Artists.setNames(QList);
+		         			SmfError err=m_tracksofartist->tracksOfArtist(Artists,1,10);//artist,1,1);
+		         			qDebug()<<"Return Value of tracksOfArtist :"<<err;
+
+		         			bool connected = connect(m_tracksofartist, SIGNAL(trackSearchAvailable(SmfTrackInfoList *, SmfError ,SmfResultPage)),
+		         		     			this,SLOT(trackSearchAvailableSlot(SmfTrackInfoList*, SmfError, SmfResultPage)));//SmfTrackInfoList * ,SmfError)));
+		         			//trackSearchAvailable
+		        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+		         			}
+		         		}
+		  	if(!pluginFound)
+		  		{
+		  		qDebug()<<"Plugin for Last.fm not found!!!";
+		  		}
+		  	
+		  	qDebug()<<"Returning from SmfTestApp::getTracksOfArtists()";
+			   	
+	}
+
+
+void SmfTestApp::getTracksSimilar()
+	{
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::getTracksSimilar()";
+
+			QString intfName("org.symbian.smf.client.music.search");
+			
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+		         		if("last.fm" == provider.serviceName())
+		         			{
+							pluginFound = true;
+		         			qDebug()<<"Plugin for last.fm found";
+		         			m_tracksimilar = new SmfMusicSearch(&provider);
+		         			SmfTrackInfo TInfo;
+		         				         			
+							TInfo.setTitle("Tera Chehra");
+							//TInfo.setTitle("Bambhole");
+						
+							SmfArtists Artists; 
+				
+							
+							QStringList QList;
+						
+							QList.append("Adnan Sami");
+							Artists.setNames(QList);
+							TInfo.setArtists(Artists);
+								
+							//SmfError err=m_tracksimilar->tracksSimilar(TInfo,1,1);
+							SmfMusicFingerPrint signature;
+							signature.setId("+1-q7D7-iHR9cQ");
+							SmfError err=m_tracksimilar->trackInfo(signature,1,1);
+		         			bool connected = connect(m_tracksimilar, SIGNAL(trackSearchAvailable(SmfTrackInfoList *, SmfError ,SmfResultPage)),
+		         		     			this,SLOT(trackSearchAvailableSlot(SmfTrackInfoList*, SmfError, SmfResultPage)));//SmfTrackInfoList * ,SmfError)));
+		         			//trackSearchAvailable
+		        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+		         			}
+		         		}
+		  	if(!pluginFound)
+		  		{
+		  		qDebug()<<"Plugin for Last.fm not found!!!";
+		  		}
+		  	
+		  	qDebug()<<"Returning from SmfTestApp::getTracksSimilar()";
+			   	
+	}
+//tracksOfAlbum
+
+void SmfTestApp::getTracksOfAlbom()
+	{
+	// Tujha Chehra
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::getTracksOfAlbom()";
+
+			QString intfName("org.symbian.smf.client.music.search");
+			
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+		         		if("last.fm" == provider.serviceName())
+		         			{
+							pluginFound = true;
+		         			qDebug()<<"Plugin for last.fm found";
+		            			m_trackofAlbum = new SmfMusicSearch(&provider);
+		            			SmfTrackInfo TInfo;
+		            			TInfo.setTitle("Summer of 69");
+		            			SmfAlbum album;
+		            			SmfArtists art;
+		            			QStringList strList;
+		            			strList.append("Adnan Sami");
+		            			art.setNames(strList);
+		            			album.setName("Tujha Chehra");
+		            			album.setArtists(art);
+		        				SmfError err = m_trackofAlbum->tracksOfAlbum(album,1,2);
+		            			qDebug()<<"Return Value of tracksOfAlbum :"<<err;
+		            			bool connected = connect(m_trackofAlbum, SIGNAL(trackSearchAvailable(SmfTrackInfoList *, SmfError ,SmfResultPage)),
+		         		     			this,SLOT(trackSearchAvailableSlot(SmfTrackInfoList*, SmfError, SmfResultPage)));//SmfTrackInfoList * ,SmfError)));
+		         			//trackSearchAvailable
+		        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+		         			}
+		         		}
+		  	if(!pluginFound)
+		  		{
+		  		qDebug()<<"Plugin for Last.fm not found!!!";
+		  		}
+		  	
+		  	qDebug()<<"Returning from SmfTestApp::getTracksOfAlbom()";
+			   	
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////addToPlaylist//////////////////////////////////////////////////////////////////////////
+/*
+playlistID (Required) : The ID of the playlist - this is available in user.getPlaylists.
+track (Required) : The track name to add to the playlist.
+artist (Required) : The artist name that corresponds to the track to be added.
+api_key (Required) : A Last.fm API key.
+api_sig (Required) : A Last.fm method signature. See authentication for more information.
+sk (Required) : A session key generated by authenticating a user via the authentication protocol. 
+ */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+void SmfTestApp::addToPlaylist()
+	{
+	
+
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::addToPlaylist()";
+
+			QString intfName("org.symbian.smf.plugin.music.playlist");
+
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+			if("last.fm" == provider.serviceName())
+				{
+				pluginFound = true;
+    			qDebug()<<"Plugin for last.fm found";
+	    			m_Playlist = new SmfPlaylistService(&provider);
+	    			SmfPlaylist pl_list;
+	    			pl_list.setPlayListTitle("playlist_2");
+	    			pl_list.setId("4b2es_playlist_2");
+	    			SmfAlbum album;
+	    			QList <SmfTrackInfo> list;
+	    			SmfTrackInfo track;
+					SmfArtists art;
+					QStringList strList;
+					strList.append("Adnan Sami");
+					art.setNames(strList);
+					album.setName("Teri Kasam");
+					//album.setName("Tujha Chehra");
+					//album.setId();
+					album.setArtists(art);
+					track.setArtists(art);
+					track.setAlbum(album);
+					track.setTitle("Kasam ");
+					//track.setTitle("Hi Hawa Mand Wahe");
+					list.append(track);
+	    			SmfError err=m_Playlist->addToPlaylist(pl_list,&list);
+	    			qDebug()<<"Return Value of PlayLists is :"<<err;
+																//playlistsListAvailable(SmfPlaylistList * _t1, SmfError _t2, SmfResultPage _t3)
+        			bool connected = connect(m_Playlist, SIGNAL(playlistsListAvailable(SmfPlaylistList *, SmfError ,SmfResultPage)),
+     		     			this,SLOT(playlistsListAvailableSlot(SmfPlaylistList *, SmfError, SmfResultPage)));//SmfTrackInfoList * ,SmfError)));
+   			
+        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+         			}
+         		}
+  	if(!pluginFound)
+  		{
+  		qDebug()<<"Plugin for Last.fm not found!!!";
+  		}
+  	
+  	qDebug()<<"Returning from SmfTestApp::getPlaylist()";
+
+	}
+
+
+void SmfTestApp::getPlaylist()
+	{
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::getPlaylist()";
+
+			QString intfName("org.symbian.smf.plugin.music.playlist");
+
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+			if("last.fm" == provider.serviceName())
+				{
+				pluginFound = true;
+    			qDebug()<<"Plugin for last.fm found";
+	    			m_Playlist = new SmfPlaylistService(&provider);
+	    		/*	SmfPlaylist pl_list;
+	    			pl_list.setPlayListTitle("playlist_2");
+	    			pl_list.setId("4b2es_playlist_2");
+	    			SmfAlbum album;
+	    			QList <SmfTrackInfo> *list;
+					SmfTrackInfo track;
+					SmfArtists art;
+					QStringList strList;
+					strList.append("Adnan Sami");
+					art.setNames(strList);
+					album.setName("Tujha Chehra");
+					album.setArtists(art);
+					track.setArtists(art);
+					track.setAlbum(album);
+					track.setTitle("Hi Hawa Mand Wahe");
+					list->append(track);
+				*/	//SmfError err=m_Stores->stores(track ,1,1);
+	    			SmfError err=m_Playlist->playlists(1,5);
+	    		//	SmfError err=m_Playlist->addToPlaylist(pl_list,list);
+	    			//SmfError err=m_Playlist->postCurrentPlayingPlaylist(pl_list);
+	    			qDebug()<<"Return Value of PlayLists is :"<<err;
+																//playlistsListAvailable(SmfPlaylistList * _t1, SmfError _t2, SmfResultPage _t3)
+        			bool connected = connect(m_Playlist, SIGNAL(playlistsListAvailable(SmfPlaylistList *, SmfError ,SmfResultPage)),
+     		     			this,SLOT(playlistsListAvailableSlot(SmfPlaylistList *, SmfError, SmfResultPage)));//SmfTrackInfoList * ,SmfError)));
+	    			
+        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+         			}
+         		}
+  	if(!pluginFound)
+  		{
+  		qDebug()<<"Plugin for Last.fm not found!!!";
+  		}
+  	
+  	qDebug()<<"Returning from SmfTestApp::getPlaylist()";
+
+	}
+
+void SmfTestApp::postCurrentPlayingPlaylist()
+	{
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::postCurrentPlayingPlaylist()";
+
+			QString intfName("org.symbian.smf.plugin.music.playlist");
+
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+			if("last.fm" == provider.serviceName())
+				{
+				pluginFound = true;
+    			qDebug()<<"Plugin for last.fm found";
+	    			m_Playlist = new SmfPlaylistService(&provider);
+	    			SmfPlaylist pl_list;
+	    			pl_list.setPlayListTitle("playlist_2");
+	    			pl_list.setId("4b2es_playlist_2");
+	    		//	SmfAlbum album;
+	    		//	QList <SmfTrackInfo> *list;
+				//	SmfTrackInfo track;
+				//	SmfArtists art;
+				//	QStringList strList;
+				//	strList.append("Adnan Sami");
+				//	art.setNames(strList);
+				//	album.setName("Tujha Chehra");
+				//	album.setArtists(art);
+				//	track.setArtists(art);
+				//	track.setAlbum(album);
+				//	track.setTitle("Hi Hawa Mand Wahe");
+				//	list->append(track);
+	    			//SmfError err=m_Playlist->addToPlaylist(pl_list,list);
+	    			SmfError err=m_Playlist->postCurrentPlayingPlaylist(pl_list);
+	    			qDebug()<<"Return Value of postCurrentPlayingPlaylist is :"<<err;
+																//playlistsListAvailable(SmfPlaylistList * _t1, SmfError _t2, SmfResultPage _t3)
+        			bool connected = connect(m_Playlist, SIGNAL(playlistsListAvailable(SmfPlaylistList *, SmfError ,SmfResultPage)),
+     		     			this,SLOT(playlistsListAvailableSlot(SmfPlaylistList *, SmfError, SmfResultPage)));//SmfTrackInfoList * ,SmfError)));
+	    			
+        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+         			}
+         		}
+  	if(!pluginFound)
+  		{
+  		qDebug()<<"Plugin for Last.fm not found!!!";
+  		}
+  	
+  	qDebug()<<"Returning from SmfTestApp::postCurrentPlayingPlaylist()";
+
+	}
+
+
+
+void SmfTestApp::getStoresOfTrac()
+	{
+	// Tujha Chehra
+	SmfClient client;
+	qDebug()<<"Inside SmfTestApp::getStoresOfTrac()";
+
+			QString intfName("org.symbian.smf.client.music.search");
+			
+			SmfProviderList *providerList = client.GetServices(intfName);
+			qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+			bool pluginFound = false;
+		      foreach(SmfProvider provider, *providerList)
+		         		{
+		         		if("last.fm" == provider.serviceName())
+		         			{
+							pluginFound = true;
+		         			qDebug()<<"Plugin for last.fm found";
+		            	
+		         			/*	m_trackofAlbum = new SmfMusicSearch(&provider);
+		            			SmfTrackInfo TInfo;
+		            			TInfo.setTitle("Summer of 69");
+		            			SmfAlbum album;
+		            			SmfArtists art;
+		            			QStringList strList;
+		            			strList.append("Adnan Sami");
+		            			art.setNames(strList);
+		            			album.setName("Tujha Chehra");
+		            			album.setArtists(art);
+		        				SmfError err = m_trackofAlbum->tracksOfAlbum(album,1,2);
+		            			qDebug()<<"Return Value of tracksOfAlbum :"<<err;
+		            			
+		            			*/
+		         			
+                  			m_Stores = new SmfMusicSearch(&provider);
+                   			SmfTrackInfo TInfo;
+                   			TInfo.setTitle("Kabhi Aisa Lagay");
+                   			SmfComment com;
+                   			com.setText("Excellent");
+	            			SmfAlbum album;
+                   			SmfTrackInfo track;
+                   			SmfArtists art;
+							QStringList strList;
+							strList.append("Adnan Sami");
+							art.setNames(strList);
+
+							album.setName("Tujha Chehra");
+							album.setArtists(art);
+							track.setArtists(art);
+							track.setAlbum(album);
+							SmfError err=m_Stores->stores(track ,1,1);
+                  			qDebug()<<"Return Value of Stores :"<<err;
+																					//SmfProviderList * _t1, SmfError _t2, SmfResultPage _t3
+                   			bool connected = connect(m_Stores, SIGNAL(storeSearchAvailable(SmfProviderList*,SmfError,SmfResultPage)),
+                   			                     								this,SLOT(storelistsListAvailable(SmfProviderList* ,SmfError ,SmfResultPage)));
+     	
+		         			
+		        			qDebug()<<"Signal-slot connected ? = "<<connected;
+
+		         			}
+		         		}
+		  	if(!pluginFound)
+		  		{
+		  		qDebug()<<"Plugin for Last.fm not found!!!";
+		  		}
+		  	
+		  	qDebug()<<"Returning from SmfTestApp::getStoresOfTrac()";
+			   	
+	}
+
+
+void SmfTestApp::storelistsListAvailable(SmfProviderList* list ,SmfError error,SmfResultPage resultPage)
+	{
+	
+	Q_UNUSED(resultPage)
+		qDebug()<<"Inside SmfTestApp::storelistsListAvailable()";
+				
+		if(error)
+			{
+			SmfClient client;
+			QString errStr = client.errorString(error);
+			qDebug()<<"Error found, code = "<<error;
+			qDebug()<<"Error string is = "<<errStr;
+
+			return;
+			}
+			
+		//display friends information
+		int count = 0;
+		qDebug()<<"Number of friends retrieved = "<<list->count();
+		if(0 == list->count())
+			{
+			qDebug()<<"No of tracks available!!!";
+			return;
+			}
+			
+		foreach(SmfProvider tracs, *list)
+			{
+			qDebug()<<"Authentication AppName = "<<tracs.authenticationAppName();//playListTitle();
+			qDebug()<<"App URL = "<<tracs.applicationUrl();//playListTitle();
+			qDebug()<<"Authentication AppName = "<<tracs.serviceName();//playListTitle();
+			
+			}
+		
+		delete list;
+	
+	
+	}
+
+void SmfTestApp::playlistsListAvailableSlot(SmfPlaylistList* playlist ,SmfError error,SmfResultPage page)
+{
+	Q_UNUSED(page)
+
+for(int i = 0;i<playlist->count();i++)
+
+{
+
+
+//qDebug()<<"Data Author"<<playlist.at(i).author();
+qDebug()<<"Data Author"<<playlist->at(i).author();
+
+
+qDebug()<<"Data Creation Date"<<playlist->at(i).creationDate();
+
+//qDebug()<<"Data Comments"<<playlist.at(i).comments.at(0);
+
+qDebug()<<"Data Id"<<playlist->at(i).id();
+
+qDebug()<<"Data playListTitle"<<playlist->at(i).playListTitle();
+
+qDebug()<<"Data location"<<playlist->at(i).location();
+
+
+}
+		
+}
+
+
+
+
+
+void SmfTestApp::trackSearchAvailableSlot(SmfTrackInfoList* list, SmfError error, SmfResultPage resultPage)//SmfTrackInfoList *s1 ,SmfError err)
+	{
+	qDebug()<<"tracks of artist";	
+	
+	Q_UNUSED(resultPage)
+		qDebug()<<"Inside SmfTestApp::trackSearchAvailableSlot()";
+				
+		if(error)
+			{
+			SmfClient client;
+			QString errStr = client.errorString(error);
+			qDebug()<<"Error found, code = "<<error;
+			qDebug()<<"Error string is = "<<errStr;
+
+			return;
+			}
+			
+		//display friends information
+		int count = 0;
+		qDebug()<<"Number of friends retrieved = "<<list->count();
+		if(0 == list->count())
+			{
+			qDebug()<<"No of tracks available!!!";
+			return;
+			}
+			
+		foreach(SmfTrackInfo tracs, *list)
+			{
+			qDebug()<<"Track Title = "<<tracs.title();//playListTitle();
+			}
+		
+		delete list;
+	}
+
+		         		
+void SmfTestApp::getFacebookFriends()
+	{
+	qDebug()<<"Inside SmfTestApp::getFacebookFriends()";
+	
+	// Get the list of providers
+	SmfClient client;
+	QString intfName("org.symbian.smf.plugin.contact.fetcher");
+	
+	m_providerList = client.GetServices(intfName);
+	qDebug()<<"client.GetServices returned a list with count = "<<m_providerList->count();
+	
+	// flag to check if required plugin is there
+	bool pluginFound = false;
+	foreach(SmfProvider provider, *m_providerList)
+		{
+		if("Facebook" == provider.serviceName())
+			{
+			qDebug()<<"Plugin for Facebook found";
+			pluginFound = true;
+			m_contactFetcher = new SmfContactFetcher(&provider);
+			SmfError err = m_contactFetcher->friends(1, 10);
+			qDebug()<<"Ret value of friends() = "<<err;
+			
+			bool connected = connect(m_contactFetcher, SIGNAL(friendsListAvailable(SmfContactList*, SmfError , SmfResultPage)),
+					this, SLOT(friendsListAvailable(SmfContactList*, SmfError , SmfResultPage)));
+			qDebug()<<"Signal-slot connected ? = "<<connected;
+			}
+		}
+	
+	if(!pluginFound)
+		{
+		qDebug()<<"Plugin for Facebook not found!!!";
+		}
+	
+	qDebug()<<"Returning from SmfTestApp::getFacebookFriends()";
+	}
+
+
+void SmfTestApp::friendsListAvailable ( SmfContactList* list, SmfError error, SmfResultPage resultPage )
+	{
+	Q_UNUSED(resultPage)
+	qDebug()<<"Inside SmfTestApp::friendsListAvailable()";
+			
+	if(error)
+		{
+		SmfClient client;
+		QString errStr = client.errorString(error);
+		qDebug()<<"Error found, code = "<<error;
+		qDebug()<<"Error string is = "<<errStr;
+
+		return;
+		}
+		
+	//display friends information
+	int count = 0;
+	qDebug()<<"Number of friends retrieved = "<<list->count();
+	if(0 == list->count())
+		{
+		qDebug()<<"No friends available!!!";
+		return;
+		}
+		
+	foreach(SmfContact contact, *list)
+		{
+		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();
+		qDebug()<<"";
+		}
+	
+	delete list;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** 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 SMFTESTMUSICNACTIVITY_H
+#define SMFTESTMUSICNACTIVITY_H
+
+#include <QtGui/QWidget>
+#include <smfprovider.h>
+#include <smfcontact.h>
+#include <smfglobal.h>
+#include <smfmusic.h>
+#include <smfplaylist.h>
+#include <smfmusicfingerprint.h>
+
+#include "ui_SmfTestMusicnActivty.h"
+
+class SmfContactFetcher;
+class SmfMusicService;
+//class SmfPlaylistServicePrivate;
+class SmfTestApp : public QWidget
+{
+    Q_OBJECT
+
+public:
+	SmfTestApp(QWidget *parent = 0);
+    ~SmfTestApp();
+    void getFacebookFriends();
+    void getTracksOfArtists();
+    void getTracksSimilar();
+    void getTracksOfAlbom();
+    void getPlaylist();
+    void getStoresOfTrac();
+    void addToPlaylist();
+    void postCurrentPlayingPlaylist();
+            
+private slots:
+		
+	void friendsListAvailable ( SmfContactList* list, SmfError error, SmfResultPage resultPage );
+	void trackSearchAvailableSlot(SmfTrackInfoList* list, SmfError error, SmfResultPage resultPage);//SmfTrackInfoList *s1 ,SmfError err);
+    void playlistsListAvailableSlot(SmfPlaylistList* playlist ,SmfError error,SmfResultPage page);
+    void storelistsListAvailable(SmfProviderList* ,SmfError ,SmfResultPage);
+private:
+    Ui::SmfTestApp ui;
+    SmfContactFetcher *m_contactFetcher;
+    SmfProviderList *m_providerList;
+    SmfMusicSearch *m_tracksofartist;
+    SmfMusicSearch	*m_tracksimilar;
+    SmfMusicSearch	*m_trackofAlbum;
+    SmfPlaylistService *m_Playlist;
+    SmfMusicSearch	*m_Stores;
+};
+
+#endif // SMFTESTMUSICNACTIVITY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,27 @@
+TEMPLATE = app
+CONFIG += mobility
+MOBILITY += contacts \
+    location
+TARGET = SmfTestMusicnActivity
+QT += core \
+    gui \
+    xml \
+    network
+HEADERS += SmfTestMusicnActivity.loc \
+    SmfTestMusicnActivity.h
+SOURCES += main.cpp \
+    SmfTestMusicnActivity.cpp
+FORMS += SmfTestMusicnActivity.ui
+RESOURCES += 
+symbian: { 
+    TARGET.UID3 = 0xEB5419B9
+    TARGET.CAPABILITY = NetworkServices \
+        ReadUserData \
+        WriteUserData \
+        LocalServices \
+        UserEnvironment \
+        ReadDeviceData \
+        WriteDeviceData
+    LIBS += -lsmfclient \
+        -lsmfcommon
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfTestMusicnActivty/SmfTestMusicnActivity.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,19 @@
+<ui version="4.0" >
+ <class>SmfTestApp</class>
+ <widget class="QWidget" name="SmfTestApp" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>SmfTestApp</string>
+  </property>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfTestMusicnActivty/main.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** 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 "SmfTestMusicnActivity.h"
+
+#include <QtGui>
+#include <QApplication>
+
+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[])
+{
+    QApplication a(argc, argv);
+    qInstallMsgHandler(debugOutput);
+    SmfTestApp w;
+    //w.getFacebookFriends();
+   // w.getTracksOfArtists();
+    //w.getTracksSimilar();
+   // w.getTracksOfAlbom();
+    //w.getPlaylist();
+    //w.getStoresOfTrac();
+      w.addToPlaylist();
+    //w.postCurrentPlayingPlaylist();
+
+    //w.getStoresOfTrac();
+    w.showMaximized();
+    return a.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/SmfTestMusicnActivty/ui_SmfTestMusicnActivty.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,50 @@
+/********************************************************************************
+** Form generated from reading UI file 'SMFTESTMUSICNACTIVITY.ui'
+**
+** Created: Mon Oct 11 12:12:49 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_SMFTESTMUSICNACTIVITY_H
+#define UI_SMFTESTMUSICNACTIVITY_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_SmfTestApp
+{
+public:
+
+    void setupUi(QWidget *SmfTestApp)
+    {
+        if (SmfTestApp->objectName().isEmpty())
+            SmfTestApp->setObjectName(QString::fromUtf8("SmfTestApp"));
+        SmfTestApp->resize(400, 300);
+
+        retranslateUi(SmfTestApp);
+
+        QMetaObject::connectSlotsByName(SmfTestApp);
+    } // setupUi
+
+    void retranslateUi(QWidget *SmfTestApp)
+    {
+        SmfTestApp->setWindowTitle(QApplication::translate("SmfTestApp", "SmfTestApp", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class SmfTestApp: public Ui_SmfTestApp {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_SMFTESTMUSICNACTIVITY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/TestApp/Mainwindow.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,339 @@
+#include "Mainwindow.h"
+#include <QUrl>
+#include <QDebug>
+#include <QImage>
+#include <QVariant>
+#include <QtGui>
+#include <QDataStream>
+#include <smfprovider.h>
+#include <qcontactguid.h>
+
+
+/*#ifndef TEST_FLICKR
+#define TEST_FLICKR
+#define PROVIDER_NAME  "Flickr"
+*/
+//Test Cases
+/*
+#define TEST_CASE_FLCRAlbums
+#define TEST_CASE_FLCRUpload*/
+//#define TEST_CASE_FLCRPictures
+
+//#define TEST_CASE_FLCRMultiUpload
+//#define TEST_CASE_FLCRDescription
+//#define TEST_CASE_FLCRPostComment
+//#endif
+/*
+ */
+#ifndef  TEST_FACEBOOK
+#define TEST_FACEBOOK
+#define PROVIDER_NAME  "Facebook"
+
+#define TEST_CASE_FBFrndActvities
+#endif
+/*
+#ifndef  TEST_LastFm
+#define TEST_LastFm
+#define PROVIDER_NAME  "last.fm"
+#endif
+
+
+#ifndef  TEST_LyricsFly
+#define TEST_LyricsFly
+#define PROVIDER_NAME  "Last.fm"
+#endif
+*/
+
+
+
+
+
+MainWindow::MainWindow(QWidget *parent):QWidget(parent)
+{
+	pB = new QPushButton("Start Test Application",this);
+	QObject::connect(pB,SIGNAL(clicked()),this,SLOT(StartTesting()));
+
+}
+MainWindow::~MainWindow()
+{
+}
+void MainWindow::StartTesting()
+{
+/*#ifdef TEST_FLICKR
+TestFlickrAPIS();
+#endif
+*/
+
+#ifdef TEST_FACEBOOK
+TestFaceBookAPIS();
+#endif
+
+}
+
+void MainWindow::TestFlickrAPIS()
+{
+		SmfClient m_smf;
+		QList<SmfProvider> *providerList = m_smf.GetServices("org.symbian.smf.client.gallery");
+		qDebug() <<"SmfGallery::get services  "<<providerList->length() ;
+		qDebug()<<"client.GetServices returned a list with count = "<<providerList->count();
+		
+		SmfError error =(SmfError) 100;
+		QString str = m_smf.errorString(error);
+		
+		qDebug() << "SmfClient::error string returned " << str;	
+		foreach(SmfProvider provider, *providerList)
+					{
+						if(PROVIDER_NAME == provider.serviceName())
+						{
+						qDebug()<<"Plugin for flickr found";
+													
+						pSmfGallery = new SmfGallery(&provider);
+#ifdef TEST_CASE_FLCRUpload
+						
+						TEST_CASE_FLCRUpload_func(pSmfGallery);
+
+#endif	
+		
+#ifdef TEST_CASE_FLCRMultiUpload	
+						TEST_CASE_FLCRMultiUpload_func(pSmfGallery);
+#endif
+						
+#ifdef TEST_CASE_FLCRDescription
+						TEST_CASE_FLCRGetDescription_func(pSmfGallery);
+						
+#endif	
+						
+#ifdef TEST_CASE_FLCRPostComment
+						TEST_CASE_FLCRPostComment_func(pSmfGallery);
+						
+#endif
+#ifdef TEST_CASE_FLCRPictures
+						TEST_CASE_FLCRGetPictures_func(pSmfGallery);
+						
+#endif
+#ifdef TEST_CASE_FLCRAlbums
+						TEST_CASE_FLCRGetAlbums_func(pSmfGallery);
+						
+#endif						
+						}
+					}
+}
+void MainWindow::TestFaceBookAPIS()
+{
+	SmfClient m_smf;
+	QList <SmfProvider> *services = m_smf.GetServices("org.symbian.smf.plugin.activity.fetcher");
+	qDebug() << "SmfClient::GetServices returned " << services->length() << " services.";
+	
+	foreach(SmfProvider provider, *services)
+	    {
+	    if(PROVIDER_NAME  == provider.serviceName())
+	        {
+	        qDebug()<<"Plugin for Facebook found";
+	        activityFetcher = new SmfActivityFetcher(&provider);
+	        
+#ifdef TEST_CASE_FBFrndActvities
+	        
+	        TEST_CASE_FBFriendsActivities_func(activityFetcher);
+	        
+#endif
+	        }
+	    }
+}
+void MainWindow::TEST_CASE_FLCRUpload_func(SmfGallery *pSmfGallery)
+	{
+	SmfPictureAlbum smfPictureAlbum;
+	SmfPicture smfImage;
+	smfImage.setPicture(QImage("C:\\data\\4.jpg","JPG"));
+	bool ret = connect(pSmfGallery,SIGNAL(uploadFinished(QList<SmfError> )),
+								this,SLOT(uploadFinishedSlot(QList<SmfError> ))); 
+	pSmfGallery->upload(&smfImage,&smfPictureAlbum);
+	qDebug()<<"SmfGallery::upload picture ";
+	}
+
+void MainWindow::TEST_CASE_FLCRMultiUpload_func(SmfGallery *pSmfGallery)
+	{
+
+	SmfPictureAlbum smfPictureAlbum;
+	smfPictureAlbum.setId("72157624246208730");
+	SmfPicture smfPicture1,smfPicture2;
+	smfPicture1.setPicture(QImage("C:\\data\\Cyber_towers.jpg","jpg"));
+	smfPicture2.setPicture(QImage("C:\\data\\test.jpg","jpg"));          
+	QList<SmfPicture> smfPicList;
+	smfPicList.append(smfPicture1);
+	smfPicList.append(smfPicture2);
+	bool ret = connect(pSmfGallery,SIGNAL(uploadFinished(QList<SmfError> )),
+										        this,SLOT(uploadFinishedSlot(QList<SmfError> ))); 
+	pSmfGallery->upload(&smfPicList,&smfPictureAlbum);
+	qDebug()<<"SmfGallery::upload picture List ";
+	}
+void MainWindow::TEST_CASE_FLCRGetDescription_func(SmfGallery *pSmfGallery)
+	{
+	SmfPicture smfImage;
+	smfImage.setId("5058988107");
+	SmfError err = pSmfGallery->description(smfImage);
+	bool ret = QObject::connect(pSmfGallery,SIGNAL(descriptionAvailable(QString,SmfError)),
+								this,SLOT(descSlot(QString,SmfError ))); 					    	
+	qDebug()<<"SmfGallery::get description ";
+	}
+void MainWindow::TEST_CASE_FLCRPostComment_func(SmfGallery *pSmfGallery)
+	{
+	SmfPicture smfImage;
+	smfImage.setId("5058988107");
+	SmfComment smfComment;
+	smfComment.setText("Hello Symbian");
+	SmfError err = pSmfGallery->postComment(smfImage,smfComment);
+	
+	bool ret = QObject::connect(pSmfGallery,SIGNAL(uploadFinished(QList<SmfError> )),
+			this,SLOT(uploadFinishedSlot(QList<SmfError> ))); 					    	
+	qDebug()<<"SmfGallery::Post a Comment ";
+	}
+void MainWindow::TEST_CASE_FLCRGetPictures_func(SmfGallery *pSmfGallery)
+	{
+	QList<SmfPictureAlbum> smfAlbumList;
+	SmfPictureAlbum smfPictureAlbum;
+	smfPictureAlbum.setId("72157624966587095");
+	smfAlbumList.append(smfPictureAlbum);
+	int pageNum = 0, perPage = 0;
+	SmfError err = pSmfGallery->pictures(smfAlbumList,pageNum , perPage);
+	bool ret = connect(pSmfGallery,SIGNAL(picturesAvailable(SmfPictureList*, SmfError , SmfResultPage)),
+			this, SLOT(picturesAvailableSlot(SmfPictureList*, SmfError , SmfResultPage))); 
+	qDebug()<<"SmfGallery::Get picture ";
+	}
+void MainWindow::TEST_CASE_FLCRGetAlbums_func(SmfGallery *pSmfGallery)
+	{
+	SmfPictureAlbum smfPictureAlbum;
+	SmfPicture smfImage;
+	smfImage.setPicture(QImage("C:\\data\\4.jpg","JPG"));
+	bool ret = connect(pSmfGallery,SIGNAL(albumsAvailable(SmfPictureAlbumList*, SmfError , SmfResultPage)),
+			this, SLOT(albumsAvailableSlot(SmfPictureAlbumList*, SmfError , SmfResultPage)));
+	QStringList names;
+	SmfContact user; 
+	pSmfGallery->albums(names, &user,1,2);
+	qDebug()<<"SmfGallery::upload picture ";
+	}
+void MainWindow::TEST_CASE_FBFriendsActivities_func(SmfActivityFetcher *actvityFetcher)
+	{
+	
+	 SmfContact m_contact;
+	 QContactGuid guid;
+	 guid.setGuid("100001376714970");
+	 QVariant contactId = QVariant::fromValue<QContactGuid>(guid);
+	 m_contact.setValue("Guid",contactId);
+	 actvityFetcher->friendsActivities(m_contact,1,1);
+	 bool ret = connect(actvityFetcher, SIGNAL(resultsAvailable(SmfActivityEntryList*, SmfError , SmfResultPage)),
+	 					this, SLOT(activitiesAvailableSlot(SmfActivityEntryList*, SmfError , SmfResultPage)));
+	 qDebug()<<"connected"<<ret;
+         			
+         			}
+void MainWindow::albumsAvailableSlot(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;
+		return;
+		}
+	
+	//display album details
+	qDebug()<<"Number of albums retrieved = "<<albums->count();
+	if(albums->count() == 0)
+		{
+		QString smferrString("No Albums");
+		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();
+		}
+	
+
+	}
+
+void MainWindow::picturesAvailableSlot(SmfPictureList* picList, SmfError error, SmfResultPage resultPage)
+	{
+	Q_UNUSED(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;
+		return;
+		}
+	
+	//display pic description
+	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();
+		}
+
+	
+	}
+
+void MainWindow::uploadFinishedSlot( QList<SmfError> error )
+{
+	SmfClient m_smf;
+	QString str = m_smf.errorString(error.at(0));
+	qDebug()<<"upload finished";
+	qDebug()<<" SMF Error Code"<<str;
+ }
+
+void MainWindow::descSlot(QString str,SmfError err )
+{
+	SmfClient m_smf;
+	QString errstr = m_smf.errorString(err);
+	qDebug()<<"description string"<<str;
+	qDebug()<<" SMF Error Code"<<errstr;
+ }
+void MainWindow::activitiesAvailableSlot(SmfActivityEntryList* activitiesList, SmfError error, SmfResultPage resultPage)
+		{
+		Q_UNUSED(resultPage)
+		qDebug()<<"Inside HomeView::activitiesAvailable()";
+		
+		
+		qDebug()<<"Number of activities retrieved = "<<activitiesList->count();
+		
+			SmfClient client;
+			QString errStr = client.errorString(error);
+			qDebug()<<"Error found, code = "<<error;
+			qDebug()<<"Error string is = "<<errStr;
+			
+			
+			
+		//display activity description
+		qDebug()<<"Number of activities retrieved = "<<activitiesList->count();
+		
+		
+		
+		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();
+			}
+
+		
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/TestApp/Mainwindow.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,51 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+#include<smfglobal.h>
+#include<QPushButton>
+#include <QWidget>
+#include <smfclient.h>
+#include <smfactivityfetcher.h>
+#include <smfpicture.h>
+#include <smfpicturealbum.h>
+#include <smfContact.h>
+#include <smfcomment.h>
+#include <smfgallery.h>
+
+class MainWindow : public QWidget
+{
+	Q_OBJECT
+public:
+MainWindow(QWidget *parent =0);
+~MainWindow();
+QPushButton *pB; 
+
+void TestFlickrAPIS();
+void TestFaceBookAPIS();
+//void TestActivities();
+void TestUpload();
+
+////////////////////////////////////////////
+void TEST_CASE_FLCRUpload_func(SmfGallery *pSmfGallery);
+void TEST_CASE_FLCRMultiUpload_func(SmfGallery *pSmfGallery);
+void TEST_CASE_FLCRGetDescription_func(SmfGallery *pSmfGallery);
+void TEST_CASE_FLCRPostComment_func(SmfGallery *pSmfGallery);
+void TEST_CASE_FLCRGetPictures_func(SmfGallery *pSmfGallery);
+void TEST_CASE_FLCRGetAlbums_func(SmfGallery *pSmfGallery);
+void TEST_CASE_FBFriendsActivities_func(SmfActivityFetcher *actvityFetcher);
+
+
+////////////////////////////////////////////////
+private slots:
+void StartTesting();
+void activitiesAvailableSlot(SmfActivityEntryList* activitiesList, SmfError error, SmfResultPage resultPage);
+void uploadFinishedSlot( QList<SmfError> error );
+void descSlot(QString str,SmfError err );
+void picturesAvailableSlot(SmfPictureList* picList, SmfError error, SmfResultPage resultPage);
+void albumsAvailableSlot(SmfPictureAlbumList* albums, SmfError error, SmfResultPage resultPage);
+private:
+SmfPictureAlbumList *m_albumsList;
+SmfPictureList *m_picList;
+SmfGallery *pSmfGallery ;
+SmfActivityFetcher *activityFetcher;
+};
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/TestApp/TestApp.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,27 @@
+TEMPLATE = app
+TARGET = TestApp
+QT += gui \
+    core \
+    network
+CONFIG += mobility
+MOBILITY += contacts \
+    location
+SOURCES += TestAppmain.cpp \
+    MainWindow.cpp
+HEADERS += Mainwindow.h 
+
+symbian: { 
+    LIBS += -lsmfclient.dll \
+        -lcone \
+        -leikcore \
+        -lavkon \
+	-lsmfcommon
+   
+    TARGET.CAPABILITY = ReadUserData \
+        WriteUserData\
+    LocalServices\
+NetworkServices\
+UserEnvironment\
+ReadDeviceData\
+WriteDeviceData
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tests/TestApp/TestAppMain.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,44 @@
+#include <QApplication>
+#include <Mainwindow.h>
+#include<qfile.h>
+#include<qtextstream.h>
+
+void debugOutput(QtMsgType type, const char *msg)
+	{
+	QFile logFile("c://data//TestAppLog.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 app(argc,argv);
+MainWindow *mainWnd = new MainWindow();
+mainWnd->showMaximized();
+return app.exec();
+}
--- a/example/AuthApp/AuthApp.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/AuthApp.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -72,6 +72,7 @@
 }
 void AuthApp::sessionDidLogin(QString sessionkey)
 {
+	Q_UNUSED(sessionkey)
 	qDebug()<<"Inside AuthApp::sessionDidLogin()";
     if (iLoginDialog )
     {
--- a/example/AuthApp/AuthApp.loc	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/AuthApp.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:16
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/AuthApp/AuthApp.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/AuthApp.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:16
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/AuthApp/AuthApp_reg.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/AuthApp_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:16
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/AuthApp/src/baseDialog.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/src/baseDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -175,18 +175,24 @@
 }
 void FBDialog::slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator )
 	{
+		Q_UNUSED(reply)
+		Q_UNUSED(authenticator)
 		QMessageBox msgbox;
 		QString msg ("Error!Authentication Required");
 		msgbox.setText(msg);
 	}
 void FBDialog::slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  )
 	{
+		Q_UNUSED(errors)
+		Q_UNUSED(reply)
 		QMessageBox msgbox;
 		QString msg ("Error!SSL Error");
 		msgbox.setText(msg);
 	}
 void FBDialog::slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  )
 	{
+		Q_UNUSED(proxy)
+		Q_UNUSED(authenticator)
 		QMessageBox msgbox;
 		QString msg ("Error!Proxy Authenticatio Required");
 		msgbox.setText(msg);
@@ -313,11 +319,11 @@
 }
 void FBDialog::GetSessionKey(const QUrl& aUrl)
 {
-
+	Q_UNUSED(aUrl)
 }
 void FBDialog::FetchKeyFromUrl(const QUrl& aUrl)
 {
-
+	Q_UNUSED(aUrl)
 }
 void FBDialog::loadFinished ( bool ok )
 {
--- a/example/AuthApp/src/loginDialog.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/src/loginDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -154,7 +154,6 @@
     qDebug()<<"uid"<<uid<<"\n";
     qDebug()<<"expires"<<expires<<"\n";
     qDebug()<<"secret"<<secret<<"\n";
-    bool ok = false;
     uint expiry = expires.toUInt();//.toUInt(&conversionError);
     QDateTime expiration; expiration.setTime_t( expiry );
     iSession->beginSession(session_key, secret,expiration);
--- a/example/AuthApp/src/requestSP.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/src/requestSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -34,8 +34,6 @@
 static const char kUserAgent[] = "FacebookConnect";
 static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
 
-static const double kTimeoutInterval = 180.0;
-
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -135,6 +133,7 @@
 
 QString FBRequest::urlForMethod (const QString& aMethod) const {
 
+	Q_UNUSED(aMethod)
 	return iSession->apiURL();
 }
 
--- a/example/AuthApp/ui_AuthApp.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/ui_AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'AuthApp.ui'
 **
-** Created: Wed Sep 22 18:28:00 2010
+** Created: Tue Sep 28 12:00:11 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/example/AuthApp/ui_progressbar.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/AuthApp/ui_progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'progressbar.ui'
 **
-** Created: Wed Sep 22 18:27:56 2010
+** Created: Mon Sep 27 15:44:20 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/example/DemoGUI/CustomListWidget.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/CustomListWidget.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -84,6 +84,7 @@
 
 void CustomListWidget::AddListItem(QMainWindow *mainWindow,QStringList aIconPath,QStringList aNames)
 {
+	Q_UNUSED(mainWindow)
 	qDebug()<<"Inside GridView::CreateGridView()";
 	qDebug()<<"aIconPath count = "<<aIconPath.count();
 	qDebug()<<"names count = "<<aNames.count();
@@ -121,7 +122,6 @@
 		{
 		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];
@@ -319,10 +319,10 @@
     return customlist;
 	
 	}
-QWidget* CreateListwidget(SmfActivityEntryList *activityList)
+/*QWidget* CreateListwidget(SmfActivityEntryList *activityList)
 			{
 	
-			}
+			}*/
 
 /*QWidget* CustomListWidget::CreateListwidget(QString aIconPath,QString aFirstLine,QString aSecondLine)
 {
--- a/example/DemoGUI/DemoGUI.loc	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/DemoGUI.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:14:37
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:17
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/DemoGUI/DemoGUI.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/DemoGUI.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:14:37
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:17
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/DemoGUI/DemoGUI_reg.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/DemoGUI_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:14:37
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:17
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
@@ -8,7 +8,7 @@
 #include <appinfo.rh>
 
 UID2 KUidAppRegistrationResourceFile
-UID3 0xE9d1bae8
+UID3 0xE14b315c
 
 RESOURCE APP_REGISTRATION_INFO
 	{
--- a/example/DemoGUI/HomeView.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/HomeView.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -12,7 +12,7 @@
 #include <QDebug>
 #include "ImageDownload.h"
 
-static int tab = 0;
+//static int tab = 0;
 
 HomeView::HomeView(QString aHeadName):
         iHeadName(aHeadName)
@@ -220,6 +220,7 @@
 
 void HomeView::friendsAvailable(SmfContactList* friendsList, SmfError error, SmfResultPage resultPage)
 	{
+	Q_UNUSED(resultPage)
 	qDebug()<<"Inside HomeView::friendsAvailable()";
 	
 	m_friendsList = friendsList;
@@ -235,7 +236,6 @@
 		}
 	
 	//display friends description
-	int count = 0;
 	qDebug()<<"Number of friends retrieved = "<<friendsList->count();
 	if(friendsList->count() == 0)
 		{
@@ -422,7 +422,6 @@
 		}
 	
 	//display posts details
-	int count = 0;
 	qDebug()<<"Number of posts retrieved = "<<postsList->count();
 	if(postsList->count() == 0)
 		{
@@ -519,7 +518,6 @@
 		}
 	
 	//display album details
-	int count = 0;
 	qDebug()<<"Number of albums retrieved = "<<albums->count();
 	if(albums->count() == 0)
 		{
@@ -587,6 +585,7 @@
 
 void HomeView::activitiesAvailable(SmfActivityEntryList* activitiesList, SmfError error, SmfResultPage resultPage)
 	{
+	Q_UNUSED(resultPage)
 	qDebug()<<"Inside HomeView::activitiesAvailable()";
 	
 	m_activitiesList = activitiesList;
@@ -603,7 +602,6 @@
 		}
 	
 	//display activity description
-	int count = 0;
 	qDebug()<<"Number of activities retrieved = "<<activitiesList->count();
 	
 	if(activitiesList->count() == 0)
@@ -693,6 +691,7 @@
 
 void HomeView::picturesAvailable(SmfPictureList* picList, SmfError error, SmfResultPage resultPage)
 	{
+	Q_UNUSED(resultPage)
 	qDebug()<<"Inside HomeView::picturesAvailable()";
 	
 	m_picList = picList;
@@ -708,7 +707,6 @@
 		}
 	
 	//display pic description
-	int count = 0;
 	qDebug()<<"Number of pic retrieved = "<<picList->count();
 	
 	QMap<QString, QUrl> urlMap;
--- a/example/DemoGUI/ImageDownload.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/ImageDownload.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -42,6 +42,7 @@
 
 ImageDownload::ImageDownload(QObject *parent)
 	{
+	Q_UNUSED(parent)
 	manager = new QNetworkAccessManager(this);
 	
 #ifdef EMULATORTESTING
--- a/example/DemoGUI/ui_mainwindow.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/DemoGUI/ui_mainwindow.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'mainwindow.ui'
 **
-** Created: Wed Sep 22 18:28:37 2010
+** Created: Mon Sep 27 15:44:29 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/example/FlickrAuthApp/AuthApp.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/AuthApp.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -71,7 +71,7 @@
 }
 void AuthApp::sessionDidLogin(QString Token)
 {
-
+	Q_UNUSED(Token)
     if (iLoginDialog )
     {
 		QMessageBox msgbox;
--- a/example/FlickrAuthApp/Flickr.loc	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/Flickr.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:18
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/FlickrAuthApp/Flickr.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/Flickr.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:18
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/FlickrAuthApp/Flickr_reg.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/Flickr_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:18
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/FlickrAuthApp/inc/keys.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/inc/keys.h	Mon Oct 11 21:59:54 2010 +0530
@@ -8,7 +8,7 @@
 #ifndef KEYS_H_
 #define KEYS_H_
 
-static const QString kApiKey = "2835574777f7421bc0d058f5a1ad5a56";
-static const QString kApiSecret = "f902dad777efa173";
+static const QString kApiKey = "bd34c1b4f634cb146510a922422a1b99";
+static const QString kApiSecret = "cb4e8fd477786975";
 
 #endif /* KEYS_H_ */
--- a/example/FlickrAuthApp/src/baseDialog.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/src/baseDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -169,24 +169,31 @@
 
 void FBDialog::dismissWithError (const FBError& aError)
 {
+	Q_UNUSED(aError)
 	QMessageBox msgbox;
 	QString msg ("Error!Please try again!");
 	msgbox.setText(msg);
 }
 void FBDialog::slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator )
 	{
+		Q_UNUSED(reply)
+		Q_UNUSED(authenticator)
 		QMessageBox msgbox;
 		QString msg ("Error!Authentication Required");
 		msgbox.setText(msg);
 	}
 void FBDialog::slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  )
 	{
+		Q_UNUSED(reply)
+		Q_UNUSED(errors)
 		QMessageBox msgbox;
 		QString msg ("Error!SSL Error");
 		msgbox.setText(msg);
 	}
 void FBDialog::slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  )
 	{
+		Q_UNUSED(proxy)
+		Q_UNUSED(authenticator)
 		QMessageBox msgbox;
 		QString msg ("Error!Proxy Authenticatio Required");
 		msgbox.setText(msg);
@@ -322,7 +329,7 @@
 	}*/
 void FBDialog::GetSessionKey(const QUrl& aUrl)
 {
-
+	Q_UNUSED(aUrl)
 }
 void FBDialog::connectToGetFullToken()
 {
--- a/example/FlickrAuthApp/src/loginDialog.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/src/loginDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -95,7 +95,6 @@
 void FBLoginDialog::requestDidLoad(const QVariant& aResult)
 {
 	qDebug()<<"Inside FBLoginDialog::requestDidLoad";
-    bool conversionError = false;
     QVariantHash object = aResult.toHash();
     
     QString frob = object.value("frob").toString();
--- a/example/FlickrAuthApp/src/requestSP.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/src/requestSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -37,9 +37,6 @@
 static const QString kAPIFormat = "XML";
 static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
 
-static const double kTimeoutInterval = 180.0;
-
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
@@ -181,6 +178,7 @@
 
 QString FBRequest::urlForMethod (const QString& aMethod) const {
 
+	Q_UNUSED(aMethod)
 	return iSession->apiURL();
 }
 
--- a/example/FlickrAuthApp/src/sessionSP.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/src/sessionSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -28,9 +28,6 @@
 
 static const QString kAPIRestURL = "http://api.flickr.com/services/rest/";
 
-static const int kMaxBurstRequests = 3;
-static const int kBurstDuration = 2;
-
 static FBSession* sharedSession = NULL;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -59,6 +56,7 @@
         iApiSecret ( aAppSecret ),
         m_Client(new SmfCredMgrClient(this))	
 {
+	Q_UNUSED(aGetSessionProxy)
     if (!sharedSession)
     {
         sharedSession = this;
@@ -184,6 +182,7 @@
 bool FBSession::performRequest(FBRequest* aRequest, bool aEnqueue) {
     // Stagger requests that happen in short bursts to prevent the server from rejecting
     // them for making too many requests in a short time
+	Q_UNUSED(aEnqueue)
 	qDebug()<<"Inside FBSession::performRequest";
         aRequest->connect();
         return true;
--- a/example/FlickrAuthApp/ui_AuthApp.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/ui_AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'AuthApp.ui'
 **
-** Created: Wed Sep 22 18:28:06 2010
+** Created: Mon Sep 27 15:44:41 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/example/FlickrAuthApp/ui_progressbar.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/FlickrAuthApp/ui_progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'progressbar.ui'
 **
-** Created: Wed Sep 22 18:28:02 2010
+** Created: Mon Sep 27 15:44:37 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/AuthApp.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,106 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* UI Class of Authentication Application
+*/
+
+#include "AuthApp.h"
+#include <QDebug>
+#include <QMessageBox>
+#include <keys.h>
+
+AuthApp::AuthApp(QWidget *parent)
+    : QMainWindow(parent),
+    ui(new Ui::AuthAppClass)
+{
+	ui->setupUi(this);
+	iFBSession = FBSession::sessionForApplication(kApiKey, kApiSecret, QString());//LastFm Web based
+    connect (iFBSession, SIGNAL(sessionDidLogout()), this, SLOT(sessionDidLogout()));
+    connect (iFBSession,SIGNAL(sessionDidLogin(QString)), this, SLOT(sessionDidLogin(QString)));
+}
+
+AuthApp::~AuthApp()
+{
+	delete iFBSession;
+	delete ui;
+}
+
+void AuthApp::changeEvent(QEvent *e)
+{
+    QMainWindow::changeEvent(e);
+    switch (e->type()) {
+    case QEvent::LanguageChange:
+        ui->retranslateUi(this);
+        break;
+    default:
+        break;
+    }
+}
+void AuthApp::CheckforLogin()
+{
+	iLoginDialog = NULL;
+	if ( !( iFBSession->resume() ) ){
+		ui->buttonForget->setDisabled(true);
+		ui->pushButton->setEnabled(true);
+	}
+}
+void AuthApp::on_pushButton_clicked()
+{
+	qDebug()<<"Inside AuthApp::on_pushButton_clicked";
+        iLoginDialog = new FBLoginDialog();
+        iLoginDialog->connecttoGetFrob();
+    
+}
+void AuthApp::sessionDidLogin(QString Token)
+{
+	Q_UNUSED(Token)
+    if (iLoginDialog )
+    {
+		QMessageBox msgbox;
+		QString msg ("Authorization completes!!");
+		msgbox.setText(msg);
+		msgbox.exec();
+		
+        iLoginDialog->deleteLater();
+        iLoginDialog = NULL;
+    }else{
+		QMessageBox msgbox;
+		QString msg ("your already authorized,Please logout and Login again for new authorization!!");
+		msgbox.setText(msg);
+		msgbox.exec();
+    }
+    
+    ui->pushButton->setDisabled(true);
+    ui->buttonForget->setEnabled(true);
+}
+
+void AuthApp::sessionDidLogout()
+{
+    QMessageBox msgbox;
+    msgbox.setText("logged out successfully!!");
+    msgbox.exec();
+    
+    ui->pushButton->setEnabled(true);
+    ui->buttonForget->setDisabled(true);
+    
+}
+void AuthApp::requestFailedWithFacebookError ( const FBError& aError )
+{
+    qDebug() << "facebook error is " << aError.code() << " - " << aError.description();
+}
+
+void AuthApp::on_buttonForget_clicked()
+{
+    iFBSession->logout();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,54 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* UI Class of Authentication Application
+*/
+
+#ifndef AUTHAPP_H
+#define AUTHAPP_H
+
+#include <QtGui/QMainWindow>
+#include "ui_AuthApp.h"
+#include "errorCodes.h"
+#include "loginDialog.h"
+#include "sessionSP.h"
+
+class AuthApp : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+	AuthApp(QWidget *parent = 0);
+    ~AuthApp();
+private:
+	void CheckforLogin();
+private slots:
+    void on_buttonForget_clicked();
+    void on_pushButton_clicked();
+
+    void sessionDidLogin(QString sessionkey);
+    void sessionDidLogout();
+
+    void requestFailedWithFacebookError ( const FBError& aError );
+
+protected:
+    void changeEvent(QEvent *e);
+
+private:
+    FBSession*      iFBSession;
+    FBLoginDialog*  iLoginDialog;
+    Ui::AuthAppClass *ui;
+};
+
+#endif // AUTHAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/AuthApp.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,13 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-06-23T11:36:56
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#ifdef LANGUAGE_SC
+#define STRING_r_short_caption "AuthApp"
+#define STRING_r_caption "AuthApp"
+#else
+#define STRING_r_short_caption "AuthApp"
+#define STRING_r_caption "AuthApp"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/AuthApp.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AuthAppClass</class>
+ <widget class="QMainWindow" name="AuthAppClass">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>275</width>
+    <height>310</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralWidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QPushButton" name="buttonForget">
+      <property name="text">
+       <string>Logout</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QPushButton" name="pushButton">
+      <property name="text">
+       <string>Login to LastFm</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>40</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/LastFm.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,13 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:19
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#ifdef LANGUAGE_SC
+#define STRING_r_short_caption "LastFm"
+#define STRING_r_caption "LastFm"
+#else
+#define STRING_r_short_caption "LastFm"
+#define STRING_r_caption "LastFm"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/LastFm.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,21 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:19
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <appinfo.rh>
+#include "LastFm.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\\LastFm.mif";
+		};
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/LastFmAuthApp.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,40 @@
+TEMPLATE = app
+TARGET = LastFm
+QT += core \
+    gui \
+    network \
+    webkit \
+    xml
+LIBS += -lsmfcredmgrclient
+HEADERS += inc/keys.h \
+    LastFm.loc \
+    progressbar.h \
+    inc/requestSP.h \
+    inc/xmlParser.h \
+    inc/sessionSP.h \
+    inc/loginDialog.h \
+    inc/errorCodes.h \
+    inc/baseDialog.h \
+    inc/authAppConstants.h \
+    AuthApp.h
+SOURCES += LastFm.rss \
+    LastFm_reg.rss \
+    progressbar.cpp \
+    src/requestSP.cpp \
+    src/xmlParser.cpp \
+    src/sessionSP.cpp \
+    src/loginDialog.cpp \
+    src/baseDialog.cpp \
+    main.cpp \
+    AuthApp.cpp
+FORMS += progressbar.ui \
+    AuthApp.ui
+RESOURCES += 
+ICON = Lastfm.svg
+symbian: { 
+    TARGET.EPOCHEAPSIZE = 0x020000 \
+        0x3200000
+    TARGET.UID3 = 0xE1D8C7D8 # Symbian specific, unprotected uid3 from symbiansigned.com
+    TARGET.CAPABILITY = NetworkServices # Symbian specific, we just need network access
+   
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/LastFm_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,18 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:19
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <LastFm.rsg>
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xE1D8C7D8
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="LastFm";
+	localisable_resource_file="\\resource\\apps\\LastFm";
+
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/Lastfm.svg	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="256"
+   height="256"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="lastfm.svg"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2555">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+         offset="0"
+         id="stop2557" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1"
+         id="stop2559" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2555"
+       id="linearGradient2449"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.5914583,0,0,0.5914584,210.0216,142.2324)"
+       x1="-344.15295"
+       y1="274.711"
+       x2="-395.84943"
+       y2="425.39993" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="204.06241"
+     inkscape:cy="175.00448"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     inkscape:window-width="867"
+     inkscape:window-height="556"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     showgrid="false"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag />
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:description />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-373.642,-318.344)">
+    <rect
+       inkscape:export-ydpi="7.7063322"
+       inkscape:export-xdpi="7.7063322"
+       inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
+       transform="scale(-1,1)"
+       ry="35.487503"
+       rx="35.487503"
+       y="328.84921"
+       x="-619.14587"
+       height="234.98955"
+       width="235.00784"
+       id="rect1942"
+       style="fill:#ce0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.87500000000000000, 1.75000000000000000;stroke-dashoffset:0;stroke-opacity:1" />
+    <path
+       inkscape:export-ydpi="7.7063322"
+       inkscape:export-xdpi="7.7063322"
+       inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
+       sodipodi:nodetypes="ccccsssc"
+       id="path1950"
+       d="M 557.05665,338.89518 L 446.22721,338.89518 C 416.89033,338.89518 393.27256,362.70492 393.27256,392.28025 L 393.27256,500.40761 C 394.22216,523.49366 397.87485,508.89915 404.82758,483.3329 C 412.90814,453.61975 439.22406,427.65003 471.27219,408.1872 C 495.73352,393.33195 523.11328,383.84595 572.95174,382.94353 C 601.21656,382.43177 598.72124,346.26062 557.05665,338.89518 z"
+       style="opacity:0.55364805;fill:url(#linearGradient2449);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.875;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.875, 1.75;stroke-dashoffset:0;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:18;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 499.87835,485.40493 c -8.2629,9.60152 -19.95678,13.48473 -33.92857,13.57143 -34.31711,1.15534 -50.27142,-29.51483 -51.07143,-52.85714 0.23421,-22.76547 19.14858,-50.79762 50,-51.42858 22.05846,0.63597 37.72221,7.33677 50.35714,40.35715 5.28078,13.81626 8.89926,24.51172 14.64286,36.78571 9.76191,20.20361 22.02381,26.66539 33.57143,27.14286 12.35432,0.0658 31.21727,-7.92258 30.71428,-29.64286 -0.64462,-17.09347 -18.79462,-23.46728 -28.92857,-26.42857 -12.00931,-3.04122 -23.0559,-7.16626 -26.07143,-25.35715 -0.99836,-9.20703 6.48725,-22.70043 22.14286,-22.85714 6.73828,0.23233 11.91867,0.074 17.14286,5"
+       id="path26100"
+       sodipodi:nodetypes="cccccccccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;stroke:none"
+       d="m 583.75373,392.39028 c 2.93584,2.39626 4.1771,4.94536 8.33376,10.48034 l -14.26841,10.85914 c -1.57111,-2.78358 -2.6957,-5.2524 -5.93464,-7.70242 l 11.86929,-13.63706 z"
+       id="path26102"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;stroke:none"
+       d="m 505.8605,492.19064 c 2.32011,-2.80539 4.25644,-5.70672 5.62499,-8.75 l -9.28571,-16.69643 c -2.58175,4.93905 -6.05652,9.34228 -9.82143,13.57143 l 13.48215,11.875 z"
+       id="path26104"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/backup_registration.xml	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+  <system_backup/>
+  <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/authAppConstants.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,30 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra Sasken Communication Technologies Ltd
+* Description:
+* Common variable declarations
+*/
+
+#ifndef FBCONNECTGLOBAL_H
+#define FBCONNECTGLOBAL_H
+
+#include <QtGlobal>
+#include <QHash>
+#include <QString>
+
+typedef QHash<QString,QString> Dictionary;
+typedef QHashIterator<QString, QString> DictionaryIterator;
+
+
+
+#endif // FBCONNECTGLOBAL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/baseDialog.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,162 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Base class of All dialogs
+*/
+
+#ifndef FB_DIALOG_H_
+#define FB_DIALOH_H_
+
+#include <QDialog>
+#include <QWebView>
+#include <QWebSettings>
+#include <qprogressbar.h>
+#include <qboxlayout.h>
+#include "authAppConstants.h"
+//#include "QScrollArea"
+// FORWARD DECLARATIONS
+class FBSession;
+class FBError;
+class QNetworkReply;
+
+//#define __WINSCW__
+
+/**
+  * The base Dialoggg
+  */
+class FBDialog : public QWidget
+{
+    Q_OBJECT
+
+protected:
+
+    /**
+    * The session for which the login is taking place.
+    */
+    FBSession*	iSession;
+    QWebView*	iWebView;
+    QWebSettings* iWebSettings;
+    QString	iLoadingUrl;
+    QProgressBar* progressbar;
+    QVBoxLayout* layout;
+
+signals:
+
+    /**
+     * Called when the dialog succeeds and is about to be dismissed.
+     */
+    void dialogDidSucceed ();
+
+    /**
+     * Called when the dialog is cancelled and is about to be dismissed.
+     */
+    void dialogDidCancel();
+
+    /**
+     * Called when dialog failed to load due to an error.
+     */
+    void dialogDidFailWithError ( const FBError& error );
+
+
+	
+private slots:
+    void cancel();
+
+    /* slots for signals from QWebView.page() */
+    void linkClicked ( const QUrl & url );
+    void loadStarted ();
+    void loadProgress(int progress);
+    void loadFinished ( bool ok );
+    //void urlChanged ( const QUrl & url );
+    //Network Error Slots
+    void slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator );
+    void slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  );
+    void slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  );
+
+public:
+	
+	void proxysettings();
+    /**
+    * Creates the view but does not display it.
+    */
+    FBDialog(FBSession* aSession);
+    FBDialog();
+
+    /**
+    * Displays the view with an animation.
+    *
+    * The view will be added to the top of the current key window.
+    */
+    void show();
+	
+    /** Displays the first page of the dialog.
+     *
+     * Do not ever call this directly.  It is intended to be overriden by subclasses.
+     */
+    virtual void load ();
+		
+    /**
+     * Displays a URL in the dialog.
+     */
+    void loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams,
+                 const QHash<QString, QString>&  aPostParams);
+
+
+    void dismiss(bool aAnimated);
+
+    /**
+     * Hides the view and notifies delegates of success or cancellation.
+     */
+    void dismissWithSuccess (bool aSuccess, bool aAnimated);
+
+    /**
+    * Hides the view and notifies delegates of an error.
+    */
+    void dismissWithError (const FBError& aError);
+
+    /**
+    * Subclasses may override to perform actions just prior to showing the dialog.
+    */
+    virtual void dialogWillAppear();
+
+    /**
+     * Subclasses may override to perform actions just after the dialog is hidden.
+     */
+    virtual void dialogWillDisappear();
+
+    /**
+     * Subclasses should override to process data returned from the server in a 'fbconnect' url.
+     *
+     * Implementations must call dismissWithSuccess:YES at some point to hide the dialog.
+     */
+    virtual void dialogDidSucceed(const QUrl& aUrl);
+	
+    QString title() const;
+    void setTitle ( const QString& aTitle );
+    
+    virtual void GetSessionKey(const QUrl& aUrl);
+    
+    virtual void connectToGetSession();
+
+private:
+    void createControls();
+    QString generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const;
+    QByteArray generatePostBody (const QHash<QString, QString>& aParams) const;
+
+    void postDismissCleanup();
+private:
+    bool flag;
+    QUrl urlShoot;
+ };
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/errorCodes.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,221 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Common Errors Declaration
+*/
+
+#ifndef FBERROR_H_
+#define FBERROR_H_
+
+
+#include "authAppConstants.h"
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Error codes
+/* defined by this proj*/
+#define FBRESPONSE_PARSE_ERROR 13  /* the xml parser was unable to parse the response returned by the server */
+
+/* defined and returned by facebook */
+#define FBAPI_EC_SUCCESS 0
+#define FBAPI_EC_UNKNOWN 1
+#define FBAPI_EC_SERVICE 2
+#define FBAPI_EC_METHOD 3
+#define FBAPI_EC_TOO_MANY_CALLS 4
+#define FBAPI_EC_BAD_IP 5
+#define FBAPI_EC_HOST_API 6
+#define FBAPI_EC_HOST_UP 7
+#define FBAPI_EC_SECURE 8
+#define FBAPI_EC_RATE 9
+#define FBAPI_EC_PERMISSION_DENIED 10
+#define FBAPI_EC_DEPRECATED 11
+#define FBAPI_EC_VERSION 12
+
+#define FBAPI_EC_PARAM 100
+#define FBAPI_EC_PARAM_FBAPI_KEY 101
+#define FBAPI_EC_PARAM_SESSION_KEY 102
+#define FBAPI_EC_PARAM_CALL_ID 103
+#define FBAPI_EC_PARAM_SIGNATURE 104
+#define FBAPI_EC_PARAM_TOO_MANY 105
+#define FBAPI_EC_PARAM_USER_ID 110
+#define FBAPI_EC_PARAM_USER_FIELD 111
+#define FBAPI_EC_PARAM_SOCIAL_FIELD 112
+#define FBAPI_EC_PARAM_EMAIL 113
+#define FBAPI_EC_PARAM_ALBUM_ID 120
+#define FBAPI_EC_PARAM_PHOTO_ID 121
+#define FBAPI_EC_PARAM_FEED_PRIORITY 130
+#define FBAPI_EC_PARAM_CATEGORY 140
+#define FBAPI_EC_PARAM_SUBCATEGORY 141
+#define FBAPI_EC_PARAM_TITLE 142
+#define FBAPI_EC_PARAM_DESCRIPTION 143
+#define FBAPI_EC_PARAM_BAD_JSON 144
+#define FBAPI_EC_PARAM_BAD_EID 150
+#define FBAPI_EC_PARAM_UNKNOWN_CITY 151
+#define FBAPI_EC_PARAM_BAD_PAGE_TYPE 152
+
+#define FBAPI_EC_PERMISSION 200
+#define FBAPI_EC_PERMISSION_USER 210
+#define FBAPI_EC_PERMISSION_ALBUM 220
+#define FBAPI_EC_PERMISSION_PHOTO 221
+#define FBAPI_EC_PERMISSION_MESSAGE 230
+#define FBAPI_EC_PERMISSION_MARKUP_OTHER_USER 240
+#define FBAPI_EC_PERMISSION_STATUS_UPDATE 250
+#define FBAPI_EC_PERMISSION_PHOTO_UPLOAD 260
+#define FBAPI_EC_PERMISSION_SMS 270
+#define FBAPI_EC_PERMISSION_CREATE_LISTING 280
+#define FBAPI_EC_PERMISSION_EVENT 290
+#define FBAPI_EC_PERMISSION_LARGE_FBML_TEMPLATE 291
+#define FBAPI_EC_PERMISSION_LIVEMESSAGE 292
+#define FBAPI_EC_PERMISSION_RSVP_EVENT 299
+
+#define FBAPI_EC_EDIT 300
+#define FBAPI_EC_EDIT_USER_DATA 310
+#define FBAPI_EC_EDIT_PHOTO 320
+#define FBAPI_EC_EDIT_ALBUM_SIZE 321
+#define FBAPI_EC_EDIT_PHOTO_TAG_SUBJECT 322
+#define FBAPI_EC_EDIT_PHOTO_TAG_PHOTO 323
+#define FBAPI_EC_EDIT_PHOTO_FILE 324
+#define FBAPI_EC_EDIT_PHOTO_PENDING_LIMIT 325
+#define FBAPI_EC_EDIT_PHOTO_TAG_LIMIT 326
+#define FBAPI_EC_EDIT_ALBUM_REORDER_PHOTO_NOT_IN_ALBUM 327
+#define FBAPI_EC_EDIT_ALBUM_REORDER_TOO_FEW_PHOTOS 328
+#define FBAPI_EC_MALFORMED_MARKUP 329
+#define FBAPI_EC_EDIT_MARKUP 330
+#define FBAPI_EC_EDIT_FEED_TOO_MANY_USER_CALLS 340
+#define FBAPI_EC_EDIT_FEED_TOO_MANY_USER_ACTION_CALLS 341
+#define FBAPI_EC_EDIT_FEED_TITLE_LINK 342
+#define FBAPI_EC_EDIT_FEED_TITLE_LENGTH 343
+#define FBAPI_EC_EDIT_FEED_TITLE_NAME 344
+#define FBAPI_EC_EDIT_FEED_TITLE_BLANK 345
+#define FBAPI_EC_EDIT_FEED_BODY_LENGTH 346
+#define FBAPI_EC_EDIT_FEED_PHOTO_SRC 347
+#define FBAPI_EC_EDIT_FEED_PHOTO_LINK 348
+#define FBAPI_EC_EDIT_VIDEO_SIZE 350
+#define FBAPI_EC_EDIT_VIDEO_INVALID_FILE 351
+#define FBAPI_EC_EDIT_VIDEO_INVALID_TYPE 352
+#define FBAPI_EC_EDIT_FEED_TITLE_ARRAY 360
+#define FBAPI_EC_EDIT_FEED_TITLE_PARAMS 361
+#define FBAPI_EC_EDIT_FEED_BODY_ARRAY 362
+#define FBAPI_EC_EDIT_FEED_BODY_PARAMS 363
+#define FBAPI_EC_EDIT_FEED_PHOTO 364
+#define FBAPI_EC_EDIT_FEED_TEMPLATE 365
+#define FBAPI_EC_EDIT_FEED_TARGET 366
+#define FBAPI_EC_USERS_CREATE_INVALID_EMAIL 370
+#define FBAPI_EC_USERS_CREATE_EXISTING_EMAIL 371
+#define FBAPI_EC_USERS_CREATE_BIRTHDAY 372
+#define FBAPI_EC_USERS_CREATE_PASSWORD 373
+#define FBAPI_EC_USERS_REGISTER_INVALID_CREDENTIAL 374
+#define FBAPI_EC_USERS_REGISTER_CONF_FAILURE 375
+#define FBAPI_EC_USERS_REGISTER_EXISTING 376
+#define FBAPI_EC_USERS_REGISTER_DEFAULT_ERROR 377
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_BLANK 378
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_INVALID_CHARS 379
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_SHORT 380
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_WEAK 381
+#define FBAPI_EC_USERS_REGISTER_USERNAME_ERROR 382
+#define FBAPI_EC_USERS_REGISTER_MISSING_INPUT 383
+#define FBAPI_EC_USERS_REGISTER_INCOMPLETE_BDAY 384
+#define FBAPI_EC_USERS_REGISTER_INVALID_EMAIL 385
+#define FBAPI_EC_USERS_REGISTER_EMAIL_DISABLED 386
+#define FBAPI_EC_USERS_REGISTER_ADD_USER_FAILED 387
+#define FBAPI_EC_USERS_REGISTER_NO_GENDER 388
+
+#define FBAPI_EC_AUTH_EMAIL 400
+#define FBAPI_EC_AUTH_LOGIN 401
+#define FBAPI_EC_AUTH_SIG 402
+#define FBAPI_EC_AUTH_TIME 403
+
+#define FBAPI_EC_SESSION_METHOD 451
+#define FBAPI_EC_SESSION_REQUIRED 453
+#define FBAPI_EC_SESSION_REQUIRED_FOR_SECRET 454
+#define FBAPI_EC_SESSION_CANNOT_USE_SESSION_SECRET 455
+
+#define FBAPI_EC_MESG_BANNED 500
+#define FBAPI_EC_MESG_NO_BODY 501
+#define FBAPI_EC_MESG_TOO_LONG 502
+#define FBAPI_EC_MESG_RATE 503
+#define FBAPI_EC_MESG_INVALID_THREAD 504
+#define FBAPI_EC_MESG_INVALID_RECIP 505
+#define FBAPI_EC_POKE_INVALID_RECIP 510
+#define FBAPI_EC_POKE_OUTSTANDING 511
+#define FBAPI_EC_POKE_RATE 512
+
+#define FQL_EC_UNKNOWN_ERROR 600
+#define FQL_EC_PARSER_ERROR 601
+#define FQL_EC_UNKNOWN_FIELD 602
+#define FQL_EC_UNKNOWN_TABLE 603
+#define FQL_EC_NO_INDEX 604
+#define FQL_EC_UNKNOWN_FUNCTION 605
+#define FQL_EC_INVALID_PARAM 606
+#define FQL_EC_INVALID_FIELD 607
+#define FQL_EC_INVALID_SESSION 608
+
+#define FBAPI_EC_REF_SET_FAILED 700
+#define FBAPI_EC_FB_APP_UNKNOWN_ERROR 750
+#define FBAPI_EC_FB_APP_FETCH_FAILED 751
+#define FBAPI_EC_FB_APP_NO_DATA 752
+#define FBAPI_EC_FB_APP_NO_PERMISSIONS 753
+#define FBAPI_EC_FB_APP_TAG_MISSING 754
+
+#define FBAPI_EC_DATA_UNKNOWN_ERROR 800
+#define FBAPI_EC_DATA_INVALID_OPERATION 801
+#define FBAPI_EC_DATA_QUOTA_EXCEEDED 802
+#define FBAPI_EC_DATA_OBJECT_NOT_FOUND 803
+#define FBAPI_EC_DATA_OBJECT_ALREADY_EXISTS 804
+#define FBAPI_EC_DATA_DATABASE_ERROR 805
+#define FBAPI_EC_DATA_CREATE_TEMPLATE_ERROR 806
+#define FBAPI_EC_DATA_TEMPLATE_EXISTS_ERROR 807
+#define FBAPI_EC_DATA_TEMPLATE_HANDLE_TOO_LONG 808
+#define FBAPI_EC_DATA_TEMPLATE_HANDLE_ALREADY_IN_USE 809
+#define FBAPI_EC_DATA_TOO_MANY_TEMPLATE_BUNDLES 810
+#define FBAPI_EC_DATA_MALFORMED_ACTION_LINK 811
+#define FBAPI_EC_DATA_TEMPLATE_USES_RESERVED_TOKEN 812
+
+#define FBAPI_EC_NO_SUCH_APP 900
+#define FBAPI_BATCH_TOO_MANY_ITEMS 950
+#define FBAPI_EC_BATCH_ALREADY_STARTED 951
+#define FBAPI_EC_BATCH_NOT_STARTED 952
+#define FBAPI_EC_BATCH_METHOD_NOT_ALLOWED_IN_BATCH_MODE 953
+
+#define FBAPI_EC_EVENT_INVALID_TIME 1000
+#define FBAPI_EC_INFO_NO_INFORMATION 1050
+#define FBAPI_EC_INFO_SET_FAILED 1051
+
+#define FBAPI_EC_LIVEMESSAGE_SEND_FAILED 1100
+#define FBAPI_EC_LIVEMESSAGE_EVENT_NAME_TOO_LONG 1101
+#define FBAPI_EC_LIVEMESSAGE_MESSAGE_TOO_LONG 1102
+
+#define FBAPI_EC_PAGES_CREATE 1201
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class FBError
+{
+
+public:
+    FBError(quint8 aErrorCode) : iErrorCode (aErrorCode) {}
+    FBError() : iErrorCode(0) {}
+
+    inline quint8 code() const { return iErrorCode; }
+    inline void setCode( quint8 aErrorCode ) { iErrorCode = aErrorCode; }
+
+    inline QString description() const { return iErrorDescription; }
+    inline void setDescription( const QString& aErrorDescription ) { iErrorDescription = aErrorDescription; }
+
+private:
+    quint8 iErrorCode;
+    QString iErrorDescription;
+};
+
+#endif // FBERROR_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/keys.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,19 @@
+/*
+ * keys.h
+ *
+ *  Created on: Jul 20, 2010
+ *      Author: sidd
+ */
+
+#ifndef KEYS_H_
+#define KEYS_H_
+//#define EMULATORTESTING
+
+static const QString kAPIRestURL = "http://ws.audioscrobbler.com/2.0/";
+static const QString kMinitokensuccessURL = "http://www.last.fm/api/grantaccess";
+static const QString kUrlChk = "http://www.last.fm/home";
+
+static const QString kApiKey = "6c401b39076d1ad6d6932fb74e6300ea";////"1d5c574ea10fae4a8d1d5d65435b8568";
+static const QString kApiSecret = "940b7a59c558a626db7100cda198517a";//"7fc210f897d4c4c32a47608e45cd3025";//
+
+#endif /* KEYS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/loginDialog.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,55 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Login Dialog class of Authentication Application
+*/
+
+
+#ifndef FB_LOGIN_DIALOG_H_
+#define FB_LOGIN_DIALOG_H_
+
+#include "baseDialog.h"
+#include "requestSP.h"
+#include <QNetworkReply>
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+class FBLoginDialog : public FBDialog
+{
+    Q_OBJECT
+
+private:
+    FBRequest* iGetSessionRequest;
+	
+private slots:
+    /* slots for handling signals from FBRequest iGetSessionRequest */
+    void requestDidLoad (const QVariant& aResult);
+    //void requestDidLoadSession (const QVariant& aResult);
+    void requestFailedWithFlickrError ( const FBError& aError );
+    void requestFailedWithNetworkError( QNetworkReply::NetworkError code );
+
+public:
+    FBLoginDialog(FBSession* aSession);
+    FBLoginDialog();
+    void connecttoGetFrob();
+    void load();
+
+private:
+    void connectToGetSession();
+    
+    void loadLoginPage();
+	
+ };
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/requestSP.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,216 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to handle calls to rest Server API's
+*/
+#ifndef FBREQUEST_H
+#define FBREQUEST_H
+
+#include <QObject>
+#include <QString>
+#include <QDateTime>
+#include <QHttp>
+#include <QHash>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include "progressbar.h"
+#include "authAppConstants.h"
+#include "xmlParser.h"
+
+// FORWARD DECLARATIONS
+class FBSession;
+class FBError;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class  FBRequest : public QObject
+{
+    Q_OBJECT
+
+private:
+
+    /* pointer to the session that owns this request */
+    FBSession*  iSession;
+
+    /**
+     * The URL which will be contacted to execute the request.
+     */
+    QString iUrl;
+
+    /**
+     * The API method which will be called.
+     */
+    QString iMethod;
+
+    /**
+     * An object used by the user of the request to help identify the meaning of the request.
+     */
+    void*   iUserInfo;
+
+    /**
+     * The dictionary of parameters to pass to the method.
+     *
+     * These values in the dictionary will be converted to strings using the
+     * standard Objective-C object-to-string conversion facilities.
+     */
+    Dictionary  iParams;
+
+    /**
+     * A data parameter.
+     *
+     * Used for methods such as photos.upload, video.upload, events.create, and
+     * events.edit.
+     */
+    QByteArray  iDataParam;
+
+    /**
+      * true if iDataParam holds picture data
+      */
+    bool        iDataParamPicture;
+
+    /**
+     * The timestamp of when the request was sent to the server.
+     */
+    QDateTime   iTimestamp;
+    QHttp       iConnection;
+    QByteArray  iResponseText;
+
+    QNetworkAccessManager iNetworkAccessManager;
+    progressbar* pbar;
+
+signals: /* the signals ommitted by FBRequest */
+
+    /**
+     * Called just before the request is sent to the server.
+     */
+    void requestLoading();
+
+    /**
+     * Called when an error prevents the request from completing successfully.
+     */
+    void requestFailedWithNetworkError( QNetworkReply::NetworkError code );
+    void requestFailedWithFlickrError ( const FBError& aError );
+
+    /**
+     * Called when a request returns and its response has been parsed into an object.
+     *
+     * The resulting object may be a dictionary, an array, a string, or a number, depending
+     * on thee format of the API response.
+     */
+    void requestDidLoad ( const QVariant& aResult);
+    //void requestDidLoadSession( const QVariant& aResult);
+
+
+private slots:
+    void networkReplyError ( QNetworkReply::NetworkError code );
+    void networkReplyFinished ();
+
+public: /* class functions */
+    /**
+     * Creates a new API request for the global session.
+     */
+    static FBRequest* request();
+
+    /**
+     * Creates a new API request for a particular session.
+     */
+    static FBRequest* requestWithSession (FBSession* aSession);
+
+public: /* instance functions */
+
+    /**
+     * Creates a new request paired to a session.
+     */
+    FBRequest (FBSession* aSession);
+
+    /**
+     * Calls a method on the server asynchronously.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void call (const QString& aMethod, const Dictionary& aParams);
+    
+    void callforToken ();
+
+    /**
+     * Calls a method on the server asynchronously, with a file upload component.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture);
+
+    /**
+     * Calls a URL on the server asynchronously.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void post( const QString& aUrl, const Dictionary& aParams);
+
+    /**
+     * Stops an active request before the response has returned.
+     */
+    void cancel();
+
+    /**
+      * returns the time stamp of when the request was sent to the server
+      */
+    const QDateTime& timeStamp() const;
+
+    void connect();
+    
+    QString generateSig(Dictionary Params);
+    
+    void proxysettings();
+
+private:
+    /**
+      * Given a string returns its hex coded md5 hash
+      */
+    static QString md5(const QString&);
+
+    /**
+      * @return true if the current request method is a special method
+      */
+    bool isSpecialMethod() const;
+
+    /**
+      * @return QString a url to use for the given method
+      */
+    QString urlForMethod (const QString& aMethod) const;
+
+    /**
+      * @return the Get Url for the request
+      */
+    QString generateGetURL() const;
+
+    QString generateCallId() const;
+    
+
+    void generatePostBody(QByteArray& body);
+
+    /**
+      * handles the data received from the server
+      * @param aResponseData is the data received from the server
+      */
+    void handleResponseData( const QByteArray& aResponseData );
+
+    /**
+      * @param aResponseData is the data received from the server
+      * @param aError will get error codes if any error occurs ( this will change in the future )
+      * @return a void* pointer, this will change
+      */
+    QVariant parseXMLResponse ( const QByteArray& aResponseData, FBError& aError);
+
+};
+
+#endif // FBREQUEST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/sessionSP.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,219 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to maintian session & all credential keys.
+*/
+
+#ifndef FBSESSION_H
+#define FBSESSION_H
+
+#include <QObject>
+#include <QList>
+#include <QString>
+#include <QSettings>
+#include <QDateTime>
+#include "smfcredmgrclient.h"
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+const QString KFacebokkKeysFileName = "c://Data//FacebookKeys.txt";
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * An FBSession represents a single user's authenticated session for a Facebook application.
+ *
+ * To create a session, you must use the session key of your application (which can
+ * be found on the Facebook developer website).  You may then use the login dialog to ask
+ * the user to enter their email address and password.  If successful, you will get back a
+ * session key which can be used to make requests to the Facebook API.
+ *
+ * Session keys are cached and stored on the disk of the device so that you do not need to ask
+ * the user to login every time they launch the app.  To restore the last active session, call the
+ * resume method after instantiating your session.
+ */
+class FBSession : public QObject
+{
+    Q_OBJECT
+
+private:
+    /**
+     * Your application's API key, as passed to the constructor.
+     */
+    QString iApiKey;
+
+    /**
+     * Your application's API secret, as passed to the constructor.
+     */
+    QString iApiSecret;
+
+  /**
+	 * The current user's Frob key.
+	 */
+	QString iToken;
+	
+	/**
+	 * The user's Session Key
+	 */
+	QString iLastfmSessionKey;
+	
+	/**
+	 * The user's Session Key
+	 */
+	QString iLastfmUserName;
+
+    /**
+      * The settings object used to restore session from the disk.
+      */
+    QSettings   iSettings;
+    /**
+      * The Credentail Object used to store auth data
+      */
+    SmfCredMgrClient* m_Client; 
+    /**
+      * Variable to store 
+      */ 
+    QString iCMRegToken;
+
+signals: /* the signals ommitted by FBSession */
+
+    /**
+      * Called when session logged in sucessfully
+      * @param SessionKey is the fb assigned session key
+      */
+    void sessionDidLogin (QString SessionKey);
+
+    /**
+     * Called when a user closes the login dialog without logging in.
+     */
+    void sessionDidNotLogin ();
+
+    /**
+     * Called when a session is about to log out.
+     * @param aUid is the fb assigned session id
+     */
+    void sessionWillLogout ();
+
+    /**
+     * Called when a session has logged out.
+     */
+    void sessionDidLogout ();
+
+public: /* class functions */
+
+    /**
+     * The globally shared session instance.
+     */
+    static FBSession* session();
+
+    /**
+     * Sets the globally shared session instance.
+     *
+     * This session is not retained, so you are still responsible for retaining it yourself.  The
+     * first session that is created is automatically stored here.
+     */
+    static void setSession(FBSession* aSession);
+
+    /**
+     * Constructs a session and stores it as the globally shared session instance.
+     *
+     * @param aSessionProxy a url to that proxies auth.getSession
+     */
+    static FBSession* sessionForApplication ( const QString& aKey, const QString& aSecret, const QString& aSessionProxy);
+
+public: /* instance functions */
+
+    /**
+     * Constructs a session for an application.
+     *
+     * @param secret the application secret (optional)
+     * @param getSessionProxy a url to that proxies auth.getSession (optional)
+     */
+    FBSession( const QString& aKey, const QString& aSecret, const QString& aSessionProxy );
+
+    /**
+      * Destructor
+      */
+    ~FBSession();
+
+    /**
+     * Saves Frob Key
+     */
+    void SaveToken ( const QString& aToken);
+    
+    /**
+	 * Saves Session Key
+	 */
+	void SaveSession (const QString& session, const QString& name );
+
+    /**
+     * Resumes a previous session whose uid, session key, and secret are cached on disk.
+     */
+     bool resume();
+
+    /**
+     * Ends the current session and deletes the uid, session key, and secret from disk.
+     */
+    void logout();
+
+    /**
+     * Sends a fully configured request to the server for execution.
+     */
+    void send (FBRequest* aRequest);
+
+    /**
+      * @return const QString& http:// URL to the facebook REST server
+      */
+    const QString& apiURL() const;
+    /**
+      * @return const QString& the api secret
+      */
+    const QString& apiSecret() const { return iApiSecret; }
+
+    /**
+      * @return api key for this session
+      */
+    const QString& apiKey() const { return iApiKey; }
+
+    /**
+	  * @return the Frob key
+	  */
+	//const QString& apiTokenjKey() const { return iFrobKey; }
+	
+	/**
+		  * @return the Api Token
+	*/
+	const QString& apiToken() const { return iToken; }
+
+private:
+
+    /**
+      * Saves the fb connect session information to disk
+      */
+    void save();
+    /**
+      * Forgets any fb connect session information saved to disk
+      */
+    void unsave();
+    /**
+      * @param aRequest, the request to perform.
+      * @param aEnqueue, if true add to queue if cant perform the request right now
+      */
+    bool performRequest(FBRequest* aRequest, bool aEnqueue);
+
+
+};
+
+#endif // FBSESSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/inc/xmlParser.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,84 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* XML Parser class
+*/
+
+#ifndef FB_XML_HANDLER_H
+#define FB_XML_HANDLER_H
+
+#include <QObject>
+#include <QString>
+#include <QXmlDefaultHandler>
+#include <QVariantList>
+
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class FBXMLHandler : public QObject, public QXmlDefaultHandler
+{
+    Q_OBJECT
+
+private:
+    QVariantList        iStack;
+    QList<QString>      iNameStack;
+    QVariant            iRootObject;
+    QString             iRootName;
+    QString             iChars;
+
+    QString         iParseErrorMessage;
+    bool            iError;
+
+public: /* class functions */
+
+    FBXMLHandler();
+    ~FBXMLHandler();
+
+    inline const QString& rootName() const { return iRootName; }
+    inline QVariant rootObject() const { return iRootObject; }
+
+    inline bool parseError() const { return iError; }
+
+private:
+    /* methods from QXmlDefaultHandler */
+    bool startElement( const QString & namespaceURI,
+                       const QString & localName,
+                       const QString & qName,
+                       const QXmlAttributes & atts);
+    bool characters(const QString& text);
+    bool endElement( const QString & namespaceURI,
+                     const QString & localName,
+                     const QString & qName );
+
+    /* methods from QXmlErrorHandler */
+    bool error(const QXmlParseException& exception);
+    bool fatalError(const QXmlParseException& exception);
+
+    /* private functions*/
+    const QString& topName() const;
+    void flushCharacters();
+    QVariant topObject(bool aCreate);
+
+    QVariant topContainer();
+
+
+    void initWhiteSpaceHash();
+    QHash<QChar, bool> iWhiteSpaceAndNewLineCharSet;
+
+};
+
+#endif // FB_XML_HANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/main.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** 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 "AuthApp.h"
+
+#include <QtGui>
+#include <QApplication>
+
+void debugOutput(QtMsgType type, const char *msg)
+	{
+	QFile logFile("c://data//LastFmLog.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);
+    AuthApp w;
+    
+	#if defined(Q_OS_SYMBIAN)
+		w.showMaximized();
+	#else
+		w.show();
+	#endif
+		
+    return a.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/progressbar.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,14 @@
+#include "progressbar.h"
+
+progressbar::progressbar(QWidget *parent)
+    : QWidget(parent)
+{
+	ui.setupUi(this);
+	ui.progressBar->setTextVisible(false);
+}
+
+
+progressbar::~progressbar()
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,19 @@
+#ifndef PROGRESSBAR_H
+#define PROGRESSBAR_H
+
+#include <QtGui/QWidget>
+#include "ui_progressbar.h"
+
+class progressbar : public QWidget
+{
+    Q_OBJECT
+
+public:
+    progressbar(QWidget *parent = 0);
+    ~progressbar();
+
+private:
+    Ui::progressbarClass ui;
+};
+
+#endif // PROGRESSBAR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/progressbar.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,31 @@
+<ui version="4.0" >
+ <class>progressbarClass</class>
+ <widget class="QWidget" name="progressbarClass" >
+    <property name="windowTitle" >
+   <string>progressbar</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" >
+   <item>
+    <widget class="QLabel" name="label" >
+     <property name="text" >
+      <string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:10pt;">Loading,Please wait.....&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QProgressBar" name="progressBar" >
+     <property name="value" >
+      <number>24</number>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/src/baseDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,361 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Base class of All dialogs
+*/
+
+#define EMULATORTESTING 1
+
+#include <QNetworkCookie>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QWebFrame>
+#include <QFile>
+#include <QDesktopServices>
+#include <QResizeEvent>
+#include <QDebug>
+#include <qmessagebox.h>
+#include <QNetworkAccessManager>
+#include <QPropertyAnimation>
+ #include <qnetworkproxy.h>
+#include <qdesktopwidget.h>
+#include <qapplication.h>
+//#include <qboxlayout.h>
+#include "baseDialog.h"
+#include "sessionSP.h"
+#include "errorCodes.h"
+#include "keys.h"
+
+static const QString kDefaultTitle = "Connect to LastFm";
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+/*static const QString kMinitokensuccessURL = "http://www.last.fm/api/grantaccess";//http://www.last.fm/api/auth/";
+static const QString kUrlChk = "http://www.last.fm/home";*/
+//static const QString kInvalidUrl = "http://mlogin.yahoo.com/w/login";
+
+static QNetworkAccessManager namanager;
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+FBDialog::FBDialog() : iSession(FBSession::session())
+{
+    createControls();
+}
+
+FBDialog::FBDialog(FBSession* aSession) : iSession ( aSession )
+{
+    createControls();
+}
+void FBDialog::createControls()
+{
+	flag = true;
+	iWebView = new QWebView(this);
+	iWebSettings =  iWebView->page()->settings();
+	iWebSettings->setAttribute(QWebSettings::JavascriptEnabled, false);
+	iWebSettings->setAttribute(QWebSettings::PrintElementBackgrounds,false);
+	iWebSettings->setAttribute(QWebSettings::DnsPrefetchEnabled,true);
+	iWebSettings->setAttribute(QWebSettings::AutoLoadImages,false);
+	//iWebSettings->setAttribute(QWebSettings::JavaEnabled,false);
+
+    iWebView->page()->setNetworkAccessManager(&namanager);
+
+    iWebView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
+    
+    layout = new QVBoxLayout(this);
+    
+    progressbar = new QProgressBar(this);
+    
+    //scrollbar = new QScrollArea(this);
+    layout->addWidget(iWebView);
+    //layout->addWidget(scrollbar);
+    //layout->addWidget(progressbar);
+    
+    setLayout(layout);
+    
+    progressbar->setOrientation(Qt::Horizontal);
+    
+
+    connect( iWebView->page(), SIGNAL(linkClicked(const QUrl &)),
+                    this, SLOT(linkClicked(const QUrl &)));
+
+    connect ( iWebView->page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
+
+    connect ( iWebView->page(), SIGNAL(loadStarted()), this, SLOT ( loadStarted()));
+    
+    connect ( iWebView->page(), SIGNAL(loadProgress(int)), this, SLOT ( loadProgress(int)));
+    
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( authenticationRequired( QNetworkReply*, QAuthenticator*)),this,SLOT( slotAuthenticationRequired( QNetworkReply*, QAuthenticator*)));
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( sslErrors( QNetworkReply*,QList<QSslError>&)),this,SLOT( slotsslErrors( QNetworkReply*,QList<QSslError>&)) );
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( proxyAuthenticationRequired(QNetworkProxy&, QAuthenticator*)),this,SLOT( slotproxyAuthenticationRequired(QNetworkProxy&, QAuthenticator*)) );
+
+}
+QString FBDialog::generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const
+{
+    QString url ( aUrl );
+
+    QStringList pairs;
+    QHashIterator<QString, QString> i(aParams);
+
+    while (i.hasNext()) {
+        i.next();
+
+        QUrl url (i.value());
+        QString pair = i.key() + "=" + url.toEncoded();
+        pairs << pair.toUtf8();
+    }
+
+    if (pairs.count())
+    {
+        url = url + "?" + pairs.join("&");
+    }
+
+    return url;
+
+}
+
+QByteArray FBDialog::generatePostBody (const QHash<QString, QString>& aParams) const
+{
+    QByteArray body;
+
+    if (!aParams.count())
+        return body;
+
+
+    QString endLine = "\r\n--" + kStringBoundary + "\r\n", kStringBoundary;
+
+    QString tmp = "--" + kStringBoundary + "\r\n";
+    body.append(tmp.toUtf8());
+
+
+    QHashIterator<QString, QString> i(aParams);
+    while (i.hasNext()) {
+        i.next();
+
+        tmp = "Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" ;
+        body.append(tmp.toUtf8());
+        body.append(i.value().toUtf8());
+        body.append(endLine.toUtf8());
+    }
+
+    return body;
+}
+
+void FBDialog::postDismissCleanup()
+{
+    //accept();
+    // could also be reject()?
+}
+
+void FBDialog::dismiss (bool /*aAnimated*/) {
+    dialogWillDisappear();
+    iLoadingUrl.clear();
+
+    //todo: do some animations if aAnimated == true !
+    postDismissCleanup();
+}
+
+
+void FBDialog::dismissWithSuccess( bool aSuccess, bool aAnimated)
+{
+  if (aSuccess) {
+        emit dialogDidSucceed();
+  } else {
+        emit dialogDidCancel();
+  }
+
+  dismiss(aAnimated);
+}
+
+void FBDialog::dismissWithError (const FBError& aError)
+{
+	Q_UNUSED(aError)
+	QMessageBox msgbox;
+	QString msg ("Error!Please try again!");
+	msgbox.setText(msg);
+}
+void FBDialog::slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator )
+	{
+		Q_UNUSED(reply)
+		Q_UNUSED(authenticator)
+		QMessageBox msgbox;
+		QString msg ("Error!Authentication Required");
+		msgbox.setText(msg);
+	}
+void FBDialog::slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  )
+	{
+		Q_UNUSED(reply)
+		Q_UNUSED(errors)
+		QMessageBox msgbox;
+		QString msg ("Error!SSL Error");
+		msgbox.setText(msg);
+	}
+void FBDialog::slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  )
+	{
+		Q_UNUSED(proxy)
+		Q_UNUSED(authenticator)
+		QMessageBox msgbox;
+		QString msg ("Error!Proxy Authenticatio Required");
+		msgbox.setText(msg);
+	}
+void FBDialog::cancel()
+{}
+
+void FBDialog::load() {}
+
+void FBDialog::show()
+{
+    load();
+    showMaximized();
+    dialogWillAppear();
+
+}
+
+void FBDialog::loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams, const QHash<QString, QString>&  aPostParams)
+{   
+	Q_UNUSED(aMethod)
+	Q_UNUSED(aPostParams)
+    QNetworkCookieJar* cookieJar = iWebView->page()->networkAccessManager()->cookieJar();
+    QByteArray body;
+
+   iLoadingUrl = generateURL(aUrl, aGetParams);
+
+    QUrl url (iLoadingUrl);
+    QNetworkRequest request(aUrl);
+ 
+	proxysettings();
+	if(flag)
+		{
+			urlShoot = iLoadingUrl;
+			qDebug()<< "urlShoot : " << urlShoot;
+		}
+    
+    qDebug()<< "Check URL : " << iLoadingUrl;
+    iWebView->load(url);
+}
+void FBDialog::proxysettings()
+{
+#ifdef EMULATORTESTING
+	qDebug()<<"proxysettings";
+	
+	// Reading the keys, CSM Stubbed - START
+	QFile file("c://data//DoNotShare.txt");
+	if (!file.open(QIODevice::ReadOnly))
+		{
+		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
+		return;
+		}
+	
+	QByteArray arr = file.readAll();
+	QList<QByteArray> list = arr.split(' ');
+	file.close();
+	
+	QString username(list[0]);
+	QString password(list[1]);
+	
+    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
+    QString httpPort = "3128";
+
+    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+
+    /*==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
+}
+void FBDialog::dialogWillAppear() {}
+
+void FBDialog::dialogWillDisappear() {}
+
+void FBDialog::dialogDidSucceed (const QUrl& /*aUrl*/) {
+  dismissWithSuccess(true,true);
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+void FBDialog::linkClicked ( const QUrl & url )
+ {
+
+        qDebug() << "Loading the url: " <<  url;
+        
+		proxysettings();
+        iWebView->load(url);
+}
+
+void FBDialog::loadStarted()
+{
+	qDebug() << "Enter: FBDialog::loadStarted()";
+    qDebug() << "Load started: " << iWebView->url();
+    qDebug() << "Before: layout->addWidget(progressbar);";
+    layout->addWidget(progressbar);
+    qDebug() << "After: layout->addWidget(progressbar);";
+    qDebug() << "Before: progressbar->setVisible(true);";
+    progressbar->setVisible(true);
+    qDebug() << "After: progressbar->setVisible(true);";
+    qDebug() << "Exit: FBDialog::loadStarted()";
+    
+}
+void FBDialog::loadProgress(int progress)
+{
+	qDebug()<<"Enter: FBDialog::loadProgress(int progress)";
+	progressbar->setValue(progress);
+	qDebug()<<"Exit: FBDialog::loadProgress(int progress)";
+}
+
+void FBDialog::GetSessionKey(const QUrl& aUrl)
+{
+	Q_UNUSED(aUrl)
+}
+void FBDialog::connectToGetSession()
+{
+
+}
+void FBDialog::loadFinished ( bool ok )
+{
+	qDebug()<<"Enter: FBDialog::loadFinished ( bool ok )";
+    qDebug() << "Load " << (ok ? "" : "un") << "successfull for: " << iWebView->url();
+    layout->removeWidget(progressbar);
+    progressbar->setVisible(false);
+    if (ok)
+    {
+        QString url = iWebView->url().toString();
+        qDebug() << "Loaded URL " << url;
+        qDebug() << "To be compared URL " << kMinitokensuccessURL;
+        if(url.compare(kMinitokensuccessURL)==0)
+        	{
+				iWebView->close();
+				QMessageBox msgbox;
+				QString msg ("Complete the Authorization?");
+				msgbox.setText(msg);
+				msgbox.exec();
+				
+				connectToGetSession();				
+				
+        	}
+        else if(url.compare(kUrlChk)==0)
+        	{
+				iWebView->load(urlShoot);
+        	}
+    }
+    else
+    {
+        FBError err;
+        dismissWithError(err);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/src/loginDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,150 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Login Dialog class of Authentication Application
+*/
+
+#include "authAppConstants.h"
+#include "sessionSP.h"
+#include "errorCodes.h"
+#include "loginDialog.h"
+#include <qdebug.h>
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+static const QString kLoginURL = "http://www.last.fm/api/auth/";//http://www.flickr.com/services/auth/"; 
+//static const QString kLoginURL = "http://www.flickr.com/auth-72157623913597531";
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+void FBLoginDialog::connectToGetSession()
+{
+	if(iGetSessionRequest == NULL ){
+		
+		iGetSessionRequest = FBRequest::requestWithSession(iSession);
+	
+		//connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
+		//connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
+		//connect(iGetSessionRequest, SIGNAL(requestFailedWithFlickrError(FBError)), this, SLOT(requestFailedWithFlickrError(FBError)));
+		
+	}
+	
+	 iGetSessionRequest->callforToken();
+}
+void FBLoginDialog::connecttoGetFrob()
+{
+	qDebug()<<"Inside FBLoginDialog::connecttoGetFrob";
+    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+
+    connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
+    connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
+    connect(iGetSessionRequest, SIGNAL(requestFailedWithFlickrError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
+
+    Dictionary params;
+
+    iGetSessionRequest->call("auth.getToken", params);
+    
+}
+void FBLoginDialog::loadLoginPage()
+{
+    Dictionary getParams, postParams;
+    
+    getParams["api_key"] = iSession->apiKey();
+    getParams["token"] = iSession->apiToken();
+    QString fullURL;
+    fullURL = kLoginURL;
+    
+    loadURL(fullURL,QNetworkAccessManager::GetOperation, getParams, postParams);
+
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+FBLoginDialog::FBLoginDialog() : FBDialog () {}
+
+FBLoginDialog::FBLoginDialog(FBSession* aSession) : FBDialog(aSession) {}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// FBDialog
+
+void FBLoginDialog::load()
+{
+    loadLoginPage();
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// slots for signals from FBRequest
+
+void FBLoginDialog::requestDidLoad(const QVariant& aResult)
+{
+	qDebug()<<"Inside FBLoginDialog::requestDidLoad";
+    QVariantHash object = aResult.toHash();
+    
+    QString mytoken = object.value("token").toString();
+    if(mytoken.length()){
+    	iSession->SaveToken(mytoken);
+    	show();
+    }
+    qDebug()<<"Token = "<<mytoken;
+    qDebug() << "Root Object key : " << object.keys().takeFirst() << endl;
+    
+    if(object.keys().takeFirst().compare("session") == 0);
+        {
+        	
+    		QVariantHash childobject = object.value("session").toHash();
+    		qDebug() << "Child Object data : " << childobject << endl;
+    		QString userName = childobject.value("name").toString();
+    		QString sessionKey = childobject.value("key").toString();
+    		qDebug() << "Session Key value : " << sessionKey << endl;
+    		if(sessionKey.length()){
+    			iSession->SaveSession(sessionKey,userName);
+    		}
+      	
+        }
+}
+/*void FBLoginDialog::requestDidLoadSession(const QVariant& aResult)
+{
+	qDebug()<<"Inside FBLoginDialog::requestDidLoadSession";
+    bool conversionError = false;
+    QVariantHash object = aResult.toHash();
+    QVariantHash tagName = object.value("session").toHash();  
+    QString mySession = tagName.value("key").toString();
+    if(mySession.length()){
+    	iSession->SaveFrobKey(mySession);
+    	show();
+    }
+    qDebug()<<"Session Key = "<<mySession;
+    qDebug() << "Root Object key : " << object.keys().takeFirst() << endl;
+    
+    if(object.keys().takeFirst().compare("Session") == 0);
+    {
+    	
+		QVariantHash childobject = object.value("Session").toHash();
+		qDebug() << "Child Object data : " << childobject << endl;
+		QString ses = childobject.value("key").toString();
+		qDebug() << "Read Token value : " << ses << endl;
+		if(ses.length()){
+			iSession->Savetoken(ses);
+		}
+  	
+    }
+}*/
+void FBLoginDialog::requestFailedWithFlickrError (const FBError& aCode )
+{
+    dismissWithError(aCode);
+}
+
+void FBLoginDialog::requestFailedWithNetworkError( QNetworkReply::NetworkError aCode )
+{
+    dismissWithError(aCode);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/src/requestSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,379 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to handle calls to rest Server API's
+*/
+
+#define EMULATORTESTING 1
+
+#include "requestSP.h"
+#include "sessionSP.h"
+#include "xmlParser.h"
+#include "errorCodes.h"
+
+#include <QNetworkRequest>
+#include <QXmlSimpleReader>
+#include <QXmlInputSource>
+#include <QCryptographicHash>
+#include <QtAlgorithms>
+#include <QDebug>
+#include <qnetworkproxy.h>
+#include "keys.h"
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+static const QString kAPIVersion = "1.0";
+static const QString kAPIFormat = "XML";
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
+{
+    return s1.toLower() < s2.toLower();
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Static class functions
+
+FBRequest* FBRequest::request()
+{
+    return FBRequest::requestWithSession(FBSession::session());
+}
+
+FBRequest* FBRequest::requestWithSession (FBSession* aSession)
+{
+    FBRequest* request = new FBRequest(aSession);
+    return request;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+FBRequest::FBRequest(FBSession* aSession) : iSession ( aSession ), iNetworkAccessManager ( this )
+{}
+
+const QDateTime& FBRequest::timeStamp() const
+{
+    return iTimestamp;
+}
+
+void FBRequest::connect()
+{
+	qDebug()<<"Inside FBRequest::connect";
+    QString url ;
+    url = generateGetURL();
+    qDebug() << "Complete URL  : " << url;
+    QNetworkRequest request;
+    request.setUrl(QUrl(url));
+    if (iMethod.length())
+    {
+        pbar = new progressbar;
+        pbar->show();
+		#ifdef __WINSCW__
+			proxysettings();
+		#endif
+        QNetworkReply* reply = iNetworkAccessManager.get(request);
+        QObject::connect(reply, SIGNAL(finished()),  this, SLOT(networkReplyFinished()));
+        QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
+                         this, SLOT(networkReplyError(QNetworkReply::NetworkError)));
+    }
+}
+void FBRequest::proxysettings()
+{
+#ifdef EMULATORTESTING
+	qDebug()<<"proxysettings";
+	
+	// Reading the keys, CSM Stubbed - START
+	QFile file("c://data//DoNotShare.txt");
+	if (!file.open(QIODevice::ReadOnly))
+		{
+		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
+		return;
+		}
+	
+	QByteArray arr = file.readAll();
+	QList<QByteArray> list = arr.split(' ');
+	file.close();
+	
+	QString username(list[0]);
+	QString password(list[1]);
+	
+    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
+    QString httpPort = "3128";
+
+    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+
+    /*==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
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+QString FBRequest::md5(const QString& aData)
+{
+    QByteArray byteArray;
+    byteArray.insert(0, aData.toUtf8());
+
+    QByteArray md5Hash = QCryptographicHash::hash(byteArray,QCryptographicHash::Md5 ).toHex();
+    QString returnString ( md5Hash );
+
+    return returnString;
+}
+
+bool FBRequest::isSpecialMethod() const {
+    return ( iMethod.compare("facebook.auth.getSession", Qt::CaseInsensitive) == 0
+             ||   iMethod.compare("facebook.auth.createToken", Qt::CaseInsensitive) == 0 );
+}
+
+QString FBRequest::urlForMethod (const QString& aMethod) const {
+
+	Q_UNUSED(aMethod)
+	return iSession->apiURL();
+}
+
+QString FBRequest::generateGetURL() const
+{
+    const QUrl url(iUrl);
+    const QString queryPrefix = url.hasQuery() ? "&" : "?";
+
+    QStringList pairs;
+    DictionaryIterator i(iParams);
+
+    while (i.hasNext()) {
+        i.next();
+        pairs << i.key().toUtf8() + "=" + i.value().toUtf8();
+    }
+
+    return iUrl + queryPrefix + pairs.join("&");
+}
+
+QString FBRequest::generateCallId() const {
+    QDateTime dateTime = QDateTime::currentDateTime();
+    uint secs = dateTime.toTime_t();
+    QString result = QString::number(secs, 10);
+    return result;
+}
+
+QString FBRequest::generateSig(Dictionary Params)
+{
+    QString joined;
+    QStringList keys = Params.keys();
+
+    qSort(keys.begin(), keys.end(), caseInsensitiveLessThan);
+
+    QListIterator<QString> i(keys);
+    
+    joined.append(iSession->apiSecret().toUtf8());
+    
+    while (i.hasNext())
+    {
+        const QString key = i.next();
+        joined.append(key.toUtf8());
+        //joined.append("=");
+        joined.append(Params.value(key).toUtf8());
+    }
+
+    return md5(joined);
+}
+
+void FBRequest::generatePostBody( QByteArray& body )
+{
+    QString endLine = "\r\n--" + kStringBoundary + "\r\n";
+    body.append( "--" + kStringBoundary.toUtf8() + "\r\n" ) ;
+
+
+    DictionaryIterator i (iParams);
+
+    while (i.hasNext())
+    {
+        i.next();
+
+        body.append("Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" );
+        body.append(i.value().toUtf8());
+        body.append(endLine.toUtf8());
+    }
+
+
+    if (iDataParam.size())
+    {
+        if (iDataParamPicture)
+        {
+            body.append("Content-Disposition: form-data; filename=\"photo\"\r\n" );
+            body.append("Content-Type: image/png\r\n\r\n" );
+        }
+        else
+        {
+            body.append("Content-Disposition: form-data; filename=\"data\"\r\n");
+            body.append("Content-Type: content/unknown\r\n\r\n");
+        }
+
+        body.append(iDataParam);
+        body.append(endLine.toUtf8());
+
+    }
+}
+
+void FBRequest::handleResponseData( const QByteArray& aResponseData )
+{
+	qDebug()<<"Inside FBRequest::handleResponseData";
+    FBError error;
+    QVariant result =  parseXMLResponse( aResponseData, error);
+    
+    qDebug() << "parsed result : " << result;
+    
+    if (error.code() != 0)
+    {
+        emit requestFailedWithFlickrError(error);
+    }
+    else
+    {
+		emit requestDidLoad(result);
+    }
+    delete pbar;
+}
+
+void FBRequest::post( const QString& aUrl, const Dictionary& aParams)
+{
+    iUrl = aUrl;
+    iParams = aParams;
+
+    iSession->send(this);
+}
+
+void FBRequest::cancel()
+{
+
+}
+
+
+void FBRequest::call (const QString& aMethod, const Dictionary& aParams)
+{
+	qDebug()<<"Inside FBRequest::call";
+    QByteArray dataParams;
+    callWithDataParams(aMethod, aParams, dataParams, false);
+
+}
+void FBRequest::callforToken ()
+{
+	
+	iUrl = iSession->apiURL();
+	iMethod = "auth.getSession";
+
+	Dictionary params;
+	params["method"] = iMethod;
+	params["api_key"] = iSession->apiKey();
+	params["token"] = iSession->apiToken();
+	QString qstr = "api_key" + iSession->apiKey() + "methodauth.getSessiontoken" + iSession->apiToken() + iSession->apiSecret();
+	qDebug()<<"Api Key"<<iSession->apiKey(); 
+	qDebug()<<"Api Token"<<iSession->apiToken(); 
+	qDebug()<<"Api Secret"<<iSession->apiSecret(); 
+	qDebug()<<"qstr - sig"<<qstr<<"\n";
+	params["api_sig"] = md5(qstr);
+	
+	iParams = params;
+	
+	iSession->send(this);
+}
+
+void FBRequest::callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture)
+{
+	qDebug()<<"Inside FBRequest::callWithDataParams";
+    iUrl = urlForMethod(aMethod);
+    iMethod = aMethod;
+    iParams = aParams;
+    iDataParam = aDataParam;
+    iDataParamPicture = aDataParamPicture;
+
+    
+    iParams["method"] = iMethod;
+    iParams["api_key"] = iSession->apiKey();
+    
+    // XXX: workaround what seems to be a Qt bug with the extras-devel libraries.
+    QString signature = generateSig(iParams);
+    iParams["api_sig"] = signature;
+    // XXX: end workaround.
+    
+    iSession->send(this);
+}
+
+
+QVariant FBRequest::parseXMLResponse ( const QByteArray& aResponseData, FBError& aError)
+{
+	qDebug()<<"Inside FBRequest::parseXMLResponse";
+    QXmlInputSource input;
+    input.setData(aResponseData);
+
+    FBXMLHandler handler;
+    QXmlSimpleReader parser;
+    parser.setContentHandler(&handler);
+    bool result = parser.parse(&input);
+
+    QVariant rootObject = handler.rootObject();
+    
+
+    if (handler.parseError() || !result)
+    {
+        aError.setCode( FBRESPONSE_PARSE_ERROR );
+        aError.setDescription("parser was unable to parse the xml response from facebook server.");
+
+        return QVariant();
+    }
+    else if (handler.rootName().compare("error_response")==0)
+    {
+        QVariantHash errorDict =  rootObject.toHash();
+
+        bool result;
+        int errorCode = errorDict.value("error_code").toInt(&result);
+
+        aError.setCode( errorCode );
+        aError.setDescription( errorDict.value("error_msg").toString() );
+
+        return rootObject;
+    }
+    else
+    {
+        return rootObject;
+    }
+
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance provate slots
+void FBRequest::networkReplyError ( QNetworkReply::NetworkError aCode )
+{
+    emit requestFailedWithNetworkError(aCode );
+}
+
+void FBRequest::networkReplyFinished ()
+{
+	qDebug()<<"Inside FBRequest::networkReplyFinished";
+    QNetworkReply* reply = static_cast<QNetworkReply*> ( sender() );
+    QByteArray responseData = reply->readAll();
+
+    qDebug() << "Response Data(QByteArray) : " << responseData;
+    QString str(responseData);
+    qDebug() << "Response Data(QString) : " << str;
+    handleResponseData ( responseData );
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/src/sessionSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,169 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to maintian session & all credential keys.
+*/
+
+#include "sessionSP.h"
+#include "requestSP.h"
+#include <qfile.h>
+#include <QTimer>
+#include <qdebug.h>
+#include <keys.h>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+
+static FBSession* sharedSession = NULL;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Static class functions
+FBSession* FBSession::session()
+{
+    return sharedSession;
+}
+
+void FBSession::setSession(FBSession* aSession)
+{
+    sharedSession = aSession;
+}
+
+
+FBSession* FBSession::sessionForApplication ( const QString& aAppKey, const QString& aAppSecret, const QString& aSessionProxy)
+{
+    FBSession* session = new FBSession ( aAppKey, aAppSecret, aSessionProxy );
+    return session;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+FBSession::FBSession( const QString& aAppKey, const QString& aAppSecret, const QString& aGetSessionProxy ) :
+        iApiKey (aAppKey),
+        iApiSecret ( aAppSecret ),
+        m_Client(new SmfCredMgrClient(this))	
+{
+	Q_UNUSED(aGetSessionProxy)
+    if (!sharedSession)
+    {
+        sharedSession = this;
+    }
+}
+
+FBSession::~FBSession()
+{
+	if(m_Client){
+		delete m_Client;
+		m_Client = NULL;
+	}
+}
+
+const QString& FBSession::apiURL() const
+{
+    return kAPIRestURL;
+}
+void FBSession::SaveToken (const QString& token )
+{
+	iToken = token;
+}
+void FBSession::SaveSession (const QString& session, const QString& name )
+{
+	qDebug()<<"Inside FBSession::SaveSession";
+	qDebug()<<"token argument = "<<session;
+	iLastfmSessionKey = session;
+	iLastfmUserName = name;
+    save();
+    emit sessionDidLogin(session);
+}
+bool FBSession::resume()
+{
+    QString CMRegToken = iSettings.value("CMFlickrRegToken", "NA" ).toString();
+	QDateTime ExpiryTime = iSettings.value("FlckrExpiryTime","NA").toDateTime();
+	
+	qDebug() << "CMRegToken = :" << CMRegToken;
+	qDebug() << "ExpiryTime = :" << ExpiryTime;
+	
+	SmfAuthParams Params;
+	if(m_Client->AuthDataSet(CMRegToken,ExpiryTime,Params))
+	{
+		QByteArray accessToken = Params.value("finalToken");
+       emit sessionDidLogin( accessToken );
+       return true;
+    }
+    return false;
+}
+void FBSession::logout() {
+
+	iLastfmSessionKey.clear();
+	iLastfmUserName.clear();
+	iToken.clear();
+
+        unsave();
+
+        emit sessionDidLogout();
+}
+
+void FBSession::send (FBRequest* aRequest) {
+	qDebug()<<"Inside FBSession::send";
+    performRequest (aRequest, true);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+void FBSession::save()
+{
+	qDebug()<<"Inside FBSession::save()";
+	qDebug()<<"Session Key= "<<iLastfmSessionKey;
+
+    SmfAuthParams Params;
+    Params.insert("ApiKey",kApiKey.toAscii());
+    Params.insert("ApiSecret",kApiSecret.toAscii());
+    Params.insert("ApiToken",iToken.toAscii());
+    Params.insert("SessionKey",iLastfmSessionKey.toAscii());
+    Params.insert("Name",iLastfmUserName.toAscii());
+    
+    QList<QUrl> UrlList;
+    UrlList.append(QUrl(kAPIRestURL));
+    
+    QStringList PluginList;
+    PluginList.append(QString("LastFmmusiceventplugin.qtplugin"));
+    PluginList.append(QString("LastFmmusicsearchplugin.qtplugin"));
+    PluginList.append(QString("LastFmmusicserviceplugin.qtplugin"));
+    PluginList.append(QString("LastFmplaylistserviceplugin.qtplugin"));
+    QString UID("0xE1D8C7D8");
+    
+    //Currently Hardcoded with current time bcoz CM is not handling expiry time as '0' value
+    QDateTime ExpirationDate = QDateTime::currentDateTime();
+    ExpirationDate.addYears(1);
+    
+    QString CMRegToken = m_Client->StoreAuthData(Params,ExpirationDate,UrlList,PluginList,UID,true);
+    
+    if(CMRegToken.size()){
+    	iSettings.setValue("CMLastFmRegToken", CMRegToken);
+    	iSettings.setValue("LastFmExpiryTime", ExpirationDate);
+    }
+}
+
+void FBSession::unsave()
+{
+
+}
+bool FBSession::performRequest(FBRequest* aRequest, bool aEnqueue) {
+    // Stagger requests that happen in short bursts to prevent the server from rejecting
+    // them for making too many requests in a short time
+	Q_UNUSED(aEnqueue)
+	qDebug()<<"Inside FBSession::performRequest";
+        aRequest->connect();
+        return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/src/xmlParser.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,208 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* XML Parser class
+*/
+#include "xmlParser.h"
+
+#include <QVariantList>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+
+FBXMLHandler::FBXMLHandler() : iError(false)
+{
+    initWhiteSpaceHash();
+}
+
+FBXMLHandler::~FBXMLHandler()
+{
+    iWhiteSpaceAndNewLineCharSet.clear();
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+
+void FBXMLHandler::initWhiteSpaceHash()
+{
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x20), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x9), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xA), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xB), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xC), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xD), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x85), true);
+}
+
+/* methods from QXmlErrorHandler */
+bool FBXMLHandler::error(const QXmlParseException& exception)
+{
+    iParseErrorMessage = exception.message();
+    iError = true;
+    return false;
+}
+
+bool FBXMLHandler::fatalError(const QXmlParseException& exception)
+{
+    iParseErrorMessage = exception.message();
+    iError = true;
+    return false;
+}
+
+/* methods from QXmlDefaultHandler */
+bool FBXMLHandler::startElement( const QString & /*namespaceURI*/,
+                                 const QString & localName,
+                                 const QString & /*qName*/,
+                                 const QXmlAttributes & atts)
+{
+    flushCharacters();
+
+    QVariant item ;
+
+    if  (atts.value("list").compare("true")==0)
+    {
+        item = QVariantList();
+    }
+
+    iStack.append(item);
+    iNameStack.append(localName);
+
+    return true;
+}
+
+bool FBXMLHandler::characters(const QString& aText)
+{
+    iChars.append(aText);
+    return true;
+}
+
+bool FBXMLHandler::endElement( const QString & /*namespaceURI*/,
+                               const QString & /*localName*/,
+                               const QString & /*qName*/ )
+{
+    flushCharacters();
+
+    QVariant c = iStack [iStack.count() - 1] ;
+    QString name = topName();
+
+    iStack.removeLast();
+    iNameStack.removeLast();
+
+    if (!iStack.count())
+    {
+        iRootObject = c;
+        iRootName = name;
+    }
+    else
+    {
+        QVariant tC = iStack[iStack.count() - 1] ;
+        if (tC.isNull())
+        {
+            tC = QVariantHash();
+            iStack.replace(iStack.count() - 1, tC);
+        }
+
+        if (tC.type() == QVariant::List)
+        {
+            QVariantList list = tC.toList();
+            list.append( c.toHash() );
+
+            iStack.replace( iStack.count() - 1 , list);
+
+        }
+        else if (tC.type() == QVariant::Hash)
+        {
+            QVariantHash hash = tC.toHash();
+            if (c.isNull())
+            {
+                c  = QString("");
+            }
+            hash.insert( name, c );
+
+            iStack.replace( iStack.count() - 1 , hash);
+        }
+    }
+
+    return true;
+}
+
+
+/* */
+const QString& FBXMLHandler::topName() const
+{
+    return iNameStack.last();
+}
+
+QVariant FBXMLHandler::topObject(bool /*aCreate*/)
+{
+    QVariant item ;
+    {
+        iStack.replace(iStack.count() - 1, item);
+    }
+    return item;
+}
+
+QVariant FBXMLHandler::topContainer()
+{
+    if (iStack.count() < 2)
+    {
+        return QVariant();
+    }
+    else
+    {
+
+        QVariant item = iStack[iStack.count() - 2 ];
+        {
+            iStack.replace( iStack.count() - 2 , item);
+        }
+
+        return item;
+    }
+}
+
+void FBXMLHandler::flushCharacters()
+{
+    for ( int i = 0; i < iChars.length(); i ++)
+    {
+        QChar uniChar = iChars.at(i);
+
+        if (!iWhiteSpaceAndNewLineCharSet.contains(uniChar))
+        {
+
+            QVariant container;
+            if (iStack.count() >= 2)
+            {
+                container = iStack[iStack.count() - 2];
+                if (container.isNull())
+                {
+                    container = QVariantHash();
+                    iStack.replace( iStack.count() - 2 , container);
+                }
+            }
+
+            if (container.type() == QVariant::List)
+            {                
+                QVariantHash object;
+                object.insert( topName(), iChars );
+                iStack.replace (iStack.count() - 1, object);
+            } else {
+                QVariant object(iChars);
+                iStack.replace (iStack.count() - 1, object);
+            }
+            break;
+        }
+
+    }
+
+    iChars.clear();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/ui_AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,82 @@
+/********************************************************************************
+** Form generated from reading UI file 'AuthApp.ui'
+**
+** Created: Mon Sep 27 15:44:51 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_AUTHAPP_H
+#define UI_AUTHAPP_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QMainWindow>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_AuthAppClass
+{
+public:
+    QWidget *centralWidget;
+    QVBoxLayout *verticalLayout;
+    QPushButton *buttonForget;
+    QPushButton *pushButton;
+    QSpacerItem *verticalSpacer;
+
+    void setupUi(QMainWindow *AuthAppClass)
+    {
+        if (AuthAppClass->objectName().isEmpty())
+            AuthAppClass->setObjectName(QString::fromUtf8("AuthAppClass"));
+        AuthAppClass->resize(275, 310);
+        centralWidget = new QWidget(AuthAppClass);
+        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
+        verticalLayout = new QVBoxLayout(centralWidget);
+        verticalLayout->setSpacing(6);
+        verticalLayout->setContentsMargins(11, 11, 11, 11);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        buttonForget = new QPushButton(centralWidget);
+        buttonForget->setObjectName(QString::fromUtf8("buttonForget"));
+
+        verticalLayout->addWidget(buttonForget);
+
+        pushButton = new QPushButton(centralWidget);
+        pushButton->setObjectName(QString::fromUtf8("pushButton"));
+
+        verticalLayout->addWidget(pushButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout->addItem(verticalSpacer);
+
+        AuthAppClass->setCentralWidget(centralWidget);
+
+        retranslateUi(AuthAppClass);
+
+        QMetaObject::connectSlotsByName(AuthAppClass);
+    } // setupUi
+
+    void retranslateUi(QMainWindow *AuthAppClass)
+    {
+        AuthAppClass->setWindowTitle(QApplication::translate("AuthAppClass", "MainWindow", 0, QApplication::UnicodeUTF8));
+        buttonForget->setText(QApplication::translate("AuthAppClass", "Logout", 0, QApplication::UnicodeUTF8));
+        pushButton->setText(QApplication::translate("AuthAppClass", "Login to LastFm", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class AuthAppClass: public Ui_AuthAppClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_AUTHAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LastFmAuthApp/ui_progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,75 @@
+/********************************************************************************
+** Form generated from reading UI file 'progressbar.ui'
+**
+** Created: Mon Sep 27 15:44:48 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_PROGRESSBAR_H
+#define UI_PROGRESSBAR_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QProgressBar>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_progressbarClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QLabel *label;
+    QProgressBar *progressBar;
+
+    void setupUi(QWidget *progressbarClass)
+    {
+        if (progressbarClass->objectName().isEmpty())
+            progressbarClass->setObjectName(QString::fromUtf8("progressbarClass"));
+        verticalLayout = new QVBoxLayout(progressbarClass);
+        verticalLayout->setSpacing(6);
+        verticalLayout->setContentsMargins(11, 11, 11, 11);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        label = new QLabel(progressbarClass);
+        label->setObjectName(QString::fromUtf8("label"));
+
+        verticalLayout->addWidget(label);
+
+        progressBar = new QProgressBar(progressbarClass);
+        progressBar->setObjectName(QString::fromUtf8("progressBar"));
+        progressBar->setValue(24);
+
+        verticalLayout->addWidget(progressBar);
+
+
+        retranslateUi(progressbarClass);
+
+        QMetaObject::connectSlotsByName(progressbarClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *progressbarClass)
+    {
+        progressbarClass->setWindowTitle(QApplication::translate("progressbarClass", "progressbar", 0, QApplication::UnicodeUTF8));
+        label->setText(QApplication::translate("progressbarClass", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">Loading,Please wait.....</span></p></body></html>", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class progressbarClass: public Ui_progressbarClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_PROGRESSBAR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/AuthApp.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,114 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* UI Class of Authentication Application
+*/
+
+#include "AuthApp.h"
+#include <QDebug>
+#include <QMessageBox>
+
+#include "keys.h"
+
+AuthApp::AuthApp(QWidget *parent)
+    : QMainWindow(parent),
+    ui(new Ui::AuthAppClass)
+{
+	qDebug()<<"Inside AuthApp::AuthApp()";
+	ui->setupUi(this);
+	iFBSession = FBSession::sessionForApplication(kConsumerKey,kConsumerSecret, QString());
+	connect (iFBSession,SIGNAL(sessionDidLogin(QString)), this, SLOT(sessionDidLogin(QString)));
+    connect (iFBSession, SIGNAL(sessionDidLogout()), this, SLOT(sessionDidLogout()));
+    
+    //CheckforLogin();
+}
+
+AuthApp::~AuthApp()
+{
+	delete iFBSession;
+	delete ui;
+}
+
+void AuthApp::changeEvent(QEvent *e)
+{
+    QMainWindow::changeEvent(e);
+    switch (e->type()) {
+    case QEvent::LanguageChange:
+        ui->retranslateUi(this);
+        break;
+    default:
+        break;
+    }
+}
+void AuthApp::CheckforLogin()
+{
+	qDebug()<<"Inside AuthApp::CheckforLogin()";
+	iLoginDialog = NULL;
+	if ( !( iFBSession->resume() ) ){
+		ui->buttonForget->setDisabled(true);
+		ui->pushButton->setEnabled(true);
+	}
+}
+void AuthApp::on_pushButton_clicked()
+{
+	qDebug()<<"Inside AuthApp::on_pushButton_clicked()";
+	iLoginDialog = new FBLoginDialog();
+	//iLoginDialog->connectToGetToken();
+	iLoginDialog->show();
+}
+void AuthApp::sessionDidLogin(QString sessionkey)
+{
+	Q_UNUSED(sessionkey)
+	qDebug()<<"Inside AuthApp::sessionDidLogin()";
+    if (iLoginDialog )
+    {
+		QMessageBox msgbox;
+		QString msg ("Authorization completes!!");
+		msgbox.setText(msg);
+		msgbox.exec();
+		
+        iLoginDialog->deleteLater();;
+        iLoginDialog = NULL;
+    }else{
+		QMessageBox msgbox;
+		QString msg ("your already authorized,Please logout and Login again for new authorization!!");
+		msgbox.setText(msg);
+		msgbox.exec();
+    }
+    
+    ui->pushButton->setDisabled(true);
+    ui->buttonForget->setEnabled(true);
+}
+
+void AuthApp::sessionDidLogout()
+{
+	qDebug()<<"Inside AuthApp::sessionDidLogout()";
+    QMessageBox msgbox;
+    msgbox.setText("logged out successfully!!");
+    msgbox.exec();
+    
+    ui->pushButton->setEnabled(true);
+    ui->buttonForget->setDisabled(true);
+    
+}
+void AuthApp::requestFailedWithFacebookError ( const FBError& aError )
+{
+    qDebug() << "facebook error is " << aError.code() << " - " << aError.description();
+}
+
+void AuthApp::on_buttonForget_clicked()
+{
+	qDebug()<<"Inside AuthApp::on_buttonForget_clicked()";
+    iFBSession->logout();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,54 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* UI Class of Authentication Application
+*/
+
+#ifndef AUTHAPP_H
+#define AUTHAPP_H
+
+#include <QtGui/QMainWindow>
+#include "ui_AuthApp.h"
+#include "errorCodes.h"
+#include "loginDialog.h"
+#include "sessionSP.h"
+
+class AuthApp : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+	AuthApp(QWidget *parent = 0);
+    ~AuthApp();
+private:
+	void CheckforLogin();
+private slots:
+    void on_buttonForget_clicked();
+    void on_pushButton_clicked();
+
+    void sessionDidLogin(QString sessionkey);
+    void sessionDidLogout();
+
+    void requestFailedWithFacebookError ( const FBError& aError );
+
+protected:
+    void changeEvent(QEvent *e);
+
+private:
+    FBSession*      iFBSession;
+    FBLoginDialog*  iLoginDialog;
+    Ui::AuthAppClass *ui;
+};
+
+#endif // AUTHAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/AuthApp.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AuthAppClass</class>
+ <widget class="QMainWindow" name="AuthAppClass">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>275</width>
+    <height>310</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralWidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QPushButton" name="buttonForget">
+      <property name="text">
+       <string>Logout</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QPushButton" name="pushButton">
+      <property name="text">
+       <string>Login to LinkedIn</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>40</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/LinkedInAuthApp.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,42 @@
+TEMPLATE = app
+TARGET = Linkedin
+QT += core \
+    gui \
+    network \
+    webkit \
+    xml
+LIBS += -lsmfcredmgrclient \
+    -lhash \
+    -limut \
+    -lapgrfx \
+    -leikcore \ 
+    -lcone \
+     -lavkon 
+HEADERS += inc/keys.h \
+    progressbar.h \
+    inc/requestSP.h \
+    inc/xmlParser.h \
+    inc/sessionSP.h \
+    inc/loginDialog.h \
+    inc/errorCodes.h \
+    inc/baseDialog.h \
+    inc/authAppConstants.h \
+    AuthApp.h
+SOURCES += progressbar.cpp \
+    src/requestSP.cpp \
+    src/xmlParser.cpp \
+    src/sessionSP.cpp \
+    src/loginDialog.cpp \
+    src/baseDialog.cpp \
+    main.cpp \
+    AuthApp.cpp
+FORMS += progressbar.ui \
+    AuthApp.ui 
+RESOURCES += 
+symbian: { 
+    TARGET.EPOCHEAPSIZE = 0x020000 \
+        0x3200000
+    TARGET.UID3 = 0xEFE2EA23 # Symbian specific, unprotected uid3 from symbiansigned.com
+    TARGET.CAPABILITY = NetworkServices # Symbian specific, we just need network access
+    ICON = Linkedin.svg
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/Linkedin.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,13 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:21
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#ifdef LANGUAGE_SC
+#define STRING_r_short_caption "Linkedin"
+#define STRING_r_caption "Linkedin"
+#else
+#define STRING_r_short_caption "Linkedin"
+#define STRING_r_caption "Linkedin"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/Linkedin.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,21 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:21
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <appinfo.rh>
+#include "Linkedin.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\\Linkedin.mif";
+		};
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/Linkedin.svg	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="256"
+   height="256"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="linkedin.svg"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2555">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+         offset="0"
+         id="stop2557" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1"
+         id="stop2559" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2555"
+       id="linearGradient2449"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.5914583,0,0,0.5914584,210.0216,142.2324)"
+       x1="-344.15295"
+       y1="274.711"
+       x2="-395.84943"
+       y2="425.39993" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.24748737"
+     inkscape:cx="138.80354"
+     inkscape:cy="94.798647"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     inkscape:window-width="853"
+     inkscape:window-height="674"
+     inkscape:window-x="1"
+     inkscape:window-y="281"
+     showgrid="false"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>User:ZyMOS</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag />
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:description />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:contributor>
+        <dc:publisher>
+          <cc:Agent>
+            <dc:title>Open Icon Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-373.642,-318.344)">
+    <rect
+       inkscape:export-ydpi="7.7063322"
+       inkscape:export-xdpi="7.7063322"
+       inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
+       transform="scale(-1,1)"
+       ry="35.487503"
+       rx="35.487503"
+       y="328.84921"
+       x="-619.14587"
+       height="234.98955"
+       width="235.00784"
+       id="rect1942"
+       style="fill:#1d8cb5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.87500000000000000, 1.75000000000000000;stroke-dashoffset:0;stroke-opacity:1" />
+    <path
+       inkscape:export-ydpi="7.7063322"
+       inkscape:export-xdpi="7.7063322"
+       inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
+       sodipodi:nodetypes="ccccsssc"
+       id="path1950"
+       d="M 557.05665,338.89518 L 446.22721,338.89518 C 416.89033,338.89518 393.27256,362.70492 393.27256,392.28025 L 393.27256,500.40761 C 394.22216,523.49366 397.87485,508.89915 404.82758,483.3329 C 412.90814,453.61975 439.22406,427.65003 471.27219,408.1872 C 495.73352,393.33195 523.11328,383.84595 572.95174,382.94353 C 601.21656,382.43177 598.72124,346.26062 557.05665,338.89518 z"
+       style="opacity:0.78111588;fill:url(#linearGradient2449);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.87500000000000000, 1.75000000000000000;stroke-dashoffset:0;stroke-opacity:1" />
+    <text
+       xml:space="preserve"
+       style="font-size:89.64079285px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+       x="475.63913"
+       y="461.13617"
+       id="text5955"
+       sodipodi:linespacing="125%"
+       transform="scale(0.87692359,1.1403502)"><tspan
+         sodipodi:role="line"
+         id="tspan5957"
+         x="475.63913"
+         y="461.13617"
+         style="font-size:199.20176697px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;font-family:Arial Black;-inkscape-font-specification:'Arial Black,'">in</tspan></text>
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/Linkedin_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,18 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:21
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <Linkedin.rsg>
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xEFE2EA23
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="Linkedin";
+	localisable_resource_file="\\resource\\apps\\Linkedin";
+
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/backup_registration.xml	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+  <system_backup/>
+  <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/authAppConstants.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,30 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* Common variable declarations
+*/
+
+#ifndef FBCONNECTGLOBAL_H
+#define FBCONNECTGLOBAL_H
+
+#include <QtGlobal>
+#include <QHash>
+#include <QString>
+
+typedef QHash<QString,QString> Dictionary;
+typedef QHashIterator<QString, QString> DictionaryIterator;
+
+
+
+#endif // FBCONNECTGLOBAL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/baseDialog.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,159 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* Base class of All dialogs
+*/
+
+#ifndef FB_DIALOG_H_
+#define FB_DIALOH_H_
+
+#include <QDialog>
+#include <QWebView>
+#include <qprogressbar.h>
+#include <qboxlayout.h>
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBSession;
+class FBError;
+class QNetworkReply;
+
+/**
+  * The base Dialoggg
+  */
+class FBDialog : public QWidget
+{
+    Q_OBJECT
+
+protected:
+
+    /**
+    * The session for which the login is taking place.
+    */
+    FBSession*	iSession;
+    QWebView*	iWebView;
+    QWebSettings* iWebSettings;
+    QString	iLoadingUrl;
+    int count;
+    bool        iIgnorePageLoadCompleteEvent;
+    QProgressBar* progressbar;
+    QVBoxLayout* layout;
+
+signals:
+
+    /**
+     * Called when the dialog succeeds and is about to be dismissed.
+     */
+    void dialogDidSucceed ();
+
+    /**
+     * Called when the dialog is cancelled and is about to be dismissed.
+     */
+    void dialogDidCancel();
+
+    /**
+     * Called when dialog failed to load due to an error.
+     */
+    void dialogDidFailWithError ( const FBError& error );
+
+
+	
+private slots:
+    void cancel();
+
+    /* slots for signals from QWebView.page() */
+    void linkClicked ( const QUrl & url );
+    void loadStarted ();
+    void loadProgress(int progress);
+    void loadFinished ( bool ok );
+    
+    //Network Error Slots
+    void slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator );
+    void slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  );
+    void slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  );
+
+public:
+	
+	void proxysettings();
+    /**
+    * Creates the view but does not display it.
+    */
+    FBDialog(FBSession* aSession);
+    FBDialog();
+
+    /**
+    * Displays the view with an animation.
+    *
+    * The view will be added to the top of the current key window.
+    */
+    void show();
+	
+    /** Displays the first page of the dialog.
+     *
+     * Do not ever call this directly.  It is intended to be overriden by subclasses.
+     */
+    virtual void load ();
+		
+    /**
+     * Displays a URL in the dialog.
+     */
+    void loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams,
+                 const QHash<QString, QString>&  aPostParams);
+
+
+    void dismiss(bool aAnimated);
+
+    /**
+     * Hides the view and notifies delegates of success or cancellation.
+     */
+    void dismissWithSuccess (bool aSuccess, bool aAnimated);
+
+    /**
+    * Hides the view and notifies delegates of an error.
+    */
+    void dismissWithError (const FBError& aError, bool aAnimated);
+
+    /**
+    * Subclasses may override to perform actions just prior to showing the dialog.
+    */
+    virtual void dialogWillAppear();
+
+    /**
+     * Subclasses may override to perform actions just after the dialog is hidden.
+     */
+    virtual void dialogWillDisappear();
+
+    /**
+     * Subclasses should override to process data returned from the server in a 'fbconnect' url.
+     *
+     * Implementations must call dismissWithSuccess:YES at some point to hide the dialog.
+     */
+    virtual void dialogDidSucceed(const QUrl& aUrl);
+	
+    QString title() const;
+    void setTitle ( const QString& aTitle );
+    
+    virtual void GetSessionKey(const QUrl& aUrl);
+    virtual void FetchKeyFromUrl(const QUrl& aUrl);
+    virtual void GetAccessToken();
+private:
+    void createControls();
+    QString generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const;
+    QByteArray generatePostBody (const QHash<QString, QString>& aParams) const;
+
+    void postDismissCleanup();
+
+
+ };
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/errorCodes.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,221 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* Common Errors Declaration
+*/
+
+#ifndef FBERROR_H_
+#define FBERROR_H_
+
+
+#include "authAppConstants.h"
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Error codes
+/* defined by this proj*/
+#define FBRESPONSE_PARSE_ERROR 13  /* the xml parser was unable to parse the response returned by the server */
+
+/* defined and returned by facebook */
+#define FBAPI_EC_SUCCESS 0
+#define FBAPI_EC_UNKNOWN 1
+#define FBAPI_EC_SERVICE 2
+#define FBAPI_EC_METHOD 3
+#define FBAPI_EC_TOO_MANY_CALLS 4
+#define FBAPI_EC_BAD_IP 5
+#define FBAPI_EC_HOST_API 6
+#define FBAPI_EC_HOST_UP 7
+#define FBAPI_EC_SECURE 8
+#define FBAPI_EC_RATE 9
+#define FBAPI_EC_PERMISSION_DENIED 10
+#define FBAPI_EC_DEPRECATED 11
+#define FBAPI_EC_VERSION 12
+
+#define FBAPI_EC_PARAM 100
+#define FBAPI_EC_PARAM_FBAPI_KEY 101
+#define FBAPI_EC_PARAM_SESSION_KEY 102
+#define FBAPI_EC_PARAM_CALL_ID 103
+#define FBAPI_EC_PARAM_SIGNATURE 104
+#define FBAPI_EC_PARAM_TOO_MANY 105
+#define FBAPI_EC_PARAM_USER_ID 110
+#define FBAPI_EC_PARAM_USER_FIELD 111
+#define FBAPI_EC_PARAM_SOCIAL_FIELD 112
+#define FBAPI_EC_PARAM_EMAIL 113
+#define FBAPI_EC_PARAM_ALBUM_ID 120
+#define FBAPI_EC_PARAM_PHOTO_ID 121
+#define FBAPI_EC_PARAM_FEED_PRIORITY 130
+#define FBAPI_EC_PARAM_CATEGORY 140
+#define FBAPI_EC_PARAM_SUBCATEGORY 141
+#define FBAPI_EC_PARAM_TITLE 142
+#define FBAPI_EC_PARAM_DESCRIPTION 143
+#define FBAPI_EC_PARAM_BAD_JSON 144
+#define FBAPI_EC_PARAM_BAD_EID 150
+#define FBAPI_EC_PARAM_UNKNOWN_CITY 151
+#define FBAPI_EC_PARAM_BAD_PAGE_TYPE 152
+
+#define FBAPI_EC_PERMISSION 200
+#define FBAPI_EC_PERMISSION_USER 210
+#define FBAPI_EC_PERMISSION_ALBUM 220
+#define FBAPI_EC_PERMISSION_PHOTO 221
+#define FBAPI_EC_PERMISSION_MESSAGE 230
+#define FBAPI_EC_PERMISSION_MARKUP_OTHER_USER 240
+#define FBAPI_EC_PERMISSION_STATUS_UPDATE 250
+#define FBAPI_EC_PERMISSION_PHOTO_UPLOAD 260
+#define FBAPI_EC_PERMISSION_SMS 270
+#define FBAPI_EC_PERMISSION_CREATE_LISTING 280
+#define FBAPI_EC_PERMISSION_EVENT 290
+#define FBAPI_EC_PERMISSION_LARGE_FBML_TEMPLATE 291
+#define FBAPI_EC_PERMISSION_LIVEMESSAGE 292
+#define FBAPI_EC_PERMISSION_RSVP_EVENT 299
+
+#define FBAPI_EC_EDIT 300
+#define FBAPI_EC_EDIT_USER_DATA 310
+#define FBAPI_EC_EDIT_PHOTO 320
+#define FBAPI_EC_EDIT_ALBUM_SIZE 321
+#define FBAPI_EC_EDIT_PHOTO_TAG_SUBJECT 322
+#define FBAPI_EC_EDIT_PHOTO_TAG_PHOTO 323
+#define FBAPI_EC_EDIT_PHOTO_FILE 324
+#define FBAPI_EC_EDIT_PHOTO_PENDING_LIMIT 325
+#define FBAPI_EC_EDIT_PHOTO_TAG_LIMIT 326
+#define FBAPI_EC_EDIT_ALBUM_REORDER_PHOTO_NOT_IN_ALBUM 327
+#define FBAPI_EC_EDIT_ALBUM_REORDER_TOO_FEW_PHOTOS 328
+#define FBAPI_EC_MALFORMED_MARKUP 329
+#define FBAPI_EC_EDIT_MARKUP 330
+#define FBAPI_EC_EDIT_FEED_TOO_MANY_USER_CALLS 340
+#define FBAPI_EC_EDIT_FEED_TOO_MANY_USER_ACTION_CALLS 341
+#define FBAPI_EC_EDIT_FEED_TITLE_LINK 342
+#define FBAPI_EC_EDIT_FEED_TITLE_LENGTH 343
+#define FBAPI_EC_EDIT_FEED_TITLE_NAME 344
+#define FBAPI_EC_EDIT_FEED_TITLE_BLANK 345
+#define FBAPI_EC_EDIT_FEED_BODY_LENGTH 346
+#define FBAPI_EC_EDIT_FEED_PHOTO_SRC 347
+#define FBAPI_EC_EDIT_FEED_PHOTO_LINK 348
+#define FBAPI_EC_EDIT_VIDEO_SIZE 350
+#define FBAPI_EC_EDIT_VIDEO_INVALID_FILE 351
+#define FBAPI_EC_EDIT_VIDEO_INVALID_TYPE 352
+#define FBAPI_EC_EDIT_FEED_TITLE_ARRAY 360
+#define FBAPI_EC_EDIT_FEED_TITLE_PARAMS 361
+#define FBAPI_EC_EDIT_FEED_BODY_ARRAY 362
+#define FBAPI_EC_EDIT_FEED_BODY_PARAMS 363
+#define FBAPI_EC_EDIT_FEED_PHOTO 364
+#define FBAPI_EC_EDIT_FEED_TEMPLATE 365
+#define FBAPI_EC_EDIT_FEED_TARGET 366
+#define FBAPI_EC_USERS_CREATE_INVALID_EMAIL 370
+#define FBAPI_EC_USERS_CREATE_EXISTING_EMAIL 371
+#define FBAPI_EC_USERS_CREATE_BIRTHDAY 372
+#define FBAPI_EC_USERS_CREATE_PASSWORD 373
+#define FBAPI_EC_USERS_REGISTER_INVALID_CREDENTIAL 374
+#define FBAPI_EC_USERS_REGISTER_CONF_FAILURE 375
+#define FBAPI_EC_USERS_REGISTER_EXISTING 376
+#define FBAPI_EC_USERS_REGISTER_DEFAULT_ERROR 377
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_BLANK 378
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_INVALID_CHARS 379
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_SHORT 380
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_WEAK 381
+#define FBAPI_EC_USERS_REGISTER_USERNAME_ERROR 382
+#define FBAPI_EC_USERS_REGISTER_MISSING_INPUT 383
+#define FBAPI_EC_USERS_REGISTER_INCOMPLETE_BDAY 384
+#define FBAPI_EC_USERS_REGISTER_INVALID_EMAIL 385
+#define FBAPI_EC_USERS_REGISTER_EMAIL_DISABLED 386
+#define FBAPI_EC_USERS_REGISTER_ADD_USER_FAILED 387
+#define FBAPI_EC_USERS_REGISTER_NO_GENDER 388
+
+#define FBAPI_EC_AUTH_EMAIL 400
+#define FBAPI_EC_AUTH_LOGIN 401
+#define FBAPI_EC_AUTH_SIG 402
+#define FBAPI_EC_AUTH_TIME 403
+
+#define FBAPI_EC_SESSION_METHOD 451
+#define FBAPI_EC_SESSION_REQUIRED 453
+#define FBAPI_EC_SESSION_REQUIRED_FOR_SECRET 454
+#define FBAPI_EC_SESSION_CANNOT_USE_SESSION_SECRET 455
+
+#define FBAPI_EC_MESG_BANNED 500
+#define FBAPI_EC_MESG_NO_BODY 501
+#define FBAPI_EC_MESG_TOO_LONG 502
+#define FBAPI_EC_MESG_RATE 503
+#define FBAPI_EC_MESG_INVALID_THREAD 504
+#define FBAPI_EC_MESG_INVALID_RECIP 505
+#define FBAPI_EC_POKE_INVALID_RECIP 510
+#define FBAPI_EC_POKE_OUTSTANDING 511
+#define FBAPI_EC_POKE_RATE 512
+
+#define FQL_EC_UNKNOWN_ERROR 600
+#define FQL_EC_PARSER_ERROR 601
+#define FQL_EC_UNKNOWN_FIELD 602
+#define FQL_EC_UNKNOWN_TABLE 603
+#define FQL_EC_NO_INDEX 604
+#define FQL_EC_UNKNOWN_FUNCTION 605
+#define FQL_EC_INVALID_PARAM 606
+#define FQL_EC_INVALID_FIELD 607
+#define FQL_EC_INVALID_SESSION 608
+
+#define FBAPI_EC_REF_SET_FAILED 700
+#define FBAPI_EC_FB_APP_UNKNOWN_ERROR 750
+#define FBAPI_EC_FB_APP_FETCH_FAILED 751
+#define FBAPI_EC_FB_APP_NO_DATA 752
+#define FBAPI_EC_FB_APP_NO_PERMISSIONS 753
+#define FBAPI_EC_FB_APP_TAG_MISSING 754
+
+#define FBAPI_EC_DATA_UNKNOWN_ERROR 800
+#define FBAPI_EC_DATA_INVALID_OPERATION 801
+#define FBAPI_EC_DATA_QUOTA_EXCEEDED 802
+#define FBAPI_EC_DATA_OBJECT_NOT_FOUND 803
+#define FBAPI_EC_DATA_OBJECT_ALREADY_EXISTS 804
+#define FBAPI_EC_DATA_DATABASE_ERROR 805
+#define FBAPI_EC_DATA_CREATE_TEMPLATE_ERROR 806
+#define FBAPI_EC_DATA_TEMPLATE_EXISTS_ERROR 807
+#define FBAPI_EC_DATA_TEMPLATE_HANDLE_TOO_LONG 808
+#define FBAPI_EC_DATA_TEMPLATE_HANDLE_ALREADY_IN_USE 809
+#define FBAPI_EC_DATA_TOO_MANY_TEMPLATE_BUNDLES 810
+#define FBAPI_EC_DATA_MALFORMED_ACTION_LINK 811
+#define FBAPI_EC_DATA_TEMPLATE_USES_RESERVED_TOKEN 812
+
+#define FBAPI_EC_NO_SUCH_APP 900
+#define FBAPI_BATCH_TOO_MANY_ITEMS 950
+#define FBAPI_EC_BATCH_ALREADY_STARTED 951
+#define FBAPI_EC_BATCH_NOT_STARTED 952
+#define FBAPI_EC_BATCH_METHOD_NOT_ALLOWED_IN_BATCH_MODE 953
+
+#define FBAPI_EC_EVENT_INVALID_TIME 1000
+#define FBAPI_EC_INFO_NO_INFORMATION 1050
+#define FBAPI_EC_INFO_SET_FAILED 1051
+
+#define FBAPI_EC_LIVEMESSAGE_SEND_FAILED 1100
+#define FBAPI_EC_LIVEMESSAGE_EVENT_NAME_TOO_LONG 1101
+#define FBAPI_EC_LIVEMESSAGE_MESSAGE_TOO_LONG 1102
+
+#define FBAPI_EC_PAGES_CREATE 1201
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class FBError
+{
+
+public:
+    FBError(quint8 aErrorCode) : iErrorCode (aErrorCode) {}
+    FBError() : iErrorCode(0) {}
+
+    inline quint8 code() const { return iErrorCode; }
+    inline void setCode( quint8 aErrorCode ) { iErrorCode = aErrorCode; }
+
+    inline QString description() const { return iErrorDescription; }
+    inline void setDescription( const QString& aErrorDescription ) { iErrorDescription = aErrorDescription; }
+
+private:
+    quint8 iErrorCode;
+    QString iErrorDescription;
+};
+
+#endif // FBERROR_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/keys.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,34 @@
+/*
+ * keys.h
+ *
+ *  Created on: Jul 16, 2010
+ *      Author: satishkk
+ */
+
+#ifndef KEYS_H_
+#define KEYS_H_
+
+#define EMULATORTESTING
+#include <apgtask.h>
+#include <apgcli.h>
+
+#ifdef Q_OS_SYMBIAN
+#include <eikenv.h>
+#include <eikappui.h>
+#include <aknenv.h>
+#include <aknappui.h>
+#endif
+static const QString kApiKey = "0TkpBXcncsq8rpDV3UGBokMmqYe0EaaBkazqDIbROUZuONZGQmjKrYk6F1cW6lqF";//"UvEPGC6mY4CzPLOv1aMAoTNzti8RyNbSGBoulTt8Lg3NdBWmaIfKizg5tEOVJEkQ";
+static const QString kConsumerKey = "0TkpBXcncsq8rpDV3UGBokMmqYe0EaaBkazqDIbROUZuONZGQmjKrYk6F1cW6lqF";//"UvEPGC6mY4CzPLOv1aMAoTNzti8RyNbSGBoulTt8Lg3NdBWmaIfKizg5tEOVJEkQ";
+static const QString kConsumerSecret = "7edeiblp4DKjew78jd8STv86v6sdL9QH0dYJBphAHjZDwtxDy3RL08mC6fd7baYU";//"DVzvei0jABEvrbUYiGBhpfynSxNQe1IcJ_YYrwG_gZptBTwNdVhSJJlMuqJbNDdr";//"1234567890";
+static const QString kApiUrl = "https://api.linkedin.com";
+static const QString kRequestTokenUrl = "https://api.linkedin.com/uas/oauth/requestToken";
+static const QString kAccessTokenUrl = "https://api.linkedin.com/uas/oauth/accessToken";
+static const QString kAuthorizeUrl = "https://api.linkedin.com/uas/oauth/authorize";
+//static const QString kCallBackUrl = "oauth_callback=\"oob\"";
+//static const QString kAccessToken = "173744194-hlcnfI3PNlFkj1yBzQTdJSbMzsmTVkduy5us41Zb";
+//static const QString kAccessTokenSecret = "uGCTr6F5R069IKnzyNmw4UucRvFcsLuv2e01dnNelU";
+//_LIT(kKey, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98&");
+//_LIT(kBaseUri,"http://www.facebook.com/connect/login_success.html");
+static const QString kBase = "https://www.linkedin.com/uas/oauth/authorize/submit";//"https://sites.google.com/site/smfsasken";//http://www.facebook.com/connect/login_success.html";
+#endif /* KEYS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/loginDialog.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,65 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* Login Dialog class of Authentication Application
+*/
+
+
+#ifndef FB_LOGIN_DIALOG_H_
+#define FB_LOGIN_DIALOG_H_
+
+#include "baseDialog.h"
+#include "requestSP.h"
+#include <QNetworkReply>
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+class FBLoginDialog : public FBDialog
+{
+    Q_OBJECT
+
+private:
+    FBRequest* iGetSessionRequest;
+	
+private slots:
+    /* slots for handling signals from FBRequest iGetSessionRequest */
+    void requestDidLoad (const QVariant& aResult);
+    void LoadLoginPage();
+
+    void requestFailedWithFacebookError ( const FBError& aError );
+    void requestFailedWithNetworkError( QNetworkReply::NetworkError code );
+
+public:
+    FBLoginDialog(FBSession* aSession);
+    FBLoginDialog();
+
+    void load();
+
+protected:
+    virtual void dialogWillDisappear();
+    void GetSessionKey(const QUrl& aUrl);
+    void FetchKeyFromUrl(const QUrl& aUrl);
+    void GetAccessToken();
+private:
+    void connectToGetSession(const QString& aToken);
+    void loadLoginPage();
+    QString generateNONCE(const qint64 Length);
+    //int generateTimeStamp();
+    QByteArray generateTimeStamp();
+public:
+    void connectToGetToken();
+    void LaunchBrowserL(const TDesC& aUrl);
+ };
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/requestSP.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,223 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* class to handle calls to rest Server API's
+*/
+#ifndef FBREQUEST_H
+#define FBREQUEST_H
+
+#include <QObject>
+#include <QString>
+#include <QDateTime>
+#include <QHttp>
+#include <QHash>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include "progressbar.h"
+#include "authAppConstants.h"
+#include "xmlParser.h"
+
+// FORWARD DECLARATIONS
+class FBSession;
+class FBError;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class  FBRequest : public QObject
+{
+    Q_OBJECT
+
+private:
+
+    /* pointer to the session that owns this request */
+    FBSession*  iSession;
+
+    /**
+     * The URL which will be contacted to execute the request.
+     */
+    QString iUrl;
+
+    /**
+     * The API method which will be called.
+     */
+    QString iMethod;
+
+    /**
+     * An object used by the user of the request to help identify the meaning of the request.
+     */
+    void*   iUserInfo;
+
+    /**
+     * The dictionary of parameters to pass to the method.
+     *
+     * These values in the dictionary will be converted to strings using the
+     * standard Objective-C object-to-string conversion facilities.
+     */
+    Dictionary  iParams;
+
+    /**
+     * A data parameter.
+     *
+     * Used for methods such as photos.upload, video.upload, events.create, and
+     * events.edit.
+     */
+    QByteArray  iDataParam;
+
+    /**
+      * true if iDataParam holds picture data
+      */
+    bool        iDataParamPicture;
+
+    /**
+     * The timestamp of when the request was sent to the server.
+     */
+    QDateTime   iTimestamp;
+    QHttp       iConnection;
+    QByteArray  iResponseText;
+
+    QNetworkAccessManager iNetworkAccessManager;
+    progressbar* pbar;
+
+signals: /* the signals ommitted by FBRequest */
+
+    /**
+     * Called just before the request is sent to the server.
+     */
+    void requestLoading();
+
+    /**
+     * Called when the server responds and begins to send back data.
+     */
+    //todo: void requestDidReceiveResponse (FBRequest* aRequest, NSURLResponse* aResponse);
+
+    /**
+     * Called when an error prevents the request from completing successfully.
+     */
+    void requestFailedWithNetworkError( QNetworkReply::NetworkError code );
+    void requestFailedWithFacebookError ( const FBError& aError );
+
+    /**
+     * Called when a request returns and its response has been parsed into an object.
+     *
+     * The resulting object may be a dictionary, an array, a string, or a number, depending
+     * on thee format of the API response.
+     */
+    void requestDidLoad ( const QVariant& aResult);
+    void LoadLoginPage();
+
+    /**
+     * Called when the request was cancelled.
+     */
+    void requestWasCancelled ();
+
+
+private slots:
+    void networkReplyError ( QNetworkReply::NetworkError code );
+    void networkReplyFinished ();
+
+public: /* class functions */
+    /**
+     * Creates a new API request for the global session.
+     */
+    static FBRequest* request();
+
+    /**
+     * Creates a new API request for a particular session.
+     */
+    static FBRequest* requestWithSession (FBSession* aSession);
+
+public: /* instance functions */
+
+    /**
+     * Creates a new request paired to a session.
+     */
+    FBRequest (FBSession* aSession);
+
+    /**
+     * Calls a method on the server asynchronously.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void call (const QString& aMethod, const Dictionary& aParams);
+
+    /**
+     * Calls a method on the server asynchronously, with a file upload component.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture);
+
+    /**
+     * Calls a URL on the server asynchronously.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void post( const QString& aUrl, const Dictionary& aParams);
+
+    /**
+     * Stops an active request before the response has returned.
+     */
+    void cancel();
+
+    /**
+      * returns the time stamp of when the request was sent to the server
+      */
+    const QDateTime& timeStamp() const;
+
+    void connect();
+    
+    QString generateSig(Dictionary);
+
+private:
+    /**
+      * Given a string returns its hex coded md5 hash
+      */
+    QString sha1();
+
+    /**
+      * @return true if the current request method is a special method
+      */
+    bool isSpecialMethod() const;
+
+    /**
+      * @return QString a url to use for the given method
+      */
+    QString urlForMethod (const QString& aMethod) const;
+
+    /**
+      * @return the Get Url for the request
+      */
+    QString generateGetURL() const;
+
+    QString generateCallId() const;
+
+    void generatePostBody(QByteArray& body);
+
+    /**
+      * handles the data received from the server
+      * @param aResponseData is the data received from the server
+      */
+    void handleResponseData( const QByteArray& aResponseData );
+
+    /**
+      * @param aResponseData is the data received from the server
+      * @param aError will get error codes if any error occurs ( this will change in the future )
+      * @return a void* pointer, this will change
+      */
+    QVariant parseXMLResponse ( const QByteArray& aResponseData, FBError& aError);
+public:
+    TBuf8<1024> tbuf;
+    void proxysettings();
+};
+
+#endif // FBREQUEST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/sessionSP.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,283 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* class to maintian session & all credential keys.
+*/
+
+#ifndef FBSESSION_H
+#define FBSESSION_H
+
+#include <QObject>
+#include <QList>
+#include <QString>
+#include <QSettings>
+#include <QDateTime>
+#include "smfcredmgrclient.h"
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+const QString KFacebokkKeysFileName = "c://Data//FacebookKeys.txt";
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * An FBSession represents a single user's authenticated session for a Facebook application.
+ *
+ * To create a session, you must use the session key of your application (which can
+ * be found on the Facebook developer website).  You may then use the login dialog to ask
+ * the user to enter their email address and password.  If successful, you will get back a
+ * session key which can be used to make requests to the Facebook API.
+ *
+ * Session keys are cached and stored on the disk of the device so that you do not need to ask
+ * the user to login every time they launch the app.  To restore the last active session, call the
+ * resume method after instantiating your session.
+ */
+class FBSession : public QObject
+{
+    Q_OBJECT
+
+private:
+    /**
+      * the queue of requests
+      */
+    QList<FBRequest*>           iRequestQueue;
+
+    /**
+     * Your application's API key, as passed to the constructor.
+     */
+    QString iApiKey;
+
+    /**
+     * Your application's API secret, as passed to the constructor.
+     */
+    QString iApiSecret;
+
+    /**
+     * The URL to call to create a session key after login.
+     *
+     * This is an alternative to calling auth.getSession directly using the secret key.
+     */
+    QString iGetSessionProxy;
+
+    /**
+     * The current user's session key.
+     */
+    QString iSessionKey;
+
+    /**
+     * The current user's session secret.
+     */
+    QString iSessionSecret;
+
+    /**
+     * The expiration date of the session key.
+     */
+    QDateTime iExpirationDate;
+
+
+    /**
+      * the time at which the last request was performed, this is used to prevent
+      * too many requests going to the server at once.
+      */
+    QDateTime   iLastRequestTime;
+    int         iRequestBurstCount;
+
+
+    /**
+      * The settings object used to restore session from the disk.
+      */
+    QSettings   iSettings;
+    /**
+      * The Credentail Object used to store auth data
+      */
+    SmfCredMgrClient* m_Client; 
+    /**
+      * Variable to store 
+      */ 
+    QString iCMRegToken;
+
+signals: /* the signals ommitted by FBSession */
+
+    /**
+      * Called when session logged in sucessfully
+      * @param SessionKey is the fb assigned session key
+      */
+    void sessionDidLogin (QString SessionKey);
+
+    /**
+     * Called when a user closes the login dialog without logging in.
+     */
+    void sessionDidNotLogin ();
+
+    /**
+     * Called when a session is about to log out.
+     * @param aUid is the fb assigned session id
+     */
+    void sessionWillLogout ();
+
+    /**
+     * Called when a session has logged out.
+     */
+    void sessionDidLogout ();
+
+private slots:
+    /**
+      * handler function for the timer fired from startFlushTimer() function
+      */
+    void requestTimerReady();
+
+public: /* class functions */
+
+    /**
+     * The globally shared session instance.
+     */
+    static FBSession* session();
+
+    /**
+     * Sets the globally shared session instance.
+     *
+     * This session is not retained, so you are still responsible for retaining it yourself.  The
+     * first session that is created is automatically stored here.
+     */
+    static void setSession(FBSession* aSession);
+
+    /**
+     * Constructs a session and stores it as the globally shared session instance.
+     *
+     * @param aSessionProxy a url to that proxies auth.getSession
+     */
+    static FBSession* sessionForApplication ( const QString& aKey, const QString& aSecret, const QString& aSessionProxy);
+
+public: /* instance functions */
+
+    /**
+     * Constructs a session for an application.
+     *
+     * @param secret the application secret (optional)
+     * @param getSessionProxy a url to that proxies auth.getSession (optional)
+     */
+    FBSession( const QString& aKey, const QString& aSecret, const QString& aSessionProxy );
+
+    /**
+      * Destructor
+      */
+    ~FBSession();
+
+    /**
+     * Begins a session for a user with a given key and secret.
+     */
+    void beginSession ( const QString& aSessionKey, const QString& aSessionSecret, const QDateTime& aExpires );
+
+    /**
+     * Resumes a previous session whose uid, session key, and secret are cached on disk.
+     */
+     bool resume();
+
+    /**
+     * Cancels a login (no-op if the login is already complete).
+     */
+    void cancelLogin();
+
+    /**
+     * Ends the current session and deletes the uid, session key, and secret from disk.
+     */
+    void logout();
+
+    /**
+     * Sends a fully configured request to the server for execution.
+     */
+    void send (FBRequest* aRequest);
+
+    /**
+      * @return const QString& http:// URL to the facebook REST server
+      */
+    const QString& apiURL() const;
+
+    /**
+      * @return const QString& https:// URL to the secure facebook REST server
+      */
+    const QString& apiSecureURL() const;
+
+    /**
+     * Determines if the session is active and connected.
+     * @return bool true if connected
+     */
+    bool isConnected() const;
+
+    /**
+      * @return const QString& the api secret
+      */
+    const QString& apiSecret() const { return iApiSecret; }
+
+    /**
+      * @return const QString& the GET? session proxy
+      */
+    const QString& getSessionProxy() const { return iGetSessionProxy; }
+
+    /**
+      * @return api key for this session
+      */
+    const QString& apiKey() const { return iApiKey; }
+
+    /**
+      * @return the session secret
+      */
+    const QString& sessionSecret() const { return iSessionSecret; }
+
+    /**
+      * @return the session key
+      */
+    const QString& sessionKey() const { return iSessionKey; }
+
+private:
+
+    /**
+      * Saves the fb connect session information to disk
+      */
+    void save();
+    /**
+      * Forgets any fb connect session information saved to disk
+      */
+    void unsave();
+
+    void startFlushTimer();
+
+    /**
+      * @param aRequest, the request to add to the session queue, owner ship is transferred to the session
+      */
+    void enqueueRequest(FBRequest* aRequest);
+
+    /**
+      * @param aRequest, the request to perform.
+      * @param aEnqueue, if true add to queue if cant perform the request right now
+      */
+    bool performRequest(FBRequest* aRequest, bool aEnqueue);
+
+    /**
+      * flush the queue but performingRequest on the requests in the queue, if cant perform the request, waits a while using
+      * startFlushTimer() and then tries to continue ..
+      */
+    void flushRequestQueue();
+public:
+    QString stroauth_nonce;
+    QString stroauth_timestamp;
+    QString stroauth_signature;
+    QString stroauth_Token;
+    QString stroauth_TokenSecret;
+    //QString stroauth_Url;
+
+};
+
+#endif // FBSESSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/inc/xmlParser.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,84 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* XML Parser class
+*/
+
+#ifndef FB_XML_HANDLER_H
+#define FB_XML_HANDLER_H
+
+#include <QObject>
+#include <QString>
+#include <QXmlDefaultHandler>
+#include <QVariantList>
+
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class FBXMLHandler : public QObject, public QXmlDefaultHandler
+{
+    Q_OBJECT
+
+private:
+    QVariantList        iStack;
+    QList<QString>      iNameStack;
+    QVariant            iRootObject;
+    QString             iRootName;
+    QString             iChars;
+
+    QString         iParseErrorMessage;
+    bool            iError;
+
+public: /* class functions */
+
+    FBXMLHandler();
+    ~FBXMLHandler();
+
+    inline const QString& rootName() const { return iRootName; }
+    inline QVariant rootObject() const { return iRootObject; }
+
+    inline bool parseError() const { return iError; }
+
+private:
+    /* methods from QXmlDefaultHandler */
+    bool startElement( const QString & namespaceURI,
+                       const QString & localName,
+                       const QString & qName,
+                       const QXmlAttributes & atts);
+    bool characters(const QString& text);
+    bool endElement( const QString & namespaceURI,
+                     const QString & localName,
+                     const QString & qName );
+
+    /* methods from QXmlErrorHandler */
+    bool error(const QXmlParseException& exception);
+    bool fatalError(const QXmlParseException& exception);
+
+    /* private functions*/
+    const QString& topName() const;
+    void flushCharacters();
+    QVariant topObject(bool aCreate);
+
+    QVariant topContainer();
+
+
+    void initWhiteSpaceHash();
+    QHash<QChar, bool> iWhiteSpaceAndNewLineCharSet;
+
+};
+
+#endif // FB_XML_HANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/main.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** 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 "AuthApp.h"
+
+#include <QtGui>
+#include <QApplication>
+
+void debugOutput(QtMsgType type, const char *msg)
+	{
+	QFile logFile("c://data//LinkedInLog.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);
+    qDebug()<<"Inside main()";
+    AuthApp w;
+    
+	#if defined(Q_OS_SYMBIAN)
+		w.showMaximized();
+	#else
+		w.show();
+	#endif
+		
+    return a.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/progressbar.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,14 @@
+#include "progressbar.h"
+
+progressbar::progressbar(QWidget *parent)
+    : QWidget(parent)
+{
+	ui.setupUi(this);
+	ui.progressBar->setTextVisible(false);
+}
+
+
+progressbar::~progressbar()
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,19 @@
+#ifndef PROGRESSBAR_H
+#define PROGRESSBAR_H
+
+#include <QtGui/QWidget>
+#include "ui_progressbar.h"
+
+class progressbar : public QWidget
+{
+    Q_OBJECT
+
+public:
+    progressbar(QWidget *parent = 0);
+    ~progressbar();
+
+private:
+    Ui::progressbarClass ui;
+};
+
+#endif // PROGRESSBAR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/progressbar.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,31 @@
+<ui version="4.0" >
+ <class>progressbarClass</class>
+ <widget class="QWidget" name="progressbarClass" >
+    <property name="windowTitle" >
+   <string>progressbar</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" >
+   <item>
+    <widget class="QLabel" name="label" >
+     <property name="text" >
+      <string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:10pt;">Loading,Please wait.....&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QProgressBar" name="progressBar" >
+     <property name="value" >
+      <number>24</number>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/src/baseDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,380 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* Base class of All dialogs
+*/
+
+#include <QNetworkCookie>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QWebFrame>
+#include <QFile>
+#include <QDesktopServices>
+#include <QResizeEvent>
+#include <QDebug>
+#include <qmessagebox.h>
+#include <QNetworkAccessManager>
+#include <QPropertyAnimation>
+#include <qnetworkproxy.h>
+#include <qdesktopwidget.h>
+#include <qapplication.h>
+//#include <qboxlayout.h>
+#include "baseDialog.h"
+#include "sessionSP.h"
+#include "errorCodes.h"
+#include "keys.h"
+#include <QSslConfiguration>
+
+static const QString kDefaultTitle = "Connect to Facebook";
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+
+static QNetworkAccessManager namanager;
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+FBDialog::FBDialog() : iSession(FBSession::session()), /*iWebView ( this  ),*/ iIgnorePageLoadCompleteEvent( false )
+{
+    createControls();
+}
+
+FBDialog::FBDialog(FBSession* aSession) : iSession ( aSession ), /*iWebView ( this  ) ,*/ iIgnorePageLoadCompleteEvent ( false )
+{
+    createControls();
+}
+void FBDialog::createControls()
+{
+	iWebView = new QWebView(this);
+    iWebView->page()->setNetworkAccessManager(&namanager);
+    count = 0;
+    iWebView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
+    /*iWebSettings =  iWebView->page()->settings();
+    iWebSettings->offlineStorageDefaultQuota();*/
+    
+    layout = new QVBoxLayout(this);
+    
+    
+    progressbar = new QProgressBar(this);
+    
+    layout->addWidget(iWebView);
+    //layout->addWidget(progressbar);
+    
+    setLayout(layout);
+    
+    progressbar->setOrientation(Qt::Horizontal);
+    
+
+    connect( iWebView->page(), SIGNAL(linkClicked(const QUrl &)),
+                    this, SLOT(linkClicked(const QUrl &)));
+
+    connect ( iWebView->page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
+
+    connect ( iWebView->page(), SIGNAL(loadStarted()), this, SLOT ( loadStarted()));
+    
+    connect ( iWebView->page(), SIGNAL(loadProgress(int)), this, SLOT ( loadProgress(int)));
+    
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( authenticationRequired( QNetworkReply*, QAuthenticator*)),this,SLOT( slotAuthenticationRequired( QNetworkReply*, QAuthenticator*)));
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( sslErrors( QNetworkReply*,QList<QSslError>&)),this,SLOT( slotsslErrors( QNetworkReply*,QList<QSslError>&)) );
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( proxyAuthenticationRequired(QNetworkProxy&, QAuthenticator*)),this,SLOT( slotproxyAuthenticationRequired(QNetworkProxy&, QAuthenticator*)) );
+   // connect ()
+    
+}
+QString FBDialog::generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const
+{
+	qDebug()<<"Inside FBDialog::generateURL()";
+    QString url ( aUrl );
+
+    QStringList pairs;
+    QHashIterator<QString, QString> i(aParams);
+
+    while (i.hasNext()) {
+        i.next();
+
+        QUrl url (i.value());
+        QString pair = i.key() + "=" + url.toEncoded();
+        pairs << pair.toUtf8();
+    }
+
+    if (pairs.count())
+    {
+        url = url + "?" + pairs.join("&");
+    }
+
+    return url;
+
+}
+
+QByteArray FBDialog::generatePostBody (const QHash<QString, QString>& aParams) const
+{
+	qDebug()<<"Inside FBDialog::generatePostBody()";
+    QByteArray body;
+
+    if (!aParams.count())
+        return body;
+
+
+    QString endLine = "\r\n--" + kStringBoundary + "\r\n", kStringBoundary;
+
+    QString tmp = "--" + kStringBoundary + "\r\n";
+    body.append(tmp.toUtf8());
+
+
+    QHashIterator<QString, QString> i(aParams);
+    while (i.hasNext()) {
+        i.next();
+
+        tmp = "Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" ;
+        body.append(tmp.toUtf8());
+        body.append(i.value().toUtf8());
+        body.append(endLine.toUtf8());
+    }
+
+    return body;
+}
+
+void FBDialog::postDismissCleanup()
+{
+    //accept();
+    // could also be reject()?
+}
+
+void FBDialog::dismiss (bool /*aAnimated*/) {
+	qDebug()<<"Inside FBDialog::dismiss()";
+    dialogWillDisappear();
+    iLoadingUrl.clear();
+
+    //todo: do some animations if aAnimated == true !
+    postDismissCleanup();
+}
+
+
+void FBDialog::dismissWithSuccess( bool aSuccess, bool aAnimated)
+{
+	qDebug()<<"Inside FBDialog::dismissWithSuccess()";
+  if (aSuccess) {
+        emit dialogDidSucceed();
+  } else {
+        emit dialogDidCancel();
+  }
+
+  dismiss(aAnimated);
+}
+
+void FBDialog::dismissWithError (const FBError& aError, bool aAnimated)
+{
+	qDebug()<<"Inside FBDialog::dismissWithError()";
+	qDebug()<<"aError"<<aError.description();
+  emit dialogDidFailWithError( aError );
+  dismiss(aAnimated);
+}
+void FBDialog::slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator )
+	{
+		Q_UNUSED(reply)
+		Q_UNUSED(authenticator)
+		QMessageBox msgbox;
+		QString msg ("Error!Authentication Required");
+		msgbox.setText(msg);
+	}
+void FBDialog::slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  )
+	{
+		Q_UNUSED(reply)
+		Q_UNUSED(errors)
+		QMessageBox msgbox;
+		QString msg ("Error!SSL Error");
+		msgbox.setText(msg);
+	}
+void FBDialog::slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  )
+	{
+		Q_UNUSED(proxy)
+		Q_UNUSED(authenticator)
+		QMessageBox msgbox;
+		QString msg ("Error!Proxy Authenticatio Required");
+		msgbox.setText(msg);
+	}
+void FBDialog::cancel()
+{}
+
+void FBDialog::load() {
+	qDebug()<<"Inside FBDialog::load()";
+}
+
+void FBDialog::show()
+{
+	qDebug()<<"Inside FBDialog::show()";
+    load();
+    showMaximized();
+    dialogWillAppear();
+
+}
+
+void FBDialog::loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams, const QHash<QString, QString>&  aPostParams)
+{   
+	Q_UNUSED(aPostParams)
+	Q_UNUSED(aMethod)
+	Q_UNUSED(aGetParams)
+	qDebug()<<"Inside FBDialog::loadURL()";
+    //proxysettings();
+    iIgnorePageLoadCompleteEvent = false;
+
+    QNetworkCookieJar* cookieJar = iWebView->page()->networkAccessManager()->cookieJar();
+    QByteArray body;
+
+    iLoadingUrl = aUrl;// generateURL(aUrl, aPostParams);/*aUrl;*////*"http://www.google.com/";
+
+    // This "test cookie" is required by login.php, or it complains that you need to enable JavaScript
+     QNetworkCookie testCookie ("test_cookie", "1");
+     testCookie.setDomain ( "www.linkedin.com" );
+     testCookie.setPath ( "/" );
+
+    QList<QNetworkCookie> cookieList;
+    cookieList.append(testCookie);
+
+    cookieJar->setCookiesFromUrl ( cookieList, QUrl(iLoadingUrl) );
+
+    QUrl url (iLoadingUrl);
+    QNetworkRequest request(url);
+
+    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
+
+	request.setSslConfiguration( config );
+   /* QString Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature + "\", oauth_version=\"1.0\"";
+    qDebug()<<"Authorization: "<<Authorization;
+    QByteArray auth = Authorization.toUtf8();
+    qDebug()<<"auth:"<<auth;
+    //static const char temp[] = "OAuth oauth_nonce="oqwgSYFUD87MHmJJDv7bQqOF2EPnVus7Wkqj5duNByU", oauth_callback="http%3A%2F%2Flocalhost%2Foauth_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1259178158", oauth_consumer_key="ABCDEFGHIJKLMNOPQRSTUVWXYZ", oauth_signature="TLQXuUzM7omwDbtXimn6bLDvfF8=", oauth_version="1.0";
+    if (aMethod == QNetworkAccessManager::PostOperation)
+    {
+		qDebug()<<"inside : if loop";
+        const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
+        request.setRawHeader("Authorization",auth);
+        request.setHeader (QNetworkRequest::ContentTypeHeader, contentType);     
+        body = generatePostBody (aPostParams);
+    }
+    bool val = request.hasRawHeader("Authorization");
+    qDebug()<<"Value:"<<val;*/
+    proxysettings();
+    
+    qDebug()<< "Check URL : " << iLoadingUrl;
+
+    //iWebView->load( request, aMethod, body);
+    iWebView->load(iLoadingUrl);
+    
+}
+void FBDialog::proxysettings()
+{
+#ifdef EMULATORTESTING
+	qDebug()<<"proxysettings";
+	
+	// Reading the keys, CSM Stubbed - START
+	QFile file("c:\\data\\DoNotShare.txt");
+	if (!file.open(QIODevice::ReadOnly))
+		{
+		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
+		return;
+		}
+	
+	QByteArray arr = file.readAll();
+	QList<QByteArray> list = arr.split(' ');
+	file.close();
+	
+	QString username(list[0]);
+	QString password(list[1]);
+	
+    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
+    QString httpPort = "3128";
+
+    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+
+    /*==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
+}
+void FBDialog::dialogWillAppear() {}
+
+void FBDialog::dialogWillDisappear() {}
+
+void FBDialog::dialogDidSucceed (const QUrl& /*aUrl*/) {
+  dismissWithSuccess(true,true);
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+void FBDialog::linkClicked ( const QUrl & url )
+ {
+
+        qDebug() << "Loading the url: " <<  url;
+        
+        proxysettings();
+			
+        iWebView->load(url);
+}
+
+void FBDialog::loadStarted()
+{
+    qDebug() << "Load started: " << iWebView->url();
+    iWebView->repaint();
+    QNetworkCookie cookie;
+    cookie.setSecure(true);
+    layout->addWidget(progressbar);
+    progressbar->setVisible(true);
+}
+void FBDialog::loadProgress(int progress)
+{
+	progressbar->setValue(progress);
+}
+void FBDialog::GetSessionKey(const QUrl& aUrl)
+{
+	Q_UNUSED(aUrl)
+}
+void FBDialog::FetchKeyFromUrl(const QUrl& aUrl)
+{
+	Q_UNUSED(aUrl)
+}
+void FBDialog::loadFinished ( bool ok )
+{
+    qDebug() << "Load " << (ok ? "" : "un") << "successfull for: " << iWebView->url();
+    progressbar->setVisible(false);
+    layout->removeWidget(progressbar);
+	QNetworkCookieJar kl;
+	
+    if (ok)
+    {
+		QString myhtml  = iWebView->page()->currentFrame()->toHtml();
+		qDebug()<<"MyHtml:"<<myhtml.trimmed();
+		QString PAth = iWebView->url().toString();
+		PAth = PAth.mid(0,PAth.indexOf("?"));
+		
+		qDebug() << "Path is : " << PAth;
+		
+    }
+    else
+    {
+        if (iIgnorePageLoadCompleteEvent)
+            return;
+
+        FBError err;
+        dismissWithError(err, true);
+    }
+}
+void FBDialog::GetAccessToken()
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/src/loginDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,343 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* Login Dialog class of Authentication Application
+*/
+
+#include <qdebug.h>
+
+#include "authAppConstants.h"
+#include "sessionSP.h"
+#include "errorCodes.h"
+#include "loginDialog.h"
+#include "keys.h"
+#include <QNetworkCookie>
+#include <QInputDialog>
+#include <QSslConfiguration>
+
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+//static const QString kLoginURL = "http://www.facebook.com/login.php";
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+void FBLoginDialog::connectToGetSession(const QString& aToken)
+{
+	qDebug()<<"Inside FBLoginDialog::connectToGetSession()";
+    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+    
+    //connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
+    connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
+    connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
+    connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
+
+    Dictionary params;
+    params["auth_token"] = aToken;
+
+    if (iSession->apiSecret().length())
+    {
+        params["generate_session_secret"]="1";
+    }
+
+    if (iSession->getSessionProxy().length())
+    {
+        iGetSessionRequest->post(iSession->getSessionProxy(),params);
+    }
+    else
+    {
+        iGetSessionRequest->call("facebook.auth.getSession", params);
+    }
+}
+void FBLoginDialog::connectToGetToken()
+	{
+		qDebug()<<"Inside FBLoginDialog::connectToGetToken()";
+	    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+
+	   // connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
+	 //   connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
+	  //  connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
+
+	    Dictionary postParams;
+		iSession->stroauth_nonce = generateNONCE(43);
+		iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
+		qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
+		//postParams["oauth_callback"] = kBase;
+		postParams["oauth_consumer_key"] = kConsumerKey;
+		postParams["oauth_signature_method"] = "HMAC-SHA1";
+		postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+		postParams["oauth_nonce"] = iSession->stroauth_nonce;
+		postParams["oauth_version"] = "1.0";
+		FBRequest* req = FBRequest::requestWithSession(iSession);
+		iSession->stroauth_signature = req->generateSig(postParams);
+	    iGetSessionRequest->call("/uas/oauth/accessToken", postParams);
+	    
+	}
+void FBLoginDialog::loadLoginPage()
+{
+    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+	qDebug()<<"Inside FBLoginDialog::loadLoginPage()";
+    Dictionary getParams, postParams;
+    iSession->stroauth_nonce = generateNONCE(43);
+	iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
+	qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
+    postParams["oauth_callback"] = "oob";
+    postParams["oauth_consumer_key"] = kConsumerKey;
+    postParams["oauth_signature_method"] = "HMAC-SHA1";
+    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+    postParams["oauth_nonce"] = iSession->stroauth_nonce;
+    postParams["oauth_version"] = "1.0";
+   /* FBRequest* req = FBRequest::requestWithSession(iSession);*/
+    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);
+    
+    connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
+    
+    iGetSessionRequest->connect();
+    
+    
+    
+    
+    
+  
+    //loadURL(kRequestTokenUrl,QNetworkAccessManager::PostOperation, getParams, postParams);
+
+}
+/*int FBLoginDialog::generateTimeStamp()
+	{
+		QDate oldDate;
+		oldDate.setYMD(1970,1,1);
+	
+		QDateTime OldDateTime;
+		OldDateTime.setDate(oldDate);
+		QTime temp;
+		temp.setHMS(0,0,0,0);
+		OldDateTime.setTime(temp);
+		QDateTime CurTime = QDateTime::currentDateTime();
+		
+		int timestamp = OldDateTime.secsTo(CurTime);
+		return timestamp;
+	}*/
+QByteArray FBLoginDialog::generateTimeStamp()
+	{
+		uint time = QDateTime::currentDateTime().toTime_t();
+	    QByteArray timestamp = QByteArray::number( time );
+	    return timestamp;
+	}
+QString FBLoginDialog::generateNONCE(const qint64 Length)
+	{
+	srand(time(0));
+	//QDateTime UniqueNumber = QDateTime::currentDateTime();
+
+	//read upto milliseconds
+	QString RetString;//(UniqueNumber.toString("hh/mm/ss/zzz"));
+
+	QString Letters(
+			"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
+
+	//append a randomly generated string to RetString
+	for (int i = 0; i < Length; i++)
+		{
+		RetString.insert((i), Letters.at(rand() % Letters.size()));
+		}
+
+	return RetString;
+	}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+FBLoginDialog::FBLoginDialog() : FBDialog () {}
+
+FBLoginDialog::FBLoginDialog(FBSession* aSession) : FBDialog(aSession) {}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// FBDialog
+
+void FBLoginDialog::load()
+{
+	qDebug()<<"Inside FBLoginDialog::load()";
+    loadLoginPage();
+}
+
+void FBLoginDialog::dialogWillDisappear()
+{
+	qDebug()<<"Inside FBLoginDialog::dialogWillDisappear()";
+  iGetSessionRequest->cancel();
+
+  if (!iSession->isConnected())
+  {
+      iSession->cancelLogin();
+  }
+}
+
+void FBLoginDialog::GetSessionKey(const QUrl& aUrl)
+{
+	qDebug()<<"Inside FBLoginDialog::GetSessionKey()";
+    const QString authToken = "auth_token=";
+    const QString url ( aUrl.toString() );
+
+    int start = url.indexOf(authToken);
+    if (start != -1)
+    {
+        QString token;
+        int end = url.indexOf("&", start);
+        int delta = start + authToken.size() + 1;
+        if (end != -1)
+        {
+            token = url.mid(delta, end - delta );
+        }
+        else
+        {
+            token = url.right(url.size() - delta + 1);
+        }
+
+        connectToGetSession(token);
+    }
+}
+void FBLoginDialog::FetchKeyFromUrl(const QUrl& aUrl)
+{
+    const QString url ( aUrl.toString() );
+    QStringList varList = url.split("{");
+    QString newvar = varList[1];
+    varList.clear();
+    varList = newvar.split(",");
+    QString session_key = varList[0];
+    QString uid = varList[1];
+    QString expires = varList[2];
+    QString secret = varList[3];
+    varList.clear();
+    varList = session_key.split(":");
+    session_key = varList[1];
+    session_key = session_key.mid(1,session_key.length()-2);
+    varList.clear();
+    varList = uid.split(":");
+    uid = varList[1];
+	varList.clear();
+	varList = expires.split(":");
+	expires = varList[1];
+	varList.clear();
+	varList = secret.split(":");
+	secret = varList[1];
+	secret = secret.mid(1,secret.length()-2);
+	varList.clear();
+    qDebug()<<"session_key"<<session_key<<"\n";
+    qDebug()<<"uid"<<uid<<"\n";
+    qDebug()<<"expires"<<expires<<"\n";
+    qDebug()<<"secret"<<secret<<"\n";
+    uint expiry = expires.toUInt();//.toUInt(&conversionError);
+    QDateTime expiration; expiration.setTime_t( expiry );
+    iSession->beginSession(session_key, secret,expiration);
+    iSession->resume();
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// slots for signals from FBRequest
+
+void FBLoginDialog::requestDidLoad(const QVariant& aResult)
+{
+	qDebug()<<"Inside FBLoginDialog::requestDidLoad";
+    bool conversionError = false;
+    QVariantHash object = aResult.toHash();
+    QString sessionKey = object.value("session_key").toString();
+    QString sessionSecret = object.value("secret").toString();
+
+    QVariant ex = object.value("expires");
+    uint expires = object.value("expires").toUInt(&conversionError);
+    QDateTime expiration; expiration.setTime_t( expires );
+
+    iSession->beginSession(sessionKey, sessionSecret,expiration);
+    iSession->resume();
+
+    dismissWithSuccess(true, true);
+}
+
+void FBLoginDialog::requestFailedWithFacebookError (const FBError& aCode )
+{
+	qDebug()<<"Inside FBLoginDialog::requestFailedWithFacebookError()";
+    dismissWithError(aCode, true);
+}
+
+void FBLoginDialog::requestFailedWithNetworkError( QNetworkReply::NetworkError aCode )
+{
+	qDebug()<<"Inside FBLoginDialog::requestFailedWithNetworkError()";
+    dismissWithError(aCode, true);
+}
+void FBLoginDialog::LoadLoginPage()
+	{
+	
+	qDebug()<<"Enter: LoadLoginPage()";
+	QString LoginUrl = "https://api.linkedin.com/uas/oauth/authorize?oauth_token=";//94ab03c4-ae2c-45e4-8732-0e6c4899db63";
+	LoginUrl += iSession->stroauth_Token;
+    proxysettings();
+	qDebug()<<"LoginUrl:"<<LoginUrl;
+	//TBuf<1024> sid(LoginUrl.utf16()); //uncomment to invoke browser
+	//LaunchBrowserL(sid); //uncomment to invoke browser
+	QNetworkRequest request;
+	QSslConfiguration config = request.sslConfiguration();
+	config.setProtocol(QSsl::SslV3);
+	request.setSslConfiguration(config);
+	request.setUrl(QUrl(LoginUrl));
+	iWebView->load(request,QNetworkAccessManager::PostOperation); //uncomment to invoke browser
+
+
+	qDebug()<<"Exit: LoadLoginPage()";
+	   
+	}
+void FBLoginDialog::LaunchBrowserL(const TDesC& aUrl)
+{
+	qDebug()<<"Enter: LaunchBrowserL()";
+	const TInt KWmlBrowserUid = 0x10008D39;
+	TUid id( TUid::Uid( KWmlBrowserUid ) );
+	TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
+	TApaTask task = taskList.FindApp( id );
+	if ( task.Exists() )
+	{
+		qDebug()<<"Inside: if()";
+		HBufC8* param = HBufC8::NewLC( aUrl.Length() + 2);
+                //"4 " is to Start/Continue the browser specifying a URL
+		param->Des().Append(_L("4 "));
+		param->Des().Append(aUrl);
+		task.SendMessage( TUid::Uid( 0 ), *param ); // Uid is not used
+		CleanupStack::PopAndDestroy(param);
+	}
+	else
+	{
+		qDebug()<<"Inside: else()";
+		HBufC16* param = HBufC16::NewLC( aUrl.Length() + 2);
+                //"4 " is to Start/Continue the browser specifying a URL
+		param->Des().Append(_L("4 "));
+		param->Des().Append(aUrl);
+		RApaLsSession appArcSession;
+                // connect to AppArc server 
+		User::LeaveIfError(appArcSession.Connect()); 
+		TThreadId id;
+		appArcSession.StartDocument( *param, TUid::Uid( KWmlBrowserUid)
+                                                                       , id );
+		appArcSession.Close(); 
+		CleanupStack::PopAndDestroy(param);
+	}
+}
+void FBLoginDialog::GetAccessToken()
+	{
+		/*qDebug()<<"Inside FBLoginDialog::GetAccessToken()";
+	    Dictionary getParams, postParams;
+	    iSession->stroauth_nonce = generateNONCE(43);
+		iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
+		qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
+	  
+	    postParams["oauth_consumer_key"] = kConsumerKey;
+	    postParams["oauth_signature_method"] = "HMAC-SHA1";
+	    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+	    postParams["oauth_nonce"] = iSession->stroauth_nonce;
+	    postParams["oauth_version"] = "1.0";
+	
+	    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);*/
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/src/requestSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,558 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* class to handle calls to rest Server API's
+*/
+
+#include "requestSP.h"
+#include "sessionSP.h"
+#include "xmlParser.h"
+#include "errorCodes.h"
+
+#include <QNetworkRequest>
+#include <QXmlSimpleReader>
+#include <QXmlInputSource>
+#include <QCryptographicHash>
+#include <QtAlgorithms>
+#include <QDebug>
+
+#include "hash.h"
+//#include "IMCVCODC.H"
+
+#include <keys.h>
+#include <qnetworkproxy.h>
+#include <QSslConfiguration>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+static const QString kAPIVersion = "1.0";
+static const QString kAPIFormat = "XML";
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
+{
+    return s1.toLower() < s2.toLower();
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Static class functions
+
+FBRequest* FBRequest::request()
+{
+    return FBRequest::requestWithSession(FBSession::session());
+}
+
+FBRequest* FBRequest::requestWithSession (FBSession* aSession)
+{
+    FBRequest* request = new FBRequest(aSession);
+    return request;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+FBRequest::FBRequest(FBSession* aSession) : iSession ( aSession ), iNetworkAccessManager ( this )
+{}
+
+const QDateTime& FBRequest::timeStamp() const
+{
+    return iTimestamp;
+}
+
+void FBRequest::connect()
+{
+	qDebug()<<"Inside FBRequest::connect()";
+    emit requestLoading();
+
+    //QString url ;
+    //url = iUrl;
+    //qDebug()<<"url"<<url;
+   
+    QNetworkRequest request;
+   
+    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
+   	request.setSslConfiguration( config );
+    //url = "https://api.linkedin.com/uas/oauth/authorize?oauth_token=8b6d81ed-1f1e-404f-8318-53018c65b87b";
+   //	request.setUrl(QUrl(url));
+   	QUrl myurl = kRequestTokenUrl;
+    request.setUrl(myurl);
+    //QString myurl1 = "http://www.facebook.com/connect/login_success.html";
+    QString Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\",oauth_callback=\"oob\",oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
+	qDebug()<<"Authorization: "<<Authorization;
+	QByteArray auth = Authorization.toUtf8();
+	qDebug()<<"auth:"<<auth;
+	request.setRawHeader("Authorization",auth);
+	const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
+	request.setHeader (QNetworkRequest::ContentTypeHeader, contentType); 
+
+        QByteArray postBody ;
+        generatePostBody (postBody);
+        
+        pbar = new progressbar;
+        pbar->show();
+        proxysettings();
+        QNetworkReply* reply = iNetworkAccessManager.post(request, postBody);
+
+        QObject::connect(reply, SIGNAL(finished()),  this, SLOT(networkReplyFinished()));
+        QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
+                         this, SLOT(networkReplyError(QNetworkReply::NetworkError)));
+
+ 
+}
+void FBRequest::proxysettings()
+{
+#ifdef EMULATORTESTING
+	qDebug()<<"proxysettings";
+	
+	// Reading the keys, CSM Stubbed - START
+	QFile file("c:\\data\\DoNotShare.txt");
+	if (!file.open(QIODevice::ReadOnly))
+		{
+		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
+		return;
+		}
+	
+	QByteArray arr = file.readAll();
+	QList<QByteArray> list = arr.split(' ');
+	file.close();
+	
+	QString username(list[0]);
+	QString password(list[1]);
+	
+    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
+    QString httpPort = "3128";
+
+    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+
+    /*==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
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+QString FBRequest::sha1()
+{
+	qDebug()<<"Insha1";
+	CSHA1* sha=CSHA1::NewL();
+	TBuf8<100> keyVal;
+	keyVal.Copy(_L8("sasken"));
+	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
+	//TBuf8<1024> baseString;
+	TPtrC8 hashedSig(hmac->Hash(_L8("sasken")));	
+	TBuf8<1024>bufr;
+		bufr.Copy(hashedSig);
+		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+		qDebug()<<"digest.toHex();"<<digest.toHex();
+	
+	if(hmac)
+	{
+	    delete hmac;
+	    hmac=NULL;
+	}
+/*	TBuf8<1024>bufr;
+	bufr.Copy(hashedSig);
+	QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+	qDebug()<<"digest.toHex();"<<digest.toHex();
+	qDebug()<<"digest"<<digest;*/
+	return digest.toHex();
+}
+
+bool FBRequest::isSpecialMethod() const {
+    return ( iMethod.compare("facebook.auth.getSession", Qt::CaseInsensitive) == 0
+             ||   iMethod.compare("facebook.auth.createToken", Qt::CaseInsensitive) == 0 );
+}
+
+QString FBRequest::urlForMethod (const QString& aMethod) const {
+
+	Q_UNUSED(aMethod)
+	return iSession->apiURL();
+}
+
+QString FBRequest::generateGetURL() const
+{
+	qDebug()<<"Inside FBRequest::generateGetURL()";
+    const QUrl url(iUrl);
+    const QString queryPrefix = url.hasQuery() ? "&" : "?";
+
+    QStringList pairs;
+    DictionaryIterator i(iParams);
+
+    while (i.hasNext()) {
+        i.next();
+        pairs << i.key().toUtf8() + "=" + i.value().toUtf8();
+    }
+
+    return iUrl + queryPrefix + pairs.join("&");
+}
+
+QString FBRequest::generateCallId() const {
+    QDateTime dateTime = QDateTime::currentDateTime();
+    uint secs = dateTime.toTime_t();
+    QString result = QString::number(secs, 10);
+    return result;
+}
+/*
+ *   
+  httpMethod + "&" +
+  url_encode(  base_uri ) + "&" +
+  sorted_query_params.each  { | k, v |
+      url_encode ( k ) + "%3D" +
+      url_encode ( v )
+  }.join("%26")
+ * 
+ */
+/*QString FBRequest::generateSig(Dictionary Params)
+{
+	QString joined;
+	joined = "POST";
+	joined += "&";
+	joined += kRequestTokenUrl.toAscii().toPercentEncoding() + "&";
+	QStringList keys = Params.keys();
+	qSort(keys.begin(), keys.end(), caseInsensitiveLessThan);
+	QListIterator<QString> i(keys);
+	int count = 0;
+	while (i.hasNext())
+	{
+		count++;
+		if(count > 1)
+			joined.append("%26");
+		const QString key = i.next();
+		joined.append(key.toAscii().toPercentEncoding());
+		joined.append("%3D");
+		joined.append(Params.value(key).toAscii().toPercentEncoding());
+	}
+	qDebug()<<"joined"<<joined;
+	//uncomment for testing key
+	//joined = "POST&https%3A%2F%2Fapi.linkedin.com%2Fuas%2Foauth%2FrequestToken&oauth_callback%3Dhttp%253A%252F%252Flocalhost%252Foauth_callback%26oauth_consumer_key%3DABCDEFGHIJKLMNOPQRSTUVWXYZ%26oauth_nonce%3DoqwgSYFUD87MHmJJDv7bQqOF2EPnVus7Wkqj5duNByU%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1259178158%26oauth_version%3D1.0";
+	TBuf<1024> sid(joined.utf16());
+	
+	QByteArray digest1 = QByteArray::fromRawData((char*)sid.Ptr(),sid.Length());
+	qDebug()<<"digest1: "<<digest1;
+	TBuf8<1024>buff;//(sid);
+	buff.Copy(sid);
+	QByteArray digest2 = QByteArray::fromRawData((char*)buff.Ptr(),buff.Length());
+	qDebug()<<"digest2: "<<digest2;
+
+	//signature
+	CSHA1* sha=CSHA1::NewL();
+	
+	QByteArray key= kConsumerSecret.toUtf8();
+	key = key.toPercentEncoding();
+	key.append("&");
+	key.append(iSession->stroauth_TokenSecret.toAscii().toPercentEncoding());
+	TPtrC8 myDataDescriptor( reinterpret_cast<const TText8*> (key.constData()),key.size());
+	 
+	//Take a copy of the data
+	HBufC8* buffer12 = HBufC8::New(myDataDescriptor.Length());
+	 
+	Q_CHECK_PTR(buffer12);
+	buffer12->Des().Copy(myDataDescriptor  );
+	TPtr8 tptr = buffer12->Des();
+	
+	TBuf8<100> keyVal;
+	keyVal.Copy(tptr);
+	//keyVal.Copy(buffer12);
+	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
+	//TBuf8<1024> baseString;
+	TPtrC8 hashedSig(hmac->Hash(buff));	
+	TBuf8<1024>bufr;
+		bufr.Copy(hashedSig);
+		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+		qDebug()<<"digest.toHex() "<<digest.toHex();
+		QByteArray base64 = digest.toBase64();
+		qDebug()<<"Base64 Encoded  "<<base64;
+	if(hmac)
+	{
+		delete hmac;
+		hmac=NULL;
+	}
+
+	return base64;
+
+}*/
+QString FBRequest::generateSig(Dictionary Params)
+{
+	QString joined;
+	joined = "POST";
+	joined += "&";
+	joined += kRequestTokenUrl.toAscii().toPercentEncoding() + "&";
+	
+	QStringList keys = Params.keys();
+	qSort(keys.begin(), keys.end(), caseInsensitiveLessThan);
+	QListIterator<QString> i(keys);
+	int count = 0;
+	while (i.hasNext())
+	{
+		count++;
+		if(count > 1)
+			joined.append("%26");
+		const QString key = i.next();
+		joined.append(key.toAscii().toPercentEncoding());
+		joined.append("%3D");
+		joined.append(Params.value(key).toAscii().toPercentEncoding());
+	}
+	qDebug()<<"joined"<<joined;
+	//uncomment for testing key
+	//joined = "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11%26oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3DQP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272323042%26oauth_version%3D1.0";
+	TBuf<1024> sid(joined.utf16());
+	
+	QByteArray digest1 = QByteArray::fromRawData((char*)sid.Ptr(),sid.Length());
+	qDebug()<<"digest1: "<<digest1;
+	TBuf8<1024>buff;//(sid);
+	buff.Copy(sid);
+	QByteArray digest2 = QByteArray::fromRawData((char*)buff.Ptr(),buff.Length());
+	qDebug()<<"digest2: "<<digest2;
+
+	//signature
+	CSHA1* sha=CSHA1::NewL();
+	//uncomment for testing key
+	//QByteArray key= "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98";
+	QByteArray key= kConsumerSecret.toUtf8().toPercentEncoding();
+	key.append("&");
+	key.append(iSession->stroauth_TokenSecret.toUtf8().toPercentEncoding());
+	qDebug()<<"Key:"<<key;
+	TPtrC8 myDataDescriptor( reinterpret_cast<const TText8*> (key.constData()),key.size());
+	 
+	//Take a copy of the data
+	HBufC8* buffer12 = HBufC8::New(myDataDescriptor.Length());
+	 
+	Q_CHECK_PTR(buffer12);
+	buffer12->Des().Copy(myDataDescriptor  );
+	TPtr8 tptr = buffer12->Des();
+	
+	TBuf8<100> keyVal;
+	keyVal.Copy(tptr);
+
+	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
+
+	TPtrC8 hashedSig(hmac->Hash(buff));	
+	TBuf8<1024>bufr;
+		bufr.Copy(hashedSig);
+		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+		qDebug()<<"digest.toHex() "<<digest.toHex();
+		QByteArray base64 = digest.toBase64();
+		qDebug()<<"Base64 Encoded  "<<base64;
+	if(hmac)
+	{
+		delete hmac;
+		hmac=NULL;
+	}
+
+	return base64;
+}
+void FBRequest::generatePostBody( QByteArray& body )
+{
+	qDebug()<<"Inside FBRequest::generatePostBody()";
+    QString endLine = "\r\n--" + kStringBoundary + "\r\n";
+    body.append( "--" + kStringBoundary.toUtf8() + "\r\n" ) ;
+
+
+    DictionaryIterator i (iParams);
+
+    while (i.hasNext())
+    {
+        i.next();
+
+        body.append("Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" );
+        body.append(i.value().toUtf8());
+        body.append(endLine.toUtf8());
+    }
+
+
+    if (iDataParam.size())
+    {
+        if (iDataParamPicture)
+        {
+            body.append("Content-Disposition: form-data; filename=\"photo\"\r\n" );
+            body.append("Content-Type: image/png\r\n\r\n" );
+        }
+        else
+        {
+            body.append("Content-Disposition: form-data; filename=\"data\"\r\n");
+            body.append("Content-Type: content/unknown\r\n\r\n");
+        }
+
+        body.append(iDataParam);
+        body.append(endLine.toUtf8());
+
+    }
+}
+
+void FBRequest::handleResponseData( const QByteArray& aResponseData )
+{
+	qDebug()<<"Inside FBRequest::handleResponseData()";
+    FBError error;
+    QVariant result =  parseXMLResponse( aResponseData, error);
+    if (error.code() != 0)
+    {
+        emit requestFailedWithFacebookError(error);
+    }
+    else
+    {
+        emit requestDidLoad(result);
+    }
+    
+    delete pbar;
+}
+
+void FBRequest::post( const QString& aUrl, const Dictionary& aParams)
+{
+	qDebug()<<"Inside FBRequest::post()";
+    iUrl = aUrl;
+    iParams = aParams;
+
+    iSession->send(this);
+}
+
+void FBRequest::cancel()
+{
+	qDebug()<<"Inside FBRequest::cancel()";
+}
+
+
+void FBRequest::call (const QString& aMethod, const Dictionary& aParams)
+{
+    QByteArray dataParams;
+    callWithDataParams(aMethod, aParams, dataParams, false);
+
+}
+
+void FBRequest::callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture)
+{
+	Q_UNUSED(aDataParam)
+	Q_UNUSED(aDataParamPicture)
+	Q_UNUSED(aParams)
+    iUrl = urlForMethod(aMethod);
+    iUrl +=  aMethod;
+    qDebug()<<"URL inside call with Data Params"<<iUrl;
+    //iMethod = aMethod;
+    //iParams = aParams;
+  /*  iParams["oauth_nonce"] = iSession->stroauth_nonce;
+    iParams["oauth_signature_method"] = "HMAC-SHA1";
+    iParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+    iParams["oauth_consumer_key"] = kConsumerKey;
+    iParams["sig"]=iSession->stroauth_signature;
+    iParams["oauth_version"] = "1.0";*/
+    //iDataParam = aDataParam;
+   // iDataParamPicture = aDataParamPicture;
+
+  //  iParams["method"] = iMethod;
+  //  iParams["api_key"] = iSession->apiKey();
+  //  iParams["v"] = kAPIVersion;
+  //  iParams["format"] = kAPIFormat;
+
+   /* if (!isSpecialMethod())
+    {
+        iParams["session_key"] = iSession->sessionKey();
+        iParams["call_id"] = generateCallId();
+
+        if (iSession->sessionSecret().length())
+        {
+            iParams["ss"] = "1";
+        }
+    }*/
+
+    // XXX: workaround what seems to be a Qt bug with the extras-devel libraries.
+   // QString signature = generateSig(iParams);
+   // iParams["sig"] = signature;
+    // XXX: end workaround.
+    
+    iSession->send(this);
+}
+
+
+QVariant FBRequest::parseXMLResponse ( const QByteArray& aResponseData, FBError& aError)
+{
+	qDebug()<<"Inside FBRequest::handleResponseData()";
+    QXmlInputSource input;
+    input.setData(aResponseData);
+
+    FBXMLHandler handler;
+    QXmlSimpleReader parser;
+    parser.setContentHandler(&handler);
+    bool result = parser.parse(&input);
+
+    QVariant rootObject = handler.rootObject();
+
+    if (handler.parseError() || !result)
+    {
+        aError.setCode( FBRESPONSE_PARSE_ERROR );
+        aError.setDescription("parser was unable to parse the xml response from facebook server.");
+
+        return QVariant();
+    }
+    else if (handler.rootName().compare("error_response")==0)
+    {
+        QVariantHash errorDict =  rootObject.toHash();
+
+        bool result;
+        int errorCode = errorDict.value("error_code").toInt(&result);
+
+        aError.setCode( errorCode );
+        aError.setDescription( errorDict.value("error_msg").toString() );
+
+        return rootObject;
+    }
+    else
+    {
+        return rootObject;
+    }
+
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance provate slots
+void FBRequest::networkReplyError ( QNetworkReply::NetworkError aCode )
+{
+    emit requestFailedWithNetworkError(aCode );
+}
+
+void FBRequest::networkReplyFinished ()
+{
+qDebug()<<"Inside FBRequest::networkReplyFinished()";
+    QNetworkReply* reply = static_cast<QNetworkReply*> ( sender() );
+    QByteArray responseData = reply->readAll();
+    if(responseData != "")
+    	{
+			qDebug()<<"response data:"<<responseData;
+			QList<QByteArray>MyString = responseData.split('&');
+			QList<QByteArray>token = MyString[0].split('=');
+			qDebug()<<token.at(1);
+			iSession->stroauth_Token=token.at(1);
+			QList<QByteArray>token_secret = MyString[1].split('=');
+			qDebug()<<token_secret.at(1);
+			iSession->stroauth_TokenSecret=token_secret.at(1);
+		   // handleResponseData ( responseData );
+			qDebug()<<"iSession->stroauth_Token"<<iSession->stroauth_Token;
+			if(responseData.contains("oauth_token"))
+			{
+				emit LoadLoginPage();
+				qDebug()<<"Signal:LoadLoginPage() is emitted";
+			}
+    	}
+    else
+    	{
+			qDebug()<<"Response not available";
+    	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/src/sessionSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,253 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* class to maintian session & all credential keys.
+*/
+
+#include "sessionSP.h"
+#include "requestSP.h"
+#include <qfile.h>
+#include <QTimer>
+#include <qdebug.h>
+
+#include "keys.h"
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+static const QString kAPIRestURL = "http://api.facebook.com/restserver.php";
+static const QString kAPIRestSecureURL = "https://api.facebook.com/restserver.php";
+
+
+static const int kMaxBurstRequests = 3;
+static const int kBurstDuration = 2;
+
+static FBSession* sharedSession = NULL;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Static class functions
+FBSession* FBSession::session()
+{
+    return sharedSession;
+}
+
+void FBSession::setSession(FBSession* aSession)
+{
+    sharedSession = aSession;
+}
+
+
+FBSession* FBSession::sessionForApplication ( const QString& aAppKey, const QString& aAppSecret, const QString& aSessionProxy)
+{
+    FBSession* session = new FBSession ( aAppKey, aAppSecret, aSessionProxy );
+    
+    return session;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+FBSession::FBSession( const QString& aAppKey, const QString& aAppSecret, const QString& aGetSessionProxy ) :
+        iApiKey (aAppKey),
+        iApiSecret ( aAppSecret ),
+        iGetSessionProxy ( aGetSessionProxy ),
+        iRequestBurstCount(0),
+        m_Client(new SmfCredMgrClient(this))	
+{
+    if (!sharedSession)
+    {
+        sharedSession = this;
+    }
+    
+}
+
+FBSession::~FBSession()
+{
+	if(m_Client){
+		delete m_Client;
+		m_Client = NULL;
+	}
+}
+
+const QString& FBSession::apiURL() const
+{
+    return kApiUrl;
+}
+
+const QString& FBSession::apiSecureURL() const
+{
+    return kAPIRestSecureURL;
+}
+
+bool FBSession::isConnected() const
+{
+    return iSessionKey.length() > 0 ;
+}
+
+
+void FBSession::beginSession (const QString& aSessionKey, const QString& aSessionSecret, const QDateTime& aExpires )
+{
+	qDebug()<<"Inside FBSession::beginSession()";
+    iSessionKey = aSessionKey;
+    iSessionSecret = aSessionSecret;
+
+
+    iExpirationDate = aExpires;
+
+    save();
+}
+
+bool FBSession::resume()
+{
+	qDebug()<<"Inside FBSession::resume()";
+	QString fbCMRegToken = iSettings.value("FBCMRegToken").toString();
+	QDateTime fbExpiryTime = iSettings.value("FBExpiryTime").toDateTime();
+	SmfAuthParams Params;
+	if(m_Client->AuthDataSet(fbCMRegToken,fbExpiryTime,Params))
+	{
+		QByteArray accessToken = Params.value("accessToken");
+		emit sessionDidLogin( accessToken );
+        return true;
+    }
+    return false;
+}
+
+void FBSession::cancelLogin() {
+	qDebug()<<"Inside FBSession::cancelLogin()";
+    if (!isConnected()) {
+        emit sessionDidNotLogin();
+    }
+}
+
+void FBSession::logout() {
+	qDebug()<<"Inside FBSession::logout()";
+	iExpirationDate = QDateTime();
+	iSessionKey.clear();
+	iSessionSecret.clear();
+	
+	unsave();
+	
+	emit sessionDidLogout();
+}
+
+void FBSession::send (FBRequest* aRequest) {
+	qDebug()<<"Inside FBSession::send()";
+    performRequest (aRequest, true);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+void FBSession::save()
+{
+	qDebug()<<"Inside FBSession::save()";
+    SmfAuthParams Params;
+    Params.insert("ApiKey",kApiKey.toAscii());
+   // Params.insert("ApiSecret",kApiSecret.toAscii());
+  //  Params.insert("AppId",kAppId.toAscii());
+    Params.insert("SessionKey",iSessionKey.toAscii());
+    Params.insert("SessionSecret",iSessionSecret.toAscii());
+    
+    
+    QList<QUrl> UrlList;
+    UrlList.append(QUrl("http://api.facebook.com"));
+    UrlList.append(QUrl("http://www.facebook.com"));
+    
+    QStringList PluginList;
+    PluginList.append(QString("fbactivityfetcherplugin.qtplugin"));
+    PluginList.append(QString("fbcontactfetcherplugin.qtplugin"));
+    PluginList.append(QString("fbpostproviderplugin.qtplugin"));
+    
+    QString UID("0xEFE2FD23");
+    
+    //Currently Hardcoded with current time bcoz CM is not handling expiry time as '0' value
+    iExpirationDate = QDateTime::currentDateTime();
+    iExpirationDate.addYears(1);
+    
+    QString fbCMRegToken = m_Client->StoreAuthData(Params,iExpirationDate,UrlList,PluginList,UID,true);
+    qDebug()<<"Reg token returned by auth app = "<<fbCMRegToken;
+    
+    iSettings.remove("FBCMRegToken");
+    iSettings.remove("FBExpiryTime");
+    
+    if(fbCMRegToken.size()){
+    	iSettings.setValue("FBCMRegToken", fbCMRegToken);
+    	iSettings.setValue("FBExpiryTime", iExpirationDate);
+    }
+}
+
+void FBSession::unsave()
+{
+	qDebug()<<"Inside FBSession::unsave()";
+	//Delete saved keys from Credential Manager.
+}
+
+void FBSession::startFlushTimer()
+{
+	int t = kBurstDuration;
+    QTimer::singleShot( t, this, SLOT(requestTimerReady()));
+}
+
+void FBSession::enqueueRequest(FBRequest* aRequest)
+{
+    iRequestQueue.append(aRequest);
+    startFlushTimer();
+}
+
+bool FBSession::performRequest(FBRequest* aRequest, bool aEnqueue) {
+    // Stagger requests that happen in short bursts to prevent the server from rejecting
+    // them for making too many requests in a short time
+
+    int seconds = iLastRequestTime.secsTo( QDateTime::currentDateTime() );
+	bool burst = seconds && (seconds < kBurstDuration);
+
+	if (burst && (iRequestBurstCount > kMaxBurstRequests))
+    {
+        if (aEnqueue)
+        {
+            enqueueRequest(aRequest);
+        }
+        return false;
+    }
+    else
+    {
+        aRequest->connect();
+		if (burst) {
+			iRequestBurstCount++;
+		} else {
+            iRequestBurstCount = 1;
+            iLastRequestTime = aRequest->timeStamp();
+        }
+    }
+    return true;
+}
+
+void FBSession::flushRequestQueue()
+{
+    while ( iRequestQueue.count() ) {
+      FBRequest* request = iRequestQueue.at(0);
+      if (performRequest(request, false)) {
+          iRequestQueue.removeAt(0);
+      } else {
+        startFlushTimer();
+        break;
+      }
+    }
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance provate slots
+void FBSession::requestTimerReady()
+{
+    flushRequestQueue();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/src/xmlParser.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,208 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
+* Description:
+* XML Parser class
+*/
+#include "xmlParser.h"
+
+#include <QVariantList>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+
+FBXMLHandler::FBXMLHandler() : iError(false)
+{
+    initWhiteSpaceHash();
+}
+
+FBXMLHandler::~FBXMLHandler()
+{
+    iWhiteSpaceAndNewLineCharSet.clear();
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+
+void FBXMLHandler::initWhiteSpaceHash()
+{
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x20), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x9), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xA), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xB), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xC), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xD), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x85), true);
+}
+
+/* methods from QXmlErrorHandler */
+bool FBXMLHandler::error(const QXmlParseException& exception)
+{
+    iParseErrorMessage = exception.message();
+    iError = true;
+    return false;
+}
+
+bool FBXMLHandler::fatalError(const QXmlParseException& exception)
+{
+    iParseErrorMessage = exception.message();
+    iError = true;
+    return false;
+}
+
+/* methods from QXmlDefaultHandler */
+bool FBXMLHandler::startElement( const QString & /*namespaceURI*/,
+                                 const QString & localName,
+                                 const QString & /*qName*/,
+                                 const QXmlAttributes & atts)
+{
+    flushCharacters();
+
+    QVariant item ;
+
+    if  (atts.value("list").compare("true")==0)
+    {
+        item = QVariantList();
+    }
+
+    iStack.append(item);
+    iNameStack.append(localName);
+
+    return true;
+}
+
+bool FBXMLHandler::characters(const QString& aText)
+{
+    iChars.append(aText);
+    return true;
+}
+
+bool FBXMLHandler::endElement( const QString & /*namespaceURI*/,
+                               const QString & /*localName*/,
+                               const QString & /*qName*/ )
+{
+    flushCharacters();
+
+    QVariant c = iStack [iStack.count() - 1] ;
+    QString name = topName();
+
+    iStack.removeLast();
+    iNameStack.removeLast();
+
+    if (!iStack.count())
+    {
+        iRootObject = c;
+        iRootName = name;
+    }
+    else
+    {
+        QVariant tC = iStack[iStack.count() - 1] ;
+        if (tC.isNull())
+        {
+            tC = QVariantHash();
+            iStack.replace(iStack.count() - 1, tC);
+        }
+
+        if (tC.type() == QVariant::List)
+        {
+            QVariantList list = tC.toList();
+            list.append( c.toHash() );
+
+            iStack.replace( iStack.count() - 1 , list);
+
+        }
+        else if (tC.type() == QVariant::Hash)
+        {
+            QVariantHash hash = tC.toHash();
+            if (c.isNull())
+            {
+                c  = QString("");
+            }
+            hash.insert( name, c );
+
+            iStack.replace( iStack.count() - 1 , hash);
+        }
+    }
+
+    return true;
+}
+
+
+/* */
+const QString& FBXMLHandler::topName() const
+{
+    return iNameStack.last();
+}
+
+QVariant FBXMLHandler::topObject(bool /*aCreate*/)
+{
+    QVariant item ;
+    {
+        iStack.replace(iStack.count() - 1, item);
+    }
+    return item;
+}
+
+QVariant FBXMLHandler::topContainer()
+{
+    if (iStack.count() < 2)
+    {
+        return QVariant();
+    }
+    else
+    {
+
+        QVariant item = iStack[iStack.count() - 2 ];
+        {
+            iStack.replace( iStack.count() - 2 , item);
+        }
+
+        return item;
+    }
+}
+
+void FBXMLHandler::flushCharacters()
+{
+    for ( int i = 0; i < iChars.length(); i ++)
+    {
+        QChar uniChar = iChars.at(i);
+
+        if (!iWhiteSpaceAndNewLineCharSet.contains(uniChar))
+        {
+
+            QVariant container;
+            if (iStack.count() >= 2)
+            {
+                container = iStack[iStack.count() - 2];
+                if (container.isNull())
+                {
+                    container = QVariantHash();
+                    iStack.replace( iStack.count() - 2 , container);
+                }
+            }
+
+            if (container.type() == QVariant::List)
+            {                
+                QVariantHash object;
+                object.insert( topName(), iChars );
+                iStack.replace (iStack.count() - 1, object);
+            } else {
+                QVariant object(iChars);
+                iStack.replace (iStack.count() - 1, object);
+            }
+            break;
+        }
+
+    }
+
+    iChars.clear();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/ui_AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,82 @@
+/********************************************************************************
+** Form generated from reading UI file 'AuthApp.ui'
+**
+** Created: Tue Sep 28 12:02:23 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_AUTHAPP_H
+#define UI_AUTHAPP_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QMainWindow>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_AuthAppClass
+{
+public:
+    QWidget *centralWidget;
+    QVBoxLayout *verticalLayout;
+    QPushButton *buttonForget;
+    QPushButton *pushButton;
+    QSpacerItem *verticalSpacer;
+
+    void setupUi(QMainWindow *AuthAppClass)
+    {
+        if (AuthAppClass->objectName().isEmpty())
+            AuthAppClass->setObjectName(QString::fromUtf8("AuthAppClass"));
+        AuthAppClass->resize(275, 310);
+        centralWidget = new QWidget(AuthAppClass);
+        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
+        verticalLayout = new QVBoxLayout(centralWidget);
+        verticalLayout->setSpacing(6);
+        verticalLayout->setContentsMargins(11, 11, 11, 11);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        buttonForget = new QPushButton(centralWidget);
+        buttonForget->setObjectName(QString::fromUtf8("buttonForget"));
+
+        verticalLayout->addWidget(buttonForget);
+
+        pushButton = new QPushButton(centralWidget);
+        pushButton->setObjectName(QString::fromUtf8("pushButton"));
+
+        verticalLayout->addWidget(pushButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout->addItem(verticalSpacer);
+
+        AuthAppClass->setCentralWidget(centralWidget);
+
+        retranslateUi(AuthAppClass);
+
+        QMetaObject::connectSlotsByName(AuthAppClass);
+    } // setupUi
+
+    void retranslateUi(QMainWindow *AuthAppClass)
+    {
+        AuthAppClass->setWindowTitle(QApplication::translate("AuthAppClass", "MainWindow", 0, QApplication::UnicodeUTF8));
+        buttonForget->setText(QApplication::translate("AuthAppClass", "Logout", 0, QApplication::UnicodeUTF8));
+        pushButton->setText(QApplication::translate("AuthAppClass", "Login to LinkedIn", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class AuthAppClass: public Ui_AuthAppClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_AUTHAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/LinkedInAuthApp/ui_progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,75 @@
+/********************************************************************************
+** Form generated from reading UI file 'progressbar.ui'
+**
+** Created: Mon Sep 27 15:45:02 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_PROGRESSBAR_H
+#define UI_PROGRESSBAR_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QProgressBar>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_progressbarClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QLabel *label;
+    QProgressBar *progressBar;
+
+    void setupUi(QWidget *progressbarClass)
+    {
+        if (progressbarClass->objectName().isEmpty())
+            progressbarClass->setObjectName(QString::fromUtf8("progressbarClass"));
+        verticalLayout = new QVBoxLayout(progressbarClass);
+        verticalLayout->setSpacing(6);
+        verticalLayout->setContentsMargins(11, 11, 11, 11);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        label = new QLabel(progressbarClass);
+        label->setObjectName(QString::fromUtf8("label"));
+
+        verticalLayout->addWidget(label);
+
+        progressBar = new QProgressBar(progressbarClass);
+        progressBar->setObjectName(QString::fromUtf8("progressBar"));
+        progressBar->setValue(24);
+
+        verticalLayout->addWidget(progressBar);
+
+
+        retranslateUi(progressbarClass);
+
+        QMetaObject::connectSlotsByName(progressbarClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *progressbarClass)
+    {
+        progressbarClass->setWindowTitle(QApplication::translate("progressbarClass", "progressbar", 0, QApplication::UnicodeUTF8));
+        label->setText(QApplication::translate("progressbarClass", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">Loading,Please wait.....</span></p></body></html>", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class progressbarClass: public Ui_progressbarClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_PROGRESSBAR_H
--- a/example/MusicLyricsPlugin/MusicLyricsPlugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/MusicLyricsPlugin/MusicLyricsPlugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -80,6 +80,9 @@
 				const int aPageNum , 
 				const int aItemsPerPage  ) 
 	{
+	Q_UNUSED(aItemsPerPage)
+	Q_UNUSED(aPageNum)
+	Q_UNUSED(aTrack)
 	 SmfPluginError error = SmfPluginErrUserNotLoggedIn;
 		
 	writeLog("MusicLyricsPlugin::lyrics()");
@@ -122,6 +125,10 @@
 				const int aPageNum , 
 				const int aItemsPerPage ) 
 	{
+	Q_UNUSED(aItemsPerPage)
+		Q_UNUSED(aPageNum)
+	Q_UNUSED(aTrack)
+	Q_UNUSED(aFilter)
 	//spanda_13
 	SmfPluginError error = SmfPluginErrUserNotLoggedIn;
 			
@@ -541,10 +548,22 @@
 		QStringList & aArguments, 
 		QIODevice::OpenModeFlag aMode ) const
 	{
+	Q_UNUSED(aProgram)
+	Q_UNUSED(aArguments)
+	Q_UNUSED(aMode)
 	return m_authAppId;
 	}
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString MusicProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -564,6 +583,7 @@
 	  m_supportedLanguages << "English" ;
 	  m_pluginId =    "musiclyricsplugin.qtplugin";
 	  m_authAppId =   "0xEFE2FD23";
+	  m_authAppName = "abc.exe";
 	  m_smfRegToken = "hsdfusdghf";
 	  
 	  //sandeep_Added_13-08-2010
--- a/example/MusicLyricsPlugin/MusicLyricsPlugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/MusicLyricsPlugin/MusicLyricsPlugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -225,6 +225,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -245,6 +251,7 @@
 	QStringList m_supportedLanguages;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	};
 
--- a/example/MusicLyricsPlugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/MusicLyricsPlugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:22
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/MusicLyricsPlugin/qmakepluginstubs/musiclyricsplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/MusicLyricsPlugin/qmakepluginstubs/musiclyricsplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:22
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/AuthApp.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,114 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* UI Class of Authentication Application
+*/
+
+#include "AuthApp.h"
+#include <QDebug>
+#include <QMessageBox>
+
+#include "keys.h"
+
+AuthApp::AuthApp(QWidget *parent)
+    : QMainWindow(parent),
+    ui(new Ui::AuthAppClass)
+{
+	qDebug()<<"Inside AuthApp::AuthApp()";
+	ui->setupUi(this);
+	iFBSession = FBSession::sessionForApplication(kConsumerKey,kConsumerSecret, QString());
+	connect (iFBSession,SIGNAL(sessionDidLogin(QString)), this, SLOT(sessionDidLogin(QString)));
+    connect (iFBSession, SIGNAL(sessionDidLogout()), this, SLOT(sessionDidLogout()));
+    
+    //CheckforLogin();
+}
+
+AuthApp::~AuthApp()
+{
+	delete iFBSession;
+	delete ui;
+}
+
+void AuthApp::changeEvent(QEvent *e)
+{
+    QMainWindow::changeEvent(e);
+    switch (e->type()) {
+    case QEvent::LanguageChange:
+        ui->retranslateUi(this);
+        break;
+    default:
+        break;
+    }
+}
+void AuthApp::CheckforLogin()
+{
+	qDebug()<<"Inside AuthApp::CheckforLogin()";
+	iLoginDialog = NULL;
+	if ( !( iFBSession->resume() ) ){
+		ui->buttonForget->setDisabled(true);
+		ui->pushButton->setEnabled(true);
+	}
+}
+void AuthApp::on_pushButton_clicked()
+{
+	qDebug()<<"Inside AuthApp::on_pushButton_clicked()";
+	iLoginDialog = new FBLoginDialog();
+	//iLoginDialog->connectToGetToken();
+	iLoginDialog->show();
+}
+void AuthApp::sessionDidLogin(QString sessionkey)
+{
+	Q_UNUSED(sessionkey)
+	qDebug()<<"Inside AuthApp::sessionDidLogin()";
+    if (iLoginDialog )
+    {
+		QMessageBox msgbox;
+		QString msg ("Authorization completes!!");
+		msgbox.setText(msg);
+		msgbox.exec();
+		
+        iLoginDialog->deleteLater();;
+        iLoginDialog = NULL;
+    }else{
+		QMessageBox msgbox;
+		QString msg ("your already authorized,Please logout and Login again for new authorization!!");
+		msgbox.setText(msg);
+		msgbox.exec();
+    }
+    
+    ui->pushButton->setDisabled(true);
+    ui->buttonForget->setEnabled(true);
+}
+
+void AuthApp::sessionDidLogout()
+{
+	qDebug()<<"Inside AuthApp::sessionDidLogout()";
+    QMessageBox msgbox;
+    msgbox.setText("logged out successfully!!");
+    msgbox.exec();
+    
+    ui->pushButton->setEnabled(true);
+    ui->buttonForget->setDisabled(true);
+    
+}
+void AuthApp::requestFailedWithFacebookError ( const FBError& aError )
+{
+    qDebug() << "facebook error is " << aError.code() << " - " << aError.description();
+}
+
+void AuthApp::on_buttonForget_clicked()
+{
+	qDebug()<<"Inside AuthApp::on_buttonForget_clicked()";
+    iFBSession->logout();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,54 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* UI Class of Authentication Application
+*/
+
+#ifndef AUTHAPP_H
+#define AUTHAPP_H
+
+#include <QtGui/QMainWindow>
+#include "ui_AuthApp.h"
+#include "errorCodes.h"
+#include "loginDialog.h"
+#include "sessionSP.h"
+
+class AuthApp : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+	AuthApp(QWidget *parent = 0);
+    ~AuthApp();
+private:
+	void CheckforLogin();
+private slots:
+    void on_buttonForget_clicked();
+    void on_pushButton_clicked();
+
+    void sessionDidLogin(QString sessionkey);
+    void sessionDidLogout();
+
+    void requestFailedWithFacebookError ( const FBError& aError );
+
+protected:
+    void changeEvent(QEvent *e);
+
+private:
+    FBSession*      iFBSession;
+    FBLoginDialog*  iLoginDialog;
+    Ui::AuthAppClass *ui;
+};
+
+#endif // AUTHAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/AuthApp.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AuthAppClass</class>
+ <widget class="QMainWindow" name="AuthAppClass">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>275</width>
+    <height>310</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralWidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QPushButton" name="buttonForget">
+      <property name="text">
+       <string>Logout</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QPushButton" name="pushButton">
+      <property name="text">
+       <string>Login to Twitter</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>40</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/Twitter.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,13 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:24
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#ifdef LANGUAGE_SC
+#define STRING_r_short_caption "Twitter"
+#define STRING_r_caption "Twitter"
+#else
+#define STRING_r_short_caption "Twitter"
+#define STRING_r_caption "Twitter"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/Twitter.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,21 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:24
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <appinfo.rh>
+#include "Twitter.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\\Twitter.mif";
+		};
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/Twitter.svg	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="105.298px" height="77.815px" viewBox="0 0 105.298 77.815" enable-background="new 0 0 105.298 77.815"
+	 xml:space="preserve">
+<g>
+	<path fill="#2E79B8" d="M56.127,40.628c-4.51-1.444-8.645-5.12-12.541-7.682c-3.608-2.353-10.152-7.661-14.755-7.654
+		c-4.683,0.026,3.11,4.484,4.412,5.379c-2.604-0.099-5.621-1.805-8.164-1.009c0.642,2.008,5.808,3.805,7.757,4.85
+		c-2.479-0.943-5.159-1.196-7.724-1.732c0.313,1.022,1.886,1.649,2.896,2.171c3.366,1.855,6.5,3.518,9.641,5.789
+		c6.395,4.622,10.547,7.433,18.665,6.922"/>
+	<path fill="#86C6DE" d="M48.126,71.792c0.32-0.997,2.408-2.005,3.324-2.351c-1.674,0.324-3.669,0.292-1.85-1.544
+		c1.64-1.635,4.069-2.547,6.16-3.451c-1.896,0.033-7.915,0.779-4.236-2.186c3.011-2.387,7.535-4.607,11.265-5.602
+		c-0.959,0.053-4.518,0.832-4.578-0.383c-0.014-0.695,2.01-2.014,2.442-2.361c1.958-1.652,4.014-3.209,6.251-4.457
+		c5.043-2.816,12.156-4.834,17.653-1.969c1.209,0.622,1.743,1.637,1.882,2.761c3.263-7.71,3.687-16.642,0.741-25.187
+		C82.79,12.394,67.5,3.771,55.94,13.717c-11.819,10.17-8.582,29.761-18.877,41.429c-9.509,10.807-22.491,10.123-32.706,1.15
+		C15.692,73.429,33.901,76.439,50.104,73.77C48.925,73.478,47.781,73.009,48.126,71.792"/>
+	<path fill="#C1E7F0" d="M86.439,50.25c-0.139-1.124-0.673-2.139-1.882-2.761c-5.497-2.865-12.61-0.848-17.652,1.969
+		c-2.238,1.248-4.294,2.805-6.252,4.457c-0.433,0.348-2.456,1.666-2.442,2.361c0.061,1.215,3.619,0.436,4.578,0.383
+		c-3.729,0.994-8.254,3.215-11.265,5.602c-3.679,2.965,2.341,2.219,4.236,2.186c-2.09,0.904-4.521,1.816-6.16,3.451
+		c-1.819,1.836,0.176,1.868,1.85,1.543c-0.916,0.347-3.004,1.354-3.324,2.352c-0.345,1.217,0.799,1.686,1.978,1.978
+		c7.327-1.206,14.23-3.555,19.912-6.312C77.734,63.749,83.347,57.554,86.439,50.25"/>
+	<path fill="#FFFFFF" d="M77.535,26.266c0.576,4.729-1.414,8.867-4.42,9.228c-3.014,0.381-5.918-3.181-6.49-7.916
+		c-0.578-4.718,1.371-8.863,4.406-9.226C74.031,17.996,76.966,21.505,77.535,26.266"/>
+	<path d="M71.469,22.026c-1.346,0.167-2.331,1.665-2.523,3.611l2.984,0.828l-2.634,2.298c0.613,1.931,1.988,3.234,3.384,3.074
+		c1.693-0.209,2.844-2.601,2.504-5.295C74.86,23.835,73.197,21.803,71.469,22.026"/>
+	<path fill="#2E79B8" d="M87.707,26.858c0.619,2.022,6.591-0.231,7.672-0.877c1.85-1.105,3.405-2.584,4.343-4.487
+		c-0.306,4.071-4.508,11.743-10.492,10.947c4.406,1.089,8.837,1.479,13.804-0.833c-0.552,0.688-0.838,0.93-1.334,1.393
+		c-1.451,1.371-3.167,2.276-5.047,3.005c-2.529,0.967-6.513,1.929-9.216,1.131c-2.532-0.75-4.101-3.695-3.29-6.18
+		c0.521-1.779,2.019-3.211,3.502-4.283"/>
+	<path fill="#2E79B8" d="M62.122,24.547C60.359,13.58,66.98,10.538,72.957,13.89C64.329,11.902,62.044,19.36,62.122,24.547"/>
+	<path fill="#86C6DE" d="M49.926,45.333c-4.64-0.889-9.176-4.049-13.382-6.097c-3.896-1.896-10.994-6.37-15.578-5.764
+		c-4.624,0.583,3.628,4.058,5.05,4.787c-2.591,0.223-5.803-1.109-8.225-0.013c0.873,1.924,6.225,3.064,8.3,3.857
+		c-2.588-0.618-5.268-0.529-7.884-0.758c0.398,0.973,2.068,1.398,3.141,1.803c3.532,1.402,6.9,2.693,10.271,4.566
+		c6.915,3.795,11.375,6.066,19.376,4.57"/>
+	<path fill="#C1E7F0" d="M47.812,27.144c0.455-6.112,8.497-20.688,13.871-23.321c-0.063,1.442-0.893,2.809-1.947,3.835
+		c2.114-2.517,5.155-4.37,8.339-5.036c-0.184,2.212-3.24,3.661-5.09,4.506c1.408-0.551,8.812-4.493,9.779-2.605
+		c1.138,2.136-5.045,3.594-6.078,4.052c-6.192,2.571-11.691,6.594-15.807,11.872"/>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/TwitterAuthApp.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,42 @@
+TEMPLATE = app
+TARGET = Twitter
+QT += core \
+    gui \
+    network \
+    webkit \
+    xml
+LIBS += -lsmfcredmgrclient \
+    -lhash \
+    -limut
+HEADERS += Twitter.loc \
+    Twitter.loc \
+    inc/keys.h \
+    progressbar.h \
+    inc/requestSP.h \
+    inc/xmlParser.h \
+    inc/sessionSP.h \
+    inc/loginDialog.h \
+    inc/errorCodes.h \
+    inc/baseDialog.h \
+    inc/authAppConstants.h \
+    AuthApp.h
+SOURCES += Twitter.rss \
+    Twitter_reg.rss \
+    progressbar.cpp \
+    src/requestSP.cpp \
+    src/xmlParser.cpp \
+    src/sessionSP.cpp \
+    src/loginDialog.cpp \
+    src/baseDialog.cpp \
+    main.cpp \
+    AuthApp.cpp
+FORMS += progressbar.ui \
+    AuthApp.ui
+RESOURCES += 
+symbian: { 
+    TARGET.EPOCHEAPSIZE = 0x020000 \
+        0x3200000
+    TARGET.UID3 = 0xEFE2EF23 # Symbian specific, unprotected uid3 from symbiansigned.com
+    TARGET.CAPABILITY = NetworkServices # Symbian specific, we just need network access
+    ICON = Twitter.svg
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/Twitter_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,18 @@
+// ============================================================================
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:24
+// * This file is generated by qmake and should not be modified by the
+// * user.
+// ============================================================================
+
+#include <Twitter.rsg>
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xEFE2EF23
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="Twitter";
+	localisable_resource_file="\\resource\\apps\\Twitter";
+
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/backup_registration.xml	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+  <system_backup/>
+  <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/authAppConstants.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,30 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Common variable declarations
+*/
+
+#ifndef FBCONNECTGLOBAL_H
+#define FBCONNECTGLOBAL_H
+
+#include <QtGlobal>
+#include <QHash>
+#include <QString>
+
+typedef QHash<QString,QString> Dictionary;
+typedef QHashIterator<QString, QString> DictionaryIterator;
+
+
+
+#endif // FBCONNECTGLOBAL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/baseDialog.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,157 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Base class of All dialogs
+*/
+
+#ifndef FB_DIALOG_H_
+#define FB_DIALOH_H_
+
+#include <QDialog>
+#include <QWebView>
+#include <qprogressbar.h>
+#include <qboxlayout.h>
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBSession;
+class FBError;
+class QNetworkReply;
+
+/**
+  * The base Dialoggg
+  */
+class FBDialog : public QWidget
+{
+    Q_OBJECT
+
+protected:
+
+    /**
+    * The session for which the login is taking place.
+    */
+    FBSession*	iSession;
+    QWebView*	iWebView;
+    QString	iLoadingUrl;
+    bool        iIgnorePageLoadCompleteEvent;
+    QProgressBar* progressbar;
+    QVBoxLayout* layout;
+
+signals:
+
+    /**
+     * Called when the dialog succeeds and is about to be dismissed.
+     */
+    void dialogDidSucceed ();
+
+    /**
+     * Called when the dialog is cancelled and is about to be dismissed.
+     */
+    void dialogDidCancel();
+
+    /**
+     * Called when dialog failed to load due to an error.
+     */
+    void dialogDidFailWithError ( const FBError& error );
+
+
+	
+private slots:
+    void cancel();
+
+    /* slots for signals from QWebView.page() */
+    void linkClicked ( const QUrl & url );
+    void loadStarted ();
+    void loadProgress(int progress);
+    void loadFinished ( bool ok );
+    
+    //Network Error Slots
+    void slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator );
+    void slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  );
+    void slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  );
+
+public:
+	
+	void proxysettings();
+    /**
+    * Creates the view but does not display it.
+    */
+    FBDialog(FBSession* aSession);
+    FBDialog();
+
+    /**
+    * Displays the view with an animation.
+    *
+    * The view will be added to the top of the current key window.
+    */
+    void show();
+	
+    /** Displays the first page of the dialog.
+     *
+     * Do not ever call this directly.  It is intended to be overriden by subclasses.
+     */
+    virtual void load ();
+	
+    /**
+     * Displays a URL in the dialog.
+     */
+    void loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams,
+                 const QHash<QString, QString>&  aPostParams);
+
+
+    void dismiss(bool aAnimated);
+
+    /**
+     * Hides the view and notifies delegates of success or cancellation.
+     */
+    void dismissWithSuccess (bool aSuccess, bool aAnimated);
+
+    /**
+    * Hides the view and notifies delegates of an error.
+    */
+    void dismissWithError (const FBError& aError, bool aAnimated);
+
+    /**
+    * Subclasses may override to perform actions just prior to showing the dialog.
+    */
+    virtual void dialogWillAppear();
+
+    /**
+     * Subclasses may override to perform actions just after the dialog is hidden.
+     */
+    virtual void dialogWillDisappear();
+
+    /**
+     * Subclasses should override to process data returned from the server in a 'fbconnect' url.
+     *
+     * Implementations must call dismissWithSuccess:YES at some point to hide the dialog.
+     */
+    virtual void dialogDidSucceed(const QUrl& aUrl);
+	
+    QString title() const;
+    void setTitle ( const QString& aTitle );
+    
+    virtual void GetSessionKey(const QUrl& aUrl);
+    virtual void FetchKeyFromUrl(const QUrl& aUrl);
+private:
+    void createControls();
+    QString generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const;
+    QByteArray generatePostBody (const QHash<QString, QString>& aParams) const;
+
+    void postDismissCleanup();
+
+public:
+    virtual void GetAccessToken();
+ };
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/errorCodes.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,221 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Common Errors Declaration
+*/
+
+#ifndef FBERROR_H_
+#define FBERROR_H_
+
+
+#include "authAppConstants.h"
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Error codes
+/* defined by this proj*/
+#define FBRESPONSE_PARSE_ERROR 13  /* the xml parser was unable to parse the response returned by the server */
+
+/* defined and returned by facebook */
+#define FBAPI_EC_SUCCESS 0
+#define FBAPI_EC_UNKNOWN 1
+#define FBAPI_EC_SERVICE 2
+#define FBAPI_EC_METHOD 3
+#define FBAPI_EC_TOO_MANY_CALLS 4
+#define FBAPI_EC_BAD_IP 5
+#define FBAPI_EC_HOST_API 6
+#define FBAPI_EC_HOST_UP 7
+#define FBAPI_EC_SECURE 8
+#define FBAPI_EC_RATE 9
+#define FBAPI_EC_PERMISSION_DENIED 10
+#define FBAPI_EC_DEPRECATED 11
+#define FBAPI_EC_VERSION 12
+
+#define FBAPI_EC_PARAM 100
+#define FBAPI_EC_PARAM_FBAPI_KEY 101
+#define FBAPI_EC_PARAM_SESSION_KEY 102
+#define FBAPI_EC_PARAM_CALL_ID 103
+#define FBAPI_EC_PARAM_SIGNATURE 104
+#define FBAPI_EC_PARAM_TOO_MANY 105
+#define FBAPI_EC_PARAM_USER_ID 110
+#define FBAPI_EC_PARAM_USER_FIELD 111
+#define FBAPI_EC_PARAM_SOCIAL_FIELD 112
+#define FBAPI_EC_PARAM_EMAIL 113
+#define FBAPI_EC_PARAM_ALBUM_ID 120
+#define FBAPI_EC_PARAM_PHOTO_ID 121
+#define FBAPI_EC_PARAM_FEED_PRIORITY 130
+#define FBAPI_EC_PARAM_CATEGORY 140
+#define FBAPI_EC_PARAM_SUBCATEGORY 141
+#define FBAPI_EC_PARAM_TITLE 142
+#define FBAPI_EC_PARAM_DESCRIPTION 143
+#define FBAPI_EC_PARAM_BAD_JSON 144
+#define FBAPI_EC_PARAM_BAD_EID 150
+#define FBAPI_EC_PARAM_UNKNOWN_CITY 151
+#define FBAPI_EC_PARAM_BAD_PAGE_TYPE 152
+
+#define FBAPI_EC_PERMISSION 200
+#define FBAPI_EC_PERMISSION_USER 210
+#define FBAPI_EC_PERMISSION_ALBUM 220
+#define FBAPI_EC_PERMISSION_PHOTO 221
+#define FBAPI_EC_PERMISSION_MESSAGE 230
+#define FBAPI_EC_PERMISSION_MARKUP_OTHER_USER 240
+#define FBAPI_EC_PERMISSION_STATUS_UPDATE 250
+#define FBAPI_EC_PERMISSION_PHOTO_UPLOAD 260
+#define FBAPI_EC_PERMISSION_SMS 270
+#define FBAPI_EC_PERMISSION_CREATE_LISTING 280
+#define FBAPI_EC_PERMISSION_EVENT 290
+#define FBAPI_EC_PERMISSION_LARGE_FBML_TEMPLATE 291
+#define FBAPI_EC_PERMISSION_LIVEMESSAGE 292
+#define FBAPI_EC_PERMISSION_RSVP_EVENT 299
+
+#define FBAPI_EC_EDIT 300
+#define FBAPI_EC_EDIT_USER_DATA 310
+#define FBAPI_EC_EDIT_PHOTO 320
+#define FBAPI_EC_EDIT_ALBUM_SIZE 321
+#define FBAPI_EC_EDIT_PHOTO_TAG_SUBJECT 322
+#define FBAPI_EC_EDIT_PHOTO_TAG_PHOTO 323
+#define FBAPI_EC_EDIT_PHOTO_FILE 324
+#define FBAPI_EC_EDIT_PHOTO_PENDING_LIMIT 325
+#define FBAPI_EC_EDIT_PHOTO_TAG_LIMIT 326
+#define FBAPI_EC_EDIT_ALBUM_REORDER_PHOTO_NOT_IN_ALBUM 327
+#define FBAPI_EC_EDIT_ALBUM_REORDER_TOO_FEW_PHOTOS 328
+#define FBAPI_EC_MALFORMED_MARKUP 329
+#define FBAPI_EC_EDIT_MARKUP 330
+#define FBAPI_EC_EDIT_FEED_TOO_MANY_USER_CALLS 340
+#define FBAPI_EC_EDIT_FEED_TOO_MANY_USER_ACTION_CALLS 341
+#define FBAPI_EC_EDIT_FEED_TITLE_LINK 342
+#define FBAPI_EC_EDIT_FEED_TITLE_LENGTH 343
+#define FBAPI_EC_EDIT_FEED_TITLE_NAME 344
+#define FBAPI_EC_EDIT_FEED_TITLE_BLANK 345
+#define FBAPI_EC_EDIT_FEED_BODY_LENGTH 346
+#define FBAPI_EC_EDIT_FEED_PHOTO_SRC 347
+#define FBAPI_EC_EDIT_FEED_PHOTO_LINK 348
+#define FBAPI_EC_EDIT_VIDEO_SIZE 350
+#define FBAPI_EC_EDIT_VIDEO_INVALID_FILE 351
+#define FBAPI_EC_EDIT_VIDEO_INVALID_TYPE 352
+#define FBAPI_EC_EDIT_FEED_TITLE_ARRAY 360
+#define FBAPI_EC_EDIT_FEED_TITLE_PARAMS 361
+#define FBAPI_EC_EDIT_FEED_BODY_ARRAY 362
+#define FBAPI_EC_EDIT_FEED_BODY_PARAMS 363
+#define FBAPI_EC_EDIT_FEED_PHOTO 364
+#define FBAPI_EC_EDIT_FEED_TEMPLATE 365
+#define FBAPI_EC_EDIT_FEED_TARGET 366
+#define FBAPI_EC_USERS_CREATE_INVALID_EMAIL 370
+#define FBAPI_EC_USERS_CREATE_EXISTING_EMAIL 371
+#define FBAPI_EC_USERS_CREATE_BIRTHDAY 372
+#define FBAPI_EC_USERS_CREATE_PASSWORD 373
+#define FBAPI_EC_USERS_REGISTER_INVALID_CREDENTIAL 374
+#define FBAPI_EC_USERS_REGISTER_CONF_FAILURE 375
+#define FBAPI_EC_USERS_REGISTER_EXISTING 376
+#define FBAPI_EC_USERS_REGISTER_DEFAULT_ERROR 377
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_BLANK 378
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_INVALID_CHARS 379
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_SHORT 380
+#define FBAPI_EC_USERS_REGISTER_PASSWORD_WEAK 381
+#define FBAPI_EC_USERS_REGISTER_USERNAME_ERROR 382
+#define FBAPI_EC_USERS_REGISTER_MISSING_INPUT 383
+#define FBAPI_EC_USERS_REGISTER_INCOMPLETE_BDAY 384
+#define FBAPI_EC_USERS_REGISTER_INVALID_EMAIL 385
+#define FBAPI_EC_USERS_REGISTER_EMAIL_DISABLED 386
+#define FBAPI_EC_USERS_REGISTER_ADD_USER_FAILED 387
+#define FBAPI_EC_USERS_REGISTER_NO_GENDER 388
+
+#define FBAPI_EC_AUTH_EMAIL 400
+#define FBAPI_EC_AUTH_LOGIN 401
+#define FBAPI_EC_AUTH_SIG 402
+#define FBAPI_EC_AUTH_TIME 403
+
+#define FBAPI_EC_SESSION_METHOD 451
+#define FBAPI_EC_SESSION_REQUIRED 453
+#define FBAPI_EC_SESSION_REQUIRED_FOR_SECRET 454
+#define FBAPI_EC_SESSION_CANNOT_USE_SESSION_SECRET 455
+
+#define FBAPI_EC_MESG_BANNED 500
+#define FBAPI_EC_MESG_NO_BODY 501
+#define FBAPI_EC_MESG_TOO_LONG 502
+#define FBAPI_EC_MESG_RATE 503
+#define FBAPI_EC_MESG_INVALID_THREAD 504
+#define FBAPI_EC_MESG_INVALID_RECIP 505
+#define FBAPI_EC_POKE_INVALID_RECIP 510
+#define FBAPI_EC_POKE_OUTSTANDING 511
+#define FBAPI_EC_POKE_RATE 512
+
+#define FQL_EC_UNKNOWN_ERROR 600
+#define FQL_EC_PARSER_ERROR 601
+#define FQL_EC_UNKNOWN_FIELD 602
+#define FQL_EC_UNKNOWN_TABLE 603
+#define FQL_EC_NO_INDEX 604
+#define FQL_EC_UNKNOWN_FUNCTION 605
+#define FQL_EC_INVALID_PARAM 606
+#define FQL_EC_INVALID_FIELD 607
+#define FQL_EC_INVALID_SESSION 608
+
+#define FBAPI_EC_REF_SET_FAILED 700
+#define FBAPI_EC_FB_APP_UNKNOWN_ERROR 750
+#define FBAPI_EC_FB_APP_FETCH_FAILED 751
+#define FBAPI_EC_FB_APP_NO_DATA 752
+#define FBAPI_EC_FB_APP_NO_PERMISSIONS 753
+#define FBAPI_EC_FB_APP_TAG_MISSING 754
+
+#define FBAPI_EC_DATA_UNKNOWN_ERROR 800
+#define FBAPI_EC_DATA_INVALID_OPERATION 801
+#define FBAPI_EC_DATA_QUOTA_EXCEEDED 802
+#define FBAPI_EC_DATA_OBJECT_NOT_FOUND 803
+#define FBAPI_EC_DATA_OBJECT_ALREADY_EXISTS 804
+#define FBAPI_EC_DATA_DATABASE_ERROR 805
+#define FBAPI_EC_DATA_CREATE_TEMPLATE_ERROR 806
+#define FBAPI_EC_DATA_TEMPLATE_EXISTS_ERROR 807
+#define FBAPI_EC_DATA_TEMPLATE_HANDLE_TOO_LONG 808
+#define FBAPI_EC_DATA_TEMPLATE_HANDLE_ALREADY_IN_USE 809
+#define FBAPI_EC_DATA_TOO_MANY_TEMPLATE_BUNDLES 810
+#define FBAPI_EC_DATA_MALFORMED_ACTION_LINK 811
+#define FBAPI_EC_DATA_TEMPLATE_USES_RESERVED_TOKEN 812
+
+#define FBAPI_EC_NO_SUCH_APP 900
+#define FBAPI_BATCH_TOO_MANY_ITEMS 950
+#define FBAPI_EC_BATCH_ALREADY_STARTED 951
+#define FBAPI_EC_BATCH_NOT_STARTED 952
+#define FBAPI_EC_BATCH_METHOD_NOT_ALLOWED_IN_BATCH_MODE 953
+
+#define FBAPI_EC_EVENT_INVALID_TIME 1000
+#define FBAPI_EC_INFO_NO_INFORMATION 1050
+#define FBAPI_EC_INFO_SET_FAILED 1051
+
+#define FBAPI_EC_LIVEMESSAGE_SEND_FAILED 1100
+#define FBAPI_EC_LIVEMESSAGE_EVENT_NAME_TOO_LONG 1101
+#define FBAPI_EC_LIVEMESSAGE_MESSAGE_TOO_LONG 1102
+
+#define FBAPI_EC_PAGES_CREATE 1201
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class FBError
+{
+
+public:
+    FBError(quint8 aErrorCode) : iErrorCode (aErrorCode) {}
+    FBError() : iErrorCode(0) {}
+
+    inline quint8 code() const { return iErrorCode; }
+    inline void setCode( quint8 aErrorCode ) { iErrorCode = aErrorCode; }
+
+    inline QString description() const { return iErrorDescription; }
+    inline void setDescription( const QString& aErrorDescription ) { iErrorDescription = aErrorDescription; }
+
+private:
+    quint8 iErrorCode;
+    QString iErrorDescription;
+};
+
+#endif // FBERROR_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/keys.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,22 @@
+/*
+ * keys.h
+ *
+ *  Created on: Jul 16, 2010
+ *      Author: satishkk
+ */
+
+#ifndef KEYS_H_
+#define KEYS_H_
+
+#define EMULATORTESTING
+
+static const QString kApiKey = "skvMOZYSO3Smxab1HRfGRg";
+static const QString kConsumerKey = "skvMOZYSO3Smxab1HRfGRg";
+static const QString kConsumerSecret = "k2rP2TLeFZlUONXCkg6rR9PWdl3YKrE1PFXzHmnZgx4";
+
+static const QString kRequestTokenUrl = "https://api.twitter.com/oauth/request_token";
+static const QString kAccessTokenUrl = "https://api.twitter.com/oauth/access_token";
+static const QString kAuthorizeUrl = "https://api.twitter.com/oauth/authorize";
+
+static const QString kBase = "https://api.twitter.com/oauth/authorize";
+#endif /* KEYS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/loginDialog.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,64 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Login Dialog class of Authentication Application
+*/
+
+
+#ifndef FB_LOGIN_DIALOG_H_
+#define FB_LOGIN_DIALOG_H_
+
+#include "baseDialog.h"
+#include "requestSP.h"
+#include <QNetworkReply>
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+class FBLoginDialog : public FBDialog
+{
+    Q_OBJECT
+
+private:
+    FBRequest* iGetSessionRequest;
+	
+private slots:
+    /* slots for handling signals from FBRequest iGetSessionRequest */
+    void requestDidLoad (const QVariant& aResult);
+    void LoadLoginPage();
+
+    void requestFailedWithFacebookError ( const FBError& aError );
+    void requestFailedWithNetworkError( QNetworkReply::NetworkError code );
+
+public:
+    FBLoginDialog(FBSession* aSession);
+    FBLoginDialog();
+
+    void load();
+
+protected:
+    virtual void dialogWillDisappear();
+    void GetSessionKey(const QUrl& aUrl);
+    void FetchKeyFromUrl(const QUrl& aUrl);
+private:
+    void connectToGetSession(const QString& aToken);
+    void loadLoginPage();
+    QString generateNONCE(const qint64 Length);
+    //int generateTimeStamp();
+    QByteArray generateTimeStamp();
+public:
+    void connectToGetToken();
+    void GetAccessToken();
+ };
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/requestSP.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,225 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to handle calls to rest Server API's
+*/
+#ifndef FBREQUEST_H
+#define FBREQUEST_H
+
+#include <QObject>
+#include <QString>
+#include <QDateTime>
+#include <QHttp>
+#include <QHash>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include "progressbar.h"
+#include "authAppConstants.h"
+#include "xmlParser.h"
+
+// FORWARD DECLARATIONS
+class FBSession;
+class FBError;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class  FBRequest : public QObject
+{
+    Q_OBJECT
+
+private:
+
+    /* pointer to the session that owns this request */
+    FBSession*  iSession;
+
+    /**
+     * The URL which will be contacted to execute the request.
+     */
+    QString iUrl;
+
+    /**
+     * The API method which will be called.
+     */
+    QString iMethod;
+
+    /**
+     * An object used by the user of the request to help identify the meaning of the request.
+     */
+    void*   iUserInfo;
+
+    /**
+     * The dictionary of parameters to pass to the method.
+     *
+     * These values in the dictionary will be converted to strings using the
+     * standard Objective-C object-to-string conversion facilities.
+     */
+    Dictionary  iParams;
+
+    /**
+     * A data parameter.
+     *
+     * Used for methods such as photos.upload, video.upload, events.create, and
+     * events.edit.
+     */
+    QByteArray  iDataParam;
+
+    /**
+      * true if iDataParam holds picture data
+      */
+    bool        iDataParamPicture;
+
+    /**
+     * The timestamp of when the request was sent to the server.
+     */
+    QDateTime   iTimestamp;
+    QHttp       iConnection;
+    QByteArray  iResponseText;
+
+    QNetworkAccessManager iNetworkAccessManager;
+    progressbar* pbar;
+
+signals: /* the signals ommitted by FBRequest */
+
+    /**
+     * Called just before the request is sent to the server.
+     */
+    void requestLoading();
+
+    /**
+     * Called when the server responds and begins to send back data.
+     */
+    //todo: void requestDidReceiveResponse (FBRequest* aRequest, NSURLResponse* aResponse);
+
+    /**
+     * Called when an error prevents the request from completing successfully.
+     */
+    void requestFailedWithNetworkError( QNetworkReply::NetworkError code );
+    void requestFailedWithFacebookError ( const FBError& aError );
+
+    /**
+     * Called when a request returns and its response has been parsed into an object.
+     *
+     * The resulting object may be a dictionary, an array, a string, or a number, depending
+     * on thee format of the API response.
+     */
+    void requestDidLoad ( const QVariant& aResult);
+    void LoadLoginPage();
+
+    /**
+     * Called when the request was cancelled.
+     */
+    void requestWasCancelled ();
+
+
+private slots:
+    void networkReplyError ( QNetworkReply::NetworkError code );
+    void networkReplyFinished ();
+    void networkReplyFinishedNew ();
+public: /* class functions */
+    /**
+     * Creates a new API request for the global session.
+     */
+    static FBRequest* request();
+
+    /**
+     * Creates a new API request for a particular session.
+     */
+    static FBRequest* requestWithSession (FBSession* aSession);
+
+public: /* instance functions */
+
+    /**
+     * Creates a new request paired to a session.
+     */
+    FBRequest (FBSession* aSession);
+
+    /**
+     * Calls a method on the server asynchronously.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void call (const QString& aMethod, const Dictionary& aParams);
+
+    /**
+     * Calls a method on the server asynchronously, with a file upload component.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture);
+
+    /**
+     * Calls a URL on the server asynchronously.
+     *
+     * The delegate will be called for each stage of the loading process.
+     */
+    void post( const QString& aUrl, const Dictionary& aParams);
+
+    /**
+     * Stops an active request before the response has returned.
+     */
+    void cancel();
+
+    /**
+      * returns the time stamp of when the request was sent to the server
+      */
+    const QDateTime& timeStamp() const;
+
+    void connect();
+    
+    QString generateSig(Dictionary);
+
+private:
+    /**
+      * Given a string returns its hex coded md5 hash
+      */
+    QString sha1();
+
+    /**
+      * @return true if the current request method is a special method
+      */
+    bool isSpecialMethod() const;
+
+    /**
+      * @return QString a url to use for the given method
+      */
+    QString urlForMethod (const QString& aMethod) const;
+
+    /**
+      * @return the Get Url for the request
+      */
+    QString generateGetURL() const;
+
+    QString generateCallId() const;
+
+    void generatePostBody(QByteArray& body);
+
+    /**
+      * handles the data received from the server
+      * @param aResponseData is the data received from the server
+      */
+    void handleResponseData( const QByteArray& aResponseData );
+
+    /**
+      * @param aResponseData is the data received from the server
+      * @param aError will get error codes if any error occurs ( this will change in the future )
+      * @return a void* pointer, this will change
+      */
+    QVariant parseXMLResponse ( const QByteArray& aResponseData, FBError& aError);
+public:
+    TBuf8<1024> tbuf;
+    void proxysettings();
+public:
+    void connect_req(QString uri);
+};
+
+#endif // FBREQUEST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/sessionSP.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,284 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to maintian session & all credential keys.
+*/
+
+#ifndef FBSESSION_H
+#define FBSESSION_H
+
+#include <QObject>
+#include <QList>
+#include <QString>
+#include <QSettings>
+#include <QDateTime>
+#include "smfcredmgrclient.h"
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+const QString KFacebokkKeysFileName = "c://Data//FacebookKeys.txt";
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * An FBSession represents a single user's authenticated session for a Facebook application.
+ *
+ * To create a session, you must use the session key of your application (which can
+ * be found on the Facebook developer website).  You may then use the login dialog to ask
+ * the user to enter their email address and password.  If successful, you will get back a
+ * session key which can be used to make requests to the Facebook API.
+ *
+ * Session keys are cached and stored on the disk of the device so that you do not need to ask
+ * the user to login every time they launch the app.  To restore the last active session, call the
+ * resume method after instantiating your session.
+ */
+class FBSession : public QObject
+{
+    Q_OBJECT
+
+private:
+    /**
+      * the queue of requests
+      */
+    QList<FBRequest*>           iRequestQueue;
+
+    /**
+     * Your application's API key, as passed to the constructor.
+     */
+    QString iApiKey;
+
+    /**
+     * Your application's API secret, as passed to the constructor.
+     */
+    QString iApiSecret;
+
+    /**
+     * The URL to call to create a session key after login.
+     *
+     * This is an alternative to calling auth.getSession directly using the secret key.
+     */
+    QString iGetSessionProxy;
+
+    /**
+     * The current user's session key.
+     */
+    QString iSessionKey;
+
+    /**
+     * The current user's session secret.
+     */
+    QString iSessionSecret;
+
+    /**
+     * The expiration date of the session key.
+     */
+    QDateTime iExpirationDate;
+
+
+    /**
+      * the time at which the last request was performed, this is used to prevent
+      * too many requests going to the server at once.
+      */
+    QDateTime   iLastRequestTime;
+    int         iRequestBurstCount;
+
+
+    /**
+      * The settings object used to restore session from the disk.
+      */
+    QSettings   iSettings;
+    /**
+      * The Credentail Object used to store auth data
+      */
+    SmfCredMgrClient* m_Client; 
+    /**
+      * Variable to store 
+      */ 
+    QString iCMRegToken;
+
+signals: /* the signals ommitted by FBSession */
+
+    /**
+      * Called when session logged in sucessfully
+      * @param SessionKey is the fb assigned session key
+      */
+    void sessionDidLogin (QString SessionKey);
+
+    /**
+     * Called when a user closes the login dialog without logging in.
+     */
+    void sessionDidNotLogin ();
+
+    /**
+     * Called when a session is about to log out.
+     * @param aUid is the fb assigned session id
+     */
+    void sessionWillLogout ();
+
+    /**
+     * Called when a session has logged out.
+     */
+    void sessionDidLogout ();
+
+private slots:
+    /**
+      * handler function for the timer fired from startFlushTimer() function
+      */
+    void requestTimerReady();
+
+public: /* class functions */
+
+    /**
+     * The globally shared session instance.
+     */
+    static FBSession* session();
+
+    /**
+     * Sets the globally shared session instance.
+     *
+     * This session is not retained, so you are still responsible for retaining it yourself.  The
+     * first session that is created is automatically stored here.
+     */
+    static void setSession(FBSession* aSession);
+
+    /**
+     * Constructs a session and stores it as the globally shared session instance.
+     *
+     * @param aSessionProxy a url to that proxies auth.getSession
+     */
+    static FBSession* sessionForApplication ( const QString& aKey, const QString& aSecret, const QString& aSessionProxy);
+
+public: /* instance functions */
+
+    /**
+     * Constructs a session for an application.
+     *
+     * @param secret the application secret (optional)
+     * @param getSessionProxy a url to that proxies auth.getSession (optional)
+     */
+    FBSession( const QString& aKey, const QString& aSecret, const QString& aSessionProxy );
+
+    /**
+      * Destructor
+      */
+    ~FBSession();
+
+    /**
+     * Begins a session for a user with a given key and secret.
+     */
+    void beginSession ( const QString& aSessionKey, const QString& aSessionSecret, const QDateTime& aExpires );
+
+    /**
+     * Resumes a previous session whose uid, session key, and secret are cached on disk.
+     */
+     bool resume();
+
+    /**
+     * Cancels a login (no-op if the login is already complete).
+     */
+    void cancelLogin();
+
+    /**
+     * Ends the current session and deletes the uid, session key, and secret from disk.
+     */
+    void logout();
+
+    /**
+     * Sends a fully configured request to the server for execution.
+     */
+    void send (FBRequest* aRequest);
+
+    /**
+      * @return const QString& http:// URL to the facebook REST server
+      */
+    const QString& apiURL() const;
+
+    /**
+      * @return const QString& https:// URL to the secure facebook REST server
+      */
+    const QString& apiSecureURL() const;
+
+    /**
+     * Determines if the session is active and connected.
+     * @return bool true if connected
+     */
+    bool isConnected() const;
+
+    /**
+      * @return const QString& the api secret
+      */
+    const QString& apiSecret() const { return iApiSecret; }
+
+    /**
+      * @return const QString& the GET? session proxy
+      */
+    const QString& getSessionProxy() const { return iGetSessionProxy; }
+
+    /**
+      * @return api key for this session
+      */
+    const QString& apiKey() const { return iApiKey; }
+
+    /**
+      * @return the session secret
+      */
+    const QString& sessionSecret() const { return iSessionSecret; }
+
+    /**
+      * @return the session key
+      */
+    const QString& sessionKey() const { return iSessionKey; }
+    /**
+         * Saves the fb connect session information to disk
+         */
+    void save();
+private:
+
+   
+    /**
+      * Forgets any fb connect session information saved to disk
+      */
+    void unsave();
+
+    void startFlushTimer();
+
+    /**
+      * @param aRequest, the request to add to the session queue, owner ship is transferred to the session
+      */
+    void enqueueRequest(FBRequest* aRequest);
+
+    /**
+      * @param aRequest, the request to perform.
+      * @param aEnqueue, if true add to queue if cant perform the request right now
+      */
+    bool performRequest(FBRequest* aRequest, bool aEnqueue);
+
+    /**
+      * flush the queue but performingRequest on the requests in the queue, if cant perform the request, waits a while using
+      * startFlushTimer() and then tries to continue ..
+      */
+    void flushRequestQueue();
+public:
+    QString stroauth_nonce;
+    QString stroauth_timestamp;
+    QString stroauth_signature;
+    QString stroauth_Token;
+    QString stroauth_TokenSecret;
+    QString stroauth_verifier;
+public: 
+    void send_req (QString uri,FBRequest* aRequest);
+};
+
+#endif // FBSESSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/inc/xmlParser.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,84 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* XML Parser class
+*/
+
+#ifndef FB_XML_HANDLER_H
+#define FB_XML_HANDLER_H
+
+#include <QObject>
+#include <QString>
+#include <QXmlDefaultHandler>
+#include <QVariantList>
+
+#include "authAppConstants.h"
+
+// FORWARD DECLARATIONS
+class FBRequest;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+class FBXMLHandler : public QObject, public QXmlDefaultHandler
+{
+    Q_OBJECT
+
+private:
+    QVariantList        iStack;
+    QList<QString>      iNameStack;
+    QVariant            iRootObject;
+    QString             iRootName;
+    QString             iChars;
+
+    QString         iParseErrorMessage;
+    bool            iError;
+
+public: /* class functions */
+
+    FBXMLHandler();
+    ~FBXMLHandler();
+
+    inline const QString& rootName() const { return iRootName; }
+    inline QVariant rootObject() const { return iRootObject; }
+
+    inline bool parseError() const { return iError; }
+
+private:
+    /* methods from QXmlDefaultHandler */
+    bool startElement( const QString & namespaceURI,
+                       const QString & localName,
+                       const QString & qName,
+                       const QXmlAttributes & atts);
+    bool characters(const QString& text);
+    bool endElement( const QString & namespaceURI,
+                     const QString & localName,
+                     const QString & qName );
+
+    /* methods from QXmlErrorHandler */
+    bool error(const QXmlParseException& exception);
+    bool fatalError(const QXmlParseException& exception);
+
+    /* private functions*/
+    const QString& topName() const;
+    void flushCharacters();
+    QVariant topObject(bool aCreate);
+
+    QVariant topContainer();
+
+
+    void initWhiteSpaceHash();
+    QHash<QChar, bool> iWhiteSpaceAndNewLineCharSet;
+
+};
+
+#endif // FB_XML_HANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/main.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** 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 "AuthApp.h"
+
+#include <QtGui>
+#include <QApplication>
+
+void debugOutput(QtMsgType type, const char *msg)
+	{
+	QFile logFile("c://data//TwitterLog.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);
+    qDebug()<<"Inside main()";
+    AuthApp w;
+    
+	#if defined(Q_OS_SYMBIAN)
+		w.showMaximized();
+	#else
+		w.show();
+	#endif
+		
+    return a.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/progressbar.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,14 @@
+#include "progressbar.h"
+
+progressbar::progressbar(QWidget *parent)
+    : QWidget(parent)
+{
+	ui.setupUi(this);
+	ui.progressBar->setTextVisible(false);
+}
+
+
+progressbar::~progressbar()
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,19 @@
+#ifndef PROGRESSBAR_H
+#define PROGRESSBAR_H
+
+#include <QtGui/QWidget>
+#include "ui_progressbar.h"
+
+class progressbar : public QWidget
+{
+    Q_OBJECT
+
+public:
+    progressbar(QWidget *parent = 0);
+    ~progressbar();
+
+private:
+    Ui::progressbarClass ui;
+};
+
+#endif // PROGRESSBAR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/progressbar.ui	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,31 @@
+<ui version="4.0" >
+ <class>progressbarClass</class>
+ <widget class="QWidget" name="progressbarClass" >
+    <property name="windowTitle" >
+   <string>progressbar</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" >
+   <item>
+    <widget class="QLabel" name="label" >
+     <property name="text" >
+      <string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:10pt;">Loading,Please wait.....&lt;/span>&lt;/p>&lt;/body>&lt;/html></string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QProgressBar" name="progressBar" >
+     <property name="value" >
+      <number>24</number>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/src/baseDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,426 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Base class of All dialogs
+*/
+
+#include <QNetworkCookie>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QWebFrame>
+#include <QFile>
+#include <QDesktopServices>
+#include <QResizeEvent>
+#include <QDebug>
+#include <qmessagebox.h>
+#include <QNetworkAccessManager>
+#include <QPropertyAnimation>
+#include <qnetworkproxy.h>
+#include <qdesktopwidget.h>
+#include <qapplication.h>
+//#include <qboxlayout.h>
+#include "baseDialog.h"
+#include "sessionSP.h"
+#include "errorCodes.h"
+#include "keys.h"
+#include <QSslConfiguration>
+
+static const QString kDefaultTitle = "Connect to Facebook";
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+
+static QNetworkAccessManager namanager;
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+FBDialog::FBDialog() : iSession(FBSession::session()), /*iWebView ( this  ),*/ iIgnorePageLoadCompleteEvent( false )
+{
+    createControls();
+}
+
+FBDialog::FBDialog(FBSession* aSession) : iSession ( aSession ), /*iWebView ( this  ) ,*/ iIgnorePageLoadCompleteEvent ( false )
+{
+    createControls();
+}
+void FBDialog::createControls()
+{
+	iWebView = new QWebView(this);
+    iWebView->page()->setNetworkAccessManager(&namanager);
+
+    iWebView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
+    
+    layout = new QVBoxLayout(this);
+    
+    
+    progressbar = new QProgressBar(this);
+    
+    layout->addWidget(iWebView);
+    //layout->addWidget(progressbar);
+    
+    setLayout(layout);
+    
+    progressbar->setOrientation(Qt::Horizontal);
+    
+
+    connect( iWebView->page(), SIGNAL(linkClicked(const QUrl &)),
+                    this, SLOT(linkClicked(const QUrl &)));
+
+    connect ( iWebView->page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
+
+    connect ( iWebView->page(), SIGNAL(loadStarted()), this, SLOT ( loadStarted()));
+    
+    connect ( iWebView->page(), SIGNAL(loadProgress(int)), this, SLOT ( loadProgress(int)));
+    
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( authenticationRequired( QNetworkReply*, QAuthenticator*)),this,SLOT( slotAuthenticationRequired( QNetworkReply*, QAuthenticator*)));
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( sslErrors( QNetworkReply*,QList<QSslError>&)),this,SLOT( slotsslErrors( QNetworkReply*,QList<QSslError>&)) );
+    connect (iWebView->page()->networkAccessManager(),SIGNAL( proxyAuthenticationRequired(QNetworkProxy&, QAuthenticator*)),this,SLOT( slotproxyAuthenticationRequired(QNetworkProxy&, QAuthenticator*)) );
+   // connect ()
+    
+}
+QString FBDialog::generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const
+{
+	qDebug()<<"Inside FBDialog::generateURL()";
+    QString url ( aUrl );
+
+    QStringList pairs;
+    QHashIterator<QString, QString> i(aParams);
+
+    while (i.hasNext()) {
+        i.next();
+
+        QUrl url (i.value());
+        QString pair = i.key() + "=" + url.toEncoded();
+        pairs << pair.toUtf8();
+    }
+
+    if (pairs.count())
+    {
+        url = url + "?" + pairs.join("&");
+    }
+
+    return url;
+
+}
+
+QByteArray FBDialog::generatePostBody (const QHash<QString, QString>& aParams) const
+{
+	qDebug()<<"Inside FBDialog::generatePostBody()";
+    QByteArray body;
+
+    if (!aParams.count())
+        return body;
+
+
+    QString endLine = "\r\n--" + kStringBoundary + "\r\n", kStringBoundary;
+
+    QString tmp = "--" + kStringBoundary + "\r\n";
+    body.append(tmp.toUtf8());
+
+
+    QHashIterator<QString, QString> i(aParams);
+    while (i.hasNext()) {
+        i.next();
+
+        tmp = "Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" ;
+        body.append(tmp.toUtf8());
+        body.append(i.value().toUtf8());
+        body.append(endLine.toUtf8());
+    }
+
+    return body;
+}
+
+void FBDialog::postDismissCleanup()
+{
+    //accept();
+    // could also be reject()?
+}
+
+void FBDialog::dismiss (bool /*aAnimated*/) {
+	qDebug()<<"Inside FBDialog::dismiss()";
+    dialogWillDisappear();
+    iLoadingUrl.clear();
+
+    //todo: do some animations if aAnimated == true !
+    postDismissCleanup();
+}
+
+
+void FBDialog::dismissWithSuccess( bool aSuccess, bool aAnimated)
+{
+	qDebug()<<"Inside FBDialog::dismissWithSuccess()";
+  if (aSuccess) {
+        emit dialogDidSucceed();
+  } else {
+        emit dialogDidCancel();
+  }
+
+  dismiss(aAnimated);
+}
+
+void FBDialog::dismissWithError (const FBError& aError, bool aAnimated)
+{
+	qDebug()<<"Inside FBDialog::dismissWithError()";
+	qDebug()<<"aError"<<aError.description();
+  emit dialogDidFailWithError( aError );
+  dismiss(aAnimated);
+}
+void FBDialog::slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator )
+	{
+		Q_UNUSED(reply)
+		Q_UNUSED(authenticator)
+		QMessageBox msgbox;
+		QString msg ("Error!Authentication Required");
+		msgbox.setText(msg);
+	}
+void FBDialog::slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  )
+	{
+		Q_UNUSED(reply)
+		Q_UNUSED(errors)
+		QMessageBox msgbox;
+		QString msg ("Error!SSL Error");
+		msgbox.setText(msg);
+	}
+void FBDialog::slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  )
+	{
+		Q_UNUSED(proxy)
+		Q_UNUSED(authenticator)
+		QMessageBox msgbox;
+		QString msg ("Error!Proxy Authenticatio Required");
+		msgbox.setText(msg);
+	}
+void FBDialog::cancel()
+{}
+
+void FBDialog::load() {
+	qDebug()<<"Inside FBDialog::load()";
+}
+
+void FBDialog::show()
+{
+	qDebug()<<"Inside FBDialog::show()";
+    load();
+    showMaximized();
+    dialogWillAppear();
+
+}
+
+void FBDialog::loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams, const QHash<QString, QString>&  aPostParams)
+{   
+	Q_UNUSED(aMethod)
+	Q_UNUSED(aGetParams)
+	Q_UNUSED(aPostParams)
+	qDebug()<<"Inside FBDialog::loadURL()";
+    //proxysettings();
+    iIgnorePageLoadCompleteEvent = false;
+
+    QNetworkCookieJar* cookieJar = iWebView->page()->networkAccessManager()->cookieJar();
+    QByteArray body;
+
+    iLoadingUrl = aUrl;// generateURL(aUrl, aPostParams);/*aUrl;*////*"http://www.google.com/";
+
+    // This "test cookie" is required by login.php, or it complains that you need to enable JavaScript
+     QNetworkCookie testCookie ("test_cookie", "1");
+     testCookie.setDomain ( "www.linkedin.com" );
+     testCookie.setPath ( "/" );
+
+    QList<QNetworkCookie> cookieList;
+    cookieList.append(testCookie);
+
+    cookieJar->setCookiesFromUrl ( cookieList, QUrl(iLoadingUrl) );
+
+    QUrl url (iLoadingUrl);
+    QNetworkRequest request(url);
+
+    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
+
+	request.setSslConfiguration( config );
+   /* QString Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature + "\", oauth_version=\"1.0\"";
+    qDebug()<<"Authorization: "<<Authorization;
+    QByteArray auth = Authorization.toUtf8();
+    qDebug()<<"auth:"<<auth;
+    //static const char temp[] = "OAuth oauth_nonce="oqwgSYFUD87MHmJJDv7bQqOF2EPnVus7Wkqj5duNByU", oauth_callback="http%3A%2F%2Flocalhost%2Foauth_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1259178158", oauth_consumer_key="ABCDEFGHIJKLMNOPQRSTUVWXYZ", oauth_signature="TLQXuUzM7omwDbtXimn6bLDvfF8=", oauth_version="1.0";
+    if (aMethod == QNetworkAccessManager::PostOperation)
+    {
+		qDebug()<<"inside : if loop";
+        const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
+        request.setRawHeader("Authorization",auth);
+        request.setHeader (QNetworkRequest::ContentTypeHeader, contentType);     
+        body = generatePostBody (aPostParams);
+    }
+    bool val = request.hasRawHeader("Authorization");
+    qDebug()<<"Value:"<<val;*/
+    proxysettings();
+    
+    qDebug()<< "Check URL : " << iLoadingUrl;
+
+    //iWebView->load( request, aMethod, body);
+    iWebView->load(iLoadingUrl);
+    
+}
+void FBDialog::proxysettings()
+{
+#ifdef EMULATORTESTING
+	qDebug()<<"proxysettings";
+	
+	// Reading the keys, CSM Stubbed - START
+	QFile file("c:\\data\\DoNotShare.txt");
+	if (!file.open(QIODevice::ReadOnly))
+		{
+		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
+		return;
+		}
+	
+	QByteArray arr = file.readAll();
+	QList<QByteArray> list = arr.split(' ');
+	file.close();
+	
+	QString username(list[0]);
+	QString password(list[1]);
+	
+    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
+    QString httpPort = "3128";
+
+    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+
+    /*==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
+}
+void FBDialog::dialogWillAppear() {}
+
+void FBDialog::dialogWillDisappear() {}
+
+void FBDialog::dialogDidSucceed (const QUrl& /*aUrl*/) {
+  dismissWithSuccess(true,true);
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////
+void FBDialog::linkClicked ( const QUrl & url )
+ {
+
+        qDebug() << "Loading the url: " <<  url;
+        
+        proxysettings();
+			
+        iWebView->load(url);
+}
+
+void FBDialog::loadStarted()
+{
+    qDebug() << "Load started: " << iWebView->url();
+    layout->addWidget(progressbar);
+    progressbar->setVisible(true);
+}
+void FBDialog::loadProgress(int progress)
+{
+	progressbar->setValue(progress);
+}
+void FBDialog::GetSessionKey(const QUrl& aUrl)
+{
+	Q_UNUSED(aUrl)
+}
+void FBDialog::FetchKeyFromUrl(const QUrl& aUrl)
+{
+	Q_UNUSED(aUrl)
+}
+void FBDialog::loadFinished ( bool ok )
+{
+    qDebug() << "Load " << (ok ? "" : "un") << "successfull for: " << iWebView->url();
+    progressbar->setVisible(false);
+    layout->removeWidget(progressbar);
+    if (ok)
+    {
+		QString PAth = iWebView->url().toString();
+		PAth = PAth.mid(0,PAth.indexOf("?"));
+		
+		qDebug() << "Path is : " << PAth;
+		if(iWebView->url().toString() == kBase)
+			{
+				QString myhtml  = iWebView->page()->currentFrame()->toHtml();
+				QString myhtml2  = iWebView->page()->currentFrame()->toPlainText();
+				
+				//qDebug()<<"myhtml"<<myhtml;
+				//qDebug()<<"myhtml2"<<myhtml2;
+				int val = myhtml.indexOf("<div id=\"oauth_pin\">",0);
+				//int val2 = myhtml2.indexOf("Simply return to SMF Framework and enter the following PIN to complete the process.",0);
+				QString newval = myhtml.mid(val + 20,20);
+				//QString newval2 = myhtml2.mid(val2 + 83,10);
+				qDebug()<<"newval"<<newval;
+				//qDebug()<<"newval"<<newval2;
+				QStringList list = newval.split("<");
+				iSession->stroauth_verifier = list[0];
+				qDebug()<<"iSession->stroauth_verifier"<<iSession->stroauth_verifier;
+				iWebView->close();
+				GetAccessToken();
+				
+			}
+		/*if(kBase.compare(PAth) == 0){
+		
+			QByteArray URL = iWebView->url().encodedQuery();
+			qDebug() << "Encoded Query is : " << URL;
+			
+			if(URL.contains("auth_token"))
+				{
+					qDebug() << "URL contains auth token";
+					iWebView->setHidden(true);
+					QMessageBox msgbox;
+					QString msg ("Logged in Success!!!Complete the Authorization?");
+					msgbox.setText(msg);
+					if(msgbox.exec() == QMessageBox::Ok){
+						GetSessionKey(iWebView->url());
+					}else{
+						
+					}
+				}
+			else if(URL.contains("session_key") && URL.contains("uid"))
+				{
+					FetchKeyFromUrl(iWebView->url());
+				}
+			else
+				{
+					qDebug() << "URL doesnt have auth_token field";
+					iWebView->setHidden(true);
+					QMessageBox msgbox;
+					QString msg ("Permissions Success!!!continue login?");
+					msgbox.setText(msg);
+					if(msgbox.exec() == QMessageBox::Ok){
+						iWebView->setHidden(false);
+						load();
+					}else{
+						
+					}
+				}
+		}*/
+    }
+    else
+    {
+        if (iIgnorePageLoadCompleteEvent)
+            return;
+
+        FBError err;
+        dismissWithError(err, true);
+    }
+}
+void FBDialog::GetAccessToken() {
+	qDebug()<<"Inside FBDialog::GetAccessToken()";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/src/loginDialog.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,292 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* Login Dialog class of Authentication Application
+*/
+
+#include <qdebug.h>
+
+#include "authAppConstants.h"
+#include "sessionSP.h"
+#include "errorCodes.h"
+#include "loginDialog.h"
+#include "keys.h"
+#include <QNetworkCookie>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+//static const QString kLoginURL = "http://www.facebook.com/login.php";
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+void FBLoginDialog::connectToGetSession(const QString& aToken)
+{
+	qDebug()<<"Inside FBLoginDialog::connectToGetSession()";
+    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+    
+    //connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
+    connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
+    connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
+    connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
+
+    Dictionary params;
+    params["auth_token"] = aToken;
+
+    if (iSession->apiSecret().length())
+    {
+        params["generate_session_secret"]="1";
+    }
+
+    if (iSession->getSessionProxy().length())
+    {
+        iGetSessionRequest->post(iSession->getSessionProxy(),params);
+    }
+    else
+    {
+        iGetSessionRequest->call("facebook.auth.getSession", params);
+    }
+}
+void FBLoginDialog::connectToGetToken()
+	{
+		qDebug()<<"Inside FBLoginDialog::connectToGetToken()";
+	    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+
+	   // connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
+	 //   connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
+	  //  connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
+
+	    Dictionary postParams;
+		iSession->stroauth_nonce = generateNONCE(43);
+		iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
+		qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
+		//postParams["oauth_callback"] = kBase;
+		postParams["oauth_consumer_key"] = kConsumerKey;
+		postParams["oauth_signature_method"] = "HMAC-SHA1";
+		postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+		postParams["oauth_nonce"] = iSession->stroauth_nonce;
+		postParams["oauth_version"] = "1.0";
+		FBRequest* req = FBRequest::requestWithSession(iSession);
+		iSession->stroauth_signature = req->generateSig(postParams);
+	    iGetSessionRequest->call("/uas/oauth/accessToken", postParams);
+	    
+	}
+void FBLoginDialog::loadLoginPage()
+{
+    iGetSessionRequest = FBRequest::requestWithSession(iSession);
+	qDebug()<<"Inside FBLoginDialog::loadLoginPage()";
+    Dictionary getParams, postParams;
+    iSession->stroauth_nonce = generateNONCE(43);
+	iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
+	qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
+
+    postParams["oauth_consumer_key"] = kConsumerKey;
+    postParams["oauth_signature_method"] = "HMAC-SHA1";
+    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+    postParams["oauth_nonce"] = iSession->stroauth_nonce;
+    postParams["oauth_version"] = "1.0";
+    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);
+    
+    connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
+    
+    iGetSessionRequest->connect();
+}
+
+QByteArray FBLoginDialog::generateTimeStamp()
+	{
+		uint time = QDateTime::currentDateTime().toTime_t();
+	    QByteArray timestamp = QByteArray::number( time );
+	    return timestamp;
+	}
+QString FBLoginDialog::generateNONCE(const qint64 Length)
+	{
+	srand(time(0));
+	
+	//read upto milliseconds
+	QString RetString;
+
+	QString Letters(
+			"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
+
+	//append a randomly generated string to RetString
+	for (int i = 0; i < Length; i++)
+		{
+		RetString.insert((i), Letters.at(rand() % Letters.size()));
+		}
+
+	return RetString;
+	}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+FBLoginDialog::FBLoginDialog() : FBDialog () {}
+
+FBLoginDialog::FBLoginDialog(FBSession* aSession) : FBDialog(aSession) {}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// FBDialog
+
+void FBLoginDialog::load()
+{
+	qDebug()<<"Inside FBLoginDialog::load()";
+    loadLoginPage();
+}
+
+void FBLoginDialog::dialogWillDisappear()
+{
+	qDebug()<<"Inside FBLoginDialog::dialogWillDisappear()";
+  iGetSessionRequest->cancel();
+
+  if (!iSession->isConnected())
+  {
+      iSession->cancelLogin();
+  }
+}
+
+void FBLoginDialog::GetSessionKey(const QUrl& aUrl)
+{
+	qDebug()<<"Inside FBLoginDialog::GetSessionKey()";
+    const QString authToken = "auth_token=";
+    const QString url ( aUrl.toString() );
+
+    int start = url.indexOf(authToken);
+    if (start != -1)
+    {
+        QString token;
+        int end = url.indexOf("&", start);
+        int delta = start + authToken.size() + 1;
+        if (end != -1)
+        {
+            token = url.mid(delta, end - delta );
+        }
+        else
+        {
+            token = url.right(url.size() - delta + 1);
+        }
+
+        connectToGetSession(token);
+    }
+}
+void FBLoginDialog::FetchKeyFromUrl(const QUrl& aUrl)
+{
+    const QString url ( aUrl.toString() );
+    QStringList varList = url.split("{");
+    QString newvar = varList[1];
+    varList.clear();
+    varList = newvar.split(",");
+    QString session_key = varList[0];
+    QString uid = varList[1];
+    QString expires = varList[2];
+    QString secret = varList[3];
+    varList.clear();
+    varList = session_key.split(":");
+    session_key = varList[1];
+    session_key = session_key.mid(1,session_key.length()-2);
+    varList.clear();
+    varList = uid.split(":");
+    uid = varList[1];
+	varList.clear();
+	varList = expires.split(":");
+	expires = varList[1];
+	varList.clear();
+	varList = secret.split(":");
+	secret = varList[1];
+	secret = secret.mid(1,secret.length()-2);
+	varList.clear();
+    qDebug()<<"session_key"<<session_key<<"\n";
+    qDebug()<<"uid"<<uid<<"\n";
+    qDebug()<<"expires"<<expires<<"\n";
+    qDebug()<<"secret"<<secret<<"\n";
+    uint expiry = expires.toUInt();//.toUInt(&conversionError);
+    QDateTime expiration; expiration.setTime_t( expiry );
+    iSession->beginSession(session_key, secret,expiration);
+    iSession->resume();
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// slots for signals from FBRequest
+
+void FBLoginDialog::requestDidLoad(const QVariant& aResult)
+{
+	qDebug()<<"Inside FBLoginDialog::requestDidLoad";
+    bool conversionError = false;
+    QVariantHash object = aResult.toHash();
+    QString sessionKey = object.value("session_key").toString();
+    QString sessionSecret = object.value("secret").toString();
+
+    QVariant ex = object.value("expires");
+    uint expires = object.value("expires").toUInt(&conversionError);
+    QDateTime expiration; expiration.setTime_t( expires );
+
+    iSession->beginSession(sessionKey, sessionSecret,expiration);
+    iSession->resume();
+
+    dismissWithSuccess(true, true);
+}
+
+void FBLoginDialog::requestFailedWithFacebookError (const FBError& aCode )
+{
+	qDebug()<<"Inside FBLoginDialog::requestFailedWithFacebookError()";
+    dismissWithError(aCode, true);
+}
+
+void FBLoginDialog::requestFailedWithNetworkError( QNetworkReply::NetworkError aCode )
+{
+	qDebug()<<"Inside FBLoginDialog::requestFailedWithNetworkError()";
+    dismissWithError(aCode, true);
+}
+void FBLoginDialog::LoadLoginPage()
+	{
+	
+	qDebug()<<"Enter: LoadLoginPage()";
+	QString LoginUrl = kAuthorizeUrl + "?oauth_token=";
+	LoginUrl += iSession->stroauth_Token;
+	
+/*	QNetworkCookieJar* cookieJar = iWebView->page()->networkAccessManager()->cookieJar();
+	iWebView->page()->networkAccessManager()->setCookieJar(cookieJar);
+	QNetworkCookie testCookie;// "test_cookie", "1");
+	
+	testCookie.setDomain ( "twitter.com" );
+	QDateTime dt = QDateTime::currentDateTime();
+	dt.addDays(1);
+	testCookie.setExpirationDate(dt);
+	testCookie.setHttpOnly(false);
+	testCookie.setName("twittercookie");
+	testCookie.setValue("1");
+	testCookie.setPath ( "/" );
+	testCookie.setSecure ( true);
+	QList<QNetworkCookie> cookieList;
+	cookieList.append(testCookie);
+	cookieJar->setCookiesFromUrl ( cookieList, QUrl("https://www.twitter.com/") );
+	QWebSettings::globalSettings()->setOfflineStoragePath("C:\\Data");*/
+	
+	iWebView->load(LoginUrl);
+	qDebug()<<"Exit: LoadLoginPage()";
+	   
+	}
+void FBLoginDialog::GetAccessToken()
+	{
+		qDebug()<<"Inside FBLoginDialog::GetAccessToken()";
+	    Dictionary postParams;
+	    iSession->stroauth_nonce = generateNONCE(43);
+		iSession->stroauth_timestamp = generateTimeStamp();
+		
+	    postParams["oauth_consumer_key"] = kConsumerKey;
+	    postParams["oauth_nonce"] = iSession->stroauth_nonce;
+	    postParams["oauth_signature_method"] = "HMAC-SHA1";
+	    postParams["oauth_token"] = iSession->stroauth_Token;
+	    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+	    postParams["oauth_verifier"] = iSession->stroauth_verifier;
+	    postParams["oauth_version"] = "1.0";
+	    
+	    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);
+		
+	    iGetSessionRequest->connect_req("/access_token");
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/src/requestSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,567 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to handle calls to rest Server API's
+*/
+
+#include "requestSP.h"
+#include "sessionSP.h"
+#include "xmlParser.h"
+#include "errorCodes.h"
+
+#include <QNetworkRequest>
+#include <QXmlSimpleReader>
+#include <QXmlInputSource>
+#include <QCryptographicHash>
+#include <QtAlgorithms>
+#include <QDebug>
+
+#include "hash.h"
+
+#include <keys.h>
+#include <qnetworkproxy.h>
+#include <QSslConfiguration>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+static const QString kAPIVersion = "1.0";
+static const QString kAPIFormat = "XML";
+static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
+{
+    return s1.toLower() < s2.toLower();
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Static class functions
+
+FBRequest* FBRequest::request()
+{
+    return FBRequest::requestWithSession(FBSession::session());
+}
+
+FBRequest* FBRequest::requestWithSession (FBSession* aSession)
+{
+    FBRequest* request = new FBRequest(aSession);
+    return request;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+FBRequest::FBRequest(FBSession* aSession) : iSession ( aSession ), iNetworkAccessManager ( this )
+{}
+
+const QDateTime& FBRequest::timeStamp() const
+{
+    return iTimestamp;
+}
+
+void FBRequest::connect()
+{
+	qDebug()<<"Inside FBRequest::connect()";
+    //emit requestLoading();
+
+    /*QString url ;
+    url = iUrl;
+    qDebug()<<"url"<<url;*/
+   
+    QNetworkRequest request;
+   
+    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
+   	request.setSslConfiguration( config );
+    
+   	//request.setUrl(QUrl(url));
+   	QUrl myurl = kRequestTokenUrl;
+    request.setUrl(myurl);
+
+    /* from the Qt docs on QNetworkAccessManager:
+       QNetworkAccessManager by default does not have a set cache.
+       Qt provides a simple disk cache, QNetworkDiskCache, which can be used.
+
+       However we will not use it.*/
+    QString Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
+	qDebug()<<"Authorization: "<<Authorization;
+	QByteArray auth = Authorization.toUtf8();
+	qDebug()<<"auth:"<<auth;
+	request.setRawHeader("Authorization",auth);
+	const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
+	request.setHeader (QNetworkRequest::ContentTypeHeader, contentType); 
+	//request.setRawHeader("User-Agent", kUserAgent);
+    //request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
+   // request.setAttribute(QNetworkRequest::CacheSaveControlAttribute, false);
+
+    //iTimestamp = QDateTime::currentDateTime();
+
+    //if (iMethod.length())
+    //{
+      //  const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
+     //   request.setRawHeader("Content-Type", contentType.toUtf8());
+
+        /* connect all signals from iNetWorkAccessManager to this */
+        QByteArray postBody ;
+        generatePostBody (postBody);
+        postBody = "";
+        pbar = new progressbar;
+        pbar->show();
+        proxysettings();
+        QNetworkReply* reply = iNetworkAccessManager.post(request, postBody);
+
+        QObject::connect(reply, SIGNAL(finished()),  this, SLOT(networkReplyFinished()));
+        QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
+                         this, SLOT(networkReplyError(QNetworkReply::NetworkError)));
+
+    //}
+}
+void FBRequest::proxysettings()
+{
+#ifdef EMULATORTESTING
+	qDebug()<<"proxysettings";
+	
+	// Reading the keys, CSM Stubbed - START
+	QFile file("c:\\data\\DoNotShare.txt");
+	if (!file.open(QIODevice::ReadOnly))
+		{
+		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
+		return;
+		}
+	
+	QByteArray arr = file.readAll();
+	QList<QByteArray> list = arr.split(' ');
+	file.close();
+	
+	QString username(list[0]);
+	QString password(list[1]);
+	
+    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
+    QString httpPort = "3128";
+
+    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
+
+    /*==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
+}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+QString FBRequest::sha1()
+{
+	qDebug()<<"Insha1";
+	CSHA1* sha=CSHA1::NewL();
+	TBuf8<100> keyVal;
+	keyVal.Copy(_L8("sasken"));
+	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
+	//TBuf8<1024> baseString;
+	TPtrC8 hashedSig(hmac->Hash(_L8("sasken")));	
+	TBuf8<1024>bufr;
+		bufr.Copy(hashedSig);
+		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+		qDebug()<<"digest.toHex();"<<digest.toHex();
+	
+	if(hmac)
+	{
+	    delete hmac;
+	    hmac=NULL;
+	}
+/*	TBuf8<1024>bufr;
+	bufr.Copy(hashedSig);
+	QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+	qDebug()<<"digest.toHex();"<<digest.toHex();
+	qDebug()<<"digest"<<digest;*/
+	return digest.toHex();
+}
+
+bool FBRequest::isSpecialMethod() const {
+    return ( iMethod.compare("facebook.auth.getSession", Qt::CaseInsensitive) == 0
+             ||   iMethod.compare("facebook.auth.createToken", Qt::CaseInsensitive) == 0 );
+}
+
+QString FBRequest::urlForMethod (const QString& aMethod) const {
+
+	Q_UNUSED(aMethod)
+	return iSession->apiURL();
+}
+
+QString FBRequest::generateGetURL() const
+{
+	qDebug()<<"Inside FBRequest::generateGetURL()";
+    const QUrl url(iUrl);
+    const QString queryPrefix = url.hasQuery() ? "&" : "?";
+
+    QStringList pairs;
+    DictionaryIterator i(iParams);
+
+    while (i.hasNext()) {
+        i.next();
+        pairs << i.key().toUtf8() + "=" + i.value().toUtf8();
+    }
+
+    return iUrl + queryPrefix + pairs.join("&");
+}
+
+QString FBRequest::generateCallId() const {
+    QDateTime dateTime = QDateTime::currentDateTime();
+    uint secs = dateTime.toTime_t();
+    QString result = QString::number(secs, 10);
+    return result;
+}
+/*
+ *   
+  httpMethod + "&" +
+  url_encode(  base_uri ) + "&" +
+  sorted_query_params.each  { | k, v |
+      url_encode ( k ) + "%3D" +
+      url_encode ( v )
+  }.join("%26")
+ * 
+ */
+QString FBRequest::generateSig(Dictionary Params)
+{
+	QString joined;
+	joined = "POST";
+	joined += "&";
+	joined += kRequestTokenUrl.toAscii().toPercentEncoding() + "&";
+	
+	QStringList keys = Params.keys();
+	qSort(keys.begin(), keys.end(), caseInsensitiveLessThan);
+	QListIterator<QString> i(keys);
+	int count = 0;
+	while (i.hasNext())
+	{
+		count++;
+		if(count > 1)
+			joined.append("%26");
+		const QString key = i.next();
+		joined.append(key.toAscii().toPercentEncoding());
+		joined.append("%3D");
+		joined.append(Params.value(key).toAscii().toPercentEncoding());
+	}
+	qDebug()<<"joined"<<joined;
+	//uncomment for testing key
+	//joined = "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11%26oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3DQP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272323042%26oauth_version%3D1.0";
+	TBuf<1024> sid(joined.utf16());
+	
+	QByteArray digest1 = QByteArray::fromRawData((char*)sid.Ptr(),sid.Length());
+	qDebug()<<"digest1: "<<digest1;
+	TBuf8<1024>buff;//(sid);
+	buff.Copy(sid);
+	QByteArray digest2 = QByteArray::fromRawData((char*)buff.Ptr(),buff.Length());
+	qDebug()<<"digest2: "<<digest2;
+
+	//signature
+	CSHA1* sha=CSHA1::NewL();
+	//uncomment for testing key
+	//QByteArray key= "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98";
+	QByteArray key= kConsumerSecret.toUtf8();
+	key = key.toPercentEncoding();
+	key.append("&");
+	key.append(iSession->stroauth_TokenSecret.toUtf8().toPercentEncoding());
+	qDebug()<<"Key:"<<key;
+	TPtrC8 myDataDescriptor( reinterpret_cast<const TText8*> (key.constData()),key.size());
+	 
+	//Take a copy of the data
+	HBufC8* buffer12 = HBufC8::New(myDataDescriptor.Length());
+	 
+	Q_CHECK_PTR(buffer12);
+	buffer12->Des().Copy(myDataDescriptor  );
+	TPtr8 tptr = buffer12->Des();
+	
+	TBuf8<100> keyVal;
+	keyVal.Copy(tptr);
+
+	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
+
+	TPtrC8 hashedSig(hmac->Hash(buff));	
+	TBuf8<1024>bufr;
+		bufr.Copy(hashedSig);
+		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
+		qDebug()<<"digest.toHex() "<<digest.toHex();
+		QByteArray base64 = digest.toBase64();
+		qDebug()<<"Base64 Encoded  "<<base64;
+	if(hmac)
+	{
+		delete hmac;
+		hmac=NULL;
+	}
+
+	return base64;
+}
+
+void FBRequest::generatePostBody( QByteArray& body )
+{
+	qDebug()<<"Inside FBRequest::generatePostBody()";
+    QString endLine = "\r\n--" + kStringBoundary + "\r\n";
+    body.append( "--" + kStringBoundary.toUtf8() + "\r\n" ) ;
+
+
+    DictionaryIterator i (iParams);
+
+    while (i.hasNext())
+    {
+        i.next();
+
+        body.append("Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" );
+        body.append(i.value().toUtf8());
+        body.append(endLine.toUtf8());
+    }
+
+
+    if (iDataParam.size())
+    {
+        if (iDataParamPicture)
+        {
+            body.append("Content-Disposition: form-data; filename=\"photo\"\r\n" );
+            body.append("Content-Type: image/png\r\n\r\n" );
+        }
+        else
+        {
+            body.append("Content-Disposition: form-data; filename=\"data\"\r\n");
+            body.append("Content-Type: content/unknown\r\n\r\n");
+        }
+
+        body.append(iDataParam);
+        body.append(endLine.toUtf8());
+
+    }
+}
+
+void FBRequest::handleResponseData( const QByteArray& aResponseData )
+{
+	qDebug()<<"Inside FBRequest::handleResponseData()";
+    FBError error;
+    QVariant result =  parseXMLResponse( aResponseData, error);
+    if (error.code() != 0)
+    {
+        emit requestFailedWithFacebookError(error);
+    }
+    else
+    {
+        emit requestDidLoad(result);
+    }
+    
+    delete pbar;
+}
+
+void FBRequest::post( const QString& aUrl, const Dictionary& aParams)
+{
+	qDebug()<<"Inside FBRequest::post()";
+    iUrl = aUrl;
+    iParams = aParams;
+
+    iSession->send(this);
+}
+
+void FBRequest::cancel()
+{
+	qDebug()<<"Inside FBRequest::cancel()";
+}
+
+
+void FBRequest::call (const QString& aMethod, const Dictionary& aParams)
+{
+    QByteArray dataParams;
+    callWithDataParams(aMethod, aParams, dataParams, false);
+
+}
+
+void FBRequest::callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture)
+{
+	Q_UNUSED(aParams)
+	Q_UNUSED(aDataParam)
+	Q_UNUSED(aDataParamPicture)
+    iUrl = urlForMethod(aMethod);
+    iUrl +=  aMethod;
+    qDebug()<<"URL inside call with Data Params"<<iUrl;
+    //iMethod = aMethod;
+    //iParams = aParams;
+  /*  iParams["oauth_nonce"] = iSession->stroauth_nonce;
+    iParams["oauth_signature_method"] = "HMAC-SHA1";
+    iParams["oauth_timestamp"] = iSession->stroauth_timestamp;
+    iParams["oauth_consumer_key"] = kConsumerKey;
+    iParams["sig"]=iSession->stroauth_signature;
+    iParams["oauth_version"] = "1.0";*/
+    //iDataParam = aDataParam;
+   // iDataParamPicture = aDataParamPicture;
+
+  //  iParams["method"] = iMethod;
+  //  iParams["api_key"] = iSession->apiKey();
+  //  iParams["v"] = kAPIVersion;
+  //  iParams["format"] = kAPIFormat;
+
+   /* if (!isSpecialMethod())
+    {
+        iParams["session_key"] = iSession->sessionKey();
+        iParams["call_id"] = generateCallId();
+
+        if (iSession->sessionSecret().length())
+        {
+            iParams["ss"] = "1";
+        }
+    }*/
+
+    // XXX: workaround what seems to be a Qt bug with the extras-devel libraries.
+   // QString signature = generateSig(iParams);
+   // iParams["sig"] = signature;
+    // XXX: end workaround.
+    
+    iSession->send(this);
+}
+
+
+QVariant FBRequest::parseXMLResponse ( const QByteArray& aResponseData, FBError& aError)
+{
+	qDebug()<<"Inside FBRequest::handleResponseData()";
+    QXmlInputSource input;
+    input.setData(aResponseData);
+
+    FBXMLHandler handler;
+    QXmlSimpleReader parser;
+    parser.setContentHandler(&handler);
+    bool result = parser.parse(&input);
+
+    QVariant rootObject = handler.rootObject();
+
+    if (handler.parseError() || !result)
+    {
+        aError.setCode( FBRESPONSE_PARSE_ERROR );
+        aError.setDescription("parser was unable to parse the xml response from facebook server.");
+
+        return QVariant();
+    }
+    else if (handler.rootName().compare("error_response")==0)
+    {
+        QVariantHash errorDict =  rootObject.toHash();
+
+        bool result;
+        int errorCode = errorDict.value("error_code").toInt(&result);
+
+        aError.setCode( errorCode );
+        aError.setDescription( errorDict.value("error_msg").toString() );
+
+        return rootObject;
+    }
+    else
+    {
+        return rootObject;
+    }
+
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance provate slots
+void FBRequest::networkReplyError ( QNetworkReply::NetworkError aCode )
+{
+    emit requestFailedWithNetworkError(aCode );
+}
+
+void FBRequest::networkReplyFinished ()
+{
+qDebug()<<"Inside FBRequest::networkReplyFinished()";
+    QNetworkReply* reply = static_cast<QNetworkReply*> ( sender() );
+    QByteArray responseData = reply->readAll();
+    if(responseData != "")
+    	{
+			qDebug()<<"response data:"<<responseData;
+			QList<QByteArray>MyString = responseData.split('&');
+			QList<QByteArray>token = MyString[0].split('=');
+			qDebug()<<token.at(1);
+			iSession->stroauth_Token=token.at(1);
+			QList<QByteArray>token_secret = MyString[1].split('=');
+			qDebug()<<token_secret.at(1);
+			iSession->stroauth_TokenSecret=token_secret.at(1);
+		 
+			qDebug()<<"iSession->stroauth_Token"<<iSession->stroauth_Token;
+			if(iSession->stroauth_Token != "")
+			{
+				emit LoadLoginPage();
+				qDebug()<<"Signal:LoadLoginPage() is emitted";
+			}
+    	}
+}
+void FBRequest::networkReplyFinishedNew ()
+{
+qDebug()<<"Inside FBRequest::networkReplyFinishedNew()";
+    QNetworkReply* reply = static_cast<QNetworkReply*> ( sender() );
+    QByteArray responseData = reply->readAll();
+    if(responseData != "")
+    	{
+			qDebug()<<"response data:"<<responseData;
+			QList<QByteArray>MyString = responseData.split('&');
+			QList<QByteArray>token = MyString[0].split('=');
+			qDebug()<<token.at(1);
+			iSession->stroauth_Token=token.at(1);
+			QList<QByteArray>token_secret = MyString[1].split('=');
+			qDebug()<<token_secret.at(1);
+			iSession->stroauth_TokenSecret=token_secret.at(1);
+		 
+			qDebug()<<"iSession->stroauth_Token"<<iSession->stroauth_Token;
+			qDebug()<<"iSession->stroauth_TokenSecret"<<iSession->stroauth_TokenSecret;
+			iSession->save();
+    	}
+}
+void FBRequest::connect_req(QString uri)
+	{
+		qDebug()<<"Inside FBRequest::connect_req()";
+
+	    QNetworkRequest request;
+	   
+	    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
+	   	request.setSslConfiguration( config );
+	   	QUrl myurl;
+	   	QString Authorization;
+	   	if(uri == "/request_token")
+	   		{
+				myurl = kRequestTokenUrl;
+				Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
+	   		}
+	   	else
+	   		{
+				myurl = kAccessTokenUrl;
+				Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_token=\"" + iSession->stroauth_Token + "\", oauth_verifier=\"" + iSession->stroauth_verifier + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
+	   		}
+	    request.setUrl(myurl);
+
+
+	    qDebug()<<"myurl:"<<myurl;
+		qDebug()<<"Authorization: "<<Authorization;
+		QByteArray auth = Authorization.toUtf8();
+		qDebug()<<"auth:"<<auth;
+		request.setRawHeader("Authorization",auth);
+		const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
+		request.setHeader (QNetworkRequest::ContentTypeHeader, contentType); 
+
+		QByteArray postBody ;
+		generatePostBody (postBody);
+		postBody = "";
+		pbar = new progressbar;
+		pbar->show();
+		proxysettings();
+		QNetworkReply* reply = iNetworkAccessManager.post(request, postBody);
+
+		QObject::connect(reply, SIGNAL(finished()),  this, SLOT(networkReplyFinishedNew()));
+		QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),this, SLOT(networkReplyError(QNetworkReply::NetworkError)));
+
+   
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/src/sessionSP.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,254 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* class to maintian session & all credential keys.
+*/
+
+#include "sessionSP.h"
+#include "requestSP.h"
+#include <qfile.h>
+#include <QTimer>
+#include <qdebug.h>
+
+#include "keys.h"
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// global
+
+static const QString kAPIRestURL = "http://api.facebook.com/restserver.php";
+static const QString kAPIRestSecureURL = "https://api.facebook.com/restserver.php";
+
+
+static const int kMaxBurstRequests = 3;
+static const int kBurstDuration = 2;
+
+static FBSession* sharedSession = NULL;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Static class functions
+FBSession* FBSession::session()
+{
+    return sharedSession;
+}
+
+void FBSession::setSession(FBSession* aSession)
+{
+    sharedSession = aSession;
+}
+
+
+FBSession* FBSession::sessionForApplication ( const QString& aAppKey, const QString& aAppSecret, const QString& aSessionProxy)
+{
+    FBSession* session = new FBSession ( aAppKey, aAppSecret, aSessionProxy );
+    
+    return session;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+FBSession::FBSession( const QString& aAppKey, const QString& aAppSecret, const QString& aGetSessionProxy ) :
+        iApiKey (aAppKey),
+        iApiSecret ( aAppSecret ),
+        iGetSessionProxy ( aGetSessionProxy ),
+        iRequestBurstCount(0),
+        m_Client(new SmfCredMgrClient(this))	
+{
+    if (!sharedSession)
+    {
+        sharedSession = this;
+    }
+    
+}
+
+FBSession::~FBSession()
+{
+	if(m_Client){
+		delete m_Client;
+		m_Client = NULL;
+	}
+}
+
+const QString& FBSession::apiURL() const
+{
+    return kBase;
+}
+
+const QString& FBSession::apiSecureURL() const
+{
+    return kAPIRestSecureURL;
+}
+
+bool FBSession::isConnected() const
+{
+    return iSessionKey.length() > 0 ;
+}
+
+
+void FBSession::beginSession (const QString& aSessionKey, const QString& aSessionSecret, const QDateTime& aExpires )
+{
+	qDebug()<<"Inside FBSession::beginSession()";
+    iSessionKey = aSessionKey;
+    iSessionSecret = aSessionSecret;
+
+
+    iExpirationDate = aExpires;
+
+    save();
+}
+
+bool FBSession::resume()
+{
+	qDebug()<<"Inside FBSession::resume()";
+	QString fbCMRegToken = iSettings.value("FBCMRegToken").toString();
+	QDateTime fbExpiryTime = iSettings.value("FBExpiryTime").toDateTime();
+	SmfAuthParams Params;
+	if(m_Client->AuthDataSet(fbCMRegToken,fbExpiryTime,Params))
+	{
+		QByteArray accessToken = Params.value("accessToken");
+		emit sessionDidLogin( accessToken );
+        return true;
+    }
+    return false;
+}
+
+void FBSession::cancelLogin() {
+	qDebug()<<"Inside FBSession::cancelLogin()";
+    if (!isConnected()) {
+        emit sessionDidNotLogin();
+    }
+}
+
+void FBSession::logout() {
+	qDebug()<<"Inside FBSession::logout()";
+	iExpirationDate = QDateTime();
+	iSessionKey.clear();
+	iSessionSecret.clear();
+	
+	unsave();
+	
+	emit sessionDidLogout();
+}
+
+void FBSession::send (FBRequest* aRequest) {
+	qDebug()<<"Inside FBSession::send()";
+    performRequest (aRequest, true);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+void FBSession::save()
+{
+	qDebug()<<"Inside FBSession::save()";
+    SmfAuthParams Params;
+    Params.insert("ApiKey",kApiKey.toAscii());
+    Params.insert("ConsumerKey",kConsumerKey.toAscii());
+    Params.insert("ConsumerSecret",kConsumerSecret.toAscii());
+    Params.insert("oauth_Token",stroauth_Token.toAscii());
+    Params.insert("oauth_TokenSecret",stroauth_TokenSecret.toAscii());
+    Params.insert("oauth_verifier",stroauth_verifier.toAscii());
+    
+    QList<QUrl> UrlList;
+    UrlList.append(QUrl("https://api.twitter.com/oauth/"));
+
+    QStringList PluginList;
+    PluginList.append(QString("twitter.qtplugin"));
+
+    QString UID("0xEFE2EF23");
+    
+    //Currently Hardcoded with current time bcoz CM is not handling expiry time as '0' value
+    iExpirationDate = QDateTime::currentDateTime();
+    iExpirationDate.addYears(1);
+    
+    QString twCMRegToken = m_Client->StoreAuthData(Params,iExpirationDate,UrlList,PluginList,UID,true);
+    qDebug()<<"Reg token returned by auth app = "<<twCMRegToken;
+    
+    iSettings.remove("twCMRegToken");
+    iSettings.remove("twExpiryTime");
+    
+    if(twCMRegToken.size()){
+    	iSettings.setValue("twCMRegToken", twCMRegToken);
+    	iSettings.setValue("twExpiryTime", iExpirationDate);
+    }
+}
+
+void FBSession::unsave()
+{
+	qDebug()<<"Inside FBSession::unsave()";
+	//Delete saved keys from Credential Manager.
+}
+
+void FBSession::startFlushTimer()
+{
+	int t = kBurstDuration;
+    QTimer::singleShot( t, this, SLOT(requestTimerReady()));
+}
+
+void FBSession::enqueueRequest(FBRequest* aRequest)
+{
+    iRequestQueue.append(aRequest);
+    startFlushTimer();
+}
+
+bool FBSession::performRequest(FBRequest* aRequest, bool aEnqueue) {
+    // Stagger requests that happen in short bursts to prevent the server from rejecting
+    // them for making too many requests in a short time
+
+    int seconds = iLastRequestTime.secsTo( QDateTime::currentDateTime() );
+	bool burst = seconds && (seconds < kBurstDuration);
+
+	if (burst && (iRequestBurstCount > kMaxBurstRequests))
+    {
+        if (aEnqueue)
+        {
+            enqueueRequest(aRequest);
+        }
+        return false;
+    }
+    else
+    {
+        aRequest->connect();
+		if (burst) {
+			iRequestBurstCount++;
+		} else {
+            iRequestBurstCount = 1;
+            iLastRequestTime = aRequest->timeStamp();
+        }
+    }
+    return true;
+}
+
+void FBSession::flushRequestQueue()
+{
+    while ( iRequestQueue.count() ) {
+      FBRequest* request = iRequestQueue.at(0);
+      if (performRequest(request, false)) {
+          iRequestQueue.removeAt(0);
+      } else {
+        startFlushTimer();
+        break;
+      }
+    }
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance provate slots
+void FBSession::requestTimerReady()
+{
+    flushRequestQueue();
+}
+void FBSession::send_req (QString uri,FBRequest* aRequest)
+	{
+		aRequest->connect_req(uri);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/src/xmlParser.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,208 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "{License}"
+* which accompanies  this distribution, and is available
+* at the URL "{LicenseUrl}".
+*
+* Initial Contributors:
+* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Siddhartha Chandra, Sasken Communication Technologies Ltd
+* Description:
+* XML Parser class
+*/
+#include "xmlParser.h"
+
+#include <QVariantList>
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance public functions
+
+FBXMLHandler::FBXMLHandler() : iError(false)
+{
+    initWhiteSpaceHash();
+}
+
+FBXMLHandler::~FBXMLHandler()
+{
+    iWhiteSpaceAndNewLineCharSet.clear();
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// instance private functions
+
+void FBXMLHandler::initWhiteSpaceHash()
+{
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x20), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x9), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xA), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xB), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xC), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0xD), true);
+    iWhiteSpaceAndNewLineCharSet.insert(QChar(0x85), true);
+}
+
+/* methods from QXmlErrorHandler */
+bool FBXMLHandler::error(const QXmlParseException& exception)
+{
+    iParseErrorMessage = exception.message();
+    iError = true;
+    return false;
+}
+
+bool FBXMLHandler::fatalError(const QXmlParseException& exception)
+{
+    iParseErrorMessage = exception.message();
+    iError = true;
+    return false;
+}
+
+/* methods from QXmlDefaultHandler */
+bool FBXMLHandler::startElement( const QString & /*namespaceURI*/,
+                                 const QString & localName,
+                                 const QString & /*qName*/,
+                                 const QXmlAttributes & atts)
+{
+    flushCharacters();
+
+    QVariant item ;
+
+    if  (atts.value("list").compare("true")==0)
+    {
+        item = QVariantList();
+    }
+
+    iStack.append(item);
+    iNameStack.append(localName);
+
+    return true;
+}
+
+bool FBXMLHandler::characters(const QString& aText)
+{
+    iChars.append(aText);
+    return true;
+}
+
+bool FBXMLHandler::endElement( const QString & /*namespaceURI*/,
+                               const QString & /*localName*/,
+                               const QString & /*qName*/ )
+{
+    flushCharacters();
+
+    QVariant c = iStack [iStack.count() - 1] ;
+    QString name = topName();
+
+    iStack.removeLast();
+    iNameStack.removeLast();
+
+    if (!iStack.count())
+    {
+        iRootObject = c;
+        iRootName = name;
+    }
+    else
+    {
+        QVariant tC = iStack[iStack.count() - 1] ;
+        if (tC.isNull())
+        {
+            tC = QVariantHash();
+            iStack.replace(iStack.count() - 1, tC);
+        }
+
+        if (tC.type() == QVariant::List)
+        {
+            QVariantList list = tC.toList();
+            list.append( c.toHash() );
+
+            iStack.replace( iStack.count() - 1 , list);
+
+        }
+        else if (tC.type() == QVariant::Hash)
+        {
+            QVariantHash hash = tC.toHash();
+            if (c.isNull())
+            {
+                c  = QString("");
+            }
+            hash.insert( name, c );
+
+            iStack.replace( iStack.count() - 1 , hash);
+        }
+    }
+
+    return true;
+}
+
+
+/* */
+const QString& FBXMLHandler::topName() const
+{
+    return iNameStack.last();
+}
+
+QVariant FBXMLHandler::topObject(bool /*aCreate*/)
+{
+    QVariant item ;
+    {
+        iStack.replace(iStack.count() - 1, item);
+    }
+    return item;
+}
+
+QVariant FBXMLHandler::topContainer()
+{
+    if (iStack.count() < 2)
+    {
+        return QVariant();
+    }
+    else
+    {
+
+        QVariant item = iStack[iStack.count() - 2 ];
+        {
+            iStack.replace( iStack.count() - 2 , item);
+        }
+
+        return item;
+    }
+}
+
+void FBXMLHandler::flushCharacters()
+{
+    for ( int i = 0; i < iChars.length(); i ++)
+    {
+        QChar uniChar = iChars.at(i);
+
+        if (!iWhiteSpaceAndNewLineCharSet.contains(uniChar))
+        {
+
+            QVariant container;
+            if (iStack.count() >= 2)
+            {
+                container = iStack[iStack.count() - 2];
+                if (container.isNull())
+                {
+                    container = QVariantHash();
+                    iStack.replace( iStack.count() - 2 , container);
+                }
+            }
+
+            if (container.type() == QVariant::List)
+            {                
+                QVariantHash object;
+                object.insert( topName(), iChars );
+                iStack.replace (iStack.count() - 1, object);
+            } else {
+                QVariant object(iChars);
+                iStack.replace (iStack.count() - 1, object);
+            }
+            break;
+        }
+
+    }
+
+    iChars.clear();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/ui_AuthApp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,82 @@
+/********************************************************************************
+** Form generated from reading UI file 'AuthApp.ui'
+**
+** Created: Mon Sep 27 15:45: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_AUTHAPP_H
+#define UI_AUTHAPP_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QMainWindow>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_AuthAppClass
+{
+public:
+    QWidget *centralWidget;
+    QVBoxLayout *verticalLayout;
+    QPushButton *buttonForget;
+    QPushButton *pushButton;
+    QSpacerItem *verticalSpacer;
+
+    void setupUi(QMainWindow *AuthAppClass)
+    {
+        if (AuthAppClass->objectName().isEmpty())
+            AuthAppClass->setObjectName(QString::fromUtf8("AuthAppClass"));
+        AuthAppClass->resize(275, 310);
+        centralWidget = new QWidget(AuthAppClass);
+        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
+        verticalLayout = new QVBoxLayout(centralWidget);
+        verticalLayout->setSpacing(6);
+        verticalLayout->setContentsMargins(11, 11, 11, 11);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        buttonForget = new QPushButton(centralWidget);
+        buttonForget->setObjectName(QString::fromUtf8("buttonForget"));
+
+        verticalLayout->addWidget(buttonForget);
+
+        pushButton = new QPushButton(centralWidget);
+        pushButton->setObjectName(QString::fromUtf8("pushButton"));
+
+        verticalLayout->addWidget(pushButton);
+
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout->addItem(verticalSpacer);
+
+        AuthAppClass->setCentralWidget(centralWidget);
+
+        retranslateUi(AuthAppClass);
+
+        QMetaObject::connectSlotsByName(AuthAppClass);
+    } // setupUi
+
+    void retranslateUi(QMainWindow *AuthAppClass)
+    {
+        AuthAppClass->setWindowTitle(QApplication::translate("AuthAppClass", "MainWindow", 0, QApplication::UnicodeUTF8));
+        buttonForget->setText(QApplication::translate("AuthAppClass", "Logout", 0, QApplication::UnicodeUTF8));
+        pushButton->setText(QApplication::translate("AuthAppClass", "Login to Twitter", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class AuthAppClass: public Ui_AuthAppClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_AUTHAPP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/TwitterAuthApp/ui_progressbar.h	Mon Oct 11 21:59:54 2010 +0530
@@ -0,0 +1,75 @@
+/********************************************************************************
+** Form generated from reading UI file 'progressbar.ui'
+**
+** Created: Mon Sep 27 15:45:15 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_PROGRESSBAR_H
+#define UI_PROGRESSBAR_H
+
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QProgressBar>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_progressbarClass
+{
+public:
+    QVBoxLayout *verticalLayout;
+    QLabel *label;
+    QProgressBar *progressBar;
+
+    void setupUi(QWidget *progressbarClass)
+    {
+        if (progressbarClass->objectName().isEmpty())
+            progressbarClass->setObjectName(QString::fromUtf8("progressbarClass"));
+        verticalLayout = new QVBoxLayout(progressbarClass);
+        verticalLayout->setSpacing(6);
+        verticalLayout->setContentsMargins(11, 11, 11, 11);
+        verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+        label = new QLabel(progressbarClass);
+        label->setObjectName(QString::fromUtf8("label"));
+
+        verticalLayout->addWidget(label);
+
+        progressBar = new QProgressBar(progressbarClass);
+        progressBar->setObjectName(QString::fromUtf8("progressBar"));
+        progressBar->setValue(24);
+
+        verticalLayout->addWidget(progressBar);
+
+
+        retranslateUi(progressbarClass);
+
+        QMetaObject::connectSlotsByName(progressbarClass);
+    } // setupUi
+
+    void retranslateUi(QWidget *progressbarClass)
+    {
+        progressbarClass->setWindowTitle(QApplication::translate("progressbarClass", "progressbar", 0, QApplication::UnicodeUTF8));
+        label->setText(QApplication::translate("progressbarClass", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">Loading,Please wait.....</span></p></body></html>", 0, QApplication::UnicodeUTF8));
+    } // retranslateUi
+
+};
+
+namespace Ui {
+    class progressbarClass: public Ui_progressbarClass {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_PROGRESSBAR_H
--- a/example/example.pro	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/example.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -1,16 +1,19 @@
 TEMPLATE  = 	subdirs
 SUBDIRS   =	AuthApp \
-		FlickrAuthApp \
+		DemoGUI \
 		fbactivityfetcherplugin \
 		fbcontactfetcherplugin \
 		fbpostproviderplugin \
+		FlickrAuthApp \
 		flickrcontactfetcherplugin \
 		flickrgalleryplugin \
+		LastFmAuthApp \
+		lastfmmusiceventplugin \
 		lastfmmusicsearchplugin \
 		lastfmmusicserviceplugin \
 		lastfmplaylistserviceplugin \
-		lastfmmusiceventplugin \
+		LinkedInAuthApp \
 		MusicLyricsPlugin \
 		smfclientapp \
-		DemoGUI
+		TwitterAuthApp
 CONFIG += ordered
\ No newline at end of file
--- a/example/fbactivityfetcherplugin/fbactivityfetcherplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbactivityfetcherplugin/fbactivityfetcherplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -962,6 +962,14 @@
 	return m_authAppId;
 	}
 
+/**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString FBActivityProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
 
 /**
  * Method to get the unique registration ID provided by the 
@@ -986,6 +994,7 @@
 	m_serviceUrl = QUrl(QString("http://www.facebook.com"));
 	m_pluginId = "fbactivityfetcherplugin.qtplugin";
 	m_authAppId = "0xEFE2FD23";
+	m_authAppName = "AuthApp.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.activity.fetcher/v0.2");
 	QSettings iSettings;
 	m_smfRegToken = iSettings.value("FBCMRegToken").toString();
--- a/example/fbactivityfetcherplugin/fbactivityfetcherplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbactivityfetcherplugin/fbactivityfetcherplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -274,6 +274,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -298,6 +304,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/fbactivityfetcherplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbactivityfetcherplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:17
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/fbactivityfetcherplugin/qmakepluginstubs/fbactivityfetcherplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbactivityfetcherplugin/qmakepluginstubs/fbactivityfetcherplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:17
--- a/example/fbcontactfetcherplugin/fbcontactfetcherplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbcontactfetcherplugin/fbcontactfetcherplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -416,6 +416,7 @@
 		const int aPageNum , 
 		const int aItemsPerPage  )
 	{
+	Q_UNUSED(aContact)
 	Q_UNUSED(aRequest)
 	Q_UNUSED(aGroup)
 	Q_UNUSED(aPageNum)
@@ -1062,6 +1063,16 @@
 
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString FBContactProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -1084,6 +1095,7 @@
 	m_serviceUrl = QUrl(QString("http://api.facebook.com"));
 	m_pluginId = "fbcontactfetcherplugin.qtplugin";
 	m_authAppId = "0xEFE2FD23";
+	m_authAppName = "AuthApp.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.contact.fetcher/v0.2");
 	QSettings iSettings;
 	m_smfRegToken = iSettings.value("FBCMRegToken").toString();
--- a/example/fbcontactfetcherplugin/fbcontactfetcherplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbcontactfetcherplugin/fbcontactfetcherplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -302,6 +302,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -326,6 +332,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/fbcontactfetcherplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbcontactfetcherplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:17
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/fbcontactfetcherplugin/qmakepluginstubs/fbcontactfetcherplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbcontactfetcherplugin/qmakepluginstubs/fbcontactfetcherplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:17
--- a/example/fbpostproviderplugin/fbpostproviderplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbpostproviderplugin/fbpostproviderplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -1125,6 +1125,15 @@
 	}
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString FBProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -1146,6 +1155,7 @@
 	m_serviceUrl = QUrl(QString("http://api.facebook.com"));
 	m_pluginId = "fbpostproviderplugin.qtplugin";
 	m_authAppId = "0xEFE2FD23";
+	m_authAppName = "AuthApp.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.contact.posts/v0.2");
 	QSettings iSettings;
 	m_smfRegToken = iSettings.value("FBCMRegToken").toString();
--- a/example/fbpostproviderplugin/fbpostproviderplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbpostproviderplugin/fbpostproviderplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -338,6 +338,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -362,6 +368,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/fbpostproviderplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbpostproviderplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:18
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/fbpostproviderplugin/qmakepluginstubs/fbpostproviderplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/fbpostproviderplugin/qmakepluginstubs/fbpostproviderplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:18
--- a/example/flickrcontactfetcherplugin/flickrcontactfetcherplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrcontactfetcherplugin/flickrcontactfetcherplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -409,6 +409,8 @@
 		const int aPageNum , 
 		const int aItemsPerPage  )
 	{
+	Q_UNUSED(aPageNum)
+	Q_UNUSED(aItemsPerPage)
 	qDebug()<<"Inside FlickrContactFetcherPlugin::groups()";
 
 	SmfPluginError error = SmfPluginErrInvalidArguments;
@@ -466,6 +468,7 @@
 		const int aPageNum , 
 		const int aItemsPerPage  )
 	{
+	Q_UNUSED(aContact)
 #ifndef TESTINGTHISFUNCTION
 	Q_UNUSED(aRequest)
 	Q_UNUSED(aGroup)
@@ -629,7 +632,7 @@
 	if(SmfTransportOpNoError == aTransportResult)
 		{
 		qDebug()<<"No transport error";
-		
+
 #ifndef TESTINGTHISFUNCTION	
 		if(SmfContactGetFriends == aOperation)
 #else
@@ -931,6 +934,15 @@
 	}
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString FlickrProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -948,6 +960,7 @@
 	m_serviceUrl = QUrl(QString("http://api.flickr.com"));
 	m_pluginId = "flickrcontactfetcherplugin.qtplugin";
 	m_authAppId = "0xE1D8C7D7";
+	m_authAppName = "Flickr.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.contact.fetcher/v0.2");
 	QSettings iSettings;
 	m_smfRegToken = iSettings.value("CMFlickrRegToken").toString();
--- a/example/flickrcontactfetcherplugin/flickrcontactfetcherplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrcontactfetcherplugin/flickrcontactfetcherplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -276,6 +276,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -300,6 +306,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/flickrcontactfetcherplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrcontactfetcherplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:19
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/flickrcontactfetcherplugin/qmakepluginstubs/flickrcontactfetcherplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrcontactfetcherplugin/qmakepluginstubs/flickrcontactfetcherplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:19
--- a/example/flickrgalleryplugin/flickrgalleryplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrgalleryplugin/flickrgalleryplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -1403,6 +1403,15 @@
 	}
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString FlickrProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -1420,6 +1429,7 @@
 	m_serviceUrl = QUrl(QString("http://api.flickr.com"));
 	m_pluginId = "flickrgalleryplugin.qtplugin";
 	m_authAppId = "0xE1D8C7D7";
+	m_authAppName = "Flickr.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.gallery/v0.2");
 	QSettings iSettings;
 	m_smfRegToken = iSettings.value("CMFlickrRegToken").toString();
--- a/example/flickrgalleryplugin/flickrgalleryplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrgalleryplugin/flickrgalleryplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -285,6 +285,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -303,6 +309,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/flickrgalleryplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrgalleryplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:19
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/flickrgalleryplugin/qmakepluginstubs/flickrgalleryplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/flickrgalleryplugin/qmakepluginstubs/flickrgalleryplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:19
--- a/example/lastfmmusiceventplugin/lastfmmusiceventplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusiceventplugin/lastfmmusiceventplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -185,6 +185,7 @@
 	{
 		Q_UNUSED(aItemsPerPage);
 		Q_UNUSED(aPageNum);
+		Q_UNUSED(aLocation)
 		
 		SmfPluginError error = SmfPluginErrUserNotLoggedIn;
 		 	
@@ -427,6 +428,7 @@
 			const int aPageNum ,
 			const int aItemsPerPage )
 	{
+		Q_UNUSED(aPageNum)
 		Q_UNUSED(aItemsPerPage);
 		SmfPluginError error = SmfPluginErrUserNotLoggedIn;
 		writeLog("MusicEventPlugin::events()");
@@ -915,10 +917,22 @@
 		QStringList & aArguments, 
 		QIODevice::OpenModeFlag aMode ) const
 	{
+	Q_UNUSED(aProgram)
+	Q_UNUSED(aArguments)
+	Q_UNUSED(aMode)
 	return m_authAppId;
 	}
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString MusicProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -939,6 +953,7 @@
 	  m_supportedLanguages << "English" ;
 	  m_pluginId =    "lastfmmusiceventplugin.qtplugin";
 	  m_authAppId =   "0xE1D8C7D8";
+	  m_authAppName = "LastFm.exe";
 	  QSettings iSettings;
 	  m_smfRegToken = iSettings.value("CMLastFmRegToken").toString();
 	  m_validity = iSettings.value("LastFmExpiryTime").toDateTime();
--- a/example/lastfmmusiceventplugin/lastfmmusiceventplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusiceventplugin/lastfmmusiceventplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -266,6 +266,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -286,6 +292,7 @@
 	QStringList m_supportedLanguages;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QDateTime m_validity;
 	};
--- a/example/lastfmmusiceventplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusiceventplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:20
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/lastfmmusiceventplugin/qmakepluginstubs/lastfmmusiceventplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusiceventplugin/qmakepluginstubs/lastfmmusiceventplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:20
--- a/example/lastfmmusicsearchplugin/lastfmmusicsearchplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicsearchplugin/lastfmmusicsearchplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -233,6 +233,7 @@
 	qDebug()<<"Valid arguments";
 	
 	gPageNum = aPageNum;
+	qDebug()<<"Pagenumber = "<<gPageNum;
 	gItemsPerPage = aItemsPerPage;
 
 	// Get the key sets from SMF Plugin Utility class.
@@ -1391,6 +1392,16 @@
 
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString LastFmMusicSearchProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -1412,10 +1423,11 @@
 	m_description = "Last.fm music search plugin description";
 	m_serviceUrl = QUrl(QString("http://www.last.fm"));
 	m_pluginId = "lastfmmusicsearchplugin.qtplugin";
-	m_authAppId = "0x12345678";
+	m_authAppId =   "0xE1D8C7D8";
+	m_authAppName = "LastFm.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.music.search/v0.2");
 	QSettings iSettings;
-	m_smfRegToken = iSettings.value("LastFmRegToken").toString();
+	m_smfRegToken = iSettings.value("CMLastFmRegToken").toString();
 	m_validity = iSettings.value("LastFmExpiryTime").toDateTime();
 	}
 
--- a/example/lastfmmusicsearchplugin/lastfmmusicsearchplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicsearchplugin/lastfmmusicsearchplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -302,6 +302,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
@@ -326,6 +332,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/lastfmmusicsearchplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicsearchplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:20
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/lastfmmusicsearchplugin/qmakepluginstubs/lastfmmusicsearchplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicsearchplugin/qmakepluginstubs/lastfmmusicsearchplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:20
--- a/example/lastfmmusicserviceplugin/lastfmmusicserviceplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicserviceplugin/lastfmmusicserviceplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -476,7 +476,8 @@
 	SmfPluginError error = SmfPluginErrInvalidArguments;
 
 	// invalid arguments
-	if( aPageNum < 0 || aItemsPerPage < 0 || aVenue.name().isEmpty() )
+	//if( aPageNum < 0 || aItemsPerPage < 0 || aVenue.name().isEmpty() ) kindly check this
+	if( aPageNum < 0 || aItemsPerPage < 0)
 		{
 		qDebug()<<"Invalid arguments";
 		return error;
@@ -1567,6 +1568,16 @@
 
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString LastFmMusicServiceProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -1588,10 +1599,11 @@
 	m_description = "Last.fm music service plugin description";
 	m_serviceUrl = QUrl(QString("http://www.last.fm"));
 	m_pluginId = "lastfmmusicserviceplugin.qtplugin";
-	m_authAppId = "0x12345678";
+	m_authAppId =   "0xE1D8C7D8";
+	m_authAppName = "LastFm.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.music.service/v0.2");
 	QSettings iSettings;
-	m_smfRegToken = iSettings.value("LastFmRegToken").toString();
+	m_smfRegToken = iSettings.value("CMLastFmRegToken").toString();
 	m_validity = iSettings.value("LastFmExpiryTime").toDateTime();
 	}
 
--- a/example/lastfmmusicserviceplugin/lastfmmusicserviceplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicserviceplugin/lastfmmusicserviceplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -327,6 +327,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for
@@ -351,6 +357,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/lastfmmusicserviceplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicserviceplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:21
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/lastfmmusicserviceplugin/qmakepluginstubs/lastfmmusicserviceplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmmusicserviceplugin/qmakepluginstubs/lastfmmusicserviceplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:21
--- a/example/lastfmplaylistserviceplugin/lastfmplaylistserviceplugin.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmplaylistserviceplugin/lastfmplaylistserviceplugin.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -133,6 +133,7 @@
 	
 	gPageNum = aPageNum;
 	gItemsPerPage = aItemsPerPage;
+	qDebug()<<"Pagenumber = "<<gPageNum;
 
 	// Get the key sets from SMF Plugin Utility class.
 	QString apiKey;
@@ -881,6 +882,16 @@
 
 
 /**
+ * Method to get the authentication application process name
+ * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+ */
+QString LastFmPlaylistServiceProviderBase::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+
+/**
  * Method to get the unique registration ID provided by the 
  * Smf for authorised plugins
  * @return The unique registration ID/token provided by the Smf for 
@@ -902,10 +913,11 @@
 	m_description = "Last.fm music playlist plugin description";
 	m_serviceUrl = QUrl(QString("http://www.last.fm"));
 	m_pluginId = "lastfmplaylistserviceplugin.qtplugin";
-	m_authAppId = "0x12345678";
+	m_authAppId =   "0xE1D8C7D8";
+	m_authAppName = "LastFm.exe";
 	m_supportedInterfaces.append("org.symbian.smf.plugin.music.playlist/v0.2");
 	QSettings iSettings;
-	m_smfRegToken = iSettings.value("LastFmRegToken").toString();
+	m_smfRegToken = iSettings.value("CMLastFmRegToken").toString();
 	m_validity = iSettings.value("LastFmExpiryTime").toDateTime();
 	}
 
--- a/example/lastfmplaylistserviceplugin/lastfmplaylistserviceplugin.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmplaylistserviceplugin/lastfmplaylistserviceplugin.h	Mon Oct 11 21:59:54 2010 +0530
@@ -252,6 +252,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const;
 
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * Method to get the unique registration ID provided by the
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for
@@ -276,6 +282,7 @@
 	QImage m_applicationIcon;
 	QString m_pluginId;
 	QString m_authAppId;
+	QString m_authAppName;
 	QString m_smfRegToken;
 	QList<QString> m_supportedInterfaces;
 	QStringList m_supportedLangs;
--- a/example/lastfmplaylistserviceplugin/plugin_commonU.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmplaylistserviceplugin/plugin_commonU.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 ; ==============================================================================
-; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-23T11:35:50
+; Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:21
 ; This file is generated by qmake and should not be modified by the
 ; user.
 ;  Name        : plugin_commonU.def
--- a/example/lastfmplaylistserviceplugin/qmakepluginstubs/lastfmplaylistserviceplugin.qtplugin	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/lastfmplaylistserviceplugin/qmakepluginstubs/lastfmplaylistserviceplugin.qtplugin	Mon Oct 11 21:59:54 2010 +0530
@@ -1,1 +1,1 @@
-This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-23T11:35:50
+This file is a Qt plugin stub file. The real Qt plugin is located in \sys\bin. Created:2010-09-28T11:58:21
--- a/example/smfclientapp/smfclientapp.loc	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/smfclientapp/smfclientapp.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:23
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/smfclientapp/smfclientapp.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/smfclientapp/smfclientapp.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:23
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/smfclientapp/smfclientapp_reg.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/smfclientapp/smfclientapp_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:44
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:23
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/example/smfclientapp/ui_displaywidget.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/smfclientapp/ui_displaywidget.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'displaywidget.ui'
 **
-** Created: Wed Sep 22 18:28:30 2010
+** Created: Mon Sep 27 15:45:11 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/example/smfclientapp/ui_posttestui.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/smfclientapp/ui_posttestui.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'posttestui.ui'
 **
-** Created: Wed Sep 22 18:28:30 2010
+** Created: Mon Sep 27 15:45:10 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/example/smfclientapp/ui_smfclientapp.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/example/smfclientapp/ui_smfclientapp.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'smfclientapp.ui'
 **
-** Created: Wed Sep 22 18:28:33 2010
+** Created: Mon Sep 27 15:45:13 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
--- a/smf/smf.pro	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smf.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -1,4 +1,5 @@
 TEMPLATE  = 	subdirs
 SUBDIRS   =	smfcredentialmgr \
+		smfsettingsui \
 		smfservermodule 
 CONFIG += ordered
--- a/smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -3,13 +3,15 @@
 	?StoreRSAKeys@SmfCredMgrClient@@QAE?AVQString@@V2@0VQDateTime@@@Z @ 2 NONAME ; class QString SmfCredMgrClient::StoreRSAKeys(class QString, class QString, class QDateTime)
 	?DeleteRSAKey@SmfCredMgrClient@@QAEXVQString@@@Z @ 3 NONAME ; void SmfCredMgrClient::DeleteRSAKey(class QString)
 	?CheckPluginAuthentication@SmfCredMgrClient@@QBE_NVQString@@@Z @ 4 NONAME ; bool SmfCredMgrClient::CheckPluginAuthentication(class QString) const
-	??_ESmfCredMgrClient@@UAE@I@Z @ 5 NONAME ; SmfCredMgrClient::~SmfCredMgrClient(unsigned int)
-	?SignMessage@SmfCredMgrClient@@QAE?AW4SMFCredMgrErrorCode@@VQString@@0AAV3@W4SmfSignatureMethod@@@Z @ 6 NONAME ; enum SMFCredMgrErrorCode SmfCredMgrClient::SignMessage(class QString, class QString, class QString &, enum SmfSignatureMethod)
-	?AuthenticatedPluginList@SmfCredMgrClient@@QBE?AVQStringList@@VQString@@@Z @ 7 NONAME ; class QStringList SmfCredMgrClient::AuthenticatedPluginList(class QString) const
-	?AuthDataSet@SmfCredMgrClient@@QBE_NVQString@@VQDateTime@@AAV?$QMap@VQByteArray@@V1@@@@Z @ 8 NONAME ; bool SmfCredMgrClient::AuthDataSet(class QString, class QDateTime, class QMap<class QByteArray, class QByteArray> &) const
-	??1SmfCredMgrClient@@UAE@XZ @ 9 NONAME ; SmfCredMgrClient::~SmfCredMgrClient(void)
-	?ChangePluginIDList@SmfCredMgrClient@@QAEXVQString@@_N0@Z @ 10 NONAME ; void SmfCredMgrClient::ChangePluginIDList(class QString, bool, class QString)
-	?StoreAuthData@SmfCredMgrClient@@QAE?AVQString@@V?$QMap@VQByteArray@@V1@@@VQDateTime@@V?$QList@VQUrl@@@@VQStringList@@V2@_N@Z @ 11 NONAME ; class QString SmfCredMgrClient::StoreAuthData(class QMap<class QByteArray, class QByteArray>, class QDateTime, class QList<class QUrl>, class QStringList, class QString, bool)
-	??0SmfCredMgrClient@@QAE@PAVQObject@@@Z @ 12 NONAME ; SmfCredMgrClient::SmfCredMgrClient(class QObject *)
-	?GenerateNONCE@SmfCredMgrClient@@QAE?AVQString@@_J@Z @ 13 NONAME ; class QString SmfCredMgrClient::GenerateNONCE(long long)
+	?DeleteAuthData@SmfCredMgrClient@@QAE?AW4SMFCredMgrErrorCode@@ABVQString@@0ABVQDateTime@@@Z @ 5 NONAME ; enum SMFCredMgrErrorCode SmfCredMgrClient::DeleteAuthData(class QString const &, class QString const &, class QDateTime const &)
+	?CheckServiceAuthorization@SmfCredMgrClient@@QAE_NABVQString@@@Z @ 6 NONAME ; bool SmfCredMgrClient::CheckServiceAuthorization(class QString const &)
+	??_ESmfCredMgrClient@@UAE@I@Z @ 7 NONAME ; SmfCredMgrClient::~SmfCredMgrClient(unsigned int)
+	?SignMessage@SmfCredMgrClient@@QAE?AW4SMFCredMgrErrorCode@@VQString@@0AAV3@W4SmfSignatureMethod@@@Z @ 8 NONAME ; enum SMFCredMgrErrorCode SmfCredMgrClient::SignMessage(class QString, class QString, class QString &, enum SmfSignatureMethod)
+	?AuthenticatedPluginList@SmfCredMgrClient@@QBE?AVQStringList@@VQString@@@Z @ 9 NONAME ; class QStringList SmfCredMgrClient::AuthenticatedPluginList(class QString) const
+	?AuthDataSet@SmfCredMgrClient@@QBE_NVQString@@VQDateTime@@AAV?$QMap@VQByteArray@@V1@@@@Z @ 10 NONAME ; bool SmfCredMgrClient::AuthDataSet(class QString, class QDateTime, class QMap<class QByteArray, class QByteArray> &) const
+	??1SmfCredMgrClient@@UAE@XZ @ 11 NONAME ; SmfCredMgrClient::~SmfCredMgrClient(void)
+	?ChangePluginIDList@SmfCredMgrClient@@QAEXVQString@@_N0@Z @ 12 NONAME ; void SmfCredMgrClient::ChangePluginIDList(class QString, bool, class QString)
+	?StoreAuthData@SmfCredMgrClient@@QAE?AVQString@@V?$QMap@VQByteArray@@V1@@@VQDateTime@@V?$QList@VQUrl@@@@VQStringList@@V2@_N@Z @ 13 NONAME ; class QString SmfCredMgrClient::StoreAuthData(class QMap<class QByteArray, class QByteArray>, class QDateTime, class QList<class QUrl>, class QStringList, class QString, bool)
+	??0SmfCredMgrClient@@QAE@PAVQObject@@@Z @ 14 NONAME ; SmfCredMgrClient::SmfCredMgrClient(class QObject *)
+	?GenerateNONCE@SmfCredMgrClient@@QAE?AVQString@@_J@Z @ 15 NONAME ; class QString SmfCredMgrClient::GenerateNONCE(long long)
 
--- a/smf/smfcredentialmgr/smfcredmgrclient/eabi/smfcredmgrclientu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/eabi/smfcredmgrclientu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -4,16 +4,18 @@
 	_ZN16SmfCredMgrClient12StoreRSAKeysE7QStringS0_9QDateTime @ 3 NONAME
 	_ZN16SmfCredMgrClient13GenerateNONCEEx @ 4 NONAME
 	_ZN16SmfCredMgrClient13StoreAuthDataE4QMapI10QByteArrayS1_E9QDateTime5QListI4QUrlE11QStringList7QStringb @ 5 NONAME
-	_ZN16SmfCredMgrClient18ChangePluginIDListE7QStringbS0_ @ 6 NONAME
-	_ZN16SmfCredMgrClientC1EP7QObject @ 7 NONAME
-	_ZN16SmfCredMgrClientC2EP7QObject @ 8 NONAME
-	_ZN16SmfCredMgrClientD0Ev @ 9 NONAME
-	_ZN16SmfCredMgrClientD1Ev @ 10 NONAME
-	_ZN16SmfCredMgrClientD2Ev @ 11 NONAME
-	_ZNK16SmfCredMgrClient11AuthDataSetE7QString9QDateTimeR4QMapI10QByteArrayS3_E @ 12 NONAME
-	_ZNK16SmfCredMgrClient23AuthenticatedPluginListE7QString @ 13 NONAME
-	_ZNK16SmfCredMgrClient25CheckPluginAuthenticationE7QString @ 14 NONAME
-	_ZNK16SmfCredMgrClient7URLListE7QString @ 15 NONAME
-	_ZTI16SmfCredMgrClient @ 16 NONAME
-	_ZTV16SmfCredMgrClient @ 17 NONAME
+	_ZN16SmfCredMgrClient14DeleteAuthDataERK7QStringS2_RK9QDateTime @ 6 NONAME
+	_ZN16SmfCredMgrClient18ChangePluginIDListE7QStringbS0_ @ 7 NONAME
+	_ZN16SmfCredMgrClient25CheckServiceAuthorizationERK7QString @ 8 NONAME
+	_ZN16SmfCredMgrClientC1EP7QObject @ 9 NONAME
+	_ZN16SmfCredMgrClientC2EP7QObject @ 10 NONAME
+	_ZN16SmfCredMgrClientD0Ev @ 11 NONAME
+	_ZN16SmfCredMgrClientD1Ev @ 12 NONAME
+	_ZN16SmfCredMgrClientD2Ev @ 13 NONAME
+	_ZNK16SmfCredMgrClient11AuthDataSetE7QString9QDateTimeR4QMapI10QByteArrayS3_E @ 14 NONAME
+	_ZNK16SmfCredMgrClient23AuthenticatedPluginListE7QString @ 15 NONAME
+	_ZNK16SmfCredMgrClient25CheckPluginAuthenticationE7QString @ 16 NONAME
+	_ZNK16SmfCredMgrClient7URLListE7QString @ 17 NONAME
+	_ZTI16SmfCredMgrClient @ 18 NONAME
+	_ZTV16SmfCredMgrClient @ 19 NONAME
 
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -35,30 +35,24 @@
 		QList<QUrl> URLList, QStringList PluginList, QString AuthAppId,
 		bool Flag)
 	{
-	QString qs = NULL;
+	QString regToken;
+	
 	if (!(Set.isEmpty() || URLList.isEmpty() || PluginList.isEmpty()
 			|| AuthAppId.isEmpty() || Validity.isNull()))
 		{
-		QT_TRAP_THROWING(qs  = m_SmfClientPrivate->storeAuthDataL(Set, Validity, URLList,
-					PluginList, AuthAppId, Flag));
+		QT_TRAP_THROWING( regToken = m_SmfClientPrivate->storeAuthDataL(Set, Validity, URLList,
+				PluginList, AuthAppId, Flag) );
 		}
-	return qs;
+	return regToken;
 	}
 
 QStringList SmfCredMgrClient::AuthenticatedPluginList(QString RegistrationToken) const
 	{
 	QStringList List;
-	if (RegistrationToken.isEmpty())
-		{
-		//return the empty list
-		return List;
-		}
-	else
-		{
+	if (!RegistrationToken.isEmpty())
 		QT_TRAP_THROWING( m_SmfClientPrivate->authenticatedPluginListL(RegistrationToken, List));
-		return List;
-		}
-	
+
+	return List;
 	}
 
 QList<QUrl> SmfCredMgrClient::URLList(QString PluginID) const
@@ -87,54 +81,62 @@
 
 bool SmfCredMgrClient::CheckPluginAuthentication(QString PluginID) const
 	{
-	bool tb = false;
+	bool result = false;
 	if (!(PluginID.isEmpty()))
 		{
-		QT_TRAP_THROWING (tb = m_SmfClientPrivate->isPluginAuthenticatedL(PluginID));
+		TBool check = EFalse;
+		QT_TRAP_THROWING ( check =  m_SmfClientPrivate->isPluginAuthenticatedL(PluginID) );
+		if(check)
+			result = true;
+		else
+			result = false;
 		}
-	return tb;
+	return result;
 	}
 
 bool SmfCredMgrClient::AuthDataSet(QString RegToken, QDateTime Validity,
 		SmfAuthParams& AuthTokenSet) const
 	{
+	bool datastored = false;
 	if (!(RegToken.isEmpty() || Validity.isNull()))
 		{
 		TBool Flag = EFalse;
 		QT_TRAP_THROWING ( Flag = m_SmfClientPrivate->AuthDataSetL(RegToken, Validity, AuthTokenSet));
 		if (Flag)
-			return true;
+			datastored = true;
 		else
-			return false;
+			datastored = false;
 		}
 	else
 		{
 		AuthTokenSet.clear();
-		return false;
 		}
+	
+	return datastored;
 	}
 
 QString SmfCredMgrClient::StoreRSAKeys(const QString KeyLabel,
 		const QString keydata, const QDateTime Validity)
 	{
-	QString qs = NULL;
+	QString retData;
+	
 	if (!(KeyLabel.isEmpty() || keydata.isEmpty()) && Validity.isValid())
 		{
-		QT_TRAP_THROWING (qs = m_SmfClientPrivate->storeRSAKeysL(KeyLabel, keydata, Validity));
+		QT_TRAP_THROWING ( retData = m_SmfClientPrivate->storeRSAKeysL(KeyLabel, keydata, Validity) );
 		}
-	return qs;
+	return retData;
 	}
 
 SMFCredMgrErrorCode SmfCredMgrClient::SignMessage(QString Message, QString Key,
 		QString& Signature, SmfSignatureMethod AlgorithmUsed)
 	{
-	SMFCredMgrErrorCode ec = SmfErrBadParameter;
+	SMFCredMgrErrorCode errorCode = SmfErrBadParameter;
 	if (!(Message.isEmpty() || Key.isEmpty()))
 		{
-		QT_TRAP_THROWING ( ec = m_SmfClientPrivate->signMessageL(Message, Key, 
-				Signature,AlgorithmUsed));
+		QT_TRAP_THROWING ( errorCode =  m_SmfClientPrivate->signMessageL(Message, Key, Signature,
+				AlgorithmUsed) );
 		}
-	return ec;
+	return errorCode;
 	}
 
 void SmfCredMgrClient::DeleteRSAKey(QString KeyLabel)
@@ -144,3 +146,38 @@
 		m_SmfClientPrivate->deleteRSAKey(KeyLabel);
 		}
 	}
+
+bool SmfCredMgrClient::CheckServiceAuthorization( const QString& AuthAppId )
+	{
+	bool isAuthorised = false;
+	if (!AuthAppId.isEmpty())
+		{
+		TBool Flag = EFalse;
+		QT_TRAP_THROWING ( Flag = m_SmfClientPrivate->CheckServiceAuthorizationL(AuthAppId));
+		if (Flag)
+			isAuthorised = true;
+		else
+			isAuthorised = false;
+		}
+	
+	return isAuthorised;
+	}
+
+SMFCredMgrErrorCode SmfCredMgrClient::DeleteAuthData( const QString& AuthAppId,
+		const QString& RegToken, const QDateTime& Validity )
+	{
+	SMFCredMgrErrorCode errorCode = SmfErrBadParameter;
+	
+	if (!(AuthAppId.isEmpty() || RegToken.isEmpty() || Validity.isNull()))
+		{
+		TBool Flag = EFalse;
+		QT_TRAP_THROWING ( Flag = m_SmfClientPrivate->DeleteAuthDataL(AuthAppId, RegToken, Validity));
+		if (Flag)
+			errorCode = SmfErrNone;
+		else
+			errorCode = SmfErrUnAutherised;
+		}
+	
+	return errorCode;
+	}
+
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.h	Mon Oct 11 21:59:54 2010 +0530
@@ -96,7 +96,7 @@
 
 	/**
 	 * API to update the list of authenticated plugins-add, remove, update to plugins
-	 * @param NewPluginID ID of the new plugin
+	 * @param NewPluginID ID of the new plugin 
 	 * @param Flag flag to enable or disable the plugin
 	 * @param OldPluginID ID of the old plugin to be replaced
 	 * @todo - should return an error code to indicate error while changing the list.
@@ -110,7 +110,7 @@
 	 * @param PluginList The plugin list to be set
 	 * @param AuthAppId The Authentication Application Id
 	 * @param Flag flag to enable or disable the plugins
-	 * @return The registration token that completes authentication, its a NULL string if the
+	 * @return The registration token that completes authentication, its a NULL string if the 
 	 *   API fails due to any wrong argument
 	 */
 	QString StoreAuthData(SmfAuthParams Set,
@@ -136,15 +136,33 @@
 	 * @param Signature The signed message is an output argument
 	 * @param AlgorithmUsed The algorithm used for signing
 	 * return Smf defined errorcode
-	 * @todo - RSA Signing is falgged-put for time being.
+	 * @todo - RSA Signing is falgged-put for time being. 
 	 */
 	SMFCredMgrErrorCode SignMessage(QString Message,
 			QString Key, QString& Signature, SmfSignatureMethod AlgorithmUsed);
 	/**
-	 * API To delete the RSA Key from the Key Store
+	 * API To delete the RSA Key from the Key Store 
 	 * @param KeyLabel The Label of key pair. This is the value returned while StoreRSAKeys().
 	 */
 	void DeleteRSAKey(QString KeyLabel);
+	
+	/**
+	 * API to check if a particular service is logged in or not (ie, key sets 
+	 * of a service is saved in credential manager or not)
+	 * @param AuthAppId The Authentication Application Id
+	 * @return true if service is logged in else false
+	 */
+	bool CheckServiceAuthorization( const QString& AuthAppId );
+	
+	/**
+	 * API to delete all data related to an auth app i.e URL list for Plugins, List of Plugins.etc.
+	 * @param AuthAppId The Authentication Application Id
+	 * @param RegToken Registration Token obtained from SMF while storing this Auth Data set
+	 * @param Validity Time by which the Auth set will expire
+	 * @return Smf defined errorcode of the operation
+	 */
+	SMFCredMgrErrorCode DeleteAuthData( const QString& AuthAppId,
+			const QString& RegToken, const QDateTime& Validity );
 
 private:
 	/**
@@ -152,7 +170,6 @@
 	 */
 #ifdef Q_OS_SYMBIAN
 	CSmfCredMgrClientSymbian* m_SmfClientPrivate;
-	//friend class CSmfCredMgrClientSymbian;
 #endif
 
 	};
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -40,9 +40,7 @@
     	UserEnvironment \
     	ReadDeviceData \
     	WriteDeviceData
-  	    	
 }
-
 symbian::LIBS += -leuser \
     -lestor \
     -lefsrv \
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -25,8 +25,7 @@
 
 CSmfCredMgrClientSymbian::CSmfCredMgrClientSymbian(
 		SmfCredMgrClient* aPublicImpl) :
-		CActive(EPriorityStandard),
-		iPublicImpl(aPublicImpl) 
+	CActive(EPriorityStandard), iPublicImpl(aPublicImpl)
 	{
 
 	}
@@ -543,3 +542,90 @@
 
 	iSession.RequestService(ESmfDeleteKeys, args);
 	}
+
+TBool CSmfCredMgrClientSymbian::CheckServiceAuthorizationL( const QString& AuthAppId )
+	{
+	RDebug::Printf("+In CSmfCredMgrClientSymbian::CheckServiceAuthorizationL()");
+	
+	//create buffer to serialize data
+	HBufC* authAppIdDes = qt_QString2HBufC(AuthAppId);
+	CleanupStack::PushL(authAppIdDes);
+	
+	TPtr authAppIdPtr = authAppIdDes->Des();
+	TIpcArgs args;
+	args.Set(0, &authAppIdPtr);
+	
+	// to get the data from server, we create a space.
+	HBufC8* retBuf = HBufC8::NewL(10);
+	CleanupStack::PushL(retBuf);
+
+	TPtr8 outputptr = retBuf->Des();
+	args.Set(1, &outputptr);
+
+	iSession.RequestService(ESmfCheckServiceAuthorization, args);
+	
+	TLex8 iLex = TLex8(outputptr);
+	TBool value = EFalse;
+	iLex.Val(value);
+
+	CleanupStack::PopAndDestroy(retBuf);
+	CleanupStack::PopAndDestroy(authAppIdDes);
+
+	return value;	
+	}
+
+TBool CSmfCredMgrClientSymbian::DeleteAuthDataL( const QString& AuthAppId, const QString& RegToken, 
+		const QDateTime& Validity )
+	{
+	RDebug::Printf("+In DeleteAuthDataL()");
+	CSmfFetchAuthTokenSet* deleteAuthTokenParams =
+			new (ELeave) CSmfFetchAuthTokenSet;
+
+	CleanupStack::PushL(deleteAuthTokenParams);
+
+	//fill the input params
+	deleteAuthTokenParams->iRegistrationToken = qt_QString2HBufC(RegToken);
+	deleteAuthTokenParams->iValidity = Validity.toTime_t();
+
+	//create buffer to serialize data
+	CBufFlat* buf = CBufFlat::NewL(KMaxBufSize);
+	CleanupStack::PushL(buf);
+	RBufWriteStream stream(*buf);
+	CleanupClosePushL(stream);
+
+	deleteAuthTokenParams->ExternalizeL(stream);
+	stream.CommitL();
+
+	TPtr8 bufPtr = buf->Ptr(0);
+
+	TIpcArgs args;
+	args.Set(0, &bufPtr);
+	
+	//create buffer to serialize data
+	HBufC* authAppIdDes = qt_QString2HBufC(AuthAppId);
+	CleanupStack::PushL(authAppIdDes);
+	
+	TPtr authAppIdPtr = authAppIdDes->Des();
+	args.Set(1, &authAppIdPtr);
+	
+	// to get the data from server, we create a space.
+	HBufC8* retBuf = HBufC8::NewL(10);
+	CleanupStack::PushL(retBuf);
+
+	TPtr8 outputptr = retBuf->Des();
+	args.Set(2, &outputptr);
+
+	iSession.RequestService(EDeleteAuthData, args);
+	
+	TLex8 iLex = TLex8(outputptr);
+	TBool value = EFalse;
+	iLex.Val(value);
+
+	CleanupStack::PopAndDestroy(retBuf);
+	CleanupStack::PopAndDestroy(authAppIdDes);
+	CleanupStack::PopAndDestroy(&stream);
+	CleanupStack::PopAndDestroy(buf);
+	CleanupStack::PopAndDestroy(deleteAuthTokenParams);
+
+	return value;		
+	}
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.h	Mon Oct 11 21:59:54 2010 +0530
@@ -158,6 +158,24 @@
 	 * @param KeyLabel The Label of key pair. This is the value returned while StoreRSAKeys().
 	 */
 	void deleteRSAKey(QString KeyLabel);
+	
+	/**
+	 * API to check if a particular service is logged in or not (ie, key sets 
+	 * of a service is saved in credential manager or not)
+	 * @param AuthAppId The Authentication Application Id
+	 * @return ETrue if service is logged in else EFalse
+	 */
+	TBool CheckServiceAuthorizationL( const QString& AuthAppId );
+	
+	/**
+	 * API to delete all data related to an auth app i.e URL list for Plugins, List of Plugins.etc.
+	 * @param AuthAppId The Authentication Application Id
+	 * @param RegToken Registration Token obtained from SMF while storing this Auth Data set
+	 * @param Validity Time by which the Auth set will expire
+	 * @return ETrue if service is data is deleted else EFalse
+	 */
+	TBool DeleteAuthDataL( const QString& AuthAppId, const QString& RegToken, 
+			const QDateTime& Validity );
 
 protected:
 	// Functions from base classes
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientsession.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientsession.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -101,10 +101,9 @@
 	SendReceive(aRequestType, aStatus);
 	}
 
-void RSmfCredMgrClientSession::RequestService(
+TInt RSmfCredMgrClientSession::RequestService(
 		TCredentialServerRequestID aRequestType, const TIpcArgs &aArgs)
 	{
-	TInt err = SendReceive(aRequestType, aArgs);
-
+	return SendReceive(aRequestType, aArgs);
 	}
 
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientsession.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientsession.h	Mon Oct 11 21:59:54 2010 +0530
@@ -61,7 +61,7 @@
 	/**
 	 * Issue request to server using SendReceive()
 	 */
-	void RequestService(TCredentialServerRequestID aRequestType,
+	TInt RequestService(TCredentialServerRequestID aRequestType,
 			const TIpcArgs &aArgs);
 
 	};
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.h	Mon Oct 11 21:59:54 2010 +0530
@@ -17,7 +17,6 @@
 #ifndef SMFQTSYMBIANCONVERSIONUTILS_H_
 #define SMFQTSYMBIANCONVERSIONUTILS_H_
 
-#include <QObject>
 #include <QUrl>
 #include <QDateTime>
 #include <private/qcore_symbian_p.h>
--- a/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrcommon.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrcommon.h	Mon Oct 11 21:59:54 2010 +0530
@@ -14,19 +14,19 @@
  */
 /**
  *  @section CredentialMgr_info Implementation Information
- *  Currently there are 9 Apis exposed by the CredMgr Client.
- *
- *  The client is a Dll which will be used by Apps to get the CredMgr services.
- *  The server is a seperate EXE(process).
- *
+ *  Currently there are 9 Apis exposed by the CredMgr Client. 
+ *  
+ *  The client is a Dll which will be used by Apps to get the CredMgr services. 
+ *  The server is a seperate EXE(process). 
+ *  
  *  There is also a static LIB SmfCredMgrCommon which contains data structures that are
- *  common between the server-client.
- *
+ *  common between the server-client. 
+ * 
  *  Currently data is given to server to store in a Database using @ref storeAuthData()
- *  and the other APIs are used to retrieve the data from the server-database
+ *  and the other APIs are used to retrieve the data from the server-database 
  *  using SqLite queries.
- *
- * 	So, generally to store authentication data the flow is like
+ * 
+ * 	So, generally to store authentication data the flow is like 
  * @msc {
  * SmfCredMgrClient, SmfCredMgrClient_p, RSmfCredMgrClientSession, SmfCredMgrServer, SmfCredMgrServerSession, CSmfCredMgrDbUser;
  * SmfCredMgrClient->SmfCredMgrClient_p  [label = "storeAuthData()"];
@@ -39,18 +39,18 @@
  * SmfCredMgrClient<-SmfCredMgrClient_p  [label = "return = Registration Token"];
  * };
  *
- *  The flag associated to each Plugin ID is now taken as a generic flag to entire
- * PluginList during storing in  storeAuthData() API ,i.e if Flag = 1 the
- * entire List of Plugins are enabled.
- *
+ *  The flag associated to each Plugin ID is now taken as a generic flag to entire 
+ * PluginList during storing in  storeAuthData() API ,i.e if Flag = 1 the 
+ * entire List of Plugins are enabled. 
+ * 
  *  The NONCE is generated using rand() library function.
- *
- *  @Todo-  1)The validity check of the authentication data at the server side is an open item yet and is to be implemented.
- *  This will require the signal-slot implementation at the client side to notify authentication expiry, if decided that
- *  credentialmgr will launch authapp.
- *  2)The error handling and  state-machine (if required) are to be implemented.
- *  3) The process id of smfserver needs to be checked inside credmgr to ensure only smfserver reads the keys.
- *
+ *   
+ *  @Todo-  1)The validity check of the authentication data at the server side is an open item yet and is to be implemented. 
+ *  This will require the signal-slot implementation at the client side to notify authentication expiry, if decided that 
+ *  credentialmgr will launch authapp. 
+ *  2)The error handling and  state-machine (if required) are to be implemented. 
+ *  3) The process id of smfserver needs to be checked inside credmgr to ensure only smfserver reads the keys. 
+ *   
  */
 
 #ifndef COMMON_H_
@@ -84,7 +84,7 @@
 	 * Enum for no algorithm
 	 */
 	ESmfNoSigningMethod = 0,
-
+			
 	/**
 	 *Enum for algorithm RSA-SHA1
 	 */
@@ -94,12 +94,12 @@
 	 *Enum for algorithm HMAC-SHA1
 	 */
 	ESMFHMACProtocol,
-
+	
 	/**
 	 *Enum for Plain Tezt
 	 */
 	ESMFPlainText,
-
+	
 	/**
 	 *Enum for SHA256
 	 */
@@ -145,21 +145,32 @@
 	 * Op code to store RSA keys.
 	 */
 	ESmfStoreRSAKey,
-
+	
 	/**
 	 * Op code to sign message using RSA algo.
 	 */
 	ESmfRSASignMessage,
-
+	
 	/**
 	 * Op code to sign using HAMC-SHA1 algo.
 	 */
 	ESmfHMACSHA1SignMessage,
-
+	
 	/**
 	 * Op code to delete RSA keys.
 	 */
-	ESmfDeleteKeys
+	ESmfDeleteKeys,
+	
+	/**
+	 * Op code to check if a particular service is authenticated
+	 */
+	ESmfCheckServiceAuthorization,
+	
+	/**
+	 * Op code to delete the OAuth key set i.e SmfAuthParams
+	 */
+	EDeleteAuthData
+	
 	};
 
 #endif /* COMMON_H_ */
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h	Mon Oct 11 21:59:54 2010 +0530
@@ -51,6 +51,13 @@
 //UPDATE 
 _LIT( KUpdatePluginID, "UPDATE PluginIDTable SET PluginId =:iText, IsEnabled =:iFlag WHERE PluginId = :iID");
 
+// DELETE
+_LIT(KSmfDbDeleteAuthTokens, "DELETE FROM AuthParamsTable WHERE AuthAppId = :iID");
+_LIT(KSmfDbDeletePluginList, "DELETE FROM PluginIDTable WHERE AuthAppId = :iID");
+_LIT(KSmfDbDeleteRegTokenValidity, "DELETE FROM RegTokenValidityTable WHERE AuthAppId = :iID");
+_LIT(KSmfDbDeleteURLList, "DELETE FROM URLTable WHERE AuthAppId = :iID");
+
+
 /**
  * The class to use the server database i.e insert table in Db, query from Db.
  */
@@ -197,6 +204,42 @@
 	 * @param aArray [out] The array to be updated with plugin ids 
 	 */
 	void readPluginIdL(const TDesC& aAuthAppId, RPointerArray<HBufC>& aArray);
+	
+	/**
+	 * Method to check if a particular service is logged in or not (ie, key sets 
+	 * of a service is saved in credential manager or not)
+	 * @param AuthAppId The Authentication Application Id
+	 * @param isAuthorised [out] ETrue if service is logged in else EFalse
+	 */
+	void checkServiceAuthenticationL(const TDesC& aAuthAppId, TBool& isAuthorised );
+	
+	/**
+	 * Method to delete the auth params of the requested service from the database table 
+	 * @param AuthAppId The Authentication Application Id
+	 * @return ETrue if service is data is deleted else EFalse
+	 */
+	bool deleteAuthDataSetL( const TDesC& aAuthAppId );
+	
+	/**
+	 * Method to delete the plugin list of the requested service from the database table 
+	 * @param AuthAppId The Authentication Application Id
+	 * @return ETrue if service is data is deleted else EFalse
+	 */
+	bool deletePluginListL( const TDesC& aAuthAppId );
+	
+	/**
+	 * Method to delete the reg token and validity of the requested service from the database table 
+	 * @param AuthAppId The Authentication Application Id
+	 * @return ETrue if service is data is deleted else EFalse
+	 */
+	bool deleteRegTokenValidityL( const TDesC& aAuthAppId );
+	
+	/**
+	 * Method to delete the URL list of the requested service from the database table 
+	 * @param AuthAppId The Authentication Application Id
+	 * @return ETrue if service is data is deleted else EFalse
+	 */
+	bool deleteURLListL( const TDesC& aAuthAppId );
 
 private:
 	/**
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h	Mon Oct 11 21:59:54 2010 +0530
@@ -104,6 +104,13 @@
 	 * @param aParams class containg the array to be filled
 	 */
 	void getTokenArrayL(CSmfFetchAuthTokenSet* aParams);
+	
+	/**
+	 * Deleted the information stored about a particular service from Db (like auth params, 
+	 * plugin list, url list, reg token and validity)
+	 * @param aAuthAppId The authentication application ID of the service
+	 */
+	bool deleteAuthAppInfoL( const TDesC& aAuthAppId );
 
 private:  // Data
 	CSmfCredMgrServer& iServer;
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -382,7 +382,7 @@
 	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
 	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
-	
+
 	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
 		{
 		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
@@ -609,11 +609,11 @@
 
 	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadFlagInPluginTable);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
-	
+
 	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
 	err = sqlReadStatement.BindText(paramIndex, aPluginID);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
-	
+
 	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
 		{
 		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
@@ -658,11 +658,11 @@
 	paramIndex = sqlStatement.ParameterIndex(_L(":iFlag"));
 	err = sqlStatement.BindInt(paramIndex, aFlag);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
-	
+
 	paramIndex = sqlStatement.ParameterIndex(_L(":iID"));
 	err = sqlStatement.BindText(paramIndex, OldPluginBuf);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
-	
+
 	err = db.Exec(KBegin);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
 	err = sqlStatement.Exec();
@@ -711,7 +711,7 @@
 	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
 	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
 	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());
-	
+
 	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
 		{
 		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
@@ -734,3 +734,131 @@
 		}
 	sqlReadStatement.Close();
 	}
+
+void CSmfCredMgrDbUser::checkServiceAuthenticationL(const TDesC& aAuthAppId, 
+		TBool& isAuthorised )
+	{
+	TInt err(KErrNone);
+	isAuthorised = EFalse;
+
+	RSqlStatement sqlReadStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadAuthTokens);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
+	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
+		{
+		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
+		if (!sqlReadStatement.IsNull(0))
+			{
+			// Element found means some key sets are 
+			// available in the database for this auth app
+			isAuthorised = ETrue;
+			break;
+			}
+		else
+			{
+			__ASSERT_DEBUG( 0, User::Invariant());
+			}
+		}
+	sqlReadStatement.Close();
+	}
+
+bool CSmfCredMgrDbUser::deleteAuthDataSetL( const TDesC& aAuthAppId )
+	{
+	TInt err(KErrNone);
+	TBool deleted = EFalse;
+
+	RSqlStatement sqlDeleteStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlDeleteStatement.Prepare(iDataBase, KSmfDbDeleteAuthTokens);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+	paramIndex = sqlDeleteStatement.ParameterIndex(_L(":iID"));
+	err = sqlDeleteStatement.BindText(paramIndex, aAuthAppId);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+
+	err = sqlDeleteStatement.Exec();
+	
+	if(err >= 0)
+		deleted = ETrue;
+	
+	sqlDeleteStatement.Close();
+	
+	return deleted;
+	}
+
+bool CSmfCredMgrDbUser::deletePluginListL( const TDesC& aAuthAppId )
+	{
+	TInt err(KErrNone);
+	TBool deleted = EFalse;
+
+	RSqlStatement sqlDeleteStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlDeleteStatement.Prepare(iDataBase, KSmfDbDeletePluginList);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+	paramIndex = sqlDeleteStatement.ParameterIndex(_L(":iID"));
+	err = sqlDeleteStatement.BindText(paramIndex, aAuthAppId);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+
+	err = sqlDeleteStatement.Exec();
+	
+	if(err >= 0)
+		deleted = ETrue;
+	
+	sqlDeleteStatement.Close();
+	
+	return deleted;
+	}
+
+bool CSmfCredMgrDbUser::deleteRegTokenValidityL( const TDesC& aAuthAppId )
+	{
+	TInt err(KErrNone);
+	TBool deleted = EFalse;
+
+	RSqlStatement sqlDeleteStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlDeleteStatement.Prepare(iDataBase, KSmfDbDeleteRegTokenValidity);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+	paramIndex = sqlDeleteStatement.ParameterIndex(_L(":iID"));
+	err = sqlDeleteStatement.BindText(paramIndex, aAuthAppId);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+
+	err = sqlDeleteStatement.Exec();
+	
+	if(err >= 0)
+		deleted = ETrue;
+	
+	sqlDeleteStatement.Close();
+	
+	return deleted;
+	}
+
+bool CSmfCredMgrDbUser::deleteURLListL( const TDesC& aAuthAppId )
+	{
+	TInt err(KErrNone);
+	TBool deleted = EFalse;
+
+	RSqlStatement sqlDeleteStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlDeleteStatement.Prepare(iDataBase, KSmfDbDeleteURLList);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+	paramIndex = sqlDeleteStatement.ParameterIndex(_L(":iID"));
+	err = sqlDeleteStatement.BindText(paramIndex, aAuthAppId);
+	__ASSERT_DEBUG( (err >= KErrNone), User::Invariant());	
+
+	err = sqlDeleteStatement.Exec();
+	
+	if(err >= 0)
+		deleted = ETrue;
+	
+	sqlDeleteStatement.Close();
+	
+	return deleted;
+	}
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -321,6 +321,73 @@
 			aMessage.Complete(err);
 			}
 			break;
+
+		case ESmfCheckServiceAuthorization:
+			{
+			//create buffer to read
+			HBufC* authAppId = HBufC::NewLC(aMessage.GetDesLength(0));
+			TPtr authAppIdPtr(authAppId->Des());
+			aMessage.ReadL(0, authAppIdPtr);
+
+			TBool isAuthenticated = EFalse;
+			iDbUser->checkServiceAuthenticationL(*authAppId, isAuthenticated);
+
+			HBufC8* isAuthenticatedBuf8 = HBufC8::NewLC(4);
+			TPtr8 isAuthenticatedBufPtr8(isAuthenticatedBuf8->Des());
+			isAuthenticatedBufPtr8.AppendNum(isAuthenticated);
+
+			TInt err = aMessage.Write(1, isAuthenticatedBufPtr8);
+
+			CleanupStack::PopAndDestroy(isAuthenticatedBuf8);
+			CleanupStack::PopAndDestroy(authAppId);
+			
+			aMessage.Complete(err);
+			}
+			break;
+
+		case EDeleteAuthData:
+			{
+			//create buffer to read the received data
+			RBuf8 dataBuf;
+			CleanupClosePushL(dataBuf);
+			dataBuf.CreateL(aMessage.GetDesLength(0));
+			aMessage.ReadL(0, dataBuf);
+			CSmfFetchAuthTokenSet* deleteAuthTokenParams =
+					new (ELeave) CSmfFetchAuthTokenSet;
+
+			CleanupStack::PushL(deleteAuthTokenParams);
+			deleteAuthTokenParams->InternalizeL(dataBuf);
+						
+			//create buffer to read
+			HBufC* authAppId = HBufC::NewLC(aMessage.GetDesLength(1));
+			TPtr authAppIdPtr(authAppId->Des());
+			aMessage.ReadL(1, authAppIdPtr);
+
+			TBool deleted = EFalse;
+			
+			TBuf<KMaxBufSize> authAppIDBuf;
+			iDbUser->readAuthAppIdInRegTokenTable(deleteAuthTokenParams->iRegistrationToken->Des(),
+					authAppIDBuf);
+			
+			if(0 == authAppIdPtr.Compare(authAppIDBuf))
+				{
+				deleted = deleteAuthAppInfoL(authAppIdPtr);
+				}
+					
+			HBufC8* deletedBuf8 = HBufC8::NewLC(4);
+			TPtr8 deletedBufPtr8(deletedBuf8->Des());
+			deletedBufPtr8.AppendNum(deleted);
+
+			TInt err = aMessage.Write(2, deletedBufPtr8);
+			
+			CleanupStack::PopAndDestroy(deletedBuf8);
+			CleanupStack::PopAndDestroy(authAppId);
+			CleanupStack::PopAndDestroy(deleteAuthTokenParams);
+			CleanupStack::PopAndDestroy(&dataBuf);
+			
+			aMessage.Complete(err);
+			}
+			break;
 			
 		case ESmfHMACSHA1SignMessage:
 		case ESmfRSASignMessage:
@@ -330,6 +397,7 @@
 			iKeyStore->HandleMessageL(aMessage);
 			}
 			break;
+			
 		default:
 			//todo -panic client
 			break;
@@ -406,3 +474,14 @@
 			authAppIDBuf);
 	iDbUser->readAuthTokensL(authAppIDBuf, aParams->iAuthTokenArray);
 	}
+
+bool CSmfCredMgrServerSession::deleteAuthAppInfoL( const TDesC& aAuthAppId )
+	{
+	bool deleted = EFalse;
+	deleted = iDbUser->deleteAuthDataSetL(aAuthAppId);
+	deleted = iDbUser->deletePluginListL(aAuthAppId);
+	deleted = iDbUser->deleteRegTokenValidityL(aAuthAppId);
+	deleted = iDbUser->deleteURLListL(aAuthAppId);
+	
+	return deleted;
+	}
--- a/smf/smfservermodule/smfclient/bwins/smfclientu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/bwins/smfclientu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,266 +1,283 @@
 EXPORTS
 	??6@YAAAVQDataStream@@AAV0@ABVSmfRelationItem@@@Z @ 1 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfRelationItem const &)
 	??0SmfGallery@@QAE@PAVSmfProvider@@@Z @ 2 NONAME ; SmfGallery::SmfGallery(class SmfProvider *)
-	?postComments@SmfMusicService@@QAE?AW4SmfError@@VSmfTrackInfo@@VSmfComment@@@Z @ 3 NONAME ; enum SmfError SmfMusicService::postComments(class SmfTrackInfo, class SmfComment)
-	??0SmfClient@@QAE@XZ @ 4 NONAME ; SmfClient::SmfClient(void)
-	?tr@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 5 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *)
-	?getIndex@SmfRelationItem@@QBEIXZ @ 6 NONAME ; unsigned int SmfRelationItem::getIndex(void) const
-	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *)
-	?getProvider@SmfMusicSearch@@ABEPAVSmfProvider@@XZ @ 8 NONAME ; class SmfProvider * SmfMusicSearch::getProvider(void) const
-	?getStaticMetaObject@SmfPostProvider@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & SmfPostProvider::getStaticMetaObject(void)
-	?tr@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 10 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *)
-	?customDataAvailable@SmfMusicService@@IAEXABHPAVQByteArray@@@Z @ 11 NONAME ; void SmfMusicService::customDataAvailable(int const &, class QByteArray *)
-	??1SmfRelationItem@@QAE@XZ @ 12 NONAME ; SmfRelationItem::~SmfRelationItem(void)
-	?updatePost@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@@Z @ 13 NONAME ; enum SmfError SmfPostProvider::updatePost(class SmfPost &)
-	??1SmfPlaylistService@@UAE@XZ @ 14 NONAME ; SmfPlaylistService::~SmfPlaylistService(void)
-	?supportedFormats@SmfPostProvider@@QBE?AV?$QVector@VQTextFormat@@@@XZ @ 15 NONAME ; class QVector<class QTextFormat> SmfPostProvider::supportedFormats(void) const
-	?searchEvents@SmfMusicService@@QAE?AW4SmfError@@VSmfEvent@@HH@Z @ 16 NONAME ; enum SmfError SmfMusicService::searchEvents(class SmfEvent, int, int)
-	?getStaticMetaObject@SmfMusicSearch@@SAABUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const & SmfMusicSearch::getStaticMetaObject(void)
-	?getStaticMetaObject@SmfGallery@@SAABUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const & SmfGallery::getStaticMetaObject(void)
-	?staticMetaObject@SmfGallery@@2UQMetaObject@@B @ 19 NONAME ; struct QMetaObject const SmfGallery::staticMetaObject
-	?commentOnAPost@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@0PAVSmfLocation@@@Z @ 20 NONAME ; enum SmfError SmfPostProvider::commentOnAPost(class SmfPost &, class SmfPost &, class SmfLocation *)
-	??0SmfActivityFetcher@@QAE@PAVSmfProvider@@@Z @ 21 NONAME ; SmfActivityFetcher::SmfActivityFetcher(class SmfProvider *)
-	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *, int)
-	?metaObject@SmfGallery@@UBEPBUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const * SmfGallery::metaObject(void) const
-	?trUtf8@SmfEventsFetcher@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString SmfEventsFetcher::trUtf8(char const *, char const *, int)
-	?searchUser@SmfMusicService@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 25 NONAME ; enum SmfError SmfMusicService::searchUser(class SmfLocation, int, int)
-	?getProvider@SmfEventsFetcher@@ABEPAVSmfProvider@@XZ @ 26 NONAME ; class SmfProvider * SmfEventsFetcher::getProvider(void) const
-	??_ESmfPlaylistService@@UAE@I@Z @ 27 NONAME ; SmfPlaylistService::~SmfPlaylistService(unsigned int)
-	?friendsActivities@SmfActivityFetcher@@QAE?AW4SmfError@@ABVSmfContact@@HH@Z @ 28 NONAME ; enum SmfError SmfActivityFetcher::friendsActivities(class SmfContact const &, int, int)
-	?customDataAvailable@SmfMusicSearch@@IAEXABHPAVQByteArray@@@Z @ 29 NONAME ; void SmfMusicSearch::customDataAvailable(int const &, class QByteArray *)
-	?supportsAppearence@SmfPostProvider@@QBE_NXZ @ 30 NONAME ; bool SmfPostProvider::supportsAppearence(void) const
-	?getStaticMetaObject@SmfPlaylistService@@SAABUQMetaObject@@XZ @ 31 NONAME ; struct QMetaObject const & SmfPlaylistService::getStaticMetaObject(void)
-	?GetServices@SmfClient@@QAEPAV?$QList@VSmfProvider@@@@ABVQString@@@Z @ 32 NONAME ; class QList<class SmfProvider> * SmfClient::GetServices(class QString const &)
-	?staticMetaObject@SmfLyricsService@@2UQMetaObject@@B @ 33 NONAME ; struct QMetaObject const SmfLyricsService::staticMetaObject
-	?staticMetaObject@SmfActivityFetcher@@2UQMetaObject@@B @ 34 NONAME ; struct QMetaObject const SmfActivityFetcher::staticMetaObject
-	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *)
-	?friendsListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 36 NONAME ; void SmfContactFetcher::friendsListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?qt_metacast@SmfMusicSearch@@UAEPAXPBD@Z @ 37 NONAME ; void * SmfMusicSearch::qt_metacast(char const *)
-	?customDataAvailable@SmfLyricsService@@IAEXABHPAVQByteArray@@@Z @ 38 NONAME ; void SmfLyricsService::customDataAvailable(int const &, class QByteArray *)
-	?searchNear@SmfContactFetcher@@QAE?AW4SmfError@@PAVSmfLocation@@W4SmfLocationSearchBoundary@@HH@Z @ 39 NONAME ; enum SmfError SmfContactFetcher::searchNear(class SmfLocation *, enum SmfLocationSearchBoundary, int, int)
-	?qt_metacast@SmfPlaylistService@@UAEPAXPBD@Z @ 40 NONAME ; void * SmfPlaylistService::qt_metacast(char const *)
-	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 41 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *, int)
-	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 42 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *, int)
-	?metaObject@SmfPlaylistService@@UBEPBUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const * SmfPlaylistService::metaObject(void) const
-	?tr@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *, int)
-	?metaObject@SmfPostProvider@@UBEPBUQMetaObject@@XZ @ 45 NONAME ; struct QMetaObject const * SmfPostProvider::metaObject(void) const
-	?searchArtist@SmfMusicService@@QAE?AW4SmfError@@VSmfArtists@@HH@Z @ 46 NONAME ; enum SmfError SmfMusicService::searchArtist(class SmfArtists, int, int)
-	?tr@SmfGallery@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString SmfGallery::tr(char const *, char const *)
-	?qt_metacall@SmfPostProvider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 48 NONAME ; int SmfPostProvider::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfRelationItem@@@Z @ 49 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfRelationItem &)
-	?get@SmfRelationMgr@@QAEPAVSmfRelationItem@@AAVQString@@I@Z @ 50 NONAME ; class SmfRelationItem * SmfRelationMgr::get(class QString &, unsigned int)
-	?storeSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfProvider@@@@W4SmfError@@USmfResultPage@@@Z @ 51 NONAME ; void SmfMusicSearch::storeSearchAvailable(class QList<class SmfProvider> *, enum SmfError, struct SmfResultPage)
-	?pictures@SmfGallery@@QAE?AW4SmfError@@AAV?$QList@VSmfPictureAlbum@@@@HH@Z @ 52 NONAME ; enum SmfError SmfGallery::pictures(class QList<class SmfPictureAlbum> &, int, int)
-	?uploadFinished@SmfGallery@@IAEXV?$QList@W4SmfError@@@@@Z @ 53 NONAME ; void SmfGallery::uploadFinished(class QList<enum SmfError>)
-	?getStaticMetaObject@SmfMusicService@@SAABUQMetaObject@@XZ @ 54 NONAME ; struct QMetaObject const & SmfMusicService::getStaticMetaObject(void)
-	?upload@SmfGallery@@QAE?AW4SmfError@@PAVSmfPicture@@PAVSmfPictureAlbum@@@Z @ 55 NONAME ; enum SmfError SmfGallery::upload(class SmfPicture *, class SmfPictureAlbum *)
-	?tracksOfArtist@SmfMusicSearch@@QAE?AW4SmfError@@VSmfArtists@@HH@Z @ 56 NONAME ; enum SmfError SmfMusicSearch::tracksOfArtist(class SmfArtists, int, int)
-	?getProvider@SmfPostProvider@@ABEPAVSmfProvider@@XZ @ 57 NONAME ; class SmfProvider * SmfPostProvider::getProvider(void) const
-	?getProvider@SmfPlaylistService@@ABEPAVSmfProvider@@XZ @ 58 NONAME ; class SmfProvider * SmfPlaylistService::getProvider(void) const
-	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 59 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *)
-	?getStaticMetaObject@SmfContactFetcher@@SAABUQMetaObject@@XZ @ 60 NONAME ; struct QMetaObject const & SmfContactFetcher::getStaticMetaObject(void)
-	?tr@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 61 NONAME ; class QString SmfPostProvider::tr(char const *, char const *)
-	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 62 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *, int)
-	??0SmfEventsFetcher@@QAE@PAVSmfProvider@@@Z @ 63 NONAME ; SmfEventsFetcher::SmfEventsFetcher(class SmfProvider *)
-	?resultsAvailable@SmfActivityFetcher@@IAEXPAV?$QList@VSmfActivityEntry@@@@W4SmfError@@USmfResultPage@@@Z @ 64 NONAME ; void SmfActivityFetcher::resultsAvailable(class QList<class SmfActivityEntry> *, enum SmfError, struct SmfResultPage)
-	?qt_metacall@SmfMusicService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 65 NONAME ; int SmfMusicService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@SmfPlaylistService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 66 NONAME ; int SmfPlaylistService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 67 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *)
-	?tr@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 68 NONAME ; class QString SmfPostProvider::tr(char const *, char const *, int)
-	?Delete@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@@Z @ 69 NONAME ; enum SmfError SmfRelationMgr::Delete(class QString &)
-	?metaObject@SmfLyricsService@@UBEPBUQMetaObject@@XZ @ 70 NONAME ; struct QMetaObject const * SmfLyricsService::metaObject(void) const
-	?userMusicInfoAvailable@SmfMusicService@@IAEXPAVSmfMusicProfile@@W4SmfError@@@Z @ 71 NONAME ; void SmfMusicService::userMusicInfoAvailable(class SmfMusicProfile *, enum SmfError)
-	?searchVenue@SmfMusicService@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 72 NONAME ; enum SmfError SmfMusicService::searchVenue(class SmfLocation, int, int)
-	??0SmfPostProvider@@QAE@PAVSmfProvider@@@Z @ 73 NONAME ; SmfPostProvider::SmfPostProvider(class SmfProvider *)
-	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 74 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *, int)
-	?postEvents@SmfEventsFetcher@@QAE?AW4SmfError@@V?$QList@VSmfEvent@@@@@Z @ 75 NONAME ; enum SmfError SmfEventsFetcher::postEvents(class QList<class SmfEvent>)
-	??_ESmfRelationItem@@QAE@I@Z @ 76 NONAME ; SmfRelationItem::~SmfRelationItem(unsigned int)
-	?cancelRequest@SmfPostProvider@@QAE?AW4SmfError@@XZ @ 77 NONAME ; enum SmfError SmfPostProvider::cancelRequest(void)
-	?friends@SmfContactFetcher@@QAE?AW4SmfError@@HH@Z @ 78 NONAME ; enum SmfError SmfContactFetcher::friends(int, int)
-	??0SmfContactFetcher@@QAE@PAVSmfProvider@@PAVSmfContact@@@Z @ 79 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *, class SmfContact *)
-	?postComment@SmfGallery@@QAE?AW4SmfError@@VSmfPicture@@VSmfComment@@@Z @ 80 NONAME ; enum SmfError SmfGallery::postComment(class SmfPicture, class SmfComment)
-	?getProvider@SmfContactFetcher@@ABEPAVSmfProvider@@XZ @ 81 NONAME ; class SmfProvider * SmfContactFetcher::getProvider(void) const
-	??0SmfRelationItem@@QAE@ABV0@@Z @ 82 NONAME ; SmfRelationItem::SmfRelationItem(class SmfRelationItem const &)
-	?addToPlaylist@SmfPlaylistService@@QAE?AW4SmfError@@VSmfPlaylist@@PAV?$QList@VSmfTrackInfo@@@@@Z @ 83 NONAME ; enum SmfError SmfPlaylistService::addToPlaylist(class SmfPlaylist, class QList<class SmfTrackInfo> *)
-	?customDataAvailable@SmfPlaylistService@@IAEXABHPAVQByteArray@@@Z @ 84 NONAME ; void SmfPlaylistService::customDataAvailable(int const &, class QByteArray *)
-	?qt_metacall@SmfActivityFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int SmfActivityFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?attendees@SmfEventsFetcher@@QAE?AW4SmfError@@VSmfEvent@@HH@Z @ 86 NONAME ; enum SmfError SmfEventsFetcher::attendees(class SmfEvent, int, int)
-	?staticMetaObject@SmfMusicService@@2UQMetaObject@@B @ 87 NONAME ; struct QMetaObject const SmfMusicService::staticMetaObject
-	?subtitles@SmfLyricsService@@QAE?AW4SmfError@@VSmfTrackInfo@@W4SmfSubtitleSearchFilter@@HH@Z @ 88 NONAME ; enum SmfError SmfLyricsService::subtitles(class SmfTrackInfo, enum SmfSubtitleSearchFilter, int, int)
-	?staticMetaObject@SmfMusicSearch@@2UQMetaObject@@B @ 89 NONAME ; struct QMetaObject const SmfMusicSearch::staticMetaObject
-	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0@Z @ 90 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *)
-	?qt_metacast@SmfGallery@@UAEPAXPBD@Z @ 91 NONAME ; void * SmfGallery::qt_metacast(char const *)
-	?tr@SmfMusicService@@SA?AVQString@@PBD0@Z @ 92 NONAME ; class QString SmfMusicService::tr(char const *, char const *)
-	?metaObject@SmfMusicService@@UBEPBUQMetaObject@@XZ @ 93 NONAME ; struct QMetaObject const * SmfMusicService::metaObject(void) const
-	?cancelRequest@SmfLyricsService@@QAE?AW4SmfError@@XZ @ 94 NONAME ; enum SmfError SmfLyricsService::cancelRequest(void)
-	?trUtf8@SmfEventsFetcher@@SA?AVQString@@PBD0@Z @ 95 NONAME ; class QString SmfEventsFetcher::trUtf8(char const *, char const *)
-	?staticMetaObject@SmfEventsFetcher@@2UQMetaObject@@B @ 96 NONAME ; struct QMetaObject const SmfEventsFetcher::staticMetaObject
-	?postsAvailable@SmfPostProvider@@IAEXPAV?$QList@VSmfPost@@@@W4SmfError@@USmfResultPage@@@Z @ 97 NONAME ; void SmfPostProvider::postsAvailable(class QList<class SmfPost> *, enum SmfError, struct SmfResultPage)
-	?playlistsOf@SmfPlaylistService@@QAE?AW4SmfError@@PAVSmfContact@@HH@Z @ 98 NONAME ; enum SmfError SmfPlaylistService::playlistsOf(class SmfContact *, int, int)
-	??1SmfGallery@@UAE@XZ @ 99 NONAME ; SmfGallery::~SmfGallery(void)
-	?tracksOfAlbum@SmfMusicSearch@@QAE?AW4SmfError@@VSmfAlbum@@HH@Z @ 100 NONAME ; enum SmfError SmfMusicSearch::tracksOfAlbum(class SmfAlbum, int, int)
-	?tr@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 101 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *)
-	?customDataAvailable@SmfEventsFetcher@@IAEXABHPAVQByteArray@@@Z @ 102 NONAME ; void SmfEventsFetcher::customDataAvailable(int const &, class QByteArray *)
-	?subtitleAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfSubtitle@@@@W4SmfError@@USmfResultPage@@@Z @ 103 NONAME ; void SmfLyricsService::subtitleAvailable(class QList<class SmfSubtitle> *, enum SmfError, struct SmfResultPage)
-	?associate@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@PAVSmfProvider@@@Z @ 104 NONAME ; enum SmfError SmfRelationMgr::associate(class QString &, class SmfContact const *, class SmfProvider *)
-	?getProvider@SmfMusicService@@ABEPAVSmfProvider@@XZ @ 105 NONAME ; class SmfProvider * SmfMusicService::getProvider(void) const
-	?staticMetaObject@SmfContactFetcher@@2UQMetaObject@@B @ 106 NONAME ; struct QMetaObject const SmfContactFetcher::staticMetaObject
-	?searchNearFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 107 NONAME ; void SmfContactFetcher::searchNearFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?metaObject@SmfContactFetcher@@UBEPBUQMetaObject@@XZ @ 108 NONAME ; struct QMetaObject const * SmfContactFetcher::metaObject(void) const
-	?searchInGroupFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 109 NONAME ; void SmfContactFetcher::searchInGroupFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	??1SmfRelationMgr@@UAE@XZ @ 110 NONAME ; SmfRelationMgr::~SmfRelationMgr(void)
-	?qt_metacast@SmfPostProvider@@UAEPAXPBD@Z @ 111 NONAME ; void * SmfPostProvider::qt_metacast(char const *)
-	?getAllRelations@SmfRelationMgr@@QAE?AV?$QList@VQString@@@@XZ @ 112 NONAME ; class QList<class QString> SmfRelationMgr::getAllRelations(void)
-	?qt_metacast@SmfRelationMgr@@UAEPAXPBD@Z @ 113 NONAME ; void * SmfRelationMgr::qt_metacast(char const *)
-	?cancelRequest@SmfMusicService@@QAE?AW4SmfError@@XZ @ 114 NONAME ; enum SmfError SmfMusicService::cancelRequest(void)
-	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 115 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *)
-	?tr@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 116 NONAME ; class QString SmfMusicService::tr(char const *, char const *, int)
-	??0SmfPlaylistService@@QAE@PAVSmfProvider@@@Z @ 117 NONAME ; SmfPlaylistService::SmfPlaylistService(class SmfProvider *)
-	?searchArtistInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfArtists@@@@W4SmfError@@USmfResultPage@@@Z @ 118 NONAME ; void SmfMusicService::searchArtistInfoAvailable(class QList<class SmfArtists> *, enum SmfError, struct SmfResultPage)
-	?metaObject@SmfActivityFetcher@@UBEPBUQMetaObject@@XZ @ 119 NONAME ; struct QMetaObject const * SmfActivityFetcher::metaObject(void) const
-	?selfActivities@SmfActivityFetcher@@QAE?AW4SmfError@@HH@Z @ 120 NONAME ; enum SmfError SmfActivityFetcher::selfActivities(int, int)
-	?trackSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfTrackInfo@@@@W4SmfError@@USmfResultPage@@@Z @ 121 NONAME ; void SmfMusicSearch::trackSearchAvailable(class QList<class SmfTrackInfo> *, enum SmfError, struct SmfResultPage)
-	?venuesAvailable@SmfEventsFetcher@@IAEXPAV?$QList@VSmfLocation@@@@W4SmfError@@USmfResultPage@@@Z @ 122 NONAME ; void SmfEventsFetcher::venuesAvailable(class QList<class SmfLocation> *, enum SmfError, struct SmfResultPage)
-	?customRequest@SmfGallery@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 123 NONAME ; enum SmfError SmfGallery::customRequest(int const &, class QByteArray *)
-	?events@SmfEventsFetcher@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 124 NONAME ; enum SmfError SmfEventsFetcher::events(class SmfLocation, int, int)
-	?count@SmfRelationMgr@@QAEIVQString@@@Z @ 125 NONAME ; unsigned int SmfRelationMgr::count(class QString)
-	?staticMetaObject@SmfRelationMgr@@2UQMetaObject@@B @ 126 NONAME ; struct QMetaObject const SmfRelationMgr::staticMetaObject
-	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 127 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *)
-	?description@SmfGallery@@QAE?AW4SmfError@@AAVSmfPicture@@@Z @ 128 NONAME ; enum SmfError SmfGallery::description(class SmfPicture &)
-	?filtered@SmfActivityFetcher@@QAE?AW4SmfError@@V?$QList@W4SmfActivityObjectType@@@@HH@Z @ 129 NONAME ; enum SmfError SmfActivityFetcher::filtered(class QList<enum SmfActivityObjectType>, int, int)
-	?metaObject@SmfEventsFetcher@@UBEPBUQMetaObject@@XZ @ 130 NONAME ; struct QMetaObject const * SmfEventsFetcher::metaObject(void) const
-	?maxCharsInPost@SmfPostProvider@@QBEHXZ @ 131 NONAME ; int SmfPostProvider::maxCharsInPost(void) const
-	??1SmfEventsFetcher@@UAE@XZ @ 132 NONAME ; SmfEventsFetcher::~SmfEventsFetcher(void)
-	?qt_metacall@SmfMusicSearch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 133 NONAME ; int SmfMusicSearch::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?getProvider@SmfActivityFetcher@@ABEPAVSmfProvider@@XZ @ 134 NONAME ; class SmfProvider * SmfActivityFetcher::getProvider(void) const
-	?customRequest@SmfContactFetcher@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 135 NONAME ; enum SmfError SmfContactFetcher::customRequest(int const &, class QByteArray *)
-	?search@SmfContactFetcher@@QAE?AW4SmfError@@PAVSmfContact@@HH@Z @ 136 NONAME ; enum SmfError SmfContactFetcher::search(class SmfContact *, int, int)
-	?cancelRequest@SmfActivityFetcher@@QAE?AW4SmfError@@XZ @ 137 NONAME ; enum SmfError SmfActivityFetcher::cancelRequest(void)
-	??1SmfMusicService@@UAE@XZ @ 138 NONAME ; SmfMusicService::~SmfMusicService(void)
-	?descriptionAvailable@SmfGallery@@IAEXVQString@@W4SmfError@@@Z @ 139 NONAME ; void SmfGallery::descriptionAvailable(class QString, enum SmfError)
-	??1SmfContactFetcher@@UAE@XZ @ 140 NONAME ; SmfContactFetcher::~SmfContactFetcher(void)
-	?customDataAvailable@SmfActivityFetcher@@IAEXABHPAVQByteArray@@@Z @ 141 NONAME ; void SmfActivityFetcher::customDataAvailable(int const &, class QByteArray *)
-	?maxItems@SmfPostProvider@@QBEHXZ @ 142 NONAME ; int SmfPostProvider::maxItems(void) const
-	??0SmfLyricsService@@QAE@PAVSmfProvider@@@Z @ 143 NONAME ; SmfLyricsService::SmfLyricsService(class SmfProvider *)
-	?postDirected@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@AAVSmfContact@@PAVSmfLocation@@@Z @ 144 NONAME ; enum SmfError SmfPostProvider::postDirected(class SmfPost &, class SmfContact &, class SmfLocation *)
-	?qt_metacall@SmfRelationMgr@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 145 NONAME ; int SmfRelationMgr::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?posts@SmfPostProvider@@QAE?AW4SmfError@@PAVSmfContact@@HH@Z @ 146 NONAME ; enum SmfError SmfPostProvider::posts(class SmfContact *, int, int)
-	?qt_metacall@SmfLyricsService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 147 NONAME ; int SmfLyricsService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@SmfActivityFetcher@@UAEPAXPBD@Z @ 148 NONAME ; void * SmfActivityFetcher::qt_metacast(char const *)
-	?tr@SmfEventsFetcher@@SA?AVQString@@PBD0@Z @ 149 NONAME ; class QString SmfEventsFetcher::tr(char const *, char const *)
-	?getStaticMetaObject@SmfEventsFetcher@@SAABUQMetaObject@@XZ @ 150 NONAME ; struct QMetaObject const & SmfEventsFetcher::getStaticMetaObject(void)
-	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 151 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *, int)
-	?qt_metacall@SmfContactFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 152 NONAME ; int SmfContactFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?tracksSimilar@SmfMusicSearch@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 153 NONAME ; enum SmfError SmfMusicSearch::tracksSimilar(class SmfTrackInfo, int, int)
-	?trUtf8@SmfGallery@@SA?AVQString@@PBD0@Z @ 154 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *)
-	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 155 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *)
-	?qt_metacall@SmfGallery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 156 NONAME ; int SmfGallery::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??1SmfMusicSearch@@UAE@XZ @ 157 NONAME ; SmfMusicSearch::~SmfMusicSearch(void)
-	?albumsAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPictureAlbum@@@@W4SmfError@@USmfResultPage@@@Z @ 158 NONAME ; void SmfGallery::albumsAvailable(class QList<class SmfPictureAlbum> *, enum SmfError, struct SmfResultPage)
-	?recommendations@SmfMusicSearch@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 159 NONAME ; enum SmfError SmfMusicSearch::recommendations(class SmfTrackInfo, int, int)
-	??1SmfClient@@QAE@XZ @ 160 NONAME ; SmfClient::~SmfClient(void)
-	?customRequest@SmfMusicService@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 161 NONAME ; enum SmfError SmfMusicService::customRequest(int const &, class QByteArray *)
-	?searchAlbum@SmfMusicService@@QAE?AW4SmfError@@VSmfAlbum@@HH@Z @ 162 NONAME ; enum SmfError SmfMusicService::searchAlbum(class SmfAlbum, int, int)
-	??0SmfMusicService@@QAE@PAVSmfProvider@@@Z @ 163 NONAME ; SmfMusicService::SmfMusicService(class SmfProvider *)
-	?remove@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@@Z @ 164 NONAME ; enum SmfError SmfRelationMgr::remove(class QString &, class SmfContact const *)
-	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 165 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *)
-	?groupListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfGroup@@@@W4SmfError@@USmfResultPage@@@Z @ 166 NONAME ; void SmfContactFetcher::groupListAvailable(class QList<class SmfGroup> *, enum SmfError, struct SmfResultPage)
-	?setContact@SmfRelationItem@@QAEXAAVSmfContact@@@Z @ 167 NONAME ; void SmfRelationItem::setContact(class SmfContact &)
-	?searchByContact@SmfRelationMgr@@QAE?AVQString@@VSmfContact@@@Z @ 168 NONAME ; class QString SmfRelationMgr::searchByContact(class SmfContact)
-	?upload@SmfGallery@@QAE?AW4SmfError@@PAV?$QList@VSmfPicture@@@@PAVSmfPictureAlbum@@@Z @ 169 NONAME ; enum SmfError SmfGallery::upload(class QList<class SmfPicture> *, class SmfPictureAlbum *)
-	?cancelRequest@SmfEventsFetcher@@QAE?AW4SmfError@@XZ @ 170 NONAME ; enum SmfError SmfEventsFetcher::cancelRequest(void)
-	?getStaticMetaObject@SmfRelationMgr@@SAABUQMetaObject@@XZ @ 171 NONAME ; struct QMetaObject const & SmfRelationMgr::getStaticMetaObject(void)
-	??_ESmfMusicSearch@@UAE@I@Z @ 172 NONAME ; SmfMusicSearch::~SmfMusicSearch(unsigned int)
-	?getProvider@SmfGallery@@ABEPAVSmfProvider@@XZ @ 173 NONAME ; class SmfProvider * SmfGallery::getProvider(void) const
-	?searchVenueInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfLocation@@@@W4SmfError@@USmfResultPage@@@Z @ 174 NONAME ; void SmfMusicService::searchVenueInfoAvailable(class QList<class SmfLocation> *, enum SmfError, struct SmfResultPage)
-	?sharePost@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@AAVSmfContact@@_N@Z @ 175 NONAME ; enum SmfError SmfPostProvider::sharePost(class SmfPost &, class SmfContact &, bool)
-	?create@SmfRelationMgr@@QAE?AVQString@@PAVSmfProvider@@PAVSmfContact@@@Z @ 176 NONAME ; class QString SmfRelationMgr::create(class SmfProvider *, class SmfContact *)
-	?stores@SmfMusicSearch@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 177 NONAME ; enum SmfError SmfMusicSearch::stores(class SmfTrackInfo, int, int)
-	?cancelRequest@SmfPlaylistService@@QAE?AW4SmfError@@XZ @ 178 NONAME ; enum SmfError SmfPlaylistService::cancelRequest(void)
-	?venues@SmfEventsFetcher@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 179 NONAME ; enum SmfError SmfEventsFetcher::venues(class SmfLocation, int, int)
-	??_ESmfContactFetcher@@UAE@I@Z @ 180 NONAME ; SmfContactFetcher::~SmfContactFetcher(unsigned int)
-	?getProvider@SmfRelationItem@@QBE?AVSmfProvider@@XZ @ 181 NONAME ; class SmfProvider SmfRelationItem::getProvider(void) const
-	?tr@SmfGallery@@SA?AVQString@@PBD0H@Z @ 182 NONAME ; class QString SmfGallery::tr(char const *, char const *, int)
-	?searchAlbumInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfAlbum@@@@W4SmfError@@USmfResultPage@@@Z @ 183 NONAME ; void SmfMusicService::searchAlbumInfoAvailable(class QList<class SmfAlbum> *, enum SmfError, struct SmfResultPage)
-	?metaObject@SmfMusicSearch@@UBEPBUQMetaObject@@XZ @ 184 NONAME ; struct QMetaObject const * SmfMusicSearch::metaObject(void) const
-	?customDataAvailable@SmfContactFetcher@@IAEXHPAVQByteArray@@@Z @ 185 NONAME ; void SmfContactFetcher::customDataAvailable(int, class QByteArray *)
-	?customDataAvailable@SmfGallery@@IAEXHPAVQByteArray@@@Z @ 186 NONAME ; void SmfGallery::customDataAvailable(int, class QByteArray *)
-	?customRequest@SmfLyricsService@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 187 NONAME ; enum SmfError SmfLyricsService::customRequest(int const &, class QByteArray *)
-	??1SmfPostProvider@@UAE@XZ @ 188 NONAME ; SmfPostProvider::~SmfPostProvider(void)
-	?lyricsAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfLyrics@@@@W4SmfError@@USmfResultPage@@@Z @ 189 NONAME ; void SmfLyricsService::lyricsAvailable(class QList<class SmfLyrics> *, enum SmfError, struct SmfResultPage)
-	?cancelRequest@SmfGallery@@QAE?AW4SmfError@@XZ @ 190 NONAME ; enum SmfError SmfGallery::cancelRequest(void)
-	?tr@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 191 NONAME ; class QString SmfLyricsService::tr(char const *, char const *, int)
-	?tr@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 192 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *)
-	?qt_metacast@SmfEventsFetcher@@UAEPAXPBD@Z @ 193 NONAME ; void * SmfEventsFetcher::qt_metacast(char const *)
-	??_ESmfPostProvider@@UAE@I@Z @ 194 NONAME ; SmfPostProvider::~SmfPostProvider(unsigned int)
-	??0SmfRelationItem@@QAE@XZ @ 195 NONAME ; SmfRelationItem::SmfRelationItem(void)
-	??_ESmfMusicService@@UAE@I@Z @ 196 NONAME ; SmfMusicService::~SmfMusicService(unsigned int)
-	?postCurrentPlayingPlaylist@SmfPlaylistService@@QAE?AW4SmfError@@VSmfPlaylist@@@Z @ 197 NONAME ; enum SmfError SmfPlaylistService::postCurrentPlayingPlaylist(class SmfPlaylist)
-	?getAll@SmfRelationMgr@@QAE?AV?$QList@VSmfRelationItem@@@@AAVQString@@@Z @ 198 NONAME ; class QList<class SmfRelationItem> SmfRelationMgr::getAll(class QString &)
-	?trUtf8@SmfGallery@@SA?AVQString@@PBD0H@Z @ 199 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *, int)
-	?followersListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 200 NONAME ; void SmfContactFetcher::followersListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	??_ESmfRelationMgr@@UAE@I@Z @ 201 NONAME ; SmfRelationMgr::~SmfRelationMgr(unsigned int)
-	?post@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@AAVSmfLocation@@@Z @ 202 NONAME ; enum SmfError SmfPostProvider::post(class SmfPost &, class SmfLocation &)
-	?customRequest@SmfPlaylistService@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 203 NONAME ; enum SmfError SmfPlaylistService::customRequest(int const &, class QByteArray *)
-	?getStaticMetaObject@SmfLyricsService@@SAABUQMetaObject@@XZ @ 204 NONAME ; struct QMetaObject const & SmfLyricsService::getStaticMetaObject(void)
-	?playlistUpdated@SmfPlaylistService@@IAEXW4SmfError@@@Z @ 205 NONAME ; void SmfPlaylistService::playlistUpdated(enum SmfError)
-	?tr@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 206 NONAME ; class QString SmfLyricsService::tr(char const *, char const *)
-	?searchUserInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfMusicProfile@@@@W4SmfError@@USmfResultPage@@@Z @ 207 NONAME ; void SmfMusicService::searchUserInfoAvailable(class QList<class SmfMusicProfile> *, enum SmfError, struct SmfResultPage)
-	?groups@SmfContactFetcher@@QAE?AW4SmfError@@HH@Z @ 208 NONAME ; enum SmfError SmfContactFetcher::groups(int, int)
-	??_ESmfActivityFetcher@@UAE@I@Z @ 209 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(unsigned int)
-	??1SmfActivityFetcher@@UAE@XZ @ 210 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(void)
-	?tr@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 211 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *, int)
-	?searchById@SmfRelationMgr@@QAEPAVSmfRelationItem@@ABVQString@@@Z @ 212 NONAME ; class SmfRelationItem * SmfRelationMgr::searchById(class QString const &)
-	?eventsAvailable@SmfEventsFetcher@@IAEXPAV?$QList@VSmfEvent@@@@W4SmfError@@USmfResultPage@@@Z @ 213 NONAME ; void SmfEventsFetcher::eventsAvailable(class QList<class SmfEvent> *, enum SmfError, struct SmfResultPage)
-	??0SmfMusicSearch@@QAE@PAVSmfProvider@@@Z @ 214 NONAME ; SmfMusicSearch::SmfMusicSearch(class SmfProvider *)
-	?picturesAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPicture@@@@W4SmfError@@USmfResultPage@@@Z @ 215 NONAME ; void SmfGallery::picturesAvailable(class QList<class SmfPicture> *, enum SmfError, struct SmfResultPage)
-	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 216 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *, int)
-	?postRating@SmfMusicService@@QAE?AW4SmfError@@VSmfTrackInfo@@VSmfMusicRating@@@Z @ 217 NONAME ; enum SmfError SmfMusicService::postRating(class SmfTrackInfo, class SmfMusicRating)
-	?getProvider@SmfLyricsService@@ABEPAVSmfProvider@@XZ @ 218 NONAME ; class SmfProvider * SmfLyricsService::getProvider(void) const
-	??1SmfLyricsService@@UAE@XZ @ 219 NONAME ; SmfLyricsService::~SmfLyricsService(void)
-	?errorString@SmfClient@@QBE?AVQString@@ABW4SmfError@@@Z @ 220 NONAME ; class QString SmfClient::errorString(enum SmfError const &) const
-	?postfinished@SmfMusicService@@IAEXW4SmfError@@@Z @ 221 NONAME ; void SmfMusicService::postfinished(enum SmfError)
-	?qt_metacast@SmfMusicService@@UAEPAXPBD@Z @ 222 NONAME ; void * SmfMusicService::qt_metacast(char const *)
-	?cancelRequest@SmfContactFetcher@@QAE?AW4SmfError@@XZ @ 223 NONAME ; enum SmfError SmfContactFetcher::cancelRequest(void)
-	?staticMetaObject@SmfPlaylistService@@2UQMetaObject@@B @ 224 NONAME ; struct QMetaObject const SmfPlaylistService::staticMetaObject
-	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 225 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *, int)
-	?getStaticMetaObject@SmfActivityFetcher@@SAABUQMetaObject@@XZ @ 226 NONAME ; struct QMetaObject const & SmfActivityFetcher::getStaticMetaObject(void)
-	?staticMetaObject@SmfPostProvider@@2UQMetaObject@@B @ 227 NONAME ; struct QMetaObject const SmfPostProvider::staticMetaObject
-	?qt_metacall@SmfEventsFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 228 NONAME ; int SmfEventsFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?attendeesAvailable@SmfEventsFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 229 NONAME ; void SmfEventsFetcher::attendeesAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?albums@SmfGallery@@QAE?AW4SmfError@@VQStringList@@PAVSmfContact@@HH@Z @ 230 NONAME ; enum SmfError SmfGallery::albums(class QStringList, class SmfContact *, int, int)
-	?getContact@SmfRelationItem@@QBE?AVSmfContact@@XZ @ 231 NONAME ; class SmfContact SmfRelationItem::getContact(void) const
-	??_ESmfLyricsService@@UAE@I@Z @ 232 NONAME ; SmfLyricsService::~SmfLyricsService(unsigned int)
-	?postFinished@SmfPostProvider@@IAEXW4SmfError@@@Z @ 233 NONAME ; void SmfPostProvider::postFinished(enum SmfError)
-	?customDataAvailable@SmfPostProvider@@IAEXHPAVQByteArray@@@Z @ 234 NONAME ; void SmfPostProvider::customDataAvailable(int, class QByteArray *)
-	?customRequest@SmfPostProvider@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 235 NONAME ; enum SmfError SmfPostProvider::customRequest(int const &, class QByteArray *)
-	?trackInfo@SmfMusicSearch@@QAE?AW4SmfError@@VSmfMusicFingerPrint@@HH@Z @ 236 NONAME ; enum SmfError SmfMusicSearch::trackInfo(class SmfMusicFingerPrint, int, int)
-	??_ESmfGallery@@UAE@I@Z @ 237 NONAME ; SmfGallery::~SmfGallery(unsigned int)
-	?userMusicInfo@SmfMusicService@@QAE?AW4SmfError@@XZ @ 238 NONAME ; enum SmfError SmfMusicService::userMusicInfo(void)
-	?lyrics@SmfLyricsService@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 239 NONAME ; enum SmfError SmfLyricsService::lyrics(class SmfTrackInfo, int, int)
-	?followers@SmfContactFetcher@@QAE?AW4SmfError@@HH@Z @ 240 NONAME ; enum SmfError SmfContactFetcher::followers(int, int)
-	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 241 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *, int)
-	??_ESmfEventsFetcher@@UAE@I@Z @ 242 NONAME ; SmfEventsFetcher::~SmfEventsFetcher(unsigned int)
-	?tr@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 243 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *, int)
-	?customRequest@SmfMusicSearch@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 244 NONAME ; enum SmfError SmfMusicSearch::customRequest(int const &, class QByteArray *)
-	?cancelRequest@SmfMusicSearch@@QAE?AW4SmfError@@XZ @ 245 NONAME ; enum SmfError SmfMusicSearch::cancelRequest(void)
-	?playlists@SmfPlaylistService@@QAE?AW4SmfError@@HH@Z @ 246 NONAME ; enum SmfError SmfPlaylistService::playlists(int, int)
-	??0SmfRelationMgr@@QAE@PAVQObject@@@Z @ 247 NONAME ; SmfRelationMgr::SmfRelationMgr(class QObject *)
-	?tr@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 248 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *, int)
-	??0SmfContactFetcher@@QAE@PAVSmfProvider@@@Z @ 249 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *)
-	?searchContactFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 250 NONAME ; void SmfContactFetcher::searchContactFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?eventsUpdated@SmfEventsFetcher@@IAEXW4SmfError@@@Z @ 251 NONAME ; void SmfEventsFetcher::eventsUpdated(enum SmfError)
-	?customRequest@SmfActivityFetcher@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 252 NONAME ; enum SmfError SmfActivityFetcher::customRequest(int const &, class QByteArray *)
-	?customRequest@SmfEventsFetcher@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 253 NONAME ; enum SmfError SmfEventsFetcher::customRequest(int const &, class QByteArray *)
-	?qt_metacast@SmfLyricsService@@UAEPAXPBD@Z @ 254 NONAME ; void * SmfLyricsService::qt_metacast(char const *)
-	?setIndex@SmfRelationItem@@QAEXI@Z @ 255 NONAME ; void SmfRelationItem::setIndex(unsigned int)
-	?setProvider@SmfRelationItem@@QAEXAAVSmfProvider@@@Z @ 256 NONAME ; void SmfRelationItem::setProvider(class SmfProvider &)
-	?postCurrentPlaying@SmfMusicService@@QAE?AW4SmfError@@VSmfTrackInfo@@@Z @ 257 NONAME ; enum SmfError SmfMusicService::postCurrentPlaying(class SmfTrackInfo)
-	?metaObject@SmfRelationMgr@@UBEPBUQMetaObject@@XZ @ 258 NONAME ; struct QMetaObject const * SmfRelationMgr::metaObject(void) const
-	?searchInGroup@SmfContactFetcher@@QAE?AW4SmfError@@VSmfGroup@@PAVSmfContact@@HH@Z @ 259 NONAME ; enum SmfError SmfContactFetcher::searchInGroup(class SmfGroup, class SmfContact *, int, int)
-	?searchEventsInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfEvent@@@@W4SmfError@@USmfResultPage@@@Z @ 260 NONAME ; void SmfMusicService::searchEventsInfoAvailable(class QList<class SmfEvent> *, enum SmfError, struct SmfResultPage)
-	?tr@SmfEventsFetcher@@SA?AVQString@@PBD0H@Z @ 261 NONAME ; class QString SmfEventsFetcher::tr(char const *, char const *, int)
-	?playlistsListAvailable@SmfPlaylistService@@IAEXPAV?$QList@VSmfPlaylist@@@@W4SmfError@@USmfResultPage@@@Z @ 262 NONAME ; void SmfPlaylistService::playlistsListAvailable(class QList<class SmfPlaylist> *, enum SmfError, struct SmfResultPage)
-	?qt_metacast@SmfContactFetcher@@UAEPAXPBD@Z @ 263 NONAME ; void * SmfContactFetcher::qt_metacast(char const *)
-	?postAppearence@SmfPostProvider@@QAE?AW4SmfError@@W4SmfAppearenceInfo@@ABVQString@@@Z @ 264 NONAME ; enum SmfError SmfPostProvider::postAppearence(enum SmfAppearenceInfo, class QString const &)
+	?trUtf8@SmfClient@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString SmfClient::trUtf8(char const *, char const *)
+	?started@SmfClient@@AAEXXZ @ 4 NONAME ; void SmfClient::started(void)
+	?postComments@SmfMusicService@@QAE?AW4SmfError@@VSmfTrackInfo@@VSmfComment@@@Z @ 5 NONAME ; enum SmfError SmfMusicService::postComments(class SmfTrackInfo, class SmfComment)
+	??0SmfClient@@QAE@XZ @ 6 NONAME ; SmfClient::SmfClient(void)
+	?tr@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *)
+	?getIndex@SmfRelationItem@@QBEIXZ @ 8 NONAME ; unsigned int SmfRelationItem::getIndex(void) const
+	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *)
+	?getProvider@SmfMusicSearch@@ABEPAVSmfProvider@@XZ @ 10 NONAME ; class SmfProvider * SmfMusicSearch::getProvider(void) const
+	?getStaticMetaObject@SmfPostProvider@@SAABUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const & SmfPostProvider::getStaticMetaObject(void)
+	?tr@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *)
+	?customDataAvailable@SmfMusicService@@IAEXABHPAVQByteArray@@@Z @ 13 NONAME ; void SmfMusicService::customDataAvailable(int const &, class QByteArray *)
+	??1SmfRelationItem@@QAE@XZ @ 14 NONAME ; SmfRelationItem::~SmfRelationItem(void)
+	?updatePost@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@@Z @ 15 NONAME ; enum SmfError SmfPostProvider::updatePost(class SmfPost &)
+	??1SmfPlaylistService@@UAE@XZ @ 16 NONAME ; SmfPlaylistService::~SmfPlaylistService(void)
+	?supportedFormats@SmfPostProvider@@QBE?AV?$QVector@VQTextFormat@@@@XZ @ 17 NONAME ; class QVector<class QTextFormat> SmfPostProvider::supportedFormats(void) const
+	?searchEvents@SmfMusicService@@QAE?AW4SmfError@@VSmfEvent@@HH@Z @ 18 NONAME ; enum SmfError SmfMusicService::searchEvents(class SmfEvent, int, int)
+	?getStaticMetaObject@SmfMusicSearch@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & SmfMusicSearch::getStaticMetaObject(void)
+	?getStaticMetaObject@SmfGallery@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & SmfGallery::getStaticMetaObject(void)
+	?staticMetaObject@SmfGallery@@2UQMetaObject@@B @ 21 NONAME ; struct QMetaObject const SmfGallery::staticMetaObject
+	?commentOnAPost@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@0PAVSmfLocation@@@Z @ 22 NONAME ; enum SmfError SmfPostProvider::commentOnAPost(class SmfPost &, class SmfPost &, class SmfLocation *)
+	?staticMetaObject@SmfClient@@2UQMetaObject@@B @ 23 NONAME ; struct QMetaObject const SmfClient::staticMetaObject
+	??0SmfActivityFetcher@@QAE@PAVSmfProvider@@@Z @ 24 NONAME ; SmfActivityFetcher::SmfActivityFetcher(class SmfProvider *)
+	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 25 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *, int)
+	?metaObject@SmfGallery@@UBEPBUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const * SmfGallery::metaObject(void) const
+	?trUtf8@SmfEventsFetcher@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString SmfEventsFetcher::trUtf8(char const *, char const *, int)
+	?searchUser@SmfMusicService@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 28 NONAME ; enum SmfError SmfMusicService::searchUser(class SmfLocation, int, int)
+	?getProvider@SmfEventsFetcher@@ABEPAVSmfProvider@@XZ @ 29 NONAME ; class SmfProvider * SmfEventsFetcher::getProvider(void) const
+	??_ESmfPlaylistService@@UAE@I@Z @ 30 NONAME ; SmfPlaylistService::~SmfPlaylistService(unsigned int)
+	?friendsActivities@SmfActivityFetcher@@QAE?AW4SmfError@@ABVSmfContact@@HH@Z @ 31 NONAME ; enum SmfError SmfActivityFetcher::friendsActivities(class SmfContact const &, int, int)
+	?customDataAvailable@SmfMusicSearch@@IAEXABHPAVQByteArray@@@Z @ 32 NONAME ; void SmfMusicSearch::customDataAvailable(int const &, class QByteArray *)
+	?supportsAppearence@SmfPostProvider@@QBE_NXZ @ 33 NONAME ; bool SmfPostProvider::supportsAppearence(void) const
+	?getStaticMetaObject@SmfPlaylistService@@SAABUQMetaObject@@XZ @ 34 NONAME ; struct QMetaObject const & SmfPlaylistService::getStaticMetaObject(void)
+	?GetServices@SmfClient@@QAEPAV?$QList@VSmfProvider@@@@ABVQString@@@Z @ 35 NONAME ; class QList<class SmfProvider> * SmfClient::GetServices(class QString const &)
+	?staticMetaObject@SmfLyricsService@@2UQMetaObject@@B @ 36 NONAME ; struct QMetaObject const SmfLyricsService::staticMetaObject
+	?staticMetaObject@SmfActivityFetcher@@2UQMetaObject@@B @ 37 NONAME ; struct QMetaObject const SmfActivityFetcher::staticMetaObject
+	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *)
+	?friendsListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 39 NONAME ; void SmfContactFetcher::friendsListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?qt_metacast@SmfMusicSearch@@UAEPAXPBD@Z @ 40 NONAME ; void * SmfMusicSearch::qt_metacast(char const *)
+	?customDataAvailable@SmfLyricsService@@IAEXABHPAVQByteArray@@@Z @ 41 NONAME ; void SmfLyricsService::customDataAvailable(int const &, class QByteArray *)
+	?searchNear@SmfContactFetcher@@QAE?AW4SmfError@@PAVSmfLocation@@W4SmfLocationSearchBoundary@@HH@Z @ 42 NONAME ; enum SmfError SmfContactFetcher::searchNear(class SmfLocation *, enum SmfLocationSearchBoundary, int, int)
+	?qt_metacast@SmfPlaylistService@@UAEPAXPBD@Z @ 43 NONAME ; void * SmfPlaylistService::qt_metacast(char const *)
+	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *, int)
+	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *, int)
+	?tr@SmfClient@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString SmfClient::tr(char const *, char const *, int)
+	?metaObject@SmfPlaylistService@@UBEPBUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const * SmfPlaylistService::metaObject(void) const
+	?tr@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 48 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *, int)
+	?metaObject@SmfPostProvider@@UBEPBUQMetaObject@@XZ @ 49 NONAME ; struct QMetaObject const * SmfPostProvider::metaObject(void) const
+	?searchArtist@SmfMusicService@@QAE?AW4SmfError@@VSmfArtists@@HH@Z @ 50 NONAME ; enum SmfError SmfMusicService::searchArtist(class SmfArtists, int, int)
+	?tr@SmfGallery@@SA?AVQString@@PBD0@Z @ 51 NONAME ; class QString SmfGallery::tr(char const *, char const *)
+	?qt_metacall@SmfPostProvider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 52 NONAME ; int SmfPostProvider::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfRelationItem@@@Z @ 53 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfRelationItem &)
+	?get@SmfRelationMgr@@QAEPAVSmfRelationItem@@AAVQString@@I@Z @ 54 NONAME ; class SmfRelationItem * SmfRelationMgr::get(class QString &, unsigned int)
+	?storeSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfProvider@@@@W4SmfError@@USmfResultPage@@@Z @ 55 NONAME ; void SmfMusicSearch::storeSearchAvailable(class QList<class SmfProvider> *, enum SmfError, struct SmfResultPage)
+	?pictures@SmfGallery@@QAE?AW4SmfError@@AAV?$QList@VSmfPictureAlbum@@@@HH@Z @ 56 NONAME ; enum SmfError SmfGallery::pictures(class QList<class SmfPictureAlbum> &, int, int)
+	?uploadFinished@SmfGallery@@IAEXV?$QList@W4SmfError@@@@@Z @ 57 NONAME ; void SmfGallery::uploadFinished(class QList<enum SmfError>)
+	?getStaticMetaObject@SmfMusicService@@SAABUQMetaObject@@XZ @ 58 NONAME ; struct QMetaObject const & SmfMusicService::getStaticMetaObject(void)
+	?upload@SmfGallery@@QAE?AW4SmfError@@PAVSmfPicture@@PAVSmfPictureAlbum@@@Z @ 59 NONAME ; enum SmfError SmfGallery::upload(class SmfPicture *, class SmfPictureAlbum *)
+	?tracksOfArtist@SmfMusicSearch@@QAE?AW4SmfError@@VSmfArtists@@HH@Z @ 60 NONAME ; enum SmfError SmfMusicSearch::tracksOfArtist(class SmfArtists, int, int)
+	?getProvider@SmfPostProvider@@ABEPAVSmfProvider@@XZ @ 61 NONAME ; class SmfProvider * SmfPostProvider::getProvider(void) const
+	?getProvider@SmfPlaylistService@@ABEPAVSmfProvider@@XZ @ 62 NONAME ; class SmfProvider * SmfPlaylistService::getProvider(void) const
+	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 63 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *)
+	?getStaticMetaObject@SmfContactFetcher@@SAABUQMetaObject@@XZ @ 64 NONAME ; struct QMetaObject const & SmfContactFetcher::getStaticMetaObject(void)
+	?tr@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString SmfPostProvider::tr(char const *, char const *)
+	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 66 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *, int)
+	??0SmfEventsFetcher@@QAE@PAVSmfProvider@@@Z @ 67 NONAME ; SmfEventsFetcher::SmfEventsFetcher(class SmfProvider *)
+	?resultsAvailable@SmfActivityFetcher@@IAEXPAV?$QList@VSmfActivityEntry@@@@W4SmfError@@USmfResultPage@@@Z @ 68 NONAME ; void SmfActivityFetcher::resultsAvailable(class QList<class SmfActivityEntry> *, enum SmfError, struct SmfResultPage)
+	?qt_metacall@SmfMusicService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 69 NONAME ; int SmfMusicService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@SmfPlaylistService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 70 NONAME ; int SmfPlaylistService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 71 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *)
+	?tr@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 72 NONAME ; class QString SmfPostProvider::tr(char const *, char const *, int)
+	?Delete@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@@Z @ 73 NONAME ; enum SmfError SmfRelationMgr::Delete(class QString &)
+	?metaObject@SmfLyricsService@@UBEPBUQMetaObject@@XZ @ 74 NONAME ; struct QMetaObject const * SmfLyricsService::metaObject(void) const
+	?userMusicInfoAvailable@SmfMusicService@@IAEXPAVSmfMusicProfile@@W4SmfError@@@Z @ 75 NONAME ; void SmfMusicService::userMusicInfoAvailable(class SmfMusicProfile *, enum SmfError)
+	?searchVenue@SmfMusicService@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 76 NONAME ; enum SmfError SmfMusicService::searchVenue(class SmfLocation, int, int)
+	?qt_metacast@SmfClient@@UAEPAXPBD@Z @ 77 NONAME ; void * SmfClient::qt_metacast(char const *)
+	??0SmfPostProvider@@QAE@PAVSmfProvider@@@Z @ 78 NONAME ; SmfPostProvider::SmfPostProvider(class SmfProvider *)
+	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *, int)
+	?postEvents@SmfEventsFetcher@@QAE?AW4SmfError@@V?$QList@VSmfEvent@@@@@Z @ 80 NONAME ; enum SmfError SmfEventsFetcher::postEvents(class QList<class SmfEvent>)
+	??_ESmfRelationItem@@QAE@I@Z @ 81 NONAME ; SmfRelationItem::~SmfRelationItem(unsigned int)
+	?cancelRequest@SmfPostProvider@@QAE?AW4SmfError@@XZ @ 82 NONAME ; enum SmfError SmfPostProvider::cancelRequest(void)
+	?friends@SmfContactFetcher@@QAE?AW4SmfError@@HH@Z @ 83 NONAME ; enum SmfError SmfContactFetcher::friends(int, int)
+	??0SmfContactFetcher@@QAE@PAVSmfProvider@@PAVSmfContact@@@Z @ 84 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *, class SmfContact *)
+	?postComment@SmfGallery@@QAE?AW4SmfError@@VSmfPicture@@VSmfComment@@@Z @ 85 NONAME ; enum SmfError SmfGallery::postComment(class SmfPicture, class SmfComment)
+	?getProvider@SmfContactFetcher@@ABEPAVSmfProvider@@XZ @ 86 NONAME ; class SmfProvider * SmfContactFetcher::getProvider(void) const
+	?logoutOfService@SmfClient@@QAE?AW4SmfError@@PAVSmfProvider@@@Z @ 87 NONAME ; enum SmfError SmfClient::logoutOfService(class SmfProvider *)
+	??0SmfRelationItem@@QAE@ABV0@@Z @ 88 NONAME ; SmfRelationItem::SmfRelationItem(class SmfRelationItem const &)
+	?addToPlaylist@SmfPlaylistService@@QAE?AW4SmfError@@VSmfPlaylist@@PAV?$QList@VSmfTrackInfo@@@@@Z @ 89 NONAME ; enum SmfError SmfPlaylistService::addToPlaylist(class SmfPlaylist, class QList<class SmfTrackInfo> *)
+	?customDataAvailable@SmfPlaylistService@@IAEXABHPAVQByteArray@@@Z @ 90 NONAME ; void SmfPlaylistService::customDataAvailable(int const &, class QByteArray *)
+	?qt_metacall@SmfActivityFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 91 NONAME ; int SmfActivityFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?attendees@SmfEventsFetcher@@QAE?AW4SmfError@@VSmfEvent@@HH@Z @ 92 NONAME ; enum SmfError SmfEventsFetcher::attendees(class SmfEvent, int, int)
+	?staticMetaObject@SmfMusicService@@2UQMetaObject@@B @ 93 NONAME ; struct QMetaObject const SmfMusicService::staticMetaObject
+	??_ESmfClient@@UAE@I@Z @ 94 NONAME ; SmfClient::~SmfClient(unsigned int)
+	?subtitles@SmfLyricsService@@QAE?AW4SmfError@@VSmfTrackInfo@@W4SmfSubtitleSearchFilter@@HH@Z @ 95 NONAME ; enum SmfError SmfLyricsService::subtitles(class SmfTrackInfo, enum SmfSubtitleSearchFilter, int, int)
+	?staticMetaObject@SmfMusicSearch@@2UQMetaObject@@B @ 96 NONAME ; struct QMetaObject const SmfMusicSearch::staticMetaObject
+	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0@Z @ 97 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *)
+	?qt_metacast@SmfGallery@@UAEPAXPBD@Z @ 98 NONAME ; void * SmfGallery::qt_metacast(char const *)
+	?tr@SmfMusicService@@SA?AVQString@@PBD0@Z @ 99 NONAME ; class QString SmfMusicService::tr(char const *, char const *)
+	?finished@SmfClient@@AAEXHW4ExitStatus@QProcess@@@Z @ 100 NONAME ; void SmfClient::finished(int, enum QProcess::ExitStatus)
+	?metaObject@SmfMusicService@@UBEPBUQMetaObject@@XZ @ 101 NONAME ; struct QMetaObject const * SmfMusicService::metaObject(void) const
+	?cancelRequest@SmfLyricsService@@QAE?AW4SmfError@@XZ @ 102 NONAME ; enum SmfError SmfLyricsService::cancelRequest(void)
+	?trUtf8@SmfEventsFetcher@@SA?AVQString@@PBD0@Z @ 103 NONAME ; class QString SmfEventsFetcher::trUtf8(char const *, char const *)
+	?staticMetaObject@SmfEventsFetcher@@2UQMetaObject@@B @ 104 NONAME ; struct QMetaObject const SmfEventsFetcher::staticMetaObject
+	?postsAvailable@SmfPostProvider@@IAEXPAV?$QList@VSmfPost@@@@W4SmfError@@USmfResultPage@@@Z @ 105 NONAME ; void SmfPostProvider::postsAvailable(class QList<class SmfPost> *, enum SmfError, struct SmfResultPage)
+	?playlistsOf@SmfPlaylistService@@QAE?AW4SmfError@@PAVSmfContact@@HH@Z @ 106 NONAME ; enum SmfError SmfPlaylistService::playlistsOf(class SmfContact *, int, int)
+	??1SmfGallery@@UAE@XZ @ 107 NONAME ; SmfGallery::~SmfGallery(void)
+	??1SmfClient@@UAE@XZ @ 108 NONAME ; SmfClient::~SmfClient(void)
+	?tracksOfAlbum@SmfMusicSearch@@QAE?AW4SmfError@@VSmfAlbum@@HH@Z @ 109 NONAME ; enum SmfError SmfMusicSearch::tracksOfAlbum(class SmfAlbum, int, int)
+	?tr@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 110 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *)
+	?customDataAvailable@SmfEventsFetcher@@IAEXABHPAVQByteArray@@@Z @ 111 NONAME ; void SmfEventsFetcher::customDataAvailable(int const &, class QByteArray *)
+	?subtitleAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfSubtitle@@@@W4SmfError@@USmfResultPage@@@Z @ 112 NONAME ; void SmfLyricsService::subtitleAvailable(class QList<class SmfSubtitle> *, enum SmfError, struct SmfResultPage)
+	?associate@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@PAVSmfProvider@@@Z @ 113 NONAME ; enum SmfError SmfRelationMgr::associate(class QString &, class SmfContact const *, class SmfProvider *)
+	?getProvider@SmfMusicService@@ABEPAVSmfProvider@@XZ @ 114 NONAME ; class SmfProvider * SmfMusicService::getProvider(void) const
+	?staticMetaObject@SmfContactFetcher@@2UQMetaObject@@B @ 115 NONAME ; struct QMetaObject const SmfContactFetcher::staticMetaObject
+	?searchNearFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 116 NONAME ; void SmfContactFetcher::searchNearFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?metaObject@SmfContactFetcher@@UBEPBUQMetaObject@@XZ @ 117 NONAME ; struct QMetaObject const * SmfContactFetcher::metaObject(void) const
+	?searchInGroupFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 118 NONAME ; void SmfContactFetcher::searchInGroupFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	??1SmfRelationMgr@@UAE@XZ @ 119 NONAME ; SmfRelationMgr::~SmfRelationMgr(void)
+	?qt_metacast@SmfPostProvider@@UAEPAXPBD@Z @ 120 NONAME ; void * SmfPostProvider::qt_metacast(char const *)
+	?getAllRelations@SmfRelationMgr@@QAE?AV?$QList@VQString@@@@XZ @ 121 NONAME ; class QList<class QString> SmfRelationMgr::getAllRelations(void)
+	?qt_metacast@SmfRelationMgr@@UAEPAXPBD@Z @ 122 NONAME ; void * SmfRelationMgr::qt_metacast(char const *)
+	?cancelRequest@SmfMusicService@@QAE?AW4SmfError@@XZ @ 123 NONAME ; enum SmfError SmfMusicService::cancelRequest(void)
+	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 124 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *)
+	?tr@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 125 NONAME ; class QString SmfMusicService::tr(char const *, char const *, int)
+	??0SmfPlaylistService@@QAE@PAVSmfProvider@@@Z @ 126 NONAME ; SmfPlaylistService::SmfPlaylistService(class SmfProvider *)
+	?searchArtistInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfArtists@@@@W4SmfError@@USmfResultPage@@@Z @ 127 NONAME ; void SmfMusicService::searchArtistInfoAvailable(class QList<class SmfArtists> *, enum SmfError, struct SmfResultPage)
+	?getStaticMetaObject@SmfClient@@SAABUQMetaObject@@XZ @ 128 NONAME ; struct QMetaObject const & SmfClient::getStaticMetaObject(void)
+	?metaObject@SmfActivityFetcher@@UBEPBUQMetaObject@@XZ @ 129 NONAME ; struct QMetaObject const * SmfActivityFetcher::metaObject(void) const
+	?selfActivities@SmfActivityFetcher@@QAE?AW4SmfError@@HH@Z @ 130 NONAME ; enum SmfError SmfActivityFetcher::selfActivities(int, int)
+	?trackSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfTrackInfo@@@@W4SmfError@@USmfResultPage@@@Z @ 131 NONAME ; void SmfMusicSearch::trackSearchAvailable(class QList<class SmfTrackInfo> *, enum SmfError, struct SmfResultPage)
+	?venuesAvailable@SmfEventsFetcher@@IAEXPAV?$QList@VSmfLocation@@@@W4SmfError@@USmfResultPage@@@Z @ 132 NONAME ; void SmfEventsFetcher::venuesAvailable(class QList<class SmfLocation> *, enum SmfError, struct SmfResultPage)
+	?customRequest@SmfGallery@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 133 NONAME ; enum SmfError SmfGallery::customRequest(int const &, class QByteArray *)
+	?create@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PAVSmfProvider@@PAVSmfContact@@@Z @ 134 NONAME ; enum SmfError SmfRelationMgr::create(class QString &, class SmfProvider *, class SmfContact *)
+	?events@SmfEventsFetcher@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 135 NONAME ; enum SmfError SmfEventsFetcher::events(class SmfLocation, int, int)
+	?count@SmfRelationMgr@@QAEIVQString@@@Z @ 136 NONAME ; unsigned int SmfRelationMgr::count(class QString)
+	?staticMetaObject@SmfRelationMgr@@2UQMetaObject@@B @ 137 NONAME ; struct QMetaObject const SmfRelationMgr::staticMetaObject
+	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 138 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *)
+	?qt_metacall@SmfClient@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 139 NONAME ; int SmfClient::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?description@SmfGallery@@QAE?AW4SmfError@@AAVSmfPicture@@@Z @ 140 NONAME ; enum SmfError SmfGallery::description(class SmfPicture &)
+	?filtered@SmfActivityFetcher@@QAE?AW4SmfError@@V?$QList@W4SmfActivityObjectType@@@@HH@Z @ 141 NONAME ; enum SmfError SmfActivityFetcher::filtered(class QList<enum SmfActivityObjectType>, int, int)
+	?metaObject@SmfEventsFetcher@@UBEPBUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const * SmfEventsFetcher::metaObject(void) const
+	?maxCharsInPost@SmfPostProvider@@QBEHXZ @ 143 NONAME ; int SmfPostProvider::maxCharsInPost(void) const
+	??1SmfEventsFetcher@@UAE@XZ @ 144 NONAME ; SmfEventsFetcher::~SmfEventsFetcher(void)
+	?qt_metacall@SmfMusicSearch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 145 NONAME ; int SmfMusicSearch::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?getProvider@SmfActivityFetcher@@ABEPAVSmfProvider@@XZ @ 146 NONAME ; class SmfProvider * SmfActivityFetcher::getProvider(void) const
+	?customRequest@SmfContactFetcher@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 147 NONAME ; enum SmfError SmfContactFetcher::customRequest(int const &, class QByteArray *)
+	?search@SmfContactFetcher@@QAE?AW4SmfError@@PAVSmfContact@@HH@Z @ 148 NONAME ; enum SmfError SmfContactFetcher::search(class SmfContact *, int, int)
+	?cancelRequest@SmfActivityFetcher@@QAE?AW4SmfError@@XZ @ 149 NONAME ; enum SmfError SmfActivityFetcher::cancelRequest(void)
+	??1SmfMusicService@@UAE@XZ @ 150 NONAME ; SmfMusicService::~SmfMusicService(void)
+	?descriptionAvailable@SmfGallery@@IAEXVQString@@W4SmfError@@@Z @ 151 NONAME ; void SmfGallery::descriptionAvailable(class QString, enum SmfError)
+	??1SmfContactFetcher@@UAE@XZ @ 152 NONAME ; SmfContactFetcher::~SmfContactFetcher(void)
+	?customDataAvailable@SmfActivityFetcher@@IAEXABHPAVQByteArray@@@Z @ 153 NONAME ; void SmfActivityFetcher::customDataAvailable(int const &, class QByteArray *)
+	?checkAuthorization@SmfClient@@QAE?AW4SMFProviderAuthorizationStatus@@ABVSmfProvider@@@Z @ 154 NONAME ; enum SMFProviderAuthorizationStatus SmfClient::checkAuthorization(class SmfProvider const &)
+	?maxItems@SmfPostProvider@@QBEHXZ @ 155 NONAME ; int SmfPostProvider::maxItems(void) const
+	??0SmfLyricsService@@QAE@PAVSmfProvider@@@Z @ 156 NONAME ; SmfLyricsService::SmfLyricsService(class SmfProvider *)
+	?postDirected@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@AAVSmfContact@@PAVSmfLocation@@@Z @ 157 NONAME ; enum SmfError SmfPostProvider::postDirected(class SmfPost &, class SmfContact &, class SmfLocation *)
+	?qt_metacall@SmfRelationMgr@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 158 NONAME ; int SmfRelationMgr::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?posts@SmfPostProvider@@QAE?AW4SmfError@@PAVSmfContact@@HH@Z @ 159 NONAME ; enum SmfError SmfPostProvider::posts(class SmfContact *, int, int)
+	?qt_metacall@SmfLyricsService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 160 NONAME ; int SmfLyricsService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacast@SmfActivityFetcher@@UAEPAXPBD@Z @ 161 NONAME ; void * SmfActivityFetcher::qt_metacast(char const *)
+	?tr@SmfEventsFetcher@@SA?AVQString@@PBD0@Z @ 162 NONAME ; class QString SmfEventsFetcher::tr(char const *, char const *)
+	?getStaticMetaObject@SmfEventsFetcher@@SAABUQMetaObject@@XZ @ 163 NONAME ; struct QMetaObject const & SmfEventsFetcher::getStaticMetaObject(void)
+	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 164 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *, int)
+	?loginToService@SmfClient@@QAE?AW4SmfError@@PAVSmfProvider@@@Z @ 165 NONAME ; enum SmfError SmfClient::loginToService(class SmfProvider *)
+	?qt_metacall@SmfContactFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 166 NONAME ; int SmfContactFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@SmfClient@@SA?AVQString@@PBD0H@Z @ 167 NONAME ; class QString SmfClient::trUtf8(char const *, char const *, int)
+	?tracksSimilar@SmfMusicSearch@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 168 NONAME ; enum SmfError SmfMusicSearch::tracksSimilar(class SmfTrackInfo, int, int)
+	?trUtf8@SmfGallery@@SA?AVQString@@PBD0@Z @ 169 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *)
+	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 170 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *)
+	?qt_metacall@SmfGallery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 171 NONAME ; int SmfGallery::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??1SmfMusicSearch@@UAE@XZ @ 172 NONAME ; SmfMusicSearch::~SmfMusicSearch(void)
+	?albumsAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPictureAlbum@@@@W4SmfError@@USmfResultPage@@@Z @ 173 NONAME ; void SmfGallery::albumsAvailable(class QList<class SmfPictureAlbum> *, enum SmfError, struct SmfResultPage)
+	?recommendations@SmfMusicSearch@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 174 NONAME ; enum SmfError SmfMusicSearch::recommendations(class SmfTrackInfo, int, int)
+	?customRequest@SmfMusicService@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 175 NONAME ; enum SmfError SmfMusicService::customRequest(int const &, class QByteArray *)
+	?searchAlbum@SmfMusicService@@QAE?AW4SmfError@@VSmfAlbum@@HH@Z @ 176 NONAME ; enum SmfError SmfMusicService::searchAlbum(class SmfAlbum, int, int)
+	??0SmfMusicService@@QAE@PAVSmfProvider@@@Z @ 177 NONAME ; SmfMusicService::SmfMusicService(class SmfProvider *)
+	?remove@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@@Z @ 178 NONAME ; enum SmfError SmfRelationMgr::remove(class QString &, class SmfContact const *)
+	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 179 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *)
+	?groupListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfGroup@@@@W4SmfError@@USmfResultPage@@@Z @ 180 NONAME ; void SmfContactFetcher::groupListAvailable(class QList<class SmfGroup> *, enum SmfError, struct SmfResultPage)
+	?setContact@SmfRelationItem@@QAEXAAVSmfContact@@@Z @ 181 NONAME ; void SmfRelationItem::setContact(class SmfContact &)
+	?searchByContact@SmfRelationMgr@@QAE?AVQString@@VSmfContact@@@Z @ 182 NONAME ; class QString SmfRelationMgr::searchByContact(class SmfContact)
+	?upload@SmfGallery@@QAE?AW4SmfError@@PAV?$QList@VSmfPicture@@@@PAVSmfPictureAlbum@@@Z @ 183 NONAME ; enum SmfError SmfGallery::upload(class QList<class SmfPicture> *, class SmfPictureAlbum *)
+	?cancelRequest@SmfEventsFetcher@@QAE?AW4SmfError@@XZ @ 184 NONAME ; enum SmfError SmfEventsFetcher::cancelRequest(void)
+	?getStaticMetaObject@SmfRelationMgr@@SAABUQMetaObject@@XZ @ 185 NONAME ; struct QMetaObject const & SmfRelationMgr::getStaticMetaObject(void)
+	??_ESmfMusicSearch@@UAE@I@Z @ 186 NONAME ; SmfMusicSearch::~SmfMusicSearch(unsigned int)
+	?getProvider@SmfGallery@@ABEPAVSmfProvider@@XZ @ 187 NONAME ; class SmfProvider * SmfGallery::getProvider(void) const
+	?searchVenueInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfLocation@@@@W4SmfError@@USmfResultPage@@@Z @ 188 NONAME ; void SmfMusicService::searchVenueInfoAvailable(class QList<class SmfLocation> *, enum SmfError, struct SmfResultPage)
+	?sharePost@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@AAVSmfContact@@_N@Z @ 189 NONAME ; enum SmfError SmfPostProvider::sharePost(class SmfPost &, class SmfContact &, bool)
+	?stores@SmfMusicSearch@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 190 NONAME ; enum SmfError SmfMusicSearch::stores(class SmfTrackInfo, int, int)
+	?cancelRequest@SmfPlaylistService@@QAE?AW4SmfError@@XZ @ 191 NONAME ; enum SmfError SmfPlaylistService::cancelRequest(void)
+	?venues@SmfEventsFetcher@@QAE?AW4SmfError@@VSmfLocation@@HH@Z @ 192 NONAME ; enum SmfError SmfEventsFetcher::venues(class SmfLocation, int, int)
+	??_ESmfContactFetcher@@UAE@I@Z @ 193 NONAME ; SmfContactFetcher::~SmfContactFetcher(unsigned int)
+	?getProvider@SmfRelationItem@@QBE?AVSmfProvider@@XZ @ 194 NONAME ; class SmfProvider SmfRelationItem::getProvider(void) const
+	?tr@SmfGallery@@SA?AVQString@@PBD0H@Z @ 195 NONAME ; class QString SmfGallery::tr(char const *, char const *, int)
+	?searchAlbumInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfAlbum@@@@W4SmfError@@USmfResultPage@@@Z @ 196 NONAME ; void SmfMusicService::searchAlbumInfoAvailable(class QList<class SmfAlbum> *, enum SmfError, struct SmfResultPage)
+	?metaObject@SmfMusicSearch@@UBEPBUQMetaObject@@XZ @ 197 NONAME ; struct QMetaObject const * SmfMusicSearch::metaObject(void) const
+	?customDataAvailable@SmfContactFetcher@@IAEXHPAVQByteArray@@@Z @ 198 NONAME ; void SmfContactFetcher::customDataAvailable(int, class QByteArray *)
+	?customDataAvailable@SmfGallery@@IAEXHPAVQByteArray@@@Z @ 199 NONAME ; void SmfGallery::customDataAvailable(int, class QByteArray *)
+	?customRequest@SmfLyricsService@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 200 NONAME ; enum SmfError SmfLyricsService::customRequest(int const &, class QByteArray *)
+	??1SmfPostProvider@@UAE@XZ @ 201 NONAME ; SmfPostProvider::~SmfPostProvider(void)
+	?lyricsAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfLyrics@@@@W4SmfError@@USmfResultPage@@@Z @ 202 NONAME ; void SmfLyricsService::lyricsAvailable(class QList<class SmfLyrics> *, enum SmfError, struct SmfResultPage)
+	?cancelRequest@SmfGallery@@QAE?AW4SmfError@@XZ @ 203 NONAME ; enum SmfError SmfGallery::cancelRequest(void)
+	?tr@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 204 NONAME ; class QString SmfLyricsService::tr(char const *, char const *, int)
+	?tr@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 205 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *)
+	?qt_metacast@SmfEventsFetcher@@UAEPAXPBD@Z @ 206 NONAME ; void * SmfEventsFetcher::qt_metacast(char const *)
+	??_ESmfPostProvider@@UAE@I@Z @ 207 NONAME ; SmfPostProvider::~SmfPostProvider(unsigned int)
+	??0SmfRelationItem@@QAE@XZ @ 208 NONAME ; SmfRelationItem::SmfRelationItem(void)
+	??_ESmfMusicService@@UAE@I@Z @ 209 NONAME ; SmfMusicService::~SmfMusicService(unsigned int)
+	?postCurrentPlayingPlaylist@SmfPlaylistService@@QAE?AW4SmfError@@VSmfPlaylist@@@Z @ 210 NONAME ; enum SmfError SmfPlaylistService::postCurrentPlayingPlaylist(class SmfPlaylist)
+	?getAll@SmfRelationMgr@@QAE?AV?$QList@VSmfRelationItem@@@@AAVQString@@@Z @ 211 NONAME ; class QList<class SmfRelationItem> SmfRelationMgr::getAll(class QString &)
+	?trUtf8@SmfGallery@@SA?AVQString@@PBD0H@Z @ 212 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *, int)
+	?followersListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 213 NONAME ; void SmfContactFetcher::followersListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	??_ESmfRelationMgr@@UAE@I@Z @ 214 NONAME ; SmfRelationMgr::~SmfRelationMgr(unsigned int)
+	?post@SmfPostProvider@@QAE?AW4SmfError@@AAVSmfPost@@AAVSmfLocation@@@Z @ 215 NONAME ; enum SmfError SmfPostProvider::post(class SmfPost &, class SmfLocation &)
+	?customRequest@SmfPlaylistService@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 216 NONAME ; enum SmfError SmfPlaylistService::customRequest(int const &, class QByteArray *)
+	?getStaticMetaObject@SmfLyricsService@@SAABUQMetaObject@@XZ @ 217 NONAME ; struct QMetaObject const & SmfLyricsService::getStaticMetaObject(void)
+	?playlistUpdated@SmfPlaylistService@@IAEXW4SmfError@@@Z @ 218 NONAME ; void SmfPlaylistService::playlistUpdated(enum SmfError)
+	?tr@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 219 NONAME ; class QString SmfLyricsService::tr(char const *, char const *)
+	?searchUserInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfMusicProfile@@@@W4SmfError@@USmfResultPage@@@Z @ 220 NONAME ; void SmfMusicService::searchUserInfoAvailable(class QList<class SmfMusicProfile> *, enum SmfError, struct SmfResultPage)
+	?groups@SmfContactFetcher@@QAE?AW4SmfError@@HH@Z @ 221 NONAME ; enum SmfError SmfContactFetcher::groups(int, int)
+	??_ESmfActivityFetcher@@UAE@I@Z @ 222 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(unsigned int)
+	??1SmfActivityFetcher@@UAE@XZ @ 223 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(void)
+	?tr@SmfClient@@SA?AVQString@@PBD0@Z @ 224 NONAME ; class QString SmfClient::tr(char const *, char const *)
+	?tr@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 225 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *, int)
+	?searchById@SmfRelationMgr@@QAEPAVSmfRelationItem@@ABVQString@@@Z @ 226 NONAME ; class SmfRelationItem * SmfRelationMgr::searchById(class QString const &)
+	?eventsAvailable@SmfEventsFetcher@@IAEXPAV?$QList@VSmfEvent@@@@W4SmfError@@USmfResultPage@@@Z @ 227 NONAME ; void SmfEventsFetcher::eventsAvailable(class QList<class SmfEvent> *, enum SmfError, struct SmfResultPage)
+	??0SmfMusicSearch@@QAE@PAVSmfProvider@@@Z @ 228 NONAME ; SmfMusicSearch::SmfMusicSearch(class SmfProvider *)
+	?picturesAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPicture@@@@W4SmfError@@USmfResultPage@@@Z @ 229 NONAME ; void SmfGallery::picturesAvailable(class QList<class SmfPicture> *, enum SmfError, struct SmfResultPage)
+	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 230 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *, int)
+	?postRating@SmfMusicService@@QAE?AW4SmfError@@VSmfTrackInfo@@VSmfMusicRating@@@Z @ 231 NONAME ; enum SmfError SmfMusicService::postRating(class SmfTrackInfo, class SmfMusicRating)
+	?getProvider@SmfLyricsService@@ABEPAVSmfProvider@@XZ @ 232 NONAME ; class SmfProvider * SmfLyricsService::getProvider(void) const
+	??1SmfLyricsService@@UAE@XZ @ 233 NONAME ; SmfLyricsService::~SmfLyricsService(void)
+	?errorString@SmfClient@@QBE?AVQString@@ABW4SmfError@@@Z @ 234 NONAME ; class QString SmfClient::errorString(enum SmfError const &) const
+	?postfinished@SmfMusicService@@IAEXW4SmfError@@@Z @ 235 NONAME ; void SmfMusicService::postfinished(enum SmfError)
+	?qt_metacast@SmfMusicService@@UAEPAXPBD@Z @ 236 NONAME ; void * SmfMusicService::qt_metacast(char const *)
+	?cancelRequest@SmfContactFetcher@@QAE?AW4SmfError@@XZ @ 237 NONAME ; enum SmfError SmfContactFetcher::cancelRequest(void)
+	?staticMetaObject@SmfPlaylistService@@2UQMetaObject@@B @ 238 NONAME ; struct QMetaObject const SmfPlaylistService::staticMetaObject
+	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 239 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *, int)
+	?getStaticMetaObject@SmfActivityFetcher@@SAABUQMetaObject@@XZ @ 240 NONAME ; struct QMetaObject const & SmfActivityFetcher::getStaticMetaObject(void)
+	?staticMetaObject@SmfPostProvider@@2UQMetaObject@@B @ 241 NONAME ; struct QMetaObject const SmfPostProvider::staticMetaObject
+	?qt_metacall@SmfEventsFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 242 NONAME ; int SmfEventsFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?attendeesAvailable@SmfEventsFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 243 NONAME ; void SmfEventsFetcher::attendeesAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?albums@SmfGallery@@QAE?AW4SmfError@@VQStringList@@PAVSmfContact@@HH@Z @ 244 NONAME ; enum SmfError SmfGallery::albums(class QStringList, class SmfContact *, int, int)
+	?getContact@SmfRelationItem@@QBE?AVSmfContact@@XZ @ 245 NONAME ; class SmfContact SmfRelationItem::getContact(void) const
+	??_ESmfLyricsService@@UAE@I@Z @ 246 NONAME ; SmfLyricsService::~SmfLyricsService(unsigned int)
+	?postFinished@SmfPostProvider@@IAEXW4SmfError@@@Z @ 247 NONAME ; void SmfPostProvider::postFinished(enum SmfError)
+	?customDataAvailable@SmfPostProvider@@IAEXHPAVQByteArray@@@Z @ 248 NONAME ; void SmfPostProvider::customDataAvailable(int, class QByteArray *)
+	?trackInfo@SmfMusicSearch@@QAE?AW4SmfError@@VSmfMusicFingerPrint@@HH@Z @ 249 NONAME ; enum SmfError SmfMusicSearch::trackInfo(class SmfMusicFingerPrint, int, int)
+	?customRequest@SmfPostProvider@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 250 NONAME ; enum SmfError SmfPostProvider::customRequest(int const &, class QByteArray *)
+	??_ESmfGallery@@UAE@I@Z @ 251 NONAME ; SmfGallery::~SmfGallery(unsigned int)
+	?userMusicInfo@SmfMusicService@@QAE?AW4SmfError@@XZ @ 252 NONAME ; enum SmfError SmfMusicService::userMusicInfo(void)
+	?lyrics@SmfLyricsService@@QAE?AW4SmfError@@VSmfTrackInfo@@HH@Z @ 253 NONAME ; enum SmfError SmfLyricsService::lyrics(class SmfTrackInfo, int, int)
+	?followers@SmfContactFetcher@@QAE?AW4SmfError@@HH@Z @ 254 NONAME ; enum SmfError SmfContactFetcher::followers(int, int)
+	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 255 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *, int)
+	??_ESmfEventsFetcher@@UAE@I@Z @ 256 NONAME ; SmfEventsFetcher::~SmfEventsFetcher(unsigned int)
+	?tr@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 257 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *, int)
+	?customRequest@SmfMusicSearch@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 258 NONAME ; enum SmfError SmfMusicSearch::customRequest(int const &, class QByteArray *)
+	?cancelRequest@SmfMusicSearch@@QAE?AW4SmfError@@XZ @ 259 NONAME ; enum SmfError SmfMusicSearch::cancelRequest(void)
+	?playlists@SmfPlaylistService@@QAE?AW4SmfError@@HH@Z @ 260 NONAME ; enum SmfError SmfPlaylistService::playlists(int, int)
+	??0SmfRelationMgr@@QAE@PAVQObject@@@Z @ 261 NONAME ; SmfRelationMgr::SmfRelationMgr(class QObject *)
+	?tr@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 262 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *, int)
+	??0SmfContactFetcher@@QAE@PAVSmfProvider@@@Z @ 263 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *)
+	?error@SmfClient@@AAEXW4ProcessError@QProcess@@@Z @ 264 NONAME ; void SmfClient::error(enum QProcess::ProcessError)
+	?stateChanged@SmfClient@@AAEXW4ProcessState@QProcess@@@Z @ 265 NONAME ; void SmfClient::stateChanged(enum QProcess::ProcessState)
+	?metaObject@SmfClient@@UBEPBUQMetaObject@@XZ @ 266 NONAME ; struct QMetaObject const * SmfClient::metaObject(void) const
+	?searchContactFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 267 NONAME ; void SmfContactFetcher::searchContactFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?eventsUpdated@SmfEventsFetcher@@IAEXW4SmfError@@@Z @ 268 NONAME ; void SmfEventsFetcher::eventsUpdated(enum SmfError)
+	?customRequest@SmfActivityFetcher@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 269 NONAME ; enum SmfError SmfActivityFetcher::customRequest(int const &, class QByteArray *)
+	?customRequest@SmfEventsFetcher@@QAE?AW4SmfError@@ABHPAVQByteArray@@@Z @ 270 NONAME ; enum SmfError SmfEventsFetcher::customRequest(int const &, class QByteArray *)
+	?qt_metacast@SmfLyricsService@@UAEPAXPBD@Z @ 271 NONAME ; void * SmfLyricsService::qt_metacast(char const *)
+	?setIndex@SmfRelationItem@@QAEXI@Z @ 272 NONAME ; void SmfRelationItem::setIndex(unsigned int)
+	?setProvider@SmfRelationItem@@QAEXAAVSmfProvider@@@Z @ 273 NONAME ; void SmfRelationItem::setProvider(class SmfProvider &)
+	?postCurrentPlaying@SmfMusicService@@QAE?AW4SmfError@@VSmfTrackInfo@@@Z @ 274 NONAME ; enum SmfError SmfMusicService::postCurrentPlaying(class SmfTrackInfo)
+	?metaObject@SmfRelationMgr@@UBEPBUQMetaObject@@XZ @ 275 NONAME ; struct QMetaObject const * SmfRelationMgr::metaObject(void) const
+	?searchInGroup@SmfContactFetcher@@QAE?AW4SmfError@@VSmfGroup@@PAVSmfContact@@HH@Z @ 276 NONAME ; enum SmfError SmfContactFetcher::searchInGroup(class SmfGroup, class SmfContact *, int, int)
+	?searchEventsInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfEvent@@@@W4SmfError@@USmfResultPage@@@Z @ 277 NONAME ; void SmfMusicService::searchEventsInfoAvailable(class QList<class SmfEvent> *, enum SmfError, struct SmfResultPage)
+	?tr@SmfEventsFetcher@@SA?AVQString@@PBD0H@Z @ 278 NONAME ; class QString SmfEventsFetcher::tr(char const *, char const *, int)
+	?playlistsListAvailable@SmfPlaylistService@@IAEXPAV?$QList@VSmfPlaylist@@@@W4SmfError@@USmfResultPage@@@Z @ 279 NONAME ; void SmfPlaylistService::playlistsListAvailable(class QList<class SmfPlaylist> *, enum SmfError, struct SmfResultPage)
+	?qt_metacast@SmfContactFetcher@@UAEPAXPBD@Z @ 280 NONAME ; void * SmfContactFetcher::qt_metacast(char const *)
+	?postAppearence@SmfPostProvider@@QAE?AW4SmfError@@W4SmfAppearenceInfo@@ABVQString@@@Z @ 281 NONAME ; enum SmfError SmfPostProvider::postAppearence(enum SmfAppearenceInfo, class QString const &)
 
--- a/smf/smfservermodule/smfclient/eabi/smfclientu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/eabi/smfclientu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -51,7 +51,7 @@
 	_ZN14SmfRelationMgr3getER7QStringj @ 50 NONAME
 	_ZN14SmfRelationMgr5countE7QString @ 51 NONAME
 	_ZN14SmfRelationMgr6DeleteER7QString @ 52 NONAME
-	_ZN14SmfRelationMgr6createEP11SmfProviderP10SmfContact @ 53 NONAME
+	_ZN14SmfRelationMgr6createER7QStringP11SmfProviderP10SmfContact @ 53 NONAME
 	_ZN14SmfRelationMgr6getAllER7QString @ 54 NONAME
 	_ZN14SmfRelationMgr6removeER7QStringPK10SmfContact @ 55 NONAME
 	_ZN14SmfRelationMgr9associateER7QStringPK10SmfContactP11SmfProvider @ 56 NONAME
@@ -211,57 +211,72 @@
 	_ZN18SmfPlaylistServiceD1Ev @ 210 NONAME
 	_ZN18SmfPlaylistServiceD2Ev @ 211 NONAME
 	_ZN9SmfClient11GetServicesERK7QString @ 212 NONAME
-	_ZN9SmfClientC1Ev @ 213 NONAME
-	_ZN9SmfClientC2Ev @ 214 NONAME
-	_ZN9SmfClientD1Ev @ 215 NONAME
-	_ZN9SmfClientD2Ev @ 216 NONAME
-	_ZNK10SmfGallery10metaObjectEv @ 217 NONAME
-	_ZNK10SmfGallery11getProviderEv @ 218 NONAME
-	_ZNK14SmfMusicSearch10metaObjectEv @ 219 NONAME
-	_ZNK14SmfMusicSearch11getProviderEv @ 220 NONAME
-	_ZNK14SmfRelationMgr10metaObjectEv @ 221 NONAME
-	_ZNK15SmfMusicService10metaObjectEv @ 222 NONAME
-	_ZNK15SmfMusicService11getProviderEv @ 223 NONAME
-	_ZNK15SmfPostProvider10metaObjectEv @ 224 NONAME
-	_ZNK15SmfPostProvider11getProviderEv @ 225 NONAME
-	_ZNK15SmfPostProvider14maxCharsInPostEv @ 226 NONAME
-	_ZNK15SmfPostProvider16supportedFormatsEv @ 227 NONAME
-	_ZNK15SmfPostProvider18supportsAppearenceEv @ 228 NONAME
-	_ZNK15SmfPostProvider8maxItemsEv @ 229 NONAME
-	_ZNK15SmfRelationItem10getContactEv @ 230 NONAME
-	_ZNK15SmfRelationItem11getProviderEv @ 231 NONAME
-	_ZNK15SmfRelationItem8getIndexEv @ 232 NONAME
-	_ZNK16SmfEventsFetcher10metaObjectEv @ 233 NONAME
-	_ZNK16SmfEventsFetcher11getProviderEv @ 234 NONAME
-	_ZNK16SmfLyricsService10metaObjectEv @ 235 NONAME
-	_ZNK16SmfLyricsService11getProviderEv @ 236 NONAME
-	_ZNK17SmfContactFetcher10metaObjectEv @ 237 NONAME
-	_ZNK17SmfContactFetcher11getProviderEv @ 238 NONAME
-	_ZNK18SmfActivityFetcher10metaObjectEv @ 239 NONAME
-	_ZNK18SmfActivityFetcher11getProviderEv @ 240 NONAME
-	_ZNK18SmfPlaylistService10metaObjectEv @ 241 NONAME
-	_ZNK18SmfPlaylistService11getProviderEv @ 242 NONAME
-	_ZNK9SmfClient11errorStringERK8SmfError @ 243 NONAME
-	_ZTI10SmfGallery @ 244 NONAME
-	_ZTI14SmfMusicSearch @ 245 NONAME
-	_ZTI14SmfRelationMgr @ 246 NONAME
-	_ZTI15SmfMusicService @ 247 NONAME
-	_ZTI15SmfPostProvider @ 248 NONAME
-	_ZTI16SmfEventsFetcher @ 249 NONAME
-	_ZTI16SmfLyricsService @ 250 NONAME
-	_ZTI17SmfContactFetcher @ 251 NONAME
-	_ZTI18SmfActivityFetcher @ 252 NONAME
-	_ZTI18SmfPlaylistService @ 253 NONAME
-	_ZTV10SmfGallery @ 254 NONAME
-	_ZTV14SmfMusicSearch @ 255 NONAME
-	_ZTV14SmfRelationMgr @ 256 NONAME
-	_ZTV15SmfMusicService @ 257 NONAME
-	_ZTV15SmfPostProvider @ 258 NONAME
-	_ZTV16SmfEventsFetcher @ 259 NONAME
-	_ZTV16SmfLyricsService @ 260 NONAME
-	_ZTV17SmfContactFetcher @ 261 NONAME
-	_ZTV18SmfActivityFetcher @ 262 NONAME
-	_ZTV18SmfPlaylistService @ 263 NONAME
-	_ZlsR11QDataStreamRK15SmfRelationItem @ 264 NONAME
-	_ZrsR11QDataStreamR15SmfRelationItem @ 265 NONAME
+	_ZN9SmfClient11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME
+	_ZN9SmfClient11qt_metacastEPKc @ 214 NONAME
+	_ZN9SmfClient12stateChangedEN8QProcess12ProcessStateE @ 215 NONAME
+	_ZN9SmfClient14loginToServiceEP11SmfProvider @ 216 NONAME
+	_ZN9SmfClient15logoutOfServiceEP11SmfProvider @ 217 NONAME
+	_ZN9SmfClient16staticMetaObjectE @ 218 NONAME DATA 16
+	_ZN9SmfClient18checkAuthorizationERK11SmfProvider @ 219 NONAME
+	_ZN9SmfClient19getStaticMetaObjectEv @ 220 NONAME
+	_ZN9SmfClient5errorEN8QProcess12ProcessErrorE @ 221 NONAME
+	_ZN9SmfClient7startedEv @ 222 NONAME
+	_ZN9SmfClient8finishedEiN8QProcess10ExitStatusE @ 223 NONAME
+	_ZN9SmfClientC1Ev @ 224 NONAME
+	_ZN9SmfClientC2Ev @ 225 NONAME
+	_ZN9SmfClientD0Ev @ 226 NONAME
+	_ZN9SmfClientD1Ev @ 227 NONAME
+	_ZN9SmfClientD2Ev @ 228 NONAME
+	_ZNK10SmfGallery10metaObjectEv @ 229 NONAME
+	_ZNK10SmfGallery11getProviderEv @ 230 NONAME
+	_ZNK14SmfMusicSearch10metaObjectEv @ 231 NONAME
+	_ZNK14SmfMusicSearch11getProviderEv @ 232 NONAME
+	_ZNK14SmfRelationMgr10metaObjectEv @ 233 NONAME
+	_ZNK15SmfMusicService10metaObjectEv @ 234 NONAME
+	_ZNK15SmfMusicService11getProviderEv @ 235 NONAME
+	_ZNK15SmfPostProvider10metaObjectEv @ 236 NONAME
+	_ZNK15SmfPostProvider11getProviderEv @ 237 NONAME
+	_ZNK15SmfPostProvider14maxCharsInPostEv @ 238 NONAME
+	_ZNK15SmfPostProvider16supportedFormatsEv @ 239 NONAME
+	_ZNK15SmfPostProvider18supportsAppearenceEv @ 240 NONAME
+	_ZNK15SmfPostProvider8maxItemsEv @ 241 NONAME
+	_ZNK15SmfRelationItem10getContactEv @ 242 NONAME
+	_ZNK15SmfRelationItem11getProviderEv @ 243 NONAME
+	_ZNK15SmfRelationItem8getIndexEv @ 244 NONAME
+	_ZNK16SmfEventsFetcher10metaObjectEv @ 245 NONAME
+	_ZNK16SmfEventsFetcher11getProviderEv @ 246 NONAME
+	_ZNK16SmfLyricsService10metaObjectEv @ 247 NONAME
+	_ZNK16SmfLyricsService11getProviderEv @ 248 NONAME
+	_ZNK17SmfContactFetcher10metaObjectEv @ 249 NONAME
+	_ZNK17SmfContactFetcher11getProviderEv @ 250 NONAME
+	_ZNK18SmfActivityFetcher10metaObjectEv @ 251 NONAME
+	_ZNK18SmfActivityFetcher11getProviderEv @ 252 NONAME
+	_ZNK18SmfPlaylistService10metaObjectEv @ 253 NONAME
+	_ZNK18SmfPlaylistService11getProviderEv @ 254 NONAME
+	_ZNK9SmfClient10metaObjectEv @ 255 NONAME
+	_ZNK9SmfClient11errorStringERK8SmfError @ 256 NONAME
+	_ZTI10SmfGallery @ 257 NONAME
+	_ZTI14SmfMusicSearch @ 258 NONAME
+	_ZTI14SmfRelationMgr @ 259 NONAME
+	_ZTI15SmfMusicService @ 260 NONAME
+	_ZTI15SmfPostProvider @ 261 NONAME
+	_ZTI16SmfEventsFetcher @ 262 NONAME
+	_ZTI16SmfLyricsService @ 263 NONAME
+	_ZTI17SmfContactFetcher @ 264 NONAME
+	_ZTI18SmfActivityFetcher @ 265 NONAME
+	_ZTI18SmfPlaylistService @ 266 NONAME
+	_ZTI9SmfClient @ 267 NONAME
+	_ZTV10SmfGallery @ 268 NONAME
+	_ZTV14SmfMusicSearch @ 269 NONAME
+	_ZTV14SmfRelationMgr @ 270 NONAME
+	_ZTV15SmfMusicService @ 271 NONAME
+	_ZTV15SmfPostProvider @ 272 NONAME
+	_ZTV16SmfEventsFetcher @ 273 NONAME
+	_ZTV16SmfLyricsService @ 274 NONAME
+	_ZTV17SmfContactFetcher @ 275 NONAME
+	_ZTV18SmfActivityFetcher @ 276 NONAME
+	_ZTV18SmfPlaylistService @ 277 NONAME
+	_ZTV9SmfClient @ 278 NONAME
+	_ZlsR11QDataStreamRK15SmfRelationItem @ 279 NONAME
+	_ZrsR11QDataStreamR15SmfRelationItem @ 280 NONAME
 
--- a/smf/smfservermodule/smfclient/smfactivityfetcher_p.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfactivityfetcher_p.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -50,6 +50,15 @@
 
 SmfError SmfActivityFetcherPrivate::selfActivities(int pageNum, int perPage)
 	{
+	 if((pageNum<0 && perPage >0) || (pageNum>0 && perPage <0) || (pageNum ==0 && perPage ==0) 
+		|| (pageNum > 100  &&  perPage >0) || (pageNum > 0 && perPage > 30) || (isalpha(pageNum)&& isalpha(perPage)))
+			         
+		{
+		    
+		qDebug()<<"Invalid Arguments, Check for Negative Values, Large Values, Junk Values";
+		SmfError error = SmfInvalidDataInArguement;
+		return error;
+		}
 	SmfError err = SmfNoError;
 	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
 	//serialize start
@@ -80,6 +89,16 @@
 
 SmfError SmfActivityFetcherPrivate::friendsActivities(const SmfContact & aFriend, int pageNum, int perPage)
 	{
+	
+	if((pageNum<0 && perPage >0) || (pageNum>0 && perPage <0) || (pageNum ==0 && perPage ==0) 
+		|| (pageNum > 100  &&  perPage >0) || (pageNum > 0 && perPage > 30) || (isalpha(pageNum)&& isalpha(perPage)))
+			         
+		{
+		    
+		qDebug()<<"Invalid Arguments, Check for Negative Values, Large Values, Junk Values";
+		SmfError error = SmfInvalidDataInArguement;
+		return error;
+		}
 	SmfError err = SmfNoError;
 	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
 	//serialize start
@@ -111,6 +130,16 @@
 
 SmfError SmfActivityFetcherPrivate::filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage)
 	{
+	
+	if((pageNum<0 && perPage >0) || (pageNum>0 && perPage <0) || (pageNum ==0 && perPage ==0) 
+		|| (pageNum > 100  &&  perPage >0) || (pageNum > 0 && perPage > 30) || (isalpha(pageNum)&& isalpha(perPage)))
+				         
+		{
+			    
+		qDebug()<<"Invalid Arguments, Check for Negative Values, Large Values, Junk Values";
+		SmfError error = SmfInvalidDataInArguement;
+		return error;
+		}
 	SmfError err = SmfNoError;
 	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
 	
--- a/smf/smfservermodule/smfclient/smfclient.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclient.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -20,6 +20,7 @@
  */
 
 #include <qdebug.h>
+#include <smfcredmgrclient.h>
 
 #include "smfclient.h"
 #include "smfclient_p.h"
@@ -29,6 +30,7 @@
 	//Create instance of the private wrapper
 	m_private = new SmfClientPrivate(this);
 	m_providerList = NULL;
+	m_authAppProcess = NULL;
 	}
 
 SmfClient::~SmfClient()
@@ -38,24 +40,108 @@
 		delete m_private;
 		m_private = NULL;
 		}
+	
+	if(m_authAppProcess)
+		delete m_authAppProcess;
 	}
 
 QList<SmfProvider>* SmfClient::GetServices(const QString& serviceName)
 	{
 	qDebug()<<"Inside SmfClient::GetServices()";
 	
-	if(m_providerList)
+	//if serviceName is not empty
+	if(serviceName.size())
 		{
-		delete m_providerList;
-		m_providerList = NULL;
+		if(m_providerList)
+			{
+			delete m_providerList;
+			m_providerList = NULL;
+			}
+		//Getting the data synchronously
+		m_providerList = m_private->GetServices(serviceName);
+		qDebug()<<"After m_private->GetServices";
+		
+		return m_providerList;
 		}
-	//Getting the data synchronously
-	m_providerList = m_private->GetServices(serviceName);
-	qDebug()<<"After m_private->GetServices";
-	
-	return m_providerList;
+	else
+		return NULL;
+	}
+
+SMFProviderAuthorizationStatus SmfClient::checkAuthorization(const SmfProvider& provider)
+	{
+	SMFProviderAuthorizationStatus status = SMFProviderAuthStatusUnknown;
+	if(!provider.authenticationAppId().isEmpty())
+		{
+		SmfCredMgrClient csmClient;
+		QString authAppId = provider.authenticationAppId();
+		if(csmClient.CheckServiceAuthorization(authAppId))
+			status = SMFProviderAuthStatusAuthorised;
+		else
+			status = SMFProviderAuthStatusUnauthorised;
+		}
+	return status;
 	}
 
+SmfError SmfClient::loginToService(SmfProvider* provider)
+	{
+	if(!m_authAppProcess)
+		m_authAppProcess = new QProcess();
+	
+	connect(m_authAppProcess, SIGNAL(started()), this, SLOT(started()));
+	connect(m_authAppProcess, SIGNAL(stateChanged(QProcess::ProcessState)),
+					 this, SLOT(stateChanged(QProcess::ProcessState)));
+	connect(m_authAppProcess, SIGNAL(error ( QProcess::ProcessError)),
+					 this, SLOT(error ( QProcess::ProcessError)));
+	
+	connect(m_authAppProcess, SIGNAL(finished(int, QProcess::ExitStatus)),
+					 this, SLOT(finished(int, QProcess::ExitStatus)));
+
+	m_authAppProcess->start(provider->authenticationAppName());
+	m_authAppProcess->waitForFinished(-1);
+	return SmfNoError;
+	}
+
+
+SmfError SmfClient::logoutOfService(SmfProvider* provider)
+	{
+	if(!m_authAppProcess)
+		m_authAppProcess = new QProcess();
+	
+	connect(m_authAppProcess, SIGNAL(started()), this, SLOT(started()));
+	connect(m_authAppProcess, SIGNAL(stateChanged(QProcess::ProcessState)),
+					 this, SLOT(stateChanged(QProcess::ProcessState)));
+	connect(m_authAppProcess, SIGNAL(error ( QProcess::ProcessError)),
+					 this, SLOT(error ( QProcess::ProcessError)));
+	
+	connect(m_authAppProcess, SIGNAL(finished(int, QProcess::ExitStatus)),
+					 this, SLOT(finished(int, QProcess::ExitStatus)));
+	
+	m_authAppProcess->start(provider->authenticationAppName());
+	m_authAppProcess->waitForFinished(-1);
+	return SmfNoError;
+	}
+
+void SmfClient::started()
+	{
+	qDebug()<<"Inside SmfClient::started()";
+	}
+
+void SmfClient::stateChanged(QProcess::ProcessState newState)
+	{
+	qDebug()<<"Inside SmfClient::stateChanged(), state = "<<newState;
+	}
+
+void SmfClient::error(QProcess::ProcessError error)
+	{
+	qDebug()<<"Inside SmfClient::error(), error = "<<error;
+	}
+
+void SmfClient::finished(int exitCode, QProcess::ExitStatus exitStatus)
+	{
+	qDebug()<<"Inside SmfClient::finished()";
+	qDebug()<<"exitcode = "<<exitCode;
+	qDebug()<<"exitStatus = "<<exitStatus;
+	}
 
 /**
 * This method returns the error message for the mentioned argument error code
@@ -333,7 +419,20 @@
 			str.append("Smf Error: Invalid relation");
 			break;
 			
-		case SmfUnknownError:							//66
+		case SmfInvalidGuid:							//66
+			str.append("Smf Error: Invalid Guid");
+			break;
+		case SmfInvalidContactUrl:						//67
+			str.append("Smf Error: Invalid ContactUrl");		
+			break;
+		case SmfInvalidLocalId:							//68
+			str.append("Smf Error: Invalid LocalId");
+			break;
+		case SmfContactExists:							//69
+			str.append("Smf Error: Contact Already Exists");
+			break;
+			
+		case SmfUnknownError:							//70
 		default:
 			str.append("Smf Error: Unknown Error");
 		}
--- a/smf/smfservermodule/smfclient/smfclient.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclient.h	Mon Oct 11 21:59:54 2010 +0530
@@ -23,6 +23,7 @@
 #define SMFCLIENT_H
 
 #include <QObject>
+#include <qprocess.h>
 
 #include "smfclientglobal.h"
 #include "smfglobal.h"
@@ -31,6 +32,14 @@
 class SmfProvider;
 class SmfClientPrivate;
 
+enum SMFProviderAuthorizationStatus
+	{
+	SMFProviderAuthStatusUnknown,	 	//status unknown
+	SMFProviderAuthStatusAuthorised, 	//user logged in
+	SMFProviderAuthStatusUnauthorised, 	//user logged out/not logged in
+	SMFProviderAuthStatusBlocked		//user chosen to block this service
+	};
+
 /**
  * @ingroup smf_client_group 
  * Interface for a base service provider. Other service provider classes contains 
@@ -39,8 +48,9 @@
  * All of the functionality described here should be implemented by a service
  * specific plug-in object.
  */
-class  SMFCLIENT_EXPORT SmfClient
+class  SMFCLIENT_EXPORT SmfClient : public QObject
 	{
+	Q_OBJECT
 public:
 	/**
 	 * Constructs SmfClient
@@ -60,8 +70,48 @@
 	 */
 	QList<SmfProvider>* GetServices(const QString& serviceName);
 	
+	/**
+	 * Checks the current status of the service. Application might want to 
+	 * launch authorization process by calling loginToService() for the 
+	 * service which is not authorised.
+	 * @param provider The SmfProvider instance for the requested service
+	 * @return Authorization status (loggedin, logged out, blocked, unknown etc)
+	 */
+	SMFProviderAuthorizationStatus checkAuthorization(const SmfProvider& provider);
+	
+	/**
+	 * Method to launch the authentication application for this service.
+	 * This would pop-up service specific login window. Till user logs in 
+	 * successfully, any call to SMF APIs for this service Provider would 
+	 * return SmfServiceAuthFailed. Symbian application should have 
+	 * UserData capability.
+	 * @param provider The SmfProvider instance for the requested service
+	 * @return SmfError value 
+	 */
+	SmfError loginToService(SmfProvider* provider);
+	
+	/**
+	 * Method to log-out of (unauthorise) this service. Please note that 
+	 * this might not immediately log-out of the service if there are other 
+	 * applications using this service. Application need not use this function 
+	 * for normal operations - being logged in doesn't cost data charges and would 
+	 * avoid disturbing log-in pop-ups. Please note that there is no notification 
+	 * when user has logged out of service. Please use checkAuthorization() to 
+	 * determine the current status
+	 * @param provider The SmfProvider instance for the requested service
+	 * @return SmfError value  
+	 */
+	SmfError logoutOfService(SmfProvider* provider); 
+	
 	// ToDo :- More overloaded APIs will be provided later
-	//QList<SmfProvider>* GetServices(const QString& serviceName, const QString& providerName);
+	/**
+	 * Get provider details for a particular service provider for a particular service interface
+	 * The provider name is always English lowercase with the domain separator 
+	 * e.g. "facebook.com", "last.fm","linkedin.com"
+	 * for updated list of service provider names please refer SMF wiki in SF
+	 * TODO: provide url here.
+	 */
+	//SmfProvider* GetServices(const QString& serviceName, const QString& providerName);
 	//QList<SmfProvider>* GetServices(const QString& serviceName, const SmfProvider& provider);
   
 	/**
@@ -71,6 +121,32 @@
 	 */
 	QString errorString ( const SmfError &aErrorCode ) const;
 
+private slots:
+	/**
+	 * Slot that connects to the started() signal of QProcess
+	 */
+    void started();
+    
+	/**
+	 * Slot that connects to the stateChanged() signal of QProcess
+	 * @param newState The newState of the started Process
+	 */
+    void stateChanged(QProcess::ProcessState newState);
+    
+	/**
+	 * Slot that connects to the error() signal of QProcess
+	 * @param error The error that occured in the started process
+	 */
+    void error(QProcess::ProcessError error);
+    
+	/**
+	 * Slot that connects to the finished() signal of QProcess. This signal 
+	 * is emitted when the process finishes
+	 * @param exitCode The exit code of the process
+	 * @param exitStatus The exit status of the process
+	 */
+    void finished(int exitCode, QProcess::ExitStatus exitStatus);
+    
 private:
 	/**
 	 * Private impl wrapper.
@@ -81,6 +157,7 @@
 	 * List of SmfProvider to be returned to the requested code
 	 */
 	QList<SmfProvider>* m_providerList;
+	QProcess *m_authAppProcess;
   
 	};
 
--- a/smf/smfservermodule/smfclient/smfclient.pro	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclient.pro	Mon Oct 11 21:59:54 2010 +0530
@@ -56,9 +56,7 @@
         ReadDeviceData \
         WriteDeviceData
     TARGET.EPOCALLOWDLLDATA = 1
-    LIBS += -lsmfcommon
-
-
+    LIBS += -lsmfcommon -lsmfcredmgrclient
 }
 symbian: { 
 	PRIVATE_HEADERS += smfclientsymbian.h \
--- a/smf/smfservermodule/smfclient/smfclientsymbian.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclientsymbian.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -45,8 +45,8 @@
 
 CSmfClientSymbian::CSmfClientSymbian(smfObserver* aObserver)
 		: CActive( EPriorityStandard ),
-		iObserver(aObserver),
-		iDataPtr(NULL, 0, 0)
+		  iObserver(aObserver)//,
+		  //iDataPtr(NULL, 0, 0)
 	{
 	CActiveScheduler::Add(this);
 	}
@@ -149,12 +149,12 @@
 
 QByteArray CSmfClientSymbian::sendDSMSyncRequest(SmfRequestTypeID requestType,QByteArray& aSerializedData,SmfError& aErr,TInt maxSize)
 	{
-	Q_UNUSED(aErr)
+	//Q_UNUSED(aErr)
 			
 	qDebug()<<"CSmfClientSymbian::sendDSMSyncRequest for : "<<requestType;
-	SmfError err = SmfNoError;
+	//SmfError err = SmfNoError;
 	//Gets data synchronously from the server
-    TPtr8 symbianBuf(iSession.sendDSMSyncRequest(requestType,aSerializedData,err,maxSize));
+    TPtr8 symbianBuf(iSession.sendDSMSyncRequest(requestType,aSerializedData,aErr,maxSize));
     //convert this into bytearray
     QByteArray receivedData(reinterpret_cast<const char*>(symbianBuf.Ptr()),symbianBuf.Length());
     qDebug()<<"receivedData size="<<receivedData.size();
@@ -175,15 +175,8 @@
 
 
 RSmfClientSymbianSession::RSmfClientSymbianSession()
-		:iDataPtr8(NULL, 0, 0),
-		 iDataPtr16(NULL,0),
-		 iPtrProvider(NULL,0),
-		 iPtrProvider8(NULL,0),
-		 iIntfNamePtr(NULL,0),
-		 iIntfNamePtr8(NULL,0),
-		 iPtrToXtraInfo(NULL, 0),
-		 iPtrToXtraInfo8(NULL,0),
-		 iPtr8ToSlot0(NULL,0)
+		:iDataPtr8(NULL, 0, 0), iPtrProvider8(NULL,0),
+		 iIntfNamePtr8(NULL,0), iPtr8ToSlot0(NULL,0)
     {
     // No implementation required
     }
@@ -348,7 +341,7 @@
  * Sends sync DSM request to the Smf server
  */
 TPtr8 RSmfClientSymbianSession::sendDSMSyncRequest(SmfRequestTypeID aRequestType,
-		QByteArray& aSerializedData, SmfError& aErr, TInt maxSize)
+		QByteArray& aSerializedData, SmfError &aErr, TInt maxSize)
 	{
 	/**
 	 * Slot 0:- Data to be passed to DSM
@@ -379,7 +372,7 @@
     args.Set(1, &iDataPtr8);
     iDSMErr.Zero();
     args.Set(2,&iDSMErr);
-    
+
     TInt sendErr = SendReceive(aRequestType,args);
     qDebug()<<"DSM SendReceive = "<<sendErr;
     TInt numIndex;
--- a/smf/smfservermodule/smfclient/smfclientsymbian.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclientsymbian.h	Mon Oct 11 21:59:54 2010 +0530
@@ -152,16 +152,6 @@
 	 * For callback, when the client gets serviced by the server
 	 */
 	smfObserver* iObserver;
-	
-	//Interface name, to be passed to the server
-	TBuf<128> iInterfaceName;
-	QString iInterfaceNameQt;
-	//Data ptr
-	TPtr iDataPtr;
-	//Bytearray
-	QByteArray* iBytearray;
-	HBufC* iBuffer;
-	TInt iMaxMessageSize;
 
 	};
 
--- a/smf/smfservermodule/smfclient/smfclientsymbiansession.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclientsymbiansession.h	Mon Oct 11 21:59:54 2010 +0530
@@ -70,7 +70,7 @@
 	 */
 	TPtr8 sendDSMSyncRequest(SmfRequestTypeID aRequestType,	
 			QByteArray& aSerializedData,
-			SmfError& aErr, TInt maxSize = 0 );
+			SmfError &aErr, TInt maxSize = 0 );
     
 	/**
 	 * Sends synchronous requests to the Smf server
@@ -105,41 +105,23 @@
     	return iLastRequest;
     	}
 	TPtr8 iDataPtr8;
-	TPtr iDataPtr16;
 private:
 	/**
 	 * Following are to form message body.
 	 */
-	QByteArray iBaseProvider;
-    TBuf8<525> iProviderSymbian;
-    TBuf<125> iInterfaceSymbian;
-    TBuf8<125> iInterfaceSymbian8;
-    QString iInterfaceName;
-    HBufC* iIntfNameBuffer;
-    HBufC* iBuffer16;
-    TPtr iPtrProvider;
 	TPtr8 iPtrProvider8;
 	QByteArray iInterfaceNamebyte;
 	TBuf<100> iDSMErr;
 	HBufC8* iProviderBuf8;
-    TPtr iIntfNamePtr;
 	TPtr8 iIntfNamePtr8;
 	HBufC8* iIntfNameBuffer8;
 	HBufC8* iBuffer8;
-	HBufC8* iXtraInfoBuf8;
-    TPtr iPtrToXtraInfo;
-    TPtr8 iPtrToXtraInfo8;
 	HBufC8* iSlot0Buffer8;
 	TPtr8 iPtr8ToSlot0;
-	TInt iMaxMessageSize;
-	TInt iMaxSize;
 	/**
 	 * Last request opcode
 	 */
 	TInt iLastRequest;
-	
-private:
-	QList<QVariant*> result;
 
 	};
 
--- a/smf/smfservermodule/smfclient/smfgallery.d	Thu Sep 23 17:43:31 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,403 +0,0 @@
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\smfgallery.cpp
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: /S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/rvct/rvct.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: /S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/include/variant/Symbian_OS.hrh
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\platform_paths.hrh
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\smfgallery.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QObject
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qobject.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\../../src/corelib/kernel/qobject.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qobjectdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/kernel/qobjectdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/global/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/global/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stddef.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/cdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\_ansi.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/_null.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/_types.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis/machine/_types.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qconfig.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/global/qconfig.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32def.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qfeatures.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/global/qfeatures.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qchar.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qchar.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/thread/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbasicatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/thread/qbasicatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic_arch.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/arch/qatomic_arch.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic_symbian.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/arch/qatomic_symbian.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32std.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32cmn.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32const.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32err.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32lang.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32reg.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32capability.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32des8.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32des16.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis/stlportv5/exception
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32cmn.inl
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\e32std.inl
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\string.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\strings.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stdarg.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\string
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_prolog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/features.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_stlport_version.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/user_config.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/compat.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/host.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/_system.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/stl_rvct.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/stl_symbian.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/stl_confix.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/config/_native_headers.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_hash.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_hash_fun.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_cstddef.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_alloc.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_cstdlib.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stdlib.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_cmath.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\math.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis/machine/_limits.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\libm_aliases.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\signgam.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_cstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\using/cstring
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_algobase.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\climits
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\limits.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/limits.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_pair.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/type_traits.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/type_manips.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_move_construct_fwk.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_iterator_base.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_algobase.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_iterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_new.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis/stlportv5/new
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_construct.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_alloc.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_fwd.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\iosfwd
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_cwchar.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis/wchar.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/stat.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/time.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/_timeval.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/types.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/timespec.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\time.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\_ctype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stdio.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\errno.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stdarg_e.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sys/dirent.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_mbstate_t.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_iosfwd.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/char_traits.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_function_base.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_uninitialized.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_base.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_npos.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_operators.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ctraits_fns.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_range_errors.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_io.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ostream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ios.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ios_base.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_stdexcept_base.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_exception.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\utility
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_locale.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_threads.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\pthread.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\pthreadtypes.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\sched.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\pthreadalias.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_threads.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ctype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/c_locale.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\ctype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_numpunct.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ios.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_streambuf.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_streambuf.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ostreambuf_iterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_ostream.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_num_put.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_iostream_string.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_num_put.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_limits.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\cfloat
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\float.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_limits.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_istream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_istreambuf_iterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_istream.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_num_get.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_num_get.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_string_io.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_epilog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_config_compat_post.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qiterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qiterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qalgorithms.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qalgorithms.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\iterator
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_prolog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_stream_iterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_epilog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_config_compat_post.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\list
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_prolog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_list.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_list.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_list.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_carray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_relops_cont.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_epilog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_config_compat_post.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qscopedpointer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qscopedpointer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\smfglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QBuffer
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qbuffer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\../../src/corelib/io/qbuffer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qiodevice.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/io/qiodevice.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qobject.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtNetwork\QNetworkRequest
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtNetwork\qnetworkrequest.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtNetwork\../../src/network/access/qnetworkrequest.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/QSharedDataPointer
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qshareddata.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qshareddata.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/QString
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/QUrl
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qurl.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/io/qurl.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qobjectdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpair.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qpair.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/io/qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qscopedpointer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qiodevice.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/QVariant
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qvariant.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/kernel/qvariant.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qmetatype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/kernel/qmetatype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qmap.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qmap.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qiterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\map
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_prolog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_map.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_tree.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_tree.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_relops_cont.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_relops_cont.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_relops_cont.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_epilog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_config_compat_post.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qhash.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qhash.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qchar.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qiterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpair.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtNetwork\QNetworkAccessManager
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtNetwork\qnetworkaccessmanager.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtNetwork\../../src/network/access/qnetworkaccessmanager.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/QObject
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qobject.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\smfclientglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/QtGlobal
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QString
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\smfpicture.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui\QImage
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui\qimage.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui\../../src/gui/image/qimage.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qtransform.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qtransform.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qmatrix.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qmatrix.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qpolygon.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qpolygon.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qvector.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qvector.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qiterator.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qalgorithms.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\vector
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_prolog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_vector.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_vector.c
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_bvector.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_relops_cont.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_epilog.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\stdapis\stlportv5\stl/_config_compat_post.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpoint.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qpoint.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qsize.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qsize.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpoint.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qregion.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qregion.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qwindowdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/kernel/qwindowdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qobjectdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qwindowdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qline.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qline.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpoint.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpoint.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qpainterpath.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qpainterpath.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qmatrix.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qline.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qvector.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qscopedpointer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qpolygon.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qregion.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qwindowdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qline.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qpoint.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qpaintdevice.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qpaintdevice.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qwindowdefs.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/qrgb.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui/../../src/gui/painting/qrgb.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qbytearray.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qrect.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QDateTime
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qdatetime.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\../../src/corelib/tools/qdatetime.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qnamespace.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qsharedpointer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qsharedpointer.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qglobal.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qshareddata.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qsharedpointer_impl.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qsharedpointer_impl.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qatomic.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qobject.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QStringList
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qstringlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\../../src/corelib/tools/qstringlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qalgorithms.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qregexp.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qregexp.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstringmatcher.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/../../src/corelib/tools/qstringmatcher.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore/qstring.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QUrl
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qurl.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QSharedData
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qshareddata.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QMetaType
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qmetatype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\smfcomment.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QDateTime
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qdatetime.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QSharedData
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qshareddata.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QMetaType
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qmetatype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\smfpicturealbum.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui\QImage
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtGui\qimage.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QDateTime
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qdatetime.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QStringList
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qstringlist.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QUrl
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qurl.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qdatastream.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QSharedData
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qshareddata.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QMetaType
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qmetatype.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\smfgallery_p.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \S60\devices\Nokia_Symbian3_SDK_v0.8\epoc32\include\smfobserver.h
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\QObject
-\S60\devices\Nokia_Symbian3_SDK_v0.8\EPOC32\BUILD\ARMv5\sfmerged\sf\smf\smfservermodule\smfclient\SMFCLIENT_0XE08059D4\ARMV5\udeb\smfgallery.o: \Qt\4.6.2\include\QtCore\qobject.h
--- a/smf/smfservermodule/smfclient/smfgallery_p.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfgallery_p.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -61,6 +61,23 @@
  */
 SmfError SmfGalleryPrivate::albums(QStringList names, SmfContact* user, int pageNum, int perPage)
 	{
+	for(int iCount = 0;iCount<names.length();iCount++)
+		{
+		if(names.isEmpty() || names[iCount].isNull() || !(names[iCount].isSimpleText())
+		   ||(isdigit(names[iCount].toInt())))
+			{
+			qDebug()<<"Invalid Names or user";	
+			return SmfInvalidDataInArguement;
+			}
+		}
+		if((pageNum<0 && perPage >0) || (pageNum>0 && perPage <0) || (pageNum ==0 && perPage ==0) 
+			|| (pageNum > 100  &&  perPage >0) || (pageNum > 0 && perPage > 30) || (isalpha(pageNum)&& isalpha(perPage)))
+    
+	
+			{
+			 qDebug()<<"Invalid Arguments, Check for Negative Values, Large Values, Junk Values";
+			 return SmfInvalidDataInArguement;
+			}
 	SmfError err = SmfNoError;
 	//We need to pass Opcode and SmfProvider serialized into bytearray 
 	SmfProvider* m_baseProvider = m_gallery->getProvider();
@@ -113,6 +130,15 @@
  */
 SmfError SmfGalleryPrivate::pictures(SmfPictureAlbumList &albums,int pageNum,int perPage)
 	{
+	if((pageNum<0 && perPage >0) || (pageNum>0 && perPage <0) || (pageNum ==0 && perPage ==0) 
+		|| (pageNum > 100  &&  perPage >0) || (pageNum > 0 && perPage > 30) || (isalpha(pageNum)&& isalpha(perPage)))
+					         
+		{
+				    
+		qDebug()<<"Invalid Arguments, Check for Negative Values, Large Values, Junk Values";
+		SmfError error = SmfInvalidDataInArguement;
+		return error;
+		}
 	SmfError err = SmfNoError;
 	//We need to pass Opcode and SmfProvider serialized into bytearray 
 	SmfProvider* m_baseProvider = m_gallery->getProvider();
--- a/smf/smfservermodule/smfclient/smfrelationmgr.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfrelationmgr.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -96,9 +96,9 @@
 		}
 	}
 
-SmfRelationId SmfRelationMgr::create(SmfProvider *provider, SmfContact *contact)
+ SmfError SmfRelationMgr::create(SmfRelationId &aRelatioID,SmfProvider *provider, SmfContact *contact)
 	{
-	return m_private->create(provider,contact);
+	return m_private->create(aRelatioID,provider,contact);
 	}
 
 SmfError SmfRelationMgr::associate(SmfRelationId& relation,const SmfContact* contact,SmfProvider* provider)
--- a/smf/smfservermodule/smfclient/smfrelationmgr.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfrelationmgr.h	Mon Oct 11 21:59:54 2010 +0530
@@ -129,13 +129,20 @@
 	 * then it would have QtMobility::QContactId properly filled with managerUri and localId.
 	 * These two field would also be stored in SmfRelationMgr (for easily identifying the SmfContacts).
 	 *
-	 * After successful creation, a relationId would be returned. More and more SmfContacts can
-	 * be added to this relation using this RelationId
+	 * @param aRelationID[] To get the relationID after successful creation of contact and Relation Table
+	 * @return SmfError ErrorCode to identify the type of Error
+	 * 
+	 * After successful creation, SmfNoError would be returned. More and more SmfContacts can
+	 * be added to this relation using the RelationId aRelationID
+	 * 
+	 * In case of error, proper error code will be returned
 	 */
-	SmfRelationId create(SmfProvider *provider=NULL, SmfContact *contact=NULL);
+	SmfError create(SmfRelationId &aRelationID,SmfProvider *provider=NULL, SmfContact *contact=NULL);
 
-	/** assign contact to a relation */
-	SmfError associate( SmfRelationId& phoneId,
+	/** assign contact to a relation 
+	 * @param aRelationID The realationId to associate to
+	 */
+	SmfError associate( SmfRelationId& aRelationID,
 						const SmfContact* contact,
 						SmfProvider* provider);
 
--- a/smf/smfservermodule/smfclient/smfrelationmgr_p.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfrelationmgr_p.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -46,7 +46,7 @@
 		}
 	}
 
-SmfRelationId SmfRelationMgrPrivate::create( SmfProvider *provider, SmfContact *contact)
+SmfError SmfRelationMgrPrivate::create(SmfRelationId &aRelationId, SmfProvider *provider, SmfContact *contact)
 	{
 	m_dataForDSM.clear();
 	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
@@ -75,18 +75,18 @@
 	
 	m_dataFromDSM.clear();
 	SmfError err = SmfNoError;
-	SmfRelationId relnId;
+	//SmfError relnId;
 	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationCreate,m_dataForDSM,err,maxSmfRelationIdSize);
 	if(err == SmfNoError)
 		{
 		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		readStream>>relnId;
+		readStream>>aRelationId;
 		}
 	else
 		{
 		User::Panic(_L("DSM err = "),err);
 		}
-	return relnId;
+	return err;
 	}
 
 SmfError SmfRelationMgrPrivate::associate( SmfRelationId& relation,
--- a/smf/smfservermodule/smfclient/smfrelationmgr_p.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfrelationmgr_p.h	Mon Oct 11 21:59:54 2010 +0530
@@ -42,7 +42,7 @@
 	
 public:
 	/** create a relation with first contact (id optional) */
-	SmfRelationId create(SmfProvider *provider=NULL, SmfContact *contact=NULL);
+	SmfError create(SmfRelationId &aRelationID,SmfProvider *provider=NULL, SmfContact *contact=NULL);
 
 	/** assign contact to a relation */
 	SmfError associate( SmfRelationId& relation,
--- a/smf/smfservermodule/smfcommon/bwins/smfcommonu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfcommon/bwins/smfcommonu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -26,429 +26,433 @@
 	?setDescription@SmfPictureAlbum@@QAEXABVQString@@@Z @ 25 NONAME ; void SmfPictureAlbum::setDescription(class QString const &)
 	?link@SmfActivityObject@@QBE?AVQString@@XZ @ 26 NONAME ; class QString SmfActivityObject::link(void) const
 	?image@SmfArtists@@QBE?AVQImage@@XZ @ 27 NONAME ; class QImage SmfArtists::image(void) const
-	?setVersion@SmfPlaylist@@QAEXABVQString@@@Z @ 28 NONAME ; void SmfPlaylist::setVersion(class QString const &)
-	??0SmfLocation@@QAE@ABV0@@Z @ 29 NONAME ; SmfLocation::SmfLocation(class SmfLocation const &)
-	?setTicketUrl@SmfEvent@@QAEXABVQUrl@@@Z @ 30 NONAME ; void SmfEvent::setTicketUrl(class QUrl const &)
-	?setId@SmfAlbum@@QAEXABVQString@@@Z @ 31 NONAME ; void SmfAlbum::setId(class QString const &)
-	??0SmfTrackInfo@@QAE@ABV0@@Z @ 32 NONAME ; SmfTrackInfo::SmfTrackInfo(class SmfTrackInfo const &)
-	??1SmfMusicRating@@QAE@XZ @ 33 NONAME ; SmfMusicRating::~SmfMusicRating(void)
-	?setObjData@SmfActivityObject@@QAEXABVQVariant@@@Z @ 34 NONAME ; void SmfActivityObject::setObjData(class QVariant const &)
-	?setName@SmfAlbum@@QAEXABVQString@@@Z @ 35 NONAME ; void SmfAlbum::setName(class QString const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactTimestamp@QtMobility@@@Z @ 36 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactTimestamp const &)
-	?parse@SmfPluginUtil@@QAE?AVQVariant@@PAVQIODevice@@PA_N@Z @ 37 NONAME ; class QVariant SmfPluginUtil::parse(class QIODevice *, bool *)
-	?id@SmfArtists@@QBE?AVQString@@XZ @ 38 NONAME ; class QString SmfArtists::id(void) const
-	??0SmfMusicProfile@@QAE@ABV0@@Z @ 39 NONAME ; SmfMusicProfile::SmfMusicProfile(class SmfMusicProfile const &)
-	??0SmfPost@@QAE@XZ @ 40 NONAME ; SmfPost::SmfPost(void)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicFingerPrint@@@Z @ 41 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicFingerPrint &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactBirthday@QtMobility@@@Z @ 42 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactBirthday &)
-	?setRecentTracks@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 43 NONAME ; void SmfMusicProfile::setRecentTracks(class QList<class SmfTrackInfo> const &)
-	?caption@SmfActivityObject@@QBE?AVQString@@XZ @ 44 NONAME ; class QString SmfActivityObject::caption(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfTrackInfo@@@Z @ 45 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfTrackInfo const &)
-	?title@SmfUrl@@QBE?AVQString@@XZ @ 46 NONAME ; class QString SmfUrl::title(void) const
-	?tags@SmfPicture@@QBE?AVQStringList@@XZ @ 47 NONAME ; class QStringList SmfPicture::tags(void) const
-	?language@SmfSubtitle@@QBE?AVQString@@XZ @ 48 NONAME ; class QString SmfSubtitle::language(void) const
-	?id@SmfMusicFingerPrint@@QBE?AVQString@@XZ @ 49 NONAME ; class QString SmfMusicFingerPrint::id(void) const
-	??0SmfSubtitle@@QAE@ABV0@@Z @ 50 NONAME ; SmfSubtitle::SmfSubtitle(class SmfSubtitle const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactNickname@QtMobility@@@Z @ 51 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNickname const &)
-	?userEvents@SmfMusicProfile@@QBE?AV?$QList@VSmfEvent@@@@XZ @ 52 NONAME ; class QList<class SmfEvent> SmfMusicProfile::userEvents(void) const
-	??4SmfPicture@@QAEAAV0@ABV0@@Z @ 53 NONAME ; class SmfPicture & SmfPicture::operator=(class SmfPicture const &)
-	?id@SmfUrl@@QBE?AVQString@@XZ @ 54 NONAME ; class QString SmfUrl::id(void) const
-	?setImage@SmfPost@@QAEXABVQImage@@@Z @ 55 NONAME ; void SmfPost::setImage(class QImage const &)
-	?supportedInterfaces@SmfProvider@@QBE?AV?$QList@VQString@@@@XZ @ 56 NONAME ; class QList<class QString> SmfProvider::supportedInterfaces(void) const
-	??0SmfComment@@QAE@ABV0@@Z @ 57 NONAME ; SmfComment::SmfComment(class SmfComment const &)
-	?setCaption@SmfActivityObject@@QAEXABVQString@@@Z @ 58 NONAME ; void SmfActivityObject::setCaption(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicProfile@@@Z @ 59 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicProfile &)
-	?setLyrics@SmfLyrics@@QAEXABVQByteArray@@@Z @ 60 NONAME ; void SmfLyrics::setLyrics(class QByteArray const &)
-	?setServiceUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 61 NONAME ; void SmfProvider::setServiceUrl(class QUrl &)
-	??4SmfAlbum@@QAEAAV0@ABV0@@Z @ 62 NONAME ; class SmfAlbum & SmfAlbum::operator=(class SmfAlbum const &)
-	?setTitle@SmfActivityEntry@@QAE_NABVSmfPost@@@Z @ 63 NONAME ; bool SmfActivityEntry::setTitle(class SmfPost const &)
-	?setUrl@SmfPost@@QAEXAAVQUrl@@@Z @ 64 NONAME ; void SmfPost::setUrl(class QUrl &)
-	?length@SmfUrl@@QBE?AVQString@@XZ @ 65 NONAME ; class QString SmfUrl::length(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfComment@@@Z @ 66 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfComment const &)
-	??0SmfPictureAlbum@@QAE@ABV0@@Z @ 67 NONAME ; SmfPictureAlbum::SmfPictureAlbum(class SmfPictureAlbum const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfLyrics@@@Z @ 68 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLyrics const &)
-	?setLicense@SmfPlaylist@@QAEXABVQUrl@@@Z @ 69 NONAME ; void SmfPlaylist::setLicense(class QUrl const &)
-	?creationDate@SmfPlaylist@@QBE?AVQDateTime@@XZ @ 70 NONAME ; class QDateTime SmfPlaylist::creationDate(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfEvent@@@Z @ 71 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfEvent &)
-	??0SmfGroup@@QAE@ABV0@@Z @ 72 NONAME ; SmfGroup::SmfGroup(class SmfGroup const &)
-	?parse@SmfPluginUtil@@QAE?AVQVariant@@ABVQByteArray@@PA_N@Z @ 73 NONAME ; class QVariant SmfPluginUtil::parse(class QByteArray const &, bool *)
-	?id@SmfGroup@@QBE?AVQString@@XZ @ 74 NONAME ; class QString SmfGroup::id(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfArtists@@@Z @ 75 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfArtists const &)
-	?setUserEvents@SmfMusicProfile@@QAEXABV?$QList@VSmfEvent@@@@@Z @ 76 NONAME ; void SmfMusicProfile::setUserEvents(class QList<class SmfEvent> const &)
-	?setRel@SmfUrl@@QAEXABVQString@@@Z @ 77 NONAME ; void SmfUrl::setRel(class QString const &)
-	?setUrl@SmfArtists@@QAEXABVQUrl@@@Z @ 78 NONAME ; void SmfArtists::setUrl(class QUrl const &)
-	?setMaxRating@SmfMusicRating@@QAEXABH@Z @ 79 NONAME ; void SmfMusicRating::setMaxRating(int const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPictureAlbum@@@Z @ 80 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPictureAlbum &)
-	?serviceName@SmfProvider@@QBE?AVQString@@XZ @ 81 NONAME ; class QString SmfProvider::serviceName(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityEntry@@@Z @ 82 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityEntry &)
-	?title@SmfTrackInfo@@QBE?AVQString@@XZ @ 83 NONAME ; class QString SmfTrackInfo::title(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfAlbum@@@Z @ 84 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfAlbum const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactTimestamp@QtMobility@@@Z @ 85 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactTimestamp &)
-	?visibility@SmfPictureAlbum@@QBE?AW4SmfPictureVisibility@@XZ @ 86 NONAME ; enum SmfPictureVisibility SmfPictureAlbum::visibility(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactBirthday@QtMobility@@@Z @ 87 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactBirthday const &)
-	?setTime@SmfActivityObject@@QAEXABVQDateTime@@@Z @ 88 NONAME ; void SmfActivityObject::setTime(class QDateTime const &)
-	?rating@SmfTrackInfo@@QBE?AVSmfMusicRating@@XZ @ 89 NONAME ; class SmfMusicRating SmfTrackInfo::rating(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactOnlineAccount@QtMobility@@@Z @ 90 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOnlineAccount &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactGeoLocation@QtMobility@@@Z @ 91 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGeoLocation &)
-	?type@SmfUrl@@QBE?AVQString@@XZ @ 92 NONAME ; class QString SmfUrl::type(void) const
-	?setId@SmfMusicFingerPrint@@QAEXABVQString@@@Z @ 93 NONAME ; void SmfMusicFingerPrint::setId(class QString const &)
-	?setVenue@SmfEvent@@QAEXABVSmfLocation@@@Z @ 94 NONAME ; void SmfEvent::setVenue(class SmfLocation const &)
-	?rating@SmfMusicRating@@QBEHXZ @ 95 NONAME ; int SmfMusicRating::rating(void) const
-	?id@SmfActivityObject@@QBE?AVQString@@XZ @ 96 NONAME ; class QString SmfActivityObject::id(void) const
-	?setId@SmfPictureAlbum@@QAEXABVQString@@@Z @ 97 NONAME ; void SmfPictureAlbum::setId(class QString const &)
-	??4SmfUrl@@QAEAAV0@ABV0@@Z @ 98 NONAME ; class SmfUrl & SmfUrl::operator=(class SmfUrl const &)
-	??0SmfPost@@QAE@ABV0@@Z @ 99 NONAME ; SmfPost::SmfPost(class SmfPost const &)
-	?setVisibility@SmfPicture@@QAEXABW4SmfPictureVisibility@@@Z @ 100 NONAME ; void SmfPicture::setVisibility(enum SmfPictureVisibility const &)
-	?setTimeStamp@SmfComment@@QAEXABVQDateTime@@@Z @ 101 NONAME ; void SmfComment::setTimeStamp(class QDateTime const &)
-	?setImageUrl@SmfAlbum@@QAEXABVQUrl@@@Z @ 102 NONAME ; void SmfAlbum::setImageUrl(class QUrl const &)
-	?setContent@SmfActivityObject@@QAEXABVQString@@@Z @ 103 NONAME ; void SmfActivityObject::setContent(class QString const &)
-	?id@SmfMusicProfile@@QBE?AVQString@@XZ @ 104 NONAME ; class QString SmfMusicProfile::id(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfLyrics@@@Z @ 105 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLyrics &)
-	??4SmfPlaylist@@QAEAAV0@ABV0@@Z @ 106 NONAME ; class SmfPlaylist & SmfPlaylist::operator=(class SmfPlaylist const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactThumbnail@QtMobility@@@Z @ 107 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactThumbnail const &)
-	?setOwner@SmfPicture@@QAEXABVQString@@@Z @ 108 NONAME ; void SmfPicture::setOwner(class QString const &)
-	??4SmfPictureAlbum@@QAEAAV0@ABV0@@Z @ 109 NONAME ; class SmfPictureAlbum & SmfPictureAlbum::operator=(class SmfPictureAlbum const &)
-	?tags@SmfTrackInfo@@QBE?AVQStringList@@XZ @ 110 NONAME ; class QStringList SmfTrackInfo::tags(void) const
-	?setType@SmfActivityObject@@QAEXABW4SmfActivityObjectType@@@Z @ 111 NONAME ; void SmfActivityObject::setType(enum SmfActivityObjectType const &)
-	?id@SmfAlbum@@QBE?AVQString@@XZ @ 112 NONAME ; class QString SmfAlbum::id(void) const
-	?maxRating@SmfMusicRating@@QBEHXZ @ 113 NONAME ; int SmfMusicRating::maxRating(void) const
-	??0SmfPlaylist@@QAE@ABV0@@Z @ 114 NONAME ; SmfPlaylist::SmfPlaylist(class SmfPlaylist const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactAddress@QtMobility@@@Z @ 115 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAddress const &)
-	?picture@SmfPicture@@QBE?AVQImage@@XZ @ 116 NONAME ; class QImage SmfPicture::picture(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityEntry@@@Z @ 117 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityEntry const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPost@@@Z @ 118 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPost const &)
-	??1SmfPluginUtil@@QAE@XZ @ 119 NONAME ; SmfPluginUtil::~SmfPluginUtil(void)
-	?setActivities@SmfActivityEntry@@QAE_NAAV?$QList@VSmfActivityObject@@@@@Z @ 120 NONAME ; bool SmfActivityEntry::setActivities(class QList<class SmfActivityObject> &)
-	?thumbnail@SmfPictureAlbum@@QBE?AVQImage@@XZ @ 121 NONAME ; class QImage SmfPictureAlbum::thumbnail(void) const
-	??4SmfSubtitle@@QAEAAV0@ABV0@@Z @ 122 NONAME ; class SmfSubtitle & SmfSubtitle::operator=(class SmfSubtitle const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPlaylist@@@Z @ 123 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPlaylist &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfTrackInfo@@@Z @ 124 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfTrackInfo &)
-	?setRating@SmfMusicRating@@QAEXABH@Z @ 125 NONAME ; void SmfMusicRating::setRating(int const &)
-	?comments@SmfPlaylist@@QBE?AV?$QList@VSmfComment@@@@XZ @ 126 NONAME ; class QList<class SmfComment> SmfPlaylist::comments(void) const
-	??0SmfGroup@@QAE@PAV?$QList@VSmfContact@@@@@Z @ 127 NONAME ; SmfGroup::SmfGroup(class QList<class SmfContact> *)
-	?playListTitle@SmfPlaylist@@QBE?AVQString@@XZ @ 128 NONAME ; class QString SmfPlaylist::playListTitle(void) const
-	?convert@SmfContact@@QBEXAAVQContact@QtMobility@@@Z @ 129 NONAME ; void SmfContact::convert(class QtMobility::QContact &) const
-	??4SmfTrackInfo@@QAEAAV0@ABV0@@Z @ 130 NONAME ; class SmfTrackInfo & SmfTrackInfo::operator=(class SmfTrackInfo const &)
-	?street@SmfLocation@@QBE?AVQString@@XZ @ 131 NONAME ; class QString SmfLocation::street(void) const
-	?author@SmfPlaylist@@QBE?AVQString@@XZ @ 132 NONAME ; class QString SmfPlaylist::author(void) const
-	?duration@SmfTrackInfo@@QBE?AVQTime@@XZ @ 133 NONAME ; class QTime SmfTrackInfo::duration(void) const
-	??1SmfPictureAlbum@@QAE@XZ @ 134 NONAME ; SmfPictureAlbum::~SmfPictureAlbum(void)
-	?setServiceIcon@SmfProvider@@QAEXAAVQImage@@@Z @ 135 NONAME ; void SmfProvider::setServiceIcon(class QImage &)
-	??0SmfMusicRating@@QAE@ABV0@@Z @ 136 NONAME ; SmfMusicRating::SmfMusicRating(class SmfMusicRating const &)
-	?setTitle@SmfPicture@@QAEXABVQString@@@Z @ 137 NONAME ; void SmfPicture::setTitle(class QString const &)
-	?imageUrl@SmfAlbum@@QBE?AVQUrl@@XZ @ 138 NONAME ; class QUrl SmfAlbum::imageUrl(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPicture@@@Z @ 139 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPicture const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicRating@@@Z @ 140 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicRating const &)
-	?url@SmfLocation@@QBE?AVQUrl@@XZ @ 141 NONAME ; class QUrl SmfLocation::url(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactPhoneNumber@QtMobility@@@Z @ 142 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPhoneNumber const &)
-	?url@SmfPictureAlbum@@QBE?AVQUrl@@XZ @ 143 NONAME ; class QUrl SmfPictureAlbum::url(void) const
-	?duration@SmfEvent@@QBE?AVQTime@@XZ @ 144 NONAME ; class QTime SmfEvent::duration(void) const
-	?setOwner@SmfPost@@QAEXABVSmfContact@@@Z @ 145 NONAME ; void SmfPost::setOwner(class SmfContact const &)
-	?setId@SmfPost@@QAEXVQString@@@Z @ 146 NONAME ; void SmfPost::setId(class QString)
-	??0SmfAlbum@@QAE@ABV0@@Z @ 147 NONAME ; SmfAlbum::SmfAlbum(class SmfAlbum const &)
-	?url@SmfPicture@@QBE?AVQUrl@@XZ @ 148 NONAME ; class QUrl SmfPicture::url(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPlaylist@@@Z @ 149 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPlaylist const &)
-	??_ESmfComment@@QAE@I@Z @ 150 NONAME ; SmfComment::~SmfComment(unsigned int)
-	?setText@SmfComment@@QAEXABVQString@@@Z @ 151 NONAME ; void SmfComment::setText(class QString const &)
-	?postedDate@SmfPicture@@QBE?AVQDateTime@@XZ @ 152 NONAME ; class QDateTime SmfPicture::postedDate(void) const
-	?setArtists@SmfAlbum@@QAEXABVSmfArtists@@@Z @ 153 NONAME ; void SmfAlbum::setArtists(class SmfArtists const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactOnlineAccount@QtMobility@@@Z @ 154 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOnlineAccount const &)
-	??1SmfUrl@@QAE@XZ @ 155 NONAME ; SmfUrl::~SmfUrl(void)
-	??1SmfActivityEntry@@QAE@XZ @ 156 NONAME ; SmfActivityEntry::~SmfActivityEntry(void)
-	?setSubtitleUrl@SmfSubtitle@@QAEXABVQUrl@@@Z @ 157 NONAME ; void SmfSubtitle::setSubtitleUrl(class QUrl const &)
-	?artists@SmfTrackInfo@@QBE?AVSmfArtists@@XZ @ 158 NONAME ; class SmfArtists SmfTrackInfo::artists(void) const
-	??0SmfMusicProfile@@QAE@XZ @ 159 NONAME ; SmfMusicProfile::SmfMusicProfile(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactThumbnail@QtMobility@@@Z @ 160 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactThumbnail &)
-	?title@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 161 NONAME ; class SmfPost SmfActivityEntry::title(void) const
-	??0SmfAlbum@@QAE@XZ @ 162 NONAME ; SmfAlbum::SmfAlbum(void)
-	?ticketUrl@SmfEvent@@QBE?AVQUrl@@XZ @ 163 NONAME ; class QUrl SmfEvent::ticketUrl(void) const
-	?setId@SmfGroup@@QAEXAAVQString@@@Z @ 164 NONAME ; void SmfGroup::setId(class QString &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactName@QtMobility@@@Z @ 165 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactName &)
-	?text@SmfComment@@QBE?AVQString@@XZ @ 166 NONAME ; class QString SmfComment::text(void) const
-	?setTargetObj@SmfActivityEntry@@QAE_NABVSmfActivityObject@@@Z @ 167 NONAME ; bool SmfActivityEntry::setTargetObj(class SmfActivityObject const &)
-	?setName@SmfGroup@@QAEXAAVQString@@@Z @ 168 NONAME ; void SmfGroup::setName(class QString &)
-	?favorites@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 169 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::favorites(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfProvider@@@Z @ 170 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfProvider &)
-	??_ESmfEvent@@QAE@I@Z @ 171 NONAME ; SmfEvent::~SmfEvent(unsigned int)
-	?type@SmfAlbum@@QBE?AW4SmfAlbumMediaType@@XZ @ 172 NONAME ; enum SmfAlbumMediaType SmfAlbum::type(void) const
-	?setValue@SmfContact@@QAEXABVQString@@AAVQVariant@@@Z @ 173 NONAME ; void SmfContact::setValue(class QString const &, class QVariant &)
-	?info@SmfPlaylist@@QBE?AVQUrl@@XZ @ 174 NONAME ; class QUrl SmfPlaylist::info(void) const
-	?author@SmfActivityEntry@@QBE?AVSmfContact@@XZ @ 175 NONAME ; class SmfContact SmfActivityEntry::author(void) const
-	?setLink@SmfActivityObject@@QAEXABVQString@@@Z @ 176 NONAME ; void SmfActivityObject::setLink(class QString const &)
-	?subtitle@SmfSubtitle@@QBE?AVQByteArray@@XZ @ 177 NONAME ; class QByteArray SmfSubtitle::subtitle(void) const
-	?setId@SmfTrackInfo@@QAEXABVQString@@@Z @ 178 NONAME ; void SmfTrackInfo::setId(class QString const &)
-	?id@SmfPost@@QBE?AVQString@@XZ @ 179 NONAME ; class QString SmfPost::id(void) const
-	?setGenre@SmfTrackInfo@@QAEXABVQString@@@Z @ 180 NONAME ; void SmfTrackInfo::setGenre(class QString const &)
-	?serviceUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 181 NONAME ; class QUrl SmfProvider::serviceUrl(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityObject@@@Z @ 182 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityObject &)
-	?releaseYear@SmfLyrics@@QBE?AVQDateTime@@XZ @ 183 NONAME ; class QDateTime SmfLyrics::releaseYear(void) const
-	?frameRate@SmfSubtitle@@QBENXZ @ 184 NONAME ; double SmfSubtitle::frameRate(void) const
-	??1SmfEvent@@QAE@XZ @ 185 NONAME ; SmfEvent::~SmfEvent(void)
-	?setPostedDate@SmfPicture@@QAEXABVQDateTime@@@Z @ 186 NONAME ; void SmfPicture::setPostedDate(class QDateTime const &)
-	?setTitle@SmfPictureAlbum@@QAEXABVQString@@@Z @ 187 NONAME ; void SmfPictureAlbum::setTitle(class QString const &)
-	?comments@SmfPicture@@QBE?AV?$QList@VSmfComment@@@@XZ @ 188 NONAME ; class QList<class SmfComment> SmfPicture::comments(void) const
-	??1SmfMusicFingerPrint@@QAE@XZ @ 189 NONAME ; SmfMusicFingerPrint::~SmfMusicFingerPrint(void)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfProvider@@@Z @ 190 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfProvider const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactAvatar@QtMobility@@@Z @ 191 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAvatar const &)
-	?trackList@SmfPlaylist@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 192 NONAME ; class QList<class SmfTrackInfo> SmfPlaylist::trackList(void) const
-	??1SmfArtists@@QAE@XZ @ 193 NONAME ; SmfArtists::~SmfArtists(void)
-	??_ESmfActivityObject@@QAE@I@Z @ 194 NONAME ; SmfActivityObject::~SmfActivityObject(unsigned int)
-	??4SmfMusicRating@@QAEAAV0@ABV0@@Z @ 195 NONAME ; class SmfMusicRating & SmfMusicRating::operator=(class SmfMusicRating const &)
-	?getNonce@SmfPluginUtil@@QAEXAAVQString@@_J@Z @ 196 NONAME ; void SmfPluginUtil::getNonce(class QString &, long long)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactAvatar@QtMobility@@@Z @ 197 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAvatar &)
-	??0SmfActivityObject@@QAE@XZ @ 198 NONAME ; SmfActivityObject::SmfActivityObject(void)
-	?musicFingerPrint@SmfMusicFingerPrint@@QBE?AVQByteArray@@XZ @ 199 NONAME ; class QByteArray SmfMusicFingerPrint::musicFingerPrint(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfSubtitle@@@Z @ 200 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfSubtitle &)
-	?setLocation@SmfAlbum@@QAEXABVSmfLocation@@@Z @ 201 NONAME ; void SmfAlbum::setLocation(class SmfLocation const &)
-	??4SmfComment@@QAEAAV0@ABV0@@Z @ 202 NONAME ; class SmfComment & SmfComment::operator=(class SmfComment const &)
-	?subTypes@SmfContact@@QBE?AVQStringList@@XZ @ 203 NONAME ; class QStringList SmfContact::subTypes(void) const
-	??0SmfActivityObject@@QAE@ABV0@@Z @ 204 NONAME ; SmfActivityObject::SmfActivityObject(class SmfActivityObject const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactNote@QtMobility@@@Z @ 205 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNote &)
-	?setImage@SmfArtists@@QAEXABVQImage@@@Z @ 206 NONAME ; void SmfArtists::setImage(class QImage const &)
-	?setTitle@SmfTrackInfo@@QAEXABVQString@@@Z @ 207 NONAME ; void SmfTrackInfo::setTitle(class QString const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactEmailAddress@QtMobility@@@Z @ 208 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactEmailAddress const &)
-	?secondaryId@SmfAlbum@@QBE?AVQString@@XZ @ 209 NONAME ; class QString SmfAlbum::secondaryId(void) const
-	??4SmfContact@@QAEAAV0@ABV0@@Z @ 210 NONAME ; class SmfContact & SmfContact::operator=(class SmfContact const &)
-	??1SmfLocation@@QAE@XZ @ 211 NONAME ; SmfLocation::~SmfLocation(void)
-	?version@SmfPlaylist@@QBE?AVQString@@XZ @ 212 NONAME ; class QString SmfPlaylist::version(void) const
-	??1SmfLyrics@@QAE@XZ @ 213 NONAME ; SmfLyrics::~SmfLyrics(void)
-	??0SmfEvent@@QAE@ABV0@@Z @ 214 NONAME ; SmfEvent::SmfEvent(class SmfEvent const &)
-	?setMusicFingerPrint@SmfMusicFingerPrint@@QAEXABVQByteArray@@@Z @ 215 NONAME ; void SmfMusicFingerPrint::setMusicFingerPrint(class QByteArray const &)
-	?hreflang@SmfUrl@@QBE?AVQString@@XZ @ 216 NONAME ; class QString SmfUrl::hreflang(void) const
-	?setDescription@SmfProvider@@QAEXAAVQString@@@Z @ 217 NONAME ; void SmfProvider::setDescription(class QString &)
-	??0SmfActivityEntry@@QAE@ABV0@@Z @ 218 NONAME ; SmfActivityEntry::SmfActivityEntry(class SmfActivityEntry const &)
-	?activities@SmfActivityEntry@@QBE?AV?$QList@VSmfActivityObject@@@@XZ @ 219 NONAME ; class QList<class SmfActivityObject> SmfActivityEntry::activities(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactUrl@QtMobility@@@Z @ 220 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactUrl &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactOrganization@QtMobility@@@Z @ 221 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOrganization const &)
-	?comments@SmfTrackInfo@@QBE?AV?$QList@VSmfComment@@@@XZ @ 222 NONAME ; class QList<class SmfComment> SmfTrackInfo::comments(void) const
-	?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 223 NONAME ; void SmfTrackInfo::setComment(class QList<class SmfComment> const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfSubtitle@@@Z @ 224 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfSubtitle const &)
-	?attribution@SmfPlaylist@@QBE?AV?$QList@VQUrl@@@@XZ @ 225 NONAME ; class QList<class QUrl> SmfPlaylist::attribution(void) const
-	?addKeywords@SmfPictureAlbum@@QAEXABVQStringList@@@Z @ 226 NONAME ; void SmfPictureAlbum::addKeywords(class QStringList const &)
-	?setTags@SmfTrackInfo@@QAEXABVQStringList@@@Z @ 227 NONAME ; void SmfTrackInfo::setTags(class QStringList const &)
-	?setExtension@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 228 NONAME ; void SmfPlaylist::setExtension(class QMap<class QString, class QVariant> const &)
-	?setArtists@SmfEvent@@QAEXABVSmfArtists@@@Z @ 229 NONAME ; void SmfEvent::setArtists(class SmfArtists const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfGroup@@@Z @ 230 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfGroup const &)
-	?id@SmfPicture@@QBE?AVQString@@XZ @ 231 NONAME ; class QString SmfPicture::id(void) const
-	?description@SmfPost@@QBE?AVQString@@XZ @ 232 NONAME ; class QString SmfPost::description(void) const
-	?value@SmfContact@@QBE?AVQVariant@@ABVQString@@@Z @ 233 NONAME ; class QVariant SmfContact::value(class QString const &) const
-	??0SmfActivityEntry@@QAE@XZ @ 234 NONAME ; SmfActivityEntry::SmfActivityEntry(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactPhoneNumber@QtMobility@@@Z @ 235 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPhoneNumber &)
-	?targetObj@SmfActivityEntry@@QBE?AVSmfActivityObject@@XZ @ 236 NONAME ; class SmfActivityObject SmfActivityEntry::targetObj(void) const
-	?id@SmfPlaylist@@QBE?AVQString@@XZ @ 237 NONAME ; class QString SmfPlaylist::id(void) const
-	?title@SmfPicture@@QBE?AVQString@@XZ @ 238 NONAME ; class QString SmfPicture::title(void) const
-	?title@SmfEvent@@QBE?AVQString@@XZ @ 239 NONAME ; class QString SmfEvent::title(void) const
-	?setMinRating@SmfMusicRating@@QAEXABH@Z @ 240 NONAME ; void SmfMusicRating::setMinRating(int const &)
-	??0SmfPicture@@QAE@ABV0@@Z @ 241 NONAME ; SmfPicture::SmfPicture(class SmfPicture const &)
-	?setId@SmfUrl@@QAEXABVQString@@@Z @ 242 NONAME ; void SmfUrl::setId(class QString const &)
-	?setId@SmfActivityEntry@@QAE_NABVQString@@@Z @ 243 NONAME ; bool SmfActivityEntry::setId(class QString const &)
-	?setDescription@SmfPost@@QAEXABVQString@@@Z @ 244 NONAME ; void SmfPost::setDescription(class QString const &)
-	?href@SmfUrl@@QBE?AVQUrl@@XZ @ 245 NONAME ; class QUrl SmfUrl::href(void) const
-	?image@SmfPost@@QBE?AVQImage@@XZ @ 246 NONAME ; class QImage SmfPost::image(void) const
-	?setType@SmfAlbum@@QAEXW4SmfAlbumMediaType@@@Z @ 247 NONAME ; void SmfAlbum::setType(enum SmfAlbumMediaType)
-	?id@SmfLyrics@@QBE?AVQString@@XZ @ 248 NONAME ; class QString SmfLyrics::id(void) const
-	?setUrl@SmfPicture@@QAEXABVQUrl@@@Z @ 249 NONAME ; void SmfPicture::setUrl(class QUrl const &)
-	??4SmfEvent@@QAEAAV0@ABV0@@Z @ 250 NONAME ; class SmfEvent & SmfEvent::operator=(class SmfEvent const &)
-	??1SmfContact@@QAE@XZ @ 251 NONAME ; SmfContact::~SmfContact(void)
-	??4SmfPost@@QAEAAV0@ABV0@@Z @ 252 NONAME ; class SmfPost & SmfPost::operator=(class SmfPost const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactPresence@QtMobility@@@Z @ 253 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPresence &)
-	?genre@SmfTrackInfo@@QBE?AVQString@@XZ @ 254 NONAME ; class QString SmfTrackInfo::genre(void) const
-	??0SmfLocation@@QAE@XZ @ 255 NONAME ; SmfLocation::SmfLocation(void)
-	?license@SmfPlaylist@@QBE?AVQUrl@@XZ @ 256 NONAME ; class QUrl SmfPlaylist::license(void) const
-	?setId@SmfEvent@@QAEXABVQString@@@Z @ 257 NONAME ; void SmfEvent::setId(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactGuid@QtMobility@@@Z @ 258 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGuid &)
-	?serviceIcon@SmfProvider@@QBE?AVQImage@@XZ @ 259 NONAME ; class QImage SmfProvider::serviceIcon(void) const
-	?setTags@SmfArtists@@QAEXABVQStringList@@@Z @ 260 NONAME ; void SmfArtists::setTags(class QStringList const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactEmailAddress@QtMobility@@@Z @ 261 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactEmailAddress &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfContact@@@Z @ 262 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfContact &)
-	?setStreet@SmfLocation@@QAEXABVQString@@@Z @ 263 NONAME ; void SmfLocation::setStreet(class QString const &)
-	??1SmfPost@@QAE@XZ @ 264 NONAME ; SmfPost::~SmfPost(void)
-	?members@SmfGroup@@QBE?AV?$QList@VSmfContact@@@@XZ @ 265 NONAME ; class QList<class SmfContact> SmfGroup::members(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicRating@@@Z @ 266 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicRating &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactId@QtMobility@@@Z @ 267 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactId &)
-	?setYear@SmfTrackInfo@@QAEXABVQDateTime@@@Z @ 268 NONAME ; void SmfTrackInfo::setYear(class QDateTime const &)
-	?geoPositionInfo@SmfLocation@@QBE?AVQGeoPositionInfo@QtMobility@@XZ @ 269 NONAME ; class QtMobility::QGeoPositionInfo SmfLocation::geoPositionInfo(void) const
-	??0SmfMusicFingerPrint@@QAE@ABV0@@Z @ 270 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(class SmfMusicFingerPrint const &)
-	?setPlayListTitle@SmfPlaylist@@QAEXABVQString@@@Z @ 271 NONAME ; void SmfPlaylist::setPlayListTitle(class QString const &)
-	?time@SmfActivityObject@@QBE?AVQDateTime@@XZ @ 272 NONAME ; class QDateTime SmfActivityObject::time(void) const
-	??1SmfComment@@QAE@XZ @ 273 NONAME ; SmfComment::~SmfComment(void)
-	?description@SmfPicture@@QBE?AVQString@@XZ @ 274 NONAME ; class QString SmfPicture::description(void) const
-	?visibility@SmfPicture@@QBE?AW4SmfPictureVisibility@@XZ @ 275 NONAME ; enum SmfPictureVisibility SmfPicture::visibility(void) const
-	?setName@SmfLocation@@QAEXABVQString@@@Z @ 276 NONAME ; void SmfLocation::setName(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactOrganization@QtMobility@@@Z @ 277 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOrganization &)
-	?eventDateTime@SmfEvent@@QBE?AVQDateTime@@XZ @ 278 NONAME ; class QDateTime SmfEvent::eventDateTime(void) const
-	?setEventDateTime@SmfEvent@@QAEXABVQDateTime@@@Z @ 279 NONAME ; void SmfEvent::setEventDateTime(class QDateTime const &)
-	?setAuthor@SmfPlaylist@@QAEXABVQString@@@Z @ 280 NONAME ; void SmfPlaylist::setAuthor(class QString const &)
-	?location@SmfPlaylist@@QBE?AVQUrl@@XZ @ 281 NONAME ; class QUrl SmfPlaylist::location(void) const
-	?lyrics@SmfLyrics@@QBE?AVQByteArray@@XZ @ 282 NONAME ; class QByteArray SmfLyrics::lyrics(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfAlbum@@@Z @ 283 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfAlbum &)
-	?thumbnail@SmfActivityObject@@QBE?AVQImage@@XZ @ 284 NONAME ; class QImage SmfActivityObject::thumbnail(void) const
-	??0SmfUrl@@QAE@ABV0@@Z @ 285 NONAME ; SmfUrl::SmfUrl(class SmfUrl const &)
-	?comments@SmfPictureAlbum@@QBE?AV?$QList@VSmfComment@@@@XZ @ 286 NONAME ; class QList<class SmfComment> SmfPictureAlbum::comments(void) const
-	??1SmfMusicProfile@@QAE@XZ @ 287 NONAME ; SmfMusicProfile::~SmfMusicProfile(void)
-	?setFavorites@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 288 NONAME ; void SmfMusicProfile::setFavorites(class QList<class SmfTrackInfo> const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicFingerPrint@@@Z @ 289 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicFingerPrint const &)
-	?title@SmfPost@@QBE?AVQString@@XZ @ 290 NONAME ; class QString SmfPost::title(void) const
-	??1SmfSubtitle@@QAE@XZ @ 291 NONAME ; SmfSubtitle::~SmfSubtitle(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactType@QtMobility@@@Z @ 292 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactType &)
-	?setLength@SmfUrl@@QAEXABVQString@@@Z @ 293 NONAME ; void SmfUrl::setLength(class QString const &)
-	?setZipCode@SmfLocation@@QAEXABVQString@@@Z @ 294 NONAME ; void SmfLocation::setZipCode(class QString const &)
-	?names@SmfArtists@@QBE?AVQStringList@@XZ @ 295 NONAME ; class QStringList SmfArtists::names(void) const
-	?details@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 296 NONAME ; class SmfPost SmfActivityEntry::details(void) const
-	?setFrameRate@SmfSubtitle@@QAEXABN@Z @ 297 NONAME ; void SmfSubtitle::setFrameRate(double const &)
-	?setType@SmfUrl@@QAEXABVQString@@@Z @ 298 NONAME ; void SmfUrl::setType(class QString const &)
-	?setServiceName@SmfProvider@@QAEXAAVQString@@@Z @ 299 NONAME ; void SmfProvider::setServiceName(class QString &)
-	?errorLine@SmfPluginUtil@@QBEHXZ @ 300 NONAME ; int SmfPluginUtil::errorLine(void) const
-	?id@SmfEvent@@QBE?AVQString@@XZ @ 301 NONAME ; class QString SmfEvent::id(void) const
-	?description@SmfPictureAlbum@@QBE?AVQString@@XZ @ 302 NONAME ; class QString SmfPictureAlbum::description(void) const
-	?setSubtitle@SmfSubtitle@@QAEXABVQByteArray@@@Z @ 303 NONAME ; void SmfSubtitle::setSubtitle(class QByteArray const &)
-	?setVisibility@SmfPictureAlbum@@QAEXABW4SmfPictureVisibility@@@Z @ 304 NONAME ; void SmfPictureAlbum::setVisibility(enum SmfPictureVisibility const &)
-	?id@SmfActivityEntry@@QBE?AVQString@@XZ @ 305 NONAME ; class QString SmfActivityEntry::id(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactPresence@QtMobility@@@Z @ 306 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPresence const &)
-	?setReleaseYear@SmfSubtitle@@QAEXABVQDateTime@@@Z @ 307 NONAME ; void SmfSubtitle::setReleaseYear(class QDateTime const &)
-	??4SmfGroup@@QAEAAV0@ABV0@@Z @ 308 NONAME ; class SmfGroup & SmfGroup::operator=(class SmfGroup const &)
-	??4SmfArtists@@QAEAAV0@ABV0@@Z @ 309 NONAME ; class SmfArtists & SmfArtists::operator=(class SmfArtists const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfEvent@@@Z @ 310 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfEvent const &)
-	?city@SmfLocation@@QBE?AVQString@@XZ @ 311 NONAME ; class QString SmfLocation::city(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfUrl@@@Z @ 312 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfUrl &)
-	??1SmfProvider@@QAE@XZ @ 313 NONAME ; SmfProvider::~SmfProvider(void)
-	??_ESmfContact@@QAE@I@Z @ 314 NONAME ; SmfContact::~SmfContact(unsigned int)
-	?downloadFlag@SmfPicture@@QAE_NXZ @ 315 NONAME ; bool SmfPicture::downloadFlag(void)
-	?venue@SmfEvent@@QBE?AVSmfLocation@@XZ @ 316 NONAME ; class SmfLocation SmfEvent::venue(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactAnniversary@QtMobility@@@Z @ 317 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAnniversary const &)
-	?actionName@SmfActivityEntry@@QBE?AW4SmfActivityVerb@@XZ @ 318 NONAME ; enum SmfActivityVerb SmfActivityEntry::actionName(void) const
-	?setLanguage@SmfSubtitle@@QAEXABVQString@@@Z @ 319 NONAME ; void SmfSubtitle::setLanguage(class QString const &)
-	?releaseYear@SmfSubtitle@@QBE?AVQDateTime@@XZ @ 320 NONAME ; class QDateTime SmfSubtitle::releaseYear(void) const
-	?name@SmfGroup@@QBE?AVQString@@XZ @ 321 NONAME ; class QString SmfGroup::name(void) const
-	??4SmfMusicFingerPrint@@QAEAAV0@ABV0@@Z @ 322 NONAME ; class SmfMusicFingerPrint & SmfMusicFingerPrint::operator=(class SmfMusicFingerPrint const &)
-	??0SmfLyrics@@QAE@ABV0@@Z @ 323 NONAME ; SmfLyrics::SmfLyrics(class SmfLyrics const &)
-	?setInfo@SmfPlaylist@@QAEXABVQUrl@@@Z @ 324 NONAME ; void SmfPlaylist::setInfo(class QUrl const &)
-	?setId@SmfLyrics@@QAEXABVQString@@@Z @ 325 NONAME ; void SmfLyrics::setId(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfComment@@@Z @ 326 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfComment &)
-	?setPostedDate@SmfPictureAlbum@@QAEXABVQDateTime@@@Z @ 327 NONAME ; void SmfPictureAlbum::setPostedDate(class QDateTime const &)
-	??1SmfPicture@@QAE@XZ @ 328 NONAME ; SmfPicture::~SmfPicture(void)
-	??0SmfArtists@@QAE@XZ @ 329 NONAME ; SmfArtists::SmfArtists(void)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactName@QtMobility@@@Z @ 330 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactName const &)
-	?setAlbum@SmfTrackInfo@@QAEXABVSmfAlbum@@@Z @ 331 NONAME ; void SmfTrackInfo::setAlbum(class SmfAlbum const &)
-	?setId@SmfPicture@@QAEXABVQString@@@Z @ 332 NONAME ; void SmfPicture::setId(class QString const &)
-	?pictureCount@SmfPictureAlbum@@QBEHXZ @ 333 NONAME ; int SmfPictureAlbum::pictureCount(void) const
-	?artists@SmfEvent@@QBE?AVSmfArtists@@XZ @ 334 NONAME ; class SmfArtists SmfEvent::artists(void) const
-	?objData@SmfActivityObject@@QBE?AVQVariant@@XZ @ 335 NONAME ; class QVariant SmfActivityObject::objData(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfArtists@@@Z @ 336 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfArtists &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactUrl@QtMobility@@@Z @ 337 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactUrl const &)
-	?addComment@SmfPicture@@QAEXABVSmfComment@@@Z @ 338 NONAME ; void SmfPicture::addComment(class SmfComment const &)
-	?setSupportedInterfaces@SmfProvider@@QAEXAAVQStringList@@@Z @ 339 NONAME ; void SmfProvider::setSupportedInterfaces(class QStringList &)
-	?setHhreflang@SmfUrl@@QAEXABVQString@@@Z @ 340 NONAME ; void SmfUrl::setHhreflang(class QString const &)
-	??0SmfUrl@@QAE@XZ @ 341 NONAME ; SmfUrl::SmfUrl(void)
-	??0SmfPicture@@QAE@ABVQImage@@@Z @ 342 NONAME ; SmfPicture::SmfPicture(class QImage const &)
-	??0SmfMusicFingerPrint@@QAE@XZ @ 343 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(void)
-	?setId@SmfPlaylist@@QAEXABVQString@@@Z @ 344 NONAME ; void SmfPlaylist::setId(class QString const &)
-	?setSupportedLanguages@SmfProvider@@QAEXAAVQStringList@@@Z @ 345 NONAME ; void SmfProvider::setSupportedLanguages(class QStringList &)
-	?setId@SmfSubtitle@@QAEXABVQString@@@Z @ 346 NONAME ; void SmfSubtitle::setId(class QString const &)
-	??0SmfSubtitle@@QAE@XZ @ 347 NONAME ; SmfSubtitle::SmfSubtitle(void)
-	?addTags@SmfPicture@@QAEXABVQStringList@@@Z @ 348 NONAME ; void SmfPicture::addTags(class QStringList const &)
-	??0SmfTrackInfo@@QAE@XZ @ 349 NONAME ; SmfTrackInfo::SmfTrackInfo(void)
-	??0SmfPost@@QAE@VSmfContact@@VQString@@1VQImage@@VQUrl@@@Z @ 350 NONAME ; SmfPost::SmfPost(class SmfContact, class QString, class QString, class QImage, class QUrl)
-	?setHref@SmfUrl@@QAEXABVQUrl@@@Z @ 351 NONAME ; void SmfUrl::setHref(class QUrl const &)
-	?url@SmfArtists@@QBE?AVQUrl@@XZ @ 352 NONAME ; class QUrl SmfArtists::url(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactAddress@QtMobility@@@Z @ 353 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAddress &)
-	?setPictureCount@SmfPictureAlbum@@QAEXH@Z @ 354 NONAME ; void SmfPictureAlbum::setPictureCount(int)
-	?setPicture@SmfPicture@@QAEXABVQImage@@@Z @ 355 NONAME ; void SmfPicture::setPicture(class QImage const &)
-	?setNames@SmfArtists@@QAEXABVQStringList@@@Z @ 356 NONAME ; void SmfArtists::setNames(class QStringList const &)
-	?setId@SmfActivityObject@@QAEXABVQString@@@Z @ 357 NONAME ; void SmfActivityObject::setId(class QString const &)
-	??1SmfPlaylist@@QAE@XZ @ 358 NONAME ; SmfPlaylist::~SmfPlaylist(void)
-	?setApplicationUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 359 NONAME ; void SmfProvider::setApplicationUrl(class QUrl &)
-	?id@SmfTrackInfo@@QBE?AVQString@@XZ @ 360 NONAME ; class QString SmfTrackInfo::id(void) const
-	?minRating@SmfMusicRating@@QBEHXZ @ 361 NONAME ; int SmfMusicRating::minRating(void) const
-	?name@SmfLocation@@QBE?AVQString@@XZ @ 362 NONAME ; class QString SmfLocation::name(void) const
-	??0SmfPluginUtil@@QAE@XZ @ 363 NONAME ; SmfPluginUtil::SmfPluginUtil(void)
-	?title@SmfPictureAlbum@@QBE?AVQString@@XZ @ 364 NONAME ; class QString SmfPictureAlbum::title(void) const
-	?setAuthor@SmfActivityEntry@@QAE_NABVSmfContact@@@Z @ 365 NONAME ; bool SmfActivityEntry::setAuthor(class SmfContact const &)
-	?addComment@SmfPictureAlbum@@QAEXABVSmfComment@@@Z @ 366 NONAME ; void SmfPictureAlbum::addComment(class SmfComment const &)
-	??0SmfProvider@@QAE@XZ @ 367 NONAME ; SmfProvider::SmfProvider(void)
-	?timeStamp@SmfComment@@QBE?AVQDateTime@@XZ @ 368 NONAME ; class QDateTime SmfComment::timeStamp(void) const
-	??0SmfArtists@@QAE@ABV0@@Z @ 369 NONAME ; SmfArtists::SmfArtists(class SmfArtists const &)
-	?name@SmfAlbum@@QBE?AVQString@@XZ @ 370 NONAME ; class QString SmfAlbum::name(void) const
-	?setId@SmfComment@@QAEXABVQString@@@Z @ 371 NONAME ; void SmfComment::setId(class QString const &)
-	?image@SmfPlaylist@@QBE?AVQUrl@@XZ @ 372 NONAME ; class QUrl SmfPlaylist::image(void) const
-	?getAuthKeys@SmfPluginUtil@@QAEXAAV?$QMap@VQByteArray@@V1@@@VQString@@ABVQDateTime@@1@Z @ 373 NONAME ; void SmfPluginUtil::getAuthKeys(class QMap<class QByteArray, class QByteArray> &, class QString, class QDateTime const &, class QString)
-	?setCountry@SmfLocation@@QAEXABVQString@@@Z @ 374 NONAME ; void SmfLocation::setCountry(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfLocation@@@Z @ 375 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLocation &)
-	??0SmfContact@@QAE@ABV0@@Z @ 376 NONAME ; SmfContact::SmfContact(class SmfContact const &)
-	?artists@SmfAlbum@@QBE?AVSmfArtists@@XZ @ 377 NONAME ; class SmfArtists SmfAlbum::artists(void) const
-	??4SmfMusicProfile@@QAEAAV0@ABV0@@Z @ 378 NONAME ; class SmfMusicProfile & SmfMusicProfile::operator=(class SmfMusicProfile const &)
-	?setId@SmfMusicProfile@@QAEXABVQString@@@Z @ 379 NONAME ; void SmfMusicProfile::setId(class QString const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactId@QtMobility@@@Z @ 380 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactId const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactNote@QtMobility@@@Z @ 381 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNote const &)
-	?setUrl@SmfPictureAlbum@@QAEXABVQUrl@@@Z @ 382 NONAME ; void SmfPictureAlbum::setUrl(class QUrl const &)
-	??1SmfActivityObject@@QAE@XZ @ 383 NONAME ; SmfActivityObject::~SmfActivityObject(void)
-	?rel@SmfUrl@@QBE?AVQString@@XZ @ 384 NONAME ; class QString SmfUrl::rel(void) const
-	?errorString@SmfPluginUtil@@QBE?AVQString@@XZ @ 385 NONAME ; class QString SmfPluginUtil::errorString(void) const
-	?setTitle@SmfUrl@@QAEXABVQString@@@Z @ 386 NONAME ; void SmfUrl::setTitle(class QString const &)
-	?setSecondaryId@SmfAlbum@@QAEXABVQString@@@Z @ 387 NONAME ; void SmfAlbum::setSecondaryId(class QString const &)
-	?keywords@SmfPictureAlbum@@QBE?AVQStringList@@XZ @ 388 NONAME ; class QStringList SmfPictureAlbum::keywords(void) const
-	?supportedLanguages@SmfProvider@@QBE?AVQStringList@@XZ @ 389 NONAME ; class QStringList SmfProvider::supportedLanguages(void) const
-	?description@SmfProvider@@QBE?AVQString@@XZ @ 390 NONAME ; class QString SmfProvider::description(void) const
-	?setRating@SmfTrackInfo@@QAEXABVSmfMusicRating@@@Z @ 391 NONAME ; void SmfTrackInfo::setRating(class SmfMusicRating const &)
-	??0SmfPlaylist@@QAE@XZ @ 392 NONAME ; SmfPlaylist::SmfPlaylist(void)
-	?owner@SmfPicture@@QBE?AVQString@@XZ @ 393 NONAME ; class QString SmfPicture::owner(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityObject@@@Z @ 394 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityObject const &)
-	?type@SmfActivityObject@@QBE?AW4SmfActivityObjectType@@XZ @ 395 NONAME ; enum SmfActivityObjectType SmfActivityObject::type(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfUrl@@@Z @ 396 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfUrl const &)
-	?id@SmfLocation@@QBE?AVQString@@XZ @ 397 NONAME ; class QString SmfLocation::id(void) const
-	?setThumbnail@SmfPictureAlbum@@QAEXABVQImage@@@Z @ 398 NONAME ; void SmfPictureAlbum::setThumbnail(class QImage const &)
-	?setActionName@SmfActivityEntry@@QAEXW4SmfActivityVerb@@@Z @ 399 NONAME ; void SmfActivityEntry::setActionName(enum SmfActivityVerb)
-	?setReleaseYear@SmfLyrics@@QAEXABVQDateTime@@@Z @ 400 NONAME ; void SmfLyrics::setReleaseYear(class QDateTime const &)
-	?setItemsCount@SmfAlbum@@QAEXH@Z @ 401 NONAME ; void SmfAlbum::setItemsCount(int)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfLocation@@@Z @ 402 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLocation const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPicture@@@Z @ 403 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPicture &)
-	?setTrackList@SmfPlaylist@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 404 NONAME ; void SmfPlaylist::setTrackList(class QList<class SmfTrackInfo> const &)
-	??0SmfEvent@@QAE@XZ @ 405 NONAME ; SmfEvent::SmfEvent(void)
-	?setTitle@SmfEvent@@QAEXABVQString@@@Z @ 406 NONAME ; void SmfEvent::setTitle(class QString const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactGender@QtMobility@@@Z @ 407 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGender const &)
-	??4SmfActivityObject@@QAEAAV0@ABV0@@Z @ 408 NONAME ; class SmfActivityObject & SmfActivityObject::operator=(class SmfActivityObject const &)
-	?location@SmfAlbum@@QBE?AVSmfLocation@@XZ @ 409 NONAME ; class SmfLocation SmfAlbum::location(void) const
-	?setMembers@SmfGroup@@QAEXPAV?$QList@VSmfContact@@@@@Z @ 410 NONAME ; void SmfGroup::setMembers(class QList<class SmfContact> *)
-	??0SmfMusicRating@@QAE@PAVSmfTrackInfo@@@Z @ 411 NONAME ; SmfMusicRating::SmfMusicRating(class SmfTrackInfo *)
-	??0SmfLyrics@@QAE@XZ @ 412 NONAME ; SmfLyrics::SmfLyrics(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactGender@QtMobility@@@Z @ 413 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGender &)
-	??0SmfComment@@QAE@XZ @ 414 NONAME ; SmfComment::SmfComment(void)
-	??1SmfAlbum@@QAE@XZ @ 415 NONAME ; SmfAlbum::~SmfAlbum(void)
-	?year@SmfTrackInfo@@QBE?AVQDateTime@@XZ @ 416 NONAME ; class QDateTime SmfTrackInfo::year(void) const
-	?country@SmfLocation@@QBE?AVQString@@XZ @ 417 NONAME ; class QString SmfLocation::country(void) const
-	?postedDate@SmfPictureAlbum@@QBE?AVQDateTime@@XZ @ 418 NONAME ; class QDateTime SmfPictureAlbum::postedDate(void) const
-	??0SmfContact@@QAE@PAVQObject@@@Z @ 419 NONAME ; SmfContact::SmfContact(class QObject *)
-	??1SmfTrackInfo@@QAE@XZ @ 420 NONAME ; SmfTrackInfo::~SmfTrackInfo(void)
-	?language@SmfLyrics@@QBE?AVQString@@XZ @ 421 NONAME ; class QString SmfLyrics::language(void) const
-	?setArtists@SmfTrackInfo@@QAEXABVSmfArtists@@@Z @ 422 NONAME ; void SmfTrackInfo::setArtists(class SmfArtists const &)
-	?id@SmfComment@@QBE?AVQString@@XZ @ 423 NONAME ; class QString SmfComment::id(void) const
-	?id@SmfPictureAlbum@@QBE?AVQString@@XZ @ 424 NONAME ; class QString SmfPictureAlbum::id(void) const
-	?setDuration@SmfEvent@@QAEXABVQTime@@@Z @ 425 NONAME ; void SmfEvent::setDuration(class QTime const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactGuid@QtMobility@@@Z @ 426 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGuid const &)
-	?setUrl@SmfLocation@@QAEXABVQUrl@@@Z @ 427 NONAME ; void SmfLocation::setUrl(class QUrl const &)
-	?setComments@SmfPlaylist@@QAEXABV?$QList@VSmfComment@@@@@Z @ 428 NONAME ; void SmfPlaylist::setComments(class QList<class SmfComment> const &)
-	?id@SmfSubtitle@@QBE?AVQString@@XZ @ 429 NONAME ; class QString SmfSubtitle::id(void) const
-	?setImage@SmfPlaylist@@QAEXABVQUrl@@@Z @ 430 NONAME ; void SmfPlaylist::setImage(class QUrl const &)
-	?setDescription@SmfPicture@@QAEXABVQString@@@Z @ 431 NONAME ; void SmfPicture::setDescription(class QString const &)
-	??4SmfLocation@@QAEAAV0@ABV0@@Z @ 432 NONAME ; class SmfLocation & SmfLocation::operator=(class SmfLocation const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactAnniversary@QtMobility@@@Z @ 433 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAnniversary &)
-	??4SmfLyrics@@QAEAAV0@ABV0@@Z @ 434 NONAME ; class SmfLyrics & SmfLyrics::operator=(class SmfLyrics const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactGeoLocation@QtMobility@@@Z @ 435 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGeoLocation const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicProfile@@@Z @ 436 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicProfile const &)
-	?setMetadata@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 437 NONAME ; void SmfPlaylist::setMetadata(class QMap<class QString, class QVariant> const &)
-	?album@SmfTrackInfo@@QBE?AVSmfAlbum@@XZ @ 438 NONAME ; class SmfAlbum SmfTrackInfo::album(void) const
-	?url@SmfPost@@QBE?AVQUrl@@XZ @ 439 NONAME ; class QUrl SmfPost::url(void) const
-	?content@SmfActivityObject@@QBE?AVQString@@XZ @ 440 NONAME ; class QString SmfActivityObject::content(void) const
-	?setThumbnail@SmfActivityObject@@QAEXABVQImage@@@Z @ 441 NONAME ; void SmfActivityObject::setThumbnail(class QImage const &)
-	??1SmfGroup@@QAE@XZ @ 442 NONAME ; SmfGroup::~SmfGroup(void)
-	?zipCode@SmfLocation@@QBE?AVQString@@XZ @ 443 NONAME ; class QString SmfLocation::zipCode(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPost@@@Z @ 444 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPost &)
-	?tags@SmfArtists@@QBE?AVQStringList@@XZ @ 445 NONAME ; class QStringList SmfArtists::tags(void) const
-	?setPostedDateTime@SmfPost@@QAEXAAVQDateTime@@@Z @ 446 NONAME ; void SmfPost::setPostedDateTime(class QDateTime &)
-	?setAttribution@SmfPlaylist@@QAEXABV?$QList@VQUrl@@@@@Z @ 447 NONAME ; void SmfPlaylist::setAttribution(class QList<class QUrl> const &)
-	?setCity@SmfLocation@@QAEXABVQString@@@Z @ 448 NONAME ; void SmfLocation::setCity(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactNickname@QtMobility@@@Z @ 449 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNickname &)
-	?setDuration@SmfSubtitle@@QAEXABN@Z @ 450 NONAME ; void SmfSubtitle::setDuration(double const &)
-	??_ESmfTrackInfo@@QAE@I@Z @ 451 NONAME ; SmfTrackInfo::~SmfTrackInfo(unsigned int)
-	?setTitle@SmfPost@@QAEXABVQString@@@Z @ 452 NONAME ; void SmfPost::setTitle(class QString const &)
+	?setAuthenticationAppId@SmfProvider@@QAEXABVQString@@@Z @ 28 NONAME ; void SmfProvider::setAuthenticationAppId(class QString const &)
+	?setVersion@SmfPlaylist@@QAEXABVQString@@@Z @ 29 NONAME ; void SmfPlaylist::setVersion(class QString const &)
+	??0SmfLocation@@QAE@ABV0@@Z @ 30 NONAME ; SmfLocation::SmfLocation(class SmfLocation const &)
+	?setTicketUrl@SmfEvent@@QAEXABVQUrl@@@Z @ 31 NONAME ; void SmfEvent::setTicketUrl(class QUrl const &)
+	?setId@SmfAlbum@@QAEXABVQString@@@Z @ 32 NONAME ; void SmfAlbum::setId(class QString const &)
+	??0SmfTrackInfo@@QAE@ABV0@@Z @ 33 NONAME ; SmfTrackInfo::SmfTrackInfo(class SmfTrackInfo const &)
+	??1SmfMusicRating@@QAE@XZ @ 34 NONAME ; SmfMusicRating::~SmfMusicRating(void)
+	?setObjData@SmfActivityObject@@QAEXABVQVariant@@@Z @ 35 NONAME ; void SmfActivityObject::setObjData(class QVariant const &)
+	?setName@SmfAlbum@@QAEXABVQString@@@Z @ 36 NONAME ; void SmfAlbum::setName(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactTimestamp@QtMobility@@@Z @ 37 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactTimestamp const &)
+	?parse@SmfPluginUtil@@QAE?AVQVariant@@PAVQIODevice@@PA_N@Z @ 38 NONAME ; class QVariant SmfPluginUtil::parse(class QIODevice *, bool *)
+	?id@SmfArtists@@QBE?AVQString@@XZ @ 39 NONAME ; class QString SmfArtists::id(void) const
+	??0SmfMusicProfile@@QAE@ABV0@@Z @ 40 NONAME ; SmfMusicProfile::SmfMusicProfile(class SmfMusicProfile const &)
+	??0SmfPost@@QAE@XZ @ 41 NONAME ; SmfPost::SmfPost(void)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicFingerPrint@@@Z @ 42 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicFingerPrint &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactBirthday@QtMobility@@@Z @ 43 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactBirthday &)
+	?setRecentTracks@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 44 NONAME ; void SmfMusicProfile::setRecentTracks(class QList<class SmfTrackInfo> const &)
+	?caption@SmfActivityObject@@QBE?AVQString@@XZ @ 45 NONAME ; class QString SmfActivityObject::caption(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfTrackInfo@@@Z @ 46 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfTrackInfo const &)
+	?title@SmfUrl@@QBE?AVQString@@XZ @ 47 NONAME ; class QString SmfUrl::title(void) const
+	?tags@SmfPicture@@QBE?AVQStringList@@XZ @ 48 NONAME ; class QStringList SmfPicture::tags(void) const
+	?language@SmfSubtitle@@QBE?AVQString@@XZ @ 49 NONAME ; class QString SmfSubtitle::language(void) const
+	?id@SmfMusicFingerPrint@@QBE?AVQString@@XZ @ 50 NONAME ; class QString SmfMusicFingerPrint::id(void) const
+	??0SmfSubtitle@@QAE@ABV0@@Z @ 51 NONAME ; SmfSubtitle::SmfSubtitle(class SmfSubtitle const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactNickname@QtMobility@@@Z @ 52 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNickname const &)
+	?userEvents@SmfMusicProfile@@QBE?AV?$QList@VSmfEvent@@@@XZ @ 53 NONAME ; class QList<class SmfEvent> SmfMusicProfile::userEvents(void) const
+	??4SmfPicture@@QAEAAV0@ABV0@@Z @ 54 NONAME ; class SmfPicture & SmfPicture::operator=(class SmfPicture const &)
+	?setAuthenticationAppName@SmfProvider@@QAEXABVQString@@@Z @ 55 NONAME ; void SmfProvider::setAuthenticationAppName(class QString const &)
+	?id@SmfUrl@@QBE?AVQString@@XZ @ 56 NONAME ; class QString SmfUrl::id(void) const
+	?setImage@SmfPost@@QAEXABVQImage@@@Z @ 57 NONAME ; void SmfPost::setImage(class QImage const &)
+	?supportedInterfaces@SmfProvider@@QBE?AV?$QList@VQString@@@@XZ @ 58 NONAME ; class QList<class QString> SmfProvider::supportedInterfaces(void) const
+	??0SmfComment@@QAE@ABV0@@Z @ 59 NONAME ; SmfComment::SmfComment(class SmfComment const &)
+	?setCaption@SmfActivityObject@@QAEXABVQString@@@Z @ 60 NONAME ; void SmfActivityObject::setCaption(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicProfile@@@Z @ 61 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicProfile &)
+	?setLyrics@SmfLyrics@@QAEXABVQByteArray@@@Z @ 62 NONAME ; void SmfLyrics::setLyrics(class QByteArray const &)
+	?setServiceUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 63 NONAME ; void SmfProvider::setServiceUrl(class QUrl &)
+	??4SmfAlbum@@QAEAAV0@ABV0@@Z @ 64 NONAME ; class SmfAlbum & SmfAlbum::operator=(class SmfAlbum const &)
+	?setTitle@SmfActivityEntry@@QAE_NABVSmfPost@@@Z @ 65 NONAME ; bool SmfActivityEntry::setTitle(class SmfPost const &)
+	?setUrl@SmfPost@@QAEXAAVQUrl@@@Z @ 66 NONAME ; void SmfPost::setUrl(class QUrl &)
+	?length@SmfUrl@@QBE?AVQString@@XZ @ 67 NONAME ; class QString SmfUrl::length(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfComment@@@Z @ 68 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfComment const &)
+	??0SmfPictureAlbum@@QAE@ABV0@@Z @ 69 NONAME ; SmfPictureAlbum::SmfPictureAlbum(class SmfPictureAlbum const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfLyrics@@@Z @ 70 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLyrics const &)
+	?setLicense@SmfPlaylist@@QAEXABVQUrl@@@Z @ 71 NONAME ; void SmfPlaylist::setLicense(class QUrl const &)
+	?creationDate@SmfPlaylist@@QBE?AVQDateTime@@XZ @ 72 NONAME ; class QDateTime SmfPlaylist::creationDate(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfEvent@@@Z @ 73 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfEvent &)
+	??0SmfGroup@@QAE@ABV0@@Z @ 74 NONAME ; SmfGroup::SmfGroup(class SmfGroup const &)
+	?parse@SmfPluginUtil@@QAE?AVQVariant@@ABVQByteArray@@PA_N@Z @ 75 NONAME ; class QVariant SmfPluginUtil::parse(class QByteArray const &, bool *)
+	?id@SmfGroup@@QBE?AVQString@@XZ @ 76 NONAME ; class QString SmfGroup::id(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfArtists@@@Z @ 77 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfArtists const &)
+	?setUserEvents@SmfMusicProfile@@QAEXABV?$QList@VSmfEvent@@@@@Z @ 78 NONAME ; void SmfMusicProfile::setUserEvents(class QList<class SmfEvent> const &)
+	?setRel@SmfUrl@@QAEXABVQString@@@Z @ 79 NONAME ; void SmfUrl::setRel(class QString const &)
+	?setUrl@SmfArtists@@QAEXABVQUrl@@@Z @ 80 NONAME ; void SmfArtists::setUrl(class QUrl const &)
+	?setMaxRating@SmfMusicRating@@QAEXABH@Z @ 81 NONAME ; void SmfMusicRating::setMaxRating(int const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPictureAlbum@@@Z @ 82 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPictureAlbum &)
+	?serviceName@SmfProvider@@QBE?AVQString@@XZ @ 83 NONAME ; class QString SmfProvider::serviceName(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityEntry@@@Z @ 84 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityEntry &)
+	?title@SmfTrackInfo@@QBE?AVQString@@XZ @ 85 NONAME ; class QString SmfTrackInfo::title(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfAlbum@@@Z @ 86 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfAlbum const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactTimestamp@QtMobility@@@Z @ 87 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactTimestamp &)
+	?visibility@SmfPictureAlbum@@QBE?AW4SmfPictureVisibility@@XZ @ 88 NONAME ; enum SmfPictureVisibility SmfPictureAlbum::visibility(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactBirthday@QtMobility@@@Z @ 89 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactBirthday const &)
+	?setTime@SmfActivityObject@@QAEXABVQDateTime@@@Z @ 90 NONAME ; void SmfActivityObject::setTime(class QDateTime const &)
+	?rating@SmfTrackInfo@@QBE?AVSmfMusicRating@@XZ @ 91 NONAME ; class SmfMusicRating SmfTrackInfo::rating(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactOnlineAccount@QtMobility@@@Z @ 92 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOnlineAccount &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactGeoLocation@QtMobility@@@Z @ 93 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGeoLocation &)
+	?type@SmfUrl@@QBE?AVQString@@XZ @ 94 NONAME ; class QString SmfUrl::type(void) const
+	?setId@SmfMusicFingerPrint@@QAEXABVQString@@@Z @ 95 NONAME ; void SmfMusicFingerPrint::setId(class QString const &)
+	?setVenue@SmfEvent@@QAEXABVSmfLocation@@@Z @ 96 NONAME ; void SmfEvent::setVenue(class SmfLocation const &)
+	?authenticationAppId@SmfProvider@@QBE?AVQString@@XZ @ 97 NONAME ; class QString SmfProvider::authenticationAppId(void) const
+	?rating@SmfMusicRating@@QBEHXZ @ 98 NONAME ; int SmfMusicRating::rating(void) const
+	?id@SmfActivityObject@@QBE?AVQString@@XZ @ 99 NONAME ; class QString SmfActivityObject::id(void) const
+	?setId@SmfPictureAlbum@@QAEXABVQString@@@Z @ 100 NONAME ; void SmfPictureAlbum::setId(class QString const &)
+	??4SmfUrl@@QAEAAV0@ABV0@@Z @ 101 NONAME ; class SmfUrl & SmfUrl::operator=(class SmfUrl const &)
+	??0SmfPost@@QAE@ABV0@@Z @ 102 NONAME ; SmfPost::SmfPost(class SmfPost const &)
+	?setVisibility@SmfPicture@@QAEXABW4SmfPictureVisibility@@@Z @ 103 NONAME ; void SmfPicture::setVisibility(enum SmfPictureVisibility const &)
+	?setTimeStamp@SmfComment@@QAEXABVQDateTime@@@Z @ 104 NONAME ; void SmfComment::setTimeStamp(class QDateTime const &)
+	?setImageUrl@SmfAlbum@@QAEXABVQUrl@@@Z @ 105 NONAME ; void SmfAlbum::setImageUrl(class QUrl const &)
+	?setContent@SmfActivityObject@@QAEXABVQString@@@Z @ 106 NONAME ; void SmfActivityObject::setContent(class QString const &)
+	?id@SmfMusicProfile@@QBE?AVQString@@XZ @ 107 NONAME ; class QString SmfMusicProfile::id(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfLyrics@@@Z @ 108 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLyrics &)
+	??4SmfPlaylist@@QAEAAV0@ABV0@@Z @ 109 NONAME ; class SmfPlaylist & SmfPlaylist::operator=(class SmfPlaylist const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactThumbnail@QtMobility@@@Z @ 110 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactThumbnail const &)
+	?setOwner@SmfPicture@@QAEXABVQString@@@Z @ 111 NONAME ; void SmfPicture::setOwner(class QString const &)
+	??4SmfPictureAlbum@@QAEAAV0@ABV0@@Z @ 112 NONAME ; class SmfPictureAlbum & SmfPictureAlbum::operator=(class SmfPictureAlbum const &)
+	?tags@SmfTrackInfo@@QBE?AVQStringList@@XZ @ 113 NONAME ; class QStringList SmfTrackInfo::tags(void) const
+	?setType@SmfActivityObject@@QAEXABW4SmfActivityObjectType@@@Z @ 114 NONAME ; void SmfActivityObject::setType(enum SmfActivityObjectType const &)
+	?id@SmfAlbum@@QBE?AVQString@@XZ @ 115 NONAME ; class QString SmfAlbum::id(void) const
+	?maxRating@SmfMusicRating@@QBEHXZ @ 116 NONAME ; int SmfMusicRating::maxRating(void) const
+	??0SmfPlaylist@@QAE@ABV0@@Z @ 117 NONAME ; SmfPlaylist::SmfPlaylist(class SmfPlaylist const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactAddress@QtMobility@@@Z @ 118 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAddress const &)
+	?picture@SmfPicture@@QBE?AVQImage@@XZ @ 119 NONAME ; class QImage SmfPicture::picture(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityEntry@@@Z @ 120 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityEntry const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPost@@@Z @ 121 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPost const &)
+	??1SmfPluginUtil@@QAE@XZ @ 122 NONAME ; SmfPluginUtil::~SmfPluginUtil(void)
+	?setActivities@SmfActivityEntry@@QAE_NAAV?$QList@VSmfActivityObject@@@@@Z @ 123 NONAME ; bool SmfActivityEntry::setActivities(class QList<class SmfActivityObject> &)
+	?thumbnail@SmfPictureAlbum@@QBE?AVQImage@@XZ @ 124 NONAME ; class QImage SmfPictureAlbum::thumbnail(void) const
+	??4SmfSubtitle@@QAEAAV0@ABV0@@Z @ 125 NONAME ; class SmfSubtitle & SmfSubtitle::operator=(class SmfSubtitle const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPlaylist@@@Z @ 126 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPlaylist &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfTrackInfo@@@Z @ 127 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfTrackInfo &)
+	?setRating@SmfMusicRating@@QAEXABH@Z @ 128 NONAME ; void SmfMusicRating::setRating(int const &)
+	?comments@SmfPlaylist@@QBE?AV?$QList@VSmfComment@@@@XZ @ 129 NONAME ; class QList<class SmfComment> SmfPlaylist::comments(void) const
+	??0SmfGroup@@QAE@PAV?$QList@VSmfContact@@@@@Z @ 130 NONAME ; SmfGroup::SmfGroup(class QList<class SmfContact> *)
+	?playListTitle@SmfPlaylist@@QBE?AVQString@@XZ @ 131 NONAME ; class QString SmfPlaylist::playListTitle(void) const
+	?convert@SmfContact@@QBEXAAVQContact@QtMobility@@@Z @ 132 NONAME ; void SmfContact::convert(class QtMobility::QContact &) const
+	??4SmfTrackInfo@@QAEAAV0@ABV0@@Z @ 133 NONAME ; class SmfTrackInfo & SmfTrackInfo::operator=(class SmfTrackInfo const &)
+	?street@SmfLocation@@QBE?AVQString@@XZ @ 134 NONAME ; class QString SmfLocation::street(void) const
+	?author@SmfPlaylist@@QBE?AVQString@@XZ @ 135 NONAME ; class QString SmfPlaylist::author(void) const
+	?duration@SmfTrackInfo@@QBE?AVQTime@@XZ @ 136 NONAME ; class QTime SmfTrackInfo::duration(void) const
+	??1SmfPictureAlbum@@QAE@XZ @ 137 NONAME ; SmfPictureAlbum::~SmfPictureAlbum(void)
+	?setServiceIcon@SmfProvider@@QAEXAAVQImage@@@Z @ 138 NONAME ; void SmfProvider::setServiceIcon(class QImage &)
+	??0SmfMusicRating@@QAE@ABV0@@Z @ 139 NONAME ; SmfMusicRating::SmfMusicRating(class SmfMusicRating const &)
+	?setTitle@SmfPicture@@QAEXABVQString@@@Z @ 140 NONAME ; void SmfPicture::setTitle(class QString const &)
+	?imageUrl@SmfAlbum@@QBE?AVQUrl@@XZ @ 141 NONAME ; class QUrl SmfAlbum::imageUrl(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPicture@@@Z @ 142 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPicture const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicRating@@@Z @ 143 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicRating const &)
+	?url@SmfLocation@@QBE?AVQUrl@@XZ @ 144 NONAME ; class QUrl SmfLocation::url(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactPhoneNumber@QtMobility@@@Z @ 145 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPhoneNumber const &)
+	?url@SmfPictureAlbum@@QBE?AVQUrl@@XZ @ 146 NONAME ; class QUrl SmfPictureAlbum::url(void) const
+	?duration@SmfEvent@@QBE?AVQTime@@XZ @ 147 NONAME ; class QTime SmfEvent::duration(void) const
+	?setOwner@SmfPost@@QAEXABVSmfContact@@@Z @ 148 NONAME ; void SmfPost::setOwner(class SmfContact const &)
+	?setId@SmfPost@@QAEXVQString@@@Z @ 149 NONAME ; void SmfPost::setId(class QString)
+	??0SmfAlbum@@QAE@ABV0@@Z @ 150 NONAME ; SmfAlbum::SmfAlbum(class SmfAlbum const &)
+	?url@SmfPicture@@QBE?AVQUrl@@XZ @ 151 NONAME ; class QUrl SmfPicture::url(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPlaylist@@@Z @ 152 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPlaylist const &)
+	??_ESmfComment@@QAE@I@Z @ 153 NONAME ; SmfComment::~SmfComment(unsigned int)
+	?setText@SmfComment@@QAEXABVQString@@@Z @ 154 NONAME ; void SmfComment::setText(class QString const &)
+	?postedDate@SmfPicture@@QBE?AVQDateTime@@XZ @ 155 NONAME ; class QDateTime SmfPicture::postedDate(void) const
+	?setArtists@SmfAlbum@@QAEXABVSmfArtists@@@Z @ 156 NONAME ; void SmfAlbum::setArtists(class SmfArtists const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactOnlineAccount@QtMobility@@@Z @ 157 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOnlineAccount const &)
+	??1SmfUrl@@QAE@XZ @ 158 NONAME ; SmfUrl::~SmfUrl(void)
+	??1SmfActivityEntry@@QAE@XZ @ 159 NONAME ; SmfActivityEntry::~SmfActivityEntry(void)
+	?setSubtitleUrl@SmfSubtitle@@QAEXABVQUrl@@@Z @ 160 NONAME ; void SmfSubtitle::setSubtitleUrl(class QUrl const &)
+	?artists@SmfTrackInfo@@QBE?AVSmfArtists@@XZ @ 161 NONAME ; class SmfArtists SmfTrackInfo::artists(void) const
+	??0SmfMusicProfile@@QAE@XZ @ 162 NONAME ; SmfMusicProfile::SmfMusicProfile(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactThumbnail@QtMobility@@@Z @ 163 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactThumbnail &)
+	?title@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 164 NONAME ; class SmfPost SmfActivityEntry::title(void) const
+	??0SmfAlbum@@QAE@XZ @ 165 NONAME ; SmfAlbum::SmfAlbum(void)
+	?ticketUrl@SmfEvent@@QBE?AVQUrl@@XZ @ 166 NONAME ; class QUrl SmfEvent::ticketUrl(void) const
+	?setId@SmfGroup@@QAEXAAVQString@@@Z @ 167 NONAME ; void SmfGroup::setId(class QString &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactName@QtMobility@@@Z @ 168 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactName &)
+	?text@SmfComment@@QBE?AVQString@@XZ @ 169 NONAME ; class QString SmfComment::text(void) const
+	?setTargetObj@SmfActivityEntry@@QAE_NABVSmfActivityObject@@@Z @ 170 NONAME ; bool SmfActivityEntry::setTargetObj(class SmfActivityObject const &)
+	?setName@SmfGroup@@QAEXAAVQString@@@Z @ 171 NONAME ; void SmfGroup::setName(class QString &)
+	?favorites@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 172 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::favorites(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfProvider@@@Z @ 173 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfProvider &)
+	??_ESmfEvent@@QAE@I@Z @ 174 NONAME ; SmfEvent::~SmfEvent(unsigned int)
+	?type@SmfAlbum@@QBE?AW4SmfAlbumMediaType@@XZ @ 175 NONAME ; enum SmfAlbumMediaType SmfAlbum::type(void) const
+	?setValue@SmfContact@@QAEXABVQString@@AAVQVariant@@@Z @ 176 NONAME ; void SmfContact::setValue(class QString const &, class QVariant &)
+	?info@SmfPlaylist@@QBE?AVQUrl@@XZ @ 177 NONAME ; class QUrl SmfPlaylist::info(void) const
+	?author@SmfActivityEntry@@QBE?AVSmfContact@@XZ @ 178 NONAME ; class SmfContact SmfActivityEntry::author(void) const
+	?setLink@SmfActivityObject@@QAEXABVQString@@@Z @ 179 NONAME ; void SmfActivityObject::setLink(class QString const &)
+	?subtitle@SmfSubtitle@@QBE?AVQByteArray@@XZ @ 180 NONAME ; class QByteArray SmfSubtitle::subtitle(void) const
+	?setId@SmfTrackInfo@@QAEXABVQString@@@Z @ 181 NONAME ; void SmfTrackInfo::setId(class QString const &)
+	?id@SmfPost@@QBE?AVQString@@XZ @ 182 NONAME ; class QString SmfPost::id(void) const
+	?setGenre@SmfTrackInfo@@QAEXABVQString@@@Z @ 183 NONAME ; void SmfTrackInfo::setGenre(class QString const &)
+	?serviceUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 184 NONAME ; class QUrl SmfProvider::serviceUrl(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityObject@@@Z @ 185 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityObject &)
+	?releaseYear@SmfLyrics@@QBE?AVQDateTime@@XZ @ 186 NONAME ; class QDateTime SmfLyrics::releaseYear(void) const
+	?frameRate@SmfSubtitle@@QBENXZ @ 187 NONAME ; double SmfSubtitle::frameRate(void) const
+	??1SmfEvent@@QAE@XZ @ 188 NONAME ; SmfEvent::~SmfEvent(void)
+	?setPostedDate@SmfPicture@@QAEXABVQDateTime@@@Z @ 189 NONAME ; void SmfPicture::setPostedDate(class QDateTime const &)
+	?setTitle@SmfPictureAlbum@@QAEXABVQString@@@Z @ 190 NONAME ; void SmfPictureAlbum::setTitle(class QString const &)
+	?comments@SmfPicture@@QBE?AV?$QList@VSmfComment@@@@XZ @ 191 NONAME ; class QList<class SmfComment> SmfPicture::comments(void) const
+	??1SmfMusicFingerPrint@@QAE@XZ @ 192 NONAME ; SmfMusicFingerPrint::~SmfMusicFingerPrint(void)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfProvider@@@Z @ 193 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfProvider const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactAvatar@QtMobility@@@Z @ 194 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAvatar const &)
+	?trackList@SmfPlaylist@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 195 NONAME ; class QList<class SmfTrackInfo> SmfPlaylist::trackList(void) const
+	??1SmfArtists@@QAE@XZ @ 196 NONAME ; SmfArtists::~SmfArtists(void)
+	??_ESmfActivityObject@@QAE@I@Z @ 197 NONAME ; SmfActivityObject::~SmfActivityObject(unsigned int)
+	??4SmfMusicRating@@QAEAAV0@ABV0@@Z @ 198 NONAME ; class SmfMusicRating & SmfMusicRating::operator=(class SmfMusicRating const &)
+	?getNonce@SmfPluginUtil@@QAEXAAVQString@@_J@Z @ 199 NONAME ; void SmfPluginUtil::getNonce(class QString &, long long)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactAvatar@QtMobility@@@Z @ 200 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAvatar &)
+	??0SmfActivityObject@@QAE@XZ @ 201 NONAME ; SmfActivityObject::SmfActivityObject(void)
+	?musicFingerPrint@SmfMusicFingerPrint@@QBE?AVQByteArray@@XZ @ 202 NONAME ; class QByteArray SmfMusicFingerPrint::musicFingerPrint(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfSubtitle@@@Z @ 203 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfSubtitle &)
+	?setLocation@SmfAlbum@@QAEXABVSmfLocation@@@Z @ 204 NONAME ; void SmfAlbum::setLocation(class SmfLocation const &)
+	??4SmfComment@@QAEAAV0@ABV0@@Z @ 205 NONAME ; class SmfComment & SmfComment::operator=(class SmfComment const &)
+	?subTypes@SmfContact@@QBE?AVQStringList@@XZ @ 206 NONAME ; class QStringList SmfContact::subTypes(void) const
+	??0SmfActivityObject@@QAE@ABV0@@Z @ 207 NONAME ; SmfActivityObject::SmfActivityObject(class SmfActivityObject const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactNote@QtMobility@@@Z @ 208 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNote &)
+	?setImage@SmfArtists@@QAEXABVQImage@@@Z @ 209 NONAME ; void SmfArtists::setImage(class QImage const &)
+	?setTitle@SmfTrackInfo@@QAEXABVQString@@@Z @ 210 NONAME ; void SmfTrackInfo::setTitle(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactEmailAddress@QtMobility@@@Z @ 211 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactEmailAddress const &)
+	?secondaryId@SmfAlbum@@QBE?AVQString@@XZ @ 212 NONAME ; class QString SmfAlbum::secondaryId(void) const
+	??4SmfContact@@QAEAAV0@ABV0@@Z @ 213 NONAME ; class SmfContact & SmfContact::operator=(class SmfContact const &)
+	??1SmfLocation@@QAE@XZ @ 214 NONAME ; SmfLocation::~SmfLocation(void)
+	?version@SmfPlaylist@@QBE?AVQString@@XZ @ 215 NONAME ; class QString SmfPlaylist::version(void) const
+	??1SmfLyrics@@QAE@XZ @ 216 NONAME ; SmfLyrics::~SmfLyrics(void)
+	??0SmfEvent@@QAE@ABV0@@Z @ 217 NONAME ; SmfEvent::SmfEvent(class SmfEvent const &)
+	?setMusicFingerPrint@SmfMusicFingerPrint@@QAEXABVQByteArray@@@Z @ 218 NONAME ; void SmfMusicFingerPrint::setMusicFingerPrint(class QByteArray const &)
+	?hreflang@SmfUrl@@QBE?AVQString@@XZ @ 219 NONAME ; class QString SmfUrl::hreflang(void) const
+	?setDescription@SmfProvider@@QAEXAAVQString@@@Z @ 220 NONAME ; void SmfProvider::setDescription(class QString &)
+	??0SmfActivityEntry@@QAE@ABV0@@Z @ 221 NONAME ; SmfActivityEntry::SmfActivityEntry(class SmfActivityEntry const &)
+	?activities@SmfActivityEntry@@QBE?AV?$QList@VSmfActivityObject@@@@XZ @ 222 NONAME ; class QList<class SmfActivityObject> SmfActivityEntry::activities(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactUrl@QtMobility@@@Z @ 223 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactUrl &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactOrganization@QtMobility@@@Z @ 224 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOrganization const &)
+	?comments@SmfTrackInfo@@QBE?AV?$QList@VSmfComment@@@@XZ @ 225 NONAME ; class QList<class SmfComment> SmfTrackInfo::comments(void) const
+	?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 226 NONAME ; void SmfTrackInfo::setComment(class QList<class SmfComment> const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfSubtitle@@@Z @ 227 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfSubtitle const &)
+	?attribution@SmfPlaylist@@QBE?AV?$QList@VQUrl@@@@XZ @ 228 NONAME ; class QList<class QUrl> SmfPlaylist::attribution(void) const
+	?addKeywords@SmfPictureAlbum@@QAEXABVQStringList@@@Z @ 229 NONAME ; void SmfPictureAlbum::addKeywords(class QStringList const &)
+	?setTags@SmfTrackInfo@@QAEXABVQStringList@@@Z @ 230 NONAME ; void SmfTrackInfo::setTags(class QStringList const &)
+	?setExtension@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 231 NONAME ; void SmfPlaylist::setExtension(class QMap<class QString, class QVariant> const &)
+	?setArtists@SmfEvent@@QAEXABVSmfArtists@@@Z @ 232 NONAME ; void SmfEvent::setArtists(class SmfArtists const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfGroup@@@Z @ 233 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfGroup const &)
+	?id@SmfPicture@@QBE?AVQString@@XZ @ 234 NONAME ; class QString SmfPicture::id(void) const
+	?description@SmfPost@@QBE?AVQString@@XZ @ 235 NONAME ; class QString SmfPost::description(void) const
+	?value@SmfContact@@QBE?AVQVariant@@ABVQString@@@Z @ 236 NONAME ; class QVariant SmfContact::value(class QString const &) const
+	??0SmfActivityEntry@@QAE@XZ @ 237 NONAME ; SmfActivityEntry::SmfActivityEntry(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactPhoneNumber@QtMobility@@@Z @ 238 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPhoneNumber &)
+	?targetObj@SmfActivityEntry@@QBE?AVSmfActivityObject@@XZ @ 239 NONAME ; class SmfActivityObject SmfActivityEntry::targetObj(void) const
+	?id@SmfPlaylist@@QBE?AVQString@@XZ @ 240 NONAME ; class QString SmfPlaylist::id(void) const
+	?title@SmfPicture@@QBE?AVQString@@XZ @ 241 NONAME ; class QString SmfPicture::title(void) const
+	?title@SmfEvent@@QBE?AVQString@@XZ @ 242 NONAME ; class QString SmfEvent::title(void) const
+	?setMinRating@SmfMusicRating@@QAEXABH@Z @ 243 NONAME ; void SmfMusicRating::setMinRating(int const &)
+	??0SmfPicture@@QAE@ABV0@@Z @ 244 NONAME ; SmfPicture::SmfPicture(class SmfPicture const &)
+	?setId@SmfUrl@@QAEXABVQString@@@Z @ 245 NONAME ; void SmfUrl::setId(class QString const &)
+	?setId@SmfActivityEntry@@QAE_NABVQString@@@Z @ 246 NONAME ; bool SmfActivityEntry::setId(class QString const &)
+	?setDescription@SmfPost@@QAEXABVQString@@@Z @ 247 NONAME ; void SmfPost::setDescription(class QString const &)
+	?href@SmfUrl@@QBE?AVQUrl@@XZ @ 248 NONAME ; class QUrl SmfUrl::href(void) const
+	?image@SmfPost@@QBE?AVQImage@@XZ @ 249 NONAME ; class QImage SmfPost::image(void) const
+	?setType@SmfAlbum@@QAEXW4SmfAlbumMediaType@@@Z @ 250 NONAME ; void SmfAlbum::setType(enum SmfAlbumMediaType)
+	?id@SmfLyrics@@QBE?AVQString@@XZ @ 251 NONAME ; class QString SmfLyrics::id(void) const
+	?setUrl@SmfPicture@@QAEXABVQUrl@@@Z @ 252 NONAME ; void SmfPicture::setUrl(class QUrl const &)
+	??4SmfEvent@@QAEAAV0@ABV0@@Z @ 253 NONAME ; class SmfEvent & SmfEvent::operator=(class SmfEvent const &)
+	??1SmfContact@@QAE@XZ @ 254 NONAME ; SmfContact::~SmfContact(void)
+	??4SmfPost@@QAEAAV0@ABV0@@Z @ 255 NONAME ; class SmfPost & SmfPost::operator=(class SmfPost const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactPresence@QtMobility@@@Z @ 256 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPresence &)
+	?genre@SmfTrackInfo@@QBE?AVQString@@XZ @ 257 NONAME ; class QString SmfTrackInfo::genre(void) const
+	??0SmfLocation@@QAE@XZ @ 258 NONAME ; SmfLocation::SmfLocation(void)
+	?license@SmfPlaylist@@QBE?AVQUrl@@XZ @ 259 NONAME ; class QUrl SmfPlaylist::license(void) const
+	?setId@SmfEvent@@QAEXABVQString@@@Z @ 260 NONAME ; void SmfEvent::setId(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactGuid@QtMobility@@@Z @ 261 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGuid &)
+	?serviceIcon@SmfProvider@@QBE?AVQImage@@XZ @ 262 NONAME ; class QImage SmfProvider::serviceIcon(void) const
+	?setTags@SmfArtists@@QAEXABVQStringList@@@Z @ 263 NONAME ; void SmfArtists::setTags(class QStringList const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactEmailAddress@QtMobility@@@Z @ 264 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactEmailAddress &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfContact@@@Z @ 265 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfContact &)
+	?setStreet@SmfLocation@@QAEXABVQString@@@Z @ 266 NONAME ; void SmfLocation::setStreet(class QString const &)
+	??1SmfPost@@QAE@XZ @ 267 NONAME ; SmfPost::~SmfPost(void)
+	?members@SmfGroup@@QBE?AV?$QList@VSmfContact@@@@XZ @ 268 NONAME ; class QList<class SmfContact> SmfGroup::members(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicRating@@@Z @ 269 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicRating &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactId@QtMobility@@@Z @ 270 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactId &)
+	?setYear@SmfTrackInfo@@QAEXABVQDateTime@@@Z @ 271 NONAME ; void SmfTrackInfo::setYear(class QDateTime const &)
+	?geoPositionInfo@SmfLocation@@QBE?AVQGeoPositionInfo@QtMobility@@XZ @ 272 NONAME ; class QtMobility::QGeoPositionInfo SmfLocation::geoPositionInfo(void) const
+	??0SmfMusicFingerPrint@@QAE@ABV0@@Z @ 273 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(class SmfMusicFingerPrint const &)
+	?setPlayListTitle@SmfPlaylist@@QAEXABVQString@@@Z @ 274 NONAME ; void SmfPlaylist::setPlayListTitle(class QString const &)
+	?time@SmfActivityObject@@QBE?AVQDateTime@@XZ @ 275 NONAME ; class QDateTime SmfActivityObject::time(void) const
+	??1SmfComment@@QAE@XZ @ 276 NONAME ; SmfComment::~SmfComment(void)
+	?description@SmfPicture@@QBE?AVQString@@XZ @ 277 NONAME ; class QString SmfPicture::description(void) const
+	?visibility@SmfPicture@@QBE?AW4SmfPictureVisibility@@XZ @ 278 NONAME ; enum SmfPictureVisibility SmfPicture::visibility(void) const
+	?setName@SmfLocation@@QAEXABVQString@@@Z @ 279 NONAME ; void SmfLocation::setName(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactOrganization@QtMobility@@@Z @ 280 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOrganization &)
+	?eventDateTime@SmfEvent@@QBE?AVQDateTime@@XZ @ 281 NONAME ; class QDateTime SmfEvent::eventDateTime(void) const
+	?setEventDateTime@SmfEvent@@QAEXABVQDateTime@@@Z @ 282 NONAME ; void SmfEvent::setEventDateTime(class QDateTime const &)
+	?setAuthor@SmfPlaylist@@QAEXABVQString@@@Z @ 283 NONAME ; void SmfPlaylist::setAuthor(class QString const &)
+	?location@SmfPlaylist@@QBE?AVQUrl@@XZ @ 284 NONAME ; class QUrl SmfPlaylist::location(void) const
+	?lyrics@SmfLyrics@@QBE?AVQByteArray@@XZ @ 285 NONAME ; class QByteArray SmfLyrics::lyrics(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfAlbum@@@Z @ 286 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfAlbum &)
+	?thumbnail@SmfActivityObject@@QBE?AVQImage@@XZ @ 287 NONAME ; class QImage SmfActivityObject::thumbnail(void) const
+	??0SmfUrl@@QAE@ABV0@@Z @ 288 NONAME ; SmfUrl::SmfUrl(class SmfUrl const &)
+	?comments@SmfPictureAlbum@@QBE?AV?$QList@VSmfComment@@@@XZ @ 289 NONAME ; class QList<class SmfComment> SmfPictureAlbum::comments(void) const
+	??1SmfMusicProfile@@QAE@XZ @ 290 NONAME ; SmfMusicProfile::~SmfMusicProfile(void)
+	?setFavorites@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 291 NONAME ; void SmfMusicProfile::setFavorites(class QList<class SmfTrackInfo> const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicFingerPrint@@@Z @ 292 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicFingerPrint const &)
+	?title@SmfPost@@QBE?AVQString@@XZ @ 293 NONAME ; class QString SmfPost::title(void) const
+	??1SmfSubtitle@@QAE@XZ @ 294 NONAME ; SmfSubtitle::~SmfSubtitle(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactType@QtMobility@@@Z @ 295 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactType &)
+	?setLength@SmfUrl@@QAEXABVQString@@@Z @ 296 NONAME ; void SmfUrl::setLength(class QString const &)
+	?setZipCode@SmfLocation@@QAEXABVQString@@@Z @ 297 NONAME ; void SmfLocation::setZipCode(class QString const &)
+	?names@SmfArtists@@QBE?AVQStringList@@XZ @ 298 NONAME ; class QStringList SmfArtists::names(void) const
+	?details@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 299 NONAME ; class SmfPost SmfActivityEntry::details(void) const
+	?setFrameRate@SmfSubtitle@@QAEXABN@Z @ 300 NONAME ; void SmfSubtitle::setFrameRate(double const &)
+	?setType@SmfUrl@@QAEXABVQString@@@Z @ 301 NONAME ; void SmfUrl::setType(class QString const &)
+	?setServiceName@SmfProvider@@QAEXAAVQString@@@Z @ 302 NONAME ; void SmfProvider::setServiceName(class QString &)
+	?errorLine@SmfPluginUtil@@QBEHXZ @ 303 NONAME ; int SmfPluginUtil::errorLine(void) const
+	?id@SmfEvent@@QBE?AVQString@@XZ @ 304 NONAME ; class QString SmfEvent::id(void) const
+	?description@SmfPictureAlbum@@QBE?AVQString@@XZ @ 305 NONAME ; class QString SmfPictureAlbum::description(void) const
+	?setSubtitle@SmfSubtitle@@QAEXABVQByteArray@@@Z @ 306 NONAME ; void SmfSubtitle::setSubtitle(class QByteArray const &)
+	?setVisibility@SmfPictureAlbum@@QAEXABW4SmfPictureVisibility@@@Z @ 307 NONAME ; void SmfPictureAlbum::setVisibility(enum SmfPictureVisibility const &)
+	?id@SmfActivityEntry@@QBE?AVQString@@XZ @ 308 NONAME ; class QString SmfActivityEntry::id(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactPresence@QtMobility@@@Z @ 309 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPresence const &)
+	?setReleaseYear@SmfSubtitle@@QAEXABVQDateTime@@@Z @ 310 NONAME ; void SmfSubtitle::setReleaseYear(class QDateTime const &)
+	??4SmfGroup@@QAEAAV0@ABV0@@Z @ 311 NONAME ; class SmfGroup & SmfGroup::operator=(class SmfGroup const &)
+	??4SmfArtists@@QAEAAV0@ABV0@@Z @ 312 NONAME ; class SmfArtists & SmfArtists::operator=(class SmfArtists const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfEvent@@@Z @ 313 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfEvent const &)
+	?city@SmfLocation@@QBE?AVQString@@XZ @ 314 NONAME ; class QString SmfLocation::city(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfUrl@@@Z @ 315 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfUrl &)
+	??1SmfProvider@@QAE@XZ @ 316 NONAME ; SmfProvider::~SmfProvider(void)
+	??_ESmfContact@@QAE@I@Z @ 317 NONAME ; SmfContact::~SmfContact(unsigned int)
+	?downloadFlag@SmfPicture@@QAE_NXZ @ 318 NONAME ; bool SmfPicture::downloadFlag(void)
+	?venue@SmfEvent@@QBE?AVSmfLocation@@XZ @ 319 NONAME ; class SmfLocation SmfEvent::venue(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactAnniversary@QtMobility@@@Z @ 320 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAnniversary const &)
+	?actionName@SmfActivityEntry@@QBE?AW4SmfActivityVerb@@XZ @ 321 NONAME ; enum SmfActivityVerb SmfActivityEntry::actionName(void) const
+	?setLanguage@SmfSubtitle@@QAEXABVQString@@@Z @ 322 NONAME ; void SmfSubtitle::setLanguage(class QString const &)
+	?releaseYear@SmfSubtitle@@QBE?AVQDateTime@@XZ @ 323 NONAME ; class QDateTime SmfSubtitle::releaseYear(void) const
+	?name@SmfGroup@@QBE?AVQString@@XZ @ 324 NONAME ; class QString SmfGroup::name(void) const
+	??4SmfMusicFingerPrint@@QAEAAV0@ABV0@@Z @ 325 NONAME ; class SmfMusicFingerPrint & SmfMusicFingerPrint::operator=(class SmfMusicFingerPrint const &)
+	??0SmfLyrics@@QAE@ABV0@@Z @ 326 NONAME ; SmfLyrics::SmfLyrics(class SmfLyrics const &)
+	?setInfo@SmfPlaylist@@QAEXABVQUrl@@@Z @ 327 NONAME ; void SmfPlaylist::setInfo(class QUrl const &)
+	?setId@SmfLyrics@@QAEXABVQString@@@Z @ 328 NONAME ; void SmfLyrics::setId(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfComment@@@Z @ 329 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfComment &)
+	?setPostedDate@SmfPictureAlbum@@QAEXABVQDateTime@@@Z @ 330 NONAME ; void SmfPictureAlbum::setPostedDate(class QDateTime const &)
+	??1SmfPicture@@QAE@XZ @ 331 NONAME ; SmfPicture::~SmfPicture(void)
+	??0SmfArtists@@QAE@XZ @ 332 NONAME ; SmfArtists::SmfArtists(void)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactName@QtMobility@@@Z @ 333 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactName const &)
+	?setAlbum@SmfTrackInfo@@QAEXABVSmfAlbum@@@Z @ 334 NONAME ; void SmfTrackInfo::setAlbum(class SmfAlbum const &)
+	?setId@SmfPicture@@QAEXABVQString@@@Z @ 335 NONAME ; void SmfPicture::setId(class QString const &)
+	?pictureCount@SmfPictureAlbum@@QBEHXZ @ 336 NONAME ; int SmfPictureAlbum::pictureCount(void) const
+	?artists@SmfEvent@@QBE?AVSmfArtists@@XZ @ 337 NONAME ; class SmfArtists SmfEvent::artists(void) const
+	?objData@SmfActivityObject@@QBE?AVQVariant@@XZ @ 338 NONAME ; class QVariant SmfActivityObject::objData(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfArtists@@@Z @ 339 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfArtists &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactUrl@QtMobility@@@Z @ 340 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactUrl const &)
+	?addComment@SmfPicture@@QAEXABVSmfComment@@@Z @ 341 NONAME ; void SmfPicture::addComment(class SmfComment const &)
+	?setSupportedInterfaces@SmfProvider@@QAEXAAVQStringList@@@Z @ 342 NONAME ; void SmfProvider::setSupportedInterfaces(class QStringList &)
+	?setHhreflang@SmfUrl@@QAEXABVQString@@@Z @ 343 NONAME ; void SmfUrl::setHhreflang(class QString const &)
+	??0SmfUrl@@QAE@XZ @ 344 NONAME ; SmfUrl::SmfUrl(void)
+	??0SmfPicture@@QAE@ABVQImage@@@Z @ 345 NONAME ; SmfPicture::SmfPicture(class QImage const &)
+	??0SmfMusicFingerPrint@@QAE@XZ @ 346 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(void)
+	?setId@SmfPlaylist@@QAEXABVQString@@@Z @ 347 NONAME ; void SmfPlaylist::setId(class QString const &)
+	?setSupportedLanguages@SmfProvider@@QAEXAAVQStringList@@@Z @ 348 NONAME ; void SmfProvider::setSupportedLanguages(class QStringList &)
+	?setId@SmfSubtitle@@QAEXABVQString@@@Z @ 349 NONAME ; void SmfSubtitle::setId(class QString const &)
+	??0SmfSubtitle@@QAE@XZ @ 350 NONAME ; SmfSubtitle::SmfSubtitle(void)
+	?addTags@SmfPicture@@QAEXABVQStringList@@@Z @ 351 NONAME ; void SmfPicture::addTags(class QStringList const &)
+	??0SmfTrackInfo@@QAE@XZ @ 352 NONAME ; SmfTrackInfo::SmfTrackInfo(void)
+	??0SmfPost@@QAE@VSmfContact@@VQString@@1VQImage@@VQUrl@@@Z @ 353 NONAME ; SmfPost::SmfPost(class SmfContact, class QString, class QString, class QImage, class QUrl)
+	?setHref@SmfUrl@@QAEXABVQUrl@@@Z @ 354 NONAME ; void SmfUrl::setHref(class QUrl const &)
+	?url@SmfArtists@@QBE?AVQUrl@@XZ @ 355 NONAME ; class QUrl SmfArtists::url(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactAddress@QtMobility@@@Z @ 356 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAddress &)
+	?setPictureCount@SmfPictureAlbum@@QAEXH@Z @ 357 NONAME ; void SmfPictureAlbum::setPictureCount(int)
+	?setPicture@SmfPicture@@QAEXABVQImage@@@Z @ 358 NONAME ; void SmfPicture::setPicture(class QImage const &)
+	?setNames@SmfArtists@@QAEXABVQStringList@@@Z @ 359 NONAME ; void SmfArtists::setNames(class QStringList const &)
+	?setId@SmfActivityObject@@QAEXABVQString@@@Z @ 360 NONAME ; void SmfActivityObject::setId(class QString const &)
+	??1SmfPlaylist@@QAE@XZ @ 361 NONAME ; SmfPlaylist::~SmfPlaylist(void)
+	?setApplicationUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 362 NONAME ; void SmfProvider::setApplicationUrl(class QUrl &)
+	?id@SmfTrackInfo@@QBE?AVQString@@XZ @ 363 NONAME ; class QString SmfTrackInfo::id(void) const
+	?minRating@SmfMusicRating@@QBEHXZ @ 364 NONAME ; int SmfMusicRating::minRating(void) const
+	?name@SmfLocation@@QBE?AVQString@@XZ @ 365 NONAME ; class QString SmfLocation::name(void) const
+	??0SmfPluginUtil@@QAE@XZ @ 366 NONAME ; SmfPluginUtil::SmfPluginUtil(void)
+	?title@SmfPictureAlbum@@QBE?AVQString@@XZ @ 367 NONAME ; class QString SmfPictureAlbum::title(void) const
+	?setAuthor@SmfActivityEntry@@QAE_NABVSmfContact@@@Z @ 368 NONAME ; bool SmfActivityEntry::setAuthor(class SmfContact const &)
+	?addComment@SmfPictureAlbum@@QAEXABVSmfComment@@@Z @ 369 NONAME ; void SmfPictureAlbum::addComment(class SmfComment const &)
+	??0SmfProvider@@QAE@XZ @ 370 NONAME ; SmfProvider::SmfProvider(void)
+	?timeStamp@SmfComment@@QBE?AVQDateTime@@XZ @ 371 NONAME ; class QDateTime SmfComment::timeStamp(void) const
+	?name@SmfAlbum@@QBE?AVQString@@XZ @ 372 NONAME ; class QString SmfAlbum::name(void) const
+	??0SmfArtists@@QAE@ABV0@@Z @ 373 NONAME ; SmfArtists::SmfArtists(class SmfArtists const &)
+	?setId@SmfComment@@QAEXABVQString@@@Z @ 374 NONAME ; void SmfComment::setId(class QString const &)
+	?image@SmfPlaylist@@QBE?AVQUrl@@XZ @ 375 NONAME ; class QUrl SmfPlaylist::image(void) const
+	?getAuthKeys@SmfPluginUtil@@QAEXAAV?$QMap@VQByteArray@@V1@@@VQString@@ABVQDateTime@@1@Z @ 376 NONAME ; void SmfPluginUtil::getAuthKeys(class QMap<class QByteArray, class QByteArray> &, class QString, class QDateTime const &, class QString)
+	?setCountry@SmfLocation@@QAEXABVQString@@@Z @ 377 NONAME ; void SmfLocation::setCountry(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfLocation@@@Z @ 378 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLocation &)
+	??0SmfContact@@QAE@ABV0@@Z @ 379 NONAME ; SmfContact::SmfContact(class SmfContact const &)
+	?artists@SmfAlbum@@QBE?AVSmfArtists@@XZ @ 380 NONAME ; class SmfArtists SmfAlbum::artists(void) const
+	??4SmfMusicProfile@@QAEAAV0@ABV0@@Z @ 381 NONAME ; class SmfMusicProfile & SmfMusicProfile::operator=(class SmfMusicProfile const &)
+	?setId@SmfMusicProfile@@QAEXABVQString@@@Z @ 382 NONAME ; void SmfMusicProfile::setId(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactId@QtMobility@@@Z @ 383 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactId const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactNote@QtMobility@@@Z @ 384 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNote const &)
+	?setUrl@SmfPictureAlbum@@QAEXABVQUrl@@@Z @ 385 NONAME ; void SmfPictureAlbum::setUrl(class QUrl const &)
+	??1SmfActivityObject@@QAE@XZ @ 386 NONAME ; SmfActivityObject::~SmfActivityObject(void)
+	?rel@SmfUrl@@QBE?AVQString@@XZ @ 387 NONAME ; class QString SmfUrl::rel(void) const
+	?errorString@SmfPluginUtil@@QBE?AVQString@@XZ @ 388 NONAME ; class QString SmfPluginUtil::errorString(void) const
+	?setTitle@SmfUrl@@QAEXABVQString@@@Z @ 389 NONAME ; void SmfUrl::setTitle(class QString const &)
+	?setSecondaryId@SmfAlbum@@QAEXABVQString@@@Z @ 390 NONAME ; void SmfAlbum::setSecondaryId(class QString const &)
+	?keywords@SmfPictureAlbum@@QBE?AVQStringList@@XZ @ 391 NONAME ; class QStringList SmfPictureAlbum::keywords(void) const
+	?supportedLanguages@SmfProvider@@QBE?AVQStringList@@XZ @ 392 NONAME ; class QStringList SmfProvider::supportedLanguages(void) const
+	?description@SmfProvider@@QBE?AVQString@@XZ @ 393 NONAME ; class QString SmfProvider::description(void) const
+	?setRating@SmfTrackInfo@@QAEXABVSmfMusicRating@@@Z @ 394 NONAME ; void SmfTrackInfo::setRating(class SmfMusicRating const &)
+	??0SmfPlaylist@@QAE@XZ @ 395 NONAME ; SmfPlaylist::SmfPlaylist(void)
+	?owner@SmfPicture@@QBE?AVQString@@XZ @ 396 NONAME ; class QString SmfPicture::owner(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityObject@@@Z @ 397 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityObject const &)
+	?type@SmfActivityObject@@QBE?AW4SmfActivityObjectType@@XZ @ 398 NONAME ; enum SmfActivityObjectType SmfActivityObject::type(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfUrl@@@Z @ 399 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfUrl const &)
+	?id@SmfLocation@@QBE?AVQString@@XZ @ 400 NONAME ; class QString SmfLocation::id(void) const
+	?setThumbnail@SmfPictureAlbum@@QAEXABVQImage@@@Z @ 401 NONAME ; void SmfPictureAlbum::setThumbnail(class QImage const &)
+	?setActionName@SmfActivityEntry@@QAEXW4SmfActivityVerb@@@Z @ 402 NONAME ; void SmfActivityEntry::setActionName(enum SmfActivityVerb)
+	?setReleaseYear@SmfLyrics@@QAEXABVQDateTime@@@Z @ 403 NONAME ; void SmfLyrics::setReleaseYear(class QDateTime const &)
+	?setItemsCount@SmfAlbum@@QAEXH@Z @ 404 NONAME ; void SmfAlbum::setItemsCount(int)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfLocation@@@Z @ 405 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLocation const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPicture@@@Z @ 406 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPicture &)
+	?setTrackList@SmfPlaylist@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 407 NONAME ; void SmfPlaylist::setTrackList(class QList<class SmfTrackInfo> const &)
+	??0SmfEvent@@QAE@XZ @ 408 NONAME ; SmfEvent::SmfEvent(void)
+	?setTitle@SmfEvent@@QAEXABVQString@@@Z @ 409 NONAME ; void SmfEvent::setTitle(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactGender@QtMobility@@@Z @ 410 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGender const &)
+	??4SmfActivityObject@@QAEAAV0@ABV0@@Z @ 411 NONAME ; class SmfActivityObject & SmfActivityObject::operator=(class SmfActivityObject const &)
+	?location@SmfAlbum@@QBE?AVSmfLocation@@XZ @ 412 NONAME ; class SmfLocation SmfAlbum::location(void) const
+	?setMembers@SmfGroup@@QAEXPAV?$QList@VSmfContact@@@@@Z @ 413 NONAME ; void SmfGroup::setMembers(class QList<class SmfContact> *)
+	??0SmfMusicRating@@QAE@PAVSmfTrackInfo@@@Z @ 414 NONAME ; SmfMusicRating::SmfMusicRating(class SmfTrackInfo *)
+	??0SmfLyrics@@QAE@XZ @ 415 NONAME ; SmfLyrics::SmfLyrics(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactGender@QtMobility@@@Z @ 416 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGender &)
+	??0SmfComment@@QAE@XZ @ 417 NONAME ; SmfComment::SmfComment(void)
+	??1SmfAlbum@@QAE@XZ @ 418 NONAME ; SmfAlbum::~SmfAlbum(void)
+	?year@SmfTrackInfo@@QBE?AVQDateTime@@XZ @ 419 NONAME ; class QDateTime SmfTrackInfo::year(void) const
+	?country@SmfLocation@@QBE?AVQString@@XZ @ 420 NONAME ; class QString SmfLocation::country(void) const
+	?postedDate@SmfPictureAlbum@@QBE?AVQDateTime@@XZ @ 421 NONAME ; class QDateTime SmfPictureAlbum::postedDate(void) const
+	??0SmfContact@@QAE@PAVQObject@@@Z @ 422 NONAME ; SmfContact::SmfContact(class QObject *)
+	??1SmfTrackInfo@@QAE@XZ @ 423 NONAME ; SmfTrackInfo::~SmfTrackInfo(void)
+	?language@SmfLyrics@@QBE?AVQString@@XZ @ 424 NONAME ; class QString SmfLyrics::language(void) const
+	?setArtists@SmfTrackInfo@@QAEXABVSmfArtists@@@Z @ 425 NONAME ; void SmfTrackInfo::setArtists(class SmfArtists const &)
+	?id@SmfComment@@QBE?AVQString@@XZ @ 426 NONAME ; class QString SmfComment::id(void) const
+	?id@SmfPictureAlbum@@QBE?AVQString@@XZ @ 427 NONAME ; class QString SmfPictureAlbum::id(void) const
+	?authenticationAppName@SmfProvider@@QBE?AVQString@@XZ @ 428 NONAME ; class QString SmfProvider::authenticationAppName(void) const
+	?setDuration@SmfEvent@@QAEXABVQTime@@@Z @ 429 NONAME ; void SmfEvent::setDuration(class QTime const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactGuid@QtMobility@@@Z @ 430 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGuid const &)
+	?setUrl@SmfLocation@@QAEXABVQUrl@@@Z @ 431 NONAME ; void SmfLocation::setUrl(class QUrl const &)
+	?setComments@SmfPlaylist@@QAEXABV?$QList@VSmfComment@@@@@Z @ 432 NONAME ; void SmfPlaylist::setComments(class QList<class SmfComment> const &)
+	?id@SmfSubtitle@@QBE?AVQString@@XZ @ 433 NONAME ; class QString SmfSubtitle::id(void) const
+	?setImage@SmfPlaylist@@QAEXABVQUrl@@@Z @ 434 NONAME ; void SmfPlaylist::setImage(class QUrl const &)
+	?setDescription@SmfPicture@@QAEXABVQString@@@Z @ 435 NONAME ; void SmfPicture::setDescription(class QString const &)
+	??4SmfLocation@@QAEAAV0@ABV0@@Z @ 436 NONAME ; class SmfLocation & SmfLocation::operator=(class SmfLocation const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactAnniversary@QtMobility@@@Z @ 437 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAnniversary &)
+	??4SmfLyrics@@QAEAAV0@ABV0@@Z @ 438 NONAME ; class SmfLyrics & SmfLyrics::operator=(class SmfLyrics const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactGeoLocation@QtMobility@@@Z @ 439 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGeoLocation const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicProfile@@@Z @ 440 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicProfile const &)
+	?setMetadata@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 441 NONAME ; void SmfPlaylist::setMetadata(class QMap<class QString, class QVariant> const &)
+	?album@SmfTrackInfo@@QBE?AVSmfAlbum@@XZ @ 442 NONAME ; class SmfAlbum SmfTrackInfo::album(void) const
+	?url@SmfPost@@QBE?AVQUrl@@XZ @ 443 NONAME ; class QUrl SmfPost::url(void) const
+	?content@SmfActivityObject@@QBE?AVQString@@XZ @ 444 NONAME ; class QString SmfActivityObject::content(void) const
+	?setThumbnail@SmfActivityObject@@QAEXABVQImage@@@Z @ 445 NONAME ; void SmfActivityObject::setThumbnail(class QImage const &)
+	??1SmfGroup@@QAE@XZ @ 446 NONAME ; SmfGroup::~SmfGroup(void)
+	?zipCode@SmfLocation@@QBE?AVQString@@XZ @ 447 NONAME ; class QString SmfLocation::zipCode(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPost@@@Z @ 448 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPost &)
+	?tags@SmfArtists@@QBE?AVQStringList@@XZ @ 449 NONAME ; class QStringList SmfArtists::tags(void) const
+	?setPostedDateTime@SmfPost@@QAEXAAVQDateTime@@@Z @ 450 NONAME ; void SmfPost::setPostedDateTime(class QDateTime &)
+	?setAttribution@SmfPlaylist@@QAEXABV?$QList@VQUrl@@@@@Z @ 451 NONAME ; void SmfPlaylist::setAttribution(class QList<class QUrl> const &)
+	?setCity@SmfLocation@@QAEXABVQString@@@Z @ 452 NONAME ; void SmfLocation::setCity(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactNickname@QtMobility@@@Z @ 453 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNickname &)
+	?setDuration@SmfSubtitle@@QAEXABN@Z @ 454 NONAME ; void SmfSubtitle::setDuration(double const &)
+	??_ESmfTrackInfo@@QAE@I@Z @ 455 NONAME ; SmfTrackInfo::~SmfTrackInfo(unsigned int)
+	?setTitle@SmfPost@@QAEXABVQString@@@Z @ 456 NONAME ; void SmfPost::setTitle(class QString const &)
 
--- a/smf/smfservermodule/smfcommon/eabi/smfcommonu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfcommon/eabi/smfcommonu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -91,425 +91,429 @@
 	_ZN11SmfProvider14setServiceNameER7QString @ 90 NONAME
 	_ZN11SmfProvider17setApplicationUrlER4QUrl @ 91 NONAME
 	_ZN11SmfProvider21setSupportedLanguagesER11QStringList @ 92 NONAME
-	_ZN11SmfProvider22setSupportedInterfacesER11QStringList @ 93 NONAME
-	_ZN11SmfProviderC1Ev @ 94 NONAME
-	_ZN11SmfProviderC2Ev @ 95 NONAME
-	_ZN11SmfProviderD1Ev @ 96 NONAME
-	_ZN11SmfProviderD2Ev @ 97 NONAME
-	_ZN11SmfSubtitle11setDurationERKd @ 98 NONAME
-	_ZN11SmfSubtitle11setLanguageERK7QString @ 99 NONAME
-	_ZN11SmfSubtitle11setSubtitleERK10QByteArray @ 100 NONAME
-	_ZN11SmfSubtitle12setFrameRateERKd @ 101 NONAME
-	_ZN11SmfSubtitle14setReleaseYearERK9QDateTime @ 102 NONAME
-	_ZN11SmfSubtitle14setSubtitleUrlERK4QUrl @ 103 NONAME
-	_ZN11SmfSubtitle5setIdERK7QString @ 104 NONAME
-	_ZN11SmfSubtitleC1ERKS_ @ 105 NONAME
-	_ZN11SmfSubtitleC1Ev @ 106 NONAME
-	_ZN11SmfSubtitleC2ERKS_ @ 107 NONAME
-	_ZN11SmfSubtitleC2Ev @ 108 NONAME
-	_ZN11SmfSubtitleD1Ev @ 109 NONAME
-	_ZN11SmfSubtitleD2Ev @ 110 NONAME
-	_ZN11SmfSubtitleaSERKS_ @ 111 NONAME
-	_ZN12SmfTrackInfo10setArtistsERK10SmfArtists @ 112 NONAME
-	_ZN12SmfTrackInfo10setCommentERK5QListI10SmfCommentE @ 113 NONAME
-	_ZN12SmfTrackInfo11setDurationERK5QTime @ 114 NONAME
-	_ZN12SmfTrackInfo5setIdERK7QString @ 115 NONAME
-	_ZN12SmfTrackInfo7setTagsERK11QStringList @ 116 NONAME
-	_ZN12SmfTrackInfo7setYearERK9QDateTime @ 117 NONAME
-	_ZN12SmfTrackInfo8setAlbumERK8SmfAlbum @ 118 NONAME
-	_ZN12SmfTrackInfo8setGenreERK7QString @ 119 NONAME
-	_ZN12SmfTrackInfo8setTitleERK7QString @ 120 NONAME
-	_ZN12SmfTrackInfo9setRatingERK14SmfMusicRating @ 121 NONAME
-	_ZN12SmfTrackInfoC1ERKS_ @ 122 NONAME
-	_ZN12SmfTrackInfoC1Ev @ 123 NONAME
-	_ZN12SmfTrackInfoC2ERKS_ @ 124 NONAME
-	_ZN12SmfTrackInfoC2Ev @ 125 NONAME
-	_ZN12SmfTrackInfoD1Ev @ 126 NONAME
-	_ZN12SmfTrackInfoD2Ev @ 127 NONAME
-	_ZN12SmfTrackInfoaSERKS_ @ 128 NONAME
-	_ZN13SmfPluginUtil11getAuthKeysER4QMapI10QByteArrayS1_E7QStringRK9QDateTimeS4_ @ 129 NONAME
-	_ZN13SmfPluginUtil21createParameterStringERK7QStringN21QNetworkAccessManager9OperationERK10QByteArrayS7_18SmfSignatureMethodRK9QMultiMapIS5_S5_E14SmfParsingMode @ 130 NONAME
-	_ZN13SmfPluginUtil5parseEP9QIODevicePb @ 131 NONAME
-	_ZN13SmfPluginUtil5parseERK10QByteArrayPb @ 132 NONAME
-	_ZN13SmfPluginUtil8getNonceER7QStringx @ 133 NONAME
-	_ZN13SmfPluginUtilC1Ev @ 134 NONAME
-	_ZN13SmfPluginUtilC2Ev @ 135 NONAME
-	_ZN13SmfPluginUtilD1Ev @ 136 NONAME
-	_ZN13SmfPluginUtilD2Ev @ 137 NONAME
-	_ZN14SmfMusicRating12setMaxRatingERKi @ 138 NONAME
-	_ZN14SmfMusicRating12setMinRatingERKi @ 139 NONAME
-	_ZN14SmfMusicRating9setRatingERKi @ 140 NONAME
-	_ZN14SmfMusicRatingC1EP12SmfTrackInfo @ 141 NONAME
-	_ZN14SmfMusicRatingC1ERKS_ @ 142 NONAME
-	_ZN14SmfMusicRatingC2EP12SmfTrackInfo @ 143 NONAME
-	_ZN14SmfMusicRatingC2ERKS_ @ 144 NONAME
-	_ZN14SmfMusicRatingD1Ev @ 145 NONAME
-	_ZN14SmfMusicRatingD2Ev @ 146 NONAME
-	_ZN14SmfMusicRatingaSERKS_ @ 147 NONAME
-	_ZN15SmfMusicProfile12setFavoritesERK5QListI12SmfTrackInfoE @ 148 NONAME
-	_ZN15SmfMusicProfile13setUserEventsERK5QListI8SmfEventE @ 149 NONAME
-	_ZN15SmfMusicProfile15setRecentTracksERK5QListI12SmfTrackInfoE @ 150 NONAME
-	_ZN15SmfMusicProfile5setIdERK7QString @ 151 NONAME
-	_ZN15SmfMusicProfileC1ERKS_ @ 152 NONAME
-	_ZN15SmfMusicProfileC1Ev @ 153 NONAME
-	_ZN15SmfMusicProfileC2ERKS_ @ 154 NONAME
-	_ZN15SmfMusicProfileC2Ev @ 155 NONAME
-	_ZN15SmfMusicProfileD1Ev @ 156 NONAME
-	_ZN15SmfMusicProfileD2Ev @ 157 NONAME
-	_ZN15SmfMusicProfileaSERKS_ @ 158 NONAME
-	_ZN15SmfPictureAlbum10addCommentERK10SmfComment @ 159 NONAME
-	_ZN15SmfPictureAlbum11addKeywordsERK11QStringList @ 160 NONAME
-	_ZN15SmfPictureAlbum12setThumbnailERK6QImage @ 161 NONAME
-	_ZN15SmfPictureAlbum13setPostedDateERK9QDateTime @ 162 NONAME
-	_ZN15SmfPictureAlbum13setVisibilityERK20SmfPictureVisibility @ 163 NONAME
-	_ZN15SmfPictureAlbum14setDescriptionERK7QString @ 164 NONAME
-	_ZN15SmfPictureAlbum15setPictureCountEi @ 165 NONAME
-	_ZN15SmfPictureAlbum5setIdERK7QString @ 166 NONAME
-	_ZN15SmfPictureAlbum6setUrlERK4QUrl @ 167 NONAME
-	_ZN15SmfPictureAlbum8setTitleERK7QString @ 168 NONAME
-	_ZN15SmfPictureAlbumC1ERKS_ @ 169 NONAME
-	_ZN15SmfPictureAlbumC1Ev @ 170 NONAME
-	_ZN15SmfPictureAlbumC2ERKS_ @ 171 NONAME
-	_ZN15SmfPictureAlbumC2Ev @ 172 NONAME
-	_ZN15SmfPictureAlbumD1Ev @ 173 NONAME
-	_ZN15SmfPictureAlbumD2Ev @ 174 NONAME
-	_ZN15SmfPictureAlbumaSERKS_ @ 175 NONAME
-	_ZN16SmfActivityEntry10setDetailsERK7SmfPost @ 176 NONAME
-	_ZN16SmfActivityEntry12setTargetObjERK17SmfActivityObject @ 177 NONAME
-	_ZN16SmfActivityEntry13setActionNameE15SmfActivityVerb @ 178 NONAME
-	_ZN16SmfActivityEntry13setActivitiesER5QListI17SmfActivityObjectE @ 179 NONAME
-	_ZN16SmfActivityEntry5setIdERK7QString @ 180 NONAME
-	_ZN16SmfActivityEntry8setTitleERK7SmfPost @ 181 NONAME
-	_ZN16SmfActivityEntry9setAuthorERK10SmfContact @ 182 NONAME
-	_ZN16SmfActivityEntryC1ERKS_ @ 183 NONAME
-	_ZN16SmfActivityEntryC1Ev @ 184 NONAME
-	_ZN16SmfActivityEntryC2ERKS_ @ 185 NONAME
-	_ZN16SmfActivityEntryC2Ev @ 186 NONAME
-	_ZN16SmfActivityEntryD1Ev @ 187 NONAME
-	_ZN16SmfActivityEntryD2Ev @ 188 NONAME
-	_ZN17SmfActivityObject10setCaptionERK7QString @ 189 NONAME
-	_ZN17SmfActivityObject10setContentERK7QString @ 190 NONAME
-	_ZN17SmfActivityObject10setObjDataERK8QVariant @ 191 NONAME
-	_ZN17SmfActivityObject12setThumbnailERK6QImage @ 192 NONAME
-	_ZN17SmfActivityObject5setIdERK7QString @ 193 NONAME
-	_ZN17SmfActivityObject7setLinkERK7QString @ 194 NONAME
-	_ZN17SmfActivityObject7setTimeERK9QDateTime @ 195 NONAME
-	_ZN17SmfActivityObject7setTypeERK21SmfActivityObjectType @ 196 NONAME
-	_ZN17SmfActivityObjectC1ERKS_ @ 197 NONAME
-	_ZN17SmfActivityObjectC1Ev @ 198 NONAME
-	_ZN17SmfActivityObjectC2ERKS_ @ 199 NONAME
-	_ZN17SmfActivityObjectC2Ev @ 200 NONAME
-	_ZN17SmfActivityObjectD1Ev @ 201 NONAME
-	_ZN17SmfActivityObjectD2Ev @ 202 NONAME
-	_ZN17SmfActivityObjectaSERKS_ @ 203 NONAME
-	_ZN19SmfMusicFingerPrint19setMusicFingerPrintERK10QByteArray @ 204 NONAME
-	_ZN19SmfMusicFingerPrint5setIdERK7QString @ 205 NONAME
-	_ZN19SmfMusicFingerPrintC1ERKS_ @ 206 NONAME
-	_ZN19SmfMusicFingerPrintC1Ev @ 207 NONAME
-	_ZN19SmfMusicFingerPrintC2ERKS_ @ 208 NONAME
-	_ZN19SmfMusicFingerPrintC2Ev @ 209 NONAME
-	_ZN19SmfMusicFingerPrintD1Ev @ 210 NONAME
-	_ZN19SmfMusicFingerPrintD2Ev @ 211 NONAME
-	_ZN19SmfMusicFingerPrintaSERKS_ @ 212 NONAME
-	_ZN6SmfUrl12setHhreflangERK7QString @ 213 NONAME
-	_ZN6SmfUrl5setIdERK7QString @ 214 NONAME
-	_ZN6SmfUrl6setRelERK7QString @ 215 NONAME
-	_ZN6SmfUrl7setHrefERK4QUrl @ 216 NONAME
-	_ZN6SmfUrl7setTypeERK7QString @ 217 NONAME
-	_ZN6SmfUrl8setTitleERK7QString @ 218 NONAME
-	_ZN6SmfUrl9setLengthERK7QString @ 219 NONAME
-	_ZN6SmfUrlC1ERKS_ @ 220 NONAME
-	_ZN6SmfUrlC1Ev @ 221 NONAME
-	_ZN6SmfUrlC2ERKS_ @ 222 NONAME
-	_ZN6SmfUrlC2Ev @ 223 NONAME
-	_ZN6SmfUrlD1Ev @ 224 NONAME
-	_ZN6SmfUrlD2Ev @ 225 NONAME
-	_ZN6SmfUrlaSERKS_ @ 226 NONAME
-	_ZN7SmfPost14setDescriptionERK7QString @ 227 NONAME
-	_ZN7SmfPost17setPostedDateTimeER9QDateTime @ 228 NONAME
-	_ZN7SmfPost5setIdE7QString @ 229 NONAME
-	_ZN7SmfPost6setUrlER4QUrl @ 230 NONAME
-	_ZN7SmfPost8setImageERK6QImage @ 231 NONAME
-	_ZN7SmfPost8setOwnerERK10SmfContact @ 232 NONAME
-	_ZN7SmfPost8setTitleERK7QString @ 233 NONAME
-	_ZN7SmfPostC1E10SmfContact7QStringS1_6QImage4QUrl @ 234 NONAME
-	_ZN7SmfPostC1ERKS_ @ 235 NONAME
-	_ZN7SmfPostC1Ev @ 236 NONAME
-	_ZN7SmfPostC2E10SmfContact7QStringS1_6QImage4QUrl @ 237 NONAME
-	_ZN7SmfPostC2ERKS_ @ 238 NONAME
-	_ZN7SmfPostC2Ev @ 239 NONAME
-	_ZN7SmfPostD1Ev @ 240 NONAME
-	_ZN7SmfPostD2Ev @ 241 NONAME
-	_ZN7SmfPostaSERKS_ @ 242 NONAME
-	_ZN8SmfAlbum10setArtistsERK10SmfArtists @ 243 NONAME
-	_ZN8SmfAlbum11setImageUrlERK4QUrl @ 244 NONAME
-	_ZN8SmfAlbum11setLocationERK11SmfLocation @ 245 NONAME
-	_ZN8SmfAlbum13setItemsCountEi @ 246 NONAME
-	_ZN8SmfAlbum14setSecondaryIdERK7QString @ 247 NONAME
-	_ZN8SmfAlbum5setIdERK7QString @ 248 NONAME
-	_ZN8SmfAlbum7setNameERK7QString @ 249 NONAME
-	_ZN8SmfAlbum7setTypeE17SmfAlbumMediaType @ 250 NONAME
-	_ZN8SmfAlbumC1ERKS_ @ 251 NONAME
-	_ZN8SmfAlbumC1Ev @ 252 NONAME
-	_ZN8SmfAlbumC2ERKS_ @ 253 NONAME
-	_ZN8SmfAlbumC2Ev @ 254 NONAME
-	_ZN8SmfAlbumD1Ev @ 255 NONAME
-	_ZN8SmfAlbumD2Ev @ 256 NONAME
-	_ZN8SmfAlbumaSERKS_ @ 257 NONAME
-	_ZN8SmfEvent10setArtistsERK10SmfArtists @ 258 NONAME
-	_ZN8SmfEvent11setDurationERK5QTime @ 259 NONAME
-	_ZN8SmfEvent12setTicketUrlERK4QUrl @ 260 NONAME
-	_ZN8SmfEvent16setEventDateTimeERK9QDateTime @ 261 NONAME
-	_ZN8SmfEvent5setIdERK7QString @ 262 NONAME
-	_ZN8SmfEvent8setTitleERK7QString @ 263 NONAME
-	_ZN8SmfEvent8setVenueERK11SmfLocation @ 264 NONAME
-	_ZN8SmfEventC1ERKS_ @ 265 NONAME
-	_ZN8SmfEventC1Ev @ 266 NONAME
-	_ZN8SmfEventC2ERKS_ @ 267 NONAME
-	_ZN8SmfEventC2Ev @ 268 NONAME
-	_ZN8SmfEventD1Ev @ 269 NONAME
-	_ZN8SmfEventD2Ev @ 270 NONAME
-	_ZN8SmfEventaSERKS_ @ 271 NONAME
-	_ZN8SmfGroup10setMembersEP5QListI10SmfContactE @ 272 NONAME
-	_ZN8SmfGroup5setIdER7QString @ 273 NONAME
-	_ZN8SmfGroup7setNameER7QString @ 274 NONAME
-	_ZN8SmfGroupC1EP5QListI10SmfContactE @ 275 NONAME
-	_ZN8SmfGroupC1ERKS_ @ 276 NONAME
-	_ZN8SmfGroupC2EP5QListI10SmfContactE @ 277 NONAME
-	_ZN8SmfGroupC2ERKS_ @ 278 NONAME
-	_ZN8SmfGroupD1Ev @ 279 NONAME
-	_ZN8SmfGroupD2Ev @ 280 NONAME
-	_ZN8SmfGroupaSERKS_ @ 281 NONAME
-	_ZN9SmfLyrics11setLanguageERK7QString @ 282 NONAME
-	_ZN9SmfLyrics14setReleaseYearERK9QDateTime @ 283 NONAME
-	_ZN9SmfLyrics5setIdERK7QString @ 284 NONAME
-	_ZN9SmfLyrics9setLyricsERK10QByteArray @ 285 NONAME
-	_ZN9SmfLyricsC1ERKS_ @ 286 NONAME
-	_ZN9SmfLyricsC1Ev @ 287 NONAME
-	_ZN9SmfLyricsC2ERKS_ @ 288 NONAME
-	_ZN9SmfLyricsC2Ev @ 289 NONAME
-	_ZN9SmfLyricsD1Ev @ 290 NONAME
-	_ZN9SmfLyricsD2Ev @ 291 NONAME
-	_ZN9SmfLyricsaSERKS_ @ 292 NONAME
-	_ZNK10SmfArtists2idEv @ 293 NONAME
-	_ZNK10SmfArtists3urlEv @ 294 NONAME
-	_ZNK10SmfArtists4tagsEv @ 295 NONAME
-	_ZNK10SmfArtists5imageEv @ 296 NONAME
-	_ZNK10SmfArtists5namesEv @ 297 NONAME
-	_ZNK10SmfComment2idEv @ 298 NONAME
-	_ZNK10SmfComment4textEv @ 299 NONAME
-	_ZNK10SmfComment9timeStampEv @ 300 NONAME
-	_ZNK10SmfContact5valueERK7QString @ 301 NONAME
-	_ZNK10SmfContact7convertERN10QtMobility8QContactE @ 302 NONAME
-	_ZNK10SmfContact8subTypesEv @ 303 NONAME
-	_ZNK10SmfPicture10postedDateEv @ 304 NONAME
-	_ZNK10SmfPicture10visibilityEv @ 305 NONAME
-	_ZNK10SmfPicture11descriptionEv @ 306 NONAME
-	_ZNK10SmfPicture2idEv @ 307 NONAME
-	_ZNK10SmfPicture3urlEv @ 308 NONAME
-	_ZNK10SmfPicture4tagsEv @ 309 NONAME
-	_ZNK10SmfPicture5ownerEv @ 310 NONAME
-	_ZNK10SmfPicture5titleEv @ 311 NONAME
-	_ZNK10SmfPicture7pictureEv @ 312 NONAME
-	_ZNK10SmfPicture8commentsEv @ 313 NONAME
-	_ZNK11SmfLocation15geoPositionInfoEv @ 314 NONAME
-	_ZNK11SmfLocation2idEv @ 315 NONAME
-	_ZNK11SmfLocation3urlEv @ 316 NONAME
-	_ZNK11SmfLocation4cityEv @ 317 NONAME
-	_ZNK11SmfLocation4nameEv @ 318 NONAME
-	_ZNK11SmfLocation6streetEv @ 319 NONAME
-	_ZNK11SmfLocation7countryEv @ 320 NONAME
-	_ZNK11SmfLocation7zipCodeEv @ 321 NONAME
-	_ZNK11SmfPlaylist11attributionEv @ 322 NONAME
-	_ZNK11SmfPlaylist12creationDateEv @ 323 NONAME
-	_ZNK11SmfPlaylist13playListTitleEv @ 324 NONAME
-	_ZNK11SmfPlaylist2idEv @ 325 NONAME
-	_ZNK11SmfPlaylist4infoEv @ 326 NONAME
-	_ZNK11SmfPlaylist5imageEv @ 327 NONAME
-	_ZNK11SmfPlaylist6authorEv @ 328 NONAME
-	_ZNK11SmfPlaylist7licenseEv @ 329 NONAME
-	_ZNK11SmfPlaylist7versionEv @ 330 NONAME
-	_ZNK11SmfPlaylist8commentsEv @ 331 NONAME
-	_ZNK11SmfPlaylist8locationEv @ 332 NONAME
-	_ZNK11SmfPlaylist8metadataEv @ 333 NONAME
-	_ZNK11SmfPlaylist9extensionEv @ 334 NONAME
-	_ZNK11SmfPlaylist9trackListEv @ 335 NONAME
-	_ZNK11SmfProvider10serviceUrlEv @ 336 NONAME
-	_ZNK11SmfProvider11descriptionEv @ 337 NONAME
-	_ZNK11SmfProvider11serviceIconEv @ 338 NONAME
-	_ZNK11SmfProvider11serviceNameEv @ 339 NONAME
-	_ZNK11SmfProvider14applicationUrlEv @ 340 NONAME
-	_ZNK11SmfProvider18supportedLanguagesEv @ 341 NONAME
-	_ZNK11SmfProvider19supportedInterfacesEv @ 342 NONAME
-	_ZNK11SmfSubtitle11releaseYearEv @ 343 NONAME
-	_ZNK11SmfSubtitle11subtitleUrlEv @ 344 NONAME
-	_ZNK11SmfSubtitle2idEv @ 345 NONAME
-	_ZNK11SmfSubtitle8durationEv @ 346 NONAME
-	_ZNK11SmfSubtitle8languageEv @ 347 NONAME
-	_ZNK11SmfSubtitle8subtitleEv @ 348 NONAME
-	_ZNK11SmfSubtitle9frameRateEv @ 349 NONAME
-	_ZNK12SmfTrackInfo2idEv @ 350 NONAME
-	_ZNK12SmfTrackInfo4tagsEv @ 351 NONAME
-	_ZNK12SmfTrackInfo4yearEv @ 352 NONAME
-	_ZNK12SmfTrackInfo5albumEv @ 353 NONAME
-	_ZNK12SmfTrackInfo5genreEv @ 354 NONAME
-	_ZNK12SmfTrackInfo5titleEv @ 355 NONAME
-	_ZNK12SmfTrackInfo6ratingEv @ 356 NONAME
-	_ZNK12SmfTrackInfo7artistsEv @ 357 NONAME
-	_ZNK12SmfTrackInfo8commentsEv @ 358 NONAME
-	_ZNK12SmfTrackInfo8durationEv @ 359 NONAME
-	_ZNK13SmfPluginUtil11errorStringEv @ 360 NONAME
-	_ZNK13SmfPluginUtil9errorLineEv @ 361 NONAME
-	_ZNK14SmfMusicRating6ratingEv @ 362 NONAME
-	_ZNK14SmfMusicRating9maxRatingEv @ 363 NONAME
-	_ZNK14SmfMusicRating9minRatingEv @ 364 NONAME
-	_ZNK15SmfMusicProfile10userEventsEv @ 365 NONAME
-	_ZNK15SmfMusicProfile12recentTracksEv @ 366 NONAME
-	_ZNK15SmfMusicProfile2idEv @ 367 NONAME
-	_ZNK15SmfMusicProfile9favoritesEv @ 368 NONAME
-	_ZNK15SmfPictureAlbum10postedDateEv @ 369 NONAME
-	_ZNK15SmfPictureAlbum10visibilityEv @ 370 NONAME
-	_ZNK15SmfPictureAlbum11descriptionEv @ 371 NONAME
-	_ZNK15SmfPictureAlbum12pictureCountEv @ 372 NONAME
-	_ZNK15SmfPictureAlbum2idEv @ 373 NONAME
-	_ZNK15SmfPictureAlbum3urlEv @ 374 NONAME
-	_ZNK15SmfPictureAlbum5titleEv @ 375 NONAME
-	_ZNK15SmfPictureAlbum8commentsEv @ 376 NONAME
-	_ZNK15SmfPictureAlbum8keywordsEv @ 377 NONAME
-	_ZNK15SmfPictureAlbum9thumbnailEv @ 378 NONAME
-	_ZNK16SmfActivityEntry10actionNameEv @ 379 NONAME
-	_ZNK16SmfActivityEntry10activitiesEv @ 380 NONAME
-	_ZNK16SmfActivityEntry2idEv @ 381 NONAME
-	_ZNK16SmfActivityEntry5titleEv @ 382 NONAME
-	_ZNK16SmfActivityEntry6authorEv @ 383 NONAME
-	_ZNK16SmfActivityEntry7detailsEv @ 384 NONAME
-	_ZNK16SmfActivityEntry9targetObjEv @ 385 NONAME
-	_ZNK17SmfActivityObject2idEv @ 386 NONAME
-	_ZNK17SmfActivityObject4linkEv @ 387 NONAME
-	_ZNK17SmfActivityObject4timeEv @ 388 NONAME
-	_ZNK17SmfActivityObject4typeEv @ 389 NONAME
-	_ZNK17SmfActivityObject7captionEv @ 390 NONAME
-	_ZNK17SmfActivityObject7contentEv @ 391 NONAME
-	_ZNK17SmfActivityObject7objDataEv @ 392 NONAME
-	_ZNK17SmfActivityObject9thumbnailEv @ 393 NONAME
-	_ZNK19SmfMusicFingerPrint16musicFingerPrintEv @ 394 NONAME
-	_ZNK19SmfMusicFingerPrint2idEv @ 395 NONAME
-	_ZNK6SmfUrl2idEv @ 396 NONAME
-	_ZNK6SmfUrl3relEv @ 397 NONAME
-	_ZNK6SmfUrl4hrefEv @ 398 NONAME
-	_ZNK6SmfUrl4typeEv @ 399 NONAME
-	_ZNK6SmfUrl5titleEv @ 400 NONAME
-	_ZNK6SmfUrl6lengthEv @ 401 NONAME
-	_ZNK6SmfUrl8hreflangEv @ 402 NONAME
-	_ZNK7SmfPost11descriptionEv @ 403 NONAME
-	_ZNK7SmfPost14postedDateTimeEv @ 404 NONAME
-	_ZNK7SmfPost2idEv @ 405 NONAME
-	_ZNK7SmfPost3urlEv @ 406 NONAME
-	_ZNK7SmfPost5imageEv @ 407 NONAME
-	_ZNK7SmfPost5ownerEv @ 408 NONAME
-	_ZNK7SmfPost5titleEv @ 409 NONAME
-	_ZNK8SmfAlbum10itemsCountEv @ 410 NONAME
-	_ZNK8SmfAlbum11secondaryIdEv @ 411 NONAME
-	_ZNK8SmfAlbum2idEv @ 412 NONAME
-	_ZNK8SmfAlbum4nameEv @ 413 NONAME
-	_ZNK8SmfAlbum4typeEv @ 414 NONAME
-	_ZNK8SmfAlbum7artistsEv @ 415 NONAME
-	_ZNK8SmfAlbum8imageUrlEv @ 416 NONAME
-	_ZNK8SmfAlbum8locationEv @ 417 NONAME
-	_ZNK8SmfEvent13eventDateTimeEv @ 418 NONAME
-	_ZNK8SmfEvent2idEv @ 419 NONAME
-	_ZNK8SmfEvent5titleEv @ 420 NONAME
-	_ZNK8SmfEvent5venueEv @ 421 NONAME
-	_ZNK8SmfEvent7artistsEv @ 422 NONAME
-	_ZNK8SmfEvent8durationEv @ 423 NONAME
-	_ZNK8SmfEvent9ticketUrlEv @ 424 NONAME
-	_ZNK8SmfGroup2idEv @ 425 NONAME
-	_ZNK8SmfGroup4nameEv @ 426 NONAME
-	_ZNK8SmfGroup7membersEv @ 427 NONAME
-	_ZNK9SmfLyrics11releaseYearEv @ 428 NONAME
-	_ZNK9SmfLyrics2idEv @ 429 NONAME
-	_ZNK9SmfLyrics6lyricsEv @ 430 NONAME
-	_ZNK9SmfLyrics8languageEv @ 431 NONAME
-	_ZlsR11QDataStreamRK10SmfArtists @ 432 NONAME
-	_ZlsR11QDataStreamRK10SmfComment @ 433 NONAME
-	_ZlsR11QDataStreamRK10SmfContact @ 434 NONAME
-	_ZlsR11QDataStreamRK10SmfPicture @ 435 NONAME
-	_ZlsR11QDataStreamRK11SmfLocation @ 436 NONAME
-	_ZlsR11QDataStreamRK11SmfPlaylist @ 437 NONAME
-	_ZlsR11QDataStreamRK11SmfProvider @ 438 NONAME
-	_ZlsR11QDataStreamRK11SmfSubtitle @ 439 NONAME
-	_ZlsR11QDataStreamRK12SmfTrackInfo @ 440 NONAME
-	_ZlsR11QDataStreamRK14SmfMusicRating @ 441 NONAME
-	_ZlsR11QDataStreamRK15SmfMusicProfile @ 442 NONAME
-	_ZlsR11QDataStreamRK15SmfPictureAlbum @ 443 NONAME
-	_ZlsR11QDataStreamRK16SmfActivityEntry @ 444 NONAME
-	_ZlsR11QDataStreamRK17SmfActivityObject @ 445 NONAME
-	_ZlsR11QDataStreamRK19SmfMusicFingerPrint @ 446 NONAME
-	_ZlsR11QDataStreamRK6SmfUrl @ 447 NONAME
-	_ZlsR11QDataStreamRK7SmfPost @ 448 NONAME
-	_ZlsR11QDataStreamRK8SmfAlbum @ 449 NONAME
-	_ZlsR11QDataStreamRK8SmfEvent @ 450 NONAME
-	_ZlsR11QDataStreamRK8SmfGroup @ 451 NONAME
-	_ZlsR11QDataStreamRK9SmfLyrics @ 452 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility10QContactIdE @ 453 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility11QContactUrlE @ 454 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility12QContactGuidE @ 455 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility12QContactNameE @ 456 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility12QContactNoteE @ 457 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility12QContactTypeE @ 458 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility14QContactAvatarE @ 459 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility14QContactGenderE @ 460 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility15QContactAddressE @ 461 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility16QContactBirthdayE @ 462 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility16QContactNicknameE @ 463 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility16QContactPresenceE @ 464 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility17QContactThumbnailE @ 465 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility17QContactTimestampE @ 466 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility19QContactAnniversaryE @ 467 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility19QContactGeoLocationE @ 468 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility19QContactPhoneNumberE @ 469 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility20QContactEmailAddressE @ 470 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility20QContactOrganizationE @ 471 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility21QContactOnlineAccountE @ 472 NONAME
-	_ZrsR11QDataStreamR10SmfArtists @ 473 NONAME
-	_ZrsR11QDataStreamR10SmfComment @ 474 NONAME
-	_ZrsR11QDataStreamR10SmfContact @ 475 NONAME
-	_ZrsR11QDataStreamR10SmfPicture @ 476 NONAME
-	_ZrsR11QDataStreamR11SmfLocation @ 477 NONAME
-	_ZrsR11QDataStreamR11SmfPlaylist @ 478 NONAME
-	_ZrsR11QDataStreamR11SmfProvider @ 479 NONAME
-	_ZrsR11QDataStreamR11SmfSubtitle @ 480 NONAME
-	_ZrsR11QDataStreamR12SmfTrackInfo @ 481 NONAME
-	_ZrsR11QDataStreamR14SmfMusicRating @ 482 NONAME
-	_ZrsR11QDataStreamR15SmfMusicProfile @ 483 NONAME
-	_ZrsR11QDataStreamR15SmfPictureAlbum @ 484 NONAME
-	_ZrsR11QDataStreamR16SmfActivityEntry @ 485 NONAME
-	_ZrsR11QDataStreamR17SmfActivityObject @ 486 NONAME
-	_ZrsR11QDataStreamR19SmfMusicFingerPrint @ 487 NONAME
-	_ZrsR11QDataStreamR6SmfUrl @ 488 NONAME
-	_ZrsR11QDataStreamR7SmfPost @ 489 NONAME
-	_ZrsR11QDataStreamR8SmfAlbum @ 490 NONAME
-	_ZrsR11QDataStreamR8SmfEvent @ 491 NONAME
-	_ZrsR11QDataStreamR8SmfGroup @ 492 NONAME
-	_ZrsR11QDataStreamR9SmfLyrics @ 493 NONAME
-	_ZrsR11QDataStreamRN10QtMobility10QContactIdE @ 494 NONAME
-	_ZrsR11QDataStreamRN10QtMobility11QContactUrlE @ 495 NONAME
-	_ZrsR11QDataStreamRN10QtMobility12QContactGuidE @ 496 NONAME
-	_ZrsR11QDataStreamRN10QtMobility12QContactNameE @ 497 NONAME
-	_ZrsR11QDataStreamRN10QtMobility12QContactNoteE @ 498 NONAME
-	_ZrsR11QDataStreamRN10QtMobility12QContactTypeE @ 499 NONAME
-	_ZrsR11QDataStreamRN10QtMobility14QContactAvatarE @ 500 NONAME
-	_ZrsR11QDataStreamRN10QtMobility14QContactGenderE @ 501 NONAME
-	_ZrsR11QDataStreamRN10QtMobility15QContactAddressE @ 502 NONAME
-	_ZrsR11QDataStreamRN10QtMobility16QContactBirthdayE @ 503 NONAME
-	_ZrsR11QDataStreamRN10QtMobility16QContactNicknameE @ 504 NONAME
-	_ZrsR11QDataStreamRN10QtMobility16QContactPresenceE @ 505 NONAME
-	_ZrsR11QDataStreamRN10QtMobility17QContactThumbnailE @ 506 NONAME
-	_ZrsR11QDataStreamRN10QtMobility17QContactTimestampE @ 507 NONAME
-	_ZrsR11QDataStreamRN10QtMobility19QContactAnniversaryE @ 508 NONAME
-	_ZrsR11QDataStreamRN10QtMobility19QContactGeoLocationE @ 509 NONAME
-	_ZrsR11QDataStreamRN10QtMobility19QContactPhoneNumberE @ 510 NONAME
-	_ZrsR11QDataStreamRN10QtMobility20QContactEmailAddressE @ 511 NONAME
-	_ZrsR11QDataStreamRN10QtMobility20QContactOrganizationE @ 512 NONAME
-	_ZrsR11QDataStreamRN10QtMobility21QContactOnlineAccountE @ 513 NONAME
+	_ZN11SmfProvider22setAuthenticationAppIdERK7QString @ 93 NONAME
+	_ZN11SmfProvider22setSupportedInterfacesER11QStringList @ 94 NONAME
+	_ZN11SmfProvider24setAuthenticationAppNameERK7QString @ 95 NONAME
+	_ZN11SmfProviderC1Ev @ 96 NONAME
+	_ZN11SmfProviderC2Ev @ 97 NONAME
+	_ZN11SmfProviderD1Ev @ 98 NONAME
+	_ZN11SmfProviderD2Ev @ 99 NONAME
+	_ZN11SmfSubtitle11setDurationERKd @ 100 NONAME
+	_ZN11SmfSubtitle11setLanguageERK7QString @ 101 NONAME
+	_ZN11SmfSubtitle11setSubtitleERK10QByteArray @ 102 NONAME
+	_ZN11SmfSubtitle12setFrameRateERKd @ 103 NONAME
+	_ZN11SmfSubtitle14setReleaseYearERK9QDateTime @ 104 NONAME
+	_ZN11SmfSubtitle14setSubtitleUrlERK4QUrl @ 105 NONAME
+	_ZN11SmfSubtitle5setIdERK7QString @ 106 NONAME
+	_ZN11SmfSubtitleC1ERKS_ @ 107 NONAME
+	_ZN11SmfSubtitleC1Ev @ 108 NONAME
+	_ZN11SmfSubtitleC2ERKS_ @ 109 NONAME
+	_ZN11SmfSubtitleC2Ev @ 110 NONAME
+	_ZN11SmfSubtitleD1Ev @ 111 NONAME
+	_ZN11SmfSubtitleD2Ev @ 112 NONAME
+	_ZN11SmfSubtitleaSERKS_ @ 113 NONAME
+	_ZN12SmfTrackInfo10setArtistsERK10SmfArtists @ 114 NONAME
+	_ZN12SmfTrackInfo10setCommentERK5QListI10SmfCommentE @ 115 NONAME
+	_ZN12SmfTrackInfo11setDurationERK5QTime @ 116 NONAME
+	_ZN12SmfTrackInfo5setIdERK7QString @ 117 NONAME
+	_ZN12SmfTrackInfo7setTagsERK11QStringList @ 118 NONAME
+	_ZN12SmfTrackInfo7setYearERK9QDateTime @ 119 NONAME
+	_ZN12SmfTrackInfo8setAlbumERK8SmfAlbum @ 120 NONAME
+	_ZN12SmfTrackInfo8setGenreERK7QString @ 121 NONAME
+	_ZN12SmfTrackInfo8setTitleERK7QString @ 122 NONAME
+	_ZN12SmfTrackInfo9setRatingERK14SmfMusicRating @ 123 NONAME
+	_ZN12SmfTrackInfoC1ERKS_ @ 124 NONAME
+	_ZN12SmfTrackInfoC1Ev @ 125 NONAME
+	_ZN12SmfTrackInfoC2ERKS_ @ 126 NONAME
+	_ZN12SmfTrackInfoC2Ev @ 127 NONAME
+	_ZN12SmfTrackInfoD1Ev @ 128 NONAME
+	_ZN12SmfTrackInfoD2Ev @ 129 NONAME
+	_ZN12SmfTrackInfoaSERKS_ @ 130 NONAME
+	_ZN13SmfPluginUtil11getAuthKeysER4QMapI10QByteArrayS1_E7QStringRK9QDateTimeS4_ @ 131 NONAME
+	_ZN13SmfPluginUtil21createParameterStringERK7QStringN21QNetworkAccessManager9OperationERK10QByteArrayS7_18SmfSignatureMethodRK9QMultiMapIS5_S5_E14SmfParsingMode @ 132 NONAME
+	_ZN13SmfPluginUtil5parseEP9QIODevicePb @ 133 NONAME
+	_ZN13SmfPluginUtil5parseERK10QByteArrayPb @ 134 NONAME
+	_ZN13SmfPluginUtil8getNonceER7QStringx @ 135 NONAME
+	_ZN13SmfPluginUtilC1Ev @ 136 NONAME
+	_ZN13SmfPluginUtilC2Ev @ 137 NONAME
+	_ZN13SmfPluginUtilD1Ev @ 138 NONAME
+	_ZN13SmfPluginUtilD2Ev @ 139 NONAME
+	_ZN14SmfMusicRating12setMaxRatingERKi @ 140 NONAME
+	_ZN14SmfMusicRating12setMinRatingERKi @ 141 NONAME
+	_ZN14SmfMusicRating9setRatingERKi @ 142 NONAME
+	_ZN14SmfMusicRatingC1EP12SmfTrackInfo @ 143 NONAME
+	_ZN14SmfMusicRatingC1ERKS_ @ 144 NONAME
+	_ZN14SmfMusicRatingC2EP12SmfTrackInfo @ 145 NONAME
+	_ZN14SmfMusicRatingC2ERKS_ @ 146 NONAME
+	_ZN14SmfMusicRatingD1Ev @ 147 NONAME
+	_ZN14SmfMusicRatingD2Ev @ 148 NONAME
+	_ZN14SmfMusicRatingaSERKS_ @ 149 NONAME
+	_ZN15SmfMusicProfile12setFavoritesERK5QListI12SmfTrackInfoE @ 150 NONAME
+	_ZN15SmfMusicProfile13setUserEventsERK5QListI8SmfEventE @ 151 NONAME
+	_ZN15SmfMusicProfile15setRecentTracksERK5QListI12SmfTrackInfoE @ 152 NONAME
+	_ZN15SmfMusicProfile5setIdERK7QString @ 153 NONAME
+	_ZN15SmfMusicProfileC1ERKS_ @ 154 NONAME
+	_ZN15SmfMusicProfileC1Ev @ 155 NONAME
+	_ZN15SmfMusicProfileC2ERKS_ @ 156 NONAME
+	_ZN15SmfMusicProfileC2Ev @ 157 NONAME
+	_ZN15SmfMusicProfileD1Ev @ 158 NONAME
+	_ZN15SmfMusicProfileD2Ev @ 159 NONAME
+	_ZN15SmfMusicProfileaSERKS_ @ 160 NONAME
+	_ZN15SmfPictureAlbum10addCommentERK10SmfComment @ 161 NONAME
+	_ZN15SmfPictureAlbum11addKeywordsERK11QStringList @ 162 NONAME
+	_ZN15SmfPictureAlbum12setThumbnailERK6QImage @ 163 NONAME
+	_ZN15SmfPictureAlbum13setPostedDateERK9QDateTime @ 164 NONAME
+	_ZN15SmfPictureAlbum13setVisibilityERK20SmfPictureVisibility @ 165 NONAME
+	_ZN15SmfPictureAlbum14setDescriptionERK7QString @ 166 NONAME
+	_ZN15SmfPictureAlbum15setPictureCountEi @ 167 NONAME
+	_ZN15SmfPictureAlbum5setIdERK7QString @ 168 NONAME
+	_ZN15SmfPictureAlbum6setUrlERK4QUrl @ 169 NONAME
+	_ZN15SmfPictureAlbum8setTitleERK7QString @ 170 NONAME
+	_ZN15SmfPictureAlbumC1ERKS_ @ 171 NONAME
+	_ZN15SmfPictureAlbumC1Ev @ 172 NONAME
+	_ZN15SmfPictureAlbumC2ERKS_ @ 173 NONAME
+	_ZN15SmfPictureAlbumC2Ev @ 174 NONAME
+	_ZN15SmfPictureAlbumD1Ev @ 175 NONAME
+	_ZN15SmfPictureAlbumD2Ev @ 176 NONAME
+	_ZN15SmfPictureAlbumaSERKS_ @ 177 NONAME
+	_ZN16SmfActivityEntry10setDetailsERK7SmfPost @ 178 NONAME
+	_ZN16SmfActivityEntry12setTargetObjERK17SmfActivityObject @ 179 NONAME
+	_ZN16SmfActivityEntry13setActionNameE15SmfActivityVerb @ 180 NONAME
+	_ZN16SmfActivityEntry13setActivitiesER5QListI17SmfActivityObjectE @ 181 NONAME
+	_ZN16SmfActivityEntry5setIdERK7QString @ 182 NONAME
+	_ZN16SmfActivityEntry8setTitleERK7SmfPost @ 183 NONAME
+	_ZN16SmfActivityEntry9setAuthorERK10SmfContact @ 184 NONAME
+	_ZN16SmfActivityEntryC1ERKS_ @ 185 NONAME
+	_ZN16SmfActivityEntryC1Ev @ 186 NONAME
+	_ZN16SmfActivityEntryC2ERKS_ @ 187 NONAME
+	_ZN16SmfActivityEntryC2Ev @ 188 NONAME
+	_ZN16SmfActivityEntryD1Ev @ 189 NONAME
+	_ZN16SmfActivityEntryD2Ev @ 190 NONAME
+	_ZN17SmfActivityObject10setCaptionERK7QString @ 191 NONAME
+	_ZN17SmfActivityObject10setContentERK7QString @ 192 NONAME
+	_ZN17SmfActivityObject10setObjDataERK8QVariant @ 193 NONAME
+	_ZN17SmfActivityObject12setThumbnailERK6QImage @ 194 NONAME
+	_ZN17SmfActivityObject5setIdERK7QString @ 195 NONAME
+	_ZN17SmfActivityObject7setLinkERK7QString @ 196 NONAME
+	_ZN17SmfActivityObject7setTimeERK9QDateTime @ 197 NONAME
+	_ZN17SmfActivityObject7setTypeERK21SmfActivityObjectType @ 198 NONAME
+	_ZN17SmfActivityObjectC1ERKS_ @ 199 NONAME
+	_ZN17SmfActivityObjectC1Ev @ 200 NONAME
+	_ZN17SmfActivityObjectC2ERKS_ @ 201 NONAME
+	_ZN17SmfActivityObjectC2Ev @ 202 NONAME
+	_ZN17SmfActivityObjectD1Ev @ 203 NONAME
+	_ZN17SmfActivityObjectD2Ev @ 204 NONAME
+	_ZN17SmfActivityObjectaSERKS_ @ 205 NONAME
+	_ZN19SmfMusicFingerPrint19setMusicFingerPrintERK10QByteArray @ 206 NONAME
+	_ZN19SmfMusicFingerPrint5setIdERK7QString @ 207 NONAME
+	_ZN19SmfMusicFingerPrintC1ERKS_ @ 208 NONAME
+	_ZN19SmfMusicFingerPrintC1Ev @ 209 NONAME
+	_ZN19SmfMusicFingerPrintC2ERKS_ @ 210 NONAME
+	_ZN19SmfMusicFingerPrintC2Ev @ 211 NONAME
+	_ZN19SmfMusicFingerPrintD1Ev @ 212 NONAME
+	_ZN19SmfMusicFingerPrintD2Ev @ 213 NONAME
+	_ZN19SmfMusicFingerPrintaSERKS_ @ 214 NONAME
+	_ZN6SmfUrl12setHhreflangERK7QString @ 215 NONAME
+	_ZN6SmfUrl5setIdERK7QString @ 216 NONAME
+	_ZN6SmfUrl6setRelERK7QString @ 217 NONAME
+	_ZN6SmfUrl7setHrefERK4QUrl @ 218 NONAME
+	_ZN6SmfUrl7setTypeERK7QString @ 219 NONAME
+	_ZN6SmfUrl8setTitleERK7QString @ 220 NONAME
+	_ZN6SmfUrl9setLengthERK7QString @ 221 NONAME
+	_ZN6SmfUrlC1ERKS_ @ 222 NONAME
+	_ZN6SmfUrlC1Ev @ 223 NONAME
+	_ZN6SmfUrlC2ERKS_ @ 224 NONAME
+	_ZN6SmfUrlC2Ev @ 225 NONAME
+	_ZN6SmfUrlD1Ev @ 226 NONAME
+	_ZN6SmfUrlD2Ev @ 227 NONAME
+	_ZN6SmfUrlaSERKS_ @ 228 NONAME
+	_ZN7SmfPost14setDescriptionERK7QString @ 229 NONAME
+	_ZN7SmfPost17setPostedDateTimeER9QDateTime @ 230 NONAME
+	_ZN7SmfPost5setIdE7QString @ 231 NONAME
+	_ZN7SmfPost6setUrlER4QUrl @ 232 NONAME
+	_ZN7SmfPost8setImageERK6QImage @ 233 NONAME
+	_ZN7SmfPost8setOwnerERK10SmfContact @ 234 NONAME
+	_ZN7SmfPost8setTitleERK7QString @ 235 NONAME
+	_ZN7SmfPostC1E10SmfContact7QStringS1_6QImage4QUrl @ 236 NONAME
+	_ZN7SmfPostC1ERKS_ @ 237 NONAME
+	_ZN7SmfPostC1Ev @ 238 NONAME
+	_ZN7SmfPostC2E10SmfContact7QStringS1_6QImage4QUrl @ 239 NONAME
+	_ZN7SmfPostC2ERKS_ @ 240 NONAME
+	_ZN7SmfPostC2Ev @ 241 NONAME
+	_ZN7SmfPostD1Ev @ 242 NONAME
+	_ZN7SmfPostD2Ev @ 243 NONAME
+	_ZN7SmfPostaSERKS_ @ 244 NONAME
+	_ZN8SmfAlbum10setArtistsERK10SmfArtists @ 245 NONAME
+	_ZN8SmfAlbum11setImageUrlERK4QUrl @ 246 NONAME
+	_ZN8SmfAlbum11setLocationERK11SmfLocation @ 247 NONAME
+	_ZN8SmfAlbum13setItemsCountEi @ 248 NONAME
+	_ZN8SmfAlbum14setSecondaryIdERK7QString @ 249 NONAME
+	_ZN8SmfAlbum5setIdERK7QString @ 250 NONAME
+	_ZN8SmfAlbum7setNameERK7QString @ 251 NONAME
+	_ZN8SmfAlbum7setTypeE17SmfAlbumMediaType @ 252 NONAME
+	_ZN8SmfAlbumC1ERKS_ @ 253 NONAME
+	_ZN8SmfAlbumC1Ev @ 254 NONAME
+	_ZN8SmfAlbumC2ERKS_ @ 255 NONAME
+	_ZN8SmfAlbumC2Ev @ 256 NONAME
+	_ZN8SmfAlbumD1Ev @ 257 NONAME
+	_ZN8SmfAlbumD2Ev @ 258 NONAME
+	_ZN8SmfAlbumaSERKS_ @ 259 NONAME
+	_ZN8SmfEvent10setArtistsERK10SmfArtists @ 260 NONAME
+	_ZN8SmfEvent11setDurationERK5QTime @ 261 NONAME
+	_ZN8SmfEvent12setTicketUrlERK4QUrl @ 262 NONAME
+	_ZN8SmfEvent16setEventDateTimeERK9QDateTime @ 263 NONAME
+	_ZN8SmfEvent5setIdERK7QString @ 264 NONAME
+	_ZN8SmfEvent8setTitleERK7QString @ 265 NONAME
+	_ZN8SmfEvent8setVenueERK11SmfLocation @ 266 NONAME
+	_ZN8SmfEventC1ERKS_ @ 267 NONAME
+	_ZN8SmfEventC1Ev @ 268 NONAME
+	_ZN8SmfEventC2ERKS_ @ 269 NONAME
+	_ZN8SmfEventC2Ev @ 270 NONAME
+	_ZN8SmfEventD1Ev @ 271 NONAME
+	_ZN8SmfEventD2Ev @ 272 NONAME
+	_ZN8SmfEventaSERKS_ @ 273 NONAME
+	_ZN8SmfGroup10setMembersEP5QListI10SmfContactE @ 274 NONAME
+	_ZN8SmfGroup5setIdER7QString @ 275 NONAME
+	_ZN8SmfGroup7setNameER7QString @ 276 NONAME
+	_ZN8SmfGroupC1EP5QListI10SmfContactE @ 277 NONAME
+	_ZN8SmfGroupC1ERKS_ @ 278 NONAME
+	_ZN8SmfGroupC2EP5QListI10SmfContactE @ 279 NONAME
+	_ZN8SmfGroupC2ERKS_ @ 280 NONAME
+	_ZN8SmfGroupD1Ev @ 281 NONAME
+	_ZN8SmfGroupD2Ev @ 282 NONAME
+	_ZN8SmfGroupaSERKS_ @ 283 NONAME
+	_ZN9SmfLyrics11setLanguageERK7QString @ 284 NONAME
+	_ZN9SmfLyrics14setReleaseYearERK9QDateTime @ 285 NONAME
+	_ZN9SmfLyrics5setIdERK7QString @ 286 NONAME
+	_ZN9SmfLyrics9setLyricsERK10QByteArray @ 287 NONAME
+	_ZN9SmfLyricsC1ERKS_ @ 288 NONAME
+	_ZN9SmfLyricsC1Ev @ 289 NONAME
+	_ZN9SmfLyricsC2ERKS_ @ 290 NONAME
+	_ZN9SmfLyricsC2Ev @ 291 NONAME
+	_ZN9SmfLyricsD1Ev @ 292 NONAME
+	_ZN9SmfLyricsD2Ev @ 293 NONAME
+	_ZN9SmfLyricsaSERKS_ @ 294 NONAME
+	_ZNK10SmfArtists2idEv @ 295 NONAME
+	_ZNK10SmfArtists3urlEv @ 296 NONAME
+	_ZNK10SmfArtists4tagsEv @ 297 NONAME
+	_ZNK10SmfArtists5imageEv @ 298 NONAME
+	_ZNK10SmfArtists5namesEv @ 299 NONAME
+	_ZNK10SmfComment2idEv @ 300 NONAME
+	_ZNK10SmfComment4textEv @ 301 NONAME
+	_ZNK10SmfComment9timeStampEv @ 302 NONAME
+	_ZNK10SmfContact5valueERK7QString @ 303 NONAME
+	_ZNK10SmfContact7convertERN10QtMobility8QContactE @ 304 NONAME
+	_ZNK10SmfContact8subTypesEv @ 305 NONAME
+	_ZNK10SmfPicture10postedDateEv @ 306 NONAME
+	_ZNK10SmfPicture10visibilityEv @ 307 NONAME
+	_ZNK10SmfPicture11descriptionEv @ 308 NONAME
+	_ZNK10SmfPicture2idEv @ 309 NONAME
+	_ZNK10SmfPicture3urlEv @ 310 NONAME
+	_ZNK10SmfPicture4tagsEv @ 311 NONAME
+	_ZNK10SmfPicture5ownerEv @ 312 NONAME
+	_ZNK10SmfPicture5titleEv @ 313 NONAME
+	_ZNK10SmfPicture7pictureEv @ 314 NONAME
+	_ZNK10SmfPicture8commentsEv @ 315 NONAME
+	_ZNK11SmfLocation15geoPositionInfoEv @ 316 NONAME
+	_ZNK11SmfLocation2idEv @ 317 NONAME
+	_ZNK11SmfLocation3urlEv @ 318 NONAME
+	_ZNK11SmfLocation4cityEv @ 319 NONAME
+	_ZNK11SmfLocation4nameEv @ 320 NONAME
+	_ZNK11SmfLocation6streetEv @ 321 NONAME
+	_ZNK11SmfLocation7countryEv @ 322 NONAME
+	_ZNK11SmfLocation7zipCodeEv @ 323 NONAME
+	_ZNK11SmfPlaylist11attributionEv @ 324 NONAME
+	_ZNK11SmfPlaylist12creationDateEv @ 325 NONAME
+	_ZNK11SmfPlaylist13playListTitleEv @ 326 NONAME
+	_ZNK11SmfPlaylist2idEv @ 327 NONAME
+	_ZNK11SmfPlaylist4infoEv @ 328 NONAME
+	_ZNK11SmfPlaylist5imageEv @ 329 NONAME
+	_ZNK11SmfPlaylist6authorEv @ 330 NONAME
+	_ZNK11SmfPlaylist7licenseEv @ 331 NONAME
+	_ZNK11SmfPlaylist7versionEv @ 332 NONAME
+	_ZNK11SmfPlaylist8commentsEv @ 333 NONAME
+	_ZNK11SmfPlaylist8locationEv @ 334 NONAME
+	_ZNK11SmfPlaylist8metadataEv @ 335 NONAME
+	_ZNK11SmfPlaylist9extensionEv @ 336 NONAME
+	_ZNK11SmfPlaylist9trackListEv @ 337 NONAME
+	_ZNK11SmfProvider10serviceUrlEv @ 338 NONAME
+	_ZNK11SmfProvider11descriptionEv @ 339 NONAME
+	_ZNK11SmfProvider11serviceIconEv @ 340 NONAME
+	_ZNK11SmfProvider11serviceNameEv @ 341 NONAME
+	_ZNK11SmfProvider14applicationUrlEv @ 342 NONAME
+	_ZNK11SmfProvider18supportedLanguagesEv @ 343 NONAME
+	_ZNK11SmfProvider19authenticationAppIdEv @ 344 NONAME
+	_ZNK11SmfProvider19supportedInterfacesEv @ 345 NONAME
+	_ZNK11SmfProvider21authenticationAppNameEv @ 346 NONAME
+	_ZNK11SmfSubtitle11releaseYearEv @ 347 NONAME
+	_ZNK11SmfSubtitle11subtitleUrlEv @ 348 NONAME
+	_ZNK11SmfSubtitle2idEv @ 349 NONAME
+	_ZNK11SmfSubtitle8durationEv @ 350 NONAME
+	_ZNK11SmfSubtitle8languageEv @ 351 NONAME
+	_ZNK11SmfSubtitle8subtitleEv @ 352 NONAME
+	_ZNK11SmfSubtitle9frameRateEv @ 353 NONAME
+	_ZNK12SmfTrackInfo2idEv @ 354 NONAME
+	_ZNK12SmfTrackInfo4tagsEv @ 355 NONAME
+	_ZNK12SmfTrackInfo4yearEv @ 356 NONAME
+	_ZNK12SmfTrackInfo5albumEv @ 357 NONAME
+	_ZNK12SmfTrackInfo5genreEv @ 358 NONAME
+	_ZNK12SmfTrackInfo5titleEv @ 359 NONAME
+	_ZNK12SmfTrackInfo6ratingEv @ 360 NONAME
+	_ZNK12SmfTrackInfo7artistsEv @ 361 NONAME
+	_ZNK12SmfTrackInfo8commentsEv @ 362 NONAME
+	_ZNK12SmfTrackInfo8durationEv @ 363 NONAME
+	_ZNK13SmfPluginUtil11errorStringEv @ 364 NONAME
+	_ZNK13SmfPluginUtil9errorLineEv @ 365 NONAME
+	_ZNK14SmfMusicRating6ratingEv @ 366 NONAME
+	_ZNK14SmfMusicRating9maxRatingEv @ 367 NONAME
+	_ZNK14SmfMusicRating9minRatingEv @ 368 NONAME
+	_ZNK15SmfMusicProfile10userEventsEv @ 369 NONAME
+	_ZNK15SmfMusicProfile12recentTracksEv @ 370 NONAME
+	_ZNK15SmfMusicProfile2idEv @ 371 NONAME
+	_ZNK15SmfMusicProfile9favoritesEv @ 372 NONAME
+	_ZNK15SmfPictureAlbum10postedDateEv @ 373 NONAME
+	_ZNK15SmfPictureAlbum10visibilityEv @ 374 NONAME
+	_ZNK15SmfPictureAlbum11descriptionEv @ 375 NONAME
+	_ZNK15SmfPictureAlbum12pictureCountEv @ 376 NONAME
+	_ZNK15SmfPictureAlbum2idEv @ 377 NONAME
+	_ZNK15SmfPictureAlbum3urlEv @ 378 NONAME
+	_ZNK15SmfPictureAlbum5titleEv @ 379 NONAME
+	_ZNK15SmfPictureAlbum8commentsEv @ 380 NONAME
+	_ZNK15SmfPictureAlbum8keywordsEv @ 381 NONAME
+	_ZNK15SmfPictureAlbum9thumbnailEv @ 382 NONAME
+	_ZNK16SmfActivityEntry10actionNameEv @ 383 NONAME
+	_ZNK16SmfActivityEntry10activitiesEv @ 384 NONAME
+	_ZNK16SmfActivityEntry2idEv @ 385 NONAME
+	_ZNK16SmfActivityEntry5titleEv @ 386 NONAME
+	_ZNK16SmfActivityEntry6authorEv @ 387 NONAME
+	_ZNK16SmfActivityEntry7detailsEv @ 388 NONAME
+	_ZNK16SmfActivityEntry9targetObjEv @ 389 NONAME
+	_ZNK17SmfActivityObject2idEv @ 390 NONAME
+	_ZNK17SmfActivityObject4linkEv @ 391 NONAME
+	_ZNK17SmfActivityObject4timeEv @ 392 NONAME
+	_ZNK17SmfActivityObject4typeEv @ 393 NONAME
+	_ZNK17SmfActivityObject7captionEv @ 394 NONAME
+	_ZNK17SmfActivityObject7contentEv @ 395 NONAME
+	_ZNK17SmfActivityObject7objDataEv @ 396 NONAME
+	_ZNK17SmfActivityObject9thumbnailEv @ 397 NONAME
+	_ZNK19SmfMusicFingerPrint16musicFingerPrintEv @ 398 NONAME
+	_ZNK19SmfMusicFingerPrint2idEv @ 399 NONAME
+	_ZNK6SmfUrl2idEv @ 400 NONAME
+	_ZNK6SmfUrl3relEv @ 401 NONAME
+	_ZNK6SmfUrl4hrefEv @ 402 NONAME
+	_ZNK6SmfUrl4typeEv @ 403 NONAME
+	_ZNK6SmfUrl5titleEv @ 404 NONAME
+	_ZNK6SmfUrl6lengthEv @ 405 NONAME
+	_ZNK6SmfUrl8hreflangEv @ 406 NONAME
+	_ZNK7SmfPost11descriptionEv @ 407 NONAME
+	_ZNK7SmfPost14postedDateTimeEv @ 408 NONAME
+	_ZNK7SmfPost2idEv @ 409 NONAME
+	_ZNK7SmfPost3urlEv @ 410 NONAME
+	_ZNK7SmfPost5imageEv @ 411 NONAME
+	_ZNK7SmfPost5ownerEv @ 412 NONAME
+	_ZNK7SmfPost5titleEv @ 413 NONAME
+	_ZNK8SmfAlbum10itemsCountEv @ 414 NONAME
+	_ZNK8SmfAlbum11secondaryIdEv @ 415 NONAME
+	_ZNK8SmfAlbum2idEv @ 416 NONAME
+	_ZNK8SmfAlbum4nameEv @ 417 NONAME
+	_ZNK8SmfAlbum4typeEv @ 418 NONAME
+	_ZNK8SmfAlbum7artistsEv @ 419 NONAME
+	_ZNK8SmfAlbum8imageUrlEv @ 420 NONAME
+	_ZNK8SmfAlbum8locationEv @ 421 NONAME
+	_ZNK8SmfEvent13eventDateTimeEv @ 422 NONAME
+	_ZNK8SmfEvent2idEv @ 423 NONAME
+	_ZNK8SmfEvent5titleEv @ 424 NONAME
+	_ZNK8SmfEvent5venueEv @ 425 NONAME
+	_ZNK8SmfEvent7artistsEv @ 426 NONAME
+	_ZNK8SmfEvent8durationEv @ 427 NONAME
+	_ZNK8SmfEvent9ticketUrlEv @ 428 NONAME
+	_ZNK8SmfGroup2idEv @ 429 NONAME
+	_ZNK8SmfGroup4nameEv @ 430 NONAME
+	_ZNK8SmfGroup7membersEv @ 431 NONAME
+	_ZNK9SmfLyrics11releaseYearEv @ 432 NONAME
+	_ZNK9SmfLyrics2idEv @ 433 NONAME
+	_ZNK9SmfLyrics6lyricsEv @ 434 NONAME
+	_ZNK9SmfLyrics8languageEv @ 435 NONAME
+	_ZlsR11QDataStreamRK10SmfArtists @ 436 NONAME
+	_ZlsR11QDataStreamRK10SmfComment @ 437 NONAME
+	_ZlsR11QDataStreamRK10SmfContact @ 438 NONAME
+	_ZlsR11QDataStreamRK10SmfPicture @ 439 NONAME
+	_ZlsR11QDataStreamRK11SmfLocation @ 440 NONAME
+	_ZlsR11QDataStreamRK11SmfPlaylist @ 441 NONAME
+	_ZlsR11QDataStreamRK11SmfProvider @ 442 NONAME
+	_ZlsR11QDataStreamRK11SmfSubtitle @ 443 NONAME
+	_ZlsR11QDataStreamRK12SmfTrackInfo @ 444 NONAME
+	_ZlsR11QDataStreamRK14SmfMusicRating @ 445 NONAME
+	_ZlsR11QDataStreamRK15SmfMusicProfile @ 446 NONAME
+	_ZlsR11QDataStreamRK15SmfPictureAlbum @ 447 NONAME
+	_ZlsR11QDataStreamRK16SmfActivityEntry @ 448 NONAME
+	_ZlsR11QDataStreamRK17SmfActivityObject @ 449 NONAME
+	_ZlsR11QDataStreamRK19SmfMusicFingerPrint @ 450 NONAME
+	_ZlsR11QDataStreamRK6SmfUrl @ 451 NONAME
+	_ZlsR11QDataStreamRK7SmfPost @ 452 NONAME
+	_ZlsR11QDataStreamRK8SmfAlbum @ 453 NONAME
+	_ZlsR11QDataStreamRK8SmfEvent @ 454 NONAME
+	_ZlsR11QDataStreamRK8SmfGroup @ 455 NONAME
+	_ZlsR11QDataStreamRK9SmfLyrics @ 456 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility10QContactIdE @ 457 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility11QContactUrlE @ 458 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactGuidE @ 459 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactNameE @ 460 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactNoteE @ 461 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactTypeE @ 462 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility14QContactAvatarE @ 463 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility14QContactGenderE @ 464 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility15QContactAddressE @ 465 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility16QContactBirthdayE @ 466 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility16QContactNicknameE @ 467 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility16QContactPresenceE @ 468 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility17QContactThumbnailE @ 469 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility17QContactTimestampE @ 470 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility19QContactAnniversaryE @ 471 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility19QContactGeoLocationE @ 472 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility19QContactPhoneNumberE @ 473 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility20QContactEmailAddressE @ 474 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility20QContactOrganizationE @ 475 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility21QContactOnlineAccountE @ 476 NONAME
+	_ZrsR11QDataStreamR10SmfArtists @ 477 NONAME
+	_ZrsR11QDataStreamR10SmfComment @ 478 NONAME
+	_ZrsR11QDataStreamR10SmfContact @ 479 NONAME
+	_ZrsR11QDataStreamR10SmfPicture @ 480 NONAME
+	_ZrsR11QDataStreamR11SmfLocation @ 481 NONAME
+	_ZrsR11QDataStreamR11SmfPlaylist @ 482 NONAME
+	_ZrsR11QDataStreamR11SmfProvider @ 483 NONAME
+	_ZrsR11QDataStreamR11SmfSubtitle @ 484 NONAME
+	_ZrsR11QDataStreamR12SmfTrackInfo @ 485 NONAME
+	_ZrsR11QDataStreamR14SmfMusicRating @ 486 NONAME
+	_ZrsR11QDataStreamR15SmfMusicProfile @ 487 NONAME
+	_ZrsR11QDataStreamR15SmfPictureAlbum @ 488 NONAME
+	_ZrsR11QDataStreamR16SmfActivityEntry @ 489 NONAME
+	_ZrsR11QDataStreamR17SmfActivityObject @ 490 NONAME
+	_ZrsR11QDataStreamR19SmfMusicFingerPrint @ 491 NONAME
+	_ZrsR11QDataStreamR6SmfUrl @ 492 NONAME
+	_ZrsR11QDataStreamR7SmfPost @ 493 NONAME
+	_ZrsR11QDataStreamR8SmfAlbum @ 494 NONAME
+	_ZrsR11QDataStreamR8SmfEvent @ 495 NONAME
+	_ZrsR11QDataStreamR8SmfGroup @ 496 NONAME
+	_ZrsR11QDataStreamR9SmfLyrics @ 497 NONAME
+	_ZrsR11QDataStreamRN10QtMobility10QContactIdE @ 498 NONAME
+	_ZrsR11QDataStreamRN10QtMobility11QContactUrlE @ 499 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactGuidE @ 500 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactNameE @ 501 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactNoteE @ 502 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactTypeE @ 503 NONAME
+	_ZrsR11QDataStreamRN10QtMobility14QContactAvatarE @ 504 NONAME
+	_ZrsR11QDataStreamRN10QtMobility14QContactGenderE @ 505 NONAME
+	_ZrsR11QDataStreamRN10QtMobility15QContactAddressE @ 506 NONAME
+	_ZrsR11QDataStreamRN10QtMobility16QContactBirthdayE @ 507 NONAME
+	_ZrsR11QDataStreamRN10QtMobility16QContactNicknameE @ 508 NONAME
+	_ZrsR11QDataStreamRN10QtMobility16QContactPresenceE @ 509 NONAME
+	_ZrsR11QDataStreamRN10QtMobility17QContactThumbnailE @ 510 NONAME
+	_ZrsR11QDataStreamRN10QtMobility17QContactTimestampE @ 511 NONAME
+	_ZrsR11QDataStreamRN10QtMobility19QContactAnniversaryE @ 512 NONAME
+	_ZrsR11QDataStreamRN10QtMobility19QContactGeoLocationE @ 513 NONAME
+	_ZrsR11QDataStreamRN10QtMobility19QContactPhoneNumberE @ 514 NONAME
+	_ZrsR11QDataStreamRN10QtMobility20QContactEmailAddressE @ 515 NONAME
+	_ZrsR11QDataStreamRN10QtMobility20QContactOrganizationE @ 516 NONAME
+	_ZrsR11QDataStreamRN10QtMobility21QContactOnlineAccountE @ 517 NONAME
 
--- a/smf/smfservermodule/smfcommon/smfcontact.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfcommon/smfcontact.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -20,7 +20,7 @@
 
 #include <QFile>
 #include <QTextStream>
-
+#include <QDebug>
 #include "smfcontact.h"
 #include "smfcontact_p.h"
 
@@ -124,7 +124,15 @@
  */
 void SmfContact::setValue(const QString& aSubType,QVariant& value)
 	{
+	if(value.isValid())
+		{
+		if((value.toInt()>127 && value.toString()!="Polygon") || (value.toInt()<0 && value.toString()!="Polygon"))
+			{
+			qDebug()<< "Invalid data in qVariant";
+			}
+	else		
 	d->m_details.insert(aSubType,value);
+		}
 	}
 
 /**
--- a/smf/smfservermodule/smfcommon/smfglobal.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfcommon/smfglobal.h	Mon Oct 11 21:59:54 2010 +0530
@@ -257,7 +257,7 @@
 	uint iPageNum;
 	};
 
-
+#ifdef Q_FOR_FUTURE 
 struct SmfClientAuthID
 	{
 #ifdef Q_OS_SYMBIAN
@@ -268,6 +268,7 @@
 	SmfServerQtSession* session;
 #endif
 	};
+#endif
 
 /**
  * Smf wide errors
@@ -340,8 +341,12 @@
 	SmfDbContactNotExist,						//63
 	SmfErrItemNotInRelation,                    //64
 	SmfErrInvalidRelation,                      //65  
-	SmfUnknownError								//66
-
+	SmfInvalidGuid,							    //66
+	SmfInvalidContactUrl,						//67
+	SmfInvalidLocalId,							//68
+	SmfContactExists,							//69
+	SmfUnknownError,							//70
+	SmfInvalidDataInArguement					//71
 	};
 
 
--- a/smf/smfservermodule/smfcommon/smfprovider.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfcommon/smfprovider.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -81,6 +81,25 @@
 	}
 
 /**
+ * Method to get the ID of the authentication application 
+ * for this service
+ * @return The ID (UID3) of the authentication application 
+ */
+QString SmfProvider::authenticationAppId( ) const
+	{
+	return m_authAppId;
+	}
+
+/**
+ * Method to get the name of the authentication process
+ * @return The name of the authentication process 
+ */
+QString SmfProvider::authenticationAppName( ) const
+	{
+	return m_authAppName;
+	}
+
+/**
  * List of interfaces that this provider support
  * @return List of supported interface names
  */
@@ -145,6 +164,24 @@
 	}
 
 /**
+ * Sets the ID of the authentication application for this service
+ * @param id The ID (UID3) of the authentication application 
+ */
+void SmfProvider::setAuthenticationAppId( const QString& id )
+	{
+	m_authAppId = id;
+	}
+
+/**
+ * Sets the Name of the authentication application process
+ * @param name The name of the authentication process 
+ */
+void SmfProvider::setAuthenticationAppName( const QString& name )
+	{
+	m_authAppName = name;
+	}
+
+/**
  * Sets list of interfaces that this provider supports
  * @param types List of supported interface names
  */
@@ -180,6 +217,8 @@
 	out<<base.m_appUrl;
 	out<<base.m_serviceTypes;
 	out<<base.m_supportedLanguages;
+	out<<base.m_authAppId;
+	out<<base.m_authAppName;
 	return out; 
 	}
 
@@ -199,5 +238,7 @@
 	in>>base.m_appUrl;
 	in>>base.m_serviceTypes;
 	in>>base.m_supportedLanguages;
+	in>>base.m_authAppId;
+	in>>base.m_authAppName;
 	return in; 
 	}
--- a/smf/smfservermodule/smfcommon/smfprovider.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfcommon/smfprovider.h	Mon Oct 11 21:59:54 2010 +0530
@@ -81,6 +81,19 @@
 	QUrl applicationUrl() const;
 	
 	/**
+	 * Method to get the ID of the authentication application 
+	 * for this service
+	 * @return The ID (UID3) of the authentication application 
+	 */
+	QString authenticationAppId( ) const;
+	
+	/**
+	 * Method to get the name of the authentication process
+	 * @return The name of the authentication process 
+	 */
+	QString authenticationAppName( ) const;
+	
+	/**
 	 * List of interfaces that this provider support
 	 * @return List of supported interface names
 	 */
@@ -124,6 +137,18 @@
 	void setApplicationUrl(QUrl& url) ; 
 	
 	/**
+	 * Sets the ID of the authentication application for this service
+	 * @param id The ID (UID3) of the authentication application 
+	 */
+	void setAuthenticationAppId( const QString& id );
+	
+	/**
+	 * Sets the Name of the authentication application process
+	 * @param name The name of the authentication process 
+	 */
+	void setAuthenticationAppName( const QString& name );
+	
+	/**
 	 * Sets list of interfaces that this provider supports
 	 * @param types List of supported interface names
 	 */
@@ -144,6 +169,8 @@
 	QUrl m_appUrl;
 	QStringList m_serviceTypes;
 	QStringList m_supportedLanguages;
+	QString m_authAppId;
+	QString m_authAppName;
 	
 	friend QDataStream &operator<<(QDataStream &, const SmfProvider&);
 	friend QDataStream &operator>>(QDataStream &, SmfProvider&);
--- a/smf/smfservermodule/smfserver/datastoremgr/dsm.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/datastoremgr/dsm.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -16,6 +16,7 @@
 #include <dsm.h>
 #include <QDebug>
 
+
 // Static data initialization
 DataStoreManager* DataStoreManager::dsmInstance = NULL;
 const QString DataStoreManager::dbName = "dsm.db";
@@ -49,6 +50,10 @@
     db.close();
     state = CLOSED;
     delete dsmInstance;
+    if(iSmsfRelationItem)
+    	delete iSmsfRelationItem;
+    if(iDSMContactPckgItem)
+    	delete iDSMContactPckgItem;
 }
 
 //! \fn getState()
@@ -69,10 +74,12 @@
     return lastMsg;
 }
 
-SmfRelationId DataStoreManager::create(SmfProvider *aProvider, SmfContact *aContact)
+ SmfError DataStoreManager::create(SmfRelationId &aRelationId,SmfProvider *aProvider, SmfContact *aContact)
 	{
+	SmfError err = SmfNoError;
+	aRelationId.clear();
 	if(NULL == aProvider || NULL == aContact)
-		return QString::number(-1);//SmfUnknownError 
+		return SmfUnknownError;//SmfUnknownError 
 	
 	QString userId, contactUrl, localId, managerUri, presenceState, presenceText, statusText;
 	QDateTime dateTime;
@@ -117,16 +124,22 @@
 	qDebug()<<"Inside Test DSM Create: snsDesc"<<snsDesc;
 	
 	
+	int contactID;
+	err = addContactToTable(contactID,userId, contactUrl, localId, managerUri, snsName, snsDesc, snsUrl, presenceState, presenceText , statusText, timeStampInSeconds);
+	if(SmfNoError == err)
+		{
+		QString cntcId(QString::number(addRelationToTable(contactID)));
+		aRelationId.append(cntcId);
+		}
+		return err;
 	
-	const int contactID = addContactToTable(userId, contactUrl, localId, managerUri, snsName, snsDesc, snsUrl, presenceState, presenceText , statusText, timeStampInSeconds);
-	if(!(contactIfExist(contactID)))
-		return QString::number(-1);
-	return QString::number( addRelationToTable( contactID ) );
+	//return QString::number( addRelationToTable( contactID ) );
 }
 
 SmfError DataStoreManager::associate( 	SmfRelationId aPhoneId,	
 										const SmfContact* aContact, 
 										SmfProvider* aProvider){
+	SmfError err = SmfNoError;
 	if(NULL == aProvider || NULL == aContact)
 			return SmfError(-1);//SmfUnknownError
 	
@@ -165,12 +178,17 @@
 	qDebug()<<"Inside Test DSM Associate: snsUrl"<<snsUrl;
 	qDebug()<<"Inside Test DSM Associate: snsDesc"<<snsDesc;
 	
-	const int contactID = addContactToTable(userId, contactUrl, localId, managerUri, snsName, snsDesc, snsUrl, presenceState, presenceText , statusText, timeStampInSeconds);
+	int contactID;
+	err = addContactToTable(contactID,userId, contactUrl, localId, managerUri, snsName, snsDesc, snsUrl, presenceState, presenceText , statusText, timeStampInSeconds);
+	if(SmfNoError == err)
+		{
 	TInt Id = addRelationToTable( contactID,  aPhoneId.toInt()); 
 	if(Id == aPhoneId.toInt())
-		return  SmfNoError ;
+			err = SmfNoError ;
 	else
-		return SmfDbOpeningError;
+			err = SmfDbOpeningError;
+		}
+	return err;
 }
 
 /** remove contact from a relation */
@@ -667,7 +685,8 @@
 	
 }
 
-int DataStoreManager::addContactToTable(const QString &aUserId, 
+SmfError DataStoreManager::addContactToTable (int &aContactId,
+									const QString &aUserId, 
 									const QString &aContactUrl,
 									const QString &aLocalId,
 									const QString &aManagerUri,
@@ -679,7 +698,19 @@
 									const QString &aStatusText,
 									const Int64 aTimeStamp ){
 	
-	int contactId;
+	SmfError err = SmfNoError;	
+	
+	if(contactIfExist(aUserId,aSnsName))
+		return SmfContactExists;
+	
+	if(aUserId.isEmpty() || aUserId.isNull())
+		return SmfInvalidGuid;
+	
+	if(aContactUrl.isEmpty() || aContactUrl.isNull())
+		return SmfInvalidContactUrl;
+	
+	if(aLocalId.isEmpty() || aLocalId.isNull())
+			return SmfInvalidContactUrl;
 		
 	if(SmfDbOpeningError == openDB())
 		return SmfDbOpeningError;
@@ -715,12 +746,12 @@
 		return SmfDbQueryExecutonError; 
 
 	if(qry.next()){
-		contactId = qry.value(0).toInt();
+		aContactId = qry.value(0).toInt();
 	}
 
 	qry.finish();
 	db.close();
-	return contactId;	
+	return err;	
 }
 
 SmfError DataStoreManager::removeContactFromTable(const int aContactId){
@@ -742,19 +773,19 @@
 }
 
 
-
-TBool DataStoreManager::contactIfExist( const int aContactId){
+TBool DataStoreManager::contactIfExist( const QString &userId,const QString &snsName){
 	
 	TBool contactExist = EFalse;
 	if(SmfDbOpeningError == openDB())
 		return EFalse;
 
 	QSqlQuery qry;
-	TBool queryPep = qry.prepare("SELECT contactId FROM contact WHERE contactId=:contactId");
+	TBool queryPep;
+	queryPep = qry.prepare("SELECT userId FROM contact WHERE userId=:userId");
 	if(!queryPep)
 		return EFalse;
 		
-	qry.bindValue(":contactId", aContactId);
+	qry.bindValue(":userId", userId);
 
 	if(SmfDbQueryExecutonError == executeQuery(qry))
 		return EFalse; 
@@ -762,10 +793,24 @@
 	if( qry.first() )
 		contactExist = ETrue;
 		
+	if(contactExist){
+		queryPep = qry.prepare("SELECT userId FROM contact WHERE snsName=:snsName");
+		if(!queryPep)
+			return EFalse;
+			
+		qry.bindValue(":snsName", snsName);
+
+		if(SmfDbQueryExecutonError == executeQuery(qry))
+			return EFalse; 
+
+		if( qry.first() )
+			contactExist = ETrue;	
+	}
 	qry.finish();
 	db.close();
 
 	return contactExist;
+		
 }
 
 TBool DataStoreManager::relationIfExist( const int aRelationId){
--- a/smf/smfservermodule/smfserver/datastoremgr/dsm.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/datastoremgr/dsm.h	Mon Oct 11 21:59:54 2010 +0530
@@ -105,7 +105,7 @@
 		QString getErrorText() const;
     
 	public slots:
-        SmfRelationId create(SmfProvider *aProvider=NULL, SmfContact *aContact=NULL);
+         SmfError create(SmfRelationId &RelID,SmfProvider *aProvider=NULL, SmfContact *aContact=NULL);
 
 		/** assign contact to a relation */
 		SmfError associate( SmfRelationId aRelation,
@@ -162,7 +162,8 @@
 									const QString &snsDesc,
 									const QString &snsUrl);
         
-        int addContactToTable( const QString &userId, 
+        SmfError addContactToTable( int &aContactId,
+									const QString &userId, 
 									const QString &contactUrl,
 									const QString &localId,
 									const QString &managerUri,
@@ -184,7 +185,7 @@
         SmfRelationItem* searchContact(const int aContactId);
         
         /**search for contact if exist, return True/False*/
-        TBool contactIfExist( const int aContactId);
+        TBool contactIfExist( const QString &userId,const QString &snsName);
         
         
         /*------------------Operation on Relation Table-------------------*/ 
@@ -233,6 +234,7 @@
         QSqlDatabase db;
         SmfRelationItem * iSmsfRelationItem;
         DSMContactPckg	*iDSMContactPckgItem;
+        SmfRelationId iRelationId;
        
 };
 
--- a/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -356,7 +356,6 @@
 				qDebug()<<"Plugin responseAvailable() failed!!!, error = "<<retValue;
 				
 				// Error in parsing, sent to server
-// ToDo :- For testing:-
 				stream<<result.toString();
 				m_server->resultsAvailable(sessionId, &arr, retValue);
 			}
@@ -471,7 +470,7 @@
 
 	tableCreated = query.exec("CREATE TABLE IF NOT EXISTS pluginDetails ("
 			"pluginId TEXT PRIMARY KEY, interfaceName TEXT, serviceProvider TEXT, "
-			"description TEXT, serviceUrl TEXT, authAppId TEXT)");
+			"description TEXT, serviceUrl TEXT, authAppId TEXT, authAppName TEXT)");
 
 	// Error - table not created, Plugin Manager might not work properly
 	if(!tableCreated)
@@ -545,6 +544,9 @@
 						// get the service URL
 						QString servURL = plugin->getProviderInfo()->serviceUrl().toString();
 						
+						// get the auth application process name
+						QString authAppName = plugin->getProviderInfo()->authenticationAppName();
+								
 						// get the authentication application id
 						QString str;
 						QStringList list;
@@ -557,16 +559,19 @@
 						QSqlQuery rowInsertQuery;
 						
 						// insert into database
-						bool rowInserted = rowInsertQuery.exec(QString("INSERT INTO pluginDetails VALUES ('%1', "
-								"'%2', '%3', '%4', '%5', '%6')").arg(id).arg(intfImplemented).arg(serProv)
-								.arg(desc).arg(servURL).arg(authAppId));
+						bool rowInserted = rowInsertQuery.exec(QString("INSERT INTO pluginDetails VALUES ("
+								"'%1', '%2', '%3', '%4', '%5', '%6', '%7')").arg(id).arg(intfImplemented)
+								.arg(serProv).arg(desc).arg(servURL).arg(authAppId).arg(authAppName));
 						
 						if(rowInserted)
-							qDebug()<<QString("This Plugin's information is added to database : '%1' '%2' '%3'")
-											.arg(id).arg(intfImplemented).arg(serProv);
+							qDebug()<<QString("This Plugin's information is added to database : '%1' '%2' '%3' '%4'")
+											.arg(id).arg(intfImplemented).arg(serProv).arg(authAppId);
 						else
+							{
+							qDebug()<<"Data base insert statement returned = "<<rowInserted;
 							if(0 != query.lastError().text().size())
 								qDebug()<<"plugins data not written to database!!!, error = "<<query.lastError().text();
+							}
 				    	}
 				    else
 				    	{
@@ -594,7 +599,11 @@
 			}
 		}
 	else
-		qDebug()<<"No Smf plugins installed!!!";
+		{
+			qDebug()<<"No Smf plugins installed!!!";
+			return false;
+		}
+	
 	
 	// Close the database
 	m_pluginDataBase.close();
@@ -908,6 +917,7 @@
 	QString interfaceName;
 	QString serviceProv;
 	QString authAppId;
+	QString authAppName;
 
 	// Get all the files in the directory at a specified path(sorted)
 	QStringList newPlugins = dir.entryList(QDir::Files, QDir::Name);
@@ -1019,6 +1029,7 @@
 			QString prgm;
 			QStringList list;
 			authAppId = instance->getProviderInfo()->authenticationApp(prgm, list, QIODevice::ReadWrite);
+			authAppName = instance->getProviderInfo()->authenticationAppName();
 			}
 		
 		unload(instance);
@@ -1026,7 +1037,7 @@
 		// Also add to the database the value newListIterator and aPath
 		QSqlQuery insertRowQuery;
 		bool rowInserted = insertRowQuery.exec(QString("INSERT INTO pluginDetails VALUES "
-				"('%1', '%2', '%3', '%4')").arg(pluginId).arg(interfaceName).arg(serviceProv).arg(authAppId));
+				"('%1', '%2', '%3', '%4', '%5')").arg(pluginId).arg(interfaceName).arg(serviceProv).arg(authAppId).arg(authAppName));
 
 		 // Error
 		if (!rowInserted)
@@ -1133,7 +1144,7 @@
 	
 	// Query the database for all pluginIDs that implement the given interface
 	QSqlQuery query(QString("SELECT pluginId, interfaceName, serviceProvider, description, "
-			"serviceUrl FROM pluginDetails where interfaceName = '%1'").arg(aInterface));
+			"serviceUrl, authAppId, authAppName FROM pluginDetails where interfaceName = '%1'").arg(aInterface));
 	
 	while(query.next())
 		{
@@ -1176,6 +1187,20 @@
 		qDebug()<<"  Its url = "<<url.toString();
 #endif
 
+		// Get the auth app ID
+		QString id(query.value(5).toString());
+		prov.setAuthenticationAppId(id);
+#ifdef DETAILEDDEBUGGING
+		qDebug()<<"  Its auth app id = "<<id;
+#endif
+		
+		// Get the auth app name
+		QString name (query.value(6).toString());
+		prov.setAuthenticationAppName(name);
+#ifdef DETAILEDDEBUGGING
+		qDebug()<<"  Its auth app name = "<<name;
+#endif
+
 		aMap.insert(pluginId, prov);
 		}
 	
--- a/smf/smfservermodule/smfserver/server/smfserver.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserver.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -155,7 +155,8 @@
 	authList.clear();
 	for(int i=0;i<list.count();i++)
 		{
-		bool isAuthorized = m_credentialMngr->CheckPluginAuthentication(list[i]);
+		bool isAuthorized = false;
+		isAuthorized = m_credentialMngr->CheckPluginAuthentication(list[i]);
 		if(isAuthorized)
 			authList.append(list[i]);
 		}
@@ -220,7 +221,7 @@
 		QByteArray& qtdataFromDSM )
 	{
 	qDebug()<<"Inside SmfServer::sendToDSM()";
-	
+	SmfError err = SmfNoError;
 	DataStoreManager* dsm = DataStoreManager::getDataStoreManager();
 	
 	//Note:- deserialization and formation of user profile and social profile are done by server
@@ -250,7 +251,9 @@
 				delete contact;
 				contact = NULL;
 				}
-			SmfRelationId relnId = dsm->create(provider,contact);
+			SmfRelationId relnId;
+			relnId.clear();
+			err = dsm->create(relnId,provider,contact);
 			writeStream<<relnId;
 			if(provider != NULL)
 				delete provider;
@@ -281,11 +284,7 @@
 				provider = NULL;
 				}
 
-			QString snsName = provider->serviceName();
-			QString snsUrl = (provider->serviceUrl()).toString();
-			QString snsDesc = provider->description();
-			
-			SmfError err = dsm->associate(relnId,contact,provider);
+			err = dsm->associate(relnId,contact,provider);
 			int errInt = err;
 			writeStream<<errInt;
 			if(contact != NULL)
@@ -307,7 +306,7 @@
 				delete contact;
 				contact = NULL;
 				}
-			SmfError err = dsm->remove(relnId, contact);
+			err = dsm->remove(relnId, contact);
 			int errInt = err;
 			writeStream<<errInt;
 			if(NULL != contact)
@@ -389,7 +388,7 @@
 			{
 			SmfRelationId relnId;
 			readStream>>relnId;
-			SmfError err = dsm->deleteRelation(relnId);
+			err = dsm->deleteRelation(relnId);
 			int errInt = err;
 			writeStream<<errInt;
 			break;
@@ -397,9 +396,10 @@
 		default:
 			break;
 		}
-	return SmfNoError;
+	return err;
 	}
 
+#ifdef Q_FOR_FUTURE 
 /**
  * This slot is invoked when CM finishes the authorization of the client.
  * @param authID As it contains the session ptr, sever directly invokes the session's API to notify success
@@ -412,6 +412,7 @@
 	//TODO:- define set of smf wide error after consulting with other module owners
 	authID.session->clientAuthorizationFinished(success);
 	}
+#endif
 
 /**
  * This API is called by PM once its done with request and parsing
@@ -455,34 +456,3 @@
 	//CMclient->requestAuthExpiryNotify();
 	}
 
-#ifdef CLIENT_SERVER_TEST
-/**
- * Seems reduntant
- */
-/*void SmfServer::serviceClient(QByteArray* parsedData)
-	{
-	Q_UNUSED(parsedData)
-	}*/
-
-dummyPM::dummyPM(SmfServer* server,QObject* parent)
-: m_server(server),QObject(parent)
-	{
-	m_timer = new QTimer(this);
-	connect(m_timer, SIGNAL(timeout()), this, SLOT(responseAvailable()));
-	}
-SmfError dummyPM::createRequest ( const quint32& aSessionID, 
-		const QString& aPluginID, 
-		const SmfRequestTypeID& aOperation, 
-		QByteArray& aInputData )
-	{
-	qDebug()<<QString::number(aSessionID);
-	qDebug()<<aPluginID;
-	qDebug()<<QString::number(aOperation);
-	qDebug()<<QString::number(aInputData.size());
-	m_timer->start(1000);
-	}
-void dummyPM::responseAvailable()
-	{
-	
-	}
-#endif
--- a/smf/smfservermodule/smfserver/server/smfserver.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserver.h	Mon Oct 11 21:59:54 2010 +0530
@@ -25,10 +25,6 @@
 #include <QMap>
 #include <smfglobal.h>
 #include <smfcredmgrclientglobal.h>
-#ifdef CLIENT_SERVER_TEST
-	#include <QTimer>
-	#include <QTextStream>
-#endif
 
 #include "smfserverglobal.h"
 
@@ -136,6 +132,8 @@
 			QByteArray& qtdataFromDSM );
 	
 public slots:
+
+#ifdef Q_FOR_FUTURE
 	/**
 	 * This slot is called when Credential Manager is done with the autherizing
 	 * the client for the first time. See isClientAuthorized() and authorizeClient().
@@ -143,6 +141,7 @@
 	 * ID in case its not same as SID of the client.
 	 */
 	void clientAuthorizationFinished ( bool success, SmfClientAuthID authID );
+#endif
 	
 	/**
 	 * This slot is called as a result of trigger from Plugin manager when the 
@@ -152,26 +151,6 @@
 	 */
 	void resultsAvailable ( int requestID, QByteArray* parsedData, SmfError error );
 
-#ifdef CLIENT_SERVER_TEST
-	/**
-	 * Services the client request by sending the requested data.
-	 * Note:- This will be handled by private implementation.
-	 */
-/*	void serviceClient ( QByteArray* parsedData );*/
-		
-	/**
-	 * This slot is called for every cleanup timer expiry, in this slot, we need
-	 * to call SmfDataStoreManager's API to refresh data store
-	 */
-	void timerExpired ( ) {}
-	
-	/**
-	 * This method is called every time timerExpired slot is trigerred
-	 * Fetches the last saved requests through Transport Manager and Plugin Manager
-	 * Who will save the last request (Tranport Manager or Data Store Manager) TBD later
-	 */
-	void runSavedRequest ( ) {}
-#endif
 	/**
 	 * This slot is called when the data store updates are available as a result of
 	 * "runSavedRequest()".
@@ -201,23 +180,4 @@
 	SmfCredMgrClient* m_credentialMngr;
 	};
 
-#ifdef CLIENT_SERVER_TEST
-class dummyPM : public QObject
-	{
-		Q_OBJECT
-public:
-		dummyPM(SmfServer* server,QObject* parent=0);
-		~dummyPM();
-		SmfError createRequest ( const quint32& aSessionID, 
-				const QString& aPluginID, 
-				const SmfRequestTypeID& aOperation, 
-				QByteArray& aInputData );
-public slots:
-	void responseAvailable();
-private:
-		QTimer* m_timer;
-		SmfServer* m_server;
-	};
-#endif
-
 #endif // SMFSERVER_H
--- a/smf/smfservermodule/smfserver/server/smfserverqt_p.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserverqt_p.h	Mon Oct 11 21:59:54 2010 +0530
@@ -35,7 +35,10 @@
     SmfServerQt(SmfServer* wrapper);
     ~SmfServerQt();
 
-    inline SmfServer *wrapper() const;
+    inline SmfServer *SmfServerQt::wrapper() const
+    {
+        return m_generic;
+    }
 
     bool start();
     int sessionListCount() const;
@@ -53,17 +56,9 @@
     SmfServer *m_generic;
     QLocalServer *m_server;
     QList<SmfServerQtSession*> m_sessions;
-};
-
-inline SmfServer *SmfServerQt::wrapper() const
-{
-    return m_generic;
-}
-    
-private:
     SmfServerQt *iServer;
     QLocalSocket *iClientConnection;
-
 	};
 
+
 #endif // SMFSERVERQT_P_H
--- a/smf/smfservermodule/smfserver/server/smfserversymbian.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserversymbian.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -132,10 +132,10 @@
 
 
 SmfServerSymbianSession::SmfServerSymbianSession(SmfServerSymbian* aServer):
-			iServer(aServer),iPtrToBuf(NULL,0) ,
-			iIntfNameSymbian8(NULL,0), iProviderSymbian8(NULL,0),
-			iIntfNameSymbian(NULL,0) ,iXtraDataPtr8(NULL,0),
-			iPtrToDataForClient(NULL,0) ,iPtr8DataForDSM(NULL,0),iPtr8DataFromDSM(NULL,0)  
+			iServer(aServer), iIntfNameSymbian8(NULL,0),
+			iProviderSymbian8(NULL,0), iXtraDataPtr8(NULL,0), 
+			iPtr8DataForDSM(NULL,0), iPtr8DataFromDSM(NULL,0), 
+			iPtrToDataForClient(NULL,0)  
 	{
 	iServer->iSessionCount++;
 	}
@@ -147,6 +147,7 @@
 	iServer->iSessionCount--;
 	}
 
+#ifdef Q_FOR_FUTURE 
 void SmfServerSymbianSession::clientAuthorizationFinished(bool success)
 	{
 	qDebug()<<"Inside SmfServerSymbianSession::clientAuthorizationFinished() = "<<success;
@@ -162,6 +163,7 @@
 		HandleClientMessageL(iMessage);
 		}
 	}
+#endif
 
 void SmfServerSymbianSession::resultsAvailable(QByteArray* parsedData,SmfError error)
 	{
@@ -195,10 +197,13 @@
 	qDebug()<<"Inside SmfServerSymbianSession::ServiceL() = "<<iMessage.Function();
 	iMessage = aMessage;
 
+
+#ifdef Q_FOR_FUTURE 
 	//construct the client auth id
 	SmfClientAuthID clientAuthID;
 	clientAuthID.pid = aMessage.SecureId();
 	clientAuthID.session = this;
+#endif
 	//TODO:- No client pid checking?No capability? So why symbian client-server?
 	HandleClientMessageL(iMessage);
 	}
@@ -216,7 +221,7 @@
 	 *so it seems PM needs to provide two overloaded getPlugins API But for every client intf instanciation
 	 *we would execute the same things twice.
 	 *TODO:- to be changed after GetServices returns SmfProvider+pluginID 
-	 * 
+	 * 
 	 */
 	if( (SmfGetService == aMessage.Function()) 			||
 		(SmfPostGetMaxCharsInPost == aMessage.Function())	||
@@ -379,6 +384,10 @@
 			iPtr8DataFromDSM.Set(iData8FromDSM->Des());
 			iPtr8DataFromDSM.Copy(reinterpret_cast<const TText8*>(qtdataFromDSM.constData()),qtdataFromDSM.length());
 			TInt writeErr = aMessage.Write(1,iPtr8DataFromDSM);
+			iDSMErr.Zero();
+			TInt errInt = dsmErr;
+			iDSMErr.AppendNum(errInt);
+			writeErr = aMessage.Write(2,iDSMErr);
 			}
 		}
 	else
--- a/smf/smfservermodule/smfserver/server/smfserversymbian_p.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserversymbian_p.h	Mon Oct 11 21:59:54 2010 +0530
@@ -204,11 +204,13 @@
      */
 	void resultsAvailable(QByteArray* parsedData,SmfError error);
 	
+#ifdef Q_FOR_FUTURE 
 	/**
 	 * Called by the SmfServer when client authorization finishes.
 	 * @param success success of the authorization
 	 */
 	void clientAuthorizationFinished(bool success);
+#endif
 	
 protected:
     //TMessageParams ReadMessageAndRetrieveParams (const RMessage2 & aMessage);
@@ -257,10 +259,7 @@
 	//this interface id will be provided by Smf client, will map Smf Client 
 	// interface hierarchy
 	SmfInterfaceID iInterfaceID;
-	TPtr iIntfNameSymbian;
 	TPtr8 iIntfNameSymbian8;
-	
-	TBuf8<125> iInterfaceNametbuf;
 	TPtr8 iProviderSymbian8;
 	TPtr8 iXtraDataPtr8;
 	HBufC8* iData8ForDSM;
@@ -269,7 +268,6 @@
 	TPtr8 iPtr8DataFromDSM;
 	TBuf<100> iDSMErr;
 	HBufC8* iProviderBuf8;
-	HBufC8* iXtraDataBuf8;
 	HBufC8* iIntfNameBuf8;
 	QMap<SmfPluginID,SmfProvider> iPluginIDMap;
 	QList<SmfPluginID> iPluginIDList;
@@ -279,16 +277,14 @@
 	 * To keep track of the requests sent by this session,not required for now, as only one
 	 * outstanding request per session is required
 	 */
-	RArray<RMessage2> iRequestList;
+	//RArray<RMessage2> iRequestList;
 	/**
 	 * Last request opcode
 	 */
 	TInt iLastRequest;
-	TPtr8 iPtrToBuf;
 	TPtr8 iPtrToDataForClient;
 	HBufC8* iDataForClient;
 	QByteArray resultData;
-	QByteArray xtraData;
 	};
 
 #endif // SMFSERVERSYMBIAN_H
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -48,7 +48,7 @@
 
 void SmfSettingsHandler::SetRoamingStatusforDataTransfer(QString & aStatus)
 {
-	m_repository->SetAuthExpirationValue(aStatus);
+	m_repository->SetRoamingStatusforDataTransfer(aStatus);
 }
 
 QString SmfSettingsHandler::GetMaxDataTransferLimit() const
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler_qt.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler_qt.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -6,7 +6,7 @@
  */
 
 #include "smfsettingshandler_qt.h"
-#include "SettingsConstants.h"
+#include <SettingsConstants.h>
 
 SmfSettingsRepositoryQt::SmfSettingsRepositoryQt(QObject *parent)
     {
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -38,7 +38,7 @@
     }
 CSettingsRepository::CSettingsRepository()
     {
-
+	iRepository = NULL;
     }
 
 CSettingsRepository::~CSettingsRepository()
--- a/smf/smfservermodule/smfserver/smfplugins/smfproviderbase.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfproviderbase.h	Mon Oct 11 21:59:54 2010 +0530
@@ -113,6 +113,12 @@
 			QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const = 0;
 	
 	/**
+	 * Method to get the authentication application process name
+	 * @return The authentication application process name (eg: "FlickrAuthApp.exe")
+	 */
+	virtual QString authenticationAppName( ) const = 0;
+	
+	/**
 	 * Method to get the unique registration ID provided by the 
 	 * Smf for authorised plugins
 	 * @return The unique registration ID/token provided by the Smf for 
--- a/smf/smfservermodule/smfserver/smfserver.loc	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T13:10:10
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfservermodule/smfserver/smfserver.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T13:10:10
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfservermodule/smfserver/smfserver_reg.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T13:10:10
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfservermodule/smfserver/transportmgr/smftransportmanagerutil.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/smfserver/transportmgr/smftransportmanagerutil.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -600,7 +600,7 @@
 			if((QString("1f") == QString(firstByte.toHex())) && (QString("8b") == QString(secondByte.toHex())) )
 				{
 				gzipEncoded = true;
-				qDebug()<<"Response is gzip encoded!!!";
+				qDebug()<<"Response is gzip encoded!!! = "<<gzipEncoded;
 				arr = inflateResponse(response, error);
 				if(!arr)
 					trResult = SmfTransportOpGzipError;
--- a/smf/smfservermodule/util/qjson/lib/qjson.prl	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/util/qjson/lib/qjson.prl	Mon Oct 11 21:59:54 2010 +0530
@@ -1,4 +1,4 @@
-QMAKE_PRL_BUILD_DIR = D:/ARMv5/sfmerged/sf/smf/smfservermodule/util/qjson/src
+QMAKE_PRL_BUILD_DIR = E:/CarbideWorkspace/2010Sep28/smfrepo/smf/smfservermodule/util/qjson/src
 QMAKE_PRO_INPUT = src.pro
 QMAKE_PRL_TARGET = qjson
 QMAKE_PRL_CONFIG = include_source_dir lex yacc warn_on debug uic resources qt warn_on incremental debug shared stl exceptions rtti def_files create_prl dll shared qtmain moc thread
--- a/smf/smfservermodule/util/qjson/src/bwins/qjsonu.def	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfservermodule/util/qjson/src/bwins/qjsonu.def	Mon Oct 11 21:59:54 2010 +0530
@@ -1,46 +1,46 @@
 EXPORTS
-	??0Parser@QJson@@QAE@XZ @ 1 NONAME ; QJson::Parser::Parser(void)
-	??0ParserRunnable@QJson@@QAE@PAVQObject@@@Z @ 2 NONAME ; QJson::ParserRunnable::ParserRunnable(class QObject *)
-	??0QObjectHelper@QJson@@QAE@XZ @ 3 NONAME ; QJson::QObjectHelper::QObjectHelper(void)
-	??0Serializer@QJson@@QAE@XZ @ 4 NONAME ; QJson::Serializer::Serializer(void)
-	??0SerializerRunnable@QJson@@QAE@PAVQObject@@@Z @ 5 NONAME ; QJson::SerializerRunnable::SerializerRunnable(class QObject *)
-	??1Parser@QJson@@QAE@XZ @ 6 NONAME ; QJson::Parser::~Parser(void)
-	??1ParserRunnable@QJson@@UAE@XZ @ 7 NONAME ; QJson::ParserRunnable::~ParserRunnable(void)
-	??1QObjectHelper@QJson@@QAE@XZ @ 8 NONAME ; QJson::QObjectHelper::~QObjectHelper(void)
-	??1Serializer@QJson@@QAE@XZ @ 9 NONAME ; QJson::Serializer::~Serializer(void)
-	??1SerializerRunnable@QJson@@UAE@XZ @ 10 NONAME ; QJson::SerializerRunnable::~SerializerRunnable(void)
-	??_EParserRunnable@QJson@@UAE@I@Z @ 11 NONAME ; QJson::ParserRunnable::~ParserRunnable(unsigned int)
+	?tr@SerializerRunnable@QJson@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString QJson::SerializerRunnable::tr(char const *, char const *)
+	?getStaticMetaObject@SerializerRunnable@QJson@@SAABUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const & QJson::SerializerRunnable::getStaticMetaObject(void)
+	?trUtf8@ParserRunnable@QJson@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString QJson::ParserRunnable::trUtf8(char const *, char const *)
+	?tr@ParserRunnable@QJson@@SA?AVQString@@PBD0@Z @ 4 NONAME ; class QString QJson::ParserRunnable::tr(char const *, char const *)
+	?getStaticMetaObject@ParserRunnable@QJson@@SAABUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const & QJson::ParserRunnable::getStaticMetaObject(void)
+	?errorLine@Parser@QJson@@QBEHXZ @ 6 NONAME ; int QJson::Parser::errorLine(void) const
+	?setJsonObject@SerializerRunnable@QJson@@QAEXABVQVariant@@@Z @ 7 NONAME ; void QJson::SerializerRunnable::setJsonObject(class QVariant const &)
+	??_EParserRunnable@QJson@@UAE@I@Z @ 8 NONAME ; QJson::ParserRunnable::~ParserRunnable(unsigned int)
+	??0QObjectHelper@QJson@@QAE@XZ @ 9 NONAME ; QJson::QObjectHelper::QObjectHelper(void)
+	?qt_metacast@ParserRunnable@QJson@@UAEPAXPBD@Z @ 10 NONAME ; void * QJson::ParserRunnable::qt_metacast(char const *)
+	?parse@Parser@QJson@@QAE?AVQVariant@@ABVQByteArray@@PA_N@Z @ 11 NONAME ; class QVariant QJson::Parser::parse(class QByteArray const &, bool *)
 	??_ESerializerRunnable@QJson@@UAE@I@Z @ 12 NONAME ; QJson::SerializerRunnable::~SerializerRunnable(unsigned int)
-	?errorLine@Parser@QJson@@QBEHXZ @ 13 NONAME ; int QJson::Parser::errorLine(void) const
-	?errorString@Parser@QJson@@QBE?AVQString@@XZ @ 14 NONAME ; class QString QJson::Parser::errorString(void) const
-	?getStaticMetaObject@ParserRunnable@QJson@@SAABUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const & QJson::ParserRunnable::getStaticMetaObject(void)
-	?getStaticMetaObject@SerializerRunnable@QJson@@SAABUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const & QJson::SerializerRunnable::getStaticMetaObject(void)
-	?metaObject@ParserRunnable@QJson@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * QJson::ParserRunnable::metaObject(void) const
-	?metaObject@SerializerRunnable@QJson@@UBEPBUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const * QJson::SerializerRunnable::metaObject(void) const
-	?parse@Parser@QJson@@QAE?AVQVariant@@ABVQByteArray@@PA_N@Z @ 19 NONAME ; class QVariant QJson::Parser::parse(class QByteArray const &, bool *)
-	?parse@Parser@QJson@@QAE?AVQVariant@@PAVQIODevice@@PA_N@Z @ 20 NONAME ; class QVariant QJson::Parser::parse(class QIODevice *, bool *)
-	?parsingFinished@ParserRunnable@QJson@@IAEXABVQVariant@@_NABVQString@@@Z @ 21 NONAME ; void QJson::ParserRunnable::parsingFinished(class QVariant const &, bool, class QString const &)
-	?parsingFinished@SerializerRunnable@QJson@@IAEXABVQByteArray@@_NABVQString@@@Z @ 22 NONAME ; void QJson::SerializerRunnable::parsingFinished(class QByteArray const &, bool, class QString const &)
-	?qobject2qvariant@QObjectHelper@QJson@@SA?AV?$QMap@VQString@@VQVariant@@@@PBVQObject@@ABVQStringList@@@Z @ 23 NONAME ; class QMap<class QString, class QVariant> QJson::QObjectHelper::qobject2qvariant(class QObject const *, class QStringList const &)
-	?qt_metacall@ParserRunnable@QJson@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 24 NONAME ; int QJson::ParserRunnable::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@SerializerRunnable@QJson@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int QJson::SerializerRunnable::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@ParserRunnable@QJson@@UAEPAXPBD@Z @ 26 NONAME ; void * QJson::ParserRunnable::qt_metacast(char const *)
-	?qt_metacast@SerializerRunnable@QJson@@UAEPAXPBD@Z @ 27 NONAME ; void * QJson::SerializerRunnable::qt_metacast(char const *)
-	?qvariant2qobject@QObjectHelper@QJson@@SAXABV?$QMap@VQString@@VQVariant@@@@PAVQObject@@@Z @ 28 NONAME ; void QJson::QObjectHelper::qvariant2qobject(class QMap<class QString, class QVariant> const &, class QObject *)
-	?run@ParserRunnable@QJson@@UAEXXZ @ 29 NONAME ; void QJson::ParserRunnable::run(void)
-	?run@SerializerRunnable@QJson@@UAEXXZ @ 30 NONAME ; void QJson::SerializerRunnable::run(void)
-	?serialize@Serializer@QJson@@QAE?AVQByteArray@@ABVQVariant@@@Z @ 31 NONAME ; class QByteArray QJson::Serializer::serialize(class QVariant const &)
-	?serialize@Serializer@QJson@@QAEXABVQVariant@@PAVQIODevice@@PA_N@Z @ 32 NONAME ; void QJson::Serializer::serialize(class QVariant const &, class QIODevice *, bool *)
-	?setData@ParserRunnable@QJson@@QAEXABVQByteArray@@@Z @ 33 NONAME ; void QJson::ParserRunnable::setData(class QByteArray const &)
-	?setJsonObject@SerializerRunnable@QJson@@QAEXABVQVariant@@@Z @ 34 NONAME ; void QJson::SerializerRunnable::setJsonObject(class QVariant const &)
-	?tr@ParserRunnable@QJson@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString QJson::ParserRunnable::tr(char const *, char const *)
-	?tr@ParserRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 36 NONAME ; class QString QJson::ParserRunnable::tr(char const *, char const *, int)
-	?tr@SerializerRunnable@QJson@@SA?AVQString@@PBD0@Z @ 37 NONAME ; class QString QJson::SerializerRunnable::tr(char const *, char const *)
-	?tr@SerializerRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 38 NONAME ; class QString QJson::SerializerRunnable::tr(char const *, char const *, int)
-	?trUtf8@ParserRunnable@QJson@@SA?AVQString@@PBD0@Z @ 39 NONAME ; class QString QJson::ParserRunnable::trUtf8(char const *, char const *)
-	?trUtf8@ParserRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString QJson::ParserRunnable::trUtf8(char const *, char const *, int)
-	?trUtf8@SerializerRunnable@QJson@@SA?AVQString@@PBD0@Z @ 41 NONAME ; class QString QJson::SerializerRunnable::trUtf8(char const *, char const *)
+	?qt_metacast@SerializerRunnable@QJson@@UAEPAXPBD@Z @ 13 NONAME ; void * QJson::SerializerRunnable::qt_metacast(char const *)
+	?qt_metacall@SerializerRunnable@QJson@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 14 NONAME ; int QJson::SerializerRunnable::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@SerializerRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString QJson::SerializerRunnable::tr(char const *, char const *, int)
+	?parsingFinished@SerializerRunnable@QJson@@IAEXABVQByteArray@@_NABVQString@@@Z @ 16 NONAME ; void QJson::SerializerRunnable::parsingFinished(class QByteArray const &, bool, class QString const &)
+	??1Serializer@QJson@@QAE@XZ @ 17 NONAME ; QJson::Serializer::~Serializer(void)
+	?serialize@Serializer@QJson@@QAEXABVQVariant@@PAVQIODevice@@PA_N@Z @ 18 NONAME ; void QJson::Serializer::serialize(class QVariant const &, class QIODevice *, bool *)
+	?run@SerializerRunnable@QJson@@UAEXXZ @ 19 NONAME ; void QJson::SerializerRunnable::run(void)
+	?metaObject@ParserRunnable@QJson@@UBEPBUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const * QJson::ParserRunnable::metaObject(void) const
+	??0SerializerRunnable@QJson@@QAE@PAVQObject@@@Z @ 21 NONAME ; QJson::SerializerRunnable::SerializerRunnable(class QObject *)
+	??0Parser@QJson@@QAE@XZ @ 22 NONAME ; QJson::Parser::Parser(void)
+	?trUtf8@SerializerRunnable@QJson@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString QJson::SerializerRunnable::trUtf8(char const *, char const *)
+	?staticMetaObject@ParserRunnable@QJson@@2UQMetaObject@@B @ 24 NONAME ; struct QMetaObject const QJson::ParserRunnable::staticMetaObject
+	?qobject2qvariant@QObjectHelper@QJson@@SA?AV?$QMap@VQString@@VQVariant@@@@PBVQObject@@ABVQStringList@@@Z @ 25 NONAME ; class QMap<class QString, class QVariant> QJson::QObjectHelper::qobject2qvariant(class QObject const *, class QStringList const &)
+	?metaObject@SerializerRunnable@QJson@@UBEPBUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const * QJson::SerializerRunnable::metaObject(void) const
+	?setData@ParserRunnable@QJson@@QAEXABVQByteArray@@@Z @ 27 NONAME ; void QJson::ParserRunnable::setData(class QByteArray const &)
+	??1QObjectHelper@QJson@@QAE@XZ @ 28 NONAME ; QJson::QObjectHelper::~QObjectHelper(void)
+	??1ParserRunnable@QJson@@UAE@XZ @ 29 NONAME ; QJson::ParserRunnable::~ParserRunnable(void)
+	?parsingFinished@ParserRunnable@QJson@@IAEXABVQVariant@@_NABVQString@@@Z @ 30 NONAME ; void QJson::ParserRunnable::parsingFinished(class QVariant const &, bool, class QString const &)
+	?tr@ParserRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString QJson::ParserRunnable::tr(char const *, char const *, int)
+	?staticMetaObject@SerializerRunnable@QJson@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const QJson::SerializerRunnable::staticMetaObject
+	??1Parser@QJson@@QAE@XZ @ 33 NONAME ; QJson::Parser::~Parser(void)
+	?serialize@Serializer@QJson@@QAE?AVQByteArray@@ABVQVariant@@@Z @ 34 NONAME ; class QByteArray QJson::Serializer::serialize(class QVariant const &)
+	?trUtf8@ParserRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString QJson::ParserRunnable::trUtf8(char const *, char const *, int)
+	??0ParserRunnable@QJson@@QAE@PAVQObject@@@Z @ 36 NONAME ; QJson::ParserRunnable::ParserRunnable(class QObject *)
+	??1SerializerRunnable@QJson@@UAE@XZ @ 37 NONAME ; QJson::SerializerRunnable::~SerializerRunnable(void)
+	?parse@Parser@QJson@@QAE?AVQVariant@@PAVQIODevice@@PA_N@Z @ 38 NONAME ; class QVariant QJson::Parser::parse(class QIODevice *, bool *)
+	?qt_metacall@ParserRunnable@QJson@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 39 NONAME ; int QJson::ParserRunnable::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qvariant2qobject@QObjectHelper@QJson@@SAXABV?$QMap@VQString@@VQVariant@@@@PAVQObject@@@Z @ 40 NONAME ; void QJson::QObjectHelper::qvariant2qobject(class QMap<class QString, class QVariant> const &, class QObject *)
+	?run@ParserRunnable@QJson@@UAEXXZ @ 41 NONAME ; void QJson::ParserRunnable::run(void)
 	?trUtf8@SerializerRunnable@QJson@@SA?AVQString@@PBD0H@Z @ 42 NONAME ; class QString QJson::SerializerRunnable::trUtf8(char const *, char const *, int)
-	?staticMetaObject@SerializerRunnable@QJson@@2UQMetaObject@@B @ 43 NONAME ; struct QMetaObject const QJson::SerializerRunnable::staticMetaObject
-	?staticMetaObject@ParserRunnable@QJson@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const QJson::ParserRunnable::staticMetaObject
+	?errorString@Parser@QJson@@QBE?AVQString@@XZ @ 43 NONAME ; class QString QJson::Parser::errorString(void) const
+	??0Serializer@QJson@@QAE@XZ @ 44 NONAME ; QJson::Serializer::Serializer(void)
 
--- a/smf/smfsettingsui/SMFSettings.loc	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings.loc	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:13
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfsettingsui/SMFSettings.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:13
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfsettingsui/SMFSettings_reg.rss	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings_reg.rss	Mon Oct 11 21:59:54 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-09-28T11:58:13
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfsettingsui/ui_SMFSettings.h	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfsettingsui/ui_SMFSettings.h	Mon Oct 11 21:59:54 2010 +0530
@@ -1,7 +1,7 @@
 /********************************************************************************
 ** Form generated from reading UI file 'SMFSettings.ui'
 **
-** Created: Fri Jul 30 14:06:09 2010
+** Created: Mon Sep 27 15:43:56 2010
 **      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!