Revision: 201019
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 12:58:35 +0300
changeset 37 6e7b00453237
parent 33 8110bf1194d1
child 38 cc9e67f5f0fc
child 42 d17dc5398051
Revision: 201019 Kit: 2010121
appinstall_plat/sifui_api/bwins/sifuiu.def
appinstall_plat/sifui_api/eabi/sifuiu.def
appinstall_plat/sifui_api/group/bld.inf
appinstall_plat/sifui_api/group/sifui.mmp
appinstall_plat/sifui_api/inc/sifui.h
appinstall_plat/sifui_api/inc/sifuiappinfo.h
appinstall_plat/sifui_api/inc/sifuicertificateinfo.h
appinstall_plat/sifui_api/inc/sifuidefs.h
appinstall_plat/sifui_api/inc/sifuiprivate.h
appinstall_plat/sifui_api/src/sifui.cpp
appinstall_plat/sifui_api/src/sifuiappinfo.cpp
appinstall_plat/sifui_api/src/sifuicertificateinfo.cpp
appinstall_plat/sifui_api/src/sifuiprivate.cpp
appinstall_plat/sifui_api/tsrc/src/sifuitest.cpp
appinstaller/AppinstUi/Daemon/Inc/DialogWrapper.h
appinstaller/AppinstUi/Daemon/Inc/daemoninstaller.h
appinstaller/AppinstUi/Daemon/Inc/uninstaller.h
appinstaller/AppinstUi/Daemon/Src/DialogWrapper.cpp
appinstaller/AppinstUi/Daemon/Src/SilentLauncher.cpp
appinstaller/AppinstUi/Daemon/Src/daemoninstaller.cpp
appinstaller/AppinstUi/Daemon/Src/dialogwatcher.cpp
appinstaller/AppinstUi/Daemon/Src/main.cpp
appinstaller/AppinstUi/Daemon/Src/previouslyInstalledAppsCache.cpp
appinstaller/AppinstUi/Daemon/Src/uninstaller.cpp
appinstaller/AppinstUi/appinstui.pro
appinstaller/AppinstUi/group/daemon.mmp
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificatedetails.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificateinfo.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h
appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogtitlewidget.h
appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidevicedialogplugin.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificatedetails.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificateinfo.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp
appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp
appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h
appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp
appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicator.h
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicatorplugin.h
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/rom/sisxsilentinstallindicatorplugin.iby
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicator.cpp
appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicatorplugin.cpp
appinstaller/AppinstUi/startuplistupdater/group/startuplistupdater.mmp
appinstaller/AppinstUi/startuplistupdater/inc/startuplistupdater.h
appinstaller/AppinstUi/startuplistupdater/src/startuplistupdater.cpp
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/conf/mt_startuplistupdater.cfg
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_compile_tests.bat
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_instrument_code.bat
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_run_tests.bat
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data/mmc/teststartlistembedded.sisx
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data/mmc/teststartlistembedded_winscw.sisx
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/bld.inf
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/datafile.txt
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/doall.bat
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.cpp
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.h
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.mmp
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.pkg
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.rss
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded_main.pkg
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded_main_winscw.pkg
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded_winscw.pkg
appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/group/bld.inf
iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp
iaupdate/IAD/ui/src/iaupdatestarter.cpp
iaupdate/rom/iaupdateresources.iby
installationservices/swi/group/bld.inf
installationservices/swi/inc/swi.iby
installationservices/swi/inc/swidaemon.iby
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_01.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_02.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_03.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_04.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_05.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/pu_int_nr_option_01.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_01.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_04.pkg
installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_06.pkg
installationservices/switestfw/test/autotesting/testMakesis.pl
secureswitools/openssllib/import/bin/deb/distribution.policy
secureswitools/openssllib/import/bin/linux-x86/deb/distribution.policy
secureswitools/openssllib/import/bin/linux-x86/rel/distribution.policy
secureswitools/openssllib/import/bin/rel/distribution.policy
secureswitools/swisistools/group/bld.inf
secureswitools/swisistools/source/makesislib/packageparser.cpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinFileOutputStream.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinMemOutputStream.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/CharTypeTables.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/DGXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ElemStack.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/EndOfEntityException.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IANAEncodings.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerArrayImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ReaderMgr.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/SGXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ValidationContextImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttrListImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttributesImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLInternalErrorHandler.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLReader.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScannerResolver.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSAXMLScanner.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSObjectFactory.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializable.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializationException.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializeEngine.hpp
secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XTemplateSerializer.hpp
secureswitools/swisistools/test/testmakesis/largelanguagecodes.pkg
--- a/appinstall_plat/sifui_api/bwins/sifuiu.def	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/bwins/sifuiu.def	Thu May 27 12:58:35 2010 +0300
@@ -1,15 +1,29 @@
 EXPORTS
-	?ShowCompleteL@CSifUi@@QAEXXZ @ 1 NONAME ; void CSifUi::ShowCompleteL(void)
-	?ShowConfirmationL@CSifUi@@QAEHABVCAppInfo@Swi@@HPBVCApaMaskedBitmap@@@Z @ 2 NONAME ; int CSifUi::ShowConfirmationL(class Swi::CAppInfo const &, int, class CApaMaskedBitmap const *)
-	?SetMemorySelectionL@CSifUi@@QAEXABV?$RArray@H@@@Z @ 3 NONAME ; void CSifUi::SetMemorySelectionL(class RArray<int> const &)
-	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCCertificateInfo@Swi@@@@@Z @ 4 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class Swi::CCertificateInfo> const &)
-	?Mode@CSifUi@@QAE?AW4TMode@1@XZ @ 5 NONAME ; enum CSifUi::TMode CSifUi::Mode(void)
-	?IncreaseProgressBarValueL@CSifUi@@QAEXH@Z @ 6 NONAME ; void CSifUi::IncreaseProgressBarValueL(int)
-	?ShowFailedL@CSifUi@@QAEXH@Z @ 7 NONAME ; void CSifUi::ShowFailedL(int)
-	?SetMode@CSifUi@@QAEXW4TMode@1@@Z @ 8 NONAME ; void CSifUi::SetMode(enum CSifUi::TMode)
-	?ShowFailedL@CSifUi@@QAEXHABVTDesC16@@0@Z @ 9 NONAME ; void CSifUi::ShowFailedL(int, class TDesC16 const &, class TDesC16 const &)
-	?SelectedDrive@CSifUi@@QAEHAAH@Z @ 10 NONAME ; int CSifUi::SelectedDrive(int &)
-	?ShowProgressL@CSifUi@@QAEXABVCAppInfo@Swi@@HH@Z @ 11 NONAME ; void CSifUi::ShowProgressL(class Swi::CAppInfo const &, int, int)
-	?NewL@CSifUi@@SAPAV1@XZ @ 12 NONAME ; class CSifUi * CSifUi::NewL(void)
-	?NewLC@CSifUi@@SAPAV1@XZ @ 13 NONAME ; class CSifUi * CSifUi::NewLC(void)
+	?NewL@CSifUiAppInfo@@SAPAV1@ABVTDesC16@@0ABVTVersion@@HPBVCApaMaskedBitmap@@@Z @ 1 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewL(class TDesC16 const &, class TDesC16 const &, class TVersion const &, int, class CApaMaskedBitmap const *)
+	?NewL@CSifUiCertificateInfo@@SAPAV1@AAVCCertificateInfo@Swi@@@Z @ 2 NONAME ; class CSifUiCertificateInfo * CSifUiCertificateInfo::NewL(class Swi::CCertificateInfo &)
+	?ShowConfirmationL@CSifUi@@QAEHABVCSifUiAppInfo@@@Z @ 3 NONAME ; int CSifUi::ShowConfirmationL(class CSifUiAppInfo const &)
+	?ShowCompleteL@CSifUi@@QAEXXZ @ 4 NONAME ; void CSifUi::ShowCompleteL(void)
+	?ExternalizeL@CSifUiAppInfo@@QBEXAAVRWriteStream@@@Z @ 5 NONAME ; void CSifUiAppInfo::ExternalizeL(class RWriteStream &) const
+	?ShowProgressL@CSifUi@@QAEXABVCSifUiAppInfo@@H@Z @ 6 NONAME ; void CSifUi::ShowProgressL(class CSifUiAppInfo const &, int)
+	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCCertificateInfo@Swi@@@@@Z @ 7 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class Swi::CCertificateInfo> const &)
+	?NewLC@CSifUiCertificateInfo@@SAPAV1@AAVCCertificateInfo@Swi@@@Z @ 8 NONAME ; class CSifUiCertificateInfo * CSifUiCertificateInfo::NewLC(class Swi::CCertificateInfo &)
+	?Bitmaps@CSifUiAppInfo@@QBEPBVCApaMaskedBitmap@@XZ @ 9 NONAME ; class CApaMaskedBitmap const * CSifUiAppInfo::Bitmaps(void) const
+	?IncreaseProgressBarValueL@CSifUi@@QAEXH@Z @ 10 NONAME ; void CSifUi::IncreaseProgressBarValueL(int)
+	?ShowFailedL@CSifUi@@QAEXHABVTDesC16@@0@Z @ 11 NONAME ; void CSifUi::ShowFailedL(int, class TDesC16 const &, class TDesC16 const &)
+	?ExternalizeL@CSifUiCertificateInfo@@QBEXAAVRWriteStream@@@Z @ 12 NONAME ; void CSifUiCertificateInfo::ExternalizeL(class RWriteStream &) const
+	?Name@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 13 NONAME ; class TDesC16 const & CSifUiAppInfo::Name(void) const
+	?NewL@CSifUi@@SAPAV1@XZ @ 14 NONAME ; class CSifUi * CSifUi::NewL(void)
+	?Version@CSifUiAppInfo@@QBEABVTVersion@@XZ @ 15 NONAME ; class TVersion const & CSifUiAppInfo::Version(void) const
+	?SetCertificateInfoL@CSifUi@@QAEXABV?$RPointerArray@VCSifUiCertificateInfo@@@@@Z @ 16 NONAME ; void CSifUi::SetCertificateInfoL(class RPointerArray<class CSifUiCertificateInfo> const &)
+	?Size@CSifUiAppInfo@@QBEHXZ @ 17 NONAME ; int CSifUiAppInfo::Size(void) const
+	?ShowConfirmationL@CSifUi@@QAEHABVCAppInfo@Swi@@HPBVCApaMaskedBitmap@@@Z @ 18 NONAME ; int CSifUi::ShowConfirmationL(class Swi::CAppInfo const &, int, class CApaMaskedBitmap const *)
+	?NewLC@CSifUiAppInfo@@SAPAV1@ABVTDesC16@@0ABVTVersion@@HPBVCApaMaskedBitmap@@@Z @ 19 NONAME ; class CSifUiAppInfo * CSifUiAppInfo::NewLC(class TDesC16 const &, class TDesC16 const &, class TVersion const &, int, class CApaMaskedBitmap const *)
+	?SetMemorySelectionL@CSifUi@@QAEXABV?$RArray@H@@@Z @ 20 NONAME ; void CSifUi::SetMemorySelectionL(class RArray<int> const &)
+	?Vendor@CSifUiAppInfo@@QBEABVTDesC16@@XZ @ 21 NONAME ; class TDesC16 const & CSifUiAppInfo::Vendor(void) const
+	?Mode@CSifUi@@QAE?AW4TMode@1@XZ @ 22 NONAME ; enum CSifUi::TMode CSifUi::Mode(void)
+	?ShowFailedL@CSifUi@@QAEXH@Z @ 23 NONAME ; void CSifUi::ShowFailedL(int)
+	?SetMode@CSifUi@@QAEXW4TMode@1@@Z @ 24 NONAME ; void CSifUi::SetMode(enum CSifUi::TMode)
+	?SelectedDrive@CSifUi@@QAEHAAH@Z @ 25 NONAME ; int CSifUi::SelectedDrive(int &)
+	?ShowProgressL@CSifUi@@QAEXABVCAppInfo@Swi@@HH@Z @ 26 NONAME ; void CSifUi::ShowProgressL(class Swi::CAppInfo const &, int, int)
+	?NewLC@CSifUi@@SAPAV1@XZ @ 27 NONAME ; class CSifUi * CSifUi::NewLC(void)
 
--- a/appinstall_plat/sifui_api/eabi/sifuiu.def	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/eabi/sifuiu.def	Thu May 27 12:58:35 2010 +0300
@@ -1,19 +1,37 @@
 EXPORTS
-	_ZN6CSifUi11ShowFailedLEi @ 1 NONAME
-	_ZN6CSifUi11ShowFailedLEiRK7TDesC16S2_ @ 2 NONAME
-	_ZN6CSifUi13SelectedDriveERi @ 3 NONAME
-	_ZN6CSifUi13ShowCompleteLEv @ 4 NONAME
-	_ZN6CSifUi13ShowProgressLERKN3Swi8CAppInfoEii @ 5 NONAME
-	_ZN6CSifUi17ShowConfirmationLERKN3Swi8CAppInfoEiPK16CApaMaskedBitmap @ 6 NONAME
-	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayIN3Swi16CCertificateInfoEE @ 7 NONAME
-	_ZN6CSifUi19SetMemorySelectionLERK6RArrayIiE @ 8 NONAME
-	_ZN6CSifUi25IncreaseProgressBarValueLEi @ 9 NONAME
-	_ZN6CSifUi4ModeEv @ 10 NONAME
-	_ZN6CSifUi4NewLEv @ 11 NONAME
-	_ZN6CSifUi5NewLCEv @ 12 NONAME
-	_ZN6CSifUi7SetModeENS_5TModeE @ 13 NONAME
-	_ZTI13CSifUiPrivate @ 14 NONAME
-	_ZTI6CSifUi @ 15 NONAME
-	_ZTV13CSifUiPrivate @ 16 NONAME
-	_ZTV6CSifUi @ 17 NONAME
+	_ZN13CSifUiAppInfo4NewLERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 1 NONAME
+	_ZN13CSifUiAppInfo5NewLCERK7TDesC16S2_RK8TVersioniPK16CApaMaskedBitmap @ 2 NONAME
+	_ZN21CSifUiCertificateInfo4NewLERN3Swi16CCertificateInfoE @ 3 NONAME
+	_ZN21CSifUiCertificateInfo5NewLCERN3Swi16CCertificateInfoE @ 4 NONAME
+	_ZN6CSifUi11ShowFailedLEi @ 5 NONAME
+	_ZN6CSifUi11ShowFailedLEiRK7TDesC16S2_ @ 6 NONAME
+	_ZN6CSifUi13SelectedDriveERi @ 7 NONAME
+	_ZN6CSifUi13ShowCompleteLEv @ 8 NONAME
+	_ZN6CSifUi13ShowProgressLERK13CSifUiAppInfoi @ 9 NONAME
+	_ZN6CSifUi13ShowProgressLERKN3Swi8CAppInfoEii @ 10 NONAME
+	_ZN6CSifUi17ShowConfirmationLERK13CSifUiAppInfo @ 11 NONAME
+	_ZN6CSifUi17ShowConfirmationLERKN3Swi8CAppInfoEiPK16CApaMaskedBitmap @ 12 NONAME
+	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayI21CSifUiCertificateInfoE @ 13 NONAME
+	_ZN6CSifUi19SetCertificateInfoLERK13RPointerArrayIN3Swi16CCertificateInfoEE @ 14 NONAME
+	_ZN6CSifUi19SetMemorySelectionLERK6RArrayIiE @ 15 NONAME
+	_ZN6CSifUi25IncreaseProgressBarValueLEi @ 16 NONAME
+	_ZN6CSifUi4ModeEv @ 17 NONAME
+	_ZN6CSifUi4NewLEv @ 18 NONAME
+	_ZN6CSifUi5NewLCEv @ 19 NONAME
+	_ZN6CSifUi7SetModeENS_5TModeE @ 20 NONAME
+	_ZNK13CSifUiAppInfo12ExternalizeLER12RWriteStream @ 21 NONAME
+	_ZNK13CSifUiAppInfo4NameEv @ 22 NONAME
+	_ZNK13CSifUiAppInfo4SizeEv @ 23 NONAME
+	_ZNK13CSifUiAppInfo6VendorEv @ 24 NONAME
+	_ZNK13CSifUiAppInfo7BitmapsEv @ 25 NONAME
+	_ZNK13CSifUiAppInfo7VersionEv @ 26 NONAME
+	_ZNK21CSifUiCertificateInfo12ExternalizeLER12RWriteStream @ 27 NONAME
+	_ZTI13CSifUiAppInfo @ 28 NONAME
+	_ZTI13CSifUiPrivate @ 29 NONAME
+	_ZTI21CSifUiCertificateInfo @ 30 NONAME
+	_ZTI6CSifUi @ 31 NONAME
+	_ZTV13CSifUiAppInfo @ 32 NONAME
+	_ZTV13CSifUiPrivate @ 33 NONAME
+	_ZTV21CSifUiCertificateInfo @ 34 NONAME
+	_ZTV6CSifUi @ 35 NONAME
 
--- a/appinstall_plat/sifui_api/group/bld.inf	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/group/bld.inf	Thu May 27 12:58:35 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,8 +22,10 @@
 DEFAULT
 
 PRJ_EXPORTS
-../inc/sifui.h          MW_LAYER_PLATFORM_EXPORT_PATH( sifui.h )
-../rom/sifui.iby        CORE_MW_LAYER_IBY_EXPORT_PATH( sifui.iby )
+../inc/sifui.h                  MW_LAYER_PLATFORM_EXPORT_PATH( sifui.h )
+../inc/sifuiappinfo.h           MW_LAYER_PLATFORM_EXPORT_PATH( sifuiappinfo.h )
+../inc/sifuicertificateinfo.h   MW_LAYER_PLATFORM_EXPORT_PATH( sifuicertificateinfo.h )
+../rom/sifui.iby                CORE_MW_LAYER_IBY_EXPORT_PATH( sifui.iby )
 
 PRJ_MMPFILES
 sifui.mmp
--- a/appinstall_plat/sifui_api/group/sifui.mmp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/group/sifui.mmp	Thu May 27 12:58:35 2010 +0300
@@ -30,6 +30,8 @@
 SOURCEPATH      ../src
 SOURCE          sifui.cpp
 SOURCE          sifuiprivate.cpp
+SOURCE          sifuicertificateinfo.cpp
+SOURCE          sifuiappinfo.cpp
 
 USERINCLUDE     ../inc
 MW_LAYER_SYSTEMINCLUDE
@@ -40,4 +42,5 @@
 LIBRARY         fbscli.lib      // CFbsBitmap
 LIBRARY         bafl.lib        // CDesC16ArrayFlat
 LIBRARY         efsrv.lib       // RFs
+LIBRARY         estor.lib       // RBufWriteStream
 
--- a/appinstall_plat/sifui_api/inc/sifui.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifui.h	Thu May 27 12:58:35 2010 +0300
@@ -29,6 +29,9 @@
 
 class CSifUiPrivate;
 class CApaMaskedBitmap;
+class CSifUiCertificateInfo;
+class CSifUiAppInfo;
+
 namespace Swi {
     class CAppInfo;
     class CCertificateInfo;
@@ -72,13 +75,10 @@
          * If the installation confirmation query should contain memory selection option,
          * then set the selectable drives with SetMemorySelectionL() first. User selected
          * drive can be retrieved with SelectedDrive().
-         * @param aAppInfo - application information (name, version, and vendor)
-         * @param aAppSize - application size in bytes, not displayed if zero
-         * @param aAppIcon - application icon, default icon is displayed if NULL
+         * @param aAppInfo - application information (name, size, version, vendor, icon)
          * @return TBools - ETrue if user accepted the query, EFalse otherwise
          */
-        IMPORT_C TBool ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
-                TInt aAppSize = 0, const CApaMaskedBitmap* aAppIcon = NULL );
+        IMPORT_C TBool ShowConfirmationL( const CSifUiAppInfo& aAppInfo );
 
         /**
          * Defines memory selection alternatives for the main installation
@@ -101,7 +101,7 @@
          * @param aCertificates - certificate details
          */
         IMPORT_C void SetCertificateInfoL(
-                const RPointerArray<Swi::CCertificateInfo>& aCertificates );
+                const RPointerArray<CSifUiCertificateInfo>& aCertificates );
 
         /**
          * Displays main installation progress note. If the progress note or main
@@ -110,12 +110,10 @@
          * Dialog remains on the screen after progress bar shows full 100% value.
          * Use ShowFailedL() or ShowCompleteL() to replace the dialog content
          * with the final error or complete note.
-         * @param aAppInfo - application information (name, version, and vendor)
-         * @param aAppSize - application size in bytes (not displayed if zero)
+         * @param aAppInfo - application information (name, size, version, vendor, icon)
          * @param aProgressBarFinalValue - final value of the progress bar
          */
-        IMPORT_C void ShowProgressL( const Swi::CAppInfo& aAppInfo,
-                TInt aAppSize, TInt aProgressBarFinalValue );
+        IMPORT_C void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue );
 
         /**
          * Updates the progress bar value displayed in progress note. Initially progress bar
@@ -153,6 +151,12 @@
         IMPORT_C void SetMode( TMode aMode );
         IMPORT_C TMode Mode();
         IMPORT_C void ShowFailedL( TInt aErrorCode );
+        IMPORT_C void SetCertificateInfoL(
+                const RPointerArray<Swi::CCertificateInfo>& aCertificates );
+        IMPORT_C TBool ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
+                TInt aAppSize = 0, const CApaMaskedBitmap* aAppIcon = NULL );
+        IMPORT_C void ShowProgressL( const Swi::CAppInfo& aAppInfo,
+                 TInt aAppSize, TInt aProgressBarFinalValue );
 
     private:    // new functions
         CSifUi();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/inc/sifuiappinfo.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiAppInfo for application details
+*
+*/
+
+#ifndef C_SIFUIAPPINFO_H
+#define C_SIFUIAPPINFO_H
+
+#include <e32base.h>                            // CBase
+
+class RWriteStream;
+class CApaMaskedBitmap;
+
+
+/**
+ * CSifUiAppInfo transfers application details from a SIF plugin
+ * to UI process in device dialog server. See also Swi::CAppInfo.
+ *
+ * @lib sifui.lib
+ * @since 10.1
+ */
+class CSifUiAppInfo : public CBase
+    {
+    public:     // constructors and destructor
+        /**
+         * Creates new CSifUiAppInfo object and pushes it to cleanup stack.
+         * Does not take the ownership of aAppIcon parameter.
+         * @param aAppName - application name
+         * @param aAppVendor - vendor name
+         * @param aAppVersion - application version
+         * @param aAppSize - application size in bytes
+         * @param aAppIcon - application icon (or NULL if no icon)
+         * @returns CSifUiAppInfo* -- new CSifUiAppInfo object
+         */
+        IMPORT_C static CSifUiAppInfo* NewLC( const TDesC& aAppName,
+                const TDesC& aAppVendor, const TVersion& aAppVersion, TInt aAppSize,
+                const CApaMaskedBitmap* aAppIcon );
+
+        /**
+         * Creates new CSifUiAppInfo object.
+         * Does not take the ownership of aAppIcon parameter.
+         * @param aAppName - application name
+         * @param aAppVendor - vendor name
+         * @param aAppVersion - application version
+         * @param aAppSize - application size in bytes
+         * @param aAppIcon - application icon (or NULL if no icon)
+         * @returns CSifUiAppInfo* -- new CSifUiAppInfo object
+         */
+        IMPORT_C static CSifUiAppInfo* NewL( const TDesC& aAppName,
+                const TDesC& aAppVendor, const TVersion& aAppVersion, TInt aAppSize,
+                const CApaMaskedBitmap* aAppIcon );
+
+        /**
+         * Destructor.
+         */
+        ~CSifUiAppInfo();
+
+    public:     // new functions
+
+        /**
+         * Application name.
+         * @returns TDesC - application name
+         */
+        IMPORT_C const TDesC& Name() const;
+
+        /**
+         * Application vendor.
+         * @returns TDesC - vendor name
+         */
+        IMPORT_C const TDesC& Vendor() const;
+
+        /**
+         * Application version.
+         * @returns TVersion - application version
+         */
+        IMPORT_C const TVersion& Version() const;
+
+        /**
+         * Application size.
+         * @returns TInt - application size
+         */
+        IMPORT_C TInt Size() const;
+
+        /**
+         * Application icon and mask bitmaps. Does not transfer ownership.
+         * @returns CApaMaskedBitmap - icon and mask bitmaps, NULL if no bitmaps
+         */
+        IMPORT_C const CApaMaskedBitmap* Bitmaps() const;
+
+        /**
+         * Externalizes this object to the specified write stream.
+         * @param aStream   Stream to which the contents is written.
+         */
+        IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+
+    private:    // new functions
+        CSifUiAppInfo();
+        void ConstructL( const TDesC& aAppName, const TDesC& aAppVendor,
+                const TVersion& aAppVersion, TInt aAppSize,
+                const CApaMaskedBitmap* aAppIcon );
+
+    private:    // data
+        HBufC* iAppName;
+        HBufC* iAppVendor;
+        TVersion iAppVersion;
+        TInt iAppSize;
+        CApaMaskedBitmap* iAppIcon;
+    };
+
+#endif  // C_SIFUIAPPINFO_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/inc/sifuicertificateinfo.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiCertificateInfo for certificate details
+*
+*/
+
+#ifndef C_SIFUICERTIFICATEINFO_H
+#define C_SIFUICERTIFICATEINFO_H
+
+#include <e32base.h>                            // CBase
+
+namespace Swi {
+    class CCertificateInfo;
+}
+class RWriteStream;
+
+
+/**
+ * CSifUiCertificateInfo transfers certificate details from a SIF plugin
+ * to UI process in device dialog server. See also Swi::CCertificateInfo.
+ *
+ * @lib sifui.lib
+ * @since 10.1
+ */
+class CSifUiCertificateInfo : public CBase
+    {
+    public:     // constructors and destructor
+        /**
+         * Creates new CSifUiCertificateInfo object and pushes it to cleanup stack.
+         * @returns CSifUiCertificateInfo* -- new CSifUiCertificateInfo object
+         */
+        IMPORT_C static CSifUiCertificateInfo* NewLC( Swi::CCertificateInfo& aCertInfo );
+
+        /**
+         * Creates new CSifUiCertificateInfo object.
+         * @returns CSifUiCertificateInfo* -- new CSifUiCertificateInfo object
+         */
+        IMPORT_C static CSifUiCertificateInfo* NewL( Swi::CCertificateInfo& aCertInfo );
+
+        /**
+         * Destructor.
+         */
+        ~CSifUiCertificateInfo();
+
+    public:     // new functions
+        /**
+         * Externalizes this object to the specified write stream.
+         * @param aStream   Stream to which the contents is written.
+         */
+        IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+
+    private:    // new functions
+        CSifUiCertificateInfo();
+        void ConstructL( Swi::CCertificateInfo& aCertInfo );
+        const TDesC& SubjectName() const;
+        const TDesC& IssuerName() const;
+        const TDesC8& Fingerprint() const;
+        const TDesC8& SerialNumber() const;
+
+    private:    // data
+        HBufC* iSubjectName;
+        HBufC* iIssuerName;
+        HBufC8* iFingerprint;
+        HBufC8* iSerialNumber;
+        TDateTime iValidFrom;
+        TDateTime iValidTo;
+    };
+
+#endif  // C_SIFUICERTIFICATEINFO_H
+
--- a/appinstall_plat/sifui_api/inc/sifuidefs.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuidefs.h	Thu May 27 12:58:35 2010 +0300
@@ -49,7 +49,7 @@
 _LIT( KSifUiApplicationSize, "size" );              // integer
 _LIT( KSifUiApplicationDetails, "details" );        // descriptor array
 _LIT( KSifUiMemorySelection, "mem" );               // descriptor (comma separated drive letters)
-_LIT( KSifUiCertificates, "cert" );                 // boolean ???
+_LIT( KSifUiCertificates, "cert" );                 // binary
 
 // Variant map keys for "progress note" dialog parameters
 _LIT( KSifUiProgressNoteText, "txt" );              // string
--- a/appinstall_plat/sifui_api/inc/sifuiprivate.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuiprivate.h	Thu May 27 12:58:35 2010 +0300
@@ -24,8 +24,11 @@
 
 class CHbDeviceDialog;
 class CHbSymbianVariantMap;
+class CHbSymbianVariant;
 class CActiveSchedulerWait;
 class CApaMaskedBitmap;
+class CSifUiCertificateInfo;
+class CSifUiAppInfo;
 
 namespace Swi {
     class CAppInfo;
@@ -43,13 +46,11 @@
         CSifUiPrivate::~CSifUiPrivate();
 
     public:     // new functions
-        TBool ShowConfirmationL( const Swi::CAppInfo& aAppInfo, TInt aAppSize,
-        		const CApaMaskedBitmap* aAppIcon );
+        TBool ShowConfirmationL( const CSifUiAppInfo& aAppInfo );
         void SetMemorySelectionL( const RArray<TInt>& aDriveNumbers );
         TInt SelectedDrive( TInt& aDriveNumber );
-        void SetCertificateInfoL( const RPointerArray<Swi::CCertificateInfo>& aCertificates );
-        void ShowProgressL( const Swi::CAppInfo& aAppInfo, TInt aAppSize,
-                TInt aProgressBarFinalValue );
+        void SetCertificateInfoL( const RPointerArray<CSifUiCertificateInfo>& aCertificates );
+        void ShowProgressL( const CSifUiAppInfo& aAppInfo, TInt aProgressBarFinalValue );
         void IncreaseProgressBarValueL( TInt aIncrement );
         void ShowCompleteL();
         void ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
@@ -66,14 +67,14 @@
     private:    // new functions
         CSifUiPrivate();
         void ConstructL();
-        void ClearParamsL();
+        void ClearParams();
+        CHbSymbianVariantMap* VariantMapL();
         void ChangeNoteTypeL( TInt aType );
         void AddParamL( const TDesC& aKey, TInt aValue );
         void AddParamL( const TDesC& aKey, const TDesC& aValue );
         void AddParamListL( const TDesC& aKey, const MDesCArray& aList );
-        void AddParamsAppInfoAndSizeL( const Swi::CAppInfo& aAppInfo, TInt aAppSize );
+        void AddParamsAppInfoL( const CSifUiAppInfo& aAppInfo );
         void AddParamsIconL( const CApaMaskedBitmap* aIcon );
-        void AddParamsCertificatesL( const RPointerArray<Swi::CCertificateInfo>& aCertificates );
         void DisplayDeviceDialogL();
         TInt WaitForResponse();
         void ResponseReceived( TInt aCompletionCode );
@@ -89,6 +90,7 @@
         HBufC* iSelectableDrives;
         TBool iSelectedDriveSet;
         TChar iSelectedDrive;
+        CHbSymbianVariant* iCertificateInfo;
     };
 
 
--- a/appinstall_plat/sifui_api/src/sifui.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifui.cpp	Thu May 27 12:58:35 2010 +0300
@@ -11,13 +11,17 @@
 *
 * Contributors:
 *
-* Description:  Implementation of RSifUiCli class.
+* Description:  Implementation of CSifUi class.
 *
 */
 
 #include "sifui.h"                              // CSifUi
 #include "sifuiprivate.h"                       // CSifUiPrivate
 
+// TODO: remove
+#include <swi/msisuihandlers.h>                 // Swi::CAppInfo
+#include "sifuiappinfo.h"                       // CSifUiAppInfo
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -50,55 +54,54 @@
 //
 CSifUi::~CSifUi()
     {
-	delete iPrivate;
+    delete iPrivate;
     }
 
 // ---------------------------------------------------------------------------
 // CSifUi::ShowConfirmationL()
 // ---------------------------------------------------------------------------
 //
-EXPORT_C TBool CSifUi::ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
-    TInt aAppSize, const CApaMaskedBitmap* aAppIcon )
-	{
-	return iPrivate->ShowConfirmationL( aAppInfo, aAppSize, aAppIcon );
-	}
+EXPORT_C TBool CSifUi::ShowConfirmationL( const CSifUiAppInfo& aAppInfo )
+    {
+    return iPrivate->ShowConfirmationL( aAppInfo );
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUi::SetMemorySelectionL()
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CSifUi::SetMemorySelectionL( const RArray<TInt>& aDriveNumbers )
-	{
-	iPrivate->SetMemorySelectionL( aDriveNumbers );
-	}
+    {
+    iPrivate->SetMemorySelectionL( aDriveNumbers );
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUi::SelectedDrive()
 // ---------------------------------------------------------------------------
 //
 EXPORT_C TInt CSifUi::SelectedDrive( TInt& aDriveNumber )
-	{
-	return iPrivate->SelectedDrive( aDriveNumber );
-	}
+    {
+    return iPrivate->SelectedDrive( aDriveNumber );
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUi::SetCertificateInfoL()
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CSifUi::SetCertificateInfoL(
-        const RPointerArray<Swi::CCertificateInfo>& aCertificates )
-	{
-	iPrivate->SetCertificateInfoL( aCertificates );
-	}
+        const RPointerArray<CSifUiCertificateInfo>& aCertificates )
+    {
+    iPrivate->SetCertificateInfoL( aCertificates );
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUi::ShowProgressL()
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void CSifUi::ShowProgressL( const Swi::CAppInfo& aAppInfo,
-        TInt aAppSize, TInt aProgressBarFinalValue )
+EXPORT_C void CSifUi::ShowProgressL( const CSifUiAppInfo& aAppInfo,
+        TInt aProgressBarFinalValue )
     {
-	iPrivate->ShowProgressL( aAppInfo, aAppSize, aProgressBarFinalValue );
+    iPrivate->ShowProgressL( aAppInfo, aProgressBarFinalValue );
     }
 
 // ---------------------------------------------------------------------------
@@ -107,7 +110,7 @@
 //
 EXPORT_C void CSifUi::IncreaseProgressBarValueL( TInt aNewValue )
     {
-	iPrivate->IncreaseProgressBarValueL( aNewValue );
+    iPrivate->IncreaseProgressBarValueL( aNewValue );
     }
 
 // ---------------------------------------------------------------------------
@@ -116,7 +119,7 @@
 //
 EXPORT_C void CSifUi::ShowCompleteL()
     {
-	iPrivate->ShowCompleteL();
+    iPrivate->ShowCompleteL();
     }
 
 // ---------------------------------------------------------------------------
@@ -126,7 +129,7 @@
 EXPORT_C void CSifUi::ShowFailedL( TInt aErrorCode, const TDesC& aErrorMessage,
         const TDesC& aErrorDetails )
     {
-	iPrivate->ShowFailedL( aErrorCode, aErrorMessage, aErrorDetails );
+    iPrivate->ShowFailedL( aErrorCode, aErrorMessage, aErrorDetails );
     }
 
 // ---------------------------------------------------------------------------
@@ -143,7 +146,7 @@
 //
 void CSifUi::ConstructL()
     {
-	iPrivate = CSifUiPrivate::NewL();
+    iPrivate = CSifUiPrivate::NewL();
     }
 
 
@@ -167,5 +170,28 @@
     User::Invariant();
     }
 
+EXPORT_C void CSifUi::SetCertificateInfoL(
+        const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
+    {
+    User::Invariant();
+    }
 
+EXPORT_C TBool CSifUi::ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
+    TInt aAppSize, const CApaMaskedBitmap* aAppIcon )
+    {
+    CSifUiAppInfo* appInfo = CSifUiAppInfo::NewLC( aAppInfo.AppName(),
+            aAppInfo.AppVendor(), aAppInfo.AppVersion(), aAppSize, aAppIcon );
+    TBool retVal = iPrivate->ShowConfirmationL( *appInfo );
+    CleanupStack::PopAndDestroy( appInfo );
+    return retVal;
+    }
 
+EXPORT_C void CSifUi::ShowProgressL( const Swi::CAppInfo& aAppInfo,
+        TInt aAppSize, TInt aProgressBarFinalValue )
+    {
+    CSifUiAppInfo* appInfo = CSifUiAppInfo::NewLC( aAppInfo.AppName(),
+            aAppInfo.AppVendor(), aAppInfo.AppVersion(), aAppSize, NULL );
+    iPrivate->ShowProgressL( *appInfo, aProgressBarFinalValue );
+    CleanupStack::PopAndDestroy( appInfo );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/src/sifuiappinfo.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiAppInfo for application details
+*
+*/
+
+#include "sifuiappinfo.h"           // CSifUiAppInfo
+#include <s32strm.h>                // RWriteStream
+#include <apgicnfl.h>               // CApaMaskedBitmap
+
+
+// in sifuicertificateinfo.cpp:
+void WriteBufToStreamL( RWriteStream& aStream, const TDesC& aBuffer );
+
+
+// ======== LOCAL FUNCTIONS ========
+
+void WriteVersionToStreamL( RWriteStream& aStream, const TVersion& aVersion )
+    {
+    TPckg<TVersion> buffer( aVersion );
+    aStream.WriteL( buffer );
+    }
+
+void WriteBitmapsToStreamL( RWriteStream& /*aStream*/, const CApaMaskedBitmap& /*aIcon*/ )
+    {
+    // TODO: implement
+    }
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::NewLC()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiAppInfo* CSifUiAppInfo::NewLC( const TDesC& aAppName,
+        const TDesC& aAppVendor, const TVersion& aAppVersion, TInt aAppSize,
+        const CApaMaskedBitmap* aAppIcon )
+    {
+    CSifUiAppInfo* self = new ( ELeave ) CSifUiAppInfo;
+    CleanupStack::PushL( self );
+    self->ConstructL( aAppName, aAppVendor, aAppVersion, aAppSize, aAppIcon );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::NewL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiAppInfo* CSifUiAppInfo::NewL( const TDesC& aAppName,
+        const TDesC& aAppVendor, const TVersion& aAppVersion, TInt aAppSize,
+        const CApaMaskedBitmap* aAppIcon )
+    {
+    CSifUiAppInfo* self = CSifUiAppInfo::NewLC( aAppName, aAppVendor,
+            aAppVersion, aAppSize, aAppIcon );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::~CSifUiAppInfo()
+// ---------------------------------------------------------------------------
+//
+CSifUiAppInfo::~CSifUiAppInfo()
+    {
+    delete iAppName;
+    delete iAppVendor;
+    delete iAppIcon;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::Name()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CSifUiAppInfo::Name() const
+    {
+    if( iAppName )
+        {
+        return *iAppName;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::Vendor()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CSifUiAppInfo::Vendor() const
+    {
+    if( iAppVendor )
+        {
+        return *iAppVendor;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::Version()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TVersion& CSifUiAppInfo::Version() const
+    {
+    return iAppVersion;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::Size()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CSifUiAppInfo::Size() const
+    {
+    return iAppSize;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::Bitmaps()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const CApaMaskedBitmap* CSifUiAppInfo::Bitmaps() const
+    {
+    return iAppIcon;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::ExternalizeL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CSifUiAppInfo::ExternalizeL( RWriteStream& aStream ) const
+    {
+    WriteBufToStreamL( aStream, *iAppName );
+    WriteBufToStreamL( aStream, *iAppVendor );
+    WriteVersionToStreamL( aStream, iAppVersion );
+    aStream.WriteInt32L( iAppSize );
+    if( iAppIcon )
+        {
+        WriteBitmapsToStreamL( aStream, *iAppIcon );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::CSifUiAppInfo()
+// ---------------------------------------------------------------------------
+//
+CSifUiAppInfo::CSifUiAppInfo()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiAppInfo::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiAppInfo::ConstructL( const TDesC& aAppName, const TDesC& aAppVendor,
+        const TVersion& aAppVersion, TInt aAppSize, const CApaMaskedBitmap* aAppIcon )
+    {
+    iAppName = aAppName.AllocL();
+    iAppVendor = aAppVendor.AllocL();
+    iAppVersion = aAppVersion;
+    iAppSize = aAppSize;
+    if( aAppIcon )
+        {
+        iAppIcon = CApaMaskedBitmap::NewL( aAppIcon );
+        }
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstall_plat/sifui_api/src/sifuicertificateinfo.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,170 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSifUiCertificateInfo for certificate details.
+*
+*/
+
+#include "sifuicertificateinfo.h"               // CSifUiCertificateInfo
+#include <swi/msisuihandlers.h>                 // Swi::CCertificateInfo
+
+
+// ======== LOCAL FUNCTIONS ========
+
+void WriteBufToStreamL( RWriteStream& aStream, const TDesC& aBuffer )
+    {
+    aStream.WriteInt32L( aBuffer.Length() );
+    aStream.WriteL( aBuffer );
+    }
+
+void WriteBufToStreamL( RWriteStream& aStream, const TDesC8& aBuffer )
+    {
+    aStream.WriteInt32L( aBuffer.Length() );
+    aStream.WriteL( aBuffer );
+    }
+
+void WriteDateTimeToStreamL( RWriteStream& aStream, const TDateTime& aDateTime )
+    {
+    TPckg<TDateTime> buffer( aDateTime );
+    aStream.WriteL( buffer );
+    }
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::NewLC()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiCertificateInfo* CSifUiCertificateInfo::NewLC(
+        Swi::CCertificateInfo& aCertInfo )
+    {
+    CSifUiCertificateInfo* self = new( ELeave ) CSifUiCertificateInfo();
+    CleanupStack::PushL( self );
+    self->ConstructL( aCertInfo );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::NewL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CSifUiCertificateInfo* CSifUiCertificateInfo::NewL(
+        Swi::CCertificateInfo& aCertInfo )
+    {
+    CSifUiCertificateInfo* self = CSifUiCertificateInfo::NewLC( aCertInfo );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::~CSifUiCertificateInfo()
+// ---------------------------------------------------------------------------
+//
+CSifUiCertificateInfo::~CSifUiCertificateInfo()
+    {
+    delete iSubjectName;
+    delete iIssuerName;
+    delete iFingerprint;
+    delete iSerialNumber;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::ExternalizeL()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CSifUiCertificateInfo::ExternalizeL( RWriteStream& aStream ) const
+    {
+    WriteBufToStreamL( aStream, SubjectName() );
+    WriteBufToStreamL( aStream, IssuerName() );
+    WriteBufToStreamL( aStream, Fingerprint() );
+    WriteBufToStreamL( aStream, SerialNumber() );
+    WriteDateTimeToStreamL( aStream, iValidFrom );
+    WriteDateTimeToStreamL( aStream, iValidTo );
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::CSifUiCertificateInfo()
+// ---------------------------------------------------------------------------
+//
+CSifUiCertificateInfo::CSifUiCertificateInfo()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiCertificateInfo::ConstructL(
+        Swi::CCertificateInfo& aCertInfo )
+    {
+    iSubjectName = aCertInfo.SubjectName().AllocL();
+    iIssuerName = aCertInfo.IssuerName().AllocL();
+    iFingerprint = aCertInfo.Fingerprint().AllocL();
+    iSerialNumber = aCertInfo.SerialNumber().AllocL();
+    iValidFrom = aCertInfo.ValidFrom();
+    iValidTo = aCertInfo.ValidTo();
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::SubjectName()
+// ---------------------------------------------------------------------------
+//
+const TDesC& CSifUiCertificateInfo::SubjectName() const
+    {
+    if( iSubjectName )
+        {
+        return *iSubjectName;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::IssuerName()
+// ---------------------------------------------------------------------------
+//
+const TDesC& CSifUiCertificateInfo::IssuerName() const
+    {
+    if( iIssuerName )
+        {
+        return *iIssuerName;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::Fingerprint()
+// ---------------------------------------------------------------------------
+//
+const TDesC8& CSifUiCertificateInfo::Fingerprint() const
+    {
+    if( iFingerprint )
+        {
+        return *iFingerprint;
+        }
+    return KNullDesC8;
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiCertificateInfo::SerialNumber()
+// ---------------------------------------------------------------------------
+//
+const TDesC8& CSifUiCertificateInfo::SerialNumber() const
+    {
+    if( iSerialNumber )
+        {
+        return *iSerialNumber;
+        }
+    return KNullDesC8;
+    }
+
--- a/appinstall_plat/sifui_api/src/sifuiprivate.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifuiprivate.cpp	Thu May 27 12:58:35 2010 +0300
@@ -11,17 +11,20 @@
 *
 * Contributors:
 *
-* Description:  Implementation of RSifUiCli class.
+* Description:  Implementation of CSifUiPrivate class.
 *
 */
 
 #include "sifuiprivate.h"                       // CSifUiPrivate
 #include "sifuidefs.h"                          // SIF UI device dialog parameters
+#include "sifuicertificateinfo.h"               // CSifUiCertificateInfo
+#include "sifuiappinfo.h"                       // CSifUiAppInfo
 #include <hb/hbcore/hbsymbianvariant.h>         // CHbSymbianVariantMap
-#include <swi/msisuihandlers.h>                 // Swi::CAppInfo
 #include <apgicnfl.h>                           // CApaMaskedBitmap
+#include <s32mem.h>                             // RDesReadStream
 
 const TInt KDriveLettersLen = 32;
+const TInt KCertificateBufferGranularity = 1024;
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -51,99 +54,120 @@
     delete iVariantMap;
     delete iBitmap;
     delete iSelectableDrives;
+    delete iCertificateInfo;
     }
 
 // ---------------------------------------------------------------------------
 // CSifUiPrivate::ShowConfirmationL()
 // ---------------------------------------------------------------------------
 //
-TBool CSifUiPrivate::ShowConfirmationL( const Swi::CAppInfo& aAppInfo,
-    TInt aAppSize, const CApaMaskedBitmap* aAppIcon )
-	{
-	ChangeNoteTypeL( ESifUiConfirmationQuery );
+TBool CSifUiPrivate::ShowConfirmationL( const CSifUiAppInfo& aAppInfo )
+    {
+    ChangeNoteTypeL( ESifUiConfirmationQuery );
 
-	AddParamsAppInfoAndSizeL( aAppInfo, aAppSize );
-	if( aAppIcon )
-		{
-		AddParamsIconL( aAppIcon );
-		}
-	if( iSelectableDrives )
-		{
-		AddParamL( KSifUiMemorySelection, *iSelectableDrives );
-		}
+    AddParamsAppInfoL( aAppInfo );
+    if( iSelectableDrives )
+        {
+        AddParamL( KSifUiMemorySelection, *iSelectableDrives );
+        }
+    if( iCertificateInfo )
+        {
+        User::LeaveIfError( VariantMapL()->Add( KSifUiCertificates, iCertificateInfo ) );
+        iCertificateInfo = NULL;
+        }
 
-	DisplayDeviceDialogL();
-	User::LeaveIfError( WaitForResponse() );
-	return( iReturnValue == KErrNone );
-	}
+    DisplayDeviceDialogL();
+    User::LeaveIfError( WaitForResponse() );
+    return( iReturnValue == KErrNone );
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUiPrivate::SetMemorySelectionL()
 // ---------------------------------------------------------------------------
 //
 void CSifUiPrivate::SetMemorySelectionL( const RArray<TInt>& aDriveNumbers )
-	{
-	if( iSelectableDrives )
-		{
-		delete iSelectableDrives;
-		iSelectableDrives = NULL;
-		}
+    {
+    if( iSelectableDrives )
+        {
+        delete iSelectableDrives;
+        iSelectableDrives = NULL;
+        }
 
-	TInt driveCount = aDriveNumbers.Count();
-	if( driveCount > 0 )
-		{
-		const TChar KComma = ',';
-		TBuf<KDriveLettersLen> driveList;
-		for( TInt index = 0; index < driveCount; ++index )
-			{
-			TChar driveLetter;
-			TInt err = RFs::DriveToChar( aDriveNumbers[ index ], driveLetter );
-			if( !err )
-				{
-				driveList.Append( driveLetter );
-				driveList.Append( KComma );
-				}
-			}
-		iSelectableDrives = driveList.AllocL();
-		}
-	}
+    TInt driveCount = aDriveNumbers.Count();
+    if( driveCount > 0 )
+        {
+        const TChar KComma = ',';
+        TBuf<KDriveLettersLen> driveList;
+        for( TInt index = 0; index < driveCount; ++index )
+            {
+            TChar driveLetter;
+            TInt err = RFs::DriveToChar( aDriveNumbers[ index ], driveLetter );
+            if( !err )
+                {
+                driveList.Append( driveLetter );
+                driveList.Append( KComma );
+                }
+            }
+        iSelectableDrives = driveList.AllocL();
+        }
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUiPrivate::SelectedDrive()
 // ---------------------------------------------------------------------------
 //
 TInt CSifUiPrivate::SelectedDrive( TInt& aDriveNumber )
-	{
+    {
     if( iSelectedDriveSet )
         {
         return RFs::CharToDrive( iSelectedDrive, aDriveNumber );
         }
     return KErrNotFound;
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUiPrivate::SetCertificateInfoL()
 // ---------------------------------------------------------------------------
 //
 void CSifUiPrivate::SetCertificateInfoL(
-        const RPointerArray<Swi::CCertificateInfo>& aCertificates )
-	{
-   if( aCertificates.Count() )
-		{
-		AddParamsCertificatesL( aCertificates );
-		}
-	}
+        const RPointerArray<CSifUiCertificateInfo>& aCertificates )
+    {
+    if( iCertificateInfo )
+        {
+        delete iCertificateInfo;
+        iCertificateInfo = NULL;
+        }
+    if( aCertificates.Count() )
+        {
+        CBufBase* buf = CBufFlat::NewL( KCertificateBufferGranularity );
+        CleanupStack::PushL( buf );
+        RBufWriteStream writeStream( *buf );
+        CleanupClosePushL( writeStream );
+
+        TInt32 count = aCertificates.Count();
+        writeStream.WriteInt32L( count );
+        for( TInt index = 0; index < count; ++index )
+           {
+           aCertificates[ index ]->ExternalizeL( writeStream );
+           }
+
+        const TPtrC8 dataPtr( buf->Ptr( 0 ).Ptr(), buf->Size() );
+        iCertificateInfo = CHbSymbianVariant::NewL( &dataPtr, CHbSymbianVariant::EBinary );
+
+        CleanupStack::PopAndDestroy( 2, buf );  // writeStream, buf
+        }
+    }
 
 // ---------------------------------------------------------------------------
 // CSifUiPrivate::ShowProgressL()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::ShowProgressL( const Swi::CAppInfo& aAppInfo,
-        TInt aAppSize, TInt aProgressBarFinalValue )
+void CSifUiPrivate::ShowProgressL( const CSifUiAppInfo& aAppInfo,
+        TInt aProgressBarFinalValue )
     {
     ChangeNoteTypeL( ESifUiProgressNote );
 
-    AddParamsAppInfoAndSizeL( aAppInfo, aAppSize );
+    AddParamsAppInfoL( aAppInfo );
     AddParamL( KSifUiProgressNoteFinalValue, aProgressBarFinalValue );
 
     DisplayDeviceDialogL();
@@ -169,6 +193,7 @@
 void CSifUiPrivate::ShowCompleteL()
     {
     ChangeNoteTypeL( ESifUiCompleteNote );
+
     DisplayDeviceDialogL();
     User::LeaveIfError( WaitForResponse() );
     }
@@ -226,10 +251,10 @@
     {
     const CHbSymbianVariant* selectedDriveVariant = aData.Get( KSifUiSelectedMemory );
     if( selectedDriveVariant )
-    	{
-		iSelectedDrive = *( selectedDriveVariant->Value<TChar>() );
-		iSelectedDriveSet = ETrue;
-    	}
+        {
+        iSelectedDrive = *( selectedDriveVariant->Value<TChar>() );
+        iSelectedDriveSet = ETrue;
+        }
 
     const CHbSymbianVariant* acceptedVariant = aData.Get( KSifUiQueryAccepted );
     if( acceptedVariant )
@@ -277,17 +302,29 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::ClearParamsL()
+// CSifUiPrivate::ClearParams()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::ClearParamsL()
+void CSifUiPrivate::ClearParams()
     {
     if( iVariantMap )
         {
         delete iVariantMap;
         iVariantMap = NULL;
         }
-    iVariantMap = CHbSymbianVariantMap::NewL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSifUiPrivate::VariantMapL()
+// ---------------------------------------------------------------------------
+//
+CHbSymbianVariantMap* CSifUiPrivate::VariantMapL()
+    {
+    if( !iVariantMap )
+        {
+        iVariantMap = CHbSymbianVariantMap::NewL();
+        }
+    return iVariantMap;
     }
 
 // ---------------------------------------------------------------------------
@@ -296,7 +333,7 @@
 //
 void CSifUiPrivate::ChangeNoteTypeL( TInt aType )
     {
-    ClearParamsL();
+    ClearParams();
     AddParamL( KSifUiDialogType, aType );
     }
 
@@ -308,7 +345,7 @@
     {
     CHbSymbianVariant* variant = NULL;
     variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EInt );
-    iVariantMap->Add( aKey, variant );
+    User::LeaveIfError( VariantMapL()->Add( aKey, variant ) );
     }
 
 // ---------------------------------------------------------------------------
@@ -319,7 +356,7 @@
     {
     CHbSymbianVariant* variant = NULL;
     variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EDes );
-    iVariantMap->Add( aKey, variant );
+    User::LeaveIfError( VariantMapL()->Add( aKey, variant ) );
     }
 
 // ---------------------------------------------------------------------------
@@ -330,28 +367,29 @@
     {
     CHbSymbianVariant* variant = NULL;
     variant = CHbSymbianVariant::NewL( &aList, CHbSymbianVariant::EDesArray );
-    iVariantMap->Add( aKey, variant );
+    User::LeaveIfError( VariantMapL()->Add( aKey, variant ) );
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::AddParamsAppInfoAndSizeL()
+// CSifUiPrivate::AddParamsAppInfoL()
 // ---------------------------------------------------------------------------
 //
-void CSifUiPrivate::AddParamsAppInfoAndSizeL( const Swi::CAppInfo& aAppInfo, TInt aAppSize )
+void CSifUiPrivate::AddParamsAppInfoL( const CSifUiAppInfo& aAppInfo )
     {
-    AddParamL( KSifUiApplicationName, aAppInfo.AppName() );
-    const TVersion& version( aAppInfo.AppVersion() );
+    // TODO: icons missing, could use binary transfer as in certificates
+    AddParamL( KSifUiApplicationName, aAppInfo.Name() );
+    const TVersion& version( aAppInfo.Version() );
     if( version.iBuild || version.iMajor || version.iMinor )
         {
         AddParamL( KSifUiApplicationVersion, version.Name() );
         }
-    if( aAppInfo.AppVendor().Length() )
+    if( aAppInfo.Vendor().Length() )
         {
-        AddParamL( KSifUiApplicationDetails, aAppInfo.AppVendor() );
+        AddParamL( KSifUiApplicationDetails, aAppInfo.Vendor() );
         }
-    if( aAppSize > 0 )
+    if( aAppInfo.Size() > 0 )
         {
-        AddParamL( KSifUiApplicationSize, aAppSize );
+        AddParamL( KSifUiApplicationSize, aAppInfo.Size() );
         }
     }
 
@@ -361,6 +399,7 @@
 //
 void CSifUiPrivate::AddParamsIconL( const CApaMaskedBitmap* aIcon )
     {
+    // TODO: remove this function
     if( aIcon )
         {
         if( iBitmap )
@@ -370,26 +409,18 @@
             }
         iBitmap = CApaMaskedBitmap::NewL( aIcon );
 
+        CHbSymbianVariantMap* map = VariantMapL();
         CHbSymbianVariant* variant = NULL;
         TInt bitmapHandle = iBitmap->Handle();
         variant = CHbSymbianVariant::NewL( &bitmapHandle, CHbSymbianVariant::EInt );
-        iVariantMap->Add( KSifUiApplicationIconHandle, variant );
+        User::LeaveIfError( map->Add( KSifUiApplicationIconHandle, variant ) );
         TInt bitmapMaskHandle = iBitmap->Mask()->Handle();
         variant = CHbSymbianVariant::NewL( &bitmapMaskHandle, CHbSymbianVariant::EInt );
-        iVariantMap->Add( KSifUiApplicationIconMaskHandle, variant );
+        User::LeaveIfError( map->Add( KSifUiApplicationIconMaskHandle, variant ) );
         }
     }
 
 // ---------------------------------------------------------------------------
-// CSifUiPrivate::AddParamsCertificatesL()
-// ---------------------------------------------------------------------------
-//
-void CSifUiPrivate::AddParamsCertificatesL( const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
-    {
-    // TODO: implement
-    }
-
-// ---------------------------------------------------------------------------
 // CSifUiPrivate::DisplayDeviceDialogL()
 // ---------------------------------------------------------------------------
 //
@@ -397,7 +428,7 @@
     {
     if( iDeviceDialog && iIsDisplayingDialog )
         {
-        iDeviceDialog->Update( *iVariantMap );
+        User::LeaveIfError( iDeviceDialog->Update( *VariantMapL() ) );
         }
     else
         {
@@ -405,7 +436,7 @@
             {
             iDeviceDialog = CHbDeviceDialogSymbian::NewL();
             }
-        iDeviceDialog->Show( KSifUiDeviceDialog, *iVariantMap, this );
+        User::LeaveIfError( iDeviceDialog->Show( KSifUiDeviceDialog, *VariantMapL(), this ) );
         iIsDisplayingDialog = ETrue;
         }
     }
--- a/appinstall_plat/sifui_api/tsrc/src/sifuitest.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/src/sifuitest.cpp	Thu May 27 12:58:35 2010 +0300
@@ -269,14 +269,14 @@
     {
     User::LeaveIfError( iFs.Connect() );
 
-    // Read logger settings
-    RSettingServer settingServer;
-    TInt ret = settingServer.Connect();
-    User::LeaveIfError( ret );
+    RSettingServer settingsServer;
+    User::LeaveIfError( settingsServer.Connect() );
+    CleanupClosePushL( settingsServer );
+
     TLoggerSettings loggerSettings;
-    ret = settingServer.GetLoggerSettings( loggerSettings );
-    User::LeaveIfError( ret );
-    settingServer.Close();
+    User::LeaveIfError( settingsServer.GetLoggerSettings( loggerSettings ) );
+
+    CleanupStack::PopAndDestroy( &settingsServer );
 
     iAddTestCaseTitleToLogName = loggerSettings.iAddTestCaseTitle;
     iStdLog = CStifLogger::NewL( KSifUiTestLogPath, KSifUiTestLogFile );
--- a/appinstaller/AppinstUi/Daemon/Inc/DialogWrapper.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Inc/DialogWrapper.h	Thu May 27 12:58:35 2010 +0300
@@ -22,17 +22,20 @@
 //  INCLUDES
 #include <e32base.h>
 #include <f32file.h>
-
-// TODO probably removed in 10.1
-// #include <barsc.h>
 #include "dialogwatcher.h"
 
 class CHbDeviceProgressDialogSymbian;
 class CHbDeviceNotificationDialogSymbian;
+class CHbIndicatorSymbian;
 
 namespace Swi
 {
+// Define uninstaller mode for universal indicator.
+const TInt KSWIDaemonUninstallerMode = -1; 
+// Define installer mode for universal indicator.
+const TInt KSWIDaemonInstallerMode = 0;
 
+class CDialogTimer;
 /**
 * This class wraps functions for showing some global dialogs.
 * 
@@ -75,7 +78,7 @@
         * Cancel global waiting note (after installing).
         * @since 3.0
         */
-        void CancelWaitingNoteL();
+        void CancelWaitingNote();
         
         /**
          * Sets dialog control flag.
@@ -89,6 +92,40 @@
           * @since 3.2         
           */              
         void ShowWaitingNoteForUninstallerL();
+        
+        /**
+         * Cancel global waiting note (after installing).
+         * @since 10.1
+         */        
+        void CancelWaitingNoteForUninstaller();
+ 
+        /**
+         * Show universal indicator for install or uninstall process.
+         * @since 10.1          
+         */ 
+        void ActivateIndicatorL( TReal aProcessValue );
+        
+        /**
+         * Set mode for universal indicator plugin. 
+         * @since 10.1 
+         * @parm aMode Flag for switchig to uninstaller mode. By default
+         * plugin works as installer mode.       
+         */        
+        void SetModeToIndicatorL( TInt aMode );
+        
+        /**
+         * Close universal indicator for install or uninstall process.
+         * @since 10.1         
+         */        
+        void CancelIndicatorL();
+ 
+//TODO: remove, it seems that this is no needed after wk18.        
+        /**
+         * Check system state. This is needed to know, can Daemon show UI
+         * dialogs.
+         * @since 10.1         
+         */       
+        //void CheckSystemState();
 
     private:
 
@@ -117,10 +154,83 @@
         TInt iDisableAllNotes;
         CDialogWatcher* iWatcher;
         
-        TBool iIsProgressDialog;
+        TBool iIsProgressDialog; // Defines that dialog is constructed.  
         CHbDeviceProgressDialogSymbian* iHbProgressDialog;
-        TBool iIsUninstallerProgressDialog;                    
-        CHbDeviceProgressDialogSymbian* iHbProgressDialogForUninstaller;                
+        TBool iIsUninstallerProgressDialog; // Defines that dialog is constructed.                   
+        CHbDeviceProgressDialogSymbian* iHbProgressDialogForUninstaller;
+        TBool iIsIndicator; // Defines that indicator is constructed.
+        CHbIndicatorSymbian* iHbIndicator;  // Univeral indicator.
+        CDialogTimer* iTimer;   // Timer for closing procress dialog.
+        // Defines that dialog has used the time interval and can not be shown.
+        TBool iTimeOffDisableProgress;         
+    };
+
+/**
+* Helper class for closing the progress dialogs shown by 
+* the DialogWrapper class.
+* 
+* @since 10.1 
+*/
+class CDialogTimer : public CActive
+    {
+    public:
+    
+        /**
+        * Destructor.
+        */
+        virtual ~CDialogTimer();
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CDialogTimer* NewL( CDialogWrapper* aDialog );
+        
+        /**
+         * Function sets time interva for progress dialog.
+         * After this time interval the progress dialog is closed.
+         * @param aRefresTime Time in microseconds.
+         */          
+         void StartDialogTimer( TUint32 aRefreshTime );
+        
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CDialogTimer();
+
+        /**
+        * 2nd phase constructor. 
+        * @param 
+        */
+        void ConstructL( CDialogWrapper* aDialog );
+        
+        /**
+         * Function sets time.
+         * @param aRefresTime Time in microseconds.
+         */          
+         void TimerSet( TUint32 aRefreshTime );
+      
+        /**
+        * 
+        */        
+        void RunL();
+
+        /**
+        * Cancel timer.
+        */        
+        void DoCancel();
+        
+        /**
+        * Handles a leave occurring in the request completion 
+        * event handler RunL.
+        */             
+        TInt RunError( TInt aError );
+
+    private:
+
+        RTimer          iRTimer;     // Timer.   
+        CDialogWrapper* iDialog;     // Dialog class.                     
     };
 }
 
--- a/appinstaller/AppinstUi/Daemon/Inc/daemoninstaller.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Inc/daemoninstaller.h	Thu May 27 12:58:35 2010 +0300
@@ -176,7 +176,13 @@
         /**
         * Indicates if this package is valid.
         */
-        TBool IsValidPackageL();      
+        TBool IsValidPackageL(); 
+        
+        /**
+         * Calculate precent value for universal indicator.
+         * This precent value show how many packages has been installed.
+         */      
+        void CalcPercentValue();
         	          
 	
     private:
@@ -215,6 +221,8 @@
         // File handle for USIF.
         RFile iSisFileHandle;
         TBool iFileOpen;
+        //CDialogTimer* iDialogTimer; 
+        TReal32 iPercentValue;
     };		
 }
 
--- a/appinstaller/AppinstUi/Daemon/Inc/uninstaller.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Inc/uninstaller.h	Thu May 27 12:58:35 2010 +0300
@@ -137,6 +137,12 @@
          * @since 3.2 
          */       
         void ExitUninstaller();
+        
+        /**
+          * Calculate precent value for universal indicator.
+          * This precent value show how many packages has been uninstalled.
+          */              
+        void CalcPercentValue();
                                              
     private:
                 
@@ -163,7 +169,9 @@
         // Uninstaller dialog.        
         CDialogWrapper* iDialogs;
         // Descriptor for mime type.
-        HBufC* iMime;                 
+        HBufC* iMime;  
+        // Percent value for universal indicator.
+        TReal iPercentValue;
     };      
 
 } //namespace Swi
--- a/appinstaller/AppinstUi/Daemon/Src/DialogWrapper.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/DialogWrapper.cpp	Thu May 27 12:58:35 2010 +0300
@@ -20,13 +20,24 @@
 // INCLUDE FILES
 #include <hb/hbwidgets/hbdeviceprogressdialogsymbian.h>
 #include <hb/hbwidgets/hbdevicenotificationdialogsymbian.h>
+#include <hb/hbcore/hbindicatorsymbian.h>
+#include <hb/hbcore/hbsymbianvariant.h>
+//#include <ssm/ssmstateawaresession.h> // For system state
+//#include <ssm/ssmstate.h>
+//#include <ssm/ssmdomaindefs.h> // KUIFrameworkDomain
 #include "DialogWrapper.h"
 #include "SWInstDebug.h"
 
 using namespace Swi;
 
+// Time interval for progress dialog.
+const TUint KDialogTimeOut = 5000000;
+// Indicator type
+_LIT( KIndicatorTypeSWIDaemon, 
+        "com.nokia.sisxsilentinstall.indicatorplugin/1.0" );
+
 //TODO: remove when HB dialogs do not crash in HW/WINS
-#define _SWIDAEMON_DISABLE_NOTES_
+//#define _SWIDAEMON_DISABLE_NOTES_
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -52,12 +63,13 @@
     iHbProgressDialog = NULL;
     iIsUninstallerProgressDialog = EFalse;
     iHbProgressDialogForUninstaller = NULL;
-                  
+    iIsIndicator = EFalse;
+    iHbIndicator = NULL;                        
     // By default Daemon will show all notes.
-    iDisableAllNotes = EFalse;
-    
+    iDisableAllNotes = EFalse;    
+    iTimeOffDisableProgress = EFalse;    
     // Create watcher AO for PS Key.
-    iWatcher = CDialogWatcher::NewL( this );   
+    iWatcher = CDialogWatcher::NewL( this );              
     // Get current PS Key 
     TInt err = iWatcher->GetPSKeyForUI( iDisableAllNotes );
     if ( err )
@@ -66,7 +78,9 @@
         iDisableAllNotes = ETrue;
         }
     // Start AO
-    iWatcher->StartWatcher();
+    iWatcher->StartWatcher();    
+    // Create dialog timer for progress dialog.
+    iTimer = CDialogTimer::NewL( this );
     }
 
 // -----------------------------------------------------------------------------
@@ -90,13 +104,34 @@
 //    
 CDialogWrapper::~CDialogWrapper()
     {
+    FLOG( _L("Daemon: CDialogWrapper::~CDialogWrapper") );
+    delete iTimer;
+    
+    // If installer's RunL leaves make sure that dialogs are closed.
+    if ( iIsProgressDialog && iHbProgressDialog )
+            {
+            iHbProgressDialog->Close();
+            }    
     delete iHbProgressDialog;
-    delete iHbProgressDialogForUninstaller;                          
+    
+    // If uninstaller's RunL leaves make sure that dialogs are closed.
+    if ( iIsUninstallerProgressDialog && iHbProgressDialogForUninstaller )
+            {
+            iHbProgressDialogForUninstaller->Close();
+            }    
+    delete iHbProgressDialogForUninstaller;
+    
+    if ( iIsIndicator && iHbIndicator )
+            {             
+            iHbIndicator->Deactivate( KIndicatorTypeSWIDaemon );                                     
+            }
+    delete iHbIndicator;
+    
     if ( iWatcher )
         {
-        iWatcher->StopWatcher();
-        delete iWatcher;
-        }
+        iWatcher->StopWatcher();        
+        }       
+    delete iWatcher;
     }
 
 // -----------------------------------------------------------------------------
@@ -108,19 +143,19 @@
 void CDialogWrapper::ShowUntrustedResultL()
     {
     FLOG( _L("Daemon: CDialogWrapper::ShowUntrustedResultL") );
-
+        
 #ifdef _SWIDAEMON_DISABLE_NOTES_
     FLOG( _L("Daemon: CDialogWrapper: iDisableAllNotes = ETrue") );
     iDisableAllNotes = ETrue;
-#endif      
-      
+#endif                
+    
     // Let watcher to know that waiting note is canceled.
     iWatcher->CancelNoteRequest();            
         
     // Inform watcher that we have request to show note. 
-    iWatcher->CancelNoteRequest();   
-    
-    if ( iDisableAllNotes == EFalse )
+    iWatcher->CancelNoteRequest(); 
+            
+    if ( !iDisableAllNotes  )
         {    
         CHbDeviceNotificationDialogSymbian* notificationDialog = 
                 CHbDeviceNotificationDialogSymbian::NewL( NULL );
@@ -131,9 +166,7 @@
         _LIT( KTempIconText,"note_info");
         _LIT( KTempTextTitle,"SW Silent Installer" );
         _LIT( KTempTextForErrorMessage,"Untrusted software was found." ); 
-                     
-        //notificationDialog->SetTimeout( KHbLongNotificationDialogTimeout );        
-        
+                                         
         notificationDialog->NotificationL( KTempIconText, 
                                            KTempTextTitle , 
                                            KTempTextForErrorMessage );
@@ -159,8 +192,8 @@
     
     // Inform watcher that we have request to show note. 
     iWatcher->CancelNoteRequest();   
-    
-    if ( iDisableAllNotes == EFalse )
+            
+    if ( !iDisableAllNotes )
         {    
         CHbDeviceNotificationDialogSymbian* notificationDialog = 
                 CHbDeviceNotificationDialogSymbian::NewL( NULL );
@@ -171,9 +204,7 @@
         _LIT( KTempIconText,"note_info");
         _LIT( KTempTextTitle,"SW Silent Installer" );
         _LIT( KTempTextForErrorMessage,"Installation was not completed." ); 
-                   
-        //notificationDialog->SetTimeout( KHbLongNotificationDialogTimeout );        
-        
+                                        
         notificationDialog->NotificationL( KTempIconText, 
                                            KTempTextTitle , 
                                            KTempTextForErrorMessage );
@@ -191,26 +222,32 @@
 void CDialogWrapper::ShowWaitingNoteL()
 	{
     FLOG( _L("Daemon: CDialogWrapper::ShowWaitingNoteL") );
-    
+           
 #ifdef _SWIDAEMON_DISABLE_NOTES_
     FLOG( _L("Daemon: CDialogWrapper: iDisableAllNotes = ETrue") );
     iDisableAllNotes = ETrue;
 #endif
     
-    if ( iDisableAllNotes == EFalse )
+    FLOG_1( _L("Daemon: iDisableAllNotes: %d"), iDisableAllNotes );
+    FLOG_1( _L("Daemon: iIsProgressDialog: %d"), iIsProgressDialog );
+    FLOG_1( _L("Daemon: iTimeOffDisableProgress: %d"), iTimeOffDisableProgress );
+            
+    if ( !iDisableAllNotes )
         {          
-        if ( !iIsProgressDialog )
+        if ( !iIsProgressDialog && !iTimeOffDisableProgress )
             {    
             iHbProgressDialog = CHbDeviceProgressDialogSymbian::NewL( 
                                    CHbDeviceProgressDialogSymbian::EWaitDialog, 
                                    NULL );
             iIsProgressDialog = ETrue;
-            
-//TODO get string from log file.            
+                       
             _LIT( KTempTextForProgressDialog,"Installing" );
             
-            iHbProgressDialog->SetTextL( KTempTextForProgressDialog );            
-            iHbProgressDialog->ShowL();
+            iHbProgressDialog->SetTextL( KTempTextForProgressDialog ); 
+            FLOG( _L("Daemon: ShowWaitingNoteL: ShowL") );
+            iHbProgressDialog->ShowL();            
+            FLOG( _L("Daemon: ShowWaitingNoteL: StartDialogTimer") );
+            iTimer->StartDialogTimer( KDialogTimeOut );
             }
         }
     else if ( iDisableAllNotes )
@@ -227,7 +264,7 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 // 
-void CDialogWrapper::CancelWaitingNoteL()
+void CDialogWrapper::CancelWaitingNote()
 	{ 
     FLOG( _L("Daemon: CDialogWrapper::CancelWaitingNoteL") );
     
@@ -235,8 +272,11 @@
 		{
 		iHbProgressDialog->Close();
 		delete iHbProgressDialog;
+		//Make sure not to delete twice in destructor.
 		iHbProgressDialog = NULL;
 		iIsProgressDialog = EFalse;
+		
+		iTimeOffDisableProgress = ETrue;
 		}
 		
     // Let watcher to know that waiting note is canceled.
@@ -279,10 +319,13 @@
     iDisableAllNotes = ETrue;
 #endif
     
-    //TODO: All resoureces nees to be rewriten for device dialogs (QT)   
-    if ( iDisableAllNotes == EFalse )
+    FLOG_1( _L("Daemon: iDisableAllNotes: %d"), iDisableAllNotes );
+    FLOG_1( _L("Daemon: iIsProgressDialog: %d"), iIsProgressDialog );
+    FLOG_1( _L("Daemon: iTimeOffDisableProgress: %d"), iTimeOffDisableProgress );
+              
+    if ( !iDisableAllNotes )
         {
-        if ( !iIsUninstallerProgressDialog )
+        if ( !iIsUninstallerProgressDialog && !iTimeOffDisableProgress )
             {    
             iHbProgressDialogForUninstaller = 
                     CHbDeviceProgressDialogSymbian::NewL( 
@@ -291,8 +334,11 @@
             iIsUninstallerProgressDialog = ETrue;
     //TODO get string from log file.            
             _LIT( KTempTextForProgressDialog,"Uninstalling" );            
-            iHbProgressDialogForUninstaller->SetTextL( KTempTextForProgressDialog );            
+            iHbProgressDialogForUninstaller->SetTextL( KTempTextForProgressDialog ); 
+            FLOG( _L("Daemon: ShowWaitingNoteForUninstallerL: ShowL") );
             iHbProgressDialogForUninstaller->ShowL();
+            FLOG( _L("Daemon: ShowWaitingNoteForUninstallerL: StartDialogTimer") );
+            iTimer->StartDialogTimer( KDialogTimeOut );
             }
         }
     else if ( iDisableAllNotes )
@@ -302,4 +348,274 @@
         iWatcher->RequestToDisplayNote();
         }
     }
+
+// -----------------------------------------------------------------------------
+// CDialogWrapper::CancelWaitingNoteL  
+// Cancel global waiting note after installing.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+// 
+void CDialogWrapper::CancelWaitingNoteForUninstaller()
+    { 
+    FLOG( _L("Daemon: CDialogWrapper::CancelWaitingNoteForUninstallerL") );
+    
+    if ( iIsUninstallerProgressDialog )
+        {
+        iHbProgressDialogForUninstaller->Close();
+        delete iHbProgressDialogForUninstaller;
+        //Make sure not to delete twice in destructor.
+        iHbProgressDialogForUninstaller = NULL; 
+        iIsUninstallerProgressDialog = EFalse;
+        
+        iTimeOffDisableProgress = ETrue;
+        }
+        
+    // Let watcher to know that waiting note is canceled.
+    iWatcher->CancelNoteRequest();
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogWrapper::ActivateIndicatorL()  
+// 
+// -----------------------------------------------------------------------------
+// 
+void CDialogWrapper::ActivateIndicatorL( TReal aProcessValue )
+    {  
+    FLOG( _L("Daemon: CDialogWrapper::ActivateIndicatorL") );
+                  
+    if ( !iIsIndicator )
+        {
+        FLOG( _L("Daemon: CHbIndicatorSymbian::NewL") );
+        iHbIndicator = CHbIndicatorSymbian::NewL();
+        iIsIndicator = ETrue;             
+        }
+    
+    TReal processValue = aProcessValue;
+        
+    CHbSymbianVariant* hbParam = CHbSymbianVariant::NewL( 
+                                                 &processValue,
+                                                 CHbSymbianVariant::EReal );    
+    CleanupStack::PushL( hbParam );
+    
+    FLOG( _L("Daemon: ActivateIndicatorL: Activate") );
+    iHbIndicator->Activate( KIndicatorTypeSWIDaemon, hbParam );
+    
+    CleanupStack::PopAndDestroy( hbParam );         
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogWrapper::SetModeToIndicatorL()  
+// 
+// -----------------------------------------------------------------------------
+// 
+void CDialogWrapper::SetModeToIndicatorL( TInt aMode )
+    {  
+    FLOG_1( _L("Daemon: CDialogWrapper::SetModeToIndicatorL: aMode: %d"),
+            aMode );
+                  
+    if ( !iIsIndicator )
+        {
+        FLOG( _L("Daemon: CHbIndicatorSymbian::NewL") );
+        iHbIndicator = CHbIndicatorSymbian::NewL();
+        iIsIndicator = ETrue;        
+        }
+    // Set mode.
+    TReal mode = aMode;    
+    CHbSymbianVariant* hbParam = CHbSymbianVariant::NewL( 
+                                                 &mode,
+                                                 CHbSymbianVariant::EReal );    
+    CleanupStack::PushL( hbParam );    
+    FLOG( _L("Daemon: SetModeToIndicatorL: Activate") );
+    iHbIndicator->Activate( KIndicatorTypeSWIDaemon, hbParam );
+    
+    CleanupStack::PopAndDestroy( hbParam );         
+    }
+
+
+// -----------------------------------------------------------------------------
+// CDialogWrapper::CancelIndicatorL  
+// 
+// -----------------------------------------------------------------------------
+// 
+void CDialogWrapper::CancelIndicatorL()
+    {
+    FLOG( _L("Daemon: CDialogWrapper::CancelIndicatorL") );
+    
+    if ( iIsIndicator )
+        { 
+        FLOG( _L("Daemon: CancelIndicatorL: Deactivate") );
+        iHbIndicator->Deactivate( KIndicatorTypeSWIDaemon );              
+        delete iHbIndicator;
+        iHbIndicator = NULL; //Make sure not to delete twice in destructor.
+        iIsIndicator = EFalse;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogWrapper::CheckSystemState()  
+// 
+// -----------------------------------------------------------------------------
+// 
+/*
+void CDialogWrapper::CheckSystemState()
+    {
+    FLOG( _L("Daemon: CDialogWrapper::CheckSystemState TEST") );
+
+    // We need to check this only if system is not ready to show 
+    // dialogs e.g. UI is not up.
+    if ( !iSystemReadyToShowDialogs )
+        {    
+        RSsmStateAwareSession systemStateSession;
+         
+        TInt err = systemStateSession.Connect( KUIFrameworkDomain3 );
+        FLOG_1( _L("Daemon: systemStateSession.Connect err = %d"), err ); 
+        
+        if ( err == KErrNone )
+            {
+            TSsmState currentState = systemStateSession.State();
+            systemStateSession.Close();
+            
+            FLOG_1( _L("Daemon: System main state = %d"), currentState.MainState() ); 
+            FLOG_1( _L("Daemon: System sub state = %d"), currentState.SubState() ); 
+            
+            
+            if ( currentState.MainState() == ESsmNormal )
+                {
+                iSystemReadyToShowDialogs = ETrue;            
+                }
+            else
+                {
+                iSystemReadyToShowDialogs = EFalse;            
+                }
+            }
+        else
+            {
+            iSystemReadyToShowDialogs = EFalse;
+            }
+        }
+    FLOG_1( _L("Daemon: iSystemReadyToShowDialogs = %d"), 
+            iSystemReadyToShowDialogs );      
+    }
+*/
+
+//-------------------------------------------------------------------------------
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::CDialogTimer()
+//
+// -----------------------------------------------------------------------------
+//
+CDialogTimer::CDialogTimer() : CActive( EPriorityNormal )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::~CDialogTimer()
+//
+// -----------------------------------------------------------------------------
+//
+CDialogTimer::~CDialogTimer()
+    {
+    FLOG( _L("Daemon: CDialogTimer::~CDialogTimer") );
+    // Cancel the outstanding request. Calls the active object’s
+    // DoCancel function if request is outstanding.
+    Cancel();
+    // Delete RTimer
+    iRTimer.Close();
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::NewL()
+//
+// -----------------------------------------------------------------------------
+//
+CDialogTimer* CDialogTimer::NewL( CDialogWrapper* aDialog )
+    {
+    CDialogTimer* activeTimer = new (ELeave) CDialogTimer();
+    CleanupStack::PushL( activeTimer );
+    activeTimer->ConstructL( aDialog );
+    CleanupStack::Pop();
+    return activeTimer;
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::ConstructL()
+//
+// -----------------------------------------------------------------------------
+//
+void CDialogTimer::ConstructL( CDialogWrapper* aDialog )
+    {  
+    if ( aDialog == NULL )
+        {
+        User::Leave( KErrArgument );
+        }  
+    iDialog = aDialog;
+    CActiveScheduler::Add( this );                 
+    iRTimer.CreateLocal();                                     
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::StartDialogTimer()
+//
+// -----------------------------------------------------------------------------
+//
+void CDialogTimer::StartDialogTimer( TUint32 aRefreshTime )
+    {
+    FLOG( _L("Daemon: CDialogTimer::StartDialogTimer") );
+    // Check first that we do not have request outstanding.
+    if ( !IsActive() )
+        {
+        // Set time interval for dialog.
+        TimerSet( aRefreshTime );     
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::TimerSet()
+//
+// -----------------------------------------------------------------------------
+//
+void CDialogTimer::TimerSet( TUint32 aRefreshTime )
+    {  
+    FLOG_1( _L("Daemon: CDialogTimer::TimerSet time: %d"), aRefreshTime );
+    // Set timer interval.    
+    iRTimer.After( iStatus, aRefreshTime );               
+    // Set active. Start wait for timer.
+    SetActive();
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::RunL()
+//
+// -----------------------------------------------------------------------------
+//
+void CDialogTimer::RunL()
+    {
+    FLOG( _L("Daemon: CDialogTimer::RunL: Cancel waiting note") );
+    iDialog->CancelWaitingNote();
+    iDialog->CancelWaitingNoteForUninstaller();
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::DoCancel()
+//
+// -----------------------------------------------------------------------------
+//
+void CDialogTimer::DoCancel()
+    {
+    // Cancel outstanding request for a timer event.
+    iRTimer.Cancel();
+    }
+
+// -----------------------------------------------------------------------------
+// CDialogTimer::RunError()
+//
+// -----------------------------------------------------------------------------
+//
+TInt CDialogTimer::RunError( TInt aError )
+    {                        
+    return aError;       
+    }
+
+
 //  End of File  
--- a/appinstaller/AppinstUi/Daemon/Src/SilentLauncher.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/SilentLauncher.cpp	Thu May 27 12:58:35 2010 +0300
@@ -60,9 +60,7 @@
     iSifOptions->AddIntL( Usif::KSifInParam_GrantCapabilities, EFalse ); 
     // Defined for the install.
     iSifOptions->AddIntL( Usif::KSifInParam_InstallOptionalItems, ETrue );          
-    iSifOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, ETrue ); 
-    // TODO: Is this removed from current USIF ?	  
-    //iSifOptions->AddIntL( Usif::KSifInParam_DisplayPackageInfo, ETrue );     
+    iSifOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, ETrue );            
     iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, ETrue );
     iSifOptions->AddIntL( Usif::KSifInParam_AllowDownload, ETrue );
     iSifOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, ETrue );
@@ -70,6 +68,8 @@
     
 // TODO: is this defined in USIF?    
     //iSifOptions->AddIntL( Usif::KSifInParam_Languages, NULL );
+// TODO: Not supported anymore after wk18, do we have some other param for this.
+    //iSifOptions->AddIntL( Usif::KSifInParam_DisplayPackageInfo, ETrue );
     
 // TODO: remove old params.
     /*
--- a/appinstaller/AppinstUi/Daemon/Src/daemoninstaller.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/daemoninstaller.cpp	Thu May 27 12:58:35 2010 +0300
@@ -119,7 +119,9 @@
     iPreviouslyInstalledAppsCache = CPreviouslyInstalledAppsCache::NewL();
     iInstallationFailedAppsCache = CInstallationFailedAppsCache::NewL();
     iShutdownWatcher = CShutdownWatcher::NewL( *this );
-    iShutdownWatcher->Start();
+    iShutdownWatcher->Start();        
+    iPercentValue = 0;
+    
     // For uninstaller
     // SisInstaller do not own this so do not delete.     
     iProgramStatus = &aMainStatus;  
@@ -266,7 +268,7 @@
 // -----------------------------------------------------------------------
 //
 void CSisInstaller::RunL()
-    {
+    {    
     FLOG_1( _L("Daemon: Installer RunL status:%d"), iStatus.Int() );  
     FLOG_1( _L("Daemon: Installer RunL state:%d"), iState );                
     
@@ -401,6 +403,9 @@
                 
                 if ( iFileIndex < iFilesToInstall.Count() )
                     { 
+                    // Let's calc. values before index is updated.
+                    CalcPercentValue();
+                                                       
                     // Get next sisx package from array.                 
                     iSisFile.Copy( *iFilesToInstall[iFileIndex] );
                     ++iFileIndex;    
@@ -458,7 +463,12 @@
                                                         iSisFile, 
                                                         iStatus );
                             
-                            iDialogs->ShowWaitingNoteL(); 
+                            // Start to show progress dialog. Dialog is shown 
+                            // only 3 sec. 
+                            iDialogs->ShowWaitingNoteL();    
+                            // Start also the universal indicator.
+                            iDialogs->ActivateIndicatorL( iPercentValue );
+                            
                             iState = EDSisInstallerStateInstalling;                       
                             iInstallerState = iState;                                                   
                             SetActive();                               
@@ -578,6 +588,9 @@
 //
 void CSisInstaller::InstallationCompleted( TInt aResult )
     {
+    // Let's update universal indicator ones more.   
+    iDialogs->ActivateIndicatorL( 100 );
+    
     FLOG_1( _L("Daemon: InstallationCompleted with result = %d"), aResult );  
     iState = EDSisInstallerStateIdle;    
     iInstallErr = KErrNone;     
@@ -602,8 +615,11 @@
         iSisFileHandle.Close();
         iFileOpen = EFalse;
         }    
-                            
-    TRAP_IGNORE( iDialogs->CancelWaitingNoteL() );
+    
+    // Make sure that progress note is closed.
+    TRAP_IGNORE( iDialogs->CancelWaitingNote() );
+    // Close the universal indicator. 
+    iDialogs->CancelIndicatorL();
         
     if ( aResult != KErrNone && 
          iSisFile.Length() > 0 && 
@@ -780,7 +796,46 @@
     FLOG_1( _L("Daemon: IsValidPackageL = %d"), result );  
     return result;    
     }
-    
+ 
+// -----------------------------------------------------------------------
+// CSisInstaller::CalcPrecentValue
+// -----------------------------------------------------------------------
+//
+void CSisInstaller::CalcPercentValue()
+    {  
+    FLOG( _L("Daemon: CSisInstaller::CalcPercentValue") );
+    FLOG_1( _L("Daemon: iFileIndex = %d"), iFileIndex ); 
+    // Let's calculate indicator value for UI now.
+    TInt sisxFileCount = iFilesToInstall.Count();
+    FLOG_1( _L("Daemon: iFilesToInstall.Count = %d"), sisxFileCount ); 
+    iPercentValue = 0;
+
+    // Note! if iFileIndex is zero, no package is installed bacause
+    // installation process starts after this function.     
+    if ( iFileIndex && sisxFileCount )
+        {
+        // Let's calculate new precent value after some
+        // package is installed.     
+        if ( iFileIndex <= sisxFileCount )
+            {
+            TReal32 realFileIndex = iFileIndex;
+            TReal32 realFileCount = sisxFileCount;
+            iPercentValue = (realFileIndex/realFileCount)*100;                                   
+            }
+        else
+            {
+            // Most probably all is installed if index is bigger then
+            // filen count. Let's not show over 100% to user.
+            // This may happend after last package is processed since 
+            // index counter is updated before install starts.
+            iPercentValue = 100;
+            }
+        }
+        
+    //TInt tempVal = (TInt)iPercentValue;    
+    FLOG_1( _L("Daemon: CalcPercentValue value = %d"), (TInt)iPercentValue );
+    }
+
 //EOF
 
 
--- a/appinstaller/AppinstUi/Daemon/Src/dialogwatcher.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/dialogwatcher.cpp	Thu May 27 12:58:35 2010 +0300
@@ -142,7 +142,8 @@
             {
             FLOG( _L("[CDialogWatcher] RunL: PSKey true -> Cancel notes ") ); 
             // If key is true, cancel all dialogs.
-            iDialogWrapper->CancelWaitingNoteL(); 
+            iDialogWrapper->CancelWaitingNote(); 
+            iDialogWrapper->CancelWaitingNoteForUninstaller();
             iDialogWrapper->SetUIFlag( psKey );
             // Issue new request.
             StartWatcher();
@@ -173,7 +174,8 @@
         FLOG( _L("[CDialogWatcher] RunL: Cancel notes") ); 
         // If we can not read the the PS Key, let's close dialogs, 
         // so we do not block the start applications.
-        iDialogWrapper->CancelWaitingNoteL(); 
+        iDialogWrapper->CancelWaitingNote(); 
+        iDialogWrapper->CancelWaitingNoteForUninstaller();
         iDialogWrapper->SetUIFlag( ETrue );
         // Issue new request.
         StartWatcher();
--- a/appinstaller/AppinstUi/Daemon/Src/main.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/main.cpp	Thu May 27 12:58:35 2010 +0300
@@ -44,13 +44,15 @@
     // Rename thread as SWI Daemon.
     User::RenameThread( KSWIDaemonInstaller );  
 
+    
 #ifdef __WINS__   
-//TODO: this is tomprary hack since we can not show UI
+//TODO: this is tomprary h7ack since we can not show UI
 // dialogs if QT is not up in wins.
 FLOG( _L("Daemon: Let's wait QT UI to boot up in WINS env.") );   
 FLOG( _L("Daemon: Start SWI Daemon after 300 sec.") );   
-User::After( 150000000 );
 User::After( 15000000 );
+//User::After( 150000000 );
+//User::After( 15000000 );
 #endif  // WINS
 
     // For uninstaller
--- a/appinstaller/AppinstUi/Daemon/Src/previouslyInstalledAppsCache.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/previouslyInstalledAppsCache.cpp	Thu May 27 12:58:35 2010 +0300
@@ -201,6 +201,7 @@
 //  
 void CPreviouslyInstalledAppsCache::ConstructL()
 	{
+    FLOG( _L("Daemon: CPreviouslyInstalledAppsCache::ConstructL ") );
 	User::LeaveIfError(iFs.Connect());
 	TInt drive = 0;
     iFs.CharToDrive( 
@@ -211,13 +212,13 @@
 
 	// Read cache file
 	TRAP_IGNORE(InitFromCacheFileL());
-		
-    TRAPD( err, UpdateAllL() );
-    if(err == KErrNone)
-        {
-        // If we managed to scan the registry, and update the cache, flush to disk.
-        TRAP_IGNORE(FlushToDiskL());
-        }	
+	
+//TODO: Test if this is really needed. Let's not do updateall 2 time in boot.		
+   // TRAPD( err, UpdateAllL() );
+   // if(err == KErrNone)
+   //     {        
+   //     TRAP_IGNORE(FlushToDiskL());
+   //     }	
 
 	}
 
--- a/appinstaller/AppinstUi/Daemon/Src/uninstaller.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/uninstaller.cpp	Thu May 27 12:58:35 2010 +0300
@@ -281,6 +281,20 @@
                      // Display installing note for user.
                      iDialogs->ShowWaitingNoteForUninstallerL(); 
                      
+                     if ( iUidArrayIndex == 0 )
+                         {
+                         // Set uninstall mode for universal indicator and
+                         // set percent value to 0%.
+                         iDialogs->SetModeToIndicatorL( KSWIDaemonUninstallerMode );
+                         }
+                     else
+                         {
+                         // Calculate current percent value to iPercentValue. 
+                         CalcPercentValue();
+                         // Activate new value to universal indicator.
+                         iDialogs->ActivateIndicatorL( iPercentValue );
+                         }
+                     
                      FLOG_1( _L("[SISUninstaller] Run uninstall index = %d"), 
                              iUidArrayIndex ); 
                      
@@ -347,6 +361,8 @@
 void CSisPkgUninstaller::UninstallationCompleted( TInt /*aResult*/ )
     {
     FLOG( _L("[SISUninstaller] UninstallationCompleted") );
+    // Update indicator value last time and show 100% to user.
+    iDialogs->ActivateIndicatorL( 100 );
     
     if ( EStateUninstalling == iProgramStatus->GetProgramStatus() )
          {   
@@ -358,7 +374,9 @@
     iState = EUninstallerStateIdle; 
           
     // Cancel waiting note.
-    TRAP_IGNORE( iDialogs->CancelWaitingNoteL() );       
+    TRAP_IGNORE( iDialogs->CancelWaitingNoteForUninstaller());
+    // Close indicator.
+    iDialogs->CancelIndicatorL();
     }  
 
 
@@ -374,4 +392,38 @@
     iRevisor->Exit();
     }
 
+// -----------------------------------------------------------------------
+// CSisInstaller::CalcPrecentValue
+// -----------------------------------------------------------------------
+//
+void CSisPkgUninstaller::CalcPercentValue()
+    {     
+    FLOG( _L("[SISUninstaller] CalcPercentValue") );
+    FLOG_1( _L("[SISUninstaller] iUidArrayIndex = %d"), iUidArrayIndex ); 
+    // Let's calculate indicator value for UI now.
+    TInt packageUidCount = iPkgUidArray.Count();
+    FLOG_1( _L("[SISUninstaller] pkg UID count = %d"), packageUidCount ); 
+    
+    iPercentValue = 0;
+
+    if ( iUidArrayIndex && packageUidCount )
+        {
+        // Let's calculate new precent value.     
+        if ( iUidArrayIndex <= packageUidCount )
+            {
+            TReal32 realArrayIndex = iUidArrayIndex;
+            TReal32 realPkgCount = packageUidCount;
+            iPercentValue = (realArrayIndex/realPkgCount)*100;                                   
+            }
+        else
+            {
+            // Most probably all is uninstalled if index is bigger then
+            // filen count. Let's not show over 100% to user.           
+            iPercentValue = 100;
+            }
+        }
+            
+    FLOG_1( _L("[SISUninstaller] percent value = %d"), (TInt)iPercentValue );
+    }
+
 //EOF
--- a/appinstaller/AppinstUi/appinstui.pro	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/appinstui.pro	Thu May 27 12:58:35 2010 +0300
@@ -17,5 +17,6 @@
 TEMPLATE = subdirs
 
 SUBDIRS += sifuidevicedialogplugin/sifuidevicedialogplugin.pro \
-    sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.pro
+    sifuiinstallindicatorplugin/sifuiinstallindicatorplugin.pro \
+    sisxsilentinstallindicatorplugin/sisxsilentinstallindicatorplugin.pro
 
--- a/appinstaller/AppinstUi/group/daemon.mmp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/group/daemon.mmp	Thu May 27 12:58:35 2010 +0300
@@ -81,6 +81,7 @@
 LIBRARY        sif.lib               // USIF SW Installer FW
 LIBRARY        scrclient.lib
 LIBRARY        hbwidgets.lib         // For Symbian Device Dialogs
+LIBRARY        hbcore.lib	    // For HbIndicatorSymbian
 
 DEBUGLIBRARY   flogger.lib
 
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialog.h	Thu May 27 12:58:35 2010 +0300
@@ -77,7 +77,6 @@
     void handleAccepted();
     void handleCancelled();
     void handleMemorySelectionChanged(const QChar &driveLetter);
-    void handleDisplayCertificateDetails();
     void handleHidePressed();
     void handleIndicatorActivityChanged();
     void handleShowInstalled();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificatedetails.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Certificate details dialog in SifUi
+*
+*/
+
+#ifndef SIFUIDIALOGCERTIFICATEDETAILS_H
+#define SIFUIDIALOGCERTIFICATEDETAILS_H
+
+#include <hbdialog.h>                   // HbDialog
+
+class SifUiDialogCertificateInfo;
+
+
+/**
+ * SifUi certificate details dialog. Implements selection list and
+ * certificate details dialogs. Selection list is shown first if there
+ * are more than one certificate to be displayed.
+ */
+class SifUiDialogCertificateDetails : public HbDialog
+{
+    Q_OBJECT
+
+public:     // constructor and destructor
+    SifUiDialogCertificateDetails(const QList<SifUiDialogCertificateInfo*> &certificates);
+    virtual ~SifUiDialogCertificateDetails();
+
+public:     // new functions
+    void showDetails();
+
+private:    // new functions
+    QString certificateDetails(const SifUiDialogCertificateInfo& certificate);
+    void showList();
+
+private slots:
+    void certificateSelected();
+    void showCertificate(int index);
+
+private:    // data
+    const QList<SifUiDialogCertificateInfo*> &mCertificates;
+};
+
+#endif // SIFUICERTIFICSIFUIDIALOGCERTIFICATEDETAILS_HATES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogcertificateinfo.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Certificate info class for SIF UI device dialog plugin.
+*
+*/
+
+#ifndef SIFUIDIALOGCERTIFICATEINFO_H
+#define SIFUIDIALOGCERTIFICATEINFO_H
+
+#include <QDateTime>
+
+/**
+ * Certificate info class for SifUi device dialogs.
+ * This class corresponds to Symbian-side CSifUiCertificateInfo class.
+ */
+class SifUiDialogCertificateInfo
+{
+public:     // constructor and destructor
+    SifUiDialogCertificateInfo(const QString &subject, const QString &issuer,
+        const QByteArray &fingerprint, const QByteArray &serialNumber,
+        const QDateTime &validFrom, const QDateTime &validTo);
+    virtual ~SifUiDialogCertificateInfo();
+
+public:     // new functions
+    const QString subjectName() const;
+    const QString issuerName() const;
+    const QByteArray fingerprint() const;
+    const QString formattedFingerprint() const;
+    const QByteArray serialNumber() const;
+    const QString formattedSerialNumber() const;
+    const QDateTime validFrom() const;
+    const QDateTime validTo() const;
+
+private:
+    QString mSubjectName;
+    QString mIssuerName;
+    QByteArray mFingerprint;
+    QByteArray mSerialNumber;
+    QDateTime mValidFrom;
+    QDateTime mValidTo;
+};
+
+#endif // SIFUIDIALOGCERTIFICATEINFO_H
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogdefinitions.h	Thu May 27 12:58:35 2010 +0300
@@ -43,7 +43,7 @@
 const QString KSifUiApplicationSize = "size";           // integer
 const QString KSifUiApplicationDetails = "details";     // string list
 const QString KSifUiMemorySelection = "mem";            // string (comma separated drive letters)
-const QString KSifUiCertificates = "cert";              // string list ??
+const QString KSifUiCertificates = "cert";              // binary
 
 // Variant map keys for "progress note" dialog parameters
 const QString KSifUiProgressNoteText = "txt";           // string
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogtitlewidget.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/inc/sifuidialogtitlewidget.h	Thu May 27 12:58:35 2010 +0300
@@ -20,10 +20,12 @@
 
 #include <hbwidget.h>
 #include "sifuidialogdefinitions.h"         // SifUiDeviceDialogType, SifUiDeviceDialogMode
+#include "sifuidialogcertificateinfo.h"     // SifUiDialogCertificateInfo
 
 class QGraphicsLinearLayout;
 class HbLabel;
 class HbPushButton;
+class SifUiDialogCertificateDetails;
 
 
 class SifUiDialogTitleWidget : public HbWidget
@@ -37,19 +39,22 @@
     void constructFromParameters(const QVariantMap &parameters);
     void updateFromParameters(const QVariantMap &parameters);
 
-signals:
-    void certificatesClicked();
-
 private:
     Q_DISABLE_COPY(SifUiDialogTitleWidget)
     QString defaultTitle(SifUiDeviceDialogType type);
-    void createCertButton();
-    void removeCertButton();
+    void updateTitle(const QVariantMap &parameters);
+    void updateCertificates(const QVariantMap &parameters);
+    QList<SifUiDialogCertificateInfo*> *getCertificates(QByteArray array);
+
+private slots:
+    void certificatesClicked();
 
 private:    // data
     QGraphicsLinearLayout *mLayout;
     HbLabel *mTitle;
     HbPushButton *mCertButton;
+    QList<SifUiDialogCertificateInfo*> *mCertificates;
+    SifUiDialogCertificateDetails *mDetailsDialog;
 };
 
 #endif // SIFUIDIALOGTITLEWIDGET_H
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/sifuidevicedialogplugin.pro	Thu May 27 12:58:35 2010 +0300
@@ -16,8 +16,7 @@
 
 TEMPLATE = lib
 TARGET = sifuidevicedialogplugin
-CONFIG += plugin
-CONFIG += hb
+CONFIG += hb plugin
 #TRANSLATIONS = sifuidevicedialogplugin.ts
 
 INCLUDEPATH += .
@@ -31,31 +30,37 @@
     inc/sifuidialogdefinitions.h \
     inc/sifuidialog.h \
     inc/sifuidialogtitlewidget.h \
-    inc/sifuidialogcontentwidget.h
+    inc/sifuidialogcontentwidget.h \
+    inc/sifuidialogcertificateinfo.h \
+    inc/sifuidialogcertificatedetails.h
 
 SOURCES += src/sifuidevicedialogplugin.cpp \
     src/sifuidialog.cpp \
     src/sifuidialogtitlewidget.cpp \
-    src/sifuidialogcontentwidget.cpp
+    src/sifuidialogcontentwidget.cpp \
+    src/sifuidialogcertificateinfo.cpp \
+    src/sifuidialogcertificatedetails.cpp
 
 symbian: {
     TARGET.EPOCALLOWDLLDATA = 1
     TARGET.CAPABILITY = CAP_GENERAL_DLL
     TARGET.UID3 = 0x2002C3AC
 
+    SOURCES += src/sifuidialogtitlewidget_symbian.cpp
+
     pluginstub.sources = sifuidevicedialogplugin.dll
     pluginstub.path = /resource/plugins/devicedialogs
     DEPLOYMENT += pluginstub
 
-	LIBS += -lfbscli -lPlatformEnv
+    LIBS += -lfbscli -lPlatformEnv -lestor
 }
 
 BLD_INF_RULES.prj_exports += \
-  "$${LITERAL_HASH}include <platform_paths.hrh>" \
-  "qmakepluginstubs/sifuidevicedialogplugin.qtplugin /epoc32/data/z/pluginstub/sifuidevicedialogplugin.qtplugin" \
-  "inc/sifuidialogdefinitions.h MW_LAYER_PLATFORM_EXPORT_PATH(sifuidialogdefinitions.h)" \
-  "rom/sifuidevicedialogplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sifuidevicedialogplugin.iby)" \
-  "rom/sifuidevicedialogplugin_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(sifuidevicedialogplugin_resources.iby)"
+    "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "qmakepluginstubs/sifuidevicedialogplugin.qtplugin /epoc32/data/z/pluginstub/sifuidevicedialogplugin.qtplugin" \
+    "inc/sifuidialogdefinitions.h MW_LAYER_PLATFORM_EXPORT_PATH(sifuidialogdefinitions.h)" \
+    "rom/sifuidevicedialogplugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sifuidevicedialogplugin.iby)" \
+    "rom/sifuidevicedialogplugin_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(sifuidevicedialogplugin_resources.iby)"
 
 LIBS += -lxqservice
 
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidevicedialogplugin.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidevicedialogplugin.cpp	Thu May 27 12:58:35 2010 +0300
@@ -91,7 +91,7 @@
     Q_UNUSED(deviceDialogType);
     Q_UNUSED(parameters);
 
-    info->group = DeviceNotificationDialogGroup;
+    info->group = GenericDeviceDialogGroup;
     info->flags = NoDeviceDialogFlags;
     info->priority = DefaultPriority;
 
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialog.cpp	Thu May 27 12:58:35 2010 +0300
@@ -27,6 +27,7 @@
 #include <QFile>
 #include <hbmessagebox.h>
 #include <qvaluespacesubscriber.h>
+#include <xqappmgr.h>                       // XQApplicationManager
 
 QTM_USE_NAMESPACE
 
@@ -195,15 +196,11 @@
 
     mDialogType = dialogType(parameters);
 
-    // Title
     Q_ASSERT(mTitle == 0);
     mTitle = new SifUiDialogTitleWidget(this);
     mTitle->constructFromParameters(parameters);
-    connect(mTitle, SIGNAL(certificatesClicked()),
-            this, SLOT(handleDisplayCertificateDetails()));
     setHeadingWidget(mTitle);
 
-    // Content
     Q_ASSERT(mContent == 0);
     mContent = new SifUiDialogContentWidget(this);
     mContent->constructFromParameters(parameters);
@@ -211,7 +208,6 @@
             this, SLOT(handleMemorySelectionChanged(const QChar &)));
     setContentWidget(mContent);
 
-    // Buttons
     updateButtons();
 
     return true;
@@ -367,16 +363,6 @@
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialog::handleDisplayCertificateDetails()
-// ----------------------------------------------------------------------------
-//
-void SifUiDialog::handleDisplayCertificateDetails()
-{
-    // TODO: display certificate details, or the following note:
-    HbMessageBox::warning(tr("Application is not certified. It's origin and authenticity cannot be proved."));
-}
-
-// ----------------------------------------------------------------------------
 // SifUiDialog::handleHidePressed()
 // ----------------------------------------------------------------------------
 //
@@ -417,8 +403,22 @@
 //
 void SifUiDialog::handleShowInstalled()
 {
-    // TODO: launch applib
-    HbMessageBox::warning(tr("Not implemented yet"));
+    QUrl openRecentView("appto://20022F35?activityname=AppLibRecentView");
+
+    XQApplicationManager applicationManager;
+    XQAiwRequest *request = applicationManager.create(openRecentView);
+    if (request) {
+        bool result = request->send();
+        if (result) {
+            closeDeviceDialog(false);
+        } else {
+            // TODO: proper error handling
+            int error = request->lastError();
+            QString messageText = tr("Unable to open AppLib. Error %1").arg(error);
+            HbMessageBox::warning(messageText);
+        }
+        delete request;
+    }
 }
 
 // ----------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificatedetails.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Certificate details dialog in SifUi
+*
+*/
+
+#include "sifuidialogcertificatedetails.h"      // SifUiCertificateDetails
+#include "sifuidialogcertificateinfo.h"         // SifUiDialogCertificateInfo
+#include <hblabel.h>                            // HbLabel
+#include <hbtextedit.h>                         // HbTextEdit
+#include <hblistwidget.h>                       // HbListWidget
+#include <hblistwidgetitem.h>                   // HbListWidgetItem
+#include <hbaction.h>                           // HbAction
+#include <QTextStream>
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::SifUiDialogCertificateDetails()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogCertificateDetails::SifUiDialogCertificateDetails(
+    const QList<SifUiDialogCertificateInfo*> &certificates) : HbDialog(),
+    mCertificates(certificates)
+{
+    setDismissPolicy(HbPopup::NoDismiss);
+    setTimeout(HbPopup::NoTimeout);
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::showDetails()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogCertificateDetails::showDetails()
+{
+    int count = mCertificates.count();
+    Q_ASSERT(count != 0);
+    if (count == 1) {
+        showCertificate(0);
+    } else {
+        showList();
+    }
+    open();
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::~SifUiDialogCertificateDetails()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogCertificateDetails::~SifUiDialogCertificateDetails()
+{
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::certificateDetails()
+// ----------------------------------------------------------------------------
+//
+QString SifUiDialogCertificateDetails::certificateDetails(
+    const SifUiDialogCertificateInfo& certificate)
+{
+    // TODO: change to properly localizable string
+    QString details;
+    QTextStream stream(&details);
+    stream << tr("Issuer:\n")
+        << certificate.issuerName()
+        << endl << endl;
+    stream << tr("Subject:\n")
+        << certificate.subjectName()
+        << endl << endl;
+    stream << tr("Valid from:\n")
+        << certificate.validFrom().toString()
+        << endl << endl;
+    stream << tr("Valid until:\n")
+        << certificate.validTo().toString()
+        << endl << endl;
+    stream << tr("Serial number:\n")
+        << certificate.formattedSerialNumber()
+        << endl << endl;
+    stream << tr("Fingerprint (SHA1):\n")
+        << certificate.formattedFingerprint()
+        << endl;
+    return details;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::showList()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogCertificateDetails::showList()
+{
+    int count = mCertificates.count();
+    Q_ASSERT(count > 1);
+
+    // TODO: localisation
+    HbLabel *title = new HbLabel(tr("Select certificate"));
+    setHeadingWidget(title);
+
+    HbListWidget *content = new HbListWidget;
+    for (int index = 0; index < count; ++index ) {
+        HbListWidgetItem *item = new HbListWidgetItem();
+        item->setData(QVariant(mCertificates.at(index)->subjectName()));
+        content->addItem(item);
+    }
+    setContentWidget(content);
+    connect(content, SIGNAL(activated(HbListWidgetItem*)),
+        this, SLOT(certificateSelected()));
+
+    setPrimaryAction(new HbAction(hbTrId("txt_common_button_close")));
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::certificateSelected()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogCertificateDetails::certificateSelected()
+{
+    QGraphicsWidget *content = contentWidget();
+    if (content->type() == Hb::ItemType_ListView) {
+        HbListWidget *listWidget = reinterpret_cast<HbListWidget*>(content);
+        int index = listWidget->currentRow();
+        if (index >= 0 && index < mCertificates.count()) {
+            showCertificate(index);
+        }
+    }
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateDetails::showCertificate()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogCertificateDetails::showCertificate(int index)
+{
+    // TODO: localisation
+    HbLabel *title = new HbLabel(tr("Certificate details"));
+    setHeadingWidget(title);
+
+    HbTextEdit *content = new HbTextEdit;
+    Q_ASSERT(index >= 0 && index < mCertificates.count());
+    QString details = certificateDetails(*mCertificates[index]);
+    content->setPlainText(details);
+    content->setReadOnly(true);
+    setContentWidget(content);
+
+    setPrimaryAction(new HbAction(hbTrId("txt_common_button_close")));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcertificateinfo.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Certificate info class for SIF UI device dialog plugin.
+*
+*/
+
+#include "sifuidialogcertificateinfo.h"
+
+const char *KHexNumberFormatSimple = "%X";
+const char *KHexNumberFormatTwoDigitsWithLeadingZeroes = "%02X";
+const int KCharsPerBlock = 2;
+const char KBlockSeparator = ' ';
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::SifUiDialogCertificateInfo()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogCertificateInfo::SifUiDialogCertificateInfo(const QString &subject,
+    const QString &issuer, const QByteArray &fingerprint, const QByteArray &serialNumber,
+    const QDateTime &validFrom, const QDateTime &validTo) :
+    mSubjectName(subject), mIssuerName(issuer), mFingerprint(fingerprint),
+    mSerialNumber(serialNumber), mValidFrom(validFrom), mValidTo(validTo)
+{
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::~SifUiDialogCertificateInfo()
+// ----------------------------------------------------------------------------
+//
+SifUiDialogCertificateInfo::~SifUiDialogCertificateInfo()
+{
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::subjectName()
+// ----------------------------------------------------------------------------
+//
+const QString SifUiDialogCertificateInfo::subjectName() const
+{
+    return mSubjectName;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::issuerName()
+// ----------------------------------------------------------------------------
+//
+const QString SifUiDialogCertificateInfo::issuerName() const
+{
+    return mIssuerName;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::fingerprint()
+// ----------------------------------------------------------------------------
+//
+const QByteArray SifUiDialogCertificateInfo::fingerprint() const
+{
+    return mFingerprint;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::formattedFingerprint()
+// ----------------------------------------------------------------------------
+//
+const QString SifUiDialogCertificateInfo::formattedFingerprint() const
+{
+    QString formatted;
+
+    QString number;
+    int blockIndex = 0;
+    int count = mFingerprint.count();
+    for (int index = 0; index < count; ++index) {
+        if (blockIndex == KCharsPerBlock) {
+            formatted.append(KBlockSeparator);
+            blockIndex = 0;
+        }
+        number.sprintf(KHexNumberFormatTwoDigitsWithLeadingZeroes,
+            static_cast<unsigned char>(mFingerprint.at(index)));
+        formatted.append(number);
+        ++blockIndex;
+    }
+
+    return formatted;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::serialNumber()
+// ----------------------------------------------------------------------------
+//
+const QByteArray SifUiDialogCertificateInfo::serialNumber() const
+{
+    return mSerialNumber;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::formattedSerialNumber()
+// ----------------------------------------------------------------------------
+//
+const QString SifUiDialogCertificateInfo::formattedSerialNumber() const
+{
+    QString formatted;
+
+    QString number;
+    int count = mSerialNumber.count();
+    for (int index = 0; index < count; ++index) {
+        number.sprintf(KHexNumberFormatSimple,
+            static_cast<unsigned char>(mSerialNumber.at(index)));
+        formatted.append(number);
+    }
+
+    return formatted;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::validFrom()
+// ----------------------------------------------------------------------------
+//
+const QDateTime SifUiDialogCertificateInfo::validFrom() const
+{
+    return mValidFrom;
+}
+
+// ----------------------------------------------------------------------------
+// SifUiDialogCertificateInfo::validTo()
+// ----------------------------------------------------------------------------
+//
+const QDateTime SifUiDialogCertificateInfo::validTo() const
+{
+    return mValidTo;
+}
+
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogcontentwidget.cpp	Thu May 27 12:58:35 2010 +0300
@@ -30,7 +30,7 @@
 #include <fbs.h>                            // CFbsBitmap
 #endif  // Q_OS_SYMBIAN
 
-const char KSifUiDefaultApplicationIcon[] = "qtg_large_application.svg";
+const char KSifUiDefaultApplicationIcon[] = "qtg_large_application";
 
 const int KSifUiKilo = 1024;
 const int KSifUiMega = 1024*1024;
@@ -159,7 +159,7 @@
     Q_ASSERT(mMemorySelection == 0);
     mMemorySelection = new HbComboBox;
     connect(mMemorySelection, SIGNAL(currentIndexChanged(int)),
-            this, SIGNAL(handleMemorySelectionChange(int)));
+            this, SLOT(handleMemorySelectionChange(int)));
     mStackedWidget->addWidget(mMemorySelection);
 
     Q_ASSERT(mProgressBar == 0);
--- a/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget.cpp	Thu May 27 12:58:35 2010 +0300
@@ -17,22 +17,26 @@
 
 #include "sifuidialogtitlewidget.h"
 #include "sifuidialog.h"                    // dialogType, dialogMode
+#include "sifuidialogcertificatedetails.h"  // SifUiDialogCertificateDetails
 #include <QGraphicsLinearLayout>
 #include <hblabel.h>
 #include <hbpushbutton.h>
+#include <hbmessagebox.h>
 
-const char KSifUiCertTrusted[]    = "qtg_small_secure.svg";
-// TODO: enable when available, take also in use
-//const char KSifUiCertNotTrusted[] = "qtg_small_untrusted.svg";
+// TODO: change these to mono icons when available, see graphics request TLIS-855ECE
+const char KSifUiCertTrusted[]    = "qtg_small_secure";
+const char KSifUiCertNotTrusted[] = "qtg_small_untrusted";
 
 
+// ======== MEMBER FUNCTIONS ========
+
 // ----------------------------------------------------------------------------
 // SifUiDialogTitleWidget::SifUiDialogTitleWidget()
 // ----------------------------------------------------------------------------
 //
 SifUiDialogTitleWidget::SifUiDialogTitleWidget(QGraphicsItem *parent,
         Qt::WindowFlags flags): HbWidget(parent, flags),
-        mLayout(0), mTitle(0), mCertButton(0)
+        mLayout(0), mTitle(0), mCertButton(0), mCertificates(0), mDetailsDialog(0)
 {
 }
 
@@ -42,6 +46,8 @@
 //
 SifUiDialogTitleWidget::~SifUiDialogTitleWidget()
 {
+    delete mDetailsDialog;
+    delete mCertificates;
 }
 
 // ----------------------------------------------------------------------------
@@ -51,22 +57,8 @@
 void SifUiDialogTitleWidget::constructFromParameters(const QVariantMap &parameters)
 {
     mLayout = new QGraphicsLinearLayout(Qt::Horizontal);
-
-    Q_ASSERT(mTitle == 0);
-    HbLabel *titleLabel = 0;
-    if (parameters.contains(KSifUiDialogTitle)) {
-        QString titleText = parameters.value(KSifUiDialogTitle).toString();
-        titleLabel = new HbLabel(titleText);
-    } else {
-        SifUiDeviceDialogType type = SifUiDialog::dialogType(parameters);
-        titleLabel = new HbLabel(defaultTitle(type));
-    }
-    titleLabel->setFontSpec(HbFontSpec(HbFontSpec::Title));
-    mLayout->addItem(titleLabel);
-    mTitle = titleLabel;
-
-    createCertButton();
-
+    updateTitle(parameters);
+    updateCertificates(parameters);
     setLayout(mLayout);
 }
 
@@ -76,18 +68,8 @@
 //
 void SifUiDialogTitleWidget::updateFromParameters(const QVariantMap &parameters)
 {
-    Q_ASSERT(mTitle != 0);
-
-    QString titleText;
-    if (parameters.contains(KSifUiDialogTitle)) {
-        titleText = parameters.value(KSifUiDialogTitle).toString();
-    } else {
-        SifUiDeviceDialogType type = SifUiDialog::dialogType(parameters);
-        titleText = defaultTitle(type);
-    }
-    if (titleText != mTitle->plainText()) {
-        mTitle->setPlainText(titleText);
-    }
+    updateTitle(parameters);
+    updateCertificates(parameters);
 }
 
 // ----------------------------------------------------------------------------
@@ -133,33 +115,72 @@
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialogTitleWidget::createCertButton()
+// SifUiDialogTitleWidget::updateTitle()
 // ----------------------------------------------------------------------------
 //
-void SifUiDialogTitleWidget::createCertButton()
+void SifUiDialogTitleWidget::updateTitle(const QVariantMap &parameters)
 {
-    if (!mCertButton) {
-        HbPushButton *certButton = new HbPushButton;
-        // TODO: show KSifUiCertNotTrusted when needed (and when available)
-        certButton->setIcon(HbIcon(KSifUiCertTrusted));
-        connect(certButton,SIGNAL(clicked()),this,SIGNAL(certificatesClicked()));
-        mLayout->addStretch();
-        mLayout->addItem(certButton);
-        mLayout->setAlignment(certButton, Qt::AlignRight|Qt::AlignVCenter);
-        mCertButton = certButton;
+    QString titleText;
+    if (parameters.contains(KSifUiDialogTitle)) {
+        titleText = parameters.value(KSifUiDialogTitle).toString();
+    } else {
+        SifUiDeviceDialogType type = SifUiDialog::dialogType(parameters);
+        titleText = defaultTitle(type);
+    }
+    if (mTitle) {
+        if (titleText != mTitle->plainText()) {
+            mTitle->setPlainText(titleText);
+        }
+    } else {
+        mTitle = new HbLabel(titleText);
+        mTitle->setFontSpec(HbFontSpec(HbFontSpec::Title));
+        mLayout->addItem(mTitle);
     }
 }
 
 // ----------------------------------------------------------------------------
-// SifUiDialogTitleWidget::removeCertButton()
+// SifUiDialogTitleWidget::updateCertificates()
 // ----------------------------------------------------------------------------
 //
-void SifUiDialogTitleWidget::removeCertButton()
+void SifUiDialogTitleWidget::updateCertificates(const QVariantMap &parameters)
 {
-    if (mCertButton && mLayout) {
-        mLayout->removeItem(mCertButton);
-        delete mCertButton;
-        mCertButton = 0;
+    if (!mCertButton) {
+        mCertButton = new HbPushButton;
+        connect(mCertButton, SIGNAL(clicked()), this, SLOT(certificatesClicked()));
+
+        if (parameters.contains(KSifUiCertificates)) {
+            Q_ASSERT(mCertificates == 0);
+            mCertificates = getCertificates(parameters.value(KSifUiCertificates).toByteArray());
+            mCertButton->setIcon(HbIcon(KSifUiCertTrusted));
+        } else {
+            mCertButton->setIcon(HbIcon(KSifUiCertNotTrusted));
+        }
+
+        mLayout->addStretch();
+        mLayout->addItem(mCertButton);
+        mLayout->setAlignment(mCertButton, Qt::AlignRight|Qt::AlignVCenter);
+    } else {
+        if (mCertificates == 0 && parameters.contains(KSifUiCertificates)) {
+            mCertificates = getCertificates(parameters.value(KSifUiCertificates).toByteArray());
+            mCertButton->setIcon(HbIcon(KSifUiCertTrusted));
+        }
     }
 }
 
+// ----------------------------------------------------------------------------
+// SifUiDialogTitleWidget::certificatesClicked()
+// ----------------------------------------------------------------------------
+//
+void SifUiDialogTitleWidget::certificatesClicked()
+{
+    if (mCertificates) {
+        if (mDetailsDialog) {
+            delete mDetailsDialog;
+            mDetailsDialog = 0;
+        }
+        mDetailsDialog = new SifUiDialogCertificateDetails(*mCertificates);
+        mDetailsDialog->showDetails();
+    } else {
+        HbMessageBox::warning(tr("Application is not certified. It's origin and authenticity cannot be proved."));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sifuidevicedialogplugin/src/sifuidialogtitlewidget_symbian.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: SIF UI dialog title widget (SymbianOS specific part).
+*
+*/
+
+#include "sifuidialogtitlewidget.h"
+#include "sifuidialogcertificateinfo.h"     // SifUiDialogCertificateInfo
+#include <s32mem.h>                         // RDesReadStream
+
+
+// ======== LOCAL FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// readStringFromStreamL()
+// ----------------------------------------------------------------------------
+//
+QString readStringFromStreamL( RDesReadStream& aReadStream )
+{
+    TInt length = aReadStream.ReadInt32L();
+    HBufC* buf = HBufC::NewLC( length );
+    TPtr ptr( buf->Des() );
+    aReadStream.ReadL( ptr, length );
+    QString string = QString::fromUtf16( ptr.Ptr(), length );
+    CleanupStack::PopAndDestroy( buf );
+    return string;
+}
+
+// ----------------------------------------------------------------------------
+// readByteArrayFromStreamL()
+// ----------------------------------------------------------------------------
+//
+QByteArray readByteArrayFromStreamL( RDesReadStream& aReadStream )
+{
+    TInt length = aReadStream.ReadInt32L();
+    HBufC8* buf = HBufC8::NewLC( length );
+    TPtr8 ptr( buf->Des() );
+    aReadStream.ReadL( ptr, length );
+    QByteArray byteArray( reinterpret_cast< const char * >( ptr.Ptr() ), length );
+    CleanupStack::PopAndDestroy( buf );
+    return byteArray;
+}
+
+// ----------------------------------------------------------------------------
+// readDateFromStreamL()
+// ----------------------------------------------------------------------------
+//
+void readDateFromStreamL( RDesReadStream& aReadStream, QDateTime& aDateTime )
+{
+    TDateTime dateTimeSymbian;
+    TPckg<TDateTime> dateTimePckg( dateTimeSymbian );
+    aReadStream.ReadL( dateTimePckg );
+    QDate date( dateTimeSymbian.Year(), dateTimeSymbian.Month()+1, dateTimeSymbian.Day()+1 );
+    aDateTime.setDate( date );
+    QTime time( dateTimeSymbian.Hour(), dateTimeSymbian.Minute(), dateTimeSymbian.Second() );
+    aDateTime.setTime( time );
+}
+
+// ----------------------------------------------------------------------------
+// doGetCertificatesL()
+// ----------------------------------------------------------------------------
+//
+QList<SifUiDialogCertificateInfo*> *doGetCertificatesL( QByteArray aArray )
+{
+    QList<SifUiDialogCertificateInfo*> *list = new QList<SifUiDialogCertificateInfo*>;
+
+    const TPtrC8 ptr8( reinterpret_cast< const TText8* >( aArray.constData() ), aArray.size() );
+    RDesReadStream readStream;
+    CleanupClosePushL( readStream );
+    readStream.Open( ptr8 );
+
+    TInt certCount = readStream.ReadInt32L();
+    for( TInt index = 0; index < certCount; ++index )
+        {
+        QString subjectName = readStringFromStreamL( readStream );
+        QString issuerName = readStringFromStreamL( readStream );
+        QByteArray fingerprint = readByteArrayFromStreamL( readStream );
+        QByteArray serialNumber = readByteArrayFromStreamL( readStream );
+        QDateTime validFrom;
+        readDateFromStreamL( readStream, validFrom );
+        QDateTime validTo;
+        readDateFromStreamL( readStream, validTo );
+
+        SifUiDialogCertificateInfo *certInfo = new SifUiDialogCertificateInfo(
+            subjectName, issuerName, fingerprint, serialNumber, validFrom, validTo );
+        list->append( certInfo );
+        }
+
+    CleanupStack::PopAndDestroy( &readStream );
+    return list;
+}
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// SifUiDialogTitleWidget::SifUiDialogTitleWidget()
+// ----------------------------------------------------------------------------
+//
+QList<SifUiDialogCertificateInfo*> *SifUiDialogTitleWidget::getCertificates(
+    QByteArray array)
+{
+    QList<SifUiDialogCertificateInfo*> *list = 0;
+    QT_TRAP_THROWING(list = doGetCertificatesL(array));
+    return list;
+}
+
--- a/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp	Thu May 27 12:58:35 2010 +0300
@@ -33,9 +33,11 @@
 SOURCE          sisxsifpluginmain.cpp
 SOURCE          sisxsifplugin.cpp
 SOURCE          sisxsifpluginactiveimpl.cpp
+SOURCE          sisxsifpluginuihandlerbase.cpp
 SOURCE          sisxsifpluginuihandler.cpp
+SOURCE          sisxsifpluginuihandlersilent.cpp
+SOURCE          sisxsifplugininstallparams.cpp
 SOURCE          sisxsifuiselectioncache.cpp
-SOURCE          sisxsifpluginuihandlersilent.cpp
 
 USERINCLUDE     ../inc
 USERINCLUDE     ../../../../installationservices/swi/inc
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginactiveimpl.h	Thu May 27 12:58:35 2010 +0300
@@ -34,8 +34,8 @@
 
 namespace Usif
 {
-    class CSisxSifPluginUiHandler;
-    class CSisxSifPluginUiHandlerSilent;
+    class CSisxSifPluginUiHandlerBase;
+    class CSisxSifPluginInstallParams;
 
     /**
      *  SISX SIF plugin active implementation
@@ -76,9 +76,11 @@
     private:    // new functions
         CSisxSifPluginActiveImpl();
         void ConstructL();
-        Swi::MUiHandler& UiHandlerL( TBool aUseSilentMode = EFalse );
+        void CommonRequestPreamble( TRequestStatus& aStatus );
         void CommonRequestPreamble( const COpaqueNamedParams& aInputParams,
                 COpaqueNamedParams& aOutputParams, TRequestStatus& aStatus );
+        void CreateUiHandlerL();
+        TBool IsSilentMode();
         void CompleteClientRequest( TInt aResult );
         void DoUninstallL( TComponentId aComponentId );
         void DoActivateL( TComponentId aComponentId );
@@ -98,16 +100,15 @@
     private:    // data
         RFs iFs;
         Swi::CAsyncLauncher* iAsyncLauncher;
-        CSisxSifPluginUiHandler* iUiHandler;
-        CSisxSifPluginUiHandlerSilent* iUiHandlerSilent;
+        CSisxSifPluginUiHandlerBase* iUiHandler;
         Swi::CInstallPrefs* iInstallPrefs;
         TRequestStatus* iClientStatus;
-        const COpaqueNamedParams* iInputParams;
-        COpaqueNamedParams* iOutputParams;
+        const COpaqueNamedParams* iInputParams;     // not owned
+        COpaqueNamedParams* iOutputParams;      // not owned
+        CSisxSifPluginInstallParams* iInstallParams;
         CComponentInfo* iComponentInfo;
         HBufC* iFileName;
         RFile* iFileHandle;             // not owned
-        TBool iUseSilentMode;
         enum TOperationType
             {
             ENone,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Installation parameters class.
+*
+*/
+
+#ifndef C_SISXSIFPLUGININSTALLPARAMS_H
+#define C_SISXSIFPLUGININSTALLPARAMS_H
+
+#include <e32base.h>                    // CBase
+#include <usif/sif/sifcommon.h>         // COpaqueNamedParams, TSifPolicy
+
+namespace Usif
+{
+    /**
+     *  Installation parameters class.
+     */
+    class CSisxSifPluginInstallParams : public CBase
+        {
+    public:     // constructors and destructor
+        static CSisxSifPluginInstallParams* NewL( const COpaqueNamedParams& aParams );
+        static CSisxSifPluginInstallParams* NewL( const CSisxSifPluginInstallParams& aParams );
+        ~CSisxSifPluginInstallParams();
+
+    public:     // new functions
+        TBool IsSilentMode() const;
+        TBool IsInstallInactive() const;
+        TUint Drive() const;
+        TLanguage Language() const;
+        const TDesC& OCSPUrl() const;
+        TSifPolicy PerformOCSP() const;
+        TSifPolicy IgnoreOCSPWarnings() const;
+        TSifPolicy AllowUpgrade() const;
+        TSifPolicy InstallOptionalItems() const;
+        TSifPolicy AllowUntrusted() const;
+        TSifPolicy GrantCapabilities() const;
+        TSifPolicy AllowAppShutdown() const;
+        TSifPolicy AllowAppBreakDependency() const;
+        TSifPolicy AllowOverwrite() const;
+        TSifPolicy PackageInfo() const;
+
+    private:    // new functions
+        CSisxSifPluginInstallParams();
+        void ConstructL( const COpaqueNamedParams& aParams );
+        void ConstructL( const CSisxSifPluginInstallParams& aParams );
+        TInt GetIntParamL( const COpaqueNamedParams& aParams,
+                const TDesC& aParamName, TInt aDefaultValue );
+        void GetPolicyParamL( const COpaqueNamedParams& aParams, const TDesC& aParamName,
+                TSifPolicy& aPolicy, const TSifPolicy& aDefault );
+        void GetStringParamL( const COpaqueNamedParams& aParams,
+                const TDesC& aParamName, HBufC*& aBuf );
+
+    private:    // data
+        TBool iUseSilentMode;
+        TBool iIsInstallInactive;
+        TUint iDrive;
+        TLanguage iLanguage;
+        HBufC* iOCSPUrl;
+        TSifPolicy iPerformOCSP;
+        TSifPolicy iIgnoreOCSPWarnings;
+        TSifPolicy iAllowUpgrade;
+        TSifPolicy iInstallOptionalItems;
+        TSifPolicy iAllowUntrusted;
+        TSifPolicy iGrantCapabilities;
+        TSifPolicy iAllowAppShutdown;
+        TSifPolicy iAllowAppBreakDependency;
+        TSifPolicy iAllowOverwrite;
+        TSifPolicy iPackageInfo;
+        };
+
+}   // namespace Usif
+
+#endif  // C_SISXSIFPLUGININSTALLPARAMS_H
+
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h	Thu May 27 12:58:35 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  MUiHandler for SISX SIF plugin.
+* Description:  UI Handler for normal (non-silent) install/uninstall operations.
 *
 */
 
@@ -19,28 +19,24 @@
 #define C_SISXSIFPLUGUIHANDLER_H
 
 #include <e32base.h>                    // CBase
-#include <swi/msisuihandlers.h>         // MUiHandler
-#include <f32file.h>                    // RFs
-#include <sifui.h>                      // CSifUi
+#include "sisxsifpluginuihandlerbase.h" // CSisxSifPluginUiHandlerBase
 
+class CSifUi;
 class CSisxSifUiSelectionCache;
 
 
 namespace Usif
 {
     /**
-     *  SISX SIF plugin UI handler
-     *  Universal Software Install Framework (USIF) plugin for native SISX
-     *  installation. CSisxSifPluginActiveImpl is active object that takes
-     *  care of SISX installation operations.
+     * UI Handler for normal (non-silent) install/uninstall operations.
      */
-    class CSisxSifPluginUiHandler : public CBase, public Swi::MUiHandler
+    class CSisxSifPluginUiHandler : public CSisxSifPluginUiHandlerBase
         {
     public:     // constructors and destructor
         static CSisxSifPluginUiHandler* NewL( RFs& aFs );
         ~CSisxSifPluginUiHandler();
 
-    public:     // from MUiHandler
+    public:     // from MUiHandler (via CSisxSifPluginUiHandlerBase)
         // from MCommonDialogs
         TBool DisplayTextL( const Swi::CAppInfo& aAppInfo, Swi::TFileTextOption aOption,
                 const TDesC& aText );
@@ -88,12 +84,13 @@
         // from MUninstallerUiHandler
         TBool DisplayUninstallL( const Swi::CAppInfo& aAppInfo );
 
-    public:     // new functions
+    public:     // from CSisxSifPluginUiHandlerBase
         void DisplayPreparingInstallL( const TDesC& aFileName );
         void DisplayCompleteL();
         void DisplayFailedL( TInt aErrorCode );
+
+    public:     // new functions
         void SetDriveSelectionRequired( TBool aIsRequired );
-        void SetMaxInstalledSize( TInt aSize );
 
     private:    // new functions
         CSisxSifPluginUiHandler( RFs& aFs );
@@ -103,12 +100,16 @@
                 RPointerArray<CPKIXValidationResultBase>& aPkixResults );
 
     private:    // data
-        RFs& iFs;
+        enum TMode
+            {
+            EModeUndefined,
+            EModeInstall,
+            EModeUninstall
+            } iMode;
+        CSifUi* iSifUi;
         CSisxSifUiSelectionCache* iSelectionCache;
-        CSifUi* iSifUi;
         CApaMaskedBitmap* iLogo;
         TBool iQuestionIncompatibleDisplayed;
-        TInt iMaxInstalledSize;
         TBool iDriveSelectionRequired;
         RArray<TInt> iSelectableDrives;
         };
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Base class for SISX SIF plugin UI handlers.
+*
+*/
+
+#ifndef C_SISXSIFPLUGUIHANDLERBASE_H
+#define C_SISXSIFPLUGUIHANDLERBASE_H
+
+#include <e32base.h>                    // CBase
+#include <swi/msisuihandlers.h>         // MUiHandler
+#include <f32file.h>                    // RFs
+#include <sifui.h>                      // CSifUi
+
+
+namespace Usif
+{
+    class CSisxSifPluginInstallParams;
+
+
+    /**
+     * Base class for SISX SIF plugin UI handlers.
+     */
+    class CSisxSifPluginUiHandlerBase : public CBase, public Swi::MUiHandler
+        {
+    public:     // constructors and destructor
+        CSisxSifPluginUiHandlerBase( RFs& aFs );
+        ~CSisxSifPluginUiHandlerBase();
+
+    public:     // new functions
+        virtual void DisplayPreparingInstallL( const TDesC& aFileName ) = 0;
+        virtual void DisplayCompleteL() = 0;
+        virtual void DisplayFailedL( TInt aErrorCode ) = 0;
+
+    public:     // new functions
+        void SetInstallParamsL( const CSisxSifPluginInstallParams& aInstallParams );
+        void SetMaxInstalledSize( TInt aSize );
+        void SetDriveSelectionRequired( TBool aIsRequired );
+
+    protected:	// data
+        RFs& iFs;
+        TInt iMaxInstalledSize;
+        TBool iIsDriveSelectionRequired;
+        CSisxSifPluginInstallParams* iInstallParams;
+        };
+
+}   // namespace Usif
+
+#endif      // C_SISXSIFPLUGUIHANDLERBASE_H
+
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h	Thu May 27 12:58:35 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  MUiHandler for silent install/uninstall operations.
+* Description:  UI Handler for silent install/uninstall operations.
 *
 */
 
@@ -19,25 +19,21 @@
 #define C_SISXSIFPLUGUIHANDLERSILENT_H
 
 #include <e32base.h>                    // CBase
-#include <swi/msisuihandlers.h>         // MUiHandler
-#include <f32file.h>                    // RFs
+#include "sisxsifpluginuihandlerbase.h" // CSisxSifPluginUiHandlerBase
 
 
 namespace Usif
 {
     /**
-     *  Silent SISX SIF plugin UI handler
-     *  Universal Software Install Framework (USIF) plugin for native SISX
-     *  installation. CSisxSifPluginActiveImpl is active object that takes
-     *  care of SISX installation operations.
+     * UI handler for silent install/uninstall operations.
      */
-    class CSisxSifPluginUiHandlerSilent : public CBase, public Swi::MUiHandler
+    class CSisxSifPluginUiHandlerSilent : public CSisxSifPluginUiHandlerBase
         {
     public:     // constructors and destructor
         static CSisxSifPluginUiHandlerSilent* NewL( RFs& aFs );
         ~CSisxSifPluginUiHandlerSilent();
 
-    public:     // from MUiHandler
+    public:     // from MUiHandler (via CSisxSifPluginUiHandlerBase)
         // from MCommonDialogs
         TBool DisplayTextL( const Swi::CAppInfo& aAppInfo, Swi::TFileTextOption aOption,
                 const TDesC& aText );
@@ -85,6 +81,11 @@
         // from MUninstallerUiHandler
         TBool DisplayUninstallL( const Swi::CAppInfo& aAppInfo );
 
+    public:     // from CSisxSifPluginUiHandlerBase
+        void DisplayPreparingInstallL( const TDesC& aFileName );
+        void DisplayCompleteL();
+        void DisplayFailedL( TInt aErrorCode );
+
     protected:  // new functions
         CSisxSifPluginUiHandlerSilent( RFs& aFs );
 
@@ -92,7 +93,6 @@
         void ConstructL();
 
     protected:  // data
-        RFs& iFs;
         };
 
 }   // namespace Usif
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp	Thu May 27 12:58:35 2010 +0300
@@ -15,21 +15,23 @@
 *
 */
 
-#include "sisxsifpluginactiveimpl.h"    // CSisxSifPluginActiveImpl
-#include "sisxsifpluginuihandler.h"     // CSisxSifPluginUiHandler
-#include "sisxsifpluginuihandlersilent.h" // CSisxSifPluginUiHandlerSilent
-#include "sisxsifcleanuputils.h"        // CleanupResetAndDestroyPushL
-#include "sisxsifplugin.pan"            // Panic codes
-#include <usif/sif/sifcommon.h>         // Usif::CComponentInfo
-#include <usif/scr/scr.h>               // RSoftwareComponentRegistry
-#include <usif/usiferror.h>             // SIF error codes
-#include <swi/sisinstallerrors.h>       // SWI error codes
-#include <swi/asynclauncher.h>          // Swi::CAsyncLauncher
-#include <swi/sisregistrysession.h>     // RSisRegistrySession
-#include "sisregistrywritablesession.h" // RSisRegistryWritableSession
-#include <e32property.h>                // RProperty
-#include <sacls.h>                      // KUidSwiLatestInstallation
-#include <featmgr.h>                    // FeatureManager
+#include "sisxsifpluginactiveimpl.h"        // CSisxSifPluginActiveImpl
+#include "sisxsifpluginuihandlerbase.h"     // CSisxSifPluginUiHandlerBase
+#include "sisxsifpluginuihandler.h"         // CSisxSifPluginUiHandler
+#include "sisxsifpluginuihandlersilent.h"   // CSisxSifPluginUiHandlerSilent
+#include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
+#include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
+#include "sisxsifplugin.pan"                // Panic codes
+#include <usif/sif/sifcommon.h>             // Usif::CComponentInfo
+#include <usif/scr/scr.h>                   // RSoftwareComponentRegistry
+#include <usif/usiferror.h>                 // SIF error codes
+#include <swi/sisinstallerrors.h>           // SWI error codes
+#include <swi/asynclauncher.h>              // Swi::CAsyncLauncher
+#include <swi/sisregistrysession.h>         // RSisRegistrySession
+#include "sisregistrywritablesession.h"     // RSisRegistryWritableSession
+#include <e32property.h>                    // RProperty
+#include <sacls.h>                          // KUidSwiLatestInstallation
+#include <featmgr.h>                        // FeatureManager
 
 // TODO: replace with proper logging
 #ifdef _DEBUG
@@ -60,32 +62,34 @@
 // ---------------------------------------------------------------------------
 //
 CSisxSifPluginActiveImpl* CSisxSifPluginActiveImpl::NewL()
-	{
-	FLOG( _L("Constructing CSisxSifPluginActiveImpl") );
-	CSisxSifPluginActiveImpl *self = new( ELeave ) CSisxSifPluginActiveImpl;
-	CleanupStack::PushL( self );
-	self->ConstructL();
-	CleanupStack::Pop( self );
-	return self;
-	}
+    {
+    FLOG( _L("Constructing CSisxSifPluginActiveImpl") );
+    CSisxSifPluginActiveImpl *self = new( ELeave ) CSisxSifPluginActiveImpl;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::~CSisxSifPluginActiveImpl()
 // ---------------------------------------------------------------------------
 //
 CSisxSifPluginActiveImpl::~CSisxSifPluginActiveImpl()
-	{
-	FLOG( _L("Destructing CSisxSifPluginActiveImpl") );
-	Cancel();
+    {
+    FLOG( _L("Destructing CSisxSifPluginActiveImpl") );
+    Cancel();
     delete iAsyncLauncher;
     delete iUiHandler;
-    delete iUiHandlerSilent;
     delete iInstallPrefs;
+    iInputParams = NULL;    // not owned
+    iOutputParams = NULL;   // not owned
+    delete iInstallParams;
     delete iComponentInfo;
     delete iFileName;
     FeatureManager::UnInitializeLib();
     iFs.Close();
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::DoCancel()
@@ -125,7 +129,7 @@
             switch( iPhase )
                 {
                 case EPreprocessing:
-                    if( iUseSilentMode )
+                    if( IsSilentMode() )
                         {
                         StartSilentInstallingL();
                         }
@@ -143,6 +147,8 @@
                     iPhase = ENotActive;
                     break;
 
+				// TODO: KSifInParam_InstallInactive
+
                 default:
                     Panic( ESisxSifInternalError );
                     break;
@@ -191,16 +197,13 @@
         const TSecurityContext& /*aSecurityContext*/,
         CComponentInfo& aComponentInfo,
         TRequestStatus& aStatus )
-	{
+    {
     FLOG_1( _L("CSisxSifPluginActiveImpl::GetComponentInfo: %S"), &aFileName );
     if( !IsActive() )
         {
-        iOperation = EGetComponentInfo;
-        aStatus = KRequestPending;
-        iClientStatus = &aStatus;
-        iPhase = ERunningOperation;
+		CommonRequestPreamble( aStatus );
 
-        TRAPD( err, iAsyncLauncher->GetComponentInfoL( UiHandlerL(), aFileName,
+		TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileName,
                 *iInstallPrefs, aComponentInfo, iStatus ) );
         if( err )
             {
@@ -209,6 +212,8 @@
             return;
             }
 
+        iOperation = EGetComponentInfo;
+        iPhase = ERunningOperation;
         SetActive();
         }
     else
@@ -216,7 +221,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::GetComponentInfo()
@@ -227,16 +232,13 @@
         const TSecurityContext& /*aSecurityContext*/,
         CComponentInfo& aComponentInfo,
         TRequestStatus& aStatus )
-	{
+    {
     FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo(RFile)") );
     if( !IsActive() )
         {
-        iOperation = EGetComponentInfo;
-        aStatus = KRequestPending;
-        iClientStatus = &aStatus;
-        iPhase = ERunningOperation;
+		CommonRequestPreamble( aStatus );
 
-        TRAPD( err, iAsyncLauncher->GetComponentInfoL( UiHandlerL(), aFileHandle,
+		TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileHandle,
                 *iInstallPrefs, aComponentInfo, iStatus ) );
         if( err )
             {
@@ -245,6 +247,8 @@
             return;
             }
 
+        iOperation = EGetComponentInfo;
+        iPhase = ERunningOperation;
         SetActive();
         }
     else
@@ -252,7 +256,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::Install()
@@ -264,14 +268,14 @@
         const COpaqueNamedParams& aInputParams,
         COpaqueNamedParams& aOutputParams,
         TRequestStatus& aStatus )
-	{
+    {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Install: %S"), &aFileName );
     if( !IsActive() )
         {
         CommonRequestPreamble( aInputParams, aOutputParams, aStatus );
-        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, iUseSilentMode=%d"), iUseSilentMode );
+        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, IsSilentMode=%d"), IsSilentMode() );
 
-        if( iUseSilentMode )
+        if( IsSilentMode() )
             {
             if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
                 {
@@ -286,8 +290,8 @@
             }
         SetInstallFileL( aFileName );
 
-        TRAPD( err, iAsyncLauncher->GetComponentInfoL( UiHandlerL( iUseSilentMode ),
-                aFileName, *iInstallPrefs, *iComponentInfo, iStatus ) );
+        TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileName,
+        		*iInstallPrefs, *iComponentInfo, iStatus ) );
         if( err )
             {
             FLOG_1( _L("CSisxSifPluginActiveImpl::Install, GetComponentInfoL ERROR %d"), err );
@@ -304,7 +308,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::GetComponentInfo, KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::Install()
@@ -316,16 +320,16 @@
         const COpaqueNamedParams& aInputParams,
         COpaqueNamedParams& aOutputParams,
         TRequestStatus& aStatus )
-	{
+    {
     TFileName fileName;
     aFileHandle.Name( fileName );
     FLOG_1( _L("CSisxSifPluginActiveImpl::Install(RFile): %S"), &fileName );
     if( !IsActive() )
         {
         CommonRequestPreamble( aInputParams, aOutputParams, aStatus );
-        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, iUseSilentMode=%d"), iUseSilentMode );
+        FLOG_1( _L("CSisxSifPluginActiveImpl::Install, IsSilentMode=%d"), IsSilentMode() );
 
-        if( iUseSilentMode )
+        if( IsSilentMode() )
             {
             if( !aSecurityContext.HasCapability( ECapabilityTrustedUI ) )
                 {
@@ -340,8 +344,8 @@
             }
         SetInstallFile( aFileHandle );
 
-        TRAPD( err, iAsyncLauncher->GetComponentInfoL( UiHandlerL( iUseSilentMode ),
-                aFileHandle, *iInstallPrefs, *iComponentInfo, iStatus ) );
+        TRAPD( err, iAsyncLauncher->GetComponentInfoL( *iUiHandler, aFileHandle,
+        		*iInstallPrefs, *iComponentInfo, iStatus ) );
         if( err )
             {
             FLOG_1( _L("CSisxSifPluginActiveImpl::Install, GetComponentInfoL ERROR %d"), err );
@@ -358,7 +362,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::Install KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::Uninstall()
@@ -370,7 +374,7 @@
         const COpaqueNamedParams& aInputParams,
         COpaqueNamedParams& aOutputParams,
         TRequestStatus& aStatus )
-	{
+    {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Uninstall, aComponentId %d"), aComponentId );
     if( !IsActive() )
         {
@@ -383,7 +387,6 @@
             CompleteClientRequest( KErrPermissionDenied );
             return;
             }
-        iUseSilentMode = ETrue;     // no complete/error notes launched in RunL
 
         TRAPD( err, DoUninstallL( aComponentId ) );
         if( err )
@@ -402,7 +405,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::Uninstall KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::Activate()
@@ -412,7 +415,7 @@
         TComponentId aComponentId,
         const TSecurityContext& /*aSecurityContext*/,
         TRequestStatus& aStatus )
-	{
+    {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Activate, aComponentId %d"), aComponentId );
     if( !IsActive() )
         {
@@ -440,7 +443,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::Activate KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::Deactivate()
@@ -450,7 +453,7 @@
         TComponentId aComponentId,
         const TSecurityContext& /*aSecurityContext*/,
         TRequestStatus& aStatus )
-	{
+    {
     FLOG_1( _L("CSisxSifPluginActiveImpl::Deactivate, aComponentId %d"), aComponentId );
     if( !IsActive() )
         {
@@ -478,7 +481,7 @@
         FLOG( _L("CSisxSifPluginActiveImpl::Deactivate KErrInUse") );
         CompleteClientRequest( KErrInUse );
         }
-	}
+    }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::CSisxSifPluginActiveImpl()
@@ -504,41 +507,23 @@
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginActiveImpl::UiHandlerL()
+// CSisxSifPluginActiveImpl::CommonRequestPreamble()
 // ---------------------------------------------------------------------------
 //
-Swi::MUiHandler& CSisxSifPluginActiveImpl::UiHandlerL( TBool aUseSilentMode )
+void CSisxSifPluginActiveImpl::CommonRequestPreamble( TRequestStatus& aStatus )
     {
-    Swi::MUiHandler* handler = NULL;
+    aStatus = KRequestPending;
+    iClientStatus = &aStatus;
 
-    if( aUseSilentMode )
+    if( iInstallParams )
         {
-        if( iUiHandler )
-            {
-            delete iUiHandler;
-            iUiHandler = NULL;
-            }
-        if( !iUiHandlerSilent )
-            {
-            iUiHandlerSilent = CSisxSifPluginUiHandlerSilent::NewL( iFs );
-            }
-        handler = iUiHandlerSilent;
+        delete iInstallParams;
+        iInstallParams = NULL;
         }
-    else
-        {
-        if( iUiHandlerSilent )
-            {
-            delete iUiHandlerSilent;
-            iUiHandlerSilent = NULL;
-            }
-        if( !iUiHandler )
-            {
-            iUiHandler = CSisxSifPluginUiHandler::NewL( iFs );
-            }
-        handler = iUiHandler;
-        }
+    CreateUiHandlerL();
 
-    return *handler;
+    iInputParams = NULL;
+    iOutputParams = NULL;
     }
 
 // ---------------------------------------------------------------------------
@@ -553,17 +538,53 @@
     aStatus = KRequestPending;
     iClientStatus = &aStatus;
 
-    TInt silentInstall = 0;
-    TRAPD( err, aInputParams.GetIntByNameL( KSifInParam_InstallSilently, silentInstall ) );
-    iUseSilentMode = ( err == KErrNone && silentInstall != 0 );
+    if( iInstallParams )
+        {
+        delete iInstallParams;
+        iInstallParams = NULL;
+        }
+    iInstallParams = CSisxSifPluginInstallParams::NewL( aInputParams );
+    CreateUiHandlerL();
 
     iInputParams = &aInputParams;
     iOutputParams = &aOutputParams;
+    }
 
-    // TODO: KSifInParam_InstallInactive
+// ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::CreateUiHandlerL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginActiveImpl::CreateUiHandlerL()
+    {
+    if( iUiHandler )
+    	{
+		delete iUiHandler;
+		iUiHandler = NULL;
+    	}
+	if( IsSilentMode() )
+		{
+		iUiHandler = CSisxSifPluginUiHandlerSilent::NewL( iFs );
+		}
+	else
+		{
+		iUiHandler = CSisxSifPluginUiHandler::NewL( iFs );
+		}
+	if( iInstallParams )
+		{
+		iUiHandler->SetInstallParamsL( *iInstallParams );
+		}
     }
 
 // ---------------------------------------------------------------------------
+// CSisxSifPluginActiveImpl::IsSilentMode()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginActiveImpl::IsSilentMode()
+	{
+	return( iInstallParams && iInstallParams->IsSilentMode() );
+	}
+
+// ---------------------------------------------------------------------------
 // CSisxSifPluginActiveImpl::CompleteClientRequest()
 // ---------------------------------------------------------------------------
 //
@@ -600,7 +621,7 @@
     TUid objectId = TUid::Uid( intPropertyEntry->IntValue() );
     CleanupStack::PopAndDestroy( 2, &scrSession );      // propertyEntry, scrSession
 
-    iAsyncLauncher->UninstallL( UiHandlerL( iUseSilentMode ), objectId, iStatus );
+    iAsyncLauncher->UninstallL( *iUiHandler, objectId, iStatus );
     }
 
 // ---------------------------------------------------------------------------
@@ -635,12 +656,19 @@
 //
 void CSisxSifPluginActiveImpl::DoHandleErrorL( TInt aError )
     {
+    // TODO: add support for:
+    // KSifOutParam_ErrCategory
+    // KSifOutParam_ErrCode
+    // KSifOutParam_ExtendedErrCode
+    // KSifOutParam_ErrMessage
+    // KSifOutParam_ErrMessageDetails
+
     if( iOutputParams )
         {
         iOutputParams->AddIntL( KSifOutParam_ExtendedErrCode, aError );
         }
     TInt errorCode = ConvertToSifErrorCode( aError );
-    if( !iUseSilentMode && ( errorCode != KErrCancel ) )
+    if( errorCode != KErrCancel )
         {
         iUiHandler->DisplayFailedL( errorCode );
         }
@@ -830,24 +858,19 @@
 //
 void CSisxSifPluginActiveImpl::StartInstallingL()
     {
-    Swi::MUiHandler& uiHandler = UiHandlerL( iUseSilentMode );
-
-    if( !iUseSilentMode && iUiHandler )
-        {
-        const CComponentInfo::CNode& rootNode( iComponentInfo->RootNodeL() );
-        TBool driveSelection = rootNode.DriveSeletionRequired();
-        iUiHandler->SetDriveSelectionRequired( driveSelection );
-        TInt maxInstalledSize = rootNode.MaxInstalledSize();
-        iUiHandler->SetMaxInstalledSize( maxInstalledSize );
-        }
+	const CComponentInfo::CNode& rootNode( iComponentInfo->RootNodeL() );
+	TBool driveSelection = rootNode.DriveSeletionRequired();
+	iUiHandler->SetDriveSelectionRequired( driveSelection );
+	TInt maxInstalledSize = rootNode.MaxInstalledSize();
+	iUiHandler->SetMaxInstalledSize( maxInstalledSize );
 
     if( iFileHandle )
         {
-        iAsyncLauncher->InstallL( uiHandler, *iFileHandle, *iInstallPrefs, iStatus );
+        iAsyncLauncher->InstallL( *iUiHandler, *iFileHandle, *iInstallPrefs, iStatus );
         }
     else if( iFileName )
         {
-        iAsyncLauncher->InstallL( uiHandler, *iFileName, *iInstallPrefs, iStatus );
+        iAsyncLauncher->InstallL( *iUiHandler, *iFileName, *iInstallPrefs, iStatus );
         }
     else
         {
@@ -894,10 +917,7 @@
         TComponentId componentId = GetLastInstalledComponentIdL();
         iOutputParams->AddIntL( KSifOutParam_ComponentId, componentId );
         }
-    if( !iUseSilentMode )
-        {
-        iUiHandler->DisplayCompleteL();
-        }
+	iUiHandler->DisplayCompleteL();
     }
 
 // ---------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,311 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Installation parameters class.
+*
+*/
+
+#include "sisxsifplugininstallparams.h" // CSisxSifPluginInstallParams
+#include <f32file.h>                    // EDriveC
+
+using namespace Usif;
+
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::NewL()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginInstallParams* CSisxSifPluginInstallParams::NewL(
+        const COpaqueNamedParams& aParams )
+    {
+    CSisxSifPluginInstallParams* self = new ( ELeave ) CSisxSifPluginInstallParams;
+    CleanupStack::PushL( self );
+    self->ConstructL( aParams );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::NewL()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginInstallParams* CSisxSifPluginInstallParams::NewL(
+        const CSisxSifPluginInstallParams& aParams )
+    {
+    CSisxSifPluginInstallParams* self = new ( ELeave ) CSisxSifPluginInstallParams;
+    CleanupStack::PushL( self );
+    self->ConstructL( aParams );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::~CSisxSifPluginInstallParams()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginInstallParams::~CSisxSifPluginInstallParams()
+    {
+    delete iOCSPUrl;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::IsSilentMode()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginInstallParams::IsSilentMode() const
+    {
+    return iUseSilentMode;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::IsInstallInactive()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginInstallParams::IsInstallInactive() const
+    {
+    return iIsInstallInactive;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::Drive()
+// ---------------------------------------------------------------------------
+//
+TUint CSisxSifPluginInstallParams::Drive() const
+    {
+    return iDrive;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::Language()
+// ---------------------------------------------------------------------------
+//
+TLanguage CSisxSifPluginInstallParams::Language() const
+    {
+    return iLanguage;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::OCSPUrl()
+// ---------------------------------------------------------------------------
+//
+const TDesC& CSisxSifPluginInstallParams::OCSPUrl() const
+    {
+    if( iOCSPUrl )
+        {
+        return *iOCSPUrl;
+        }
+    return KNullDesC;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::PerformOCSP()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::PerformOCSP() const
+    {
+    return iPerformOCSP;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::IgnoreOCSPWarnings()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::IgnoreOCSPWarnings() const
+    {
+    return iIgnoreOCSPWarnings;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::AllowUpgrade()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::AllowUpgrade() const
+    {
+    return iAllowUpgrade;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::InstallOptionalItems()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::InstallOptionalItems() const
+    {
+    return iInstallOptionalItems;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::AllowUntrusted()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::AllowUntrusted() const
+    {
+    return iAllowUntrusted;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::GrantCapabilities()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::GrantCapabilities() const
+    {
+    return iGrantCapabilities;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::AllowAppShutdown()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::AllowAppShutdown() const
+    {
+    return iAllowAppShutdown;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::AllowAppBreakDependency()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::AllowAppBreakDependency() const
+    {
+    return iAllowAppBreakDependency;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::AllowOverwrite()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::AllowOverwrite() const
+    {
+    return iAllowOverwrite;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::PackageInfo()
+// ---------------------------------------------------------------------------
+//
+TSifPolicy CSisxSifPluginInstallParams::PackageInfo() const
+    {
+    return iPackageInfo;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::CSisxSifPluginInstallParams()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginInstallParams::CSisxSifPluginInstallParams() : iAllowUntrusted( ENotAllowed )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginInstallParams::ConstructL( const COpaqueNamedParams& aParams )
+    {
+    iUseSilentMode = GetIntParamL( aParams, KSifInParam_InstallSilently, EFalse );
+    iIsInstallInactive = GetIntParamL( aParams, KSifInParam_InstallInactive, EFalse );
+    iDrive = static_cast<TUint>( GetIntParamL( aParams, KSifInParam_Drive, EDriveC ) );
+    iLanguage = static_cast<TLanguage>( GetIntParamL( aParams, KSifInParam_Languages,
+            ELangNone ) );
+    GetStringParamL( aParams, KSifInParam_OCSPUrl, iOCSPUrl );
+    GetPolicyParamL( aParams, KSifInParam_PerformOCSP, iPerformOCSP, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_IgnoreOCSPWarnings, iIgnoreOCSPWarnings, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_AllowUpgrade, iAllowUpgrade, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_InstallOptionalItems, iInstallOptionalItems, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_AllowUntrusted, iAllowUntrusted, ENotAllowed );
+    GetPolicyParamL( aParams, KSifInParam_GrantCapabilities, iGrantCapabilities, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_AllowAppShutdown, iAllowAppShutdown, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_AllowAppBreakDependency, iAllowAppBreakDependency,
+            EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_AllowOverwrite, iAllowOverwrite, EAllowed );
+    GetPolicyParamL( aParams, KSifInParam_PackageInfo, iPackageInfo, EAllowed );
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginInstallParams::ConstructL( const CSisxSifPluginInstallParams& aParams )
+    {
+	iUseSilentMode = aParams.iUseSilentMode;
+	iIsInstallInactive = aParams.iIsInstallInactive;
+    iDrive = aParams.iDrive;
+    iLanguage = aParams.iLanguage;
+    if( aParams.iOCSPUrl )
+        {
+        iOCSPUrl = aParams.iOCSPUrl->AllocL();
+        }
+    iPerformOCSP = aParams.iPerformOCSP;
+    iIgnoreOCSPWarnings = aParams.iIgnoreOCSPWarnings;
+    iAllowUpgrade = aParams.iAllowUpgrade;
+    iInstallOptionalItems = aParams.iInstallOptionalItems;
+    iAllowUntrusted = aParams.iAllowUntrusted;
+    iGrantCapabilities = aParams.iGrantCapabilities;
+    iAllowAppShutdown = aParams.iAllowAppShutdown;
+    iAllowAppBreakDependency = aParams.iAllowAppBreakDependency;
+    iAllowOverwrite = aParams.iAllowOverwrite;
+    iPackageInfo = aParams.iPackageInfo;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::GetIntParamL()
+// ---------------------------------------------------------------------------
+//
+TInt CSisxSifPluginInstallParams::GetIntParamL( const COpaqueNamedParams& aParams,
+        const TDesC& aParamName, TInt aDefaultValue )
+    {
+    TInt value = aDefaultValue;
+    TBool paramFound = EFalse;
+    TRAPD( err, paramFound = aParams.GetIntByNameL( aParamName, value ) );
+    if( !err && paramFound )
+        {
+        return value;
+        }
+    return aDefaultValue;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::GetPolicyParamL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginInstallParams::GetPolicyParamL( const COpaqueNamedParams& aParams,
+        const TDesC& aParamName, TSifPolicy& aPolicy, const TSifPolicy& aDefault )
+    {
+    TInt value = aDefault;
+    TBool paramFound = EFalse;
+    TRAPD( err, paramFound = aParams.GetIntByNameL( aParamName, value ) );
+    if( !err && paramFound )
+        {
+        aPolicy = static_cast<TSifPolicy>( value );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::GetStringParamL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginInstallParams::GetStringParamL( const COpaqueNamedParams& aParams,
+        const TDesC& aParamName, HBufC*& aBuf )
+    {
+    TPtr value( NULL, 0 );
+    TRAPD( err, value = aParams.StringByNameL( aParamName ) );
+    if( !err && value.Length() )
+        {
+        if( aBuf )
+            {
+            delete aBuf;
+            aBuf = NULL;
+            }
+        aBuf = value.AllocL();
+        }
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp	Thu May 27 12:58:35 2010 +0300
@@ -20,6 +20,7 @@
 #include "sisxsifcleanuputils.h"        // CleanupResetAndDestroyPushL
 #include "sisxsifuiselectioncache.h"    // CSisxUISelectionCache
 #include <sifui.h>                      // CSifUi
+#include <sifuicertificateinfo.h>       // CSifUiCertificateInfo
 #include <bautils.h>                    // BaflUtils
 #include <driveinfo.h>                  // DriveInfo
 #include <featmgr.h>                    // FeatureManager
@@ -148,14 +149,11 @@
 //
 TBool CSisxSifPluginUiHandler::DisplayInstallL( const Swi::CAppInfo& /*aAppInfo*/,
         const CApaMaskedBitmap* /*aLogo*/,
-        const RPointerArray<Swi::CCertificateInfo>& aCertificates )
+        const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayInstallL") );
 
-    if( iSifUi )
-        {
-        iSifUi->SetCertificateInfoL( aCertificates );
-        }
+    iMode = EModeInstall;
     return ETrue;
     }
 
@@ -255,11 +253,17 @@
     switch( aEvent )
         {
         case Swi::EEventSetProgressBarFinalValue:
-            iSifUi->ShowProgressL( aAppInfo, iMaxInstalledSize, aValue );
+            if( iMode == EModeInstall )
+                {
+                iSifUi->ShowProgressL( aAppInfo, iMaxInstalledSize, aValue );
+                }
             break;
 
         case Swi::EEventUpdateProgressBar:
-            iSifUi->IncreaseProgressBarValueL( aValue );
+            if( iMode == EModeInstall )
+                {
+                iSifUi->IncreaseProgressBarValueL( aValue );
+                }
             break;
 
         case Swi::EEventOcspCheckEnd:
@@ -348,7 +352,7 @@
 //
 TBool CSisxSifPluginUiHandler::DisplayOcspResultL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TRevocationDialogMessage /*aMessage*/, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
-        RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/,TBool /*aWarningOnly*/ )
+        RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool /*aWarningOnly*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayOcspResultL") );
 
@@ -360,7 +364,7 @@
 // ---------------------------------------------------------------------------
 //
 void CSisxSifPluginUiHandler::DisplayCannotOverwriteFileL( const Swi::CAppInfo& /*aAppInfo*/,
-        const Swi::CAppInfo& /*aInstalledAppInfo*/,const TDesC& /*aFileName*/ )
+        const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& /*aFileName*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayCannotOverwriteFileL") );
 
@@ -383,11 +387,12 @@
 // CSisxSifPluginUiHandler::DisplayUninstallL()
 // ---------------------------------------------------------------------------
 //
-TBool CSisxSifPluginUiHandler::DisplayUninstallL( const Swi::CAppInfo& aAppInfo )
+TBool CSisxSifPluginUiHandler::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
     {
     FLOG( _L("CSisxSifPluginUiHandler::DisplayUninstallL") );
 
-    return iSifUi->ShowConfirmationL( aAppInfo );
+    iMode = EModeUninstall;
+    return ETrue;       // uninstall is always silent
     }
 
 // ---------------------------------------------------------------------------
@@ -396,7 +401,8 @@
 //
 void CSisxSifPluginUiHandler::DisplayPreparingInstallL( const TDesC& /*aFileName*/ )
     {
-    // TODO: should this be displayed?
+    FLOG( _L("CSisxSifPluginUiHandler::DisplayPreparingInstallL") );
+    // TODO: display preparing install
     }
 
 // ---------------------------------------------------------------------------
@@ -405,10 +411,10 @@
 //
 void CSisxSifPluginUiHandler::DisplayCompleteL()
     {
-    if( iSifUi )
-        {
-        iSifUi->ShowCompleteL();
-        }
+    FLOG( _L("CSisxSifPluginUiHandler::DisplayCompleteL") );
+
+    iSifUi->ShowCompleteL();
+    iMode = EModeUndefined;
     }
 
 // ---------------------------------------------------------------------------
@@ -417,36 +423,18 @@
 //
 void CSisxSifPluginUiHandler::DisplayFailedL( TInt aErrorCode )
     {
-    if( iSifUi )
-        {
-        _LIT( KErrorMessage, "Error" );
-        iSifUi->ShowFailedL( aErrorCode, KErrorMessage );
-        }
-    }
+    FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, aErrorCode=%d"), aErrorCode );
 
-// ---------------------------------------------------------------------------
-// CSisxSifPluginUiHandler::SetDriveSelectionRequired()
-// ---------------------------------------------------------------------------
-//
-void CSisxSifPluginUiHandler::SetDriveSelectionRequired( TBool aIsRequired )
-    {
-    iDriveSelectionRequired = aIsRequired;
-    }
-
-// ---------------------------------------------------------------------------
-// CSisxSifPluginUiHandler::SetMaxInstalledSize()
-// ---------------------------------------------------------------------------
-//
-void CSisxSifPluginUiHandler::SetMaxInstalledSize( TInt aSize )
-    {
-    iMaxInstalledSize = aSize;
+    _LIT( KErrorMessage, "Error" );
+    iSifUi->ShowFailedL( aErrorCode, KErrorMessage );
     }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginUiHandler::CSisxSifPluginUiHandler()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandler::CSisxSifPluginUiHandler( RFs& aFs ) : iFs( aFs )
+CSisxSifPluginUiHandler::CSisxSifPluginUiHandler( RFs& aFs ) :
+        CSisxSifPluginUiHandlerBase( aFs )
     {
     }
 
@@ -505,16 +493,17 @@
     {
     ASSERT( aCertificates.Count() == aPkixResults.Count() );
 
-    RPointerArray<Swi::CCertificateInfo> certificates;
-    CleanupClosePushL( certificates );  // does not own array items
+    RPointerArray<CSifUiCertificateInfo> certificates;
+    CleanupResetAndDestroyPushL( certificates );
 
     for( TInt index = 0; index < aCertificates.Count(); ++index )
         {
         TValidationStatus status = aPkixResults[ index ]->Error();
         if( status.iReason == EValidatedOK )
             {
-            Swi::CCertificateInfo* cert = aCertificates[ index ];
-            certificates.AppendL( cert );   // not owned
+            CSifUiCertificateInfo* cert = CSifUiCertificateInfo::NewLC( *aCertificates[ index ] );
+            certificates.AppendL( cert );
+            CleanupStack::Pop( cert );
             }
         }
     iSifUi->SetCertificateInfoL( certificates );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Base class for SISX SIF plugin UI handlers.
+*
+*/
+
+#include "sisxsifpluginuihandlerbase.h"     // CSisxSifPluginUiHandlerBase
+#include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
+
+using namespace Usif;
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::CSisxSifPluginUiHandlerBase()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginUiHandlerBase::CSisxSifPluginUiHandlerBase( RFs& aFs ) : iFs( aFs )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::~CSisxSifPluginUiHandlerBase()
+// ---------------------------------------------------------------------------
+//
+CSisxSifPluginUiHandlerBase::~CSisxSifPluginUiHandlerBase()
+    {
+    delete iInstallParams;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetInstallParamsL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetInstallParamsL(
+        const CSisxSifPluginInstallParams& aInstallParams )
+    {
+    if( iInstallParams )
+        {
+        delete iInstallParams;
+        iInstallParams = NULL;
+        }
+    iInstallParams = CSisxSifPluginInstallParams::NewL( aInstallParams );
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetMaxInstalledSize()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetMaxInstalledSize( TInt aSize )
+    {
+    iMaxInstalledSize = aSize;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetDriveSelectionRequired()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetDriveSelectionRequired( TBool aIsRequired )
+    {
+    iIsDriveSelectionRequired = aIsRequired;
+    }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp	Thu May 27 12:58:35 2010 +0300
@@ -15,23 +15,13 @@
 *
 */
 
-#include "sisxsifpluginuihandlersilent.h"   // CSisxSifPluginUiHandlerSilentSilent
+#include "sisxsifpluginuihandlersilent.h"   // CSisxSifPluginUiHandlerSilent
+#include "sisxsifplugininstallparams.h"     // CSisxSifPluginInstallParams
 #include "sisxsifplugin.pan"                // Panic codes
 #include "sisxsifcleanuputils.h"            // CleanupResetAndDestroyPushL
 
 using namespace Usif;
 
-// TODO: replace with proper tracing support
-#ifdef _DEBUG
-#define FLOG(x)         RDebug::Print(x);
-#define FLOG_1(x,y)     RDebug::Print(x, y);
-#define FLOG_2(x,y,z)   RDebug::Print(x, y, z);
-#else
-#define FLOG(x)
-#define FLOG_1(x,y)
-#define FLOG_2(x,y,z)
-#endif
-
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -41,7 +31,6 @@
 //
 CSisxSifPluginUiHandlerSilent* CSisxSifPluginUiHandlerSilent::NewL( RFs& aFs )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::NewL") );
     CSisxSifPluginUiHandlerSilent *self = new( ELeave ) CSisxSifPluginUiHandlerSilent( aFs );
     CleanupStack::PushL( self );
     self->ConstructL();
@@ -55,7 +44,6 @@
 //
 CSisxSifPluginUiHandlerSilent::~CSisxSifPluginUiHandlerSilent()
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::~CSisxSifPluginUiHandlerSilent") );
     }
 
 // ---------------------------------------------------------------------------
@@ -65,9 +53,23 @@
 TBool CSisxSifPluginUiHandlerSilent::DisplayTextL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TFileTextOption /*aOption*/, const TDesC& /*aText*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayTextL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->PackageInfo() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+				// TODO: EPolicyUserConfirm
+				break;
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -77,19 +79,31 @@
 void CSisxSifPluginUiHandlerSilent::DisplayErrorL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TErrorDialog /*aType*/, const TDesC& /*aParam*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayErrorL") );
+	// TODO: error handling
     }
 
 // ---------------------------------------------------------------------------
-// CSisxSifPluginUiHandlerSilent::
+// CSisxSifPluginUiHandlerSilent::DisplayDependencyBreakL()
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayDependencyBreakL( const Swi::CAppInfo& /*aAppInfo*/,
         const RPointerArray<TDesC>& /*aComponents*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayDependencyBreakL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->AllowAppBreakDependency() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -99,9 +113,21 @@
 TBool CSisxSifPluginUiHandlerSilent::DisplayApplicationsInUseL( const Swi::CAppInfo& /*aAppInfo*/,
         const RPointerArray<TDesC>& /*aAppNames*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayApplicationsInUseL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->AllowAppShutdown() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -111,18 +137,45 @@
 TBool CSisxSifPluginUiHandlerSilent::DisplayQuestionL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TQuestionDialog aQuestion, const TDesC& /*aDes*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayQuestionL") );
-
-    TBool result = ETrue;
+	TBool okToContinue = EFalse;
     switch( aQuestion )
         {
         case Swi::EQuestionIncompatible:
+        	if( iInstallParams )
+        		{
+				switch( iInstallParams->PackageInfo() )
+					{
+					case EAllowed:
+					case EUserConfirm:
+						okToContinue = ETrue;
+						break;
+					case ENotAllowed:
+					default:
+						break;
+					}
+        		}
             break;
+
         case Swi::EQuestionOverwriteFile:
+        	if( iInstallParams )
+        		{
+				switch( iInstallParams->AllowOverwrite() )
+					{
+					case EAllowed:
+						okToContinue = ETrue;
+						break;
+					case EUserConfirm:
+					case ENotAllowed:
+					default:
+						break;
+					}
+        		}
+        	break;
+
         default:
             break;
         }
-    return result;
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -133,8 +186,6 @@
         const CApaMaskedBitmap* /*aLogo*/,
         const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayInstallL") );
-
     return ETrue;
     }
 
@@ -145,9 +196,21 @@
 TBool CSisxSifPluginUiHandlerSilent::DisplayGrantCapabilitiesL( const Swi::CAppInfo& /*aAppInfo*/,
         const TCapabilitySet& /*aCapabilitySet*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayGrantCapabilitiesL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->GrantCapabilities() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -155,11 +218,31 @@
 // ---------------------------------------------------------------------------
 //
 TInt CSisxSifPluginUiHandlerSilent::DisplayLanguageL( const Swi::CAppInfo& /*aAppInfo*/,
-        const RArray<TLanguage>& /*aLanguages*/ )
+        const RArray<TLanguage>& aLanguages )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayLanguageL") );
-
-    return 0;
+	TInt languageIndex = 0;
+	TBool found = EFalse;
+	TInt languageCount = aLanguages.Count();
+	if( iInstallParams )
+		{
+		TLanguage lang = iInstallParams->Language();
+		TInt index = aLanguages.Find( lang );
+		if( index >= 0 && index < languageCount )
+			{
+			languageIndex = index;
+			found = ETrue;
+			}
+		}
+	if( !found )
+		{
+		TLanguage lang = User::Language();
+		TInt index = aLanguages.Find( lang );
+		if( index > 0 && index < languageCount )
+			{
+			languageIndex = index;
+			}
+		}
+    return languageIndex;
     }
 
 // ---------------------------------------------------------------------------
@@ -167,12 +250,32 @@
 // ---------------------------------------------------------------------------
 //
 TInt CSisxSifPluginUiHandlerSilent::DisplayDriveL( const Swi::CAppInfo& /*aAppInfo*/,
-        TInt64 /*aSize*/, const RArray<TChar>& /*aDriveLetters*/,
-        const RArray<TInt64>& /*aDriveSpaces*/ )
+        TInt64 aSize, const RArray<TChar>& aDriveLetters,
+        const RArray<TInt64>& aDriveSpaces )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayDriveL") );
-
-    return 0;
+	TInt driveIndex = 0;
+	TBool found = EFalse;
+	TInt driveCount = aDriveLetters.Count();
+	if( iInstallParams )
+		{
+		TChar driveLetter = 0;
+		RFs::DriveToChar( iInstallParams->Drive(), driveLetter );
+		TInt index = aDriveLetters.Find( driveLetter );
+		if( index >= 0 && index < driveCount )
+			{
+			if( aDriveSpaces[ index ] > aSize )
+				{
+				driveIndex = index;
+				found = ETrue;
+				}
+			}
+		}
+	// TODO: should there be some default drive?
+	if( !found )
+		{
+		User::Leave( KErrNoMemory );
+		}
+    return driveIndex;
     }
 
 // ---------------------------------------------------------------------------
@@ -182,9 +285,21 @@
 TBool CSisxSifPluginUiHandlerSilent::DisplayUpgradeL( const Swi::CAppInfo& /*aAppInfo*/,
         const Swi::CAppInfo& /*aExistingAppInfo*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayUpgradeL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->AllowUpgrade() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -192,11 +307,27 @@
 // ---------------------------------------------------------------------------
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayOptionsL( const Swi::CAppInfo& /*aAppInfo*/,
-        const RPointerArray<TDesC>& /*aOptions*/, RArray<TBool>& /*aSelections*/ )
+        const RPointerArray<TDesC>& aOptions, RArray<TBool>& aSelections )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayOptionsL") );
-
-    return ETrue;
+	TBool allowOptions = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->InstallOptionalItems() )
+			{
+			case EAllowed:
+				allowOptions = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+	for( TInt index = 0; index < aOptions.Count(); ++index )
+		{
+		aSelections[ index ] = allowOptions;
+		}
+    return ETrue;		// always ok to continue
     }
 
 // ---------------------------------------------------------------------------
@@ -206,8 +337,6 @@
 TBool CSisxSifPluginUiHandlerSilent::HandleInstallEventL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TInstallEvent /*aEvent*/, TInt /*aValue*/, const TDesC& /*aDes*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::HandleInstallEventL") );
-
     return ETrue;
     }
 
@@ -217,9 +346,8 @@
 //
 void CSisxSifPluginUiHandlerSilent::HandleCancellableInstallEventL(
         const Swi::CAppInfo& /*aAppInfo*/, Swi::TInstallCancellableEvent /*aEvent*/,
-        Swi::MCancelHandler& /*aCancelHandler*/, TInt /*aValue*/,const TDesC& /*aDes*/ )
+        Swi::MCancelHandler& /*aCancelHandler*/, TInt /*aValue*/, const TDesC& /*aDes*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::HandleCancellableInstallEventL") );
     }
 
 // ---------------------------------------------------------------------------
@@ -232,15 +360,15 @@
         RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/,
         TBool aInstallAnyway )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplaySecurityWarningL") );
-    TBool result = EFalse;
+    TBool okToContinue = EFalse;
 
     switch( aSigValidationResult )
         {
         case Swi::EValidationSucceeded:
-            result = ETrue;
+        	okToContinue = ETrue;
             break;
 
+        // TODO: check these, now same functionality as before
         case Swi::ESignatureSelfSigned:
         case Swi::ENoCertificate:
         case Swi::ECertificateValidationError:
@@ -249,9 +377,18 @@
         case Swi::ENoCodeSigningExtension:
         case Swi::ENoSupportedPolicyExtension:
         case Swi::EMandatorySignatureMissing:
-            if( aInstallAnyway )
+            if( aInstallAnyway && iInstallParams )
                 {
-                result = ETrue;
+				switch( iInstallParams->AllowUntrusted() )
+					{
+					case EAllowed:
+						okToContinue = ETrue;
+						break;
+					case EUserConfirm:
+					case ENotAllowed:
+					default:
+						break;
+					}
                 }
             break;
 
@@ -259,7 +396,7 @@
             break;
         }
 
-    return result;
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -268,11 +405,24 @@
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayOcspResultL( const Swi::CAppInfo& /*aAppInfo*/,
         Swi::TRevocationDialogMessage /*aMessage*/, RPointerArray<TOCSPOutcome>& /*aOutcomes*/,
-        RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/,TBool /*aWarningOnly*/ )
+        RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/, TBool aWarningOnly )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayOcspResultL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	// TODO: KSWInstallerOcspProcedure setting (off/on/must)
+	if( iInstallParams && aWarningOnly )
+		{
+		switch( iInstallParams->IgnoreOCSPWarnings() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -280,9 +430,9 @@
 // ---------------------------------------------------------------------------
 //
 void CSisxSifPluginUiHandlerSilent::DisplayCannotOverwriteFileL( const Swi::CAppInfo& /*aAppInfo*/,
-        const Swi::CAppInfo& /*aInstalledAppInfo*/,const TDesC& /*aFileName*/ )
+        const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& /*aFileName*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayCannotOverwriteFileL") );
+	// TODO: error handling
     }
 
 // ---------------------------------------------------------------------------
@@ -293,9 +443,21 @@
         const TDesC& /*aDependencyName*/, TVersion /*aWantedVersionFrom*/,
         TVersion /*aWantedVersionTo*/, TVersion /*aInstalledVersion*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayMissingDependencyL") );
-
-    return ETrue;
+	TBool okToContinue = EFalse;
+	if( iInstallParams )
+		{
+		switch( iInstallParams->AllowAppBreakDependency() )
+			{
+			case EAllowed:
+				okToContinue = ETrue;
+				break;
+			case EUserConfirm:
+			case ENotAllowed:
+			default:
+				break;
+			}
+		}
+    return okToContinue;
     }
 
 // ---------------------------------------------------------------------------
@@ -304,16 +466,42 @@
 //
 TBool CSisxSifPluginUiHandlerSilent::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
     {
-    FLOG( _L("CSisxSifPluginUiHandlerSilent::DisplayUninstallL") );
+    return ETrue;
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerSilent::DisplayPreparingInstallL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerSilent::DisplayPreparingInstallL( const TDesC& /*aFileName*/ )
+    {
+    // nothing displayed in silent mode
+    }
 
-    return ETrue;
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerSilent::DisplayCompleteL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerSilent::DisplayCompleteL()
+    {
+    // nothing displayed in silent mode
+    }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerSilent::DisplayFailedL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerSilent::DisplayFailedL( TInt /*aErrorCode*/ )
+    {
+    // nothing displayed in silent mode
     }
 
 // ---------------------------------------------------------------------------
 // CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent()
 // ---------------------------------------------------------------------------
 //
-CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent( RFs& aFs ) : iFs( aFs )
+CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent( RFs& aFs ) :
+        CSisxSifPluginUiHandlerBase( aFs )
     {
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicator.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: 
+ *
+ */
+
+#ifndef SISXSILENTINSTALLINDICATOR_H
+#define SISXSILENTINSTALLINDICATOR_H
+
+#include <QObject>
+#include <hbindicatorinterface.h>
+
+/**
+ * SWI Daemon sisx silent install universal indicator class. 
+ * Handles client request and showing the indications. 
+ */
+class SisxSilentInstallIndicator : public HbIndicatorInterface
+{
+public:
+    /**
+     * Constructor
+     */
+    SisxSilentInstallIndicator(const QString &indicatorType);
+    
+    /**
+     * Destructor
+     */
+    ~SisxSilentInstallIndicator();
+    
+    /**
+     * @see HbIndicatorInterface
+     */
+    bool handleInteraction(InteractionType type);
+    
+    /**
+     * @see HbIndicatorInterface
+     */
+    QVariant indicatorData(int role) const;
+    
+protected:
+    /**
+     * @see HbIndicatorInterface
+     */
+    bool handleClientRequest(RequestType type, const QVariant &parameter);
+    
+private: 
+    
+private:
+    
+    float mUpdateValue;
+    bool mIsInstallProcess;
+    
+};
+
+#endif // SISXSILENTINSTALLINDICATOR_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/inc/sisxsilentinstallindicatorplugin.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  
+ *
+ */
+
+#ifndef SISXSILENTINSTALLINDICATORPLUGIN_H
+#define SISXSILENTINSTALLINDICATORPLUGIN_H
+
+#include <QObject>
+#include <QStringList>
+#include <QVariant>
+#include <hbindicatorplugininterface.h>
+#include <hbindicatorinterface.h>
+
+/**
+ * SWI Daemon sisx silent install indicator plugin class. 
+ * Main class of indicator plugin. 
+ */
+class SisxSilentInstallIndicatorPlugin : public QObject, 
+                                         public HbIndicatorPluginInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(HbIndicatorPluginInterface)
+
+public:
+    /**
+     * Constructor
+     */
+     SisxSilentInstallIndicatorPlugin();
+     
+     /**
+      * Destructor
+      */
+    ~SisxSilentInstallIndicatorPlugin();
+    
+    /**
+     * @see HbIndicatorPluginInterface
+     */
+    QStringList indicatorTypes() const;
+    
+    /**
+     * @see HbIndicatorPluginInterface
+     */   
+    bool accessAllowed(const QString &indicatorType,
+                       const QVariantMap &securityInfo) const;
+      
+    /**
+     * @see HbIndicatorPluginInterface
+     */
+    HbIndicatorInterface* createIndicator(const QString &indicatorType);
+    
+    /**
+     * @see HbIndicatorPluginInterface
+     */
+    int error() const;
+    
+private:
+    Q_DISABLE_COPY(SisxSilentInstallIndicatorPlugin)
+    
+    /**
+     * Error value
+     */
+    int mError;
+        
+    /**
+     * Indicator types 
+     * supported indicator types. 
+     */
+    QStringList mIndicatorTypes;
+};
+
+#endif // SISXSILENTINSTALLINDICATORPLUGIN_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/rom/sisxsilentinstallindicatorplugin.iby	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __SISXSILENTINSTALLINDICATORPLUGIN_IBY__
+#define __SISXSILENTINSTALLINDICATORPLUGIN_IBY__
+
+REM DLL
+file=ABI_DIR\UREL\sisxsilentinstallindicatorplugin.dll    SHARED_LIB_DIR\sisxsilentinstallindicatorplugin.dll UNPAGED
+data=\epoc32\data\z\resource\plugins\indicators\sisxsilentinstallindicatorplugin.qtplugin   \resource\plugins\indicators\sisxsilentinstallindicatorplugin.qtplugin
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicator.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include <w32std.h>
+#include <apgtask.h>
+#include <apacmdln.h>
+#include <xqservicerequest.h>
+#include <hb/hbcore/hbtranslator.h>
+#include <hbicon.h>
+#include "sisxsilentinstallindicator.h" 
+
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicator::SisxSilentInstallIndicator
+// @see sisxsilentinstallindicator.h
+// ----------------------------------------------------------------------------
+SisxSilentInstallIndicator::SisxSilentInstallIndicator( 
+		const QString &indicatorType) :
+    		HbIndicatorInterface(
+    				indicatorType,    				
+    				HbIndicatorInterface::NotificationCategory,
+    				InteractionActivated),
+    		mUpdateValue(0),
+    		mIsInstallProcess(1) // Set installer mode as default.
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicator::~SisxSilentInstallIndicator
+// @see sisxsilentinstallindicator.h
+// ----------------------------------------------------------------------------
+SisxSilentInstallIndicator::~SisxSilentInstallIndicator()
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicator::handleInteraction
+// @see sisxsilentinstallindicator.h
+// ----------------------------------------------------------------------------
+bool SisxSilentInstallIndicator::handleInteraction(InteractionType type)
+    {
+    bool handled = false;
+    
+    if (type == InteractionActivated) 
+        {       
+        handled = true;           
+        emit deactivate(); 
+        }
+    
+    return handled;
+    }
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicator::indicatorData
+// @see sisxsilentinstallindicator.h
+// ----------------------------------------------------------------------------
+QVariant SisxSilentInstallIndicator::indicatorData(int role) const
+{       
+switch(role)
+    {
+    case PrimaryTextRole: 
+        {
+        // Set text to first line of indicator.
+        QString text("");
+        // Check which mode is on.
+        if ( mIsInstallProcess  )
+            { 
+            text.append(QString("Installing"));            
+            }       
+        else
+            {
+            text.append(QString("Finalizing installations"));            
+            }     
+        return text;        
+        }
+    case SecondaryTextRole:
+        {
+        // Set text to second line of indicator.
+        QString text("");        
+        text.append(QString("%1 %").arg(mUpdateValue));      
+        return text; 
+        }    
+    case DecorationNameRole:
+    case MonoDecorationNameRole:
+        {
+        // Get icon for the indicator.
+//TODO: this needs to be fixed.
+        QString iconName("z:/resource/swidaemon/qtg_large_application.svg");
+        return iconName;
+        }
+    default: 
+        return QVariant();      
+    }
+}
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicator::prepareDisplayName
+// @see sisxsilentinstallindicator.h
+// ----------------------------------------------------------------------------
+bool SisxSilentInstallIndicator::handleClientRequest( RequestType type, 
+                                                      const QVariant &parameter)
+    {
+    bool handled(false);
+    
+    switch (type) 
+        {
+        case RequestActivate:
+            {
+            // Read client percent value to float.
+            mUpdateValue = parameter.toReal();
+            
+            // If client send -1 insted of percent value (0-100) we need
+            // to switch to uninstaller mode.
+            if (mUpdateValue == -1)
+                {
+                mIsInstallProcess = false;
+                mUpdateValue = 0;
+                }           
+            emit dataChanged();
+            handled =  true;
+            }
+            break;
+        case RequestDeactivate:
+            {
+            emit deactivate();
+            }
+            break;
+        default:
+            break;
+        }
+
+    return handled;
+    }
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/sisxsilentinstallindicatorplugin/src/sisxsilentinstallindicatorplugin.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include <QtPlugin>
+#include <QVariant>
+#include "sisxsilentinstallindicatorplugin.h"
+#include "sisxsilentinstallindicator.h"
+
+Q_EXPORT_PLUGIN(SisxSilentInstallIndicatorPlugin)
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicatorPlugin::SisxSilentInstallIndicatorPlugin
+// @see sisxsilentinstallindicatorplugin.h
+// ----------------------------------------------------------------------------
+SisxSilentInstallIndicatorPlugin::SisxSilentInstallIndicatorPlugin() : mError(0)
+{
+   
+}
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicatorPlugin::~SisxSilentInstallIndicatorPlugin
+// @see sisxsilentinstallindicatorplugin.h
+// ----------------------------------------------------------------------------
+SisxSilentInstallIndicatorPlugin::~SisxSilentInstallIndicatorPlugin()
+{
+}
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicatorPlugin::indicatorTypes
+// Return notification types this plugin implements
+// @see sisxsilentinstallindicatorplugin.h
+// ----------------------------------------------------------------------------
+QStringList SisxSilentInstallIndicatorPlugin::indicatorTypes() const
+{
+  QStringList types; 
+  types << "com.nokia.sisxsilentinstall.indicatorplugin/1.0";
+  return types;
+}
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicatorPlugin::accessAllowed
+// Check if client is allowed to use notification widget
+// @see sisxsilentinstallindicatorplugin.h
+// ----------------------------------------------------------------------------
+bool SisxSilentInstallIndicatorPlugin::accessAllowed(
+		const QString &indicatorType,
+    const QVariantMap &securityInfo) const
+{
+    Q_UNUSED(indicatorType)
+    Q_UNUSED(securityInfo)
+
+    // This plugin doesn't perform operations that may compromise security.
+    // All clients are allowed to use.
+    return true;
+}
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicatorPlugin::createIndicator
+// @see sisxsilentinstallindicatorplugin.h
+// ----------------------------------------------------------------------------
+HbIndicatorInterface* SisxSilentInstallIndicatorPlugin::createIndicator(
+        const QString &indicatorType)
+{
+    HbIndicatorInterface *indicator = 
+            new SisxSilentInstallIndicator(indicatorType);
+    return indicator;
+}
+
+// ----------------------------------------------------------------------------
+// SisxSilentInstallIndicatorPlugin::error
+// @see sisxsilentinstallindicatorplugin.h
+// ----------------------------------------------------------------------------
+int SisxSilentInstallIndicatorPlugin::error() const
+{
+    return mError;
+}
+
+//EOF
--- a/appinstaller/AppinstUi/startuplistupdater/group/startuplistupdater.mmp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/group/startuplistupdater.mmp	Thu May 27 12:58:35 2010 +0300
@@ -37,11 +37,12 @@
 USERINCLUDE     ../inc
 
 LIBRARY         euser.lib
-LIBRARY         efsrv.lib				// RFs, RFile
-LIBRARY         dscstore.lib			// RDscStore, CDscItem
-LIBRARY         sisregistryclient.lib	// Swi::RSisRegistrySession, Swi::RSisRegistryEntry
-LIBRARY         featmgr.lib				// FeatureManager
-LIBRARY         bafl.lib				// RResourceFile
+LIBRARY         efsrv.lib               // RFs, RFile
+LIBRARY         dscstore.lib            // RDscStore, CDscItem
+LIBRARY         sisregistryclient.lib   // Swi::RSisRegistrySession, Swi::RSisRegistryEntry
+LIBRARY         siscontroller.lib       // Swi::TSisTrustStatus::IsTrusted
+LIBRARY         featmgr.lib             // FeatureManager
+LIBRARY         bafl.lib                // RResourceFile
 LIBRARY         platformenv.lib         // DriveInfo
 
 SMPSAFE
--- a/appinstaller/AppinstUi/startuplistupdater/inc/startuplistupdater.h	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/inc/startuplistupdater.h	Thu May 27 12:58:35 2010 +0300
@@ -50,6 +50,8 @@
     void RemoveImportedResourceFiles( RPointerArray<HBufC>& aResourceFileArray );
     void AppendExecutablesFromResourceFileL( const TDesC& aResourceFile,
             RPointerArray<HBufC>& aExecutableArray );
+    TBool IsValidExecutableForStartupL( const TDesC& aResourceFile,
+        const TDesC& aExecutableName );
     void GetInstalledAppsL( RPointerArray<HBufC>& aInstalledExecutableArray );
     void GetStartupListAppsL( RDscStore& aDscStore,
             RPointerArray<HBufC>& aStartedExecutableArray );
--- a/appinstaller/AppinstUi/startuplistupdater/src/startuplistupdater.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/src/startuplistupdater.cpp	Thu May 27 12:58:35 2010 +0300
@@ -26,6 +26,7 @@
 #include <swi/sisregistrysession.h>     // Swi::RSisRegistrySession
 #include <swi/sisregistrypackage.h>     // Swi::CSisRegistryPackage
 #include <swi/sisregistryentry.h>       // Swi::RSisRegistryEntry
+#include <swi/sistruststatus.h>         // Swi::TSisTrustStatus::IsTrusted
 
 _LIT( KImport, "import\\" );
 _LIT( KDriveAndPathFormat, "%c:%S" );
@@ -310,7 +311,7 @@
 
         CleanupStack::PopAndDestroy( buffer );
 
-        if( recoveryPolicy == EStartupItemExPolicyNone )
+        if( versionInfo == 0 && recoveryPolicy == EStartupItemExPolicyNone )
             {
             // PKG files use '!' for drive letters that user can decide at installation time
             if( executableName.Length() > 0 && executableName[ 0 ] == '!' )
@@ -318,7 +319,7 @@
                 executableName.Replace( 0, 1, KAsterisk );
 
                 TFindFile fileFinder( iFs );
-                CDir* executableDir;
+                CDir* executableDir;            // next FindWildByDir needs AllFiles capability
                 TInt err = fileFinder.FindWildByDir( executableName, KNullDesC, executableDir );
                 if( !err )
                     {
@@ -328,8 +329,7 @@
                     }
                 }
 
-            TEntry entry;
-            if( iFs.Entry( executableName, entry ) == KErrNone )    // needs AllFiles capability
+            if( IsValidExecutableForStartupL( aResourceFile, executableName ) )
                 {
                 aExecutableArray.AppendL( executableName.AllocL() );
                 }
@@ -340,6 +340,95 @@
     }
 
 // ---------------------------------------------------------------------------
+// CStartupListUpdater::IsValidExecutableForStartupL()
+// ---------------------------------------------------------------------------
+//
+TBool CStartupListUpdater::IsValidExecutableForStartupL( const TDesC& aResourceFile,
+        const TDesC& aExecutableName )
+    {
+    TBool isValid = EFalse;
+
+    TEntry entry;
+    if( iFs.Entry( aExecutableName, entry ) == KErrNone )   // needs AllFiles capability
+        {
+        isValid = ETrue;
+
+        // Extract package UID from the resource file name
+        // - allow both "[1234ABCD]" and "1234ABCD" formats
+        // - allow possible "0x" prefix too
+        TUid packageUid = KNullUid;
+        TParsePtrC parse( aResourceFile );
+        TPtrC parseName = parse.Name();
+        TInt fileNameLength = parseName.Length();
+        if( !parse.IsNameWild() && fileNameLength > 0 )
+            {
+            TPtr fileName( const_cast<TUint16*>( parseName.Ptr() ),
+                fileNameLength, fileNameLength );
+
+            if( fileName[ 0 ] == '[' && fileName[ fileNameLength - 1 ] == ']' )
+                {
+                const TInt KTwoCharsLength = 2;
+                fileNameLength -= KTwoCharsLength;
+                fileName = fileName.Mid( 1, fileNameLength );
+                }
+
+            _LIT( KHexPrefix, "0x" );
+            const TInt KHexPrefixLength = 2;
+            if( fileName.Left( KHexPrefixLength ) == KHexPrefix )
+                {
+                fileNameLength -= KHexPrefixLength;
+                fileName = fileName.Mid( KHexPrefixLength, fileNameLength );
+                }
+
+            TLex lex( fileName );
+            TUint32 uidValue = 0;
+            TInt lexError = lex.Val( uidValue, EHex );
+            if( !lexError )
+                {
+                packageUid.iUid = uidValue;
+                }
+            }
+
+        // Get package info from RSisRegistry, and check that
+        // - the package contains the resource file
+        // - the package is properly signed
+        if( packageUid != KNullUid )
+            {
+            Swi::RSisRegistrySession sisRegSession;
+            User::LeaveIfError( sisRegSession.Connect() );
+            CleanupClosePushL( sisRegSession );
+
+            Swi::RSisRegistryEntry package;
+            CleanupClosePushL( package );
+            TInt openError = package.Open( sisRegSession, packageUid );
+            if( !openError )
+                {
+                TBool hasResourceFile = EFalse;
+
+                RPointerArray<HBufC> files;
+                CleanupResetAndDestroyPushL( files );
+                package.FilesL( files );
+                for( TInt index = 0; index < files.Count() && !hasResourceFile; ++index )
+                    {
+                    hasResourceFile = ( aResourceFile.CompareF( *files[ index ] ) == 0 );
+                    }
+
+                if( hasResourceFile && package.TrustStatusL().IsTrusted() )
+                    {
+                    isValid = ETrue;
+                    }
+
+                CleanupStack::PopAndDestroy( &files );
+                }
+
+            CleanupStack::PopAndDestroy( 2, &sisRegSession );  // package, sisRegSession
+            }
+        }
+
+    return isValid;
+    }
+
+// ---------------------------------------------------------------------------
 // CStartupListUpdater::GetInstalledAppsL()
 // ---------------------------------------------------------------------------
 //
@@ -359,7 +448,7 @@
         Swi::RSisRegistryEntry entry;
         CleanupClosePushL( entry );
         entry.OpenL( sisRegistrySession, *( removablePackages[ index ] ) );
-        if( entry.IsPresentL() && entry.RemovableL() )
+        if( entry.RemovableL() )
             {
             GetExecutablesFromEntryL( entry, aInstalledExecutableArray );
             }
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/conf/mt_startuplistupdater.cfg	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/conf/mt_startuplistupdater.cfg	Thu May 27 12:58:35 2010 +0300
@@ -36,4 +36,24 @@
 delete test
 [Endtest]
 
+[Test]
+title Install embedded startable exe
+create mt_startuplistupdater test
+test NotInStartList c:\sys\bin\teststartlistembedded.exe
+//test Install e:\testing\data\teststartlistembedded.sisx
+test Install c:\data\installs\teststartlistembedded.sisx
+pause 1000
+test InStartList c:\sys\bin\teststartlistembedded.exe
+delete test
+[Endtest]
 
+[Test]
+title Remove embedded startable exe
+create mt_startuplistupdater test
+test InStartList c:\sys\bin\teststartlistembedded.exe
+test Remove 0xED2159D3
+pause 1000
+test NotInStartList c:\sys\bin\teststartlistembedded.exe
+delete test
+[Endtest]
+
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_compile_tests.bat	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_compile_tests.bat	Thu May 27 12:58:35 2010 +0300
@@ -22,6 +22,7 @@
 echo ----------------------------------------------------------------------
 echo.
 pushd group
+call sbs reallyclean
 call sbs -c armv5_urel
 call sbs -c winscw_udeb
 popd
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_instrument_code.bat	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_instrument_code.bat	Thu May 27 12:58:35 2010 +0300
@@ -17,7 +17,7 @@
 
 echo ----------------------------------------------------------------------
 echo.
-echo Instrumenting code (armv5 urel and winscw udeb, function coverage)
+echo Instrumenting code (armv5 urel and winscw udeb, decision coverage)
 echo.
 echo ----------------------------------------------------------------------
 echo.
@@ -26,7 +26,7 @@
 if exist MON.dat del MON.dat
 if exist profile.txt del profile.txt
 call sbs reallyclean
-call ctcwrap -i f -2comp -C "EXCLUDE+*.UID.CPP" sbs -c armv5_urel
-call ctcwrap -i f -2comp -C "EXCLUDE+*.UID.CPP" sbs -c winscw_udeb
+call ctcwrap -i d -2comp -C "EXCLUDE+*.UID.CPP" sbs -c armv5_urel
+call ctcwrap -i d -2comp -C "EXCLUDE+*.UID.CPP" sbs -c winscw_udeb
 popd
 
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_run_tests.bat	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/ctc_run_tests.bat	Thu May 27 12:58:35 2010 +0300
@@ -21,6 +21,10 @@
 echo.
 echo ----------------------------------------------------------------------
 echo.
+echo Note: module test can be run also manually. Start STIF UI and run
+echo test cases listed in conf\mt_startuplistupdater.cfg file. Use ctcpost
+echo and ctc2html commands to process the CTC output file (MON.dat).
+echo.
 pushd ..\..\group
 call \epoc32\release\winscw\udeb\ATSInterface.exe –testmodule testscripter –config c:\testframework\mt_startuplistupdater.cfg
 
Binary file appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data/mmc/teststartlistembedded.sisx has changed
Binary file appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data/mmc/teststartlistembedded_winscw.sisx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/bld.inf	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test exe for startup list updater test module.
+*
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+teststartlistembedded.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/datafile.txt	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,1 @@
+This is data file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/doall.bat	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,49 @@
+@echo off
+rem
+rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:  Creates test exe for startup list updater test module.
+rem
+
+set CERTPATH=%1
+if not x%CERTPATH%x == xx goto doit
+echo Usage
+echo doall.bat [path to RD certificates]
+goto end
+
+:doit
+echo on
+call sbs
+call makesis teststartlistembedded.pkg
+call makesis teststartlistembedded_winscw.pkg
+call signsis teststartlistembedded.sis teststartlistembedded.sisx %CERTPATH%\rd.cer %CERTPATH%\rd-key.pem
+call signsis teststartlistembedded_winscw.sis teststartlistembedded_winscw.sisx %CERTPATH%\rd.cer %CERTPATH%\rd-key.pem
+del teststartlistembedded.sis
+del teststartlistembedded_winscw.sis
+call makesis teststartlistembedded_main.pkg
+call makesis teststartlistembedded_main_winscw.pkg
+call signsis teststartlistembedded_main.sis teststartlistembedded_main.sisx %CERTPATH%\rd.cer %CERTPATH%\rd-key.pem
+call signsis teststartlistembedded_main_winscw.sis teststartlistembedded_main_winscw.sisx %CERTPATH%\rd.cer %CERTPATH%\rd-key.pem
+if not exist ..\..\data mkdir ..\..\data
+if not exist ..\..\data\mmc mkdir ..\..\data\mmc
+if exist ..\..\data\mmc\teststartlistembedded.sisx del /F/Q ..\..\data\mmc\teststartlistembedded.sisx
+move teststartlistembedded_main.sisx ..\..\data\mmc\teststartlistembedded.sisx
+if exist ..\..\data\mmc\teststartlistembedded_winscw.sisx del /F/Q ..\..\data\mmc\teststartlistembedded_winscw.sisx
+move teststartlistembedded_main_winscw.sisx ..\..\data\mmc\teststartlistembedded_winscw.sisx
+del teststartlistembedded_main.sis
+del teststartlistembedded_main_winscw.sis
+call sbs reallyclean
+dir ..\..\data\mmc
+
+:end
+set CERTPATH=
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.cpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test exe for startup list updater test module.
+*
+*/
+
+
+#include "teststartlistembedded.h"
+
+
+GLDEF_C TInt E32Main()
+    {
+    return KErrNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.h	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test exe for startup list updater test module.
+*
+*/
+
+
+#ifndef TESTSTARTLISTEMBEDDED_H
+#define TESTSTARTLISTEMBEDDED_H
+
+#include <e32base.h>
+
+GLDEF_C TInt E32Main();
+
+#endif  // TESTSTARTLISTEMBEDDED_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.mmp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test exe for startup list updater test module.
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          teststartlistembedded.exe
+TARGETTYPE      exe
+UID             0 0xEC35FEAB    // random UID
+
+START RESOURCE  teststartlistembedded.rss
+TARGET          ec35feab.rsc
+TARGETPATH      /private/101f875a/import
+END
+
+USERINCLUDE     .
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      .
+SOURCE          teststartlistembedded.cpp
+
+LIBRARY         euser.lib
+
+SMPSAFE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.pkg	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,35 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:  Test exe for startup list updater test module.
+;
+
+
+#{"TestStartListEmbedded"},(0xEC35FEAB),1,0,0
+
+; S60 platform dependencies
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+[0x10283160],0,0,0,{"Series60ProductID"}
+[0x20022E6D],0,0,0,{"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Files
+"\epoc32\release\armv5\urel\teststartlistembedded.exe" - "c:\sys\bin\teststartlistembedded.exe"
+"\epoc32\data\z\private\101f875a\import\ec35feab.rsc" - "c:\private\101f875a\import\[0xec35feab].rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded.rss	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test exe for startup list updater test module.
+*
+*/
+
+#include <startupitem.rh>
+
+RESOURCE STARTUP_ITEM_INFO teststartlistembedded
+    {
+    executable_name = "c:\\sys\\bin\\teststartlistembedded.exe";
+    recovery = EStartupItemExPolicyNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded_main.pkg	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,37 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:  Test exe for startup list updater test module.
+;
+
+
+#{"TestStartListEmbedded"},(0xED2159D3),1,0,0
+
+; S60 platform dependencies
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+[0x10283160],0,0,0,{"Series60ProductID"}
+[0x20022E6D],0,0,0,{"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Files
+"datafile.txt" - "c:\data\datafile.txt"
+
+; Embeddded package containing startable exe
+@{"teststartlistembedded.sisx"}, (0xEC35FEAB)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded_main_winscw.pkg	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,37 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:  Test exe for startup list updater test module.
+;
+
+
+#{"TestStartListEmbedded"},(0xED2159D3),1,0,0
+
+; S60 platform dependencies
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+[0x10283160],0,0,0,{"Series60ProductID"}
+[0x20022E6D],0,0,0,{"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Files
+"datafile.txt" - "c:\data\datafile.txt"
+
+; Embeddded package containing startable exe
+@{"teststartlistembedded_winscw.sisx"}, (0xEC35FEAB)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/data_src/teststartlistembedded/teststartlistembedded_winscw.pkg	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,36 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:  Test exe for startup list updater test module.
+;
+
+
+#{"TestStartListEmbedded"},(0xEC35FEAB),1,0,0
+
+; S60 platform dependencies
+[0x101F7961],0,0,0,{"Series60ProductID"}
+[0x1028315F],0,0,0,{"Series60ProductID"}
+[0x10283160],0,0,0,{"Series60ProductID"}
+[0x20022E6D],0,0,0,{"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Files
+"\epoc32\release\winscw\udeb\teststartlistembedded.exe" - "c:\sys\bin\teststartlistembedded.exe"
+; "\epoc32\data\z\private\101f875a\import\ec35feab.rsc" - "c:\private\101f875a\import\[0xec35feab].rsc"
+"\epoc32\data\z\private\101f875a\import\ec35feab.rsc" - "c:\private\E5F88F39\import\[0xec35feab].rsc"
+
--- a/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/group/bld.inf	Fri May 14 15:58:48 2010 +0300
+++ b/appinstaller/AppinstUi/startuplistupdater/tsrc/mt_startuplistupdater/group/bld.inf	Thu May 27 12:58:35 2010 +0300
@@ -24,6 +24,8 @@
 ../conf/mt_startuplistupdater.cfg   /epoc32/winscw/c/testframework/mt_startuplistupdater.cfg
 ../conf/mt_startuplistupdater.cfg   /epoc32/data/z/testframework/mt_startuplistupdater.cfg
 ../rom/mt_startuplistupdater.iby    CORE_MW_LAYER_IBY_EXPORT_PATH( mt_startuplistupdater.iby )
+../data/mmc/teststartlist_winscw.sisx   /epoc32/winscw/c/data/installs/teststartlist.sisx
+../data/mmc/teststartlistembedded_winscw.sisx /epoc32/winscw/c/data/installs/teststartlistembedded.sisx
 
 PRJ_TESTMMPFILES
 mt_startuplistupdater.mmp
--- a/iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateroaminghandler.cpp	Thu May 27 12:58:35 2010 +0300
@@ -112,7 +112,10 @@
 //
 void CIAUpdateRoamingHandler::CancelPreparing()
     {
-	iNwReg->Cancel();
+    if ( iNwReg )
+        {
+        iNwReg->Cancel();
+        }
     }
 
 
--- a/iaupdate/IAD/ui/src/iaupdatestarter.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatestarter.cpp	Thu May 27 12:58:35 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -108,8 +108,7 @@
         UidForExecutableL( iUid );
         if ( iUid.iUid == 0 )
             {
-            iStarterObserver->StartExecutableCompletedL( KErrNotFound );
-            iStarterObserver = NULL;
+            LaunchExeL();
             }
         else
             {
--- a/iaupdate/rom/iaupdateresources.iby	Fri May 14 15:58:48 2010 +0300
+++ b/iaupdate/rom/iaupdateresources.iby	Thu May 27 12:58:35 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -24,7 +24,6 @@
 
 #ifdef FF_IAUPDATE
 S60_APP_RESOURCE(iaupdate)
-S60_APP_RESOURCE(iaupdater)
 S60_APP_RESOURCE(iaupdatelauncher)
 #endif //FF_IAUPDATE
 
--- a/installationservices/swi/group/bld.inf	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/group/bld.inf	Thu May 27 12:58:35 2010 +0300
@@ -61,6 +61,7 @@
 ../inc/swi/ipcutil.h 	  SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(swi/ipcutil.h)
 
 // ROMKIT include
+../inc/swidaemon.iby /epoc32/rom/include/swidaemon.iby
 ../inc/swi.iby /epoc32/rom/include/swi.iby
 // swi.iby split into two part swi.iby and swiplugin.iby, swiplugin can be used by other team for implementing swi observer plug-in independently
 ../inc/swiplugin.iby /epoc32/rom/include/swiplugin.iby
--- a/installationservices/swi/inc/swi.iby	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/inc/swi.iby	Thu May 27 12:58:35 2010 +0300
@@ -29,7 +29,6 @@
 file=ABI_DIR\BUILD_DIR\sisresult.dll			sys\bin\sisresult.dll
 file=ABI_DIR\BUILD_DIR\uiss.dll				sys\bin\uiss.dll
 file=ABI_DIR\BUILD_DIR\uissclient.dll		sys\bin\uissclient.dll
-file=ABI_DIR\BUILD_DIR\swidaemon.exe			sys\bin\swidaemon.exe
 file=ABI_DIR\BUILD_DIR\sisregistryclient.dll		sys\bin\sisregistryclient.dll
 file=ABI_DIR\BUILD_DIR\sisregistryserver.exe		sys\bin\sisregistryserver.exe
 file=ABI_DIR\BUILD_DIR\sislauncherclient.dll		sys\bin\sislauncherclient.dll
@@ -70,5 +69,6 @@
 ECOM_PLUGIN(swisidchecker.dll, 10281FBC.rsc)
 
 #include "swiconfig.iby"
+#include "swidaemon.iby"
 
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/inc/swidaemon.iby	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* SWIDAEMON.IBY	
+*/
+
+#ifndef __SWIDAEMON_IBY__
+#define __SWIDAEMON_IBY__
+
+REM SWIDAEMON.IBY
+
+file=ABI_DIR\BUILD_DIR\swidaemon.exe			sys\bin\swidaemon.exe
+
+#endif
+
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_01.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_01.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_02.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_02.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_03.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_03.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_04.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_04.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_05.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/int_nr_option_05.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/pu_int_nr_option_01.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/pu_int_nr_option_01.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_01.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_01.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_04.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_04.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_06.pkg	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/swi/test/testexes/packages_interpretsis_testcase/sp_int_nr_option_06.pkg	Thu May 27 12:58:35 2010 +0300
@@ -2,7 +2,7 @@
 ; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 ; All rights reserved.
 ; This component and the accompanying materials are made available
-; under the terms of the License "Eclipse Public License v1.0"
+; under the terms of "Eclipse Public License v1.0"
 ; which accompanies this distribution, and is available
 ; at the URL "http://www.eclipse.org/legal/epl-v10.html".
 ;
--- a/installationservices/switestfw/test/autotesting/testMakesis.pl	Fri May 14 15:58:48 2010 +0300
+++ b/installationservices/switestfw/test/autotesting/testMakesis.pl	Thu May 27 12:58:35 2010 +0300
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -1779,6 +1779,39 @@
 }
 
 #
+# New test code for DEF145101 - MakeSIS cannot handle package files that contain large (>1000) language codes.
+# 
+sub TestDEF145101 {
+
+	my $path = "/epoc32/winscw/c/tswi";
+	my $pkgfile = "$path/largelanguagecodes";
+	my $expectedResult = 0;
+
+	WriteLog("Test for DEF145101 - MakeSIS cannot handle package files that contain large (>1000) language codes.\n");
+	
+	# Do MAKESIS test
+	@retval = system("$makesisExeLocation $pkgfile.pkg $pkgfile-tmp.sis > $pkgfile.log");
+	
+	$logMsg = sprintf "Expected code:%5d   result Code:%5d\n", $expectedResult, $?;
+	WriteLog( $logMsg);
+
+	$NumberOfTests++;
+	
+	if( $? == $expectedResult ) {
+		$NumberOfPassed++;
+		WriteLog("Passed\n\n");
+	}
+	else {
+		$NumberOfFailed++;
+		WriteLog("Failed\n\n");
+	}
+
+	unlink("$pkgfile-tmp.sis");
+	unlink("$pkgfile.sis");
+	unlink("$pkgfile.log");
+}
+
+#
 # Main
 #
 # Create environment and control test flow to testing MAKESIS.EXE 
@@ -2914,6 +2947,11 @@
 TestInterpretsisReport();
 
 #
+# Test for DEF145101 - MakeSIS cannot handle package files that contain large (>1000) language codes.
+#
+TestDEF145101();
+
+#
 # These tests are very specific to windows OS only
 #
 #
--- a/secureswitools/openssllib/import/bin/deb/distribution.policy	Fri May 14 15:58:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-Category E
-OSD:	Optional Replaceable	Software Install Tools PC Side
-Export Restricted
-# This code has been obtained from www.OpenSSL.org and is
-# potentially subject to license and export restrictions.
-
--- a/secureswitools/openssllib/import/bin/linux-x86/deb/distribution.policy	Fri May 14 15:58:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-Category E
-OSD:	Optional Replaceable	Software Install Tools PC Side
-Export Restricted
-# This code has been obtained from www.OpenSSL.org and is
-# potentially subject to license and export restrictions.
-
--- a/secureswitools/openssllib/import/bin/linux-x86/rel/distribution.policy	Fri May 14 15:58:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-Category E
-OSD:	Optional Replaceable	Software Install Tools PC Side
-Export Restricted
-# This code has been obtained from www.OpenSSL.org and is
-# potentially subject to license and export restrictions.
-
--- a/secureswitools/openssllib/import/bin/rel/distribution.policy	Fri May 14 15:58:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-Category E
-OSD:	Optional Replaceable	Software Install Tools PC Side
-Export Restricted
-# This code has been obtained from www.OpenSSL.org and is
-# potentially subject to license and export restrictions.
-
--- a/secureswitools/swisistools/group/bld.inf	Fri May 14 15:58:48 2010 +0300
+++ b/secureswitools/swisistools/group/bld.inf	Thu May 27 12:58:35 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -111,6 +111,9 @@
 ../test/testmakesis/utf8.pkg /epoc32/winscw/c/tswi/utf8.pkg
 ../test/testmakesis/utf8.txt /epoc32/winscw/c/tswi/utf8.txt
 
+// file for testMakesis.pl to test 
+../test/testmakesis/largelanguagecodes.pkg /epoc32/winscw/c/tswi/largelanguagecodes.pkg
+
 // signsis
 ../test/tsignsis/largefile.zip									/epoc32/winscw/c/tswi/tsignsis/largefile.zip
 ../test/tsignsis/largedata.pkg								/epoc32/winscw/c/tswi/tsignsis/largedata.pkg
--- a/secureswitools/swisistools/source/makesislib/packageparser.cpp	Fri May 14 15:58:48 2010 +0300
+++ b/secureswitools/swisistools/source/makesislib/packageparser.cpp	Thu May 27 12:58:35 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -411,7 +411,7 @@
 			dialect = CSISLanguage::IdentifyLanguage (iTokenValue.pszString);
 			if (dialect == CSISLanguage::ELangNone) throw ErrUnknownLanguagesId;
 			}
-		else if (iToken==NUMERIC_TOKEN && iTokenValue.dwNumber>=0 && iTokenValue.dwNumber<=1000)
+		else if (iToken==NUMERIC_TOKEN && iTokenValue.dwNumber>=0 )
 			{
 			dialect = static_cast <CSISLanguage::TDialect> (iTokenValue.dwNumber);
 			}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinFileOutputStream.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinFileOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(BINFILEOUTPUTSTREAM_HPP)
+#define BINFILEOUTPUTSTREAM_HPP
+
+#include <xercesc/framework/BinOutputStream.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinFileOutputStream : public BinOutputStream
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    ~BinFileOutputStream();
+
+    BinFileOutputStream
+    (
+        const   XMLCh* const    fileName
+        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    BinFileOutputStream
+    (
+         const   char* const     fileName
+       , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getIsOpen() const;
+    unsigned int getSize() const;
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the input stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const;
+
+    virtual void writeBytes
+    (
+          const XMLByte* const      toGo
+        , const unsigned int        maxToWrite
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    BinFileOutputStream(const BinFileOutputStream&);
+    BinFileOutputStream& operator=(const BinFileOutputStream&); 
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSource
+    //      The source file that we represent. The FileHandle type is defined
+    //      per platform.
+    // -----------------------------------------------------------------------
+    FileHandle              fSource;
+    MemoryManager* const    fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  BinFileOutputStream: Getter methods
+// ---------------------------------------------------------------------------
+inline bool BinFileOutputStream::getIsOpen() const
+{
+    return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/BinMemOutputStream.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: BinMemOutputStream.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#ifndef BINMEMOUTPUTSTREAM_HEADER_GUARD_
+#define BINMEMOUTPUTSTREAM_HEADER_GUARD_
+
+#include <xercesc/framework/BinOutputStream.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT BinMemOutputStream : public BinOutputStream 
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+
+    ~BinMemOutputStream();
+
+    BinMemOutputStream
+    (
+         int                     initCapacity = 1023
+       , MemoryManager* const    manager      = XMLPlatformUtils::fgMemoryManager
+    );
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the output stream interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int curPos() const;
+
+    virtual void writeBytes
+    (
+      const XMLByte*     const      toGo
+    , const unsigned int            maxToWrite
+    ) ;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLByte* getRawBuffer() const;
+
+    unsigned int getSize() const;
+    void reset();
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented methods.
+    // -----------------------------------------------------------------------
+    BinMemOutputStream(const BinMemOutputStream&);
+    BinMemOutputStream& operator=(const BinMemOutputStream&);
+
+    // -----------------------------------------------------------------------
+    //  Private helpers
+    // -----------------------------------------------------------------------
+    void insureCapacity(const unsigned int extraNeeded);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fDataBuf
+    //      The pointer to the buffer data. Its grown as needed. Its always
+    //      one larger than fCapacity, to leave room for the null terminator.
+    //
+    //  fIndex
+    //      The current index into the buffer, as characters are appended
+    //      to it. If its zero, then the buffer is empty.
+    //
+    //  fCapacity
+    //      The current capacity of the buffer. Its actually always one
+    //      larger, to leave room for the null terminator.
+    //
+    // -----------------------------------------------------------------------
+    MemoryManager*  fMemoryManager;
+    XMLByte*        fDataBuf;
+    unsigned int    fIndex;
+    unsigned int    fCapacity;
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/CharTypeTables.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,255 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: CharTypeTables.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(CHARTYPETABLES_HPP)
+#define CHARTYPETABLES_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ---------------------------------------------------------------------------
+//  These are character type lookup tables. They are included into XMLReader
+//  but are in their own private header in order to keep from making that
+//  file unreadable.
+//
+//  THE RANGES and SINGLES MUST BE IN NUMERICAL ORDER, because the lookup
+//  method will use this info to short circuit the search!
+// ---------------------------------------------------------------------------
+static const XMLCh gBaseChars[] =
+{
+    // Ranges
+        0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6
+    ,   0x00F8, 0x00FF
+    ,   0x0100, 0x0131, 0x0134, 0x013E, 0x0141, 0x0148, 0x014A, 0x017E
+    ,   0x0180, 0x01C3, 0x01CD, 0x01F0, 0x01F4, 0x01F5, 0x01FA, 0x0217
+    ,   0x0250, 0x02A8, 0x02BB, 0x02C1, 0x0388, 0x038A, 0x038E, 0x03A1
+    ,   0x03A3, 0x03CE, 0x03D0, 0x03D6, 0x03E2, 0x03F3, 0x0401, 0x040C
+    ,   0x040E, 0x044F, 0x0451, 0x045C, 0x045E, 0x0481, 0x0490, 0x04C4
+    ,   0x04C7, 0x04C8, 0x04CB, 0x04CC, 0x04D0, 0x04EB, 0x04EE, 0x04F5
+    ,   0x04F8, 0x04F9, 0x0531, 0x0556, 0x0561, 0x0586, 0x05D0, 0x05EA
+    ,   0x05F0, 0x05F2, 0x0621, 0x063A, 0x0641, 0x064A, 0x0671, 0x06B7
+    ,   0x06BA, 0x06BE, 0x06C0, 0x06CE, 0x06D0, 0x06D3, 0x06E5, 0x06E6
+    ,   0x0905, 0x0939, 0x0958, 0x0961, 0x0985, 0x098C, 0x098F, 0x0990
+    ,   0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B6, 0x09B9, 0x09DC, 0x09DD
+    ,   0x09DF, 0x09E1, 0x09F0, 0x09F1, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10
+    ,   0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36
+    ,   0x0A38, 0x0A39, 0x0A59, 0x0A5C, 0x0A72, 0x0A74, 0x0A85, 0x0A8B
+    ,   0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3
+    ,   0x0AB5, 0x0AB9, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28
+    ,   0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B36, 0x0B39, 0x0B5C, 0x0B5D
+    ,   0x0B5F, 0x0B61, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95
+    ,   0x0B99, 0x0B9A, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA
+    ,   0x0BAE, 0x0BB5, 0x0BB7, 0x0BB9, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10
+    ,   0x0C12, 0x0C28, 0x0C2A, 0x0C33, 0x0C35, 0x0C39, 0x0C60, 0x0C61
+    ,   0x0C85, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3
+    ,   0x0CB5, 0x0CB9, 0x0CE0, 0x0CE1, 0x0D05, 0x0D0C, 0x0D0E, 0x0D10
+    ,   0x0D12, 0x0D28, 0x0D2A, 0x0D39, 0x0D60, 0x0D61, 0x0E01, 0x0E2E
+    ,   0x0E32, 0x0E33, 0x0E40, 0x0E45, 0x0E81, 0x0E82, 0x0E87, 0x0E88
+    ,   0x0E94, 0x0E97, 0x0E99, 0x0E9F, 0x0EA1, 0x0EA3, 0x0EAA, 0x0EAB
+    ,   0x0EAD, 0x0EAE, 0x0EB2, 0x0EB3, 0x0EC0, 0x0EC4, 0x0F40, 0x0F47
+    ,   0x0F49, 0x0F69, 0x10A0, 0x10C5, 0x10D0, 0x10F6, 0x1102, 0x1103
+    ,   0x1105, 0x1107, 0x110B, 0x110C, 0x110E, 0x1112, 0x1154, 0x1155
+    ,   0x115F, 0x1161, 0x116D, 0x116E, 0x1172, 0x1173, 0x11AE, 0x11AF
+    ,   0x11B7, 0x11B8, 0x11BC, 0x11C2, 0x1E00, 0x1E9B, 0x1EA0, 0x1EF9
+    ,   0x1F00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D
+    ,   0x1F50, 0x1F57, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC
+    ,   0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB
+    ,   0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x212A, 0x212B
+    ,   0x2180, 0x2182, 0x3041, 0x3094, 0x30A1, 0x30FA, 0x3105, 0x312C
+    ,   0xAC00, 0xD7A3
+    ,   0x00
+
+    // Singles
+    ,   0x0386, 0x038C, 0x03DA, 0x03DC, 0x03DE, 0x03E0, 0x0559, 0x06D5
+    ,   0x093D, 0x09B2, 0x0A5E, 0x0A8D, 0x0ABD, 0x0AE0, 0x0B3D, 0x0B9C
+    ,   0x0CDE, 0x0E30, 0x0E84, 0x0E8A, 0x0E8D, 0x0EA5, 0x0EA7, 0x0EB0
+    ,   0x0EBD, 0x1100, 0x1109, 0x113C, 0x113E, 0x1140, 0x114C, 0x114E
+    ,   0x1150, 0x1159, 0x1163, 0x1165, 0x1167, 0x1169, 0x1175, 0x119E
+    ,   0x11A8, 0x11AB, 0x11BA, 0x11EB, 0x11F0, 0x11F9, 0x1F59, 0x1F5B
+    ,   0x1F5D, 0x1FBE, 0x2126, 0x212E
+    ,   0x00
+};
+
+
+static const XMLCh gCombiningChars[] =
+{
+    // Ranges
+        0x0300, 0x0345, 0x0360, 0x0361, 0x0483, 0x0486, 0x0591, 0x05A1
+    ,   0x05A3, 0x05B9, 0x05BB, 0x05BD, 0x05C1, 0x05C2, 0x064B, 0x0652
+    ,   0x06D6, 0x06DC, 0x06DD, 0x06DF, 0x06E0, 0x06E4
+    ,   0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0901, 0x0903, 0x093E, 0x094C
+    ,   0x0951, 0x0954, 0x0962, 0x0963, 0x0981, 0x0983, 0x09C0, 0x09C4
+    ,   0x09C7, 0x09C8, 0x09CB, 0x09CD, 0x09E2, 0x09E3, 0x0A40, 0x0A42
+    ,   0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A70, 0x0A71, 0x0A81, 0x0A83
+    ,   0x0ABE, 0x0AC5, 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0B01, 0x0B03
+    ,   0x0B3E, 0x0B43, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, 0x0B56, 0x0B57
+    ,   0x0B82, 0x0B83, 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD
+    ,   0x0C01, 0x0C03, 0x0C3E, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D
+    ,   0x0C55, 0x0C56, 0x0C82, 0x0C83, 0x0CBE, 0x0CC4, 0x0CC6, 0x0CC8
+    ,   0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0D02, 0x0D03, 0x0D3E, 0x0D43
+    ,   0x0D46, 0x0D48, 0x0D4A, 0x0D4D, 0x0E34, 0x0E3A, 0x0E47, 0x0E4E
+    ,   0x0EB4, 0x0EB9, 0x0EBB, 0x0EBC, 0x0EC8, 0x0ECD, 0x0F18, 0x0F19
+    ,   0x0F71, 0x0F84, 0x0F86, 0x0F8B, 0x0F90, 0x0F95, 0x0F99, 0x0FAD
+    ,   0x0FB1, 0x0FB7, 0x20D0, 0x20DC, 0x302A, 0x302F
+    ,   0x00
+
+    // Singles
+    ,   0x05BF, 0x05C4, 0x0670
+    ,   0x093C, 0x094D, 0x09BC, 0x09BE, 0x09BF, 0x09D7, 0x0A02
+    ,   0x0A3C, 0x0A3E, 0x0A3F, 0x0ABC, 0x0B3C, 0x0BD7, 0x0D57, 0x0E31
+    ,   0x0EB1, 0x0F35, 0x0F37, 0x0F39, 0x0F3E, 0x0F3F, 0x0F97, 0x0FB9
+    ,   0x20E1, 0x3099, 0x309A
+    ,   0x00
+};
+
+
+static const XMLCh gDigitChars[] =
+{
+    // Ranges
+        0x0030, 0x0039, 0x0660, 0x0669, 0x06F0, 0x06F9, 0x0966, 0x096F
+    ,   0x09E6, 0x09EF, 0x0A66, 0x0A6F, 0x0AE6, 0x0AEF, 0x0B66, 0x0B6F
+    ,   0x0BE7, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF, 0x0D66, 0x0D6F
+    ,   0x0E50, 0x0E59, 0x0ED0, 0x0ED9, 0x0F20, 0x0F29
+    ,   0x00
+
+    // Singles
+    ,   0x00
+};
+
+
+static const XMLCh gIdeographicChars[] =
+{
+    // Ranges
+        0x3021, 0x3029, 0x4E00, 0x9FA5
+    ,   0x00
+
+    // Singles
+    ,   0x3007
+    ,   0x00
+};
+
+static const XMLCh gExtenderChars[] =
+{
+    // Ranges
+        0x3031, 0x3035, 0x309D, 0x309E, 0x30FC, 0x30FE
+    ,   0x00
+
+    // Singles
+    ,   0x00B7, 0x02D0, 0x02D1, 0x0387, 0x0640, 0x0E46, 0x0EC6, 0x3005
+    ,   0x00
+};
+
+
+static const XMLCh gPublicIdChars[] =
+{
+    // Ranges
+        0x0023, 0x0025, 0x0027, 0x003B, 0x003F, 0x005A, 0x0061, 0x007A
+    ,   0x00
+
+    // Singles
+    ,   0x000A, 0x000D, 0x0020, 0x0021, 0x003D, 0x005F
+    ,   0x00
+};
+
+
+static const XMLCh gWhitespaceChars[] =
+{
+    // Ranges
+        0x00
+
+    ,   0x0020, 0x0009, 0x000D, 0x000A
+    ,   0x00
+};
+
+
+static const XMLCh gXMLChars[] =
+{
+    // Ranges
+        0x0020, 0xD7FF, 0xE000, 0xFFFD
+    ,   0x00
+
+    ,   0x0009, 0x000D, 0x000A
+    ,   0x00
+};
+
+// The following are for XML 1.1
+static const XMLCh gWhitespaceChars1_1[] =
+{
+    // Ranges
+        0x00
+
+    ,   0x0020, 0x0009, 0x000D, 0x000A, 0x0085, 0x2028
+    ,   0x00
+};
+
+static const XMLCh gFirstNameChars1_1[] =
+{
+    // Ranges
+    // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check
+        0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6, 0x00D8, 0x00F6
+    ,   0x00F8, 0x02FF, 0x0370, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D
+    ,   0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF, 0xF900, 0xFDCF
+    ,   0xFDF0, 0xFFFD
+    ,   0x00
+
+    ,   0x003A, 0x005F
+    ,   0x00
+
+};
+
+static const XMLCh gNameChars1_1[] =
+{
+    // Ranges
+    // Note: 0x10000 to 0xEFFFF are also allowed, need to separately check
+        0x0030, 0x0039, 0x0041, 0x005A, 0x0061, 0x007A, 0x00C0, 0x00D6
+    ,   0x00D8, 0x00F6, 0x00F8, 0x037D, 0x037F, 0x1FFF, 0x200C, 0x200D
+    ,   0x203F, 0x2040, 0x2070, 0x218F, 0x2C00, 0x2FEF, 0x3001, 0xD7FF
+    ,   0xF900, 0xFDCF, 0xFDF0, 0xFFFD
+    ,   0x00
+
+    ,   0x002D, 0x002E, 0x003A, 0x005F, 0x00B7
+    ,   0x00
+};
+
+static const XMLCh gXMLChars1_1[] =
+{
+    // Ranges
+        0x0020, 0x007E, 0x00A0, 0xD7FF, 0xE000, 0xFFFD
+    ,   0x00
+
+    ,   0x0009, 0x000D, 0x000A, 0x0085
+    ,   0x00
+};
+
+static const XMLCh gControl_Chars1_1[] =
+{
+    // Ranges
+        0x0001, 0x001F, 0x007F, 0x009F
+    ,   0x00
+
+    ,   0x00
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/DGXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,209 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: DGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(DGXMLSCANNER_HPP)
+#define DGXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DTDElementDecl;
+class DTDGrammar;
+class DTDValidator;
+
+//  This is an integrated scanner class, which does DTD/XML Schema grammar
+//  processing.
+class XMLPARSER_EXPORT DGXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DGXMLScanner
+    (
+          XMLValidator* const  valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    DGXMLScanner
+    (
+          XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const     docTypeHandler
+        , XMLEntityHandler* const   entityHandler
+        , XMLErrorReporter* const   errReporter
+        , XMLValidator* const       valToAdopt
+        , GrammarResolver* const    grammarResolver
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~DGXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    DGXMLScanner();
+    DGXMLScanner(const DGXMLScanner&);
+    DGXMLScanner& operator=(const DGXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId); 
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    unsigned int buildAttList
+    (
+        const unsigned int                attCount
+        ,       XMLElementDecl*             elemDecl
+        ,       RefVectorOf<XMLAttr>&       toFill
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const attrPrefix
+        , const XMLCh* const attrLocalName
+        , const XMLCh* const attrValue
+    );
+    void scanAttrListforNameSpaces(RefVectorOf<XMLAttr>* theAttrList, int attCount, XMLElementDecl* elemDecl);
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool scanAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const XMLCh *const        attrName
+        ,       XMLBuffer&          toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fRawAttrList
+    //      During the initial scan of the attributes we can only do a raw
+    //      scan for key/value pairs. So this vector is used to store them
+    //      until they can be processed (and put into fAttrList.)
+    //
+    //  fDTDValidator
+    //      The DTD validator instance.
+    //
+    //  fElemState
+    //  fElemStateSize
+    //      Stores an element next state from DFA content model - used for
+    //      wildcard validation
+    //
+    // fDTDElemNonDeclPool
+    //     registry of "faulted-in" DTD element decls
+    // fElemCount
+    //      count of the number of start tags seen so far (starts at 1).
+    //      Used for duplicate attribute detection/processing of required/defaulted attributes
+    // fAttDefRegistry
+    //      mapping from XMLAttDef instances to the count of the last
+    //      start tag where they were utilized.
+    // fUndeclaredAttrRegistry
+    //      mapping of attr QNames to the count of the last start tag in which they occurred
+    //
+    // -----------------------------------------------------------------------
+    ValueVectorOf<XMLAttr*>*    fAttrNSList;
+    DTDValidator*               fDTDValidator;
+    DTDGrammar*                 fDTDGrammar;
+    NameIdPool<DTDElementDecl>* fDTDElemNonDeclPool;
+    unsigned int                fElemCount;
+    RefHashTableOf<unsigned int>* fAttDefRegistry;
+    RefHashTableOf<unsigned int>* fUndeclaredAttrRegistry;
+};
+
+inline const XMLCh* DGXMLScanner::getName() const
+{
+    return XMLUni::fgDGXMLScanner;
+}
+
+inline Grammar::GrammarType DGXMLScanner::getCurrentGrammarType() const
+{
+    return Grammar::DTDGrammarType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ElemStack.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,587 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ElemStack.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(ELEMSTACK_HPP)
+#define ELEMSTACK_HPP
+
+#include <xercesc/util/StringPool.hpp>
+#include <xercesc/util/QName.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLElementDecl;
+class Grammar;
+
+struct PrefMapElem : public XMemory
+{
+    unsigned int        fPrefId;
+    unsigned int        fURIId;
+};
+
+//
+//  During the scan of content, we have to keep up with the nesting of
+//  elements (for validation and wellformedness purposes) and we have to
+//  have places to remember namespace (prefix to URI) mappings.
+//
+//  We only have to keep a stack of the current path down through the tree
+//  that we are currently scanning, and keep track of any children of any
+//  elements along that path.
+//
+//  So, this data structure is a stack, which represents the current path
+//  through the tree that we've worked our way down to. For each node in
+//  the stack, there is an array of element ids that represent the ids of
+//  the child elements scanned so far. Upon exit from that element, its
+//  array of child elements is validated.
+//
+//  Since we have the actual XMLElementDecl in the stack nodes, when its time
+//  to validate, we just extract the content model from that element decl
+//  and validate. All the required data falls easily to hand. Note that we
+//  actually have some derivative of XMLElementDecl, which is specific to
+//  the validator used, but the abstract API is sufficient for the needs of
+//  the scanner.
+//
+//  Since the namespace support also requires the storage of information on
+//  a nested element basis, this structure also holds the namespace info. For
+//  each level, the prefixes defined at that level (and the namespaces that
+//  they map to) are stored.
+//
+class XMLPARSER_EXPORT ElemStack : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific data types
+    //
+    //  These really should be private, but some of the compilers we have to
+    //  support are too dumb to deal with that.
+    //
+    //  PrefMapElem
+    //      fURIId is the id of the URI from the validator's URI map. The
+    //      fPrefId is the id of the prefix from our own prefix pool. The
+    //      namespace stack consists of these elements.
+    //
+    //  StackElem
+    //      fThisElement is the basic element decl for the current element.
+    //      The fRowCapacity is how large fChildIds has grown so far.
+    //      fChildCount is how many of them are valid right now.
+    //
+    //      The fMapCapacity is how large fMap has grown so far. fMapCount
+    //      is how many of them are valid right now.
+    //
+    //      Note that we store the reader number we were in when we found the
+    //      start tag. We'll use this at the end tag to test for unbalanced
+    //      markup in entities.
+    //
+    //  MapModes
+    //      When a prefix is mapped to a namespace id, it matters whether the
+    //      QName being mapped is an attribute or name. Attributes are not
+    //      affected by an sibling xmlns attributes, whereas elements are
+    //      affected by its own xmlns attributes.
+    // -----------------------------------------------------------------------
+    struct StackElem : public XMemory
+    {
+        XMLElementDecl*     fThisElement;
+        unsigned int        fReaderNum;
+
+        unsigned int        fChildCapacity;
+        unsigned int        fChildCount;
+        QName**             fChildren;
+
+        PrefMapElem*        fMap;
+        unsigned int        fMapCapacity;
+        unsigned int        fMapCount;
+
+        bool                fValidationFlag;
+        bool                fCommentOrPISeen;
+        bool                fReferenceEscaped;
+        int                 fCurrentScope;
+        Grammar*            fCurrentGrammar;
+        unsigned int        fCurrentURI;
+        XMLCh *             fSchemaElemName;
+        unsigned int        fSchemaElemNameMaxLen;
+        
+        int                 fPrefixColonPos;
+    };
+
+    enum MapModes
+    {
+        Mode_Attribute
+        , Mode_Element
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ElemStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack access
+    // -----------------------------------------------------------------------
+    unsigned int addLevel();
+    unsigned int addLevel(XMLElementDecl* const toSet, const unsigned int readerNum);
+    const StackElem* popTop();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack top access
+    // -----------------------------------------------------------------------
+    unsigned int addChild(QName* const child, const bool toParent);
+    const StackElem* topElement() const;
+    void setElement(XMLElementDecl* const toSet, const unsigned int readerNum);
+
+    void setValidationFlag(bool validationFlag);
+    bool getValidationFlag();
+
+    inline void setCommentOrPISeen();
+    inline bool getCommentOrPISeen() const;
+
+    inline void setReferenceEscaped();
+    inline bool getReferenceEscaped() const;
+
+    void setCurrentScope(int currentScope);
+    int getCurrentScope();
+
+    void setCurrentGrammar(Grammar* currentGrammar);
+    Grammar* getCurrentGrammar();
+
+    void setCurrentURI(unsigned int uri);
+    unsigned int getCurrentURI();
+
+    inline void setCurrentSchemaElemName(const XMLCh * const schemaElemName);
+    inline XMLCh *getCurrentSchemaElemName();
+
+    void setPrefixColonPos(int colonPos);
+    int getPrefixColonPos() const;
+
+    // -----------------------------------------------------------------------
+    //  Prefix map methods
+    // -----------------------------------------------------------------------
+    void addPrefix
+    (
+        const   XMLCh* const    prefixToAdd
+        , const unsigned int    uriId
+    );
+    unsigned int mapPrefixToURI
+    (
+        const   XMLCh* const    prefixToMap
+        , const MapModes        mode
+        ,       bool&           unknown
+    )   const;
+    ValueVectorOf<PrefMapElem*>* getNamespaceMap() const;
+    unsigned int getPrefixId(const XMLCh* const prefix) const;
+    const XMLCh* getPrefixForId(unsigned int prefId) const;
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    void reset
+    (
+        const   unsigned int    emptyId
+        , const unsigned int    unknownId
+        , const unsigned int    xmlId
+        , const unsigned int    xmlNSId
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ElemStack(const ElemStack&);
+    ElemStack& operator=(const ElemStack&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void expandMap(StackElem* const toExpand);
+    void expandStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEmptyNamespaceId
+    //      This is the special URI id for the "" namespace, which is magic
+    //      because of the xmlns="" operation.
+    //
+    //  fGlobalPoolId
+    //      This is a special URI id that is returned when the namespace
+    //      prefix is "" and no one has explicitly mapped that prefix to an
+    //      explicit URI (or when they explicitly clear any such mapping,
+    //      which they can also do.) And also its prefix pool id, which is
+    //      stored here for fast access.
+    //
+    //  fPrefixPool
+    //      This is the prefix pool where prefixes are hashed and given unique
+    //      ids. These ids are used to track prefixes in the element stack.
+    //
+    //  fStack
+    //  fStackCapacity
+    //  fStackTop
+    //      This the stack array. Its an array of pointers to StackElem
+    //      structures. The capacity is the current high water mark of the
+    //      stack. The top is the current top of stack (i.e. the part of it
+    //      being used.)
+    //
+    //  fUnknownNamespaceId
+    //      This is the URI id for the special URI that is assigned to any
+    //      prefix which has not been mapped. This lets us keep going after
+    //      issuing the error.
+    //
+    //  fXMLNamespaceId
+    //  fXMLPoolId
+    //  fXMLNSNamespaceId
+    //  fXMLNSPoolId
+    //      These are the URI ids for the special URIs that are assigned to
+    //      the 'xml' and 'xmlns' namespaces. And also its prefix pool id,
+    //      which is stored here for fast access.
+    // -----------------------------------------------------------------------
+    unsigned int                 fEmptyNamespaceId;
+    unsigned int                 fGlobalPoolId;
+    XMLStringPool                fPrefixPool;
+    StackElem**                  fStack;
+    unsigned int                 fStackCapacity;
+    unsigned int                 fStackTop;
+    unsigned int                 fUnknownNamespaceId;
+    unsigned int                 fXMLNamespaceId;
+    unsigned int                 fXMLPoolId;
+    unsigned int                 fXMLNSNamespaceId;
+    unsigned int                 fXMLNSPoolId;
+    ValueVectorOf<PrefMapElem*>* fNamespaceMap;
+    MemoryManager*               fMemoryManager;
+};
+
+
+class XMLPARSER_EXPORT WFElemStack : public XMemory
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific data types
+    //
+    //  These really should be private, but some of the compilers we have to
+    //  support are too dumb to deal with that.
+    //
+    //  PrefMapElem
+    //      fURIId is the id of the URI from the validator's URI map. The
+    //      fPrefId is the id of the prefix from our own prefix pool. The
+    //      namespace stack consists of these elements.
+    //
+    //  StackElem
+    //      fThisElement is the basic element decl for the current element.
+    //      The fRowCapacity is how large fChildIds has grown so far.
+    //      fChildCount is how many of them are valid right now.
+    //
+    //      The fMapCapacity is how large fMap has grown so far. fMapCount
+    //      is how many of them are valid right now.
+    //
+    //      Note that we store the reader number we were in when we found the
+    //      start tag. We'll use this at the end tag to test for unbalanced
+    //      markup in entities.
+    //
+    //  MapModes
+    //      When a prefix is mapped to a namespace id, it matters whether the
+    //      QName being mapped is an attribute or name. Attributes are not
+    //      affected by an sibling xmlns attributes, whereas elements are
+    //      affected by its own xmlns attributes.
+    // -----------------------------------------------------------------------
+    struct StackElem : public XMemory
+    {
+        int                 fTopPrefix;        
+        unsigned int        fCurrentURI;
+        unsigned int        fReaderNum;
+        unsigned int        fElemMaxLength;
+        XMLCh*              fThisElement;
+    };
+
+    enum MapModes
+    {
+        Mode_Attribute
+        , Mode_Element
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    WFElemStack(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~WFElemStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack access
+    // -----------------------------------------------------------------------
+    unsigned int addLevel();
+    unsigned int addLevel(const XMLCh* const toSet, const unsigned int toSetLen,
+                          const unsigned int readerNum);
+    const StackElem* popTop();
+
+
+    // -----------------------------------------------------------------------
+    //  Stack top access
+    // -----------------------------------------------------------------------
+    const StackElem* topElement() const;
+    void setElement(const XMLCh* const toSet, const unsigned int toSetLen,
+                    const unsigned int readerNum);
+
+    void setCurrentURI(unsigned int uri);
+    unsigned int getCurrentURI();
+
+    // -----------------------------------------------------------------------
+    //  Prefix map methods
+    // -----------------------------------------------------------------------
+    void addPrefix
+    (
+        const   XMLCh* const    prefixToAdd
+        , const unsigned int    uriId
+    );
+    unsigned int mapPrefixToURI
+    (
+        const   XMLCh* const    prefixToMap
+        , const MapModes        mode
+        ,       bool&           unknown
+    )   const;
+
+
+    // -----------------------------------------------------------------------
+    //  Miscellaneous methods
+    // -----------------------------------------------------------------------
+    bool isEmpty() const;
+    void reset
+    (
+        const   unsigned int    emptyId
+        , const unsigned int    unknownId
+        , const unsigned int    xmlId
+        , const unsigned int    xmlNSId
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    WFElemStack(const WFElemStack&);
+    WFElemStack& operator=(const WFElemStack&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void expandMap();
+    void expandStack();
+
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEmptyNamespaceId
+    //      This is the special URI id for the "" namespace, which is magic
+    //      because of the xmlns="" operation.
+    //
+    //  fGlobalPoolId
+    //      This is a special URI id that is returned when the namespace
+    //      prefix is "" and no one has explicitly mapped that prefix to an
+    //      explicit URI (or when they explicitly clear any such mapping,
+    //      which they can also do.) And also its prefix pool id, which is
+    //      stored here for fast access.
+    //
+    //  fPrefixPool
+    //      This is the prefix pool where prefixes are hashed and given unique
+    //      ids. These ids are used to track prefixes in the element stack.
+    //
+    //  fStack
+    //  fStackCapacity
+    //  fStackTop
+    //      This the stack array. Its an array of pointers to StackElem
+    //      structures. The capacity is the current high water mark of the
+    //      stack. The top is the current top of stack (i.e. the part of it
+    //      being used.)
+    //
+    //  fUnknownNamespaceId
+    //      This is the URI id for the special URI that is assigned to any
+    //      prefix which has not been mapped. This lets us keep going after
+    //      issuing the error.
+    //
+    //  fXMLNamespaceId
+    //  fXMLPoolId
+    //  fXMLNSNamespaceId
+    //  fXMLNSPoolId
+    //      These are the URI ids for the special URIs that are assigned to
+    //      the 'xml' and 'xmlns' namespaces. And also its prefix pool id,
+    //      which is stored here for fast access.
+    // -----------------------------------------------------------------------
+    unsigned int    fEmptyNamespaceId;
+    unsigned int    fGlobalPoolId;
+    unsigned int    fStackCapacity;
+    unsigned int    fStackTop;
+    unsigned int    fUnknownNamespaceId;
+    unsigned int    fXMLNamespaceId;
+    unsigned int    fXMLPoolId;
+    unsigned int    fXMLNSNamespaceId;
+    unsigned int    fXMLNSPoolId;
+    unsigned int    fMapCapacity;
+    PrefMapElem*    fMap;
+    StackElem**     fStack;
+    XMLStringPool   fPrefixPool;
+    MemoryManager*  fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  ElemStack: Miscellaneous methods
+// ---------------------------------------------------------------------------
+inline bool ElemStack::isEmpty() const
+{
+    return (fStackTop == 0);
+}
+
+inline bool ElemStack::getValidationFlag()
+{
+    return fStack[fStackTop-1]->fValidationFlag;
+}
+
+inline void ElemStack::setValidationFlag(bool validationFlag)
+{
+    fStack[fStackTop-1]->fValidationFlag = validationFlag;
+    return;
+}
+
+inline bool ElemStack::getCommentOrPISeen() const
+{
+    return fStack[fStackTop-1]->fCommentOrPISeen;
+}
+
+inline void ElemStack::setCommentOrPISeen()
+{
+    fStack[fStackTop-1]->fCommentOrPISeen = true;
+    return;
+}
+
+inline bool ElemStack::getReferenceEscaped() const
+{
+    return fStack[fStackTop-1]->fReferenceEscaped;
+}
+
+inline void ElemStack::setReferenceEscaped()
+{
+    fStack[fStackTop-1]->fReferenceEscaped = true;
+    return;
+}
+
+inline void ElemStack::setCurrentSchemaElemName(const XMLCh * const schemaElemName)
+{
+    unsigned int schemaElemNameLen = XMLString::stringLen(schemaElemName);
+    unsigned int stackPos = fStackTop-1;
+    
+    if(fStack[stackPos]->fSchemaElemNameMaxLen <= schemaElemNameLen)
+    {
+        XMLCh *tempStr = fStack[stackPos]->fSchemaElemName;
+        fStack[stackPos]->fSchemaElemNameMaxLen = schemaElemNameLen << 1;
+        fStack[stackPos]->fSchemaElemName = (XMLCh *)fMemoryManager->allocate((fStack[stackPos]->fSchemaElemNameMaxLen)*sizeof(XMLCh));
+        fMemoryManager->deallocate(tempStr);
+    }
+    XMLString::copyString(fStack[stackPos]->fSchemaElemName, schemaElemName);
+}
+
+inline XMLCh *ElemStack::getCurrentSchemaElemName()
+{
+    return fStack[fStackTop-1]->fSchemaElemName;
+}
+
+inline int ElemStack::getCurrentScope()
+{
+    return fStack[fStackTop-1]->fCurrentScope;
+}
+
+inline void ElemStack::setCurrentScope(int currentScope)
+{
+    fStack[fStackTop-1]->fCurrentScope = currentScope;
+    return;
+}
+
+inline Grammar* ElemStack::getCurrentGrammar()
+{
+    return fStack[fStackTop-1]->fCurrentGrammar;
+}
+
+inline void ElemStack::setCurrentGrammar(Grammar* currentGrammar)
+{
+    fStack[fStackTop-1]->fCurrentGrammar = currentGrammar;
+    return;
+}
+
+inline unsigned int ElemStack::getCurrentURI()
+{
+    return fStack[fStackTop-1]->fCurrentURI;
+}
+
+inline void ElemStack::setCurrentURI(unsigned int uri)
+{
+    fStack[fStackTop-1]->fCurrentURI = uri;
+    return;
+}
+
+inline unsigned int ElemStack::getPrefixId(const XMLCh* const prefix) const
+{
+    return fPrefixPool.getId(prefix);
+}
+
+inline const XMLCh* ElemStack::getPrefixForId(unsigned int prefId) const
+{
+    return fPrefixPool.getValueForId(prefId);
+}
+
+inline void ElemStack::setPrefixColonPos(int colonPos)
+{
+    fStack[fStackTop-1]->fPrefixColonPos = colonPos;
+}
+ 
+inline int ElemStack::getPrefixColonPos() const {
+    return fStack[fStackTop-1]->fPrefixColonPos;
+}
+
+// ---------------------------------------------------------------------------
+//  WFElemStack: Miscellaneous methods
+// ---------------------------------------------------------------------------
+inline bool WFElemStack::isEmpty() const
+{
+    return (fStackTop == 0);
+}
+
+inline unsigned int WFElemStack::getCurrentURI()
+{
+    return fStack[fStackTop-1]->fCurrentURI;
+}
+
+inline void WFElemStack::setCurrentURI(unsigned int uri)
+{
+    fStack[fStackTop-1]->fCurrentURI = uri;
+    return;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/EndOfEntityException.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: EndOfEntityException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(ENDOFENTITYEXCEPTION_HPP)
+#define ENDOFENTITYEXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLEntityDecl;
+
+//
+//  This class is only used internally. Its thrown by the ReaderMgr class,
+//  when an entity ends, and is caught in the scanner. This tells the scanner
+//  that an entity has ended, and allows it to do the right thing according
+//  to what was going on when the entity ended.
+//
+//  Since its internal, it does not bother implementing XMLException.
+//
+class XMLPARSER_EXPORT EndOfEntityException
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    EndOfEntityException(       XMLEntityDecl*  entityThatEnded
+                        , const unsigned int    readerNum) :
+
+        fEntity(entityThatEnded)
+        , fReaderNum(readerNum)
+    {
+    }
+
+    EndOfEntityException(const EndOfEntityException& toCopy) :
+
+        fEntity(toCopy.fEntity)
+        , fReaderNum(toCopy.fReaderNum)
+    {
+    }
+
+    ~EndOfEntityException()
+    {
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLEntityDecl& getEntity();
+    const XMLEntityDecl& getEntity() const;
+    unsigned int getReaderNum() const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    // Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    EndOfEntityException& operator = (const  EndOfEntityException&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fEntity
+    //      This is a reference to the entity that ended, causing this
+    //      exception.
+    //
+    //  fReaderNum
+    //      The unique reader number of the reader that was handling this
+    //      entity. This is used to know whether a particular entity has
+    //      ended.
+    // -----------------------------------------------------------------------
+    XMLEntityDecl*  fEntity;
+    unsigned int    fReaderNum;
+};
+
+
+// ---------------------------------------------------------------------------
+//  EndOfEntityException: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLEntityDecl& EndOfEntityException::getEntity()
+{
+    return *fEntity;
+}
+
+inline const XMLEntityDecl& EndOfEntityException::getEntity() const
+{
+    return *fEntity;
+}
+
+inline unsigned int EndOfEntityException::getReaderNum() const
+{
+    return fReaderNum;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IANAEncodings.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,813 @@
+#if !defined(IANAENCODINGS_HPP)
+#define IANAENCODINGS_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+// ----------------------------------------------------------------
+//  This file was generated from the IANA charset source.
+//  so do not edit this file directly!!
+// ----------------------------------------------------------------
+
+const XMLCh gEncodingArray[][46] =
+{
+    { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0036,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x00 }
+  , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0039,0x0031,0x00 }
+  , { 0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0055,0x0053,0x00 }
+  , { 0x0055,0x0053,0x002D,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0075,0x0073,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0033,0x0036,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0033,0x0036,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0054,0x0046,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0036,0x0034,0x0036,0x0055,0x0054,0x0046,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0062,0x0061,0x0073,0x0069,0x0063,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0072,0x0065,0x0066,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0062,0x0061,0x0073,0x0069,0x0063,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0049,0x004E,0x0056,0x0041,0x0052,0x0049,0x0041,0x004E,0x0054,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0034,0x0036,0x002E,0x0069,0x0072,0x0076,0x003A,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x00 }
+  , { 0x0069,0x0072,0x0076,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0049,0x006E,0x0074,0x006C,0x0052,0x0065,0x0066,0x0056,0x0065,0x0072,0x0073,0x0069,0x006F,0x006E,0x00 }
+  , { 0x0042,0x0053,0x005F,0x0034,0x0037,0x0033,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0047,0x0042,0x00 }
+  , { 0x0067,0x0062,0x00 }
+  , { 0x0075,0x006B,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0055,0x006E,0x0069,0x0074,0x0065,0x0064,0x004B,0x0069,0x006E,0x0067,0x0064,0x006F,0x006D,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0053,0x0045,0x0046,0x0049,0x002D,0x0041,0x0044,0x0044,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0053,0x0045,0x0046,0x0049,0x0041,0x0044,0x0044,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x00 }
+  , { 0x004E,0x0041,0x0054,0x0053,0x002D,0x0044,0x0041,0x004E,0x004F,0x002D,0x0041,0x0044,0x0044,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x004E,0x0041,0x0054,0x0053,0x0044,0x0041,0x004E,0x004F,0x0041,0x0044,0x0044,0x00 }
+  , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0042,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x00 }
+  , { 0x0046,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x00 }
+  , { 0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0053,0x0045,0x004E,0x005F,0x0038,0x0035,0x0030,0x0032,0x0030,0x0030,0x005F,0x0043,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0053,0x0045,0x0032,0x00 }
+  , { 0x0073,0x0065,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0053,0x0077,0x0065,0x0064,0x0069,0x0073,0x0068,0x0046,0x006F,0x0072,0x004E,0x0061,0x006D,0x0065,0x0073,0x00 }
+  , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0039,0x00 }
+  , { 0x004B,0x0053,0x005F,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x002D,0x0031,0x0039,0x0038,0x0039,0x00 }
+  , { 0x004B,0x0053,0x0043,0x005F,0x0035,0x0036,0x0030,0x0031,0x00 }
+  , { 0x006B,0x006F,0x0072,0x0065,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0030,0x0031,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004B,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004B,0x0052,0x00 }
+  , { 0x0045,0x0055,0x0043,0x002D,0x004B,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x004B,0x0052,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x004A,0x0050,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0032,0x0032,0x004A,0x0050,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0032,0x0030,0x0032,0x0032,0x002D,0x0043,0x004E,0x002D,0x0045,0x0058,0x0054,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x006A,0x0070,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x00 }
+  , { 0x006B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0078,0x0030,0x0032,0x0030,0x0031,0x002D,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x006A,0x0070,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0030,0x002D,0x0031,0x0039,0x0036,0x0039,0x002D,0x0072,0x006F,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x00 }
+  , { 0x006A,0x0070,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0030,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0054,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0049,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0049,0x0074,0x0061,0x006C,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0050,0x0054,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0036,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0045,0x0053,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0037,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x002D,0x006F,0x006C,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x004F,0x006C,0x0064,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0039,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0044,0x0049,0x004E,0x005F,0x0036,0x0036,0x0030,0x0030,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0031,0x00 }
+  , { 0x0064,0x0065,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0031,0x0047,0x0065,0x0072,0x006D,0x0061,0x006E,0x00 }
+  , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x005F,0x0028,0x0031,0x0039,0x0037,0x0033,0x0029,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0035,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 }
+  , { 0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0032,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0037,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0037,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0036,0x0031,0x0039,0x0037,0x0038,0x00 }
+  , { 0x0042,0x0053,0x005F,0x0076,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0037,0x0042,0x0053,0x0056,0x0069,0x0065,0x0077,0x0064,0x0061,0x0074,0x0061,0x00 }
+  , { 0x0049,0x004E,0x0049,0x0053,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0034,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0034,0x0039,0x0049,0x004E,0x0049,0x0053,0x00 }
+  , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0030,0x0049,0x004E,0x0049,0x0053,0x0038,0x00 }
+  , { 0x0049,0x004E,0x0049,0x0053,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0031,0x0049,0x004E,0x0049,0x0053,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0037,0x003A,0x0031,0x0039,0x0038,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0037,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x0031,0x0039,0x0038,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0035,0x0034,0x0032,0x0038,0x003A,0x0031,0x0039,0x0038,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0034,0x0032,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0047,0x0042,0x005F,0x0031,0x0039,0x0038,0x0038,0x002D,0x0038,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0037,0x00 }
+  , { 0x0063,0x006E,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x004E,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0037,0x0047,0x0042,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0047,0x0042,0x005F,0x0032,0x0033,0x0031,0x0032,0x002D,0x0038,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0035,0x0038,0x00 }
+  , { 0x0063,0x0068,0x0069,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0035,0x0038,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x0038,0x0030,0x00 }
+  , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0030,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x00 }
+  , { 0x006E,0x006F,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0030,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0031,0x00 }
+  , { 0x004E,0x0053,0x005F,0x0034,0x0035,0x0035,0x0031,0x002D,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004E,0x004F,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0031,0x00 }
+  , { 0x006E,0x006F,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0031,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x0032,0x00 }
+  , { 0x004E,0x0046,0x005F,0x005A,0x005F,0x0036,0x0032,0x002D,0x0030,0x0031,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0036,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0046,0x0052,0x00 }
+  , { 0x0066,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0046,0x0072,0x0065,0x006E,0x0063,0x0068,0x00 }
+  , { 0x0076,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x002D,0x0073,0x0075,0x0070,0x0070,0x006C,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0037,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0037,0x0030,0x0056,0x0069,0x0064,0x0065,0x006F,0x0074,0x0065,0x0078,0x0053,0x0075,0x0070,0x0070,0x0031,0x00 }
+  , { 0x0050,0x0054,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0050,0x0054,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0034,0x0050,0x006F,0x0072,0x0074,0x0075,0x0067,0x0075,0x0065,0x0073,0x0065,0x0032,0x00 }
+  , { 0x0045,0x0053,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0045,0x0053,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0035,0x0053,0x0070,0x0061,0x006E,0x0069,0x0073,0x0068,0x0032,0x00 }
+  , { 0x004D,0x0053,0x005A,0x005F,0x0037,0x0037,0x0039,0x0035,0x002E,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0048,0x0055,0x00 }
+  , { 0x0068,0x0075,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0036,0x0048,0x0075,0x006E,0x0067,0x0061,0x0072,0x0069,0x0061,0x006E,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0036,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0037,0x00 }
+  , { 0x0078,0x0030,0x0032,0x0030,0x0038,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0038,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0037,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0030,0x0038,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0047,0x0072,0x0065,0x0065,0x006B,0x0037,0x00 }
+  , { 0x0041,0x0053,0x004D,0x004F,0x005F,0x0034,0x0034,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0039,0x0030,0x0033,0x0036,0x00 }
+  , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0038,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0039,0x0041,0x0053,0x004D,0x004F,0x0034,0x0034,0x0039,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0030,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0031,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0061,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0031,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0061,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004A,0x0050,0x002D,0x004F,0x0043,0x0052,0x002D,0x0042,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0032,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0039,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0033,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0062,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0033,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0062,0x0061,0x0064,0x0064,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0034,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0034,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0035,0x00 }
+  , { 0x006A,0x0070,0x002D,0x006F,0x0063,0x0072,0x002D,0x0068,0x0061,0x006E,0x0064,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0035,0x004A,0x0049,0x0053,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x0068,0x0061,0x006E,0x0064,0x0061,0x0064,0x0064,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0043,0x0036,0x0032,0x0032,0x0039,0x002D,0x0031,0x0039,0x0038,0x0034,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0036,0x004A,0x0049,0x0053,0x0043,0x0036,0x0032,0x0032,0x0039,0x0031,0x0039,0x0038,0x0034,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0032,0x0030,0x0033,0x0033,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0038,0x00 }
+  , { 0x0065,0x0031,0x0033,0x0062,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0032,0x0030,0x0033,0x0033,0x00 }
+  , { 0x0041,0x004E,0x0053,0x0049,0x005F,0x0058,0x0033,0x002E,0x0031,0x0031,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0039,0x0039,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x0054,0x0035,0x0030,0x0030,0x002D,0x0031,0x0039,0x0038,0x0033,0x00 }
+  , { 0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0039,0x0039,0x004E,0x0041,0x0050,0x004C,0x0050,0x0053,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0030,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x006C,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0031,0x0039,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0031,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
+  , { 0x006C,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
+  , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0037,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0032,0x0054,0x0036,0x0031,0x0037,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0054,0x002E,0x0036,0x0031,0x002D,0x0038,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0054,0x002E,0x0036,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0054,0x0036,0x0031,0x0038,0x0062,0x0069,0x0074,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0030,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0033,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 }
+  , { 0x006C,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0033,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0030,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0034,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 }
+  , { 0x006C,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0034,0x00 }
+  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0031,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0031,0x0031,0x0045,0x0043,0x004D,0x0041,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0061,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0031,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0031,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0041,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0061,0x0037,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0032,0x0043,0x0061,0x006E,0x0061,0x0064,0x0069,0x0061,0x006E,0x0032,0x00 }
+  , { 0x0043,0x0053,0x0041,0x005F,0x005A,0x0032,0x0034,0x0033,0x002E,0x0034,0x002D,0x0031,0x0039,0x0038,0x0035,0x002D,0x0067,0x0072,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0033,0x0043,0x0053,0x0041,0x005A,0x0032,0x0034,0x0033,0x0034,0x0031,0x0039,0x0038,0x0035,0x0067,0x0072,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x00 }
+  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0034,0x00 }
+  , { 0x0041,0x0053,0x004D,0x004F,0x002D,0x0037,0x0030,0x0038,0x00 }
+  , { 0x0061,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0041,0x0072,0x0061,0x0062,0x0069,0x0063,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0036,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0036,0x002D,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x003A,0x0031,0x0039,0x0038,0x0037,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0037,0x00 }
+  , { 0x0045,0x004C,0x004F,0x0054,0x005F,0x0039,0x0032,0x0038,0x00 }
+  , { 0x0045,0x0043,0x004D,0x0041,0x002D,0x0031,0x0031,0x0038,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0047,0x0072,0x0065,0x0065,0x006B,0x00 }
+  , { 0x0054,0x002E,0x0031,0x0030,0x0031,0x002D,0x0047,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0032,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0032,0x0038,0x0054,0x0031,0x0030,0x0031,0x0047,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x00 }
+  , { 0x0068,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0045,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0038,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0038,0x002D,0x0049,0x00 }
+  , { 0x0043,0x0053,0x004E,0x005F,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0033,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0033,0x0039,0x0043,0x0053,0x004E,0x0033,0x0036,0x0039,0x0031,0x0030,0x0033,0x00 }
+  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0059,0x0055,0x00 }
+  , { 0x006A,0x0073,0x00 }
+  , { 0x0079,0x0075,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0031,0x004A,0x0055,0x0053,0x0049,0x0042,0x0031,0x0030,0x0030,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0061,0x0064,0x0064,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0054,0x0065,0x0078,0x0074,0x0043,0x006F,0x006D,0x006D,0x00 }
+  , { 0x0049,0x0045,0x0043,0x005F,0x0050,0x0032,0x0037,0x002D,0x0031,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0033,0x0049,0x0045,0x0043,0x0050,0x0032,0x0037,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x003A,0x0031,0x0039,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0035,0x00 }
+  , { 0x0063,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x0073,0x0065,0x0072,0x0062,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0073,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0036,0x0053,0x0065,0x0072,0x0062,0x0069,0x0061,0x006E,0x00 }
+  , { 0x004A,0x0055,0x0053,0x005F,0x0049,0x002E,0x0042,0x0031,0x002E,0x0030,0x0030,0x0033,0x002D,0x006D,0x0061,0x0063,0x00 }
+  , { 0x006D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0034,0x0037,0x004D,0x0061,0x0063,0x0065,0x0064,0x006F,0x006E,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x003A,0x0031,0x0039,0x0038,0x0039,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
+  , { 0x006C,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
+  , { 0x0067,0x0072,0x0065,0x0065,0x006B,0x002D,0x0063,0x0063,0x0069,0x0074,0x0074,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0030,0x0047,0x0072,0x0065,0x0065,0x006B,0x0043,0x0043,0x0049,0x0054,0x0054,0x00 }
+  , { 0x004E,0x0043,0x005F,0x004E,0x0043,0x0030,0x0030,0x002D,0x0031,0x0030,0x003A,0x0038,0x0031,0x00 }
+  , { 0x0063,0x0075,0x0062,0x0061,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0043,0x0055,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0031,0x0043,0x0075,0x0062,0x0061,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0036,0x0039,0x0033,0x0037,0x002D,0x0032,0x002D,0x0032,0x0035,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0039,0x0033,0x0037,0x0041,0x0064,0x0064,0x00 }
+  , { 0x0047,0x004F,0x0053,0x0054,0x005F,0x0031,0x0039,0x0037,0x0036,0x0038,0x002D,0x0037,0x0034,0x00 }
+  , { 0x0053,0x0054,0x005F,0x0053,0x0045,0x0056,0x005F,0x0033,0x0035,0x0038,0x002D,0x0038,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0033,0x0047,0x004F,0x0053,0x0054,0x0031,0x0039,0x0037,0x0036,0x0038,0x0037,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0073,0x0075,0x0070,0x0070,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0034,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0031,0x002D,0x0032,0x002D,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0038,0x0038,0x0035,0x0039,0x0053,0x0075,0x0070,0x0070,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0031,0x0030,0x0033,0x0036,0x0037,0x002D,0x0062,0x006F,0x0078,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0030,0x0033,0x0036,0x0037,0x0042,0x006F,0x0078,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0037,0x00 }
+  , { 0x006C,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0030,0x003A,0x0031,0x0039,0x0039,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x004C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0036,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x002D,0x006C,0x0061,0x0070,0x00 }
+  , { 0x006C,0x0061,0x0070,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0038,0x004C,0x0061,0x0070,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0031,0x0032,0x002D,0x0031,0x0039,0x0039,0x0030,0x00 }
+  , { 0x0078,0x0030,0x0032,0x0031,0x0032,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0035,0x0039,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0031,0x0035,0x0039,0x004A,0x0049,0x0053,0x0058,0x0030,0x0032,0x0031,0x0032,0x0031,0x0039,0x0039,0x0030,0x00 }
+  , { 0x0044,0x0053,0x005F,0x0032,0x0030,0x0038,0x0039,0x00 }
+  , { 0x0044,0x0053,0x0032,0x0030,0x0038,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x0044,0x004B,0x00 }
+  , { 0x0064,0x006B,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0075,0x0073,0x002D,0x0064,0x006B,0x00 }
+  , { 0x0063,0x0073,0x0055,0x0053,0x0044,0x004B,0x00 }
+  , { 0x0064,0x006B,0x002D,0x0075,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0044,0x004B,0x0055,0x0053,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0058,0x0030,0x0032,0x0030,0x0031,0x00 }
+  , { 0x0058,0x0030,0x0032,0x0030,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0061,0x006C,0x0066,0x0057,0x0069,0x0064,0x0074,0x0068,0x004B,0x0061,0x0074,0x0061,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x0036,0x0034,0x0036,0x002D,0x004B,0x0052,0x00 }
+  , { 0x0063,0x0073,0x004B,0x0053,0x0043,0x0035,0x0036,0x0033,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0055,0x0043,0x0053,0x0034,0x00 }
+  , { 0x0044,0x0045,0x0043,0x002D,0x004D,0x0043,0x0053,0x00 }
+  , { 0x0064,0x0065,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0044,0x0045,0x0043,0x004D,0x0043,0x0053,0x00 }
+  , { 0x0068,0x0070,0x002D,0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
+  , { 0x0072,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
+  , { 0x0072,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0052,0x006F,0x006D,0x0061,0x006E,0x0038,0x00 }
+  , { 0x006D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 }
+  , { 0x006D,0x0061,0x0063,0x00 }
+  , { 0x0063,0x0073,0x004D,0x0061,0x0063,0x0069,0x006E,0x0074,0x006F,0x0073,0x0068,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0030,0x0033,0x0037,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0075,0x0073,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0061,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0077,0x0074,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x006E,0x006C,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x004E,0x0054,0x00 }
+  , { 0x0063,0x0070,0x0030,0x0033,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0030,0x0033,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0037,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0045,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0037,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0042,0x0052,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0037,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x0044,0x004B,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0050,0x002D,0x004E,0x004F,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0037,0x0038,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0069,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0037,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0038,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0074,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x0045,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0038,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0038,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0065,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 }
+  , { 0x0043,0x0050,0x0032,0x0038,0x0035,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0062,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0038,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0039,0x0030,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x004A,0x0050,0x002D,0x006B,0x0061,0x006E,0x0061,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0032,0x0039,0x0037,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0066,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0032,0x0039,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0032,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0032,0x0033,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0067,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0032,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0068,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0034,0x0032,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0034,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0034,0x0033,0x0037,0x00 }
+  , { 0x0034,0x0033,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0043,0x006F,0x0064,0x0065,0x0050,0x0061,0x0067,0x0065,0x0034,0x0033,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0035,0x0030,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0062,0x0065,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0063,0x0068,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0035,0x0030,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0037,0x0037,0x0035,0x00 }
+  , { 0x0063,0x0070,0x0037,0x0037,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0037,0x0037,0x0035,0x0042,0x0061,0x006C,0x0074,0x0069,0x0063,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0030,0x00 }
+  , { 0x0038,0x0035,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0035,0x0030,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0031,0x00 }
+  , { 0x0038,0x0035,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0032,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0032,0x00 }
+  , { 0x0038,0x0035,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0070,0x0038,0x0035,0x0032,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0035,0x00 }
+  , { 0x0038,0x0035,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0035,0x0037,0x00 }
+  , { 0x0038,0x0035,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0035,0x0037,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0030,0x00 }
+  , { 0x0038,0x0036,0x0030,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0031,0x00 }
+  , { 0x0038,0x0036,0x0031,0x00 }
+  , { 0x0063,0x0070,0x002D,0x0069,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0032,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0032,0x00 }
+  , { 0x0038,0x0036,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0036,0x0032,0x004C,0x0061,0x0074,0x0069,0x006E,0x0048,0x0065,0x0062,0x0072,0x0065,0x0077,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0033,0x00 }
+  , { 0x0038,0x0036,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0035,0x00 }
+  , { 0x0038,0x0036,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0036,0x00 }
+  , { 0x0038,0x0036,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0036,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0036,0x0038,0x00 }
+  , { 0x0063,0x0070,0x002D,0x0061,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0036,0x0039,0x00 }
+  , { 0x0038,0x0036,0x0039,0x00 }
+  , { 0x0063,0x0070,0x002D,0x0067,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0036,0x0039,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0037,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0072,0x006F,0x0065,0x0063,0x0065,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0079,0x0075,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 }
+  , { 0x0043,0x0050,0x0038,0x0037,0x0031,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0069,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0037,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0038,0x0030,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0079,0x0072,0x0069,0x006C,0x006C,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0038,0x0030,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 }
+  , { 0x0063,0x0070,0x0038,0x0039,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0038,0x0039,0x0031,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 }
+  , { 0x0063,0x0070,0x0039,0x0030,0x0033,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0033,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 }
+  , { 0x0063,0x0070,0x0039,0x0030,0x0034,0x00 }
+  , { 0x0039,0x0030,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x0042,0x004D,0x0039,0x0030,0x0034,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 }
+  , { 0x0043,0x0050,0x0039,0x0030,0x0035,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0074,0x0072,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0030,0x0035,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0039,0x0031,0x0038,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0063,0x0070,0x002D,0x0061,0x0072,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0039,0x0031,0x0038,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 }
+  , { 0x0043,0x0050,0x0031,0x0030,0x0032,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0031,0x0030,0x0032,0x0036,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0041,0x0054,0x002D,0x0044,0x0045,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0041,0x0054,0x0044,0x0045,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0043,0x0041,0x002D,0x0046,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0043,0x0041,0x0046,0x0052,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0044,0x004B,0x002D,0x004E,0x004F,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0044,0x004B,0x004E,0x004F,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0049,0x002D,0x0053,0x0045,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0049,0x0053,0x0045,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0046,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0046,0x0052,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0049,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0049,0x0054,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0050,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0050,0x0054,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0041,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0041,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0045,0x0053,0x002D,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0045,0x0053,0x0053,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x004B,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x004B,0x00 }
+  , { 0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x002D,0x0055,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0042,0x0043,0x0044,0x0049,0x0043,0x0055,0x0053,0x00 }
+  , { 0x0055,0x004E,0x004B,0x004E,0x004F,0x0057,0x004E,0x002D,0x0038,0x0042,0x0049,0x0054,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x006B,0x006E,0x006F,0x0077,0x006E,0x0038,0x0042,0x0069,0x0054,0x00 }
+  , { 0x004D,0x004E,0x0045,0x004D,0x004F,0x004E,0x0049,0x0043,0x00 }
+  , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x006F,0x006E,0x0069,0x0063,0x00 }
+  , { 0x004D,0x004E,0x0045,0x004D,0x00 }
+  , { 0x0063,0x0073,0x004D,0x006E,0x0065,0x006D,0x00 }
+  , { 0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0049,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0056,0x0049,0x0051,0x0052,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0049,0x0051,0x0052,0x00 }
+  , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0052,0x00 }
+  , { 0x0063,0x0073,0x004B,0x004F,0x0049,0x0038,0x0052,0x00 }
+  , { 0x004B,0x004F,0x0049,0x0038,0x002D,0x0055,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0030,0x0038,0x0035,0x0038,0x00 }
+  , { 0x0050,0x0043,0x002D,0x004D,0x0075,0x006C,0x0074,0x0069,0x006C,0x0069,0x006E,0x0067,0x0075,0x0061,0x006C,0x002D,0x0038,0x0035,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0030,0x0039,0x0032,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0039,0x002D,0x002D,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0030,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0075,0x0073,0x002D,0x0033,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0031,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x0065,0x002D,0x0032,0x0037,0x0033,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0032,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0064,0x006B,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x006E,0x006F,0x002D,0x0032,0x0037,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0033,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0069,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0073,0x0065,0x002D,0x0032,0x0037,0x0038,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0034,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0074,0x002D,0x0032,0x0038,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0035,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0065,0x0073,0x002D,0x0032,0x0038,0x0034,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0036,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0067,0x0062,0x002D,0x0032,0x0038,0x0035,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0037,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0066,0x0072,0x002D,0x0032,0x0039,0x0037,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0038,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x002D,0x0035,0x0030,0x0030,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0049,0x0042,0x004D,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
+  , { 0x0043,0x0043,0x0053,0x0049,0x0044,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
+  , { 0x0043,0x0050,0x0030,0x0031,0x0031,0x0034,0x0039,0x00 }
+  , { 0x0065,0x0062,0x0063,0x0064,0x0069,0x0063,0x002D,0x0069,0x0073,0x002D,0x0038,0x0037,0x0031,0x002B,0x0065,0x0075,0x0072,0x006F,0x00 }
+  , { 0x0042,0x0069,0x0067,0x0035,0x002D,0x0048,0x004B,0x0053,0x0043,0x0053,0x00 }
+  , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x00 }
+  , { 0x0053,0x0043,0x0053,0x0055,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0037,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x0042,0x0045,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x004C,0x0045,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0031,0x0036,0x00 }
+  , { 0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0043,0x0045,0x0053,0x0055,0x002D,0x0038,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x0042,0x0045,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0033,0x0032,0x004C,0x0045,0x00 }
+  , { 0x0055,0x004E,0x0049,0x0043,0x004F,0x0044,0x0045,0x002D,0x0031,0x002D,0x0031,0x002D,0x0055,0x0054,0x0046,0x002D,0x0037,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0031,0x0031,0x0055,0x0054,0x0046,0x0037,0x00 }
+  , { 0x0055,0x0054,0x0046,0x002D,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0033,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0069,0x0072,0x002D,0x0031,0x0039,0x0039,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x003A,0x0031,0x0039,0x0039,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0034,0x00 }
+  , { 0x006C,0x0061,0x0074,0x0069,0x006E,0x0038,0x00 }
+  , { 0x0069,0x0073,0x006F,0x002D,0x0063,0x0065,0x006C,0x0074,0x0069,0x0063,0x00 }
+  , { 0x006C,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x005F,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x0036,0x00 }
+  , { 0x00 }
+  , { 0x0047,0x0042,0x004B,0x00 }
+  , { 0x0043,0x0050,0x0039,0x0033,0x0036,0x00 }
+  , { 0x004D,0x0053,0x0039,0x0033,0x0036,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0039,0x0033,0x0036,0x00 }
+  , { 0x0047,0x0042,0x0031,0x0038,0x0030,0x0033,0x0030,0x00 }
+  , { 0x004A,0x0049,0x0053,0x005F,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x004A,0x0049,0x0053,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0053,0x0068,0x0069,0x0066,0x0074,0x005F,0x004A,0x0049,0x0053,0x00 }
+  , { 0x004D,0x0053,0x005F,0x004B,0x0061,0x006E,0x006A,0x0069,0x00 }
+  , { 0x0063,0x0073,0x0053,0x0068,0x0069,0x0066,0x0074,0x004A,0x0049,0x0053,0x00 }
+  , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0050,0x0061,0x0063,0x006B,0x0065,0x0064,0x005F,0x0046,0x006F,0x0072,0x006D,0x0061,0x0074,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0050,0x006B,0x0064,0x0046,0x006D,0x0074,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0045,0x0055,0x0043,0x002D,0x004A,0x0050,0x00 }
+  , { 0x0045,0x0078,0x0074,0x0065,0x006E,0x0064,0x0065,0x0064,0x005F,0x0055,0x004E,0x0049,0x0058,0x005F,0x0043,0x006F,0x0064,0x0065,0x005F,0x0046,0x0069,0x0078,0x0065,0x0064,0x005F,0x0057,0x0069,0x0064,0x0074,0x0068,0x005F,0x0066,0x006F,0x0072,0x005F,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0063,0x0073,0x0045,0x0055,0x0043,0x0046,0x0069,0x0078,0x0057,0x0069,0x0064,0x004A,0x0061,0x0070,0x0061,0x006E,0x0065,0x0073,0x0065,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x0043,0x0053,0x002D,0x0042,0x0061,0x0073,0x0069,0x0063,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0041,0x0053,0x0043,0x0049,0x0049,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0031,0x0030,0x0036,0x0034,0x0036,0x002D,0x004A,0x002D,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0038,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0037,0x0036,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0037,0x0036,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0034,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0034,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x002D,0x0049,0x0042,0x004D,0x002D,0x0031,0x0032,0x0036,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0055,0x006E,0x0069,0x0063,0x006F,0x0064,0x0065,0x0049,0x0042,0x004D,0x0031,0x0032,0x0036,0x0035,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0030,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0030,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0031,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x002E,0x0031,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0031,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0031,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0032,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0032,0x00 }
+  , { 0x0049,0x0053,0x004F,0x002D,0x0038,0x0038,0x0035,0x0039,0x002D,0x0039,0x002D,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x004C,0x0061,0x0074,0x0069,0x006E,0x002D,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004C,0x0061,0x0074,0x0069,0x006E,0x0035,0x00 }
+  , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x0041,0x0064,0x006F,0x0062,0x0065,0x0053,0x0074,0x0061,0x006E,0x0064,0x0061,0x0072,0x0064,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0055,0x0053,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0055,0x0053,0x00 }
+  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x0049,0x006E,0x0074,0x0065,0x0072,0x006E,0x0061,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x00 }
+  , { 0x0050,0x0043,0x0038,0x002D,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x002D,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0044,0x0061,0x006E,0x0069,0x0073,0x0068,0x004E,0x006F,0x0072,0x0077,0x0065,0x0067,0x0069,0x0061,0x006E,0x00 }
+  , { 0x0050,0x0043,0x0038,0x002D,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0063,0x0073,0x0050,0x0043,0x0038,0x0054,0x0075,0x0072,0x006B,0x0069,0x0073,0x0068,0x00 }
+  , { 0x0049,0x0042,0x004D,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x0073,0x00 }
+  , { 0x0049,0x0042,0x004D,0x002D,0x0054,0x0068,0x0061,0x0069,0x00 }
+  , { 0x0063,0x0073,0x0049,0x0042,0x004D,0x0054,0x0068,0x0061,0x0069,0x00 }
+  , { 0x0048,0x0050,0x002D,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x004C,0x0065,0x0067,0x0061,0x006C,0x00 }
+  , { 0x0048,0x0050,0x002D,0x0050,0x0069,0x002D,0x0066,0x006F,0x006E,0x0074,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0069,0x0046,0x006F,0x006E,0x0074,0x00 }
+  , { 0x0048,0x0050,0x002D,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x004D,0x0061,0x0074,0x0068,0x0038,0x00 }
+  , { 0x0041,0x0064,0x006F,0x0062,0x0065,0x002D,0x0053,0x0079,0x006D,0x0062,0x006F,0x006C,0x002D,0x0045,0x006E,0x0063,0x006F,0x0064,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0050,0x0053,0x004D,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0048,0x0050,0x002D,0x0044,0x0065,0x0073,0x006B,0x0054,0x006F,0x0070,0x00 }
+  , { 0x0063,0x0073,0x0048,0x0050,0x0044,0x0065,0x0073,0x006B,0x0074,0x006F,0x0070,0x00 }
+  , { 0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x002D,0x004D,0x0061,0x0074,0x0068,0x00 }
+  , { 0x0063,0x0073,0x0056,0x0065,0x006E,0x0074,0x0075,0x0072,0x0061,0x004D,0x0061,0x0074,0x0068,0x00 }
+  , { 0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x002D,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0063,0x0073,0x004D,0x0069,0x0063,0x0072,0x006F,0x0073,0x006F,0x0066,0x0074,0x0050,0x0075,0x0062,0x006C,0x0069,0x0073,0x0068,0x0069,0x006E,0x0067,0x00 }
+  , { 0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0033,0x0031,0x004A,0x00 }
+  , { 0x0063,0x0073,0x0057,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x0033,0x0031,0x004A,0x00 }
+  , { 0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 }
+  , { 0x0063,0x0073,0x0047,0x0042,0x0032,0x0033,0x0031,0x0032,0x00 }
+  , { 0x0042,0x0069,0x0067,0x0035,0x00 }
+  , { 0x0063,0x0073,0x0042,0x0069,0x0067,0x0035,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0030,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0031,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0032,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0033,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0034,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0035,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0036,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0037,0x00 }
+  , { 0x0077,0x0069,0x006E,0x0064,0x006F,0x0077,0x0073,0x002D,0x0031,0x0032,0x0035,0x0038,0x00 }
+  , { 0x0054,0x0049,0x0053,0x002D,0x0036,0x0032,0x0030,0x00 }
+  , { 0x0048,0x005A,0x002D,0x0047,0x0042,0x002D,0x0032,0x0033,0x0031,0x0032,0x00 }
+
+};
+const unsigned int gEncodingArraySize = 791;
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,326 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: IGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(IGXMLSCANNER_HPP)
+#define IGXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/KVStringPair.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class DTDElementDecl;
+class DTDGrammar;
+class DTDValidator;
+class SchemaValidator;
+class IdentityConstraintHandler;
+class IdentityConstraint;
+class ContentLeafNameTypeVector;
+class SchemaAttDef;
+class XMLContentModel;
+class XSModel;
+class PSVIAttributeList;
+class PSVIElement;
+
+//  This is an integrated scanner class, which does DTD/XML Schema grammar
+//  processing.
+class XMLPARSER_EXPORT IGXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    IGXMLScanner
+    (
+        XMLValidator* const valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    IGXMLScanner
+    (
+          XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const     docTypeHandler
+        , XMLEntityHandler* const   entityHandler
+        , XMLErrorReporter* const   errReporter
+        , XMLValidator* const       valToAdopt
+        , GrammarResolver* const    grammarResolver
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~IGXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    IGXMLScanner();
+    IGXMLScanner(const IGXMLScanner&);
+    IGXMLScanner& operator=(const IGXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    unsigned int buildAttList
+    (
+        const   RefVectorOf<KVStringPair>&  providedAttrs
+        , const unsigned int                attCount
+        ,       XMLElementDecl*             elemDecl
+        ,       RefVectorOf<XMLAttr>&       toFill
+    );
+    bool normalizeAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const XMLCh* const       name 
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    bool normalizeAttRawValue
+    (
+        const   XMLCh* const        attrName
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        ,       XMLBuffer&          uriBufToFill
+        , const ElemStack::MapModes mode
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue        
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue
+        , const int             colonPosition
+    );
+    void scanRawAttrListforNameSpaces(int attCount);
+    void parseSchemaLocation(const XMLCh* const schemaLocationStr);
+    void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri);
+    bool switchGrammar(const XMLCh* const newGrammarNameSpace);
+    bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv,
+                              const XMLContentModel* const cm,
+                              const unsigned int parentElemDepth);
+    bool anyAttributeValidation(SchemaAttDef* attWildCard,
+                                unsigned int uriId,
+                                bool& skipThisOne,
+                                bool& laxThisOne);
+    void resizeElemState();
+    void processSchemaLocation(XMLCh* const schemaLoc);
+
+    void resizeRawAttrColonList();
+
+    unsigned int resolveQNameWithColon
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        , const int                 prefixColonPos
+    );
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool basicAttrValueScan
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    unsigned int rawAttrScan
+    (
+        const   XMLCh* const                elemName
+        ,       RefVectorOf<KVStringPair>&  toFill
+        ,       bool&                       isEmpty
+    );
+    bool scanAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const   XMLCh* const      attrName
+        ,       XMLBuffer&          toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  IdentityConstraints Activation methods
+    // -----------------------------------------------------------------------
+    inline bool toCheckIdentityConstraint()  const;
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false);
+    Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false);
+
+    // -----------------------------------------------------------------------
+    //  PSVI handling methods
+    // -----------------------------------------------------------------------
+    void endElementPSVI(SchemaElementDecl* const elemDecl,
+                        DatatypeValidator* const memberDV);
+    void resetPSVIElemContext();
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fRawAttrList
+    //      During the initial scan of the attributes we can only do a raw
+    //      scan for key/value pairs. So this vector is used to store them
+    //      until they can be processed (and put into fAttrList.)
+    //
+    //  fDTDValidator
+    //      The DTD validator instance.
+    //
+    //  fSchemaValidator
+    //      The Schema validator instance.
+    //
+    //  fSeeXsi
+    //      This flag indicates a schema has been seen.
+    //
+    //  fElemState
+    //  fElemStateSize
+    //      Stores an element next state from DFA content model - used for
+    //      wildcard validation
+    //
+    // fDTDElemNonDeclPool
+    //      registry of "faulted-in" DTD element decls
+    // fSchemaElemNonDeclPool
+    //      registry for elements without decls in the grammar
+    // fElemCount
+    //      count of the number of start tags seen so far (starts at 1).
+    //      Used for duplicate attribute detection/processing of required/defaulted attributes
+    // fAttDefRegistry
+    //      mapping from XMLAttDef instances to the count of the last
+    //      start tag where they were utilized.
+    // fUndeclaredAttrRegistry
+    //      mapping of attr QNames to the count of the last start tag in which they occurred
+    // fUndeclaredAttrRegistryNS
+    //      mapping of namespaceId/localName pairs to the count of the last
+    //      start tag in which they occurred.
+    //  fPSVIAttrList
+    //      PSVI attribute list implementation that needs to be
+    //      filled when a PSVIHandler is registered
+    //
+    // -----------------------------------------------------------------------
+    bool                                    fSeeXsi;
+    Grammar::GrammarType                    fGrammarType;
+    unsigned int                            fElemStateSize;
+    unsigned int*                           fElemState;
+    XMLBuffer                               fContent;
+    RefVectorOf<KVStringPair>*              fRawAttrList;
+    unsigned int                            fRawAttrColonListSize;
+    int*                                    fRawAttrColonList;
+    DTDValidator*                           fDTDValidator;
+    SchemaValidator*                        fSchemaValidator;
+    DTDGrammar*                             fDTDGrammar;
+    IdentityConstraintHandler*              fICHandler;
+    ValueVectorOf<XMLCh*>*                  fLocationPairs;
+    NameIdPool<DTDElementDecl>*             fDTDElemNonDeclPool;
+    RefHash3KeysIdPool<SchemaElementDecl>*  fSchemaElemNonDeclPool;
+    unsigned int                            fElemCount;
+    RefHashTableOf<unsigned int>*           fAttDefRegistry;
+    RefHashTableOf<unsigned int>*           fUndeclaredAttrRegistry;
+    RefHash2KeysTableOf<unsigned int>*      fUndeclaredAttrRegistryNS;
+    PSVIAttributeList *                     fPSVIAttrList;
+    XSModel*                                fModel;
+    PSVIElement*                            fPSVIElement;
+    ValueStackOf<bool>*                     fErrorStack;
+    PSVIElemContext                         fPSVIElemContext;
+};
+
+inline const XMLCh* IGXMLScanner::getName() const
+{
+    return XMLUni::fgIGXMLScanner;
+}
+
+inline bool IGXMLScanner::toCheckIdentityConstraint()  const
+{
+    return fValidate && fIdentityConstraintChecking && fICHandler;
+}
+
+inline Grammar::GrammarType IGXMLScanner::getCurrentGrammarType() const
+{
+    return fGrammarType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerArrayImpl.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemoryManagerArrayImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MEMORYMANAGERARRAYIMPL_HPP)
+#define MEMORYMANAGERARRAYIMPL_HPP
+
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Configurable memory manager
+  *
+  * <p>This is specialized version of a Xerces
+  *    memory manager, which allocates memory using
+  *    using new[](size) syntax. Such memory may
+  *    legally be deleted with delete[].
+  * </p>
+  * <p>This version is used in special cases where it is desired
+  *    that allocated memory be able to be delete[]d.
+  * </p>
+  */
+
+class XMLUTIL_EXPORT MemoryManagerArrayImpl : public MemoryManager
+{
+public:
+
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Default constructor
+      */
+    MemoryManagerArrayImpl()
+    {
+    }
+    //@}
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Default destructor
+      */
+    virtual ~MemoryManagerArrayImpl()
+    {
+    }
+    //@}
+
+    /** @name The virtual methods in MemoryManager */
+    //@{
+
+    /**
+      * This method allocates requested memory.
+      *
+      * @param size The requested memory size
+      *
+      * @return A pointer to the allocated memory
+      */
+    virtual void* allocate(size_t size);
+
+    /**
+      * This method deallocates memory
+      *
+      * @param p The pointer to the allocated memory to be deleted
+      */
+    virtual void deallocate(void* p);
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MemoryManagerArrayImpl(const MemoryManagerArrayImpl&);
+    MemoryManagerArrayImpl& operator=(const MemoryManagerArrayImpl&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/MemoryManagerImpl.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: MemoryManagerImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(MEMORYMANAGERIMPL_HPP)
+#define MEMORYMANAGERIMPL_HPP
+
+#include <xercesc/framework/MemoryManager.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+/**
+  * Configurable memory manager
+  *
+  * <p>This is Xerces default implementation of the memory
+  *    manager interface, which will be instantiated and used
+  *    in the absence of an application's memory manager.
+  * </p>
+  */
+
+class XMLUTIL_EXPORT MemoryManagerImpl : public MemoryManager
+{
+public:
+
+    /** @name Constructor */
+    //@{
+
+    /**
+      * Default constructor
+      */
+    MemoryManagerImpl()
+    {
+    }
+    //@}
+
+    /** @name Destructor */
+    //@{
+
+    /**
+      * Default destructor
+      */
+    virtual ~MemoryManagerImpl()
+    {
+    }
+    //@}
+
+    /** @name The virtual methods in MemoryManager */
+    //@{
+
+    /**
+      * This method allocates requested memory.
+      *
+      * @param size The requested memory size
+      *
+      * @return A pointer to the allocated memory
+      */
+    virtual void* allocate(size_t size);
+
+    /**
+      * This method deallocates memory
+      *
+      * @param p The pointer to the allocated memory to be deleted
+      */
+    virtual void deallocate(void* p);
+
+    //@}
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    MemoryManagerImpl(const MemoryManagerImpl&);
+    MemoryManagerImpl& operator=(const MemoryManagerImpl&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ReaderMgr.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,436 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ReaderMgr.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(READERMGR_HPP)
+#define READERMGR_HPP
+
+#include <xercesc/internal/XMLReader.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/RefStackOf.hpp>
+#include <xercesc/sax/Locator.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLEntityDecl;
+class XMLEntityHandler;
+class XMLDocumentHandler;
+class XMLScanner;
+
+
+// ---------------------------------------------------------------------------
+//  This class is used by the scanner. The scanner must deal with expansion
+//  of entities, some of which are totally different files (external parsed
+//  entities.) It does so by pushing readers onto a stack. The top reader is
+//  the one it wants to read out of, but that one must be popped when it is
+//  empty. To keep that logic from being all over the place, the scanner
+//  talks to the reader manager, which handles the stack and popping off
+//  used up readers.
+// ---------------------------------------------------------------------------
+class XMLPARSER_EXPORT ReaderMgr :   public XMemory 
+                                   , public Locator
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Class specific types
+    // -----------------------------------------------------------------------
+    struct LastExtEntityInfo : public XMemory
+    {
+        const   XMLCh*          systemId;
+        const   XMLCh*          publicId;
+                XMLSSize_t      lineNumber;
+                XMLSSize_t      colNumber;
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    ReaderMgr(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~ReaderMgr();
+
+
+    // -----------------------------------------------------------------------
+    //  Convenience scanning methods
+    //
+    //  This are all convenience methods that work in terms of the core
+    //  character spooling methods.
+    // -----------------------------------------------------------------------
+    bool atEOF() const;
+    bool getName(XMLBuffer& toFill);
+    bool getQName(XMLBuffer& toFill, int* colonPosition);
+    bool getNameToken(XMLBuffer& toFill);
+    XMLCh getNextChar();
+    bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten);
+    void movePlainContentChars(XMLBuffer &dest);
+    void getSpaces(XMLBuffer& toFill);
+    void getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck);
+    bool isEmpty() const;
+    bool lookingAtChar(const XMLCh toCheck);
+    bool lookingAtSpace();
+    XMLCh peekNextChar();
+    bool skipIfQuote(XMLCh& chGotten);
+    void skipPastChar(const XMLCh toSkip);
+    bool skipPastSpaces(bool inDecl = false);
+    void skipToChar(const XMLCh toSkipTo);
+    bool skippedChar(const XMLCh toSkip);
+    bool skippedSpace();
+    bool skippedString(const XMLCh* const toSkip);
+    void skipQuotedString(const XMLCh quoteCh);
+    XMLCh skipUntilIn(const XMLCh* const listToSkip);
+    XMLCh skipUntilInOrWS(const XMLCh* const listToSkip);
+    bool peekString(const XMLCh* const toPeek);
+
+
+    // -----------------------------------------------------------------------
+    //  Control methods
+    // -----------------------------------------------------------------------
+    void cleanStackBackTo(const unsigned int readerNum);
+    XMLReader* createReader
+    (
+        const   InputSource&        src
+        , const bool                xmlDecl
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLReader::Sources  source
+        , const bool                calcSrsOfs = true
+    );
+    XMLReader* createReader
+    (
+        const   XMLCh* const        sysId
+        , const XMLCh* const        pubId
+        , const bool                xmlDecl
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLReader::Sources  source
+        ,       InputSource*&       srcToFill
+        , const bool                calcSrcOfs = true
+        , const bool                disableDefaultEntityResolution = false
+    );
+    XMLReader* createReader
+    (
+        const   XMLCh* const        baseURI
+        , const XMLCh* const        sysId
+        , const XMLCh* const        pubId
+        , const bool                xmlDecl
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLReader::Sources  source
+        ,       InputSource*&       srcToFill
+        , const bool                calcSrcOfs = true
+        , const bool                disableDefaultEntityResolution = false
+    );
+    XMLReader* createIntEntReader
+    (
+        const   XMLCh* const        sysId
+        , const XMLReader::RefFrom  refFrom
+        , const XMLReader::Types    type
+        , const XMLCh* const        dataBuf
+        , const unsigned int        dataLen
+        , const bool                copyBuf
+        , const bool                calcSrcOfs = true
+    );
+    bool isScanningPERefOutOfLiteral() const;
+    bool pushReader
+    (
+                XMLReader* const        reader
+        ,       XMLEntityDecl* const    entity
+    );
+    void reset();
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLCh* getCurrentEncodingStr() const;
+    const XMLEntityDecl* getCurrentEntity() const;
+    XMLEntityDecl* getCurrentEntity();
+    const XMLReader* getCurrentReader() const;
+    XMLReader* getCurrentReader();
+    unsigned int getCurrentReaderNum() const;
+    unsigned int getReaderDepth() const;
+    void getLastExtEntityInfo(LastExtEntityInfo& lastInfo) const;
+    unsigned int getSrcOffset() const;
+    bool getThrowEOE() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setEntityHandler(XMLEntityHandler* const newHandler);
+    void setThrowEOE(const bool newValue);
+    void setXMLVersion(const XMLReader::XMLVersion version);
+    void setStandardUriConformant(const bool newValue);
+
+    // -----------------------------------------------------------------------
+    //  Implement the SAX Locator interface
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getPublicId() const;
+    virtual const XMLCh* getSystemId() const;
+    virtual XMLSSize_t getLineNumber() const;
+    virtual XMLSSize_t getColumnNumber() const;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    const XMLReader* getLastExtEntity(const XMLEntityDecl*& itsEntity) const;
+    bool popReader();
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    ReaderMgr(const ReaderMgr&);
+    ReaderMgr& operator=(const ReaderMgr&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fCurEntity
+    //      This is the current top of stack entity. We pull it off the stack
+    //      and store it here for efficiency.
+    //
+    //  fCurReader
+    //      This is the current top of stack reader. We pull it off the
+    //      stack and store it here for efficiency.
+    //
+    //  fEntityHandler
+    //      This is the installed entity handler. Its installed via the
+    //      scanner but he passes it on to us since we need it the most, in
+    //      process of creating external entity readers.
+    //
+    //  fEntityStack
+    //      We need to keep up with which of the pushed readers are pushed
+    //      entity values that are being spooled. This is done to avoid the
+    //      problem of recursive definitions. This stack consists of refs to
+    //      EntityDecl objects for the pushed entities.
+    //
+    //  fNextReaderNum
+    //      This is the reader serial number value. Each new reader that is
+    //      created from this reader is given a successive number. This lets
+    //      us catch things like partial markup errors and such.
+    //
+    //  fReaderStack
+    //      This is the stack of reader references. We own all the readers
+    //      and destroy them when they are used up.
+    //
+    //  fThrowEOE
+    //      This flag controls whether we throw an exception when we hit an
+    //      end of entity. The scanner doesn't really need to know about ends
+    //      of entities in the int/ext subsets, so it will turn this flag off
+    //      until it gets into the content usually.
+    //
+    //  fXMLVersion
+    //      Enum to indicate if each Reader should be created as XML 1.1 or
+    //      XML 1.0 conformant
+    //
+    //  fStandardUriConformant
+    //      This flag controls whether we force conformant URI
+    // -----------------------------------------------------------------------
+    XMLEntityDecl*              fCurEntity;
+    XMLReader*                  fCurReader;
+    XMLEntityHandler*           fEntityHandler;
+    RefStackOf<XMLEntityDecl>*  fEntityStack;
+    unsigned int                fNextReaderNum;
+    RefStackOf<XMLReader>*      fReaderStack;
+    bool                        fThrowEOE;
+    XMLReader::XMLVersion       fXMLVersion;
+    bool                        fStandardUriConformant;
+    MemoryManager*              fMemoryManager;
+};
+
+
+
+// ---------------------------------------------------------------------------
+//  ReaderMgr: Inlined methods
+//
+//  NOTE: We cannot put these in alphabetical and type order as we usually
+//  do because some of the compilers we have to support are too stupid to
+//  understand out of order inlines!
+// ---------------------------------------------------------------------------
+inline unsigned int ReaderMgr::getCurrentReaderNum() const
+{
+    return fCurReader->getReaderNum();
+}
+
+inline const XMLReader* ReaderMgr::getCurrentReader() const
+{
+    return fCurReader;
+}
+
+inline XMLReader* ReaderMgr::getCurrentReader()
+{
+    return fCurReader;
+}
+
+inline bool ReaderMgr::getName(XMLBuffer& toFill)
+{
+    toFill.reset();
+    return fCurReader->getName(toFill, false);
+}
+
+inline bool ReaderMgr::getQName(XMLBuffer& toFill, int *colonPosition)
+{
+    toFill.reset();
+    return fCurReader->getQName(toFill, colonPosition);
+}
+
+inline bool ReaderMgr::getNameToken(XMLBuffer& toFill)
+{
+    toFill.reset();
+    return fCurReader->getName(toFill, true);
+}
+
+inline bool ReaderMgr::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten)
+{
+    return fCurReader->getNextCharIfNot(chNotToGet, chGotten);
+}
+
+inline void ReaderMgr::movePlainContentChars(XMLBuffer &dest)
+{
+    fCurReader->movePlainContentChars(dest);
+}
+
+inline bool ReaderMgr::getThrowEOE() const
+{
+    return fThrowEOE;
+}
+
+inline unsigned int ReaderMgr::getSrcOffset() const
+{
+    return fCurReader? fCurReader->getSrcOffset() : 0;
+}
+
+inline bool ReaderMgr::lookingAtChar(const XMLCh chToCheck)
+{
+    return (chToCheck == peekNextChar());
+}
+
+inline bool ReaderMgr::lookingAtSpace()
+{
+    XMLCh c = peekNextChar();
+    return fCurReader->isWhitespace(c);
+}
+
+inline void ReaderMgr::setThrowEOE(const bool newValue)
+{
+    fThrowEOE = newValue;
+}
+
+inline void ReaderMgr::setStandardUriConformant(const bool newValue)
+{
+    fStandardUriConformant = newValue;
+}
+
+inline bool ReaderMgr::skippedString(const XMLCh* const toSkip)
+{
+    return fCurReader->skippedString(toSkip);
+}
+
+inline void ReaderMgr::skipToChar(const XMLCh toSkipTo)
+{
+	XMLCh nextCh = 0;
+    do
+    {
+        // Get chars until we find the one to skip
+        nextCh = getNextChar();
+	} 
+    // Break out at end of input or the char to skip
+	while((nextCh != toSkipTo) && nextCh!=0);
+}
+
+inline void ReaderMgr::skipPastChar(const XMLCh toSkipPast)
+{
+	XMLCh nextCh = 0;
+    do
+    {
+        // Get chars until we find the one to skip
+        nextCh = getNextChar();
+	} 
+	while((nextCh != toSkipPast) && nextCh!=0);
+}
+
+inline bool ReaderMgr::peekString(const XMLCh* const toPeek)
+{
+    return fCurReader->peekString(toPeek);
+}
+
+inline void ReaderMgr::setEntityHandler(XMLEntityHandler* const newHandler)
+{
+    fEntityHandler = newHandler;
+}
+
+inline void ReaderMgr::setXMLVersion(const XMLReader::XMLVersion version)
+{
+    fXMLVersion = version;
+    fCurReader->setXMLVersion(version);
+}
+
+//
+//  This is a simple class to temporarily change the 'throw at end of entity'
+//  flag of the reader manager. There are some places where we need to
+//  turn this on and off on a scoped basis.
+//
+class XMLPARSER_EXPORT ThrowEOEJanitor
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and destructor
+    // -----------------------------------------------------------------------
+    ThrowEOEJanitor(ReaderMgr* mgrTarget, const bool newValue) :
+
+        fOld(mgrTarget->getThrowEOE())
+        , fMgr(mgrTarget)
+    {
+        mgrTarget->setThrowEOE(newValue);
+    }
+
+    ~ThrowEOEJanitor()
+    {
+        fMgr->setThrowEOE(fOld);
+    };
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------    
+    ThrowEOEJanitor(const ThrowEOEJanitor&);
+    ThrowEOEJanitor& operator=(const ThrowEOEJanitor&);
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fOld
+    //      The previous value of the flag, which we replaced during ctor,
+    //      and will replace during dtor.
+    //
+    //  fMgr
+    //      A pointer to the reader manager we are going to set/reset the
+    //      flag on.
+    // -----------------------------------------------------------------------
+    bool        fOld;
+    ReaderMgr*  fMgr;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/SGXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,321 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: SGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(SGXMLSCANNER_HPP)
+#define SGXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/KVStringPair.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/validators/common/Grammar.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class SchemaGrammar;
+class SchemaValidator;
+class IdentityConstraintHandler;
+class IdentityConstraint;
+class ContentLeafNameTypeVector;
+class SchemaAttDef;
+class XMLContentModel;
+class XSModel;
+class PSVIAttributeList;
+class PSVIElement;
+
+//  This is a scanner class, which process XML Schema grammar.
+class XMLPARSER_EXPORT SGXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    SGXMLScanner
+    (
+        XMLValidator* const       valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    SGXMLScanner
+    (
+        XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const   docTypeHandler
+        , XMLEntityHandler* const entityHandler
+        , XMLErrorReporter* const errReporter
+        , XMLValidator* const     valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~SGXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanReset(const InputSource& src);
+
+    // -----------------------------------------------------------------------
+    //  SGXMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual bool scanStartTag(bool& gotData);
+    virtual void scanEndTag(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    unsigned int buildAttList
+    (
+        const   RefVectorOf<KVStringPair>&  providedAttrs
+        , const unsigned int                attCount
+        ,       XMLElementDecl*             elemDecl
+        ,       RefVectorOf<XMLAttr>&       toFill
+    );
+    bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv,
+                              const XMLContentModel* const cm,
+                              const unsigned int parentElemDepth);
+    unsigned int rawAttrScan
+    (
+        const   XMLCh* const                elemName
+        ,       RefVectorOf<KVStringPair>&  toFill
+        ,       bool&                       isEmpty
+    );
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+    void resizeElemState();
+
+    void updateNSMap
+    (
+        const   XMLCh* const    attrName
+        , const XMLCh* const    attrValue
+        , const int             colonPosition
+    );
+    void resizeRawAttrColonList();
+    unsigned int resolveQNameWithColon
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        , const int                 prefixColonPos
+    );
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fRawAttrList
+    //      During the initial scan of the attributes we can only do a raw
+    //      scan for key/value pairs. So this vector is used to store them
+    //      until they can be processed (and put into fAttrList.)
+    //
+    //  fSchemaValidator
+    //      The Schema validator instance.
+    //
+    //  fSeeXsi
+    //      This flag indicates a schema has been seen.
+    //
+    //  fElemState
+    //  fElemStateSize
+    //      Stores an element next state from DFA content model - used for
+    //      wildcard validation
+    //
+    // fElemNonDeclPool
+    //      registry for elements without decls in the grammar
+    // fElemCount
+    //      count of the number of start tags seen so far (starts at 1).
+    //      Used for duplicate attribute detection/processing of required/defaulted attributes
+    // fAttDefRegistry
+    //      mapping from XMLAttDef instances to the count of the last
+    //      start tag where they were utilized.
+    // fUndeclaredAttrRegistryNS
+    //      mapping of namespaceId/localName pairs to the count of the last
+    //      start tag in which they occurred.
+    //  fPSVIAttrList
+    //      PSVI attribute list implementation that needs to be
+    //      filled when a PSVIHandler is registered
+    //
+    // -----------------------------------------------------------------------
+    bool                                    fSeeXsi;
+    Grammar::GrammarType                    fGrammarType;
+    unsigned int                            fElemStateSize;
+    unsigned int*                           fElemState;
+    XMLBuffer                               fContent;
+    ValueHashTableOf<XMLCh>*                fEntityTable;
+    RefVectorOf<KVStringPair>*              fRawAttrList;
+    unsigned int                            fRawAttrColonListSize;
+    int*                                    fRawAttrColonList;
+    SchemaGrammar*                          fSchemaGrammar;
+    SchemaValidator*                        fSchemaValidator;
+    IdentityConstraintHandler*              fICHandler;
+    RefHash3KeysIdPool<SchemaElementDecl>*  fElemNonDeclPool;
+    unsigned int                            fElemCount;
+    RefHashTableOf<unsigned int>*           fAttDefRegistry;
+    RefHash2KeysTableOf<unsigned int>*      fUndeclaredAttrRegistryNS;
+    PSVIAttributeList *                     fPSVIAttrList;
+    XSModel*                                fModel;
+    PSVIElement*                            fPSVIElement;
+    ValueStackOf<bool>*                     fErrorStack;
+    PSVIElemContext                         fPSVIElemContext;
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    SGXMLScanner();
+    SGXMLScanner(const SGXMLScanner&);
+    SGXMLScanner& operator=(const SGXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    bool normalizeAttValue
+    (
+        const   XMLAttDef* const    attDef
+        , const XMLCh* const        attrName 
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    bool normalizeAttRawValue
+    (
+        const   XMLCh* const        attrName
+        , const XMLCh* const        value
+        ,       XMLBuffer&          toFill
+    );
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        ,       XMLBuffer&          uriBufToFill
+        , const ElemStack::MapModes mode
+    );
+    void scanRawAttrListforNameSpaces(int attCount);
+    void parseSchemaLocation(const XMLCh* const schemaLocationStr);
+    void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri);
+    bool switchGrammar(const XMLCh* const newGrammarNameSpace);
+    bool anyAttributeValidation(SchemaAttDef* attWildCard,
+                                unsigned int uriId,
+                                bool& skipThisOne,
+                                bool& laxThisOne);
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool basicAttrValueScan
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    bool scanAttValue
+    (
+        const   XMLAttDef* const    attDef
+        ,       XMLBuffer&          toFill
+    );
+    bool scanContent();
+
+    // -----------------------------------------------------------------------
+    //  IdentityConstraints Activation methods
+    // -----------------------------------------------------------------------
+    inline bool toCheckIdentityConstraint()  const;
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false);
+
+    // -----------------------------------------------------------------------
+    //  PSVI handling methods
+    // -----------------------------------------------------------------------
+    void endElementPSVI(SchemaElementDecl* const elemDecl,
+                        DatatypeValidator* const memberDV);
+    void resetPSVIElemContext();
+};
+
+inline const XMLCh* SGXMLScanner::getName() const
+{
+    return XMLUni::fgSGXMLScanner;
+}
+
+inline bool SGXMLScanner::toCheckIdentityConstraint()  const
+{
+    return fValidate && fIdentityConstraintChecking && fICHandler;
+}
+
+inline Grammar::GrammarType SGXMLScanner::getCurrentGrammarType() const
+{
+    return fGrammarType;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/ValidationContextImpl.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: ValidationContextImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(VALIDATION_CONTEXTIMPL_HPP)
+#define VALIDATION_CONTEXTIMPL_HPP
+
+#include <xercesc/framework/ValidationContext.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+class ElemStack;
+
+class XMLPARSER_EXPORT ValidationContextImpl : public ValidationContext
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name Virtual destructor for derived classes */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * virtual destructor
+      *
+      */
+    virtual ~ValidationContextImpl();
+
+    ValidationContextImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name The ValidationContextImpl Interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * IDRefList
+      *
+      */
+    virtual RefHashTableOf<XMLRefInfo>*  getIdRefList() const;
+
+    virtual void                         setIdRefList(RefHashTableOf<XMLRefInfo>* const);
+
+    virtual void                         clearIdRefList();
+
+    virtual void                         addId(const XMLCh * const );
+
+    virtual void                         addIdRef(const XMLCh * const );
+
+    virtual void                         toCheckIdRefList(bool);
+
+    /**
+      * EntityDeclPool
+      *
+      */
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+
+    virtual const NameIdPool<DTDEntityDecl>* setEntityDeclPool(const NameIdPool<DTDEntityDecl>* const);    
+           
+    virtual void                             checkEntity(const XMLCh * const ) const;
+
+
+    /**
+      * Union datatype handling
+      *
+      */
+
+    virtual DatatypeValidator * getValidatingMemberType() const;
+    virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) ;
+
+    /**
+      * QName datatype handling
+      * Create default implementations for source code compatibility
+      */
+    virtual bool isPrefixUnknown(XMLCh* prefix);
+    virtual void setElemStack(ElemStack* elemStack);
+
+    //@}
+  
+private:
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    ValidationContextImpl(const ValidationContextImpl& );
+    ValidationContextImpl& operator=(const ValidationContextImpl& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fIDRefList:  owned/adopted
+    //      This is a list of XMLRefInfo objects. This member lets us do all
+    //      needed ID-IDREF balancing checks.
+    //
+    //  fEntityDeclPool: referenced only
+    //      This is a pool of EntityDecl objects, which contains all of the
+    //      general entities that are declared in the DTD subsets, plus the
+    //      default entities (such as &gt; &lt; ...) defined by the XML Standard.
+    //
+    //  fToAddToList
+    //  fValidatingMemberType
+    //      The member type in a union that actually
+    //      validated some text.  Note that the validationContext does not
+    //      own this object, and the value of getValidatingMemberType
+    //      will not be accurate unless the type of the most recently-validated
+    //      element/attribute is in fact a union datatype.
+    //  fElemStack
+    //      Need access to elemstack to look up URI's that are inscope.
+    // -----------------------------------------------------------------------
+
+    RefHashTableOf<XMLRefInfo>*         fIdRefList;
+    const NameIdPool<DTDEntityDecl>*    fEntityDeclPool;
+    bool                                fToCheckIdRefList;
+    DatatypeValidator *                 fValidatingMemberType;    
+    ElemStack*      fElemStack;
+
+};
+
+
+
+inline DatatypeValidator * ValidationContextImpl::getValidatingMemberType() const
+{
+    return fValidatingMemberType;
+}
+
+inline void ValidationContextImpl::setValidatingMemberType(DatatypeValidator * validatingMemberType) 
+{
+    fValidatingMemberType = validatingMemberType;
+}
+
+inline void ValidationContextImpl::setElemStack(ElemStack* elemStack) {
+    fElemStack = elemStack;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttrListImpl.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: VecAttrListImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VECATTRLISTIMPL_HPP)
+#define VECATTRLISTIMPL_HPP
+
+#include <xercesc/sax/AttributeList.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT VecAttrListImpl : public XMemory, public AttributeList
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    VecAttrListImpl();
+    ~VecAttrListImpl();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the attribute list interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int getLength() const;
+    virtual const XMLCh* getName(const unsigned int index) const;
+    virtual const XMLCh* getType(const unsigned int index) const;
+    virtual const XMLCh* getValue(const unsigned int index) const;
+    virtual const XMLCh* getType(const XMLCh* const name) const;
+    virtual const XMLCh* getValue(const XMLCh* const name) const;
+    virtual const XMLCh* getValue(const char* const name) const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setVector
+    (
+        const   RefVectorOf<XMLAttr>* const srcVec
+        , const unsigned int                count
+        , const bool                        adopt = false
+    );
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    VecAttrListImpl(const VecAttrListImpl&);
+    VecAttrListImpl& operator=(const VecAttrListImpl&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAdopt
+    //      Indicates whether the passed vector is to be adopted or not. If
+    //      so, we destroy it when we are destroyed (and when a new vector is
+    //      set!)
+    //
+    //  fCount
+    //      The count of elements in the vector that should be considered
+    //      valid. This is an optimization to allow vector elements to be
+    //      reused over and over but a different count of them be valid for
+    //      each use.
+    //
+    //  fVector
+    //      The vector that provides the backing for the list.
+    // -----------------------------------------------------------------------
+    bool                        fAdopt;
+    unsigned int                fCount;
+    const RefVectorOf<XMLAttr>* fVector;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/VecAttributesImpl.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: VecAttributesImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(VECATTRIBUTESIMPL_HPP)
+#define VECATTRIBUTESIMPL_HPP
+
+#include <xercesc/sax2/Attributes.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLPARSER_EXPORT VecAttributesImpl : public Attributes
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    VecAttributesImpl();
+    ~VecAttributesImpl();
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the attributes interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int getLength() const ;
+
+	virtual const XMLCh* getURI(const unsigned int index) const;
+    virtual const XMLCh* getLocalName(const unsigned int index) const ;
+    virtual const XMLCh* getQName(const unsigned int index) const ;
+    virtual const XMLCh* getType(const unsigned int index) const ;
+    virtual const XMLCh* getValue(const unsigned int index) const ;
+
+	virtual int getIndex(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
+	virtual int getIndex(const XMLCh* const qName ) const  ;
+
+	virtual const XMLCh* getType(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
+    virtual const XMLCh* getType(const XMLCh* const qName) const ;
+
+    virtual const XMLCh* getValue(const XMLCh* const qName) const;
+	virtual const XMLCh* getValue(const XMLCh* const uri, const XMLCh* const localPart ) const  ;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setVector
+    (
+        const   RefVectorOf<XMLAttr>* const srcVec
+        , const unsigned int                count
+		, const XMLScanner * const		scanner
+        , const bool                        adopt = false
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    VecAttributesImpl(const VecAttributesImpl&);
+    VecAttributesImpl& operator=(const VecAttributesImpl&);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fAdopt
+    //      Indicates whether the passed vector is to be adopted or not. If
+    //      so, we destroy it when we are destroyed (and when a new vector is
+    //      set!)
+    //
+    //  fCount
+    //      The count of elements in the vector that should be considered
+    //      valid. This is an optimization to allow vector elements to be
+    //      reused over and over but a different count of them be valid for
+    //      each use.
+    //
+    //  fVector
+    //      The vector that provides the backing for the list.
+	//
+	//	fScanner
+	//		This is a pointer to the in use Scanner, so that we can resolve
+	//		namespace URIs from UriIds
+	//
+	//	fURIBuffer
+	//		A temporary buffer which is re-used when getting namespace URI's
+    // -----------------------------------------------------------------------
+    bool                        fAdopt;
+    unsigned int                fCount;
+    const RefVectorOf<XMLAttr>* fVector;
+	const XMLScanner *		fScanner ;
+	//XMLBuffer				    fURIBuffer ;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif // ! VECATTRIBUTESIMPL_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/WFXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: WFXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(WFXMLSCANNER_HPP)
+#define WFXMLSCANNER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/util/ValueHashTableOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+//  This is a a non-validating scanner. No DOCTYPE or XML Schema processing
+//  will take place.
+class XMLPARSER_EXPORT WFXMLScanner : public XMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    WFXMLScanner
+    (
+        XMLValidator* const       valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    WFXMLScanner
+    (
+        XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const   docTypeHandler
+        , XMLEntityHandler* const entityHandler
+        , XMLErrorReporter* const errReporter
+        , XMLValidator* const     valToAdopt
+        , GrammarResolver* const  grammarResolver
+        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~WFXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool();
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    );
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    );
+    virtual bool scanNext(XMLPScanToken& toFill);
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    WFXMLScanner();
+    WFXMLScanner(const WFXMLScanner&);
+    WFXMLScanner& operator=(const WFXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection();
+    virtual void scanCharData(XMLBuffer& toToUse);
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    );
+    virtual void scanDocTypeDecl();
+    virtual void scanReset(const InputSource& src);
+    virtual void sendCharData(XMLBuffer& toSend);
+    virtual InputSource* resolveSystemId(const XMLCh* const sysId
+                                        ,const XMLCh* const pubId);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+    unsigned int resolvePrefix
+    (
+        const   XMLCh* const        prefix
+        , const ElemStack::MapModes mode
+    );
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool scanAttValue
+    (
+        const   XMLCh* const    attrName
+        ,       XMLBuffer&      toFill
+    );
+    bool scanContent();
+    void scanEndTag(bool& gotData);
+    bool scanStartTag(bool& gotData);
+    bool scanStartTagNS(bool& gotData);
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fEntityTable
+    //      This the table that contains the default entity entries.
+    //
+    //  fAttrNameHashList
+    //      This contains the hash value for attribute names. It's used when
+    //      checking for duplicate attributes.
+    //
+    //  fAttrNSList
+    //      This contains XMLAttr objects that we need to map their prefixes
+    //      to URIs when namespace is enabled.
+    //
+    // -----------------------------------------------------------------------
+    unsigned int                       fElementIndex;
+    RefVectorOf<XMLElementDecl>*       fElements;
+    ValueHashTableOf<XMLCh>*           fEntityTable;
+    ValueVectorOf<unsigned int>*       fAttrNameHashList;
+    ValueVectorOf<XMLAttr*>*           fAttrNSList;
+    RefHashTableOf<XMLElementDecl>*    fElementLookup;  
+};
+
+inline const XMLCh* WFXMLScanner::getName() const
+{
+    return XMLUni::fgWFXMLScanner;
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,303 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLGrammarPoolImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLGrammarPoolImplIMPL_HPP)
+#define XMLGrammarPoolImplIMPL_HPP
+
+#include <xercesc/framework/XMLGrammarPool.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLSynchronizedStringPool;
+
+class XMLUTIL_EXPORT XMLGrammarPoolImpl : public XMLGrammarPool
+{
+public :
+    // -----------------------------------------------------------------------
+    /** @name constructor and destructor */
+    // -----------------------------------------------------------------------
+    //@{
+
+    XMLGrammarPoolImpl(MemoryManager* const memMgr);
+
+    ~XMLGrammarPoolImpl();
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name Implementation of Grammar Pool Interface */
+    // -----------------------------------------------------------------------
+    //@{
+   
+    /**
+      * cacheGrammar
+      *
+      * Provide the grammar pool with an opportunity
+      * to cache the given grammar.  If the pool does not choose to do so,
+      * it should return false; otherwise, it should return true, so that
+      * the caller knows whether the grammar has been adopted.
+      *
+      * @param gramToCache: the Grammar to be cached in the grammar pool
+      * @return true if the grammar pool has elected to cache the grammar (in which case
+      * it is assumed to have adopted it); false if it does not cache it
+	  *
+      */
+    virtual bool           cacheGrammar(Grammar* const               gramToCache);
+    
+
+    /**
+      * retrieveGrammar
+      *
+      * @param gramDesc: the Grammar Description used to search for grammar
+	  *                  cached in the grammar pool
+	  *
+      */
+    virtual Grammar*       retrieveGrammar(XMLGrammarDescription* const gramDesc);
+    
+        
+    /**
+      * orphanGrammar
+      *
+	  * grammar removed from the grammar pool and owned by the caller
+      *
+      * @param nameSpaceKey: Key used to search for grammar in the grammar pool
+	  *
+      */
+    virtual Grammar*       orphanGrammar(const XMLCh* const nameSpaceKey);  
+
+
+    /**
+     * Get an enumeration of the cached Grammars in the Grammar pool
+     *
+     * @return enumeration of the cached Grammars in Grammar pool
+     */
+    virtual RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const;
+
+    /**
+      * clear
+      *
+	  * all grammars are removed from the grammar pool and deleted.
+      * @return true if the grammar pool was cleared. false if it did not.
+      */
+    virtual bool           clear();
+        
+    /**
+      * lockPool
+      *
+	  * When this method is called by the application, the 
+      * grammar pool should stop adding new grammars to the cache.
+      */
+    virtual void           lockPool();
+    
+    /**
+      * unlockPool
+      *
+	  * After this method has been called, the grammar pool implementation
+      * should return to its default behaviour when cacheGrammars(...) is called.
+      *
+      * For PSVI support any previous XSModel that was produced will be deleted.
+      */
+    virtual void           unlockPool();
+
+    //@}
+
+    // -----------------------------------------------------------------------
+    /** @name  Implementation of Factory interface */
+    // -----------------------------------------------------------------------
+    //@{
+
+    /**
+      * createDTDGrammar
+      *
+      */
+    virtual DTDGrammar*            createDTDGrammar();
+
+    /**
+      * createSchemaGrammar
+      *
+      */
+    virtual SchemaGrammar*         createSchemaGrammar();
+                    
+    /**
+      * createDTDDescription
+      *
+      */	
+    virtual XMLDTDDescription*     createDTDDescription(const XMLCh* const systemId);
+    /**
+      * createSchemaDescription
+      *
+      */		
+    virtual XMLSchemaDescription*  createSchemaDescription(const XMLCh* const targetNamespace);
+    //@}
+	
+    // -----------------------------------------------------------------------
+    /** @name  schema component model support */
+    // -----------------------------------------------------------------------                                                        
+    //@{
+
+    /***
+      * Return an XSModel derived from the components of all SchemaGrammars
+      * in the grammar pool.  If the pool is locked, this should
+      * be a thread-safe operation.  It should return null if and only if
+      * the pool is empty.
+      *
+      * Calling getXSModel() on an unlocked grammar pool may result in the
+      * creation of a new XSModel with the old XSModel being deleted.  The
+      * function will return a different address for the XSModel if it has
+      * changed.
+      *
+      * In this implementation, when the pool is not locked a new XSModel will be
+      * computed each this time the pool is called if the pool has changed (and the
+      * previous one will be destroyed at that time).  When the lockPool()
+      * method is called, an XSModel will be generated and returned whenever this method is called
+      * while the pool is in the locked state.  This will be destroyed if the unlockPool()
+      * operation is called.  The XSModel will not be serialized,
+      * but will be recreated if a deserialized pool is in the 
+      * locked state.
+      *
+      * @deprecated (shouldn't use address to determine if XSModel changed)
+      */
+    virtual XSModel *getXSModel();
+
+    /***
+      * Return an XSModel derived from the components of all SchemaGrammars
+      * in the grammar pool.  If the pool is locked, this should
+      * be a thread-safe operation.  
+      *
+      * NOTE: The function should NEVER return NULL.  If there are no grammars in
+      *       the pool it should return an XSModel containing the Schema for Schema.
+      *
+      * Calling getXSModel() on an unlocked grammar pool may result in the
+      * creation of a new XSModel with the old XSModel being deleted.
+      * The bool parameter will indicate if the XSModel was changed.
+      *  
+      * In this implementation, when the pool is not locked a new XSModel will be
+      * computed each this time the pool is called if the pool has changed (and the
+      * previous one will be destroyed at that time).  When the lockPool()
+      * method is called, an XSModel will be generated and returned whenever this method is called
+      * while the pool is in the locked state.  This will be destroyed if the unlockPool()
+      * operation is called.  The XSModel will not be serialized,
+      * but will be recreated if a deserialized pool is in the 
+      * locked state.
+      *      
+      */
+    virtual XSModel *getXSModel(bool& XSModelWasChanged);
+
+    // @}
+    // -----------------------------------------------------------------------
+    /** @name  Getter */
+    // -----------------------------------------------------------------------                                                        
+    //@{
+
+    /**
+      * Return an XMLStringPool for use by validation routines.  
+      * Implementations should not create a string pool on each call to this
+      * method, but should maintain one string pool for all grammars
+      * for which this pool is responsible.
+      */
+    virtual XMLStringPool *getURIStringPool();
+
+    // @}
+
+    // -----------------------------------------------------------------------
+    // serialization and deserialization support
+    // -----------------------------------------------------------------------
+
+    /***
+      *
+      * Multiple serializations
+      *
+      *    For multiple serializations, if the same file name is given, then the 
+      *    last result will be in the file (overwriting mode), if different file 
+      *    names are given, then there are multiple data stores for each serialization.
+      *
+      * Multiple deserializations
+      * 
+      *    Not supported
+      *
+      * Versioning
+      *
+      *    Only binary data serialized with the current XercesC Version and
+      *    SerializationLevel is supported.
+      *
+      * Clean up
+      *
+      *    In the event of an exception thrown due to a corrupted data store during 
+      *    deserialization, this implementation may not be able to clean up all resources 
+      *    allocated, and therefore it is the client application's responsibility to 
+      *    clean up those unreleased resources.
+      *
+      * Coupling of Grammars and StringPool
+      *
+      *    This implementation assumes that StringPool shall always be 
+      *    serialized/deserialized together with the grammars. In the case that such a
+      *    coupling is not desired, client application can modify this behaviour by 
+      *    either derivate from this imlementation and overwrite the serializeGrammars()
+      *    and/or deserializeGrammars() to decouple grammars and string pool, or
+      *    Once deserializeGrammars() is done, insert another StringPool through
+      *    setStringPool().
+      *
+      *    Client application shall be aware of the unpredicatable/undefined consequence 
+      *    of this decoupling.
+      */
+
+    virtual void     serializeGrammars(BinOutputStream* const); 
+    virtual void     deserializeGrammars(BinInputStream* const); 
+
+private:
+
+    virtual void    createXSModel();
+
+    void
+    cleanUp();
+
+    // -----------------------------------------------------------------------
+    /** name  Unimplemented copy constructor and operator= */
+    // -----------------------------------------------------------------------
+    //@{
+    XMLGrammarPoolImpl(const XMLGrammarPoolImpl& );
+    XMLGrammarPoolImpl& operator=(const XMLGrammarPoolImpl& );
+    //@}
+
+    // -----------------------------------------------------------------------
+    //
+    // fGrammarRegistry: 
+    //
+	//    container
+    // fStringPool
+    //    grammars need a string pool for URI -> int mappings
+    // fSynchronizedStringPool
+    //      When the grammar pool is locked, provide a string pool
+    //      that can be updated in a thread-safe manner.
+    // fLocked
+    //      whether the pool has been locked
+    //
+    // -----------------------------------------------------------------------
+    RefHashTableOf<Grammar>*            fGrammarRegistry; 
+    XMLStringPool*                      fStringPool;
+    XMLSynchronizedStringPool*          fSynchronizedStringPool;
+    XSModel*                            fXSModel;
+    bool                                fLocked;
+    bool                                fXSModelIsValid;
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLInternalErrorHandler.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLInternalErrorHandler.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLINTERNALERRORHANDLER_HPP)
+#define XMLINTERNALERRORHANDLER_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLInternalErrorHandler : public ErrorHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLInternalErrorHandler(ErrorHandler* userHandler = 0) :
+       fSawWarning(false),
+       fSawError(false),
+       fSawFatal(false),
+       fUserErrorHandler(userHandler)
+    {
+    }
+
+    ~XMLInternalErrorHandler()
+    {
+    }
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the error handler interface
+    // -----------------------------------------------------------------------
+    void warning(const SAXParseException& toCatch);
+    void error(const SAXParseException& toCatch);
+    void fatalError(const SAXParseException& toCatch);
+    void resetErrors();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getSawWarning() const;
+    bool getSawError() const;
+    bool getSawFatal() const;
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSawWarning
+    //      This is set if we get any warning, and is queryable via a getter
+    //      method.
+    //
+    //  fSawError
+    //      This is set if we get any errors, and is queryable via a getter
+    //      method.
+    //
+    //  fSawFatal
+    //      This is set if we get any fatal, and is queryable via a getter
+    //      method.
+    //
+    //  fUserErrorHandler
+    //      This is the error handler from user
+    // -----------------------------------------------------------------------
+    bool    fSawWarning;
+    bool    fSawError;
+    bool    fSawFatal;
+    ErrorHandler* fUserErrorHandler;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLInternalErrorHandler(const XMLInternalErrorHandler&);
+    XMLInternalErrorHandler& operator=(const XMLInternalErrorHandler&);
+};
+
+inline bool XMLInternalErrorHandler::getSawWarning() const
+{
+    return fSawWarning;
+}
+
+inline bool XMLInternalErrorHandler::getSawError() const
+{
+    return fSawError;
+}
+
+inline bool XMLInternalErrorHandler::getSawFatal() const
+{
+    return fSawFatal;
+}
+
+inline void XMLInternalErrorHandler::warning(const SAXParseException& toCatch)
+{
+    fSawWarning = true;
+    if (fUserErrorHandler)
+        fUserErrorHandler->warning(toCatch);
+}
+
+inline void XMLInternalErrorHandler::error(const SAXParseException& toCatch)
+{
+    fSawError = true;
+    if (fUserErrorHandler)
+        fUserErrorHandler->error(toCatch);
+}
+
+inline void XMLInternalErrorHandler::fatalError(const SAXParseException& toCatch)
+{
+    fSawFatal = true;
+    if (fUserErrorHandler)
+        fUserErrorHandler->fatalError(toCatch);
+}
+
+inline void XMLInternalErrorHandler::resetErrors()
+{
+    fSawWarning = false;
+    fSawError = false;
+    fSawFatal = false;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLReader.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,783 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLReader.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLREADER_HPP)
+#define XMLREADER_HPP
+
+#include <xercesc/util/XMLChar.hpp>
+#include <xercesc/framework/XMLRecognizer.hpp>
+#include <xercesc/framework/XMLBuffer.hpp>
+#include <xercesc/util/TranscodingException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+class BinInputStream;
+class ReaderMgr;
+class XMLScanner;
+class XMLTranscoder;
+
+
+// ---------------------------------------------------------------------------
+//  Instances of this class are used to manage the content of entities. The
+//  scanner maintains a stack of these, one for each entity (this means entity
+//  in the sense of any parsed file or internal entity) currently being
+//  scanned. This class, given a binary input stream will handle reading in
+//  the data and decoding it from its external decoding into the internal
+//  Unicode format. Once internallized, this class provides the access
+//  methods to read in the data in various ways, maintains line and column
+//  information, and provides high performance character attribute checking
+//  methods.
+//
+//  This is NOT to be derived from.
+//
+// ---------------------------------------------------------------------------
+class XMLPARSER_EXPORT XMLReader : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public types
+    // -----------------------------------------------------------------------
+    enum Types
+    {
+        Type_PE
+        , Type_General
+    };
+
+    enum Sources
+    {
+        Source_Internal
+        , Source_External
+    };
+
+    enum RefFrom
+    {
+        RefFrom_Literal
+        , RefFrom_NonLiteral
+    };
+
+    enum XMLVersion
+    {
+        XMLV1_0
+        , XMLV1_1
+        , XMLV_Unknown
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Public, query methods
+    // -----------------------------------------------------------------------
+    bool isAllSpaces
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    ) const;
+
+    bool containsWhiteSpace
+    (
+        const   XMLCh* const    toCheck
+        , const unsigned int    count
+    ) const;
+
+
+    bool isXMLLetter(const XMLCh toCheck) const;
+    bool isFirstNameChar(const XMLCh toCheck) const;
+    bool isNameChar(const XMLCh toCheck) const;    
+    bool isPlainContentChar(const XMLCh toCheck) const;
+    bool isSpecialStartTagChar(const XMLCh toCheck) const;
+    bool isXMLChar(const XMLCh toCheck) const;
+    bool isWhitespace(const XMLCh toCheck) const;
+    bool isControlChar(const XMLCh toCheck) const;
+    bool isPublicIdChar(const XMLCh toCheck) const;
+    bool isFirstNCNameChar(const XMLCh toCheck) const;
+    bool isNCNameChar(const XMLCh toCheck) const;    
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLReader
+    (
+        const   XMLCh* const          pubId
+        , const XMLCh* const          sysId
+        ,       BinInputStream* const streamToAdopt
+        , const RefFrom               from
+        , const Types                 type
+        , const Sources               source
+        , const bool                  throwAtEnd = false
+        , const bool                  calculateSrcOfs = true
+        , const XMLVersion            xmlVersion = XMLV1_0
+        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLReader
+    (
+        const   XMLCh* const          pubId
+        , const XMLCh* const          sysId
+        ,       BinInputStream* const streamToAdopt
+        , const XMLCh* const          encodingStr
+        , const RefFrom               from
+        , const Types                 type
+        , const Sources               source
+        , const bool                  throwAtEnd = false
+        , const bool                  calculateSrcOfs = true
+        , const XMLVersion            xmlVersion = XMLV1_0
+        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    XMLReader
+    (
+        const   XMLCh* const          pubId
+        , const XMLCh* const          sysId
+        ,       BinInputStream* const streamToAdopt
+        , XMLRecognizer::Encodings    encodingEnum
+        , const RefFrom               from
+        , const Types                 type
+        , const Sources               source
+        , const bool                  throwAtEnd = false
+        , const bool                  calculateSrcOfs = true
+        , const XMLVersion            xmlVersion = XMLV1_0
+        ,       MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    ~XMLReader();
+
+
+    // -----------------------------------------------------------------------
+    //  Character buffer management methods
+    // -----------------------------------------------------------------------
+    unsigned long charsLeftInBuffer() const;
+    bool refreshCharBuffer();
+
+
+    // -----------------------------------------------------------------------
+    //  Scanning methods
+    // -----------------------------------------------------------------------
+    bool getName(XMLBuffer& toFill, const bool token);
+    bool getQName(XMLBuffer& toFill, int* colonPosition);
+    bool getNextChar(XMLCh& chGotten);
+    bool getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten);
+    void movePlainContentChars(XMLBuffer &dest);
+    bool getSpaces(XMLBuffer& toFill);
+    bool getUpToCharOrWS(XMLBuffer& toFill, const XMLCh toCheck);
+    bool peekNextChar(XMLCh& chGotten);
+    bool skipIfQuote(XMLCh& chGotten);
+    bool skipSpaces(bool& skippedSomething, bool inDecl = false);
+    bool skippedChar(const XMLCh toSkip);
+    bool skippedSpace();
+    bool skippedString(const XMLCh* const toSkip);
+    bool peekString(const XMLCh* const toPeek);
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    XMLSSize_t getColumnNumber() const;
+    const XMLCh* getEncodingStr() const;
+    XMLSSize_t getLineNumber() const;
+    bool getNoMoreFlag() const;
+    const XMLCh* getPublicId() const;
+    unsigned int getReaderNum() const;
+    RefFrom getRefFrom() const;
+    Sources getSource() const;
+    unsigned int getSrcOffset() const;
+    const XMLCh* getSystemId() const;
+    bool getThrowAtEnd() const;
+    Types getType() const;
+
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    bool setEncoding
+    (
+        const   XMLCh* const    newEncoding
+    );
+    void setReaderNum(const unsigned int newNum);
+    void setThrowAtEnd(const bool newValue);
+    void setXMLVersion(const XMLVersion version);
+
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLReader(const XMLReader&);
+    XMLReader& operator=(const XMLReader&);
+
+    // ---------------------------------------------------------------------------
+    //  Class Constants
+    //
+    //  kCharBufSize
+    //      The size of the character spool buffer that we use. Its not terribly
+    //      large because its just getting filled with data from a raw byte
+    //      buffer as we go along. We don't want to decode all the text at
+    //      once before we find out that there is an error.
+    //
+    //      NOTE: This is a size in characters, not bytes.
+    //
+    //  kRawBufSize
+    //      The size of the raw buffer from which raw bytes are spooled out
+    //      as we transcode chunks of data. As it is emptied, it is filled back
+    //      in again from the source stream.
+    // ---------------------------------------------------------------------------
+    enum Constants
+    {
+        kCharBufSize        = 16 * 1024
+        , kRawBufSize       = 48 * 1024
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void checkForSwapped();
+
+    void doInitCharSizeChecks();
+
+    void doInitDecode();
+
+    XMLByte getNextRawByte
+    (
+        const   bool            eoiOk
+    );
+
+    void refreshRawBuffer();
+
+    void setTranscoder
+    (
+        const   XMLCh* const    newEncoding
+    );
+
+    unsigned int xcodeMoreChars
+    (
+                XMLCh* const            bufToFill
+        ,       unsigned char* const    charSizes
+        , const unsigned int            maxChars
+    );
+
+    void handleEOL
+    (
+              XMLCh&   curCh
+            , bool     inDecl = false
+    );
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fCharIndex
+    //      The index into the character buffer. When this hits fCharsAvail
+    //      then its time to refill.
+    //
+    //  fCharBuf
+    //      A buffer that the reader manager fills up with transcoded
+    //      characters a small amount at a time.
+    //
+    //  fCharsAvail
+    //      The characters currently available in the character buffer.
+    //
+    //  fCharSizeBuf
+    //      This buffer is an array that contains the number of source chars
+    //      eaten to create each char in the fCharBuf buffer. So the entry
+    //      fCharSizeBuf[x] is the number of source chars that were eaten
+    //      to make the internalized char fCharBuf[x]. This only contains
+    //      useful data if fSrcOfsSupported is true.
+    //
+    //  fCharOfsBuf
+    //      This buffer is an array that contains the offset in the
+    //      fRawByteBuf buffer of each char in the fCharBuf buffer. It
+    //      only contains useful data if fSrcOfsSupported is true.
+    //
+    //  fCurCol
+    //  fCurLine
+    //      The current line and column that we are in within this reader's
+    //      text.
+    //
+    //  fEncoding
+    //      This is the rough encoding setting. This enum is set during
+    //      construction and just tells us the rough family of encoding that
+    //      we are doing.
+    //
+    //  fEncodingStr
+    //      This is the name of the encoding we are using. It will be
+    //      provisionally set during construction, from the auto-sensed
+    //      encoding. But it might be overridden when the XMLDecl is finally
+    //      seen by the scanner. It can also be forced to a particular
+    //      encoding, in which case fForcedEncoding is set.
+    //
+    //  fForcedEncoding
+    //      If the encoding if forced then this is set and all other
+    //      information will be ignored. This encoding will be taken as
+    //      gospel. This is done by calling an alternate constructor.
+    //
+    //  fNoMore
+    //      This is set when the source text is exhausted. It lets us know
+    //      quickly that no more text is available.
+    //
+    //  fRawBufIndex
+    //      The current index into the raw byte buffer. When its equal to
+    //      fRawBytesAvail then we need to read another buffer.
+    //
+    //  fRawByteBuf
+    //      This is the raw byte buffer that is used to spool out bytes
+    //      from into the fCharBuf buffer, as we transcode in blocks.
+    //
+    //  fRawBytesAvail
+    //      The number of bytes currently available in the raw buffer. This
+    //      helps deal with the last buffer's worth, which will usually not
+    //      be a full one.
+    //
+    //  fReaderNum
+    //      Each reader from a particular reader manager (which means from a
+    //      particular document) is given a unique number. The reader manager
+    //      sets these numbers. They are used to catch things like partial
+    //      markup errors.
+    //
+    //  fRefFrom
+    //      This flag is provided in the ctor, and tells us if we represent
+    //      some entity being expanded inside a literal. Sometimes things
+    //      happen differently inside and outside literals.
+    //
+    //  fPublicId
+    //  fSystemId
+    //      These are the system and public ids of the source that this
+    //      reader is reading.
+    //
+    //  fSentTrailingSpace
+    //      If we are a PE entity being read and we not referenced from a
+    //      literal, then a leading and trailing space must be faked into the
+    //      data. This lets us know we've done the trailing space already (so
+    //      we don't just keep doing it again and again.)
+    //
+    //  fSource
+    //      Indicates whether the content this reader is spooling as already
+    //      been internalized. This will prevent multiple processing of
+    //      whitespace when an already internalized entity is being spooled
+    //      out.
+    //
+    //  fSpareChar
+    //      Some encodings can create two chars in an atomic way, e.g.
+    //      surrogate pairs. We might not be able to store both, so we store
+    //      it here until the next buffer transcoding operation.
+    //
+    //  fSrcOfsBase
+    //      This is the base offset within the source of this entity. Values
+    //      in the curent fCharSizeBuf array are relative to this value.
+    //
+    //  fSrcOfsSupported
+    //      This flag is set to indicate whether source byte offset info
+    //      is supported. For intrinsic encodings, its always set since we
+    //      can always support it. For transcoder based encodings, we ask
+    //      the transcoder if it supports it or not.
+    //
+    //  fStream
+    //      This is the input stream that provides the data for the reader.
+    //      Its always treated as a raw byte stream. The derived class will
+    //      ask for buffers of text from it and will handle making some
+    //      sense of it.
+    //
+    //  fSwapped
+    //      If the encoding is one of the ones we do intrinsically, and its
+    //      in a different byte order from our native order, then this is
+    //      set to remind us to byte swap it during transcoding.
+    //
+    //  fThrowAtEnd
+    //      Indicates whether the reader manager should throw an end of entity
+    //      exception at the end of this reader instance. This is usually
+    //      set for top level external entity references. It overrides the
+    //      reader manager's global flag that controls throwing at the end
+    //      of entities. Defaults to false.
+    //
+    //  fTranscoder
+    //      If the encoding is not one that we handle intrinsically, then
+    //      we use an an external transcoder to do it. This class is an
+    //      abstraction that allows us to use pluggable external transcoding
+    //      services (via XMLTransService in util.)
+    //
+    //  fType
+    //      Indicates whether this reader represents a PE or not. If this
+    //      flag is true and the fInLiteral flag is false, then we will put
+    //      out an extra space at the end.
+    //
+    //  fgCharCharsTable;
+    //      Pointer to XMLChar table, depends on XML version
+    //
+    //  fNEL
+    //      Boolean indicates if NEL and LSEP should be recognized as NEL
+    //
+    //  fXMLVersion
+    //      Enum to indicate if this Reader is conforming to XML 1.0 or XML 1.1
+    // -----------------------------------------------------------------------
+    unsigned int                fCharIndex;
+    XMLCh                       fCharBuf[kCharBufSize];
+    unsigned int                fCharsAvail;
+    unsigned char               fCharSizeBuf[kCharBufSize];
+    unsigned int                fCharOfsBuf[kCharBufSize];
+    XMLSSize_t                  fCurCol;
+    XMLSSize_t                  fCurLine;
+    XMLRecognizer::Encodings    fEncoding;
+    XMLCh*                      fEncodingStr;
+    bool                        fForcedEncoding;
+    bool                        fNoMore;
+    XMLCh*                      fPublicId;
+    unsigned int                fRawBufIndex;
+    XMLByte                     fRawByteBuf[kRawBufSize];
+    unsigned int                fRawBytesAvail;
+    unsigned int                fReaderNum;
+    RefFrom                     fRefFrom;
+    bool                        fSentTrailingSpace;
+    Sources                     fSource;
+    unsigned int                fSrcOfsBase;
+    bool                        fSrcOfsSupported;
+    bool                        fCalculateSrcOfs;
+    XMLCh*                      fSystemId;
+    BinInputStream*             fStream;
+    bool                        fSwapped;
+    bool                        fThrowAtEnd;
+    XMLTranscoder*              fTranscoder;
+    Types                       fType;
+    XMLByte*                    fgCharCharsTable;
+    bool                        fNEL;
+    XMLVersion                  fXMLVersion;
+    MemoryManager*              fMemoryManager;
+};
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Public, query methods
+// ---------------------------------------------------------------------------
+inline bool XMLReader::isNameChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gNameCharMask) != 0);
+}
+
+inline bool XMLReader::isNCNameChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gNCNameCharMask) != 0);
+}
+
+inline bool XMLReader::isPlainContentChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gPlainContentCharMask) != 0);
+}
+
+
+inline bool XMLReader::isFirstNameChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0);
+}
+
+inline bool XMLReader::isFirstNCNameChar(const XMLCh toCheck) const
+{
+    return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0) 
+            && (toCheck != chColon));
+}
+
+inline bool XMLReader::isSpecialStartTagChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gSpecialStartTagCharMask) != 0);
+}
+
+inline bool XMLReader::isXMLChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gXMLCharMask) != 0);
+}
+
+inline bool XMLReader::isXMLLetter(const XMLCh toCheck) const
+{
+    return (((fgCharCharsTable[toCheck] & gFirstNameCharMask) != 0)
+            && (toCheck != chColon) && (toCheck != chUnderscore));
+}
+
+inline bool XMLReader::isWhitespace(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gWhitespaceCharMask) != 0);
+}
+
+inline bool XMLReader::isControlChar(const XMLCh toCheck) const
+{
+    return ((fgCharCharsTable[toCheck] & gControlCharMask) != 0);
+}
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Buffer management methods
+// ---------------------------------------------------------------------------
+inline unsigned long XMLReader::charsLeftInBuffer() const
+{
+    return fCharsAvail - fCharIndex;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Getter methods
+// ---------------------------------------------------------------------------
+inline XMLSSize_t XMLReader::getColumnNumber() const
+{
+    return fCurCol;
+}
+
+inline const XMLCh* XMLReader::getEncodingStr() const
+{
+    return fEncodingStr;
+}
+
+inline XMLSSize_t XMLReader::getLineNumber() const
+{
+    return fCurLine;
+}
+
+inline bool XMLReader::getNoMoreFlag() const
+{
+    return fNoMore;
+}
+
+inline const XMLCh* XMLReader::getPublicId() const
+{
+    return fPublicId;
+}
+
+inline unsigned int XMLReader::getReaderNum() const
+{
+    return fReaderNum;
+}
+
+inline XMLReader::RefFrom XMLReader::getRefFrom() const
+{
+    return fRefFrom;
+}
+
+inline XMLReader::Sources XMLReader::getSource() const
+{
+    return fSource;
+}
+
+inline const XMLCh* XMLReader::getSystemId() const
+{
+    return fSystemId;
+}
+
+inline bool XMLReader::getThrowAtEnd() const
+{
+    return fThrowAtEnd;
+}
+
+inline XMLReader::Types XMLReader::getType() const
+{
+    return fType;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLReader: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLReader::setReaderNum(const unsigned int newNum)
+{
+    fReaderNum = newNum;
+}
+
+inline void XMLReader::setThrowAtEnd(const bool newValue)
+{
+    fThrowAtEnd = newValue;
+}
+
+inline void XMLReader::setXMLVersion(const XMLVersion version)
+{
+    fXMLVersion = version;
+    if (version == XMLV1_1) {
+        fNEL = true;
+        fgCharCharsTable = XMLChar1_1::fgCharCharsTable1_1;
+    }
+    else {
+        fNEL = XMLChar1_0::enableNEL;
+        fgCharCharsTable = XMLChar1_0::fgCharCharsTable1_0;
+    }
+
+}
+
+
+
+// ---------------------------------------------------------------------------
+//
+//  XMLReader: movePlainContentChars()
+//
+//       Move as many plain (no special handling of any sort required) content
+//       characters as possible from this reader to the supplied destination buffer.
+//
+//       This is THE hottest performance spot in the parser.
+//
+// ---------------------------------------------------------------------------
+inline void XMLReader::movePlainContentChars(XMLBuffer &dest)
+{
+    unsigned int count = fCharIndex;
+
+    while (fCharIndex < fCharsAvail)
+    {
+        if (!isPlainContentChar(fCharBuf[fCharIndex]))
+            break;
+        fCharIndex++;
+    }
+
+    if (count != fCharIndex)
+    {
+        fCurCol    += (fCharIndex - count);
+        dest.append(&fCharBuf[count], fCharIndex - count);
+    }
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: getNextCharIfNot() method inlined for speed
+// ---------------------------------------------------------------------------
+inline bool XMLReader::getNextCharIfNot(const XMLCh chNotToGet, XMLCh& chGotten)
+{
+    //
+    //  See if there is at least a char in the buffer. Else, do the buffer
+    //  reload logic.
+    //
+    if (fCharIndex >= fCharsAvail)
+    {
+        // If fNoMore is set, then we have nothing else to give
+        if (fNoMore)
+            return false;
+
+        // Try to refresh
+        if (!refreshCharBuffer())
+            return false;
+    }
+
+    // Check the next char
+    if (fCharBuf[fCharIndex] == chNotToGet)
+        return false;
+
+    // Its not the one we want to skip so bump the index
+    chGotten = fCharBuf[fCharIndex++];
+
+    // Handle end of line normalization and line/col member maintenance.
+    //
+    // we can have end-of-line combinations with a leading
+    // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028)
+    //
+    // 0000000000001101 chCR
+    // 0000000000001010 chLF
+    // 0000000010000101 chNEL
+    // 0010000000101000 chLineSeparator
+    // -----------------------
+    // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator)
+    //
+    // if the result of the logical-& operation is
+    // true  : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator
+    // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator
+    //
+    if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) )
+    {
+        fCurCol++;
+    } else
+    {
+        handleEOL(chGotten, false);
+    }
+
+    return true;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLReader: getNextChar() method inlined for speed
+// ---------------------------------------------------------------------------
+inline bool XMLReader::getNextChar(XMLCh& chGotten)
+{
+    //
+    //  See if there is at least a char in the buffer. Else, do the buffer
+    //  reload logic.
+    //
+    if (fCharIndex >= fCharsAvail)
+    {
+        // If fNoMore is set, then we have nothing else to give
+        if (fNoMore)
+            return false;
+
+        // Try to refresh
+        if (!refreshCharBuffer())
+            return false;
+    }
+
+    chGotten = fCharBuf[fCharIndex++];
+
+    // Handle end of line normalization and line/col member maintenance.
+    //
+    // we can have end-of-line combinations with a leading
+    // chCR(xD), chLF(xA), chNEL(x85), or chLineSeparator(x2028)
+    //
+    // 0000000000001101 chCR
+    // 0000000000001010 chLF
+    // 0000000010000101 chNEL
+    // 0010000000101000 chLineSeparator
+    // -----------------------
+    // 1101111101010000 == ~(chCR|chLF|chNEL|chLineSeparator)
+    //
+    // if the result of the logical-& operation is
+    // true  : 'curCh' can not be chCR, chLF, chNEL or chLineSeparator
+    // false : 'curCh' can be chCR, chLF, chNEL or chLineSeparator
+    //
+    if ( chGotten & (XMLCh) ~(chCR|chLF|chNEL|chLineSeparator) )
+    {
+        fCurCol++;
+    } else
+    {
+        handleEOL(chGotten, false);
+    }
+
+    return true;
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLReader: peekNextChar() method inlined for speed
+// ---------------------------------------------------------------------------
+inline bool XMLReader::peekNextChar(XMLCh& chGotten)
+{
+    //
+    //  If there is something still in the buffer, get it. Else do the reload
+    //  scenario.
+    //
+    if (fCharIndex >= fCharsAvail)
+    {
+        // Try to refresh the buffer
+        if (!refreshCharBuffer())
+        {
+            chGotten = chNull;
+            return false;
+        }
+    }
+
+    chGotten = fCharBuf[fCharIndex];
+
+    //
+    //  Even though we are only peeking, we have to act the same as the
+    //  normal char get method in regards to newline normalization, though
+    //  its not as complicated as the actual character getting method's.
+    //
+    if ((chGotten == chCR || (fNEL && (chGotten == chNEL || chGotten == chLineSeparator)))
+        && (fSource == Source_External))
+        chGotten = chLF;
+
+    return true;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,1388 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLSCANNER_HPP)
+#define XMLSCANNER_HPP
+
+#include <xercesc/framework/XMLBufferMgr.hpp>
+#include <xercesc/framework/XMLErrorCodes.hpp>
+#include <xercesc/framework/XMLRefInfo.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/SecurityManager.hpp>
+#include <xercesc/internal/ReaderMgr.hpp>
+#include <xercesc/internal/ElemStack.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+#include <xercesc/framework/XMLAttr.hpp>
+#include <xercesc/framework/ValidationContext.hpp>
+#include <xercesc/validators/common/GrammarResolver.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class InputSource;
+class XMLDocumentHandler;
+class XMLEntityHandler;
+class ErrorHandler;
+class DocTypeHandler;
+class XMLPScanToken;
+class XMLStringPool;
+class Grammar;
+class XMLValidator;
+class MemoryManager;
+class PSVIHandler;
+
+
+struct PSVIElemContext
+{
+    bool               fIsSpecified;
+    bool               fErrorOccurred;
+    int                fElemDepth;
+    int                fFullValidationDepth;
+    int                fNoneValidationDepth;
+    DatatypeValidator* fCurrentDV;
+    ComplexTypeInfo*   fCurrentTypeInfo;
+    const XMLCh*       fNormalizedValue;
+};
+
+//  This is the mondo scanner class, which does the vast majority of the
+//  work of parsing. It handles reading in input and spitting out events
+//  to installed handlers.
+class XMLPARSER_EXPORT XMLScanner : public XMemory, public XMLBufferFullHandler
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Public class types
+    //
+    //  NOTE: These should really be private, but some of the compilers we
+    //  have to deal with are too stupid to understand this.
+    //
+    //  DeclTypes
+    //      Used by scanXMLDecl() to know what type of decl it should scan.
+    //      Text decls have slightly different rules from XMLDecls.
+    //
+    //  EntityExpRes
+    //      These are the values returned from the entity expansion method,
+    //      to indicate how it went.
+    //
+    //  XMLTokens
+    //      These represent the possible types of input we can get while
+    //      scanning content.
+    //
+    //  ValScheme
+    //      This indicates what the scanner should do in terms of validation.
+    //      'Auto' means if there is any int/ext subset, then validate. Else,
+    //      don't.
+    // -----------------------------------------------------------------------
+    enum DeclTypes
+    {
+        Decl_Text
+        , Decl_XML
+    };
+
+    enum EntityExpRes
+    {
+        EntityExp_Pushed
+        , EntityExp_Returned
+        , EntityExp_Failed
+    };
+
+    enum XMLTokens
+    {
+        Token_CData
+        , Token_CharData
+        , Token_Comment
+        , Token_EndTag
+        , Token_EOF
+        , Token_PI
+        , Token_StartTag
+        , Token_Unknown
+    };
+
+    enum ValSchemes
+    {
+        Val_Never
+        , Val_Always
+        , Val_Auto
+    };
+
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XMLScanner
+    (
+        XMLValidator* const valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    XMLScanner
+    (
+        XMLDocumentHandler* const  docHandler
+        , DocTypeHandler* const    docTypeHandler
+        , XMLEntityHandler* const  entityHandler
+        , XMLErrorReporter* const  errReporter
+        , XMLValidator* const      valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+    virtual ~XMLScanner();
+
+
+    // -----------------------------------------------------------------------
+    //  Error emitter methods
+    // -----------------------------------------------------------------------
+    bool emitErrorWillThrowException(const XMLErrs::Codes toEmit);
+    void emitError(const XMLErrs::Codes toEmit);
+    void emitError
+    (
+        const   XMLErrs::Codes    toEmit
+        , const XMLCh* const        text1
+        , const XMLCh* const        text2 = 0
+        , const XMLCh* const        text3 = 0
+        , const XMLCh* const        text4 = 0
+    );
+    void emitError
+    (
+        const   XMLErrs::Codes    toEmit
+        , const char* const         text1
+        , const char* const         text2 = 0
+        , const char* const         text3 = 0
+        , const char* const         text4 = 0
+    );
+    void emitError
+    (
+        const   XMLErrs::Codes    toEmit
+        , const XMLExcepts::Codes   originalErrorCode
+        , const XMLCh* const        text1 = 0
+        , const XMLCh* const        text2 = 0
+        , const XMLCh* const        text3 = 0
+        , const XMLCh* const        text4 = 0
+    );
+
+    // -----------------------------------------------------------------------
+    //  Implementation of XMLBufferFullHandler interface
+    // -----------------------------------------------------------------------
+
+    virtual bool bufferFull(XMLBuffer& toSend)
+    {
+        sendCharData(toSend);
+        return true;
+    }
+
+    virtual Grammar::GrammarType getCurrentGrammarType() const;
+
+    // -----------------------------------------------------------------------
+    //  Public pure virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const = 0;
+    virtual NameIdPool<DTDEntityDecl>* getEntityDeclPool() = 0;
+    virtual const NameIdPool<DTDEntityDecl>* getEntityDeclPool() const = 0;
+    virtual unsigned int resolveQName
+    (
+        const   XMLCh* const        qName
+        ,       XMLBuffer&          prefixBufToFill
+        , const short               mode
+        ,       int&                prefixColonPos
+    ) = 0;
+    virtual void scanDocument
+    (
+        const   InputSource&    src
+    ) = 0;
+    virtual bool scanNext(XMLPScanToken& toFill) = 0;
+    virtual Grammar* loadGrammar
+    (
+        const   InputSource&    src
+        , const short           grammarType
+        , const bool            toCache = false
+    ) = 0;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const XMLDocumentHandler* getDocHandler() const;
+    XMLDocumentHandler* getDocHandler();
+    const DocTypeHandler* getDocTypeHandler() const;
+    DocTypeHandler* getDocTypeHandler();
+    bool getDoNamespaces() const;
+    ValSchemes getValidationScheme() const;
+    bool getDoSchema() const;
+    bool getValidationSchemaFullChecking() const;
+    bool getIdentityConstraintChecking() const;
+    const XMLEntityHandler* getEntityHandler() const;
+    XMLEntityHandler* getEntityHandler();
+    const XMLErrorReporter* getErrorReporter() const;
+    XMLErrorReporter* getErrorReporter();
+    const ErrorHandler* getErrorHandler() const;
+    ErrorHandler* getErrorHandler();
+    const PSVIHandler* getPSVIHandler() const;
+    PSVIHandler* getPSVIHandler();
+    bool getExitOnFirstFatal() const;
+    bool getValidationConstraintFatal() const;
+    RefHashTableOf<XMLRefInfo>* getIDRefList();
+    const RefHashTableOf<XMLRefInfo>* getIDRefList() const;
+
+    ValidationContext*   getValidationContext();
+
+    bool getInException() const;
+    /*bool getLastExtLocation
+    (
+                XMLCh* const    sysIdToFill
+        , const unsigned int    maxSysIdChars
+        ,       XMLCh* const    pubIdToFill
+        , const unsigned int    maxPubIdChars
+        ,       XMLSSize_t&     lineToFill
+        ,       XMLSSize_t&     colToFill
+    ) const;*/
+    const Locator* getLocator() const;
+    const ReaderMgr* getReaderMgr() const;
+    unsigned int getSrcOffset() const;
+    bool getStandalone() const;
+    const XMLValidator* getValidator() const;
+    XMLValidator* getValidator();
+    int getErrorCount();
+    const XMLStringPool* getURIStringPool() const;
+    XMLStringPool* getURIStringPool();
+    bool getHasNoDTD() const;
+    XMLCh* getExternalSchemaLocation() const;
+    XMLCh* getExternalNoNamespaceSchemaLocation() const;
+    SecurityManager* getSecurityManager() const;
+    bool getLoadExternalDTD() const;
+    bool getNormalizeData() const;
+    bool isCachingGrammarFromParse() const;
+    bool isUsingCachedGrammarInParse() const;
+    bool getCalculateSrcOfs() const;
+    Grammar* getRootGrammar() const;
+    XMLReader::XMLVersion getXMLVersion() const;
+    MemoryManager* getMemoryManager() const;
+    ValueVectorOf<PrefMapElem*>* getNamespaceContext() const;
+    unsigned int getPrefixId(const XMLCh* const prefix) const;
+    const XMLCh* getPrefixForId(unsigned int prefId) const;
+
+    bool getGenerateSyntheticAnnotations() const;
+    bool getValidateAnnotations() const;
+    bool getIgnoreCachedDTD() const;
+    bool getIgnoreAnnotations() const;
+    bool getDisableDefaultEntityResolution() const;
+    bool getSkipDTDValidation() const;
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    /**
+      * When an attribute name has no prefix, unlike elements, it is not mapped
+      * to the global namespace. So, in order to have something to map it to
+      * for practical purposes, a id for an empty URL is created and used for
+      * such names.
+      *
+      * @return The URL pool id of the URL for an empty URL "".
+      */
+    unsigned int getEmptyNamespaceId() const;
+
+    /**
+      * When a prefix is found that has not been mapped, an error is issued.
+      * However, if the parser has been instructed not to stop on the first
+      * fatal error, it needs to be able to continue. To do so, it will map
+      * that prefix tot his magic unknown namespace id.
+      *
+      * @return The URL pool id of the URL for the unknown prefix
+      *         namespace.
+      */
+    unsigned int getUnknownNamespaceId() const;
+
+    /**
+      * The prefix 'xml' is a magic prefix, defined by the XML spec and
+      * requiring no prior definition. This method returns the id for the
+      * intrinsically defined URL for this prefix.
+      *
+      * @return The URL pool id of the URL for the 'xml' prefix.
+      */
+    unsigned int getXMLNamespaceId() const;
+
+    /**
+      * The prefix 'xmlns' is a magic prefix, defined by the namespace spec
+      * and requiring no prior definition. This method returns the id for the
+      * intrinsically defined URL for this prefix.
+      *
+      * @return The URL pool id of the URL for the 'xmlns' prefix.
+      */
+    unsigned int getXMLNSNamespaceId() const;
+
+    /**
+      * This method find the passed URI id in its URI pool and
+      * copy the text of that URI into the passed buffer.
+      */
+    bool getURIText
+    (
+        const   unsigned int    uriId
+        ,       XMLBuffer&      uriBufToFill
+    )   const;
+
+    const XMLCh* getURIText(const   unsigned int    uriId) const;
+
+    /* tell if the validator comes from user */
+    bool isValidatorFromUser();
+
+    /* tell if standard URI are forced */
+    bool getStandardUriConformant() const;
+
+    // -----------------------------------------------------------------------
+    //  Setter methods
+    // -----------------------------------------------------------------------
+    void setDocHandler(XMLDocumentHandler* const docHandler);
+    void setDocTypeHandler(DocTypeHandler* const docTypeHandler);
+    void setDoNamespaces(const bool doNamespaces);
+    void setEntityHandler(XMLEntityHandler* const docTypeHandler);
+    void setErrorReporter(XMLErrorReporter* const errHandler);
+    void setErrorHandler(ErrorHandler* const handler);
+    void setPSVIHandler(PSVIHandler* const handler);
+    void setURIStringPool(XMLStringPool* const stringPool);
+    void setExitOnFirstFatal(const bool newValue);
+    void setValidationConstraintFatal(const bool newValue);
+    void setValidationScheme(const ValSchemes newScheme);
+    void setValidator(XMLValidator* const valToAdopt);
+    void setDoSchema(const bool doSchema);
+    void setValidationSchemaFullChecking(const bool schemaFullChecking);
+    void setIdentityConstraintChecking(const bool identityConstraintChecking);
+    void setHasNoDTD(const bool hasNoDTD);
+    void cacheGrammarFromParse(const bool newValue);
+    void useCachedGrammarInParse(const bool newValue);
+    void setRootElemName(XMLCh* rootElemName);
+    void setExternalSchemaLocation(const XMLCh* const schemaLocation);
+    void setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation);
+    void setExternalSchemaLocation(const char* const schemaLocation);
+    void setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation);
+    void setSecurityManager(SecurityManager* const securityManager);
+    void setLoadExternalDTD(const bool loadDTD);
+    void setNormalizeData(const bool normalizeData);
+    void setCalculateSrcOfs(const bool newValue);
+    void setParseSettings(XMLScanner* const refScanner);
+    void setStandardUriConformant(const bool newValue);
+    void setInputBufferSize(const size_t bufferSize);
+
+    void setGenerateSyntheticAnnotations(const bool newValue);
+    void setValidateAnnotations(const bool newValue);
+    void setIgnoredCachedDTD(const bool newValue);
+    void setIgnoreAnnotations(const bool newValue);
+    void setDisableDefaultEntityResolution(const bool newValue);
+    void setSkipDTDValidation(const bool newValue);
+
+    // -----------------------------------------------------------------------
+    //  Mutator methods
+    // -----------------------------------------------------------------------
+    void incrementErrorCount(void);			// For use by XMLValidator
+
+    // -----------------------------------------------------------------------
+    //  Deprecated methods as of 3.2.0. Use getValidationScheme() and
+    //  setValidationScheme() instead.
+    // -----------------------------------------------------------------------
+    bool getDoValidation() const;
+    void setDoValidation(const bool validate);
+
+    // -----------------------------------------------------------------------
+    //  Document scanning methods
+    //
+    //  scanDocument() does the entire source document. scanFirst(),
+    //  scanNext(), and scanReset() support a progressive parse.
+    // -----------------------------------------------------------------------
+    void scanDocument
+    (
+        const   XMLCh* const    systemId
+    );
+    void scanDocument
+    (
+        const   char* const     systemId
+    );
+
+    bool scanFirst
+    (
+        const   InputSource&    src
+        ,       XMLPScanToken&  toFill
+    );
+    bool scanFirst
+    (
+        const   XMLCh* const    systemId
+        ,       XMLPScanToken&  toFill
+    );
+    bool scanFirst
+    (
+        const   char* const     systemId
+        ,       XMLPScanToken&  toFill
+    );
+
+    void scanReset(XMLPScanToken& toFill);
+
+    bool checkXMLDecl(bool startWithAngle);
+
+    // -----------------------------------------------------------------------
+    //  Grammar preparsing methods
+    // -----------------------------------------------------------------------
+    Grammar* loadGrammar
+    (
+        const   XMLCh* const    systemId
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+    Grammar* loadGrammar
+    (
+        const   char* const     systemId
+        , const short           grammarType
+        , const bool            toCache = false
+    );
+
+    // -----------------------------------------------------------------------
+    //  Notification that lazy data has been deleted
+    // -----------------------------------------------------------------------
+	static void reinitScannerMutex();
+	static void reinitMsgLoader();
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Protected pure virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanCDSection() = 0;
+    virtual void scanCharData(XMLBuffer& toToUse) = 0;
+    virtual EntityExpRes scanEntityRef
+    (
+        const   bool    inAttVal
+        ,       XMLCh&  firstCh
+        ,       XMLCh&  secondCh
+        ,       bool&   escaped
+    ) = 0;
+    virtual void scanDocTypeDecl() = 0;
+    virtual void scanReset(const InputSource& src) = 0;
+    virtual void sendCharData(XMLBuffer& toSend) = 0;
+
+    //return owned by the caller
+    virtual InputSource* resolveSystemId(const XMLCh* const /*sysId*/
+                                        ,const XMLCh* const /*pubId*/) {return 0;};
+
+    // -----------------------------------------------------------------------
+    //  Protected scanning methods
+    // -----------------------------------------------------------------------
+    bool scanCharRef(XMLCh& toFill, XMLCh& second);
+    void scanComment();
+    bool scanEq(bool inDecl = false);
+    void scanMiscellaneous();
+    void scanPI();
+    void scanProlog();
+    void scanXMLDecl(const DeclTypes type);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void checkInternalDTD(bool hasExtSubset, const XMLCh* const sysId, const XMLCh* const pubId);
+    void checkIDRefs();
+    bool isLegalToken(const XMLPScanToken& toCheck);
+    XMLTokens senseNextToken(unsigned int& orgReader);
+    void initValidator(XMLValidator* theValidator);
+    inline void resetValidationContext();
+    unsigned int *getNewUIntPtr();
+    void resetUIntPool();
+    void recreateUIntPool();
+
+    inline
+    void setAttrDupChkRegistry
+         (
+            const unsigned int &attrNumber
+          ,       bool         &toUseHashTable
+         );
+
+    // -----------------------------------------------------------------------
+    //  Data members
+    //
+    //  fBufferSize
+    //      Maximum input buffer size
+    //
+    //  fAttrList
+    //      Every time we get a new element start tag, we have to pass to
+    //      the document handler the attributes found. To make it more
+    //      efficient we keep this ref vector of XMLAttr objects around. We
+    //      just reuse it over and over, allowing it to grow to meet the
+    //      peak need.
+    //
+    //  fBufMgr
+    //      This is a manager for temporary buffers used during scanning.
+    //      For efficiency we must use a set of static buffers, but we have
+    //      to insure that they are not incorrectly reused. So this manager
+    //      provides the smarts to hand out buffers as required.
+    //
+    //  fDocHandler
+    //      The client code's document handler. If zero, then no document
+    //      handler callouts are done. We don't adopt it.
+    //
+    //  fDocTypeHandler
+    //      The client code's document type handler (used by DTD Validator).
+    //
+    //  fDoNamespaces
+    //      This flag indicates whether the client code wants us to do
+    //      namespaces or not. If the installed validator indicates that it
+    //      has to do namespaces, then this is ignored.
+    //
+    //  fEntityHandler
+    //      The client code's entity handler. If zero, then no entity handler
+    //      callouts are done. We don't adopt it.
+    //
+    //  fErrorReporter
+    //      The client code's error reporter. If zero, then no error reporter
+    //      callouts are done. We don't adopt it.
+    //
+    //  fErrorHandler
+    //      The client code's error handler.  Need to store this info for
+    //      Schema parse error handling.
+    //
+    //  fPSVIHandler
+    //      The client code's PSVI handler.
+    //
+    //  fExitOnFirstFatal
+    //      This indicates whether we bail out on the first fatal XML error
+    //      or not. It defaults to true, which is the strict XML way, but it
+    //      can be changed.
+    //
+    //  fValidationConstraintFatal
+    //      This indicates whether we treat validation constraint errors as
+    //      fatal errors or not. It defaults to false, but it can be changed.
+    //
+    //  fIDRefList
+    //      This is a list of XMLRefInfo objects. This member lets us do all
+    //      needed ID-IDREF balancing checks.
+    //
+    //  fInException
+    //      To avoid a circular freakout when we catch an exception and emit
+    //      it, which would normally throw again if the 'fail on first error'
+    //      flag is one.
+    //
+    //  fReaderMgr
+    //      This is the reader manager, from which we get characters. It
+    //      manages the reader stack for us, and provides a lot of convenience
+    //      methods to do specialized checking for chars, sequences of chars,
+    //      skipping chars, etc...
+    //
+    //  fScannerId
+    //  fSequenceId
+    //      These are used for progressive parsing, to make sure that the
+    //      client code does the right thing at the right time.
+    //
+    //  fStandalone
+    //      Indicates whether the document is standalone or not. Defaults to
+    //      no, but can be overridden in the XMLDecl.
+    //
+    //  fHasNoDTD
+    //      Indicates the document has no DTD or has only an internal DTD subset
+    //      which contains no parameter entity references.
+    //
+    //  fValidate
+    //      Indicates whether any validation should be done. This is defined
+    //      by the existence of a Grammar together with fValScheme.
+    //
+    //  fValidator
+    //      The installed validator. We look at them via the abstract
+    //      validator interface, and don't know what it actual is.
+    //      Either point to user's installed validator, or fDTDValidator
+    //      or fSchemaValidator.
+    //
+    //  fValidatorFromUser
+    //      This flag indicates whether the validator was installed from
+    //      user.  If false, then the validator was created by the Scanner.
+    //
+    //  fValScheme
+    //      This is the currently set validation scheme. It defaults to
+    //      'never', but can be set by the client.
+    //
+    //  fErrorCount
+    //		The number of errors we've encountered.
+    //
+    //  fDoSchema
+    //      This flag indicates whether the client code wants Schema to
+    //      be processed or not.
+    //
+    //  fSchemaFullChecking
+    //      This flag indicates whether the client code wants full Schema
+    //      constraint checking.
+    //
+    //  fIdentityConstraintChecking
+    //      This flag indicates whether the client code wants Identity
+    //      Constraint checking, defaulted to true to maintain backward
+    //      compatibility (to minimize supprise)
+    //
+    //  fAttName
+    //  fAttValue
+    //  fCDataBuf
+    //  fNameBuf
+    //  fQNameBuf
+    //  fPrefixBuf
+    //      For the most part, buffers are obtained from the fBufMgr object
+    //      on the fly. However, for the start tag scan, we have a set of
+    //      fixed buffers for performance reasons. These are used a lot and
+    //      there are a number of them, so asking the buffer manager each
+    //      time for new buffers is a bit too much overhead.
+    //
+    //  fEmptyNamespaceId
+    //      This is the id of the empty namespace URI. This is a special one
+    //      because of the xmlns="" type of deal. We have to quickly sense
+    //      that its the empty namespace.
+    //
+    //  fUnknownNamespaceId
+    //      This is the id of the namespace URI which is assigned to the
+    //      global namespace. Its for debug purposes only, since there is no
+    //      real global namespace URI. Its set by the derived class.
+    //
+    //  fXMLNamespaceId
+    //  fXMLNSNamespaceId
+    //      These are the ids of the namespace URIs which are assigned to the
+    //      'xml' and 'xmlns' special prefixes. The former is officially
+    //      defined but the latter is not, so we just provide one for debug
+    //      purposes.
+    //
+    //  fSchemaNamespaceId
+    //      This is the id of the schema namespace URI.
+    //
+    //  fGrammarResolver
+    //      Grammar Pool that stores all the grammars. Key is namespace for
+    //      schema and system id for external DTD. When caching a grammar, if
+    //      a grammar is already in the pool, it will be replaced with the
+    //      new parsed one.
+    //
+    //  fGrammar
+    //      Current Grammar used by the Scanner and Validator
+    //
+    //  fRootGrammar
+    //      The grammar where the root element is declared.
+    //
+    //  fGrammarType
+    //      Current Grammar Type.  Store this value instead of calling getGrammarType
+    //      all the time for faster performance.
+    //
+    //  fURIStringPool
+    //      This is a pool for URIs with unique ids assigned. We use a standard
+    //      string pool class.  This pool is going to be shared by all Grammar.
+    //      Use only if namespace is turned on.
+    //
+    //  fRootElemName
+    //      No matter we are using DTD or Schema Grammar, if a DOCTYPE exists,
+    //      we need to verify the root element name.  So store the rootElement
+    //      that is used in the DOCTYPE in the Scanner instead of in the DTDGrammar
+    //      where it used to
+    //
+    //  fExternalSchemaLocation
+    //      The list of Namespace/SchemaLocation that was specified externally
+    //      using setExternalSchemaLocation.
+    //
+    //  fExternalNoNamespaceSchemaLocation
+    //      The no target namespace XML Schema Location that was specified
+    //      externally using setExternalNoNamespaceSchemaLocation.
+    //
+    //  fSecurityManager
+    //      The SecurityManager instance; as and when set by the application.
+    //
+    //  fEntityExpansionLimit
+    //      The number of entity expansions to be permitted while processing this document
+    //      Only meaningful when fSecurityManager != 0
+    //
+    //  fEntityExpansionCount
+    //      The number of general entities expanded so far in this document.
+    //      Only meaningful when fSecurityManager != null
+    //
+    //  fLoadExternalDTD
+    //      This flag indicates whether the external DTD be loaded or not
+    //
+    //  fNormalizeData
+    //      This flag indicates whether the parser should perform datatype
+    //      normalization that is defined in the schema.
+    //
+    //  fCalculateSrcOfs
+    //      This flag indicates the parser should calculate the source offset.
+    //      Turning this on may impact performance.
+    //
+    //  fStandardUriConformant
+    //      This flag controls whether we force conformant URI
+    //
+    //  fXMLVersion
+    //      Enum to indicate if the main doc is XML 1.1 or XML 1.0 conformant    
+    //  fUIntPool
+    //      pool of unsigned integers to help with duplicate attribute
+    //      detection and filling in default/fixed attributes
+    //  fUIntPoolRow
+    //      current row in fUIntPool
+    //  fUIntPoolCol
+    //      current column i row
+    //  fUIntPoolRowTotal
+    //      total number of rows in table
+    //
+    //  fMemoryManager
+    //      Pluggable memory manager for dynamic allocation/deallocation.
+    //
+    // -----------------------------------------------------------------------
+    size_t                      fBufferSize;
+    bool                        fStandardUriConformant;
+    bool                        fCalculateSrcOfs;
+    bool                        fDoNamespaces;
+    bool                        fExitOnFirstFatal;
+    bool                        fValidationConstraintFatal;
+    bool                        fInException;
+    bool                        fStandalone;
+    bool                        fHasNoDTD;
+    bool                        fValidate;
+    bool                        fValidatorFromUser;
+    bool                        fDoSchema;
+    bool                        fSchemaFullChecking;
+    bool                        fIdentityConstraintChecking;
+    bool                        fToCacheGrammar;
+    bool                        fUseCachedGrammar;
+    bool                        fLoadExternalDTD;
+    bool                        fNormalizeData;
+    bool                        fGenerateSyntheticAnnotations;
+    bool                        fValidateAnnotations;
+    bool                        fIgnoreCachedDTD;
+    bool                        fIgnoreAnnotations;
+    bool                        fDisableDefaultEntityResolution;
+    bool                        fSkipDTDValidation;
+    int                         fErrorCount;
+    unsigned int                fEntityExpansionLimit;
+    unsigned int                fEntityExpansionCount;
+    unsigned int                fEmptyNamespaceId;
+    unsigned int                fUnknownNamespaceId;
+    unsigned int                fXMLNamespaceId;
+    unsigned int                fXMLNSNamespaceId;
+    unsigned int                fSchemaNamespaceId;
+    unsigned int **             fUIntPool;
+    unsigned int                fUIntPoolRow;
+    unsigned int                fUIntPoolCol;
+    unsigned int                fUIntPoolRowTotal;
+    XMLUInt32                   fScannerId;
+    XMLUInt32                   fSequenceId;
+    RefVectorOf<XMLAttr>*       fAttrList;
+    RefHash2KeysTableOf<XMLAttr>*  fAttrDupChkRegistry;    
+    XMLDocumentHandler*         fDocHandler;
+    DocTypeHandler*             fDocTypeHandler;
+    XMLEntityHandler*           fEntityHandler;
+    XMLErrorReporter*           fErrorReporter;
+    ErrorHandler*               fErrorHandler;
+    PSVIHandler*                fPSVIHandler;
+    ValidationContext           *fValidationContext;
+    bool                        fEntityDeclPoolRetrieved;
+    ReaderMgr                   fReaderMgr;
+    XMLValidator*               fValidator;
+    ValSchemes                  fValScheme;
+    GrammarResolver* const      fGrammarResolver;
+    MemoryManager* const        fGrammarPoolMemoryManager;
+    Grammar*                    fGrammar;
+    Grammar*                    fRootGrammar;
+    XMLStringPool*              fURIStringPool;
+    XMLCh*                      fRootElemName;
+    XMLCh*                      fExternalSchemaLocation;
+    XMLCh*                      fExternalNoNamespaceSchemaLocation;
+    SecurityManager*            fSecurityManager;
+    XMLReader::XMLVersion       fXMLVersion;
+    MemoryManager*              fMemoryManager;
+    XMLBufferMgr                fBufMgr;
+    XMLBuffer                   fAttNameBuf;
+    XMLBuffer                   fAttValueBuf;
+    XMLBuffer                   fCDataBuf;
+    XMLBuffer                   fQNameBuf;
+    XMLBuffer                   fPrefixBuf;
+    XMLBuffer                   fURIBuf;
+    XMLBuffer                   fWSNormalizeBuf;
+    ElemStack                   fElemStack;
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XMLScanner();
+    XMLScanner(const XMLScanner&);
+    XMLScanner& operator=(const XMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void commonInit();
+    void cleanUp();
+
+    // -----------------------------------------------------------------------
+    //  Private scanning methods
+    // -----------------------------------------------------------------------
+    bool getQuotedString(XMLBuffer& toFill);
+    unsigned int scanUpToWSOr
+    (
+                XMLBuffer&  toFill
+        , const XMLCh       chEndChar
+    );
+};
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Getter methods
+// ---------------------------------------------------------------------------
+inline const XMLDocumentHandler* XMLScanner::getDocHandler() const
+{
+    return fDocHandler;
+}
+
+inline XMLDocumentHandler* XMLScanner::getDocHandler()
+{
+    return fDocHandler;
+}
+
+inline const DocTypeHandler* XMLScanner::getDocTypeHandler() const
+{
+    return fDocTypeHandler;
+}
+
+inline DocTypeHandler* XMLScanner::getDocTypeHandler()
+{
+    return fDocTypeHandler;
+}
+
+inline bool XMLScanner::getDoNamespaces() const
+{
+    return fDoNamespaces;
+}
+
+inline const XMLEntityHandler* XMLScanner::getEntityHandler() const
+{
+    return fEntityHandler;
+}
+
+inline XMLEntityHandler* XMLScanner::getEntityHandler()
+{
+    return fEntityHandler;
+}
+
+inline const XMLErrorReporter* XMLScanner::getErrorReporter() const
+{
+    return fErrorReporter;
+}
+
+inline XMLErrorReporter* XMLScanner::getErrorReporter()
+{
+    return fErrorReporter;
+}
+
+inline const ErrorHandler* XMLScanner::getErrorHandler() const
+{
+    return fErrorHandler;
+}
+
+inline ErrorHandler* XMLScanner::getErrorHandler()
+{
+    return fErrorHandler;
+}
+
+inline const PSVIHandler* XMLScanner::getPSVIHandler() const
+{
+    return fPSVIHandler;
+}
+
+inline PSVIHandler* XMLScanner::getPSVIHandler()
+{
+    return fPSVIHandler;
+}
+
+inline bool XMLScanner::getExitOnFirstFatal() const
+{
+    return fExitOnFirstFatal;
+}
+
+inline bool XMLScanner::getValidationConstraintFatal() const
+{
+    return fValidationConstraintFatal;
+}
+
+inline bool XMLScanner::getInException() const
+{
+    return fInException;
+}
+
+inline RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList()
+{
+    return fValidationContext->getIdRefList();
+}
+
+inline const RefHashTableOf<XMLRefInfo>* XMLScanner::getIDRefList() const
+{
+    return fValidationContext->getIdRefList();
+}
+
+inline ValidationContext*  XMLScanner::getValidationContext()
+{
+    if (!fEntityDeclPoolRetrieved)
+    {
+        fValidationContext->setEntityDeclPool(getEntityDeclPool());
+        fEntityDeclPoolRetrieved = true;
+    }
+
+    return fValidationContext;
+}
+
+inline const Locator* XMLScanner::getLocator() const
+{
+    return &fReaderMgr;
+}
+
+inline const ReaderMgr* XMLScanner::getReaderMgr() const
+{
+    return &fReaderMgr;
+}
+
+inline unsigned int XMLScanner::getSrcOffset() const
+{
+    return fReaderMgr.getSrcOffset();
+}
+
+inline bool XMLScanner::getStandalone() const
+{
+    return fStandalone;
+}
+
+inline XMLScanner::ValSchemes XMLScanner::getValidationScheme() const
+{
+    return fValScheme;
+}
+
+inline const XMLValidator* XMLScanner::getValidator() const
+{
+    return fValidator;
+}
+
+inline XMLValidator* XMLScanner::getValidator()
+{
+    return fValidator;
+}
+
+inline bool XMLScanner::getDoSchema() const
+{
+    return fDoSchema;
+}
+
+inline bool XMLScanner::getValidationSchemaFullChecking() const
+{
+    return fSchemaFullChecking;
+}
+
+inline bool XMLScanner::getIdentityConstraintChecking() const
+{
+    return fIdentityConstraintChecking;
+}
+
+inline int XMLScanner::getErrorCount()
+{
+    return fErrorCount;
+}
+
+inline bool XMLScanner::isValidatorFromUser()
+{
+    return fValidatorFromUser;
+}
+
+inline unsigned int XMLScanner::getEmptyNamespaceId() const
+{
+    return fEmptyNamespaceId;
+}
+
+inline unsigned int XMLScanner::getUnknownNamespaceId() const
+{
+    return fUnknownNamespaceId;
+}
+
+inline unsigned int XMLScanner::getXMLNamespaceId() const
+{
+    return fXMLNamespaceId;
+}
+
+inline unsigned int XMLScanner::getXMLNSNamespaceId() const
+{
+    return fXMLNSNamespaceId;
+}
+
+inline const XMLStringPool* XMLScanner::getURIStringPool() const
+{
+    return fURIStringPool;
+}
+
+inline XMLStringPool* XMLScanner::getURIStringPool()
+{
+    return fURIStringPool;
+}
+
+inline bool XMLScanner::getHasNoDTD() const
+{
+    return fHasNoDTD;
+}
+
+inline XMLCh* XMLScanner::getExternalSchemaLocation() const
+{
+    return fExternalSchemaLocation;
+}
+
+inline XMLCh* XMLScanner::getExternalNoNamespaceSchemaLocation() const
+{
+    return fExternalNoNamespaceSchemaLocation;
+}
+
+inline SecurityManager* XMLScanner::getSecurityManager() const
+{
+    return fSecurityManager;
+}
+
+inline bool XMLScanner::getLoadExternalDTD() const
+{
+    return fLoadExternalDTD;
+}
+
+inline bool XMLScanner::getNormalizeData() const
+{
+    return fNormalizeData;
+}
+
+inline bool XMLScanner::isCachingGrammarFromParse() const
+{
+    return fToCacheGrammar;
+}
+
+inline bool XMLScanner::isUsingCachedGrammarInParse() const
+{
+    return fUseCachedGrammar;
+}
+
+inline bool XMLScanner::getCalculateSrcOfs() const
+{
+    return fCalculateSrcOfs;
+}
+
+inline Grammar* XMLScanner::getRootGrammar() const
+{
+    return fRootGrammar;
+}
+
+inline bool XMLScanner::getStandardUriConformant() const
+{
+    return fStandardUriConformant;
+}
+
+inline XMLReader::XMLVersion XMLScanner::getXMLVersion() const
+{
+	return fXMLVersion;
+}
+
+inline MemoryManager* XMLScanner::getMemoryManager() const
+{
+    return fMemoryManager;
+}
+
+inline ValueVectorOf<PrefMapElem*>* XMLScanner::getNamespaceContext() const
+{
+    return fElemStack.getNamespaceMap();
+}
+
+inline unsigned int XMLScanner::getPrefixId(const XMLCh* const prefix) const
+{
+    return fElemStack.getPrefixId(prefix);
+}
+
+inline const XMLCh* XMLScanner::getPrefixForId(unsigned int prefId) const
+{
+    return fElemStack.getPrefixForId(prefId);
+}
+
+inline bool XMLScanner::getGenerateSyntheticAnnotations() const
+{
+    return fGenerateSyntheticAnnotations;
+}
+
+inline bool XMLScanner::getValidateAnnotations() const
+{
+    return fValidateAnnotations;
+}
+
+inline bool XMLScanner::getIgnoreCachedDTD() const
+{
+    return fIgnoreCachedDTD;
+}
+
+inline bool XMLScanner::getIgnoreAnnotations() const
+{
+    return fIgnoreAnnotations;
+}
+
+inline bool XMLScanner::getDisableDefaultEntityResolution() const
+{
+    return fDisableDefaultEntityResolution;
+}
+
+inline bool XMLScanner::getSkipDTDValidation() const
+{
+    return fSkipDTDValidation;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Setter methods
+// ---------------------------------------------------------------------------
+inline void XMLScanner::setDocHandler(XMLDocumentHandler* const docHandler)
+{
+    fDocHandler = docHandler;
+}
+
+inline void XMLScanner::setDocTypeHandler(DocTypeHandler* const docTypeHandler)
+{
+    fDocTypeHandler = docTypeHandler;
+}
+
+inline void XMLScanner::setErrorHandler(ErrorHandler* const handler)
+{
+    fErrorHandler = handler;
+}
+
+inline void XMLScanner::setPSVIHandler(PSVIHandler* const handler)
+{
+    fPSVIHandler = handler;
+}
+
+inline void XMLScanner::setEntityHandler(XMLEntityHandler* const entityHandler)
+{
+    fEntityHandler = entityHandler;
+    fReaderMgr.setEntityHandler(entityHandler);
+}
+
+inline void XMLScanner::setErrorReporter(XMLErrorReporter* const errHandler)
+{
+    fErrorReporter = errHandler;
+}
+
+inline void XMLScanner::setExitOnFirstFatal(const bool newValue)
+{
+    fExitOnFirstFatal = newValue;
+}
+
+
+inline void XMLScanner::setValidationConstraintFatal(const bool newValue)
+{
+    fValidationConstraintFatal = newValue;
+}
+
+inline void XMLScanner::setValidationScheme(const ValSchemes newScheme)
+{
+    fValScheme = newScheme;
+
+    // validation flag for Val_Auto is set to false by default,
+    //   and will be turned to true if a grammar is seen
+    if (fValScheme == Val_Always)
+        fValidate = true;
+    else
+        fValidate = false;
+}
+
+inline void XMLScanner::setDoSchema(const bool doSchema)
+{
+    fDoSchema = doSchema;
+}
+
+inline void XMLScanner::setDoNamespaces(const bool doNamespaces)
+{
+    fDoNamespaces = doNamespaces;
+}
+
+inline void XMLScanner::setValidationSchemaFullChecking(const bool schemaFullChecking)
+{
+    fSchemaFullChecking = schemaFullChecking;
+}
+
+inline void XMLScanner::setIdentityConstraintChecking(const bool identityConstraintChecking)
+{
+    fIdentityConstraintChecking = identityConstraintChecking;
+}
+
+inline void XMLScanner::setHasNoDTD(const bool hasNoDTD)
+{
+    fHasNoDTD = hasNoDTD;
+}
+
+inline void XMLScanner::setRootElemName(XMLCh* rootElemName)
+{
+    fMemoryManager->deallocate(fRootElemName);//delete [] fRootElemName;
+    fRootElemName = XMLString::replicate(rootElemName, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalSchemaLocation(const XMLCh* const schemaLocation)
+{
+    fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation;
+    fExternalSchemaLocation = XMLString::replicate(schemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const XMLCh* const noNamespaceSchemaLocation)
+{
+    fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation;
+    fExternalNoNamespaceSchemaLocation = XMLString::replicate(noNamespaceSchemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalSchemaLocation(const char* const schemaLocation)
+{
+    fMemoryManager->deallocate(fExternalSchemaLocation);//delete [] fExternalSchemaLocation;
+    fExternalSchemaLocation = XMLString::transcode(schemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setExternalNoNamespaceSchemaLocation(const char* const noNamespaceSchemaLocation)
+{
+    fMemoryManager->deallocate(fExternalNoNamespaceSchemaLocation);//delete [] fExternalNoNamespaceSchemaLocation;
+    fExternalNoNamespaceSchemaLocation = XMLString::transcode(noNamespaceSchemaLocation, fMemoryManager);
+}
+
+inline void XMLScanner::setSecurityManager(SecurityManager* const securityManager)
+{
+    fSecurityManager = securityManager;
+    if(securityManager != 0) 
+    {
+        fEntityExpansionLimit = securityManager->getEntityExpansionLimit();
+        fEntityExpansionCount = 0;
+    }
+}
+
+inline void XMLScanner::setLoadExternalDTD(const bool loadDTD)
+{
+    fLoadExternalDTD = loadDTD;
+}
+
+inline void XMLScanner::setNormalizeData(const bool normalizeData)
+{
+    fNormalizeData = normalizeData;
+}
+
+inline void XMLScanner::cacheGrammarFromParse(const bool newValue)
+{
+    fToCacheGrammar = newValue;
+}
+
+inline void XMLScanner::useCachedGrammarInParse(const bool newValue)
+{
+    fUseCachedGrammar = newValue;
+}
+
+inline void XMLScanner::setCalculateSrcOfs(const bool newValue)
+{
+    fCalculateSrcOfs = newValue;
+}
+
+inline void XMLScanner::setStandardUriConformant(const bool newValue)
+{
+    fStandardUriConformant = newValue;
+    fReaderMgr.setStandardUriConformant(newValue);
+}
+
+inline void XMLScanner::setGenerateSyntheticAnnotations(const bool newValue)
+{
+    fGenerateSyntheticAnnotations = newValue;
+}
+
+inline void XMLScanner::setValidateAnnotations(const bool newValue)
+{
+    fValidateAnnotations = newValue;
+}
+
+inline void XMLScanner::setInputBufferSize(const size_t bufferSize)
+{
+    fBufferSize = bufferSize;
+    fCDataBuf.setFullHandler(this, (unsigned int)fBufferSize);
+}
+
+inline void XMLScanner::setIgnoredCachedDTD(const bool newValue)
+{
+    fIgnoreCachedDTD = newValue;
+}
+
+inline void XMLScanner::setIgnoreAnnotations(const bool newValue)
+{
+    fIgnoreAnnotations = newValue;
+}
+
+inline void XMLScanner::setDisableDefaultEntityResolution(const bool newValue)
+{
+    fDisableDefaultEntityResolution = newValue;
+}
+
+inline void XMLScanner::setSkipDTDValidation(const bool newValue)
+{
+    fSkipDTDValidation = newValue;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Mutator methods
+// ---------------------------------------------------------------------------
+inline void XMLScanner::incrementErrorCount()
+{
+    ++fErrorCount;
+}
+
+// ---------------------------------------------------------------------------
+//  XMLScanner: Deprecated methods
+// ---------------------------------------------------------------------------
+inline bool XMLScanner::getDoValidation() const
+{
+    return fValidate;
+}
+
+inline void XMLScanner::setDoValidation(const bool validate)
+{
+    fValidate = validate;
+    if (fValidate)
+        fValScheme = Val_Always;
+    else
+        fValScheme = Val_Never;
+}
+
+inline void XMLScanner::resetValidationContext()
+{
+    fValidationContext->clearIdRefList();
+    fValidationContext->setEntityDeclPool(0);
+    fEntityDeclPoolRetrieved = false;
+}
+
+inline void XMLScanner::setAttrDupChkRegistry(const unsigned int &attrNumber
+                                            ,       bool         &toUseHashTable)
+{
+   // once the attribute exceed 100, we use hash table to check duplication
+    if (attrNumber > 100)
+   {
+        toUseHashTable = true;
+
+        if (!fAttrDupChkRegistry)
+        {
+            fAttrDupChkRegistry = new (fMemoryManager) RefHash2KeysTableOf<XMLAttr>
+            (
+              2*attrNumber+1, false, new (fMemoryManager)HashXMLCh(), fMemoryManager
+            );
+        }
+        else
+        {
+            fAttrDupChkRegistry->removeAll();
+        }
+    }
+
+}
+
+inline Grammar::GrammarType XMLScanner::getCurrentGrammarType() const
+{
+    return Grammar::UnKnown;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLScannerResolver.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XMLScannerResolver.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XMLSCANNERRESOLVER_HPP)
+#define XMLSCANNERRESOLVER_HPP
+
+#include <xercesc/internal/XMLScanner.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLValidator;
+class XMLDocumentHandler;
+class XMLErrorReporter;
+class DocTypeHandler;
+class XMLEntityHandler;
+
+class XMLPARSER_EXPORT XMLScannerResolver
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Public class methods
+    // -----------------------------------------------------------------------
+    static XMLScanner* resolveScanner
+    (
+          const XMLCh* const   scannerName
+        , XMLValidator* const  valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    static XMLScanner* resolveScanner
+    (
+          const XMLCh* const        scannerName
+        , XMLDocumentHandler* const docHandler
+        , DocTypeHandler* const     docTypeHandler
+        , XMLEntityHandler* const   entityHandler
+        , XMLErrorReporter* const   errReporter
+        , XMLValidator* const       valToAdopt
+        , GrammarResolver* const    grammarResolver
+        , MemoryManager* const      manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+    static XMLScanner* getDefaultScanner
+    (
+          XMLValidator* const  valToAdopt
+        , GrammarResolver* const grammarResolver
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+    );
+
+private :
+
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructor and destructor
+    // -----------------------------------------------------------------------
+    XMLScannerResolver();
+    ~XMLScannerResolver();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XProtoType.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XProtoType.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XPROTOTYPE_HPP)
+#define XPROTOTYPE_HPP
+
+#include <xercesc/util/PlatformUtils.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSerializeEngine;
+class XSerializable;
+
+class XMLUTIL_EXPORT XProtoType
+{
+public:
+
+           void       store(XSerializeEngine& serEng) const;
+
+    static void        load(XSerializeEngine&          serEng
+                          , XMLByte*          const    name
+                          , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+                          );
+
+    // -------------------------------------------------------------------------------
+    //  data
+    //
+    //  fClassName: 
+    //            name of the XSerializable derivatives
+    //
+    //  fCreateObject:
+    //            pointer to the factory method (createObject()) 
+    //            of the XSerializable derivatives
+    //
+    // -------------------------------------------------------------------------------
+
+    XMLByte*          fClassName;
+
+    XSerializable*    (*fCreateObject)(MemoryManager*);
+
+};
+
+#define DECL_XPROTOTYPE(class_name) \
+static  XProtoType        class##class_name;                   \
+static  XSerializable*    createObject(MemoryManager* manager);
+
+/***
+ * For non-abstract class
+ ***/
+#define IMPL_XPROTOTYPE_TOCREATE(class_name) \
+IMPL_XPROTOTYPE_INSTANCE(class_name) \
+XSerializable* class_name::createObject(MemoryManager* manager) \
+{return new (manager) class_name(manager);}
+
+/***
+* For abstract class
+ ***/
+#define IMPL_XPROTOTYPE_NOCREATE(class_name) \
+IMPL_XPROTOTYPE_INSTANCE(class_name) \
+XSerializable* class_name::createObject(MemoryManager*) \
+{return 0;}
+
+
+/***
+ * Helper Macro 
+ ***/
+#define XPROTOTYPE_CLASS(class_name) ((XProtoType*)(&class_name::class##class_name))
+
+#define IMPL_XPROTOTYPE_INSTANCE(class_name) \
+XProtoType class_name::class##class_name = \
+{(XMLByte*) #class_name, class_name::createObject };
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSAXMLScanner.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSAXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XSAXMLSCANNER_HPP)
+#define XSAXMLSCANNER_HPP
+
+#include <xercesc/internal/SGXMLScanner.hpp>
+
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+//
+//  This is a scanner class, which processes/validates contents of XML Schema
+//  Annotations. It's intended for internal use only.
+//
+class XMLPARSER_EXPORT XSAXMLScanner : public SGXMLScanner
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XSAXMLScanner();
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner public virtual methods
+    // -----------------------------------------------------------------------
+    virtual const XMLCh* getName() const;
+
+protected:
+    // -----------------------------------------------------------------------
+    //  Constructors
+    // -----------------------------------------------------------------------
+    /**
+     * The grammar representing the XML Schema annotation (xsaGrammar) is
+     * passed in by the caller. The scanner will own it and is responsible
+     * for deleting it.
+     */
+    XSAXMLScanner
+    (
+        GrammarResolver* const grammarResolver
+        , XMLStringPool* const   uriStringPool
+        , SchemaGrammar* const   xsaGrammar
+        , MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager
+    );
+    friend class TraverseSchema;
+
+    // -----------------------------------------------------------------------
+    //  XMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual void scanReset(const InputSource& src);
+
+    // -----------------------------------------------------------------------
+    //  SGXMLScanner virtual methods
+    // -----------------------------------------------------------------------
+    virtual bool scanStartTag(bool& gotData);
+    virtual void scanEndTag(bool& gotData);
+
+private :
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+    XSAXMLScanner();
+    XSAXMLScanner(const XSAXMLScanner&);
+    XSAXMLScanner& operator=(const XSAXMLScanner&);
+
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+    void scanRawAttrListforNameSpaces(int attCount);
+    void switchGrammar(const XMLCh* const newGrammarNameSpace, bool laxValidate);
+};
+
+inline const XMLCh* XSAXMLScanner::getName() const
+{
+    return XMLUni::fgXSAXMLScanner;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSObjectFactory.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,237 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSObjectFactory.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSOBJECTFACTORY_HPP)
+#define XSOBJECTFACTORY_HPP
+
+#include <xercesc/framework/psvi/XSConstants.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSObject;
+class XSAttributeUse;
+class XSAttributeDeclaration;
+class XSModel;
+class XSElementDeclaration;
+class XSSimpleTypeDefinition;
+class XSComplexTypeDefinition;
+class XSModelGroupDefinition;
+class XSAttributeGroupDefinition;
+class XSWildcard;
+class XSParticle;
+class XSAnnotation;
+class XSNamespaceItem;
+class XSNotationDeclaration;
+class SchemaAttDef;
+class SchemaElementDecl;
+class DatatypeValidator;
+class ContentSpecNode;
+class ComplexTypeInfo;
+class XercesGroupInfo;
+class XercesAttGroupInfo;
+class XSIDCDefinition;
+class IdentityConstraint;
+class XMLNotationDecl;
+
+/**
+ * Factory class to create various XSObject(s)
+ * Used by XSModel
+ */
+class XMLPARSER_EXPORT XSObjectFactory : public XMemory
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    XSObjectFactory(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+    ~XSObjectFactory();
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and destructor
+    // -----------------------------------------------------------------------
+    XSObjectFactory(const XSObjectFactory&);
+    XSObjectFactory& operator=(const XSObjectFactory&);
+
+    // -----------------------------------------------------------------------
+    //  factory methods
+    // -----------------------------------------------------------------------
+    XSParticle* createModelGroupParticle
+    (
+        const ContentSpecNode* const node
+        , XSModel* const             xsModel
+    );
+
+    XSAttributeDeclaration* addOrFind
+    (
+        SchemaAttDef* const attDef
+        , XSModel* const xsModel
+        , XSComplexTypeDefinition* const enclosingTypeDef = 0
+    );
+
+    XSSimpleTypeDefinition* addOrFind
+    (
+        DatatypeValidator* const validator
+        , XSModel* const xsModel
+        , bool isAnySimpleType = false
+    );
+
+    XSElementDeclaration* addOrFind
+    (
+        SchemaElementDecl* const elemDecl
+        , XSModel* const xsModel
+        , XSComplexTypeDefinition* const enclosingTypeDef = 0
+    );
+
+    XSComplexTypeDefinition* addOrFind
+    (
+        ComplexTypeInfo* const typeInfo
+        , XSModel* const xsModel
+    );
+
+    XSIDCDefinition* addOrFind
+    (
+        IdentityConstraint* const ic
+        , XSModel* const xsModel
+    );
+
+    XSNotationDeclaration* addOrFind
+    (
+        XMLNotationDecl* const notDecl
+        , XSModel* const xsModel
+    );
+
+    XSAttributeUse* createXSAttributeUse
+    (
+        XSAttributeDeclaration* const xsAttDecl
+        , XSModel* const xsModel
+    );
+    XSWildcard* createXSWildcard
+    (
+        SchemaAttDef* const attDef
+        , XSModel* const xsModel
+    );
+
+    XSWildcard* createXSWildcard
+    (
+        const ContentSpecNode* const rootNode
+        , XSModel* const xsModel
+    );
+
+    XSModelGroupDefinition* createXSModelGroupDefinition
+    (
+        XercesGroupInfo* const groupInfo
+        , XSModel* const xsModel
+    );
+
+    XSAttributeGroupDefinition* createXSAttGroupDefinition
+    (
+        XercesAttGroupInfo* const attGroupInfo
+        , XSModel* const xsModel
+    );
+
+    // -----------------------------------------------------------------------
+    //  Helper methods
+    // -----------------------------------------------------------------------
+    // creates a particle corresponding to an element
+    XSParticle* createElementParticle
+    (
+        const ContentSpecNode* const rootNode
+        , XSModel* const             xsModel
+    );
+
+    // creates a particle corresponding to a wildcard
+    XSParticle* createWildcardParticle
+    (
+        const ContentSpecNode* const rootNode
+        , XSModel* const             xsModel
+    );
+
+    XSAnnotation* getAnnotationFromModel
+    (
+        XSModel* const xsModel
+        , const void* const key
+    );
+
+    void buildAllParticles
+    (
+        const ContentSpecNode* const rootNode
+        , XSParticleList* const particleList
+        , XSModel* const xsModel
+    );
+
+    void buildChoiceSequenceParticles
+    (
+        const ContentSpecNode* const rootNode
+        , XSParticleList* const particleList
+        , XSModel* const xsModel
+    );
+
+    void putObjectInMap
+    (
+        void* key
+        , XSObject* const object
+    );
+
+    XSObject* getObjectFromMap
+    (
+        void* key
+    );
+
+    void processFacets
+    (
+        DatatypeValidator* const dv
+        , XSModel* const xsModel
+        , XSSimpleTypeDefinition* const xsST
+    );
+
+    void processAttUse
+    (
+        SchemaAttDef* const attDef
+        , XSAttributeUse* const xsAttUse
+    );
+
+    bool isMultiValueFacetDefined(DatatypeValidator* const dv);
+
+    // make XSModel our friend
+    friend class XSModel;
+
+    // -----------------------------------------------------------------------
+    //  Private Data Members
+    //
+    //  fMemoryManager
+    //      The memory manager used to create various XSObject(s).
+    // -----------------------------------------------------------------------
+    MemoryManager*            fMemoryManager;
+    RefHashTableOf<XSObject>* fXercesToXSMap;
+    RefVectorOf<XSObject>*    fDeleteVector;
+};
+
+inline XSObject* XSObjectFactory::getObjectFromMap(void* key)
+{
+    return fXercesToXSMap->get(key);
+}
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializable.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSerializable.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSERIALIZABLE_HPP)
+#define XSERIALIZABLE_HPP
+
+#include <xercesc/internal/XSerializeEngine.hpp>
+#include <xercesc/internal/XProtoType.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XSerializable
+{
+public :
+
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    virtual ~XSerializable() {} ;
+
+    // -----------------------------------------------------------------------
+    //  Serialization Interface
+    // -----------------------------------------------------------------------   
+    virtual bool        isSerializable()               const = 0;
+
+    virtual void        serialize(XSerializeEngine& )        = 0;
+
+    virtual XProtoType* getProtoType()                 const = 0;
+
+protected:
+    XSerializable() {}
+    XSerializable(const XSerializable& ) {}             
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented assignment operator
+    // -----------------------------------------------------------------------
+	XSerializable& operator=(const XSerializable&);
+
+};
+
+inline void XSerializable::serialize(XSerializeEngine& )
+{
+}
+
+/***
+ * Macro to be included in XSerializable derivatives'
+ * declaration's public section
+ ***/
+#define DECL_XSERIALIZABLE(class_name) \
+public: \
+\
+DECL_XPROTOTYPE(class_name) \
+\
+virtual bool                    isSerializable()                  const ;  \
+virtual XProtoType*             getProtoType()                    const;   \
+virtual void                    serialize(XSerializeEngine&); \
+\
+inline friend XSerializeEngine& operator>>(XSerializeEngine& serEng  \
+                                         , class_name*&      objPtr) \
+{objPtr = (class_name*) serEng.read(XPROTOTYPE_CLASS(class_name));   \
+ return serEng; \
+};
+	
+/***
+ * Macro to be included in the implementation file
+ * of XSerializable derivatives' which is instantiable
+ ***/
+#define IMPL_XSERIALIZABLE_TOCREATE(class_name) \
+IMPL_XPROTOTYPE_TOCREATE(class_name) \
+IMPL_XSERIAL(class_name)
+
+/***
+ * Macro to be included in the implementation file
+ * of XSerializable derivatives' which is UN-instantiable
+ ***/
+#define IMPL_XSERIALIZABLE_NOCREATE(class_name) \
+IMPL_XPROTOTYPE_NOCREATE(class_name) \
+IMPL_XSERIAL(class_name)
+
+/***
+ * Helper Macro 
+ ***/
+#define IMPL_XSERIAL(class_name) \
+bool        class_name::isSerializable() const \
+{return true; } \
+XProtoType* class_name::getProtoType()   const \
+{return XPROTOTYPE_CLASS(class_name); } 
+
+#define IS_EQUIVALENT(lptr, rptr) \
+    if (lptr == rptr)             \
+        return true;              \
+    if (( lptr && !rptr) || (!lptr &&  rptr))  \
+        return false;
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializationException.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSerializationException.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+
+#if !defined(XSERIALIZATION_EXCEPTION_HPP)
+#define XSERIALIZATION_EXCEPTION_HPP
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/XMLException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+MakeXMLException(XSerializationException, XMLUTIL_EXPORT)
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XSerializeEngine.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,873 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XSerializeEngine.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XSERIALIZE_ENGINE_HPP)
+#define XSERIALIZE_ENGINE_HPP
+
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/XMLExceptMsgs.hpp>
+
+#include <xercesc/internal/XSerializationException.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XSerializable;
+class XProtoType;
+class MemoryManager;
+class XSerializedObjectId;
+class BinOutputStream;
+class BinInputStream;
+class XMLGrammarPool;
+class XMLGrammarPoolImpl;
+class XMLStringPool;
+
+class XMLUTIL_EXPORT XSerializeEngine
+{
+public:
+
+    enum { mode_Store
+         , mode_Load 
+    };
+    
+
+    static const bool toReadBufferLen;
+
+    typedef unsigned int   XSerializedObjectId_t;
+
+    /***
+      *
+      *  Destructor 
+      *
+      ***/
+    ~XSerializeEngine();
+
+    /***
+      *
+      *  Constructor for de-serialization(loading)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinInputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     inStream         input stream
+      *     gramPool         Grammar Pool
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinInputStream*         inStream
+                   , XMLGrammarPool* const   gramPool
+                   , unsigned long           bufSize = 8192 );
+
+
+    /***
+      *
+      *  Constructor for serialization(storing)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinOutputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     outStream        output stream
+      *     gramPool         Grammar Pool
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinOutputStream*        outStream
+                   , XMLGrammarPool* const   gramPool
+                   , unsigned long           bufSize = 8192 );
+
+
+    /***
+      *
+      *  Deprecated
+      *
+      *  Constructor for de-serialization(loading)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinInputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     inStream         input stream
+      *     manager          MemoryManager
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinInputStream*         inStream
+                   , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+                   , unsigned long           bufSize = 8192 );
+
+    
+    /***
+      *
+      *  Deprecated
+      *
+      *  Constructor for serialization(storing)
+      *
+      *  Application needs to make sure that the instance of
+      *  BinOutputStream, persists beyond the life of this
+      *  SerializeEngine.
+      *
+      *  Param
+      *     outStream        output stream
+      *     manager          MemoryManager
+      *     bufSize          the size of the internal buffer
+      *
+      ***/
+    XSerializeEngine(BinOutputStream*        outStream
+                   , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
+                   , unsigned long           bufSize = 8192 );
+
+    /***
+      *
+      *  When serialization, flush out the internal buffer
+      *
+      *  Return: 
+      *
+      ***/
+    void flush();
+
+    /***
+      *
+      *  Checking if the serialize engine is doing serialization(storing)
+      *
+      *  Return: true, if it is 
+      *          false, otherwise
+      *
+      ***/
+    inline bool isStoring() const;
+
+    /***
+      *
+      *  Checking if the serialize engine is doing de-serialization(loading)
+      *
+      *  Return: true, if it is 
+      *          false, otherwise
+      *
+      ***/
+    inline bool isLoading() const;
+
+    /***
+      *
+      *  Get the GrammarPool
+      *
+      *  Return: XMLGrammarPool
+      *
+      ***/
+    XMLGrammarPool* getGrammarPool() const;
+
+    /***
+      *
+      *  Get the StringPool
+      *
+      *  Return: XMLStringPool
+      *
+      ***/
+    XMLStringPool* getStringPool() const;
+
+    /***
+      *
+      *  Get the embeded Memory Manager
+      *
+      *  Return: MemoryManager
+      *
+      ***/
+    MemoryManager* getMemoryManager() const;
+
+    /***
+      *
+      *  Get the storer level (the level of the serialize engine
+      *  which created the binary stream that this serialize engine
+      *  is loading).
+      *
+      *  The level returned is meaningful only when
+      *  the engine isLoading.
+      *
+      *  Return: level
+      *
+      ***/
+    inline unsigned short getStorerLevel() const;
+
+    /***
+      *
+      *  Write object to the internal buffer.
+      *
+      *  Param
+      *     objectToWrite:    the object to be serialized
+      *
+      *  Return:
+      *
+      ***/
+           void           write(XSerializable* const objectToWrite);
+
+    /***
+      *
+      *  Write prototype info to the internal buffer.
+      *
+      *  Param
+      *     protoType:    instance of prototype
+      *
+      *  Return:
+      *
+      ***/
+           void           write(XProtoType* const protoType);
+
+    /***
+      *
+      *  Write a stream of XMLByte to the internal buffer.
+      *
+      *  Param
+      *     toWrite:   the stream of XMLByte to write
+      *     writeLen:  the length of the stream
+      *
+      *  Return:
+      *
+      ***/
+           void           write(const XMLByte* const toWrite
+                               ,      int            writeLen);
+
+    /***
+      *
+      *  Write a stream of XMLCh to the internal buffer.
+      *
+      *  Param
+      *     toWrite:   the stream of XMLCh to write
+      *     writeLen:  the length of the stream
+      *
+      *  Return:
+      *
+      ***/
+           void           write(const XMLCh* const toWrite
+                               ,      int          writeLen);
+
+    /***
+      *
+      *  Write a stream of XMLCh to the internal buffer.
+      *
+      *  Write the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toWrite:        the stream of XMLCh to write
+      *     bufferLen:      the maximum size of the buffer
+      *     toWriteBufLen:  specify if the bufferLen need to be written or not
+      *
+      *  Return:
+      *
+      ***/
+           void           writeString(const XMLCh* const toWrite
+                                    , const int          bufferLen = 0
+                                    , bool               toWriteBufLen = false);
+
+    /***
+      *
+      *  Write a stream of XMLByte to the internal buffer.
+      *
+      *  Write the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toWrite:        the stream of XMLByte to write
+      *     bufferLen:      the maximum size of the buffer
+      *     toWriteBufLen:  specify if the bufferLen need to be written or not
+      *
+      *  Return:
+      *
+      ***/
+           void           writeString(const XMLByte* const toWrite
+                                    , const int            bufferLen = 0
+                                    , bool                 toWriteBufLen = false);
+
+    static const bool toWriteBufferLen;
+
+    /***
+      *
+      *  Read/Create object from the internal buffer.
+      *
+      *  Param
+      *     protoType:    an instance of prototype of the object anticipated
+      *
+      *  Return:          to object read/created
+      *
+      ***/
+	       XSerializable* read(XProtoType* const protoType);
+
+    /***
+      *
+      *  Read prototype object from the internal buffer.
+      *  Verify if the same prototype object found in buffer.
+      *
+      *  Param
+      *     protoType:    an instance of prototype of the object anticipated
+      *     objTag:       the object Tag to an existing object
+      *
+      *  Return:          true  : if matching found
+      *                   false : otherwise
+      *
+      ***/
+           bool           read(XProtoType* const    protoType
+		                     , XSerializedObjectId_t*       objTag);
+
+    /***
+      *
+      *  Read XMLByte stream from the internal buffer.
+      *
+      *  Param
+      *     toRead:   the buffer to hold the XMLByte stream
+      *     readLen:  the length of the XMLByte to read in
+      *
+      *  Return:
+      *
+      ***/
+           void           read(XMLByte* const toRead
+                             , int            readLen);
+
+    /***
+      *
+      *  Read XMLCh stream from the internal buffer.
+      *
+      *  Param
+      *     toRead:   the buffer to hold the XMLCh stream
+      *     readLen:  the length of the XMLCh to read in
+      *
+      *  Return:
+      *
+      ***/
+           void           read(XMLCh* const toRead
+                             , int          readLen);
+
+    /***
+      *
+      *  Read a stream of XMLCh from the internal buffer.
+      *
+      *  Read the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toRead:       the pointer to the buffer to hold the XMLCh stream
+      *     bufferLen:    the size of the buffer created
+      *     dataLen:       the length of the stream
+      *     toReadBufLen: specify if the bufferLen need to be read or not
+      *
+      *  Return:
+      *
+      ***/
+           void           readString(XMLCh*&        toRead
+                                   , int&           bufferLen
+                                   , int&           dataLen
+                                   , bool           toReadBufLen = false);
+
+     /***
+       *
+       *  Read a stream of XMLCh from the internal buffer.
+       *
+       *  Read the bufferLen first if requested, then the length
+       *  of the stream followed by the stream.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLCh stream
+       *     bufferLen:    the size of the buffer created
+       *
+       *  Return:
+       *
+       ***/
+            inline void     readString(XMLCh*&        toRead
+                                    , int&            bufferLen);
+ 
+     /***
+       *
+       *  Read a stream of XMLCh from the internal buffer.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLCh stream
+       *
+       *  Return:
+       *
+       ***/
+            inline void      readString(XMLCh*&        toRead);
+
+    /***
+      *
+      *  Read a stream of XMLByte from the internal buffer.
+      *
+      *  Read the bufferLen first if requested, then the length
+      *  of the stream followed by the stream.
+      *
+      *  Param
+      *     toRead:       the pointer to the buffer to hold the XMLByte stream
+      *     bufferLen:    the size of the buffer created
+      *     dataLen:       the length of the stream
+      *     toReadBufLen: specify if the bufferLen need to be read or not
+      *
+      *  Return:
+      *
+      ***/
+           void           readString(XMLByte*&      toRead
+                                   , int&           bufferLen
+                                   , int&           dataLen
+                                   , bool           toReadBufLen = false);
+
+
+     /***
+       *
+       *  Read a stream of XMLByte from the internal buffer.
+       *
+       *  Read the bufferLen first if requested, then the length
+       *  of the stream followed by the stream.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLByte stream
+       *     bufferLen:    the size of the buffer created
+       *
+       *  Return:
+       *
+       ***/
+            inline void       readString(XMLByte*&      toRead
+                                       , int&           bufferLen);
+ 
+     /***
+       *
+       *  Read a stream of XMLByte from the internal buffer.
+       *
+       *  Read the bufferLen first if requested, then the length
+       *  of the stream followed by the stream.
+       *
+       *  Param
+       *     toRead:       the pointer to the buffer to hold the XMLByte stream
+       *     bufferLen:    the size of the buffer created
+       *     dataLen:       the length of the stream
+       *     toReadBufLen: specify if the bufferLen need to be read or not
+       *
+       *  Return:
+       *
+       ***/
+            inline void       readString(XMLByte*&      toRead);
+
+    /***
+      *
+      *  Check if the template object has been stored or not
+      *
+      *  Param
+      *    objectPtr:     the template object pointer
+      *
+      *  Return:          true  : the object has NOT been stored yet
+      *                   false : otherwise
+      *
+      ***/
+           bool           needToStoreObject(void* const templateObjectToWrite);
+
+    /***
+      *
+      *  Check if the template object has been loaded or not
+      *
+      *  Param
+      *    objectPtr:     the address of the template object pointer
+      *
+      *  Return:          true  : the object has NOT been loaded yet
+      *                   false : otherwise
+      *
+      ***/
+           bool           needToLoadObject(void**       templateObjectToRead);
+
+    /***
+      *
+      *  In the case of needToLoadObject() return true, the client
+      *  application needs to instantiate an expected template object, and
+      *  register the address to the engine.
+      *
+      *  Param
+      *    objectPtr:     the template object pointer newly instantiated
+      *
+      *  Return:  
+      *
+      ***/
+           void           registerObject(void* const templateObjectToRegister);
+
+    /***
+      *
+      *  Insertion operator for serializable classes
+      *
+      ***/
+
+	friend XSerializeEngine& operator<<(XSerializeEngine&
+                                      , XSerializable* const );
+
+    /***
+      *
+      *  Insertion operators for 
+      *     . basic Xerces data types
+      *     . built-in types 
+      *
+      ***/
+           XSerializeEngine& operator<<(XMLByte);
+           XSerializeEngine& operator<<(XMLCh);
+
+           XSerializeEngine& operator<<(char);
+           XSerializeEngine& operator<<(short);
+           XSerializeEngine& operator<<(int);
+           XSerializeEngine& operator<<(unsigned int);
+           XSerializeEngine& operator<<(long);
+           XSerializeEngine& operator<<(unsigned long);
+           XSerializeEngine& operator<<(float);
+           XSerializeEngine& operator<<(double);
+           XSerializeEngine& operator<<(bool);
+
+    /***
+      *
+      *  Extraction operators for 
+      *     . basic Xerces data types
+      *     . built-in types 
+      *
+      ***/
+           XSerializeEngine& operator>>(XMLByte&);
+           XSerializeEngine& operator>>(XMLCh&);
+
+           XSerializeEngine& operator>>(char&);
+           XSerializeEngine& operator>>(short&);
+           XSerializeEngine& operator>>(int&);
+           XSerializeEngine& operator>>(unsigned int&);
+           XSerializeEngine& operator>>(long&);
+           XSerializeEngine& operator>>(unsigned long&);
+           XSerializeEngine& operator>>(float&);
+           XSerializeEngine& operator>>(double&);
+           XSerializeEngine& operator>>(bool&);
+
+    /***
+      *
+      *  Getters
+      *
+      ***/
+    inline 
+    XMLSize_t   getBufSize()    const;
+
+    inline 
+    XMLSize_t   getBufCur()     const;
+
+    inline 
+    XMLSize_t   getBufCurAccumulated()     const;
+
+    inline 
+    XMLSize_t   getBufCount()    const;
+
+    void                  trace(char*)     const;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	XSerializeEngine();
+    XSerializeEngine(const XSerializeEngine&);
+	XSerializeEngine& operator=(const XSerializeEngine&);
+
+    /***
+      *
+      *   Store Pool Opertions
+      *
+      ***/
+           XSerializedObjectId_t  lookupStorePool(void* const objectPtr) const;
+           void                   addStorePool(void* const objectPtr);
+
+    /***
+      *
+      *   Load Pool Opertions
+      *
+      ***/
+           XSerializable* lookupLoadPool(XSerializedObjectId_t objectTag) const;
+           void           addLoadPool(void* const objectPtr);
+   
+    /***
+      *   
+      *    Intenal Buffer Operations
+      *
+      ***/
+    inline void           checkAndFillBuffer(int bytesNeedToRead);
+
+    inline void           checkAndFlushBuffer(int bytesNeedToWrite);
+
+           void           fillBuffer();
+
+           void           flushBuffer();
+
+           void           pumpCount();
+
+    inline void           resetBuffer();
+
+    /***
+      *   
+      *    Helper
+      *
+      ***/
+    inline void            ensureStoring()                          const;
+
+    inline void            ensureLoading()                          const;
+
+    inline void            ensureStoreBuffer()                      const;
+
+    inline void            ensureLoadBuffer()                       const;
+
+    inline void            ensurePointer(void* const)               const;
+
+    inline void            ensureBufferLen(int  bufferLen)          const;
+
+    inline void            Assert(bool  toEval
+                                , const XMLExcepts::Codes toThrow)  const;
+
+
+    inline XMLSize_t          calBytesNeeded(XMLSize_t)  const;
+
+    inline XMLSize_t          alignAdjust(XMLSize_t)     const;
+
+    inline void            alignBufCur(XMLSize_t);
+
+    // Make XTemplateSerializer friend of XSerializeEngine so that
+    // we can call lookupStorePool and lookupLoadPool in the case of
+    // annotations.
+    friend class XTemplateSerializer;
+
+    // -------------------------------------------------------------------------------
+    //  data
+    //
+    //  fStoreLoad: 
+    //               Indicator: storing(serialization) or loading(de-serialization)
+    //
+    //  fStorerLevel:
+    //              The level of the serialize engine which created the binary 
+    //              stream that this serialize engine is loading
+    //
+    //              It is set by GrammarPool when loading
+    //
+    //  fGrammarPool:
+    //               Thw owning GrammarPool which instantiate this SerializeEngine 
+    //               instance
+    //
+    //  fInputStream:
+    //               Binary stream to read from (de-serialization), provided
+    //               by client application, not owned.
+    //
+    //  fOutputStream:
+    //               Binary stream to write to (serialization), provided 
+    //               by client application, not owned.
+    //
+    //  fBufSize:
+    //               The size of the internal buffer
+    //
+    //  fBufStart/fBufEnd:
+    //               
+    //               The internal buffer.
+    //  fBufEnd:
+    //               one beyond the last valid cell
+    //               fBufEnd === (fBufStart + fBufSize)
+    //
+    //  fBufCur:
+    //               The cursor of the buffer
+    //
+    //  fBufLoadMax:
+    //               Indicating the end of the valid content in the buffer
+    //
+    //  fStorePool:
+    //                Object collection for storing
+    //
+    //  fLoadPool:
+    //                Object collection for loading
+    //
+    //  fMapCount:
+    // -------------------------------------------------------------------------------
+    const short                            fStoreLoad;
+    short                                  fStorerLevel;
+
+    XMLGrammarPool*  const                 fGrammarPool;
+    BinInputStream*  const                 fInputStream;
+    BinOutputStream* const                 fOutputStream;
+
+    XMLSize_t                              fBufCount;
+
+    //buffer
+    const XMLSize_t                        fBufSize;
+	XMLByte* const                         fBufStart;
+	XMLByte* const                         fBufEnd; 
+    XMLByte*                               fBufCur;
+    XMLByte*                               fBufLoadMax; 
+
+
+
+    /***
+     *   Map for storing object
+     *
+     *   key:   XSerializable*
+     *          XProtoType*
+     *
+     *   value: XMLInteger*, owned
+     *
+     ***/
+    RefHashTableOf<XSerializedObjectId>*   fStorePool;  
+
+    /***
+     *   Vector for loading object, objects are NOT owned
+     *
+     *   data:   XSerializable*
+     *           XProtoType*
+     *
+     ***/
+    ValueVectorOf<void*>*                  fLoadPool;    
+
+    /***
+     *   object counter
+     ***/
+	XSerializedObjectId_t                  fObjectCount;
+
+    //to allow grammar pool to set storer level when loading
+    friend class XMLGrammarPoolImpl;
+};
+
+inline bool XSerializeEngine::isStoring() const
+{
+    return (fStoreLoad == mode_Store);
+}
+
+inline bool XSerializeEngine::isLoading() const
+{
+    return (fStoreLoad == mode_Load);
+}
+
+inline XSerializeEngine& operator<<(XSerializeEngine&       serEng
+                                  , XSerializable* const    serObj)
+{
+	serEng.write(serObj); 
+    return serEng; 
+}
+
+inline void XSerializeEngine::ensureStoring() const
+{
+	Assert(isStoring(), XMLExcepts::XSer_Storing_Violation);
+}
+
+inline void XSerializeEngine::ensureLoading() const
+{
+	Assert(isLoading(), XMLExcepts::XSer_Loading_Violation);
+}
+
+
+
+inline void XSerializeEngine::Assert(bool toEval
+                                   , const XMLExcepts::Codes toThrow) const
+{
+    if (!toEval)
+    {
+        ThrowXMLwithMemMgr(XSerializationException, toThrow, getMemoryManager());  
+    }
+
+}
+
+inline void XSerializeEngine::readString(XMLCh*&        toRead
+                                       , int&           bufferLen)
+{
+    int  dummyDataLen;                
+    readString(toRead, bufferLen, dummyDataLen);
+}
+
+inline void XSerializeEngine::readString(XMLCh*&        toRead)
+{
+    int  dummyBufferLen;
+    int  dummyDataLen;
+    readString(toRead, dummyBufferLen, dummyDataLen);
+}
+
+inline void XSerializeEngine::readString(XMLByte*&      toRead
+                                       , int&           bufferLen)
+{
+    int  dummyDataLen;
+    readString(toRead, bufferLen, dummyDataLen);
+}
+
+inline void XSerializeEngine::readString(XMLByte*&      toRead)
+{
+    int  dummyBufferLen;
+    int  dummyDataLen;
+    readString(toRead, dummyBufferLen, dummyDataLen);
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufSize() const
+{
+    return fBufSize;
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufCur() const
+{
+    return XMLSize_t (fBufCur-fBufStart);
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufCurAccumulated() const
+{
+    return (fBufCount - (isStoring() ? 0: 1)) * fBufSize + (fBufCur-fBufStart);
+}
+
+inline 
+XMLSize_t XSerializeEngine::getBufCount() const
+{
+    return fBufCount;
+}
+
+inline 
+unsigned short XSerializeEngine::getStorerLevel() const
+{
+    return fStorerLevel;
+}
+
+/***
+ *  Ought to be nested class
+ ***/
+class XSerializedObjectId : public XMemory
+{
+public:
+
+    ~XSerializedObjectId(){};
+
+private:
+
+    inline XSerializedObjectId(XSerializeEngine::XSerializedObjectId_t val):
+        fData(val) { };
+
+    inline XSerializeEngine::XSerializedObjectId_t getValue() const {return fData; };
+
+    friend class XSerializeEngine;
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	XSerializedObjectId();
+    XSerializedObjectId(const XSerializedObjectId&);
+	XSerializedObjectId& operator=(const XSerializedObjectId&);
+
+    XSerializeEngine::XSerializedObjectId_t    fData;
+
+};
+
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XTemplateSerializer.hpp	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,365 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id: XTemplateSerializer.hpp 568078 2007-08-21 11:43:25Z amassari $
+ */
+
+#if !defined(XTEMPLATE_SERIALIZER_HPP)
+#define XTEMPLATE_SERIALIZER_HPP
+
+#include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RefHashTableOf.hpp>
+#include <xercesc/util/RefHash2KeysTableOf.hpp>
+#include <xercesc/util/RefHash3KeysIdPool.hpp>
+#include <xercesc/util/NameIdPool.hpp>
+
+#include <xercesc/framework/XMLNotationDecl.hpp>
+#include <xercesc/framework/XMLRefInfo.hpp>
+#include <xercesc/util/XMLNumber.hpp>
+#include <xercesc/validators/common/ContentSpecNode.hpp>
+#include <xercesc/validators/DTD/DTDAttDef.hpp>
+#include <xercesc/validators/DTD/DTDElementDecl.hpp>
+#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
+#include <xercesc/validators/schema/SchemaAttDef.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+#include <xercesc/validators/schema/XercesGroupInfo.hpp>
+#include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
+#include <xercesc/validators/schema/SchemaGrammar.hpp>
+#include <xercesc/validators/schema/identity/IC_Field.hpp>
+#include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
+#include <xercesc/validators/schema/identity/XercesXPath.hpp>
+#include <xercesc/framework/psvi/XSAnnotation.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+class XMLUTIL_EXPORT XTemplateSerializer
+{
+public:
+
+    /**********************************************************
+     *
+     * ValueVectorOf
+     *
+     *   SchemaElementDecl*
+     *   unsigned int
+     *
+     ***********************************************************/   
+    static void           storeObject(ValueVectorOf<SchemaElementDecl*>* const tempObjToWrite
+                                    , XSerializeEngine&                        serEng);
+
+    static void           loadObject(ValueVectorOf<SchemaElementDecl*>**       tempObjToRead
+                                   , int                                       initSize
+                                   , bool                                      toCallDestructor
+                                   , XSerializeEngine&                         serEng);
+
+    static void           storeObject(ValueVectorOf<unsigned int>* const tempObjToWrite
+                                    , XSerializeEngine&                  serEng);
+
+    static void           loadObject(ValueVectorOf<unsigned int>**       tempObjToRead
+                                   , int                                 initSize
+                                   , bool                                toCallDestructor
+                                   , XSerializeEngine&                   serEng);
+
+    /**********************************************************
+     *
+     * RefArrayVectorOf
+     *
+     *   XMLCh
+     *
+     ***********************************************************/   
+    static void           storeObject(RefArrayVectorOf<XMLCh>* const tempObjToWrite
+                                    , XSerializeEngine&              serEng);
+
+    static void           loadObject(RefArrayVectorOf<XMLCh>**       tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    /**********************************************************
+     *
+     * RefVectorOf
+     *
+     *   SchemaAttDef
+     *   SchemaElementDecl
+     *   ContentSpecNode
+     *   IC_Field
+     *   DatatypeValidator
+     *   IdentityConstraint
+     *   XMLNumber
+     *   XercesLocationPath
+     *   XercesStep
+     *
+     ***********************************************************/
+    static void           storeObject(RefVectorOf<SchemaAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(RefVectorOf<SchemaAttDef>**       tempObjToRead
+                                   , int                               initSize
+                                   , bool                              toAdopt
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(RefVectorOf<SchemaElementDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                     serEng);
+
+    static void           loadObject(RefVectorOf<SchemaElementDecl>**       tempObjToRead
+                                   , int                                    initSize
+                                   , bool                                   toAdopt
+                                   , XSerializeEngine&                      serEng);
+
+    static void           storeObject(RefVectorOf<ContentSpecNode>* const tempObjToWrite
+                                    , XSerializeEngine&                   serEng);
+
+    static void           loadObject(RefVectorOf<ContentSpecNode>**       tempObjToRead
+                                   , int                                  initSize
+                                   , bool                                 toAdopt
+                                   , XSerializeEngine&                    serEng);
+
+    static void           storeObject(RefVectorOf<IC_Field>* const tempObjToWrite
+                                    , XSerializeEngine&            serEng);
+
+    static void           loadObject(RefVectorOf<IC_Field>**       tempObjToRead
+                                   , int                           initSize
+                                   , bool                          toAdopt
+                                   , XSerializeEngine&             serEng);
+
+    static void           storeObject(RefVectorOf<DatatypeValidator>* const tempObjToWrite
+                                    , XSerializeEngine&                     serEng);
+
+    static void           loadObject(RefVectorOf<DatatypeValidator>**       tempObjToRead
+                                   , int                                    initSize
+                                   , bool                                   toAdopt
+                                   , XSerializeEngine&                      serEng);
+ 
+    static void           storeObject(RefVectorOf<IdentityConstraint>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefVectorOf<IdentityConstraint>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefVectorOf<XMLNumber>* const tempObjToWrite
+                                    , XSerializeEngine&             serEng);
+
+    static void           loadObject(RefVectorOf<XMLNumber>**       tempObjToRead
+                                   , int                            initSize
+                                   , bool                           toAdopt
+                                   , XMLNumber::NumberType          numType
+                                   , XSerializeEngine&              serEng);
+
+    static void           storeObject(RefVectorOf<XercesLocationPath>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefVectorOf<XercesLocationPath>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefVectorOf<XercesStep>* const tempObjToWrite
+                                    , XSerializeEngine&              serEng);
+
+    static void           loadObject(RefVectorOf<XercesStep>**       tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    /**********************************************************
+     *
+     * RefHashTableOf
+     *
+     *   KVStringPair
+     *   XMLAttDef
+     *   DTDAttDef
+     *   ComplexTypeInfo
+     *   XercesGroupInfo
+     *   XercesAttGroupInfo
+     *   XMLRefInfo
+     *   DatatypeValidator
+     *   Grammar
+     *   XSAnnotation
+     *
+     ***********************************************************/
+    static void           storeObject(RefHashTableOf<KVStringPair>* const tempObjToWrite
+                                    , XSerializeEngine&                   serEng);
+
+    static void           loadObject(RefHashTableOf<KVStringPair>**       tempObjToRead
+                                   , int                                  initSize
+                                   , bool                                 toAdopt
+                                   , XSerializeEngine&                    serEng);
+
+    static void           storeObject(RefHashTableOf<XMLAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(RefHashTableOf<XMLAttDef>**       tempObjToRead
+                                   , int                               initSize
+                                   , bool                              toAdopt
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(RefHashTableOf<DTDAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(RefHashTableOf<DTDAttDef>**       tempObjToRead
+                                   , int                               initSize
+                                   , bool                              toAdopt
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(RefHashTableOf<ComplexTypeInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefHashTableOf<ComplexTypeInfo>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefHashTableOf<XercesGroupInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefHashTableOf<XercesGroupInfo>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    static void           storeObject(RefHashTableOf<XercesAttGroupInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                         serEng);
+
+    static void           loadObject(RefHashTableOf<XercesAttGroupInfo>**       tempObjToRead
+                                   , int                                        initSize
+                                   , bool                                       toAdopt
+                                   , XSerializeEngine&                          serEng);
+
+    static void           storeObject(RefHashTableOf<XMLRefInfo>* const tempObjToWrite
+                                    , XSerializeEngine&                 serEng);
+
+    static void           loadObject(RefHashTableOf<XMLRefInfo>**       tempObjToRead
+                                   , int                                initSize
+                                   , bool                               toAdopt
+                                   , XSerializeEngine&                  serEng);
+
+    static void           storeObject(RefHashTableOf<DatatypeValidator>* const tempObjToWrite
+                                    , XSerializeEngine&                        serEng);
+
+    static void           loadObject(RefHashTableOf<DatatypeValidator>**       tempObjToRead
+                                   , int                                       initSize
+                                   , bool                                      toAdopt
+                                   , XSerializeEngine&                         serEng);
+
+    static void           storeObject(RefHashTableOf<Grammar>* const tempObjToWrite
+                                    , XSerializeEngine&              serEng);
+
+    static void           loadObject(RefHashTableOf<Grammar>**       tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    static void           storeObject(RefHashTableOf<XSAnnotation>* const tempObjToWrite
+                                    , XSerializeEngine&                   serEng);
+
+    static void           loadObject(RefHashTableOf<XSAnnotation>**  tempObjToRead
+                                   , int                             initSize
+                                   , bool                            toAdopt
+                                   , XSerializeEngine&               serEng);
+
+    /**********************************************************
+     *
+     * RefHash2KeysTableOf
+     *
+     *   SchemaAttDef
+     *   ElemVector
+     *
+     ***********************************************************/
+    static void           storeObject(RefHash2KeysTableOf<SchemaAttDef>* const tempObjToWrite
+                                    , XSerializeEngine&                        serEng);
+
+    static void           loadObject(RefHash2KeysTableOf<SchemaAttDef>**       tempObjToRead
+                                   , int                                       initSize
+                                   , bool                                      toAdopt
+                                   , XSerializeEngine&                         serEng);
+
+    static void           storeObject(RefHash2KeysTableOf<ElemVector>* const tempObjToWrite
+                                    , XSerializeEngine&                      serEng);
+
+    static void           loadObject(RefHash2KeysTableOf<ElemVector>**       tempObjToRead
+                                   , int                                     initSize
+                                   , bool                                    toAdopt
+                                   , XSerializeEngine&                       serEng);
+
+    /**********************************************************
+     *
+     * RefHash3KeysIdPool
+     *
+     *   SchemaElementDecl
+     *
+     ***********************************************************/
+    static void           storeObject(RefHash3KeysIdPool<SchemaElementDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                            serEng);
+
+    static void           loadObject(RefHash3KeysIdPool<SchemaElementDecl>**       tempObjToRead
+                                   , int                                           initSize
+                                   , bool                                          toAdopt
+                                   , int                                           initSize2
+                                   , XSerializeEngine&                             serEng);
+
+    /**********************************************************
+     *
+     * NameIdPool
+     *
+     *   DTDElementDecl
+     *   DTDEntityDecl
+     *   XMLNotationDecl
+     *
+     ***********************************************************/
+    static void           storeObject(NameIdPool<DTDElementDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                 serEng);
+
+    static void           loadObject(NameIdPool<DTDElementDecl>**       tempObjToRead
+                                   , int                                initSize
+                                   , int                                initSize2
+                                   , XSerializeEngine&                  serEng);
+
+    static void           storeObject(NameIdPool<DTDEntityDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                serEng);
+
+    static void           loadObject(NameIdPool<DTDEntityDecl>**       tempObjToRead
+                                   , int                               initSize
+                                   , int                               initSize2
+                                   , XSerializeEngine&                 serEng);
+
+    static void           storeObject(NameIdPool<XMLNotationDecl>* const tempObjToWrite
+                                    , XSerializeEngine&                  serEng);
+
+    static void           loadObject(NameIdPool<XMLNotationDecl>**      tempObjToRead
+                                   , int                                initSize
+                                   , int                                initSize2
+                                   , XSerializeEngine&                  serEng);
+
+private:
+    // -----------------------------------------------------------------------
+    //  Unimplemented constructors and operators
+    // -----------------------------------------------------------------------
+	~XTemplateSerializer();
+    XTemplateSerializer();
+    XTemplateSerializer(const XTemplateSerializer&);
+	XTemplateSerializer& operator=(const XTemplateSerializer&);
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/test/testmakesis/largelanguagecodes.pkg	Thu May 27 12:58:35 2010 +0300
@@ -0,0 +1,218 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of the License "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+
+;Languages
+;#define LANGUAGE_IDS LANG sc 37 14346 14387 14412 14419 102 42 44 45 25 07 18 01 10 129 158 160 159 157 161 49 50 09 02 51 103 03 54 57 58 30 17 15 59 327 05 32 65 67 68 70 326 08 27 13 76 31 78 16 79 26 28 04 83 06 39 29 33 14 93 94 96
+&01,02,03,04,05,06,07,08,09,10,13,14,15,16,17,18,25,26,27,28,29,30,31,32,33,37,39,42,44,45,49,50,51,54,57,58,59,65,67,68,70,76,78,79,83,93,94,96,102,103,129,157,158,159,160,161,326,327,14346,14387,14412,14419,456789
+
+;Header
+#{"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice "},(0x200002B3),1,1,1,TYPE=SA
+
+;Localised Vendor name
+%{"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice ",
+"Quickoffice "}
+
+;Unique Vendor name
+:"Quickoffice Inc"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, 
+{"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID",
+"Series60ProductID"}