# HG changeset patch # User Maximilian Odendahl # Date 1269275001 -3600 # Node ID a552c9d3f67be93098d2ae8a5dfee6789aced4aa # Parent 0f07cd1b5772bc9abf98731db9ef805273468239# Parent e9a27a9cdac29b8e5468faffbd3c63cc9ccb6fab merge diff -r e9a27a9cdac2 -r a552c9d3f67b alarmui/group/alarmuisnooze.rul --- a/alarmui/group/alarmuisnooze.rul Tue Mar 16 14:31:25 2010 +0100 +++ b/alarmui/group/alarmuisnooze.rul Mon Mar 22 17:23:21 2010 +0100 @@ -85,30 +85,6 @@ - - - - - - - - - - Inactive - - - - - - - - - - - - - - diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/application/data/Calendar.rss --- a/calendarui/application/data/Calendar.rss Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/application/data/Calendar.rss Mon Mar 22 17:23:21 2010 +0100 @@ -891,7 +891,7 @@ // RESOURCE TBUF r_calen_date_prompt { - buf = text_calendar_date_prompt; + buf = qtn_cale_go_to_date; } // --------------------------------------------------------- @@ -2570,7 +2570,8 @@ RESOURCE TBUF r_qtn_cale_db_already_exists_note { - buf = qtn_fldr_rename_query; + //buf = qtn_fldr_rename_query; + buf = qtn_fldr_name_already_used; } // --------------------------------------------------------- @@ -2710,7 +2711,7 @@ RESOURCE TBUF r_cale_db_calendar_default_name { - buf = "Calendar(%U)"; //qtn_cale_db_calendar_default_name + buf = qtn_cale_db_calendar_default_name; } RESOURCE TBUF r_calen_illegal_characters diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/application/group/Calendar.mmp --- a/calendarui/application/group/Calendar.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/application/group/Calendar.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -91,8 +91,7 @@ // NetworkServices // For sending vCalendars? // ProtServ // For connecting Agenda Server? // DRM // Calendar alarm tones are DRM protected -CAPABILITY CAP_APPLICATION \ - NetworkControl AllFiles +CAPABILITY CAP_APPLICATION VENDORID VID_DEFAULT diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/application/group/iconlist.txt --- a/calendarui/application/group/iconlist.txt Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/application/group/iconlist.txt Mon Mar 22 17:23:21 2010 +0100 @@ -29,4 +29,6 @@ -c8,8 qgn_indi_cdr_todo_undone_missed_new -c8,8 qgn_indi_tb_cale_alarm_dismiss -c8,8 qgn_indi_tb_cale_alarm_dismiss_all --c8,8 qgn_stat_sync.svg \ No newline at end of file +-c8,8 qgn_stat_sync.svg +-c8,8 qgn_indi_cale_tb_today.svg +-c8,8 qgn_indi_cale_tb_changeview.svg diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/bwins/calencommonutilsu.def --- a/calendarui/commonutils/bwins/calencommonutilsu.def Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/bwins/calencommonutilsu.def Mon Mar 22 17:23:21 2010 +0100 @@ -29,7 +29,7 @@ ?SizeString@CCalenAttachmentInfo@@QBEPAVHBufC16@@XZ @ 28 NONAME ; class HBufC16 * CCalenAttachmentInfo::SizeString(void) const ?RemoveEntriesEndingAtMidnightL@CalenAgendaUtils@@SAXAAV?$RPointerArray@VCCalInstance@@@@ABVTTime@@@Z @ 29 NONAME ; void CalenAgendaUtils::RemoveEntriesEndingAtMidnightL(class RPointerArray &, class TTime const &) ?Status@CCalenEntryUtil@@QBEABW4TStatus@CCalEntry@@XZ @ 30 NONAME ; enum CCalEntry::TStatus const & CCalenEntryUtil::Status(void) const - ?AddAttachmentL@CCalenAttachmentModel@@QAEXABVTDesC16@@0HHABVTDataType@@@Z @ 31 NONAME ; void CCalenAttachmentModel::AddAttachmentL(class TDesC16 const &, class TDesC16 const &, int, int, class TDataType const &) + ?AddAttachmentL@CCalenAttachmentModel@@QAEXABVTDesC16@@0HHABVTDataType@@AAVRFile@@@Z @ 31 NONAME ; void CCalenAttachmentModel::AddAttachmentL(class TDesC16 const &, class TDesC16 const &, int, int, class TDataType const &, class RFile &) ?OnSameDay@CalenDateUtils@@SAHABVTTime@@0@Z @ 32 NONAME ; int CalenDateUtils::OnSameDay(class TTime const &, class TTime const &) ?OpenAttachmentL@CCalenAttachmentUtils@@SAXAAVRFile@@AAVMAknServerAppExitObserver@@@Z @ 33 NONAME ; void CCalenAttachmentUtils::OpenAttachmentL(class RFile &, class MAknServerAppExitObserver &) ?LoadResourcesL@CCalenAttachmentModel@@QAEXXZ @ 34 NONAME ; void CCalenAttachmentModel::LoadResourcesL(void) diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/eabi/calencommonutilsu.def --- a/calendarui/commonutils/eabi/calencommonutilsu.def Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/eabi/calencommonutilsu.def Mon Mar 22 17:23:21 2010 +0100 @@ -84,7 +84,7 @@ _ZN20CCalenAttachmentInfo4NewLER21CCalenAttachmentModelRK4TBufILi256EES5_iiRK9TDataTypeNS_25TCalenAttachmentStoreTypeE @ 83 NONAME _ZN21CCalenAttachmentModel11SetObserverEP29MCalenAttachmentModelObserver @ 84 NONAME _ZN21CCalenAttachmentModel14AddAttachmentLERK7TDesC16S2_ @ 85 NONAME - _ZN21CCalenAttachmentModel14AddAttachmentLERK7TDesC16S2_iiRK9TDataType @ 86 NONAME + _ZN21CCalenAttachmentModel14AddAttachmentLERK7TDesC16S2_iiRK9TDataTypeR5RFile @ 86 NONAME _ZN21CCalenAttachmentModel14BitmapForFileLER20CCalenAttachmentInfo @ 87 NONAME _ZN21CCalenAttachmentModel14LoadResourcesLEv @ 88 NONAME _ZN21CCalenAttachmentModel16DeleteAttachmentEi @ 89 NONAME diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/group/commonutils.mmp --- a/calendarui/commonutils/group/commonutils.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/group/commonutils.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -99,8 +99,7 @@ LIBRARY aknlayout2scalable.lib LIBRARY gdi.lib -CAPABILITY CAP_GENERAL_DLL \ - DRM +CAPABILITY CAP_GENERAL_DLL VENDORID VID_DEFAULT diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/inc/calenattachmentinfo.h --- a/calendarui/commonutils/inc/calenattachmentinfo.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/inc/calenattachmentinfo.h Mon Mar 22 17:23:21 2010 +0100 @@ -167,7 +167,29 @@ * Performs icon updating. */ void DoUpdateIconL(); - + + /** + * Sets the file handle. + * @param aFile File handle to be set + * + */ + void SetFileHandle(RFile& aFile); + + /** + * Gets the file handle. + * @param File handle. + * + */ + void FileHandle( RFile& aFile ); + + /** + * Check whether the file handle is set or not. + * @return The isSetFileHandle + * + */ + TBool IsFileHandleSet(); + + private: CCalenAttachmentModel& iAttachmentModel; @@ -178,6 +200,8 @@ CGulIcon* iIcon; TBool iIsFetched; TCalenAttachmentStoreType iAttachmentStoreType; + RFile iFile; + TBool isSetFileHandle; }; #endif // CALENATTACHMENTINFO_H diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/inc/calenattachmentmodel.h --- a/calendarui/commonutils/inc/calenattachmentmodel.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/inc/calenattachmentmodel.h Mon Mar 22 17:23:21 2010 +0100 @@ -133,7 +133,7 @@ * @param aDataType mime type of the attachment */ IMPORT_C void AddAttachmentL( const TDesC& aFullName, const TDesC& aSystemFileName, TInt aSize, - TBool aFetched, const TDataType& aDataType ); + TBool aFetched, const TDataType& aDataType, RFile &aFile); /** * Deletes attachment from internal array. Notifies attachment model diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/src/calenattachmentinfo.cpp --- a/calendarui/commonutils/src/calenattachmentinfo.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/src/calenattachmentinfo.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -67,6 +67,10 @@ TRACE_ENTRY_POINT; TRACE_EXIT_POINT; delete iIcon; + if(isSetFileHandle) + { + iFile.Close(); + } } // ---------------------------------------------------------------------------- @@ -292,6 +296,46 @@ return iSystemFileName; } +// ---------------------------------------------------------------------------- +// CCalenAttachmentInfo::SetFileHandle +// +//Sets the file handle +// ---------------------------------------------------------------------------- +// +void CCalenAttachmentInfo::SetFileHandle(RFile& aFile) + { + TRACE_ENTRY_POINT; + iFile.Duplicate(aFile); + isSetFileHandle = ETrue; + TRACE_EXIT_POINT; + } + +// ---------------------------------------------------------------------------- +// CCalenAttachmentInfo::FileHandle +// +//Gets the file handle. +// ---------------------------------------------------------------------------- +// +void CCalenAttachmentInfo::FileHandle( RFile& aFile ) + { + TRACE_ENTRY_POINT; + + aFile.Duplicate( iFile ); + TRACE_EXIT_POINT; + } + +// ---------------------------------------------------------------------------- +// CCalenAttachmentInfo::IsFileHandleSet +// ---------------------------------------------------------------------------- +// +TBool CCalenAttachmentInfo::IsFileHandleSet() + { + TRACE_ENTRY_POINT; + TRACE_EXIT_POINT; + + return isSetFileHandle; + } + //end of file diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/src/calenattachmentmodel.cpp --- a/calendarui/commonutils/src/calenattachmentmodel.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/src/calenattachmentmodel.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -281,7 +281,8 @@ const TDesC& aSystemFileName, TInt aSize, TBool aFetched, - const TDataType& aDataType ) + const TDataType& aDataType, + RFile& aFile) { TRACE_ENTRY_POINT; @@ -294,6 +295,7 @@ aDataType, CCalenAttachmentInfo::ECalenAttachmentFetchedFromEntry ); CleanupStack::PushL(info); + info->SetFileHandle( aFile ); iAttachInfoArray.AppendL(info); CleanupStack::Pop(); isAttachmentModelCleared = EFalse; @@ -341,13 +343,16 @@ // Get the attachment file name TFileName fileName( attachmentInfo->FileName() ); + TParsePtrC fileNameParser(fileName); + TPtrC parsedFileName = fileNameParser.NameAndExt(); + // Confirm if needs to be deleted. CAknQueryDialog* confirmQuery = NULL; confirmQuery = CAknQueryDialog::NewL(); HBufC* stringBuf = NULL; stringBuf = StringLoader::LoadLC( R_QTN_QUERY_COMMON_CONF_REMOVE, - fileName, + parsedFileName, CEikonEnv::Static() ); confirmQuery->SetPromptL( *stringBuf ); if( EAknSoftkeyYes != @@ -482,17 +487,24 @@ RFile file; CCalenAttachmentInfo* attachmentInfo = iAttachInfoArray[aIndex]; - TParsePtrC fileNameParser(attachmentInfo->SystemFileName()); - CEikonEnv* eikonEnv = CEikonEnv::Static(); - RFs& fs = eikonEnv->FsSession(); - User::LeaveIfError(fs.ShareProtected()); - TInt err = file.Open( fs, attachmentInfo->SystemFileName(), - EFileRead|EFileShareReadersOnly); - if(err == KErrInUse) + if( attachmentInfo->IsFileHandleSet() ) + { + attachmentInfo->FileHandle(file); + } + else { - file.Close(); - User::LeaveIfError( file.Open( fs, attachmentInfo->SystemFileName(), - EFileRead|EFileShareReadersOnly) ); + TParsePtrC fileNameParser(attachmentInfo->SystemFileName()); + CEikonEnv* eikonEnv = CEikonEnv::Static(); + RFs& fs = eikonEnv->FsSession(); + User::LeaveIfError(fs.ShareProtected()); + TInt err = file.Open( fs, attachmentInfo->SystemFileName(), + EFileRead|EFileShareReadersOnly); + if(err == KErrInUse) + { + file.Close(); + User::LeaveIfError( file.Open( fs, attachmentInfo->SystemFileName(), + EFileRead|EFileShareReadersOnly) ); + } } TRACE_EXIT_POINT; @@ -593,7 +605,7 @@ fileHandle.Size(fileSize); AddAttachmentL( fileName, systemFileName, fileSize, - ETrue, fileMimeType ); + ETrue, fileMimeType, fileHandle); CleanupStack::PopAndDestroy(&fileHandle); } } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/src/calenattachmentutils.cpp --- a/calendarui/commonutils/src/calenattachmentutils.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/src/calenattachmentutils.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -50,7 +50,7 @@ const TInt KCalenTextFileNameLength = 20; _LIT( KTextFilenameExtension, ".txt" ); -_LIT( KCalenUnifiedEditorTempDir, "c:\\data\\caleneditor\\" ); +_LIT( KCalenUnifiedEditorTempDir, "c:\\private\\10005901\\caleneditor\\" ); _LIT8( KNotePadTextDataType, "text/plain" ); // ----------------------------------------------------------------------------- diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/src/calenentryutil.cpp --- a/calendarui/commonutils/src/calenentryutil.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/src/calenentryutil.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -1010,10 +1010,12 @@ TRACE_ENTRY_POINT; TBool allDayEvent(EFalse); + + TTimeIntervalDays differenceInTime = aStopTime.DaysFrom(aStartTime); // fix for AllDayEntry issue if( aStartTime == CalenDateUtils::BeginningOfDay( aStartTime ) && aStopTime == CalenDateUtils::BeginningOfDay( aStopTime ) - && aStartTime != aStopTime ) + && aStartTime != aStopTime && differenceInTime.Int() == 1) // fix for AllDayEntry issue { allDayEvent = ETrue; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/commonutils/src/calenviewutils.cpp --- a/calendarui/commonutils/src/calenviewutils.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/commonutils/src/calenviewutils.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -93,10 +93,19 @@ const TInt max = aMaxLength; TInt freeSpace = max - 2; // freeSpace is recalculated after each update - const TDesC& summary = aEntry.SummaryL(); - const TDesC& location = aEntry.LocationL(); + const TDesC& summary = aEntry.SummaryL(); + //const TDesC& location = aEntry.LocationL(); const TDesC& westernSeparator = KWesternSummaryLocationSeparator; const TDesC& arabicSeparator = KArabicSummaryLocationSeparator; + + //location string is not available for anniversary and todo + HBufC16* text = HBufC16::NewLC( max ); + TPtrC location = text->Des(); + if ( CCalEntry::ETodo != aEntry.EntryTypeL()) + { + location.Set(aEntry.LocationL()); + } + if(AknLayoutUtils::LayoutMirrored()) { @@ -150,7 +159,7 @@ freeSpace = max - aTarget.Length(); CleanupStack::PopAndDestroy(emptytext); } - + CleanupStack::PopAndDestroy( text ); TRACE_EXIT_POINT; } @@ -202,10 +211,11 @@ TTime startLocalTime = startTime.TimeLocalL(); TTime stopLocalTime = stopTime.TimeLocalL(); + TTimeIntervalDays differenceInTime = stopLocalTime.DaysFrom(startLocalTime); // fix for AllDayEntry issue if( startLocalTime != stopLocalTime && startLocalTime == CalenDateUtils::BeginningOfDay( startLocalTime ) && stopLocalTime == CalenDateUtils::BeginningOfDay( stopLocalTime ) && - startLocalTime != stopLocalTime ) + startLocalTime != stopLocalTime && differenceInTime.Int() == 1 ) // fix for AllDayEntry issue { allDayEvent = ETrue; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/data/calencommonui.rss --- a/calendarui/controller/data/calencommonui.rss Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/data/calencommonui.rss Mon Mar 22 17:23:21 2010 +0100 @@ -404,17 +404,17 @@ // //---------------------------------------------------- // -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_calen_tb_ext_qgn_indi_cale_tb_repeat_add +RESOURCE AVKON_BUTTON_STATE_EXTENSION r_calen_tb_ext_qgn_indi_cale_tb_today { bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiRepeatAdd; + bmbSkinIdMinor = EAknsMinorGenericQgnIndiCaleTbToday; //skin KAknsIIDQgnIndiRepeatAdd } -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_calen_tb_ext_qgn_indi_cale_tb_right +RESOURCE AVKON_BUTTON_STATE_EXTENSION r_calen_tb_ext_qgn_indi_cale_tb_changeview { bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiCaleTbRight; + bmbSkinIdMinor = EAknsMinorGenericQgnIndiCaleTbChangeview; //skin KAknsIIDQgnIndiCaleTbRight } @@ -467,9 +467,9 @@ { helptxt = qtn_cale_tb_today_tooltip; bmpfile = BITMAP_DIR"\\calendar.mif"; - bmpid = EMbmCalendarQgn_indi_repeat_add; - bmpmask = EMbmCalendarQgn_indi_repeat_add_mask; - extension = r_calen_tb_ext_qgn_indi_cale_tb_repeat_add; + bmpid = EMbmCalendarQgn_indi_cale_tb_today; + bmpmask = EMbmCalendarQgn_indi_cale_tb_today_mask; + extension = r_calen_tb_ext_qgn_indi_cale_tb_today; } }; }; @@ -482,9 +482,9 @@ { helptxt = qtn_cale_tb_change_view_tooltip; bmpFile = BITMAP_DIR"\\calendar.mif"; - bmpId = EMbmCalendarQgn_indi_cale_tb_right; - bmpMask = EMbmCalendarQgn_indi_cale_tb_right_mask ; - extension = r_calen_tb_ext_qgn_indi_cale_tb_right; + bmpId = EMbmCalendarQgn_indi_cale_tb_changeview; + bmpMask = EMbmCalendarQgn_indi_cale_tb_changeview_mask ; + extension = r_calen_tb_ext_qgn_indi_cale_tb_changeview; items = { TBAR_CTRL @@ -500,9 +500,9 @@ { helptxt = "dummy"; bmpfile = BITMAP_DIR"\\calendar.mif"; - bmpid = EMbmCalendarQgn_indi_cale_tb_right; - bmpmask = EMbmCalendarQgn_indi_cale_tb_right_mask; - extension = r_calen_tb_ext_qgn_indi_cale_tb_right; + bmpid = EMbmCalendarQgn_indi_cale_tb_changeview; + bmpmask = EMbmCalendarQgn_indi_cale_tb_changeview_mask; + extension = r_calen_tb_ext_qgn_indi_cale_tb_changeview; } }; }; @@ -532,9 +532,9 @@ { helptxt = qtn_cale_tb_change_view_tooltip; bmpFile = BITMAP_DIR"\\calendar.mif"; - bmpId = EMbmCalendarQgn_indi_cale_tb_right; - bmpMask = EMbmCalendarQgn_indi_cale_tb_right_mask ; - extension = r_calen_tb_ext_qgn_indi_cale_tb_right; + bmpId = EMbmCalendarQgn_indi_cale_tb_changeview; + bmpMask = EMbmCalendarQgn_indi_cale_tb_changeview_mask ; + extension = r_calen_tb_ext_qgn_indi_cale_tb_changeview; items = { TBAR_CTRL @@ -550,9 +550,9 @@ { helptxt = "dummy"; bmpfile = BITMAP_DIR"\\calendar.mif"; - bmpid = EMbmCalendarQgn_indi_cale_tb_right; - bmpmask = EMbmCalendarQgn_indi_cale_tb_right_mask; - extension = r_calen_tb_ext_qgn_indi_cale_tb_right; + bmpid = EMbmCalendarQgn_indi_cale_tb_changeview; + bmpmask = EMbmCalendarQgn_indi_cale_tb_changeview_mask; + extension = r_calen_tb_ext_qgn_indi_cale_tb_changeview; } }; }; @@ -573,9 +573,9 @@ { helptxt = qtn_cale_tb_today_tooltip; bmpfile = BITMAP_DIR"\\calendar.mif"; - bmpid = EMbmCalendarQgn_indi_repeat_add; - bmpmask = EMbmCalendarQgn_indi_repeat_add_mask; - extension = r_calen_tb_ext_qgn_indi_cale_tb_repeat_add; + bmpid = EMbmCalendarQgn_indi_cale_tb_today; + bmpmask = EMbmCalendarQgn_indi_cale_tb_today_mask; + extension = r_calen_tb_ext_qgn_indi_cale_tb_today; } }; }; @@ -1043,7 +1043,7 @@ } RESOURCE TBUF r_qtn_calen_info_cannot_open { buf = qtn_cale_drm_protected_attachment; } -RESOURCE TBUF r_qtn_calen_info_already_attached { buf = r_qtn_calen_info_already_attached; } +RESOURCE TBUF r_qtn_calen_info_already_attached { buf = qtn_calen_info_already_attached; } // --------------------------------------------------------- // diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calenalarmmanager.cpp --- a/calendarui/controller/src/calenalarmmanager.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calenalarmmanager.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -885,12 +885,16 @@ { TRACE_ENTRY_POINT; - for(TInt index=0;indexAppendL( sizeLimitParam ); - + CDesCArrayFlat* files = new( ELeave ) CDesC16ArrayFlat(1); CleanupStack::PushL(files); @@ -371,7 +366,7 @@ { // used for fetching media file and notes fetchOk = CCalenAttachmentUtils::FetchFileL( aFetchType, *files, - paramList, EFalse, EFalse, this ); + NULL, EFalse, EFalse, this ); if(fetchOk && iSelectedCommand == ECalenAddNote) @@ -379,7 +374,7 @@ AddAttachmentL(files->MdcaPoint(0)); } } - CleanupStack::PopAndDestroy( 2, paramList ); + CleanupStack::PopAndDestroy( files ); if(!fetchOk) { @@ -659,15 +654,12 @@ if(attachmentInfo->StoreType() == CCalenAttachmentInfo::ECalenNewAttachment) { TParsePtrC fileNameParser(attachmentInfo->SystemFileName()); - RFile fileHandle; - CEikonEnv* eikonEnv = CEikonEnv::Static(); - RFs& fs = eikonEnv->FsSession(); - User::LeaveIfError(fs.ShareProtected()); + RFile fileHandle = iAttachmentModel->GetAttachmentFileL(index); + CleanupClosePushL(fileHandle); TInt aSize; - TInt err = fileHandle.Open(fs, attachmentInfo->SystemFileName(), EFileWrite); TInt error = fileHandle.Size(aSize); HBufC8* data = HBufC8::NewLC(aSize); - TPtr8 fileData = data->Des(); + TPtr8 fileData = data->Des(); if (error == KErrNone) { TInt readingError = fileHandle.Read(fileData,aSize); @@ -681,14 +673,11 @@ attachment->SetLabelL(fileNameParser.NameAndExt()); // sets mime type for the attachment attachment->SetMimeTypeL(attachmentInfo->DataType().Des8()); - - CleanupClosePushL(fileHandle); - CleanupStack::PopAndDestroy(&fileHandle); entry->AddAttachmentL(*attachment); CleanupStack::Pop(attachment); } } - + CleanupStack::PopAndDestroy(&fileHandle); } } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calencmdlinelauncher.cpp --- a/calendarui/controller/src/calencmdlinelauncher.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calencmdlinelauncher.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -32,6 +32,7 @@ #include "calencontroller.h" // CCalenController #include "calencmdlineparser.h" // CCalCmdLineParser #include "CalenUid.h" +#include "calensend.h" // ================= MEMBER FUNCTIONS ======================= @@ -159,6 +160,14 @@ key.iCode = EKeyEscape; key.iModifiers = 0; CCoeEnv::Static()->SimulateKeyEventL( key, EEventKey ); + + // Break is added to close the messaging editor as the messagng editor is not + // consuming the escape key event. + if( iGlobalData->CalenSendL().IsMessagingEditorOpen() ) + { + break; + } + } // Interpret 8bit data as 16bit unicode data diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calencmdlineparser.cpp --- a/calendarui/controller/src/calencmdlineparser.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calencmdlineparser.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -407,14 +407,14 @@ { res = EStartTypeUidViewer; } + else if( des.Find(KCommandAlarmViewerNoSnooze) != KErrNotFound ) + { + res = EStartTypeUidAlarmViewerNoSnooze; + } else if( des.Find(KCommandAlarmViewer) != KErrNotFound ) { res = EStartTypeUidAlarmViewer; } - else if( des.Find(KCommandAlarmViewerNoSnooze) != KErrNotFound ) - { - res = EStartTypeUidAlarmViewerNoSnooze; - } else if( des.Find( KCommandUid ) != KErrNotFound ) { res = EStartTypeUid; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calencontextfwlistener.cpp --- a/calendarui/controller/src/calencontextfwlistener.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calencontextfwlistener.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -216,13 +216,16 @@ { TRACE_ENTRY_POINT; CCFContextObject* co = CCFContextObject::NewLC( aSource, aType, aValue ); - - const TInt err = iCFClient->PublishContext( *co ); - CleanupStack::PopAndDestroy( co ); + if(iCFClient) + { + const TInt err = iCFClient->PublishContext( *co ); + #ifdef _DEBUG RDebug::Print( _L("### PublishContext - err: %d"), err ); #endif User::LeaveIfError( err ); + } + CleanupStack::PopAndDestroy( co ); TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calencontroller.cpp --- a/calendarui/controller/src/calencontroller.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calencontroller.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -299,23 +299,55 @@ // ---------------------------------------------------------------------------- // CCalenController::~CCalenController() - { + { TRACE_ENTRY_POINT; + + if(iSystemTimeChangedMsgDelayer) + { + iSystemTimeChangedMsgDelayer->Cancel(); + delete iSystemTimeChangedMsgDelayer; + iSystemTimeChangedMsgDelayer = NULL; + } + if(iAttachmentData) + { + delete iAttachmentData; + iAttachmentData = NULL; + } + + if( iAlarmManager ) + { + delete iAlarmManager; + } + + if( iCustomisationManager ) + { + delete iCustomisationManager; + } + + if( iViewManager ) + { + delete iViewManager; + } + + if ( iSetting ) + { + iSetting->Release(); + } + + if( iActionUi ) + { + delete iActionUi; + } + if ( iServices ) { iServices->Release(); } - - delete iActionUi; - delete iNotifier; - delete iViewManager; - delete iStateMachine; - - if ( iSetting ) + if( iCmdLineLauncher ) { - iSetting->Release(); + delete iCmdLineLauncher; } if( iGlobalData ) @@ -323,31 +355,22 @@ iGlobalData->Release(); } - Dll::SetTls( NULL ); - - delete iCmdLineLauncher; - delete iCustomisationManager; + if( iNotifier ) + { + delete iNotifier; + } - if( iResourceFileOffset ) - { - CCoeEnv::Static()->DeleteResourceFile( iResourceFileOffset ); - } - //delete iMultipleDbmanager; - - if(iSystemTimeChangedMsgDelayer) + if( iStateMachine ) { - iSystemTimeChangedMsgDelayer->Cancel(); - delete iSystemTimeChangedMsgDelayer; - iSystemTimeChangedMsgDelayer = NULL; + delete iStateMachine; } + + if( iResourceFileOffset ) + { + CCoeEnv::Static()->DeleteResourceFile( iResourceFileOffset ); + } + Dll::SetTls( NULL ); - delete iAlarmManager; - - if(iAttachmentData) - { - delete iAttachmentData; - iAttachmentData = NULL; - } TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/caleneditui.cpp --- a/calendarui/controller/src/caleneditui.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/caleneditui.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -242,7 +242,7 @@ // by the user. else { - iController.BroadcastNotification( ECalenNotifyDialogClosed ); + iController.BroadcastNotification( ECalenNotifyEntrySendCancel ); } } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calenmultipledbui.cpp --- a/calendarui/controller/src/calenmultipledbui.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calenmultipledbui.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -56,6 +56,8 @@ const TInt KMultiDbMaxLength = 300; const TInt KBuffLength = 24; + + // ---------------------------------------------------------------------------- // CCalenMultipleDbListboxItemDrawer::CCalenMultipleDbListboxItemDrawer // Constructor @@ -484,7 +486,7 @@ HBufC* calendarFileName = calendarInfoList[currentIndex]->FileNameL().AllocLC(); if (!(calendarFileName->CompareF( - iController.Services().SessionL().DefaultFileNameL()))) + _L("c:Calendar1")))) { aMenuPane->DeleteMenuItem(ECalenCmdDelete); } @@ -862,7 +864,7 @@ HBufC* calendarFileName = calendarInfoList[currentIndex]->FileNameL().AllocLC(); if (calendarFileName->CompareF( - iController.Services().SessionL().DefaultFileNameL())) + _L("c:Calendar1"))) { DeleteItemL(); } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calennotifier.cpp --- a/calendarui/controller/src/calennotifier.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calennotifier.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -71,36 +71,6 @@ { TRACE_ENTRY_POINT; - // Stop database change notifications. - delete iDbChangeNotifier; - - // Stop ECom change notifications - delete iEComWatcher; - - // Release the global data - if( iGlobalData ) - { - // stop listening for calendar file change notifications - iGlobalData->CalSessionL().StopFileChangeNotification(); - iGlobalData->Release(); - } - - if( iSetting ) - { - iSetting->Release(); - } - - // Stop environment change notifications - if( iEnvChangeNotifier ) - { - iEnvChangeNotifier->Cancel(); - delete iEnvChangeNotifier; - } - - // Stop settings change notifications - delete iCenRepChangeNotifier; - delete iRepository; - // Reset the handler array. // Before we reset , close hashset for each handler for(TInt i = 0 ; i < iHandlers.Count() ; i++) @@ -111,13 +81,65 @@ iHandlers.Reset(); iBroadcastQueue.Reset(); - - - iAsyncCallback->Cancel(); - delete iAsyncCallback; - - delete iFilnameDeleted; - + if( iAsyncCallback ) + { + iAsyncCallback->Cancel(); + delete iAsyncCallback; + iAsyncCallback = NULL; + } + + if( iFilnameDeleted ) + { + delete iFilnameDeleted; + iFilnameDeleted = NULL; + } + + // Stop ECom change notifications + if( iEComWatcher ) + { + delete iEComWatcher; + iEComWatcher = NULL; + } + + // Stop database change notifications. + if( iDbChangeNotifier ) + { + delete iDbChangeNotifier; + iDbChangeNotifier = NULL; + } + + // Stop settings change notifications + if( iCenRepChangeNotifier ) + { + delete iCenRepChangeNotifier; + iCenRepChangeNotifier = NULL; + } + + if( iRepository ) + { + delete iRepository; + iRepository = NULL; + } + + // Stop environment change notifications + if( iEnvChangeNotifier ) + { + iEnvChangeNotifier->Cancel(); + delete iEnvChangeNotifier; + } + + if( iSetting ) + { + iSetting->Release(); + } + + // Release the global data + if( iGlobalData ) + { + // stop listening for calendar file change notifications + iGlobalData->CalSessionL().StopFileChangeNotification(); + iGlobalData->Release(); + } TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calenpopulationstate.cpp --- a/calendarui/controller/src/calenpopulationstate.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calenpopulationstate.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -99,6 +99,14 @@ RequestCallbackL( handler, aCommand ); cmdUsed = ETrue; } + + else if( ECalenEventView == cmd ) + { + SetCurrentState( aStateMachine, CCalenStateMachine::ECalenIdleState ); + ActivateCurrentStateL(aStateMachine); + RequestCallbackL( handler, aCommand ); + cmdUsed = ETrue; + } TRACE_EXIT_POINT; return cmdUsed; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calensendingstate.cpp --- a/calendarui/controller/src/calensendingstate.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calensendingstate.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -120,6 +120,7 @@ switch( aNotification ) { + case ECalenNotifyEntrySendCancel: case ECalenNotifyDialogClosed: // issued when send method query dialog is cancelled { // FIXME Should have a ECalenNotifyEntrySent? diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/controller/src/calenviewattachmentsdialog.cpp --- a/calendarui/controller/src/calenviewattachmentsdialog.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/controller/src/calenviewattachmentsdialog.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -251,7 +251,9 @@ TDataType datatype( attInfo.DataType() ); RFile file = iAttachmentModel.GetAttachmentFileL( index ); - OpenAttachmentViewerL(file, *this); + CleanupClosePushL(file); + OpenAttachmentViewerL(file, *this); + CleanupStack::PopAndDestroy(&file); } } break; @@ -1084,50 +1086,32 @@ // Opens a particular attachment // ----------------------------------------------------------------------------- // -void CCalenViewAttachmentsDialog::OpenAttachmentViewerL(RFile& file, MAknServerAppExitObserver& /*aExitObserver*/) +void CCalenViewAttachmentsDialog::OpenAttachmentViewerL(RFile& aFile, MAknServerAppExitObserver& /*aExitObserver*/) { TRACE_ENTRY_POINT; TBuf<250> fileName; - file.FullName(fileName); - TDataType datatype( CCalenAttachmentUtils::GetMimeTypeL(fileName) ); + aFile.FullName(fileName); + TDataType datatype( CCalenAttachmentUtils::GetMimeType(aFile) ); TInt ret = KErrNone; - file.Close(); - RFs& fs = CEikonEnv::Static()->FsSession(); - - //open the file, before giving it to Notepad. - TInt err1 = file.Open( fs, fileName, EFileRead | EFileShareReadersOnly ); - CleanupClosePushL( file ); - if(datatype == KNotePadTextDataType()) { - const TDesC& notepadTitle = _L("NotePad"); - // file handle ownership transferred. - - // 1.File handle from arg has problem for notes since junk chars are reported in file. - // so we use another file handle exclusively open with filename an pass to note viewer. - // - // 2.Pass ETrue to 4th param ExecFileViewerL , to guess encoding. - RFile fileForNotes; - TInt err = fileForNotes.Open( fs, fileName, EFileRead | EFileShareReadersOnly ); - CleanupClosePushL( fileForNotes ); - ret = CNotepadApi::ExecFileViewerL( fileForNotes, + const TDesC& notepadTitle = _L("NotePad"); + ret = CNotepadApi::ExecFileViewerL( aFile, ¬epadTitle, ETrue, ETrue, KCharacterSetIdentifierIso88591 ); - CleanupStack::PopAndDestroy(&fileForNotes); } else { //doc handler will open the other files (other than text file). - TRAP( ret, iDocHandler->OpenFileEmbeddedL( file, datatype ) ); + TRAP( ret, iDocHandler->OpenFileEmbeddedL( aFile, datatype ) ); } - CleanupStack::PopAndDestroy(&file); - + switch(ret) { case KErrNone: diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/editors/data/CalenDefaultEditorsData.rss --- a/calendarui/editors/data/CalenDefaultEditorsData.rss Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/editors/data/CalenDefaultEditorsData.rss Mon Mar 22 17:23:21 2010 +0100 @@ -1457,7 +1457,7 @@ }, LBUF { - txt = qtn_cale_item_birthday; + txt = qtn_cale_note_anniversary; }, LBUF { @@ -1656,4 +1656,42 @@ }; } +// --------------------------------------------------------- +// Description list query +// List query for the description types +// --------------------------------------------------------- +RESOURCE AVKON_MULTISELECTION_LIST_QUERY r_description_list_query + { + flags = EGeneralQueryFlags; + softkeys = R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT; + items = + { + AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE + { + control = AVKON_LIST_QUERY_CONTROL + { + listtype = EAknCtSinglePopupMenuListBox; + listbox = AVKON_LIST_QUERY_LIST + { + array_id = r_description_list_query_array; + }; + heading = text_softkey_select; + }; + } + }; + } + +// --------------------------------------------------------- +// Description list query array +// List of the description types +// --------------------------------------------------------- +RESOURCE ARRAY r_description_list_query_array + { + items= + { + LBUF { txt = qtn_cale_om_descript_new; }, + LBUF { txt = qtn_cale_om_descript_exist; } + }; + } + // End of File diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/editors/inc/CalenDescription.h --- a/calendarui/editors/inc/CalenDescription.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/editors/inc/CalenDescription.h Mon Mar 22 17:23:21 2010 +0100 @@ -181,6 +181,11 @@ */ HBufC* ExecTextViewerL(TInt& aStatus, const TDesC& aDescription); + /** + * Handles ECalenCmdAddDescription command + */ + TBool HandleAddDescriptionL(); + private: diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/editors/inc/calenunifiededitor.h --- a/calendarui/editors/inc/calenunifiededitor.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/editors/inc/calenunifiededitor.h Mon Mar 22 17:23:21 2010 +0100 @@ -494,6 +494,13 @@ */ void VerifyCollectionIdL(const TCalCollectionId aColId); + /* + * Return attachment names + * @param aAttachmentNames names of the attachments. + * @return HBufC + */ + void GetAttachmentNamesL(RPointerArray& aAttachmentNames); + protected: /** * From CEikDialog @@ -659,7 +666,10 @@ * */ void HideFieldsForEditSingleInstance(); - + + static TInt AsyncProcessCommandL(TAny* aThisPtr); + + private: /** * @var iEditedCalEntry @@ -812,7 +822,10 @@ * @var isReplaceLocation * @brief Flag to indicate whenter to replace the location or to append it */ - TBool isReplaceLocation; + TBool isReplaceLocation; + + CAsyncCallBack* iAsyncCallback; + }; /** diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/editors/src/CalenDescription.cpp --- a/calendarui/editors/src/CalenDescription.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/editors/src/CalenDescription.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -192,12 +192,6 @@ TBool processed = EFalse; switch( aCommandId ) { - case ECalenCmdShowDescription: - { - ShowL(); - processed = ETrue; - break; - } case ECalenCmdAddDescriptionNew: { AddNewL(); @@ -210,6 +204,28 @@ processed = ETrue; break; } + case ECalenCmdAddDescription: + { + if(EntryHasDescription()) + { + ShowL(); + processed = ETrue; + } + else + { + processed = HandleAddDescriptionL(); + } + + break; + } + + case ECalenCmdShowDescription: + { + + ShowL(); + processed = ETrue; + break; + } case ECalenCmdRemoveDescription: { RemoveL(); @@ -583,4 +599,46 @@ TRACE_EXIT_POINT; return desc; } + +// ---------------------------------------------------------------------------- +// CCalenDescription::HandleAddDescriptionL +// Handles the command ECalenAddDescription +// ---------------------------------------------------------------------------- +// +TBool CCalenDescription::HandleAddDescriptionL() + { + TRACE_ENTRY_POINT; + + TBool processed = EFalse; + TInt selectedIndex(0); + CAknListQueryDialog* dlg = new (ELeave) CAknListQueryDialog(&selectedIndex); + dlg->PrepareLC( R_DESCRIPTION_LIST_QUERY ); + + if(dlg->RunLD()) + { + switch(selectedIndex) + { + case 0: //ECalenCmdAddDescriptionNew + { +// iCheck = 0; + AddNewL(); + processed = ETrue; + break; + } + case 1: //ECalenCmdAddDescriptionExisting + { +// iCheck = 1; + AddMemoL(); + processed = ETrue; + break; + } + default: + break; + } + } + + TRACE_EXIT_POINT; + + return processed; + } // End of File diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/editors/src/CalenEntryUpdater.cpp --- a/calendarui/editors/src/CalenEntryUpdater.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/editors/src/CalenEntryUpdater.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -353,7 +353,9 @@ TCalenInstanceId instanceIdTemp = iServices.Context().InstanceId(); instanceIdTemp.iColId = colId; instanceIdTemp.iType = aEditedEntry.EntryTypeL(); - if( aNewInstanceStartDate.TimeLocalL() != aOrigInstanceDate.TimeLocalL() ) + + if (aNewInstanceStartDate.TimeLocalL() != aOrigInstanceDate.TimeLocalL() + || instanceIdTemp.iInstanceTime <= 0) { instanceIdTemp.iInstanceTime = aNewInstanceStartDate.TimeLocalL(); } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/editors/src/calenunifiededitor.cpp --- a/calendarui/editors/src/calenunifiededitor.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/editors/src/calenunifiededitor.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -165,7 +165,10 @@ delete iUnifiedEditorControl; iCollectionIds.Reset(); - + + iAsyncCallback->Cancel(); + delete iAsyncCallback; + TRACE_EXIT_POINT; } @@ -285,6 +288,11 @@ isReplaceLocation = EFalse; + + TCallBack callback(CCalenUnifiedEditor::AsyncProcessCommandL,this); + iAsyncCallback = new(ELeave) CAsyncCallBack(callback,CActive::EPriorityStandard); + + iIdle = CIdle::NewL( CActive::EPriorityUserInput ); iIdle->Start( TCallBack( KeyCallBack, this) ); iCoeEnv->AddFepObserverL( *this ); @@ -1242,7 +1250,22 @@ } break; } - + + case ECalenEditorDescription: + { +// CEikEdwin* edwin = static_cast( Control( focusControl ) ); +// if ( edwin && edwin->Text()->DocumentLength() == 0 ) +// { +// ProcessCommandL( ECalenCmdAddDescription ); +// } +// else +// { +// ProcessCommandL( ECalenCmdShowDescription ); +// } + iAsyncCallback->CallBack(); + break; + } + default: { break; @@ -1275,6 +1298,24 @@ } } + +TInt CCalenUnifiedEditor::AsyncProcessCommandL( TAny* aThisPtr ) + { + TInt focusControl( static_cast(aThisPtr)->IdOfFocusControl() ); + CEikEdwin* edwin = static_cast( static_cast(aThisPtr)->Control( focusControl ) ); + if ( edwin && edwin->Text()->DocumentLength() == 0 ) + { + static_cast(aThisPtr)->ProcessCommandL(ECalenCmdAddDescription); + } + else + { + static_cast(aThisPtr)->ProcessCommandL(ECalenCmdShowDescription); + } + + return 0; + } + + // ----------------------------------------------------------------------------- // CCalenUnifiedEditor::HandleResourceChange // Handdles the resource change @@ -1525,13 +1566,10 @@ TRACE_ENTRY_POINT; // Only insert if there is some summary (or location) - if( !EditorDataHandler().AreTextFieldsEmptyL() ) + // Changes done to remove Lunar calendar item from options menu + if( EditorDataHandler().AreTextFieldsEmptyL() ) { - // Insert Send menu item - iServices->OfferMenuPaneL( aResourceId, aMenuPane ); - } - else - {// Delete Send Menu item if exists + // Delete Send Menu item if exists aMenuPane->DeleteMenuItem( ECalenSend ); } @@ -1981,7 +2019,8 @@ if( startDate == CalenDateUtils::BeginningOfDay( startDate ) && endDate == CalenDateUtils::BeginningOfDay( endDate ) ) { - if( CCalEntry::EAppt == Edited().EntryType() && startDate != endDate ) + TTimeIntervalDays differenceInTime = endDate.DaysFrom(startDate); // fix for AllDayEntry issue + if( CCalEntry::EAppt == Edited().EntryType() && startDate != endDate && differenceInTime.Int() == 1 ) { Edited().SetEntryType( CCalEntry::EEvent ); } @@ -2217,6 +2256,13 @@ CleanupStack::PushL( entry ); iEditedCalEntry.DescriptionL(); // make sure entry is fully loaded + if (CCalEntry::ETodo == entry->EntryTypeL())//check the entry type + {//remove GeoValue and Location info from a ToDo as ToDo does specs + //does not include them + iEditedCalEntry.ClearGeoValueL(); + iEditedCalEntry.SetLocationL(KNullDesC); + } + entry->CopyFromL(iEditedCalEntry, CCalEntry::EDontCopyId); entry->DescriptionL(); // make sure entry is fully copied @@ -2236,11 +2282,7 @@ } } - if(!IsCreatingNewEntry() && !iEditorDataHandler->IsCalendarEditedL()) - { - iServices->EntryViewL(iEditorDataHandler->PreviousDbCollectionId()) - ->DeleteL(*iOriginalCalEntry); - } + TInt saveErr( KErrNone ); if( aForcedExit ) @@ -2266,8 +2308,12 @@ newInstanceEndDate, iUnifiedEditorControl->GetCalendarNameForEntryL() ) ); } + + //Agenda server is taking care of deleting the old entry when only entrytype is changing + //so calendar is not deleting the old entry here, when only entry type has changed. if(!IsCreatingNewEntry() && iEditorDataHandler->IsCalendarEditedL()) { + iServices->GetAttachmentData()->Reset(); iServices->EntryViewL(iEditorDataHandler->PreviousDbCollectionId()) ->DeleteL(*iOriginalCalEntry); } @@ -3050,9 +3096,9 @@ if( attachmentCount ) { RPointerArray attachmentNames; - Edited().AttachmentNamesL(attachmentNames); - TInt attachmentCount = attachmentNames.Count(); - TInt attachmentLength(0); + GetAttachmentNamesL(attachmentNames); + attachmentCount = attachmentNames.Count(); + TInt attachmentLength(0); for( TInt index =0; index0) @@ -3304,6 +3350,7 @@ void CCalenUnifiedEditor::AddPictureL(TInt isNotFirstTime) { TRACE_ENTRY_POINT; + return; // Instantiate CMapIconPicture object 300x300 twips in size CEikRichTextEditor* locationControl = static_cast(Control(ECalenEditorPlace)); @@ -3340,6 +3387,33 @@ TRACE_EXIT_POINT; } + +// ----------------------------------------------------------------------------- +// CCalenUnifiedEditor::AttachmentNamesL +// Provides all the attachments names +// ----------------------------------------------------------------------------- +// +void CCalenUnifiedEditor::GetAttachmentNamesL(RPointerArray& aAttachmentNames) + { + TInt attachCount = iServices->GetAttachmentData()->NumberOfItems(); + if( attachCount ) + { + RPointerArray attachmentInfoList; + iServices->GetAttachmentData()->GetAttachmentListL(attachmentInfoList); + for( TInt index =0; indexFileName() ); + HBufC* attachmentName = HBufC::NewL(fileNameParser.NameAndExt().Length()); + attachmentName->Des().Copy(fileNameParser.NameAndExt()); + aAttachmentNames.Append(attachmentName); + } + } + else + { + Edited().AttachmentNamesL(aAttachmentNames); + } + } // ----------------------------------------------------------------------------- // CMapsIconPicture::CMapsIconPicture diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/globaldata/BWINS/calenglobaldatau.def --- a/calendarui/globaldata/BWINS/calenglobaldatau.def Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/globaldata/BWINS/calenglobaldatau.def Mon Mar 22 17:23:21 2010 +0100 @@ -1,37 +1,38 @@ EXPORTS ?EntryViewL@CCalenGlobalData@@QAEPAVCCalEntryView@@E@Z @ 1 NONAME ; class CCalEntryView * CCalenGlobalData::EntryViewL(unsigned char) - ?InstanceViewL@CCalenGlobalData@@QAEPAVCCalInstanceView@@XZ @ 2 NONAME ; class CCalInstanceView * CCalenGlobalData::InstanceViewL(void) - ?InitializeGlobalDataL@CCalenGlobalData@@QAEXXZ @ 3 NONAME ; void CCalenGlobalData::InitializeGlobalDataL(void) - ??1CCalenSend@@UAE@XZ @ 4 NONAME ; CCalenSend::~CCalenSend(void) - ?DisplaySendMenuItemL@CCalenSend@@QAEXAAVCEikMenuPane@@H@Z @ 5 NONAME ; void CCalenSend::DisplaySendMenuItemL(class CEikMenuPane &, int) - ?ResetKeyEventQueue@CCalenGlobalData@@QAEXXZ @ 6 NONAME ; void CCalenGlobalData::ResetKeyEventQueue(void) - ?GetQueuedKeyEvent@CCalenGlobalData@@QAEHAAUTKeyEvent@@AAW4TEventCode@@@Z @ 7 NONAME ; int CCalenGlobalData::GetQueuedKeyEvent(struct TKeyEvent &, enum TEventCode &) - ?CalSessionL@CCalenGlobalData@@QAEAAVCCalSession@@ABVTDesC16@@@Z @ 8 NONAME ; class CCalSession & CCalenGlobalData::CalSessionL(class TDesC16 const &) - ?MRMailboxUtilsL@CCalenGlobalData@@QAEAAVCMRMailboxUtils@@XZ @ 9 NONAME ; class CMRMailboxUtils & CCalenGlobalData::MRMailboxUtilsL(void) - ?CalenSendL@CCalenGlobalData@@QAEAAVCCalenSend@@XZ @ 10 NONAME ; class CCalenSend & CCalenGlobalData::CalenSendL(void) - ?ConstructFileMappingL@CCalenGlobalData@@AAEHXZ @ 11 NONAME ; int CCalenGlobalData::ConstructFileMappingL(void) - ?NewL@CCalenGlobalData@@SAPAV1@AAVMCalProgressCallBack@@PAVMCalenContextChangeObserver@@@Z @ 12 NONAME ; class CCalenGlobalData * CCalenGlobalData::NewL(class MCalProgressCallBack &, class MCalenContextChangeObserver *) - ?InstanceL@CCalenGlobalData@@SAPAV1@XZ @ 13 NONAME ; class CCalenGlobalData * CCalenGlobalData::InstanceL(void) - ?NewL@CCalenSend@@SAPAV1@HAAVCCalSession@@@Z @ 14 NONAME ; class CCalenSend * CCalenSend::NewL(int, class CCalSession &) - ?RemoveCalendarL@CCalenGlobalData@@QAEXABVTDesC16@@@Z @ 15 NONAME ; void CCalenGlobalData::RemoveCalendarL(class TDesC16 const &) - ?EntryViewExists@CCalenGlobalData@@QAEHXZ @ 16 NONAME ; int CCalenGlobalData::EntryViewExists(void) - ?QueueKeyEvent@CCalenGlobalData@@QAEHABUTKeyEvent@@W4TEventCode@@@Z @ 17 NONAME ; int CCalenGlobalData::QueueKeyEvent(struct TKeyEvent const &, enum TEventCode) - ?InstanceViewL@CCalenGlobalData@@QAEPAVCCalInstanceView@@ABV?$RArray@H@@@Z @ 18 NONAME ; class CCalInstanceView * CCalenGlobalData::InstanceViewL(class RArray const &) - ?AttemptToRetrieveDefaultMailboxL@CCalenGlobalData@@QAEHAAUTMailboxInfo@CMRMailboxUtils@@@Z @ 19 NONAME ; int CCalenGlobalData::AttemptToRetrieveDefaultMailboxL(struct CMRMailboxUtils::TMailboxInfo &) - ?CalSessionL@CCalenGlobalData@@QAEAAVCCalSession@@XZ @ 20 NONAME ; class CCalSession & CCalenGlobalData::CalSessionL(void) - ?GetAllCalendarInfoL@CCalenGlobalData@@QAEXAAV?$RPointerArray@VCCalCalendarInfo@@@@@Z @ 21 NONAME ; void CCalenGlobalData::GetAllCalendarInfoL(class RPointerArray &) - ?InstanceL@CCalenGlobalData@@SAPAV1@AAVCCalSession@@@Z @ 22 NONAME ; class CCalenGlobalData * CCalenGlobalData::InstanceL(class CCalSession &) - ?InterimUtilsL@CCalenGlobalData@@QAEAAVCCalenInterimUtils2@@XZ @ 23 NONAME ; class CCalenInterimUtils2 & CCalenGlobalData::InterimUtilsL(void) - ?MeetingRequestUtilsL@CCalenGlobalData@@QAEAAVCMRUtils@@XZ @ 24 NONAME ; class CMRUtils & CCalenGlobalData::MeetingRequestUtilsL(void) - ?DisplaySendCascadeMenuL@CCalenSend@@QAEXXZ @ 25 NONAME ; void CCalenSend::DisplaySendCascadeMenuL(void) - ?SendAsVCalendarL@CCalenSend@@QAEXHAAVCCalEntry@@@Z @ 26 NONAME ; void CCalenSend::SendAsVCalendarL(int, class CCalEntry &) - ?GetCalFileNameForCollectionId@CCalenGlobalData@@QAEABVTDesC16@@E@Z @ 27 NONAME ; class TDesC16 const & CCalenGlobalData::GetCalFileNameForCollectionId(unsigned char) - ?EntryViewL@CCalenGlobalData@@QAEPAVCCalEntryView@@XZ @ 28 NONAME ; class CCalEntryView * CCalenGlobalData::EntryViewL(void) - ?Instance@CCalenGlobalData@@SAPAV1@XZ @ 29 NONAME ; class CCalenGlobalData * CCalenGlobalData::Instance(void) - ?UpdateCalendarL@CCalenGlobalData@@QAEXPAVCCalCalendarInfo@@@Z @ 30 NONAME ; void CCalenGlobalData::UpdateCalendarL(class CCalCalendarInfo *) - ?Release@CCalenGlobalData@@QAEXXZ @ 31 NONAME ; void CCalenGlobalData::Release(void) - ?AddCalendarL@CCalenGlobalData@@QAEXPAVCCalCalendarInfo@@@Z @ 32 NONAME ; void CCalenGlobalData::AddCalendarL(class CCalCalendarInfo *) - ?Context@CCalenGlobalData@@QAEAAVMCalenContext@@XZ @ 33 NONAME ; class MCalenContext & CCalenGlobalData::Context(void) - ?CanSendL@CCalenSend@@QAEHH@Z @ 34 NONAME ; int CCalenSend::CanSendL(int) - ?RemoveDeadCalendarsL@CCalenGlobalData@@QAEXXZ @ 35 NONAME ; void CCalenGlobalData::RemoveDeadCalendarsL(void) + ?IsMessagingEditorOpen@CCalenSend@@QAEHXZ @ 2 NONAME ; int CCalenSend::IsMessagingEditorOpen(void) + ?CalSessionL@CCalenGlobalData@@QAEAAVCCalSession@@ABVTDesC16@@@Z @ 3 NONAME ; class CCalSession & CCalenGlobalData::CalSessionL(class TDesC16 const &) + ?MRMailboxUtilsL@CCalenGlobalData@@QAEAAVCMRMailboxUtils@@XZ @ 4 NONAME ; class CMRMailboxUtils & CCalenGlobalData::MRMailboxUtilsL(void) + ?ConstructFileMappingL@CCalenGlobalData@@AAEHXZ @ 5 NONAME ; int CCalenGlobalData::ConstructFileMappingL(void) + ?InstanceL@CCalenGlobalData@@SAPAV1@XZ @ 6 NONAME ; class CCalenGlobalData * CCalenGlobalData::InstanceL(void) + ?NewL@CCalenSend@@SAPAV1@HAAVCCalSession@@@Z @ 7 NONAME ; class CCalenSend * CCalenSend::NewL(int, class CCalSession &) + ?RemoveCalendarL@CCalenGlobalData@@QAEXABVTDesC16@@@Z @ 8 NONAME ; void CCalenGlobalData::RemoveCalendarL(class TDesC16 const &) + ?QueueKeyEvent@CCalenGlobalData@@QAEHABUTKeyEvent@@W4TEventCode@@@Z @ 9 NONAME ; int CCalenGlobalData::QueueKeyEvent(struct TKeyEvent const &, enum TEventCode) + ?InstanceViewL@CCalenGlobalData@@QAEPAVCCalInstanceView@@ABV?$RArray@H@@@Z @ 10 NONAME ; class CCalInstanceView * CCalenGlobalData::InstanceViewL(class RArray const &) + ?CalSessionL@CCalenGlobalData@@QAEAAVCCalSession@@XZ @ 11 NONAME ; class CCalSession & CCalenGlobalData::CalSessionL(void) + ?InstanceL@CCalenGlobalData@@SAPAV1@AAVCCalSession@@@Z @ 12 NONAME ; class CCalenGlobalData * CCalenGlobalData::InstanceL(class CCalSession &) + ?InterimUtilsL@CCalenGlobalData@@QAEAAVCCalenInterimUtils2@@XZ @ 13 NONAME ; class CCalenInterimUtils2 & CCalenGlobalData::InterimUtilsL(void) + ?DisplaySendCascadeMenuL@CCalenSend@@QAEXXZ @ 14 NONAME ; void CCalenSend::DisplaySendCascadeMenuL(void) + ?RemoveDeadCalendarsL@CCalenGlobalData@@QAEXXZ @ 15 NONAME ; void CCalenGlobalData::RemoveDeadCalendarsL(void) + ?UpdateCalendarL@CCalenGlobalData@@QAEXPAVCCalCalendarInfo@@@Z @ 16 NONAME ; void CCalenGlobalData::UpdateCalendarL(class CCalCalendarInfo *) + ?Context@CCalenGlobalData@@QAEAAVMCalenContext@@XZ @ 17 NONAME ; class MCalenContext & CCalenGlobalData::Context(void) + ?InstanceViewL@CCalenGlobalData@@QAEPAVCCalInstanceView@@XZ @ 18 NONAME ; class CCalInstanceView * CCalenGlobalData::InstanceViewL(void) + ?InitializeGlobalDataL@CCalenGlobalData@@QAEXXZ @ 19 NONAME ; void CCalenGlobalData::InitializeGlobalDataL(void) + ??1CCalenSend@@UAE@XZ @ 20 NONAME ; CCalenSend::~CCalenSend(void) + ?DisplaySendMenuItemL@CCalenSend@@QAEXAAVCEikMenuPane@@H@Z @ 21 NONAME ; void CCalenSend::DisplaySendMenuItemL(class CEikMenuPane &, int) + ?ResetKeyEventQueue@CCalenGlobalData@@QAEXXZ @ 22 NONAME ; void CCalenGlobalData::ResetKeyEventQueue(void) + ?GetQueuedKeyEvent@CCalenGlobalData@@QAEHAAUTKeyEvent@@AAW4TEventCode@@@Z @ 23 NONAME ; int CCalenGlobalData::GetQueuedKeyEvent(struct TKeyEvent &, enum TEventCode &) + ?CalenSendL@CCalenGlobalData@@QAEAAVCCalenSend@@XZ @ 24 NONAME ; class CCalenSend & CCalenGlobalData::CalenSendL(void) + ?NewL@CCalenGlobalData@@SAPAV1@AAVMCalProgressCallBack@@PAVMCalenContextChangeObserver@@@Z @ 25 NONAME ; class CCalenGlobalData * CCalenGlobalData::NewL(class MCalProgressCallBack &, class MCalenContextChangeObserver *) + ?EntryViewExists@CCalenGlobalData@@QAEHXZ @ 26 NONAME ; int CCalenGlobalData::EntryViewExists(void) + ?AttemptToRetrieveDefaultMailboxL@CCalenGlobalData@@QAEHAAUTMailboxInfo@CMRMailboxUtils@@@Z @ 27 NONAME ; int CCalenGlobalData::AttemptToRetrieveDefaultMailboxL(struct CMRMailboxUtils::TMailboxInfo &) + ?GetAllCalendarInfoL@CCalenGlobalData@@QAEXAAV?$RPointerArray@VCCalCalendarInfo@@@@@Z @ 28 NONAME ; void CCalenGlobalData::GetAllCalendarInfoL(class RPointerArray &) + ?MeetingRequestUtilsL@CCalenGlobalData@@QAEAAVCMRUtils@@XZ @ 29 NONAME ; class CMRUtils & CCalenGlobalData::MeetingRequestUtilsL(void) + ?SendAsVCalendarL@CCalenSend@@QAEXHAAVCCalEntry@@@Z @ 30 NONAME ; void CCalenSend::SendAsVCalendarL(int, class CCalEntry &) + ?GetCalFileNameForCollectionId@CCalenGlobalData@@QAEABVTDesC16@@E@Z @ 31 NONAME ; class TDesC16 const & CCalenGlobalData::GetCalFileNameForCollectionId(unsigned char) + ?Instance@CCalenGlobalData@@SAPAV1@XZ @ 32 NONAME ; class CCalenGlobalData * CCalenGlobalData::Instance(void) + ?EntryViewL@CCalenGlobalData@@QAEPAVCCalEntryView@@XZ @ 33 NONAME ; class CCalEntryView * CCalenGlobalData::EntryViewL(void) + ?Release@CCalenGlobalData@@QAEXXZ @ 34 NONAME ; void CCalenGlobalData::Release(void) + ?AddCalendarL@CCalenGlobalData@@QAEXPAVCCalCalendarInfo@@@Z @ 35 NONAME ; void CCalenGlobalData::AddCalendarL(class CCalCalendarInfo *) + ?CanSendL@CCalenSend@@QAEHH@Z @ 36 NONAME ; int CCalenSend::CanSendL(int) diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/globaldata/eabi/calenglobaldatau.def --- a/calendarui/globaldata/eabi/calenglobaldatau.def Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/globaldata/eabi/calenglobaldatau.def Mon Mar 22 17:23:21 2010 +0100 @@ -1,41 +1,42 @@ EXPORTS _ZN10CCalenSend16SendAsVCalendarLEiR9CCalEntry @ 1 NONAME _ZN10CCalenSend20DisplaySendMenuItemLER12CEikMenuPanei @ 2 NONAME - _ZN10CCalenSend23DisplaySendCascadeMenuLEv @ 3 NONAME - _ZN10CCalenSend4NewLEiR11CCalSession @ 4 NONAME - _ZN10CCalenSend8CanSendLEi @ 5 NONAME - _ZN10CCalenSendD0Ev @ 6 NONAME - _ZN10CCalenSendD1Ev @ 7 NONAME - _ZN10CCalenSendD2Ev @ 8 NONAME - _ZN16CCalenGlobalData10CalenSendLEv @ 9 NONAME - _ZN16CCalenGlobalData10EntryViewLEh @ 10 NONAME - _ZN16CCalenGlobalData10EntryViewLEv @ 11 NONAME - _ZN16CCalenGlobalData11CalSessionLERK7TDesC16 @ 12 NONAME - _ZN16CCalenGlobalData11CalSessionLEv @ 13 NONAME - _ZN16CCalenGlobalData12AddCalendarLEP16CCalCalendarInfo @ 14 NONAME - _ZN16CCalenGlobalData13InstanceViewLERK6RArrayIiE @ 15 NONAME - _ZN16CCalenGlobalData13InstanceViewLEv @ 16 NONAME - _ZN16CCalenGlobalData13InterimUtilsLEv @ 17 NONAME - _ZN16CCalenGlobalData13QueueKeyEventERK9TKeyEvent10TEventCode @ 18 NONAME - _ZN16CCalenGlobalData15EntryViewExistsEv @ 19 NONAME - _ZN16CCalenGlobalData15MRMailboxUtilsLEv @ 20 NONAME - _ZN16CCalenGlobalData15RemoveCalendarLERK7TDesC16 @ 21 NONAME - _ZN16CCalenGlobalData15UpdateCalendarLEP16CCalCalendarInfo @ 22 NONAME - _ZN16CCalenGlobalData17GetQueuedKeyEventER9TKeyEventR10TEventCode @ 23 NONAME - _ZN16CCalenGlobalData18ResetKeyEventQueueEv @ 24 NONAME - _ZN16CCalenGlobalData19GetAllCalendarInfoLER13RPointerArrayI16CCalCalendarInfoE @ 25 NONAME - _ZN16CCalenGlobalData20MeetingRequestUtilsLEv @ 26 NONAME - _ZN16CCalenGlobalData21ConstructFileMappingLEv @ 27 NONAME - _ZN16CCalenGlobalData21InitializeGlobalDataLEv @ 28 NONAME - _ZN16CCalenGlobalData29GetCalFileNameForCollectionIdEh @ 29 NONAME - _ZN16CCalenGlobalData32AttemptToRetrieveDefaultMailboxLERN15CMRMailboxUtils12TMailboxInfoE @ 30 NONAME - _ZN16CCalenGlobalData4NewLER20MCalProgressCallBackP27MCalenContextChangeObserver @ 31 NONAME - _ZN16CCalenGlobalData7ContextEv @ 32 NONAME - _ZN16CCalenGlobalData7ReleaseEv @ 33 NONAME - _ZN16CCalenGlobalData8InstanceEv @ 34 NONAME - _ZN16CCalenGlobalData9InstanceLER11CCalSession @ 35 NONAME - _ZN16CCalenGlobalData9InstanceLEv @ 36 NONAME - _ZTI17CCalenContextImpl @ 37 NONAME - _ZTV17CCalenContextImpl @ 38 NONAME - _ZN16CCalenGlobalData20RemoveDeadCalendarsLEv @ 39 NONAME + _ZN10CCalenSend21IsMessagingEditorOpenEv @ 3 NONAME + _ZN10CCalenSend23DisplaySendCascadeMenuLEv @ 4 NONAME + _ZN10CCalenSend4NewLEiR11CCalSession @ 5 NONAME + _ZN10CCalenSend8CanSendLEi @ 6 NONAME + _ZN10CCalenSendD0Ev @ 7 NONAME + _ZN10CCalenSendD1Ev @ 8 NONAME + _ZN10CCalenSendD2Ev @ 9 NONAME + _ZN16CCalenGlobalData10CalenSendLEv @ 10 NONAME + _ZN16CCalenGlobalData10EntryViewLEh @ 11 NONAME + _ZN16CCalenGlobalData10EntryViewLEv @ 12 NONAME + _ZN16CCalenGlobalData11CalSessionLERK7TDesC16 @ 13 NONAME + _ZN16CCalenGlobalData11CalSessionLEv @ 14 NONAME + _ZN16CCalenGlobalData12AddCalendarLEP16CCalCalendarInfo @ 15 NONAME + _ZN16CCalenGlobalData13InstanceViewLERK6RArrayIiE @ 16 NONAME + _ZN16CCalenGlobalData13InstanceViewLEv @ 17 NONAME + _ZN16CCalenGlobalData13InterimUtilsLEv @ 18 NONAME + _ZN16CCalenGlobalData13QueueKeyEventERK9TKeyEvent10TEventCode @ 19 NONAME + _ZN16CCalenGlobalData15EntryViewExistsEv @ 20 NONAME + _ZN16CCalenGlobalData15MRMailboxUtilsLEv @ 21 NONAME + _ZN16CCalenGlobalData15RemoveCalendarLERK7TDesC16 @ 22 NONAME + _ZN16CCalenGlobalData15UpdateCalendarLEP16CCalCalendarInfo @ 23 NONAME + _ZN16CCalenGlobalData17GetQueuedKeyEventER9TKeyEventR10TEventCode @ 24 NONAME + _ZN16CCalenGlobalData18ResetKeyEventQueueEv @ 25 NONAME + _ZN16CCalenGlobalData19GetAllCalendarInfoLER13RPointerArrayI16CCalCalendarInfoE @ 26 NONAME + _ZN16CCalenGlobalData20MeetingRequestUtilsLEv @ 27 NONAME + _ZN16CCalenGlobalData20RemoveDeadCalendarsLEv @ 28 NONAME + _ZN16CCalenGlobalData21ConstructFileMappingLEv @ 29 NONAME + _ZN16CCalenGlobalData21InitializeGlobalDataLEv @ 30 NONAME + _ZN16CCalenGlobalData29GetCalFileNameForCollectionIdEh @ 31 NONAME + _ZN16CCalenGlobalData32AttemptToRetrieveDefaultMailboxLERN15CMRMailboxUtils12TMailboxInfoE @ 32 NONAME + _ZN16CCalenGlobalData4NewLER20MCalProgressCallBackP27MCalenContextChangeObserver @ 33 NONAME + _ZN16CCalenGlobalData7ContextEv @ 34 NONAME + _ZN16CCalenGlobalData7ReleaseEv @ 35 NONAME + _ZN16CCalenGlobalData8InstanceEv @ 36 NONAME + _ZN16CCalenGlobalData9InstanceLER11CCalSession @ 37 NONAME + _ZN16CCalenGlobalData9InstanceLEv @ 38 NONAME + _ZTI17CCalenContextImpl @ 39 NONAME + _ZTV17CCalenContextImpl @ 40 NONAME diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/globaldata/inc/calensend.h --- a/calendarui/globaldata/inc/calensend.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/globaldata/inc/calensend.h Mon Mar 22 17:23:21 2010 +0100 @@ -69,6 +69,11 @@ * Send an entry a vCal through sendui */ IMPORT_C void SendAsVCalendarL(TInt aCommand, CCalEntry& aEntry); + + /** + * check whether messaging editor is open or not. + */ + IMPORT_C TBool IsMessagingEditorOpen(); private: // utility functions /** @@ -89,6 +94,7 @@ CSendUi* iSendUi; TInt iSendAsCmdId; TUid iSelectedMtmUid; + TBool iISEditorOpen; CArrayFixFlat* iSendMtmsToDim; CCalSession& iSession; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/globaldata/src/calenglobaldata.cpp --- a/calendarui/globaldata/src/calenglobaldata.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/globaldata/src/calenglobaldata.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -54,6 +54,8 @@ _LIT( KExtCalendar,"Ext calendar" ); const TInt KBuffLength = 24; +_LIT(KPhoneCalendarName,"PhoneCalendar"); + // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -1469,9 +1471,17 @@ { TRACE_ENTRY_POINT; - for(TInt index=0;indexFileNameL(); + TPtrC calendarNamePtr = iCalendarInfoList[index]->NameL(); + + //We dont want default calendar PhoneCalendar tobe shown in calendarui. + if(fileNamePtr.CompareF(KCalendarDatabaseFilePath) + && calendarNamePtr.CompareF(KPhoneCalendarName)) + { + aCalendarInfoList.AppendL(iCalendarInfoList[index]); + } } TRACE_EXIT_POINT; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/globaldata/src/calensend.cpp --- a/calendarui/globaldata/src/calensend.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/globaldata/src/calensend.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -262,7 +262,9 @@ CMessageData* messageData = CMessageData::NewL(); CleanupStack::PushL( messageData ); messageData->SetBodyTextL( text ); + iISEditorOpen = ETrue; iSendUi->CreateAndSendMessageL( iSelectedMtmUid, messageData, KMsgBioUidVCalendar, ETrue ); + iISEditorOpen = EFalse; CleanupStack::PopAndDestroy(); // messagedata CleanupStack::PopAndDestroy(bufCnv); } @@ -273,6 +275,23 @@ } // --------------------------------------------------------- +// CCalenSend::IsMessagingEditorOpen +// Prcess "Send As" for attachment file +// (other items were commented in a header). +// --------------------------------------------------------- +// + +EXPORT_C TBool CCalenSend::IsMessagingEditorOpen() + { + TRACE_ENTRY_POINT; + + return iISEditorOpen; + + TRACE_EXIT_POINT; + } + + +// --------------------------------------------------------- // CCalenSend::DoSendAsAttachmentFileL // Prcess "Send As" for attachment file // (other items were commented in a header). @@ -285,7 +304,9 @@ CMessageData* messageData = CMessageData::NewL(); CleanupStack::PushL( messageData ); messageData->AppendAttachmentL( aFilename.FullName() ); + iISEditorOpen = ETrue; iSendUi->CreateAndSendMessageL( iSelectedMtmUid, messageData, KMsgBioUidVCalendar, ETrue ); + iISEditorOpen = EFalse; CleanupStack::PopAndDestroy(); // messagedata TRACE_EXIT_POINT; @@ -304,7 +325,9 @@ CMessageData* messageData = CMessageData::NewL(); CleanupStack::PushL( messageData ); messageData->AppendAttachmentHandleL(aHandle); + iISEditorOpen = ETrue; iSendUi->CreateAndSendMessageL( iSelectedMtmUid, messageData, KMsgBioUidVCalendar, ETrue ); + iISEditorOpen = EFalse; CleanupStack::PopAndDestroy( messageData ); TRACE_EXIT_POINT; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/group/bld.inf --- a/calendarui/group/bld.inf Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/group/bld.inf Mon Mar 22 17:23:21 2010 +0100 @@ -42,6 +42,7 @@ ../rom/CalenGlobalData.iby CORE_APP_LAYER_IBY_EXPORT_PATH(calenglobaldata.iby) ../rom/CalenSvr.iby CORE_APP_LAYER_IBY_EXPORT_PATH(calensvr.iby) ../rom/CalenSettingsUi.iby CORE_APP_LAYER_IBY_EXPORT_PATH(calensettingsui.iby) +../rom/CalenSvrResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(CalenSvrResources.iby) ../rom/calenregionalutil.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(calenregionalutil.iby) diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/loc/calendar.loc --- a/calendarui/loc/calendar.loc Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/loc/calendar.loc Mon Mar 22 17:23:21 2010 +0100 @@ -2366,7 +2366,7 @@ //l: list_form_graphic_pane_t1 //w: //r: 9.2 -#define qtn_cale_item_birthday "Birthday" +#define qtn_cale_item_anniversary "Anniversary" //d: "To-Do" text for EventType field pop-up in calendar editor //l: list_form_graphic_pane_t1 @@ -2623,5 +2623,10 @@ //w: //r: 9.2 #define qtn_cale_db_friends "Friends" + +//d:Wait note text in to-do view. +//l:popup_note_wait_window +// +#define qtn_todo_wait_updating_status_notes "Updating status" // End of File diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/multicaluidialog/src/caldblistboxitemdrawer.cpp --- a/calendarui/multicaluidialog/src/caldblistboxitemdrawer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/multicaluidialog/src/caldblistboxitemdrawer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -105,7 +105,7 @@ // Ggetting the layout for clolourstrips for list dialog TAknWindowComponentLayout tempLayout = - AknLayoutScalable_Apps::list_cale_time_pane_g6( aItemIndex ) ; + AknLayoutScalable_Apps::list_cale_time_pane_g6( aItemIndex - iListBox->TopItemIndex() ) ; TAknLayoutRect colourstrips; colourstrips.LayoutRect( actualItemRect, tempLayout.LayoutLine() ); diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/multicaluidialog/src/multicaluidialogimpl.cpp --- a/calendarui/multicaluidialog/src/multicaluidialogimpl.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/multicaluidialog/src/multicaluidialogimpl.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -208,9 +208,17 @@ { TRACE_ENTRY_POINT; - if(iDesArray && iListBox) + if(iListBox) { - return; + iListBox->Reset(); + delete iListBox; + iListBox = NULL; + } + + if(iDesArray) + { + delete iDesArray; + iDesArray = NULL; } iDesArray = new (ELeave) CDesCArrayFlat(5); @@ -329,26 +337,29 @@ TRgb nonSkinColor = AKN_LAF_COLOR(215); CFbsBitmap* bitmap = NULL; CFbsBitmap* mask = NULL; - + TAknsItemID KSearchCheckboxOff; + TAknsItemID KSearchCheckboxOn; switch( aIndex ) { case ECalenListDbIconUnMarked: { - icon = CreateBitmapSkinnedIconL( - KAknsIIDQgnPropCheckboxOn, + KSearchCheckboxOff.Set( 0x0A8461F4, 1 ); + icon = CreateBitmapSkinnedIconL( + KSearchCheckboxOff, iIconFile, EMbmMulticaluidialogQgn_prop_checkbox_off, - EMbmMulticaluidialogQgn_prop_checkbox_off_mask ); - } + EMbmMulticaluidialogQgn_prop_checkbox_off_mask ); + } break; case ECalenListDbIconMarked: { - icon = CreateBitmapSkinnedIconL( - KAknsIIDQgnPropCheckboxOn, + KSearchCheckboxOn.Set( 0x0A8461F4, 2 ); + icon = CreateBitmapSkinnedIconL( + KSearchCheckboxOn, iIconFile, EMbmMulticaluidialogQgn_prop_checkbox_on, - EMbmMulticaluidialogQgn_prop_checkbox_on_mask ); + EMbmMulticaluidialogQgn_prop_checkbox_on_mask ); } break; @@ -375,12 +386,8 @@ CAknIconArray* icons = new(ELeave) CAknIconArray( iconCount ); CleanupStack::PushL( icons ); icons->SetReserveL( iconCount ); - - for( TInt i=0; iAppendL( GetIconL( ECalenListDbIconMarked ) ); - icons->AppendL( GetIconL( ECalenListDbIconUnMarked ) ); - } + icons->AppendL( GetIconL( ECalenListDbIconMarked ) ); + icons->AppendL( GetIconL( ECalenListDbIconUnMarked ) ); CleanupStack::Pop( icons ); TRACE_EXIT_POINT; return icons; @@ -709,7 +716,7 @@ else { iListBox->SetRect( rect ); - } + } } TRACE_EXIT_POINT; @@ -766,10 +773,7 @@ SetTitlePaneL( ETrue ); ConstructListL(); - UpdateListboxL(); - //UpdateCbaL(); - - + UpdateListboxL(); TInt orientation = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; if( AknLayoutUtils::PenEnabled() ) { @@ -842,14 +846,12 @@ void CMultiCalUiDialogImpl::HandleResourceChange(TInt aType) { TRACE_ENTRY_POINT; - + CAknDialog::HandleResourceChange( aType ); if ( aType == KAknsMessageSkinChange || aType == KEikDynamicLayoutVariantSwitch ) { - SizeChanged(); - TRAP_IGNORE(UpdateListboxL()); - } + SizeChanged(); + } - CAknDialog::HandleResourceChange( aType ); TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/multicaluidialog/src/multicaluidialogmodel.cpp --- a/calendarui/multicaluidialog/src/multicaluidialogmodel.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/multicaluidialog/src/multicaluidialogmodel.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -26,6 +26,8 @@ #include "multicaluidialogmodel.h" #include "calendarui_debug.h" +_LIT( KCalendarDatabaseFilePath, "c:calendar" ); + // ---------------------------------------------------------------------------- // CMultiCalUiDialogModel::CMultiCalUiDialogModel // Constructor @@ -148,7 +150,7 @@ { iCalendarStatus.Append(0); - if (!index) //First create the default session + /* if (!index) //First create the default session { const TPtrC name = iCalendarInfoList[index]->FileNameL(); defaultSession->OpenL(name); @@ -158,7 +160,7 @@ iCalEntryViewArray.Append(entryView); CleanupStack::Pop(entryView); } - else + else*/ { CCalSession* session = CCalSession::NewL(*defaultSession); CleanupStack::PushL(session); @@ -234,19 +236,19 @@ TRACE_ENTRY_POINT //Create copy for entires. RPointerArray copyEntries; - CreateCopyL(copyEntries); - //Store the copy into calendars for (TInt i = 0; i < iCalEntryViewArray.Count(); i++) { if (iCalendarStatus[i]) { - TInt numSuccess; + TInt numSuccess; + CreateCopyL(copyEntries); iCalEntryViewArray[i]->StoreL(copyEntries, numSuccess); + copyEntries.ResetAndDestroy(); } } - copyEntries.ResetAndDestroy(); + TRACE_EXIT_POINT; } @@ -305,7 +307,15 @@ CCalCalendarInfo* calendarInfo = calIter->FirstL(); while (calendarInfo) { - aCalendarInfoList.AppendL(calendarInfo); + TPtrC fileNamePtr = calendarInfo->FileNameL(); + if(fileNamePtr.CompareF(KCalendarDatabaseFilePath)) + { + aCalendarInfoList.AppendL(calendarInfo); + } + else + { + delete calendarInfo; + } calendarInfo = calIter->NextL(); } CleanupStack::PopAndDestroy(calIter); diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/organizerplugin/aiagendapluginengine/src/CalenEngine.cpp --- a/calendarui/organizerplugin/aiagendapluginengine/src/CalenEngine.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/organizerplugin/aiagendapluginengine/src/CalenEngine.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -188,7 +188,7 @@ for(CCalCalendarInfo* calendarInfo = calIter->FirstL() ; calendarInfo != NULL ; calendarInfo = calIter->NextL() ) { - if(calendarInfo->Enabled()) + if(calendarInfo->Enabled() && calendarInfo->FileNameL().CompareF(_L("c:Calendar"))) { TCalInfo calInfo; calInfo.iFileName = calendarInfo->FileNameL(); diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/regionalplugins/Thai/src/CalenThaiPlugin.cpp --- a/calendarui/regionalplugins/Thai/src/CalenThaiPlugin.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/regionalplugins/Thai/src/CalenThaiPlugin.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -25,6 +25,11 @@ #include #include +#include +#include +#include + + #include "CalenThaiPlugin.h" @@ -130,6 +135,14 @@ aLabel.SetFont( labelFont ); aLabel.SetLabelAlignment(ELayoutAlignCenter); aLabel.SetTextL( iThaiYearText ); + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + TRgb color; + TInt error = AknsUtils::GetCachedColor(skin, color, + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6); + if (error == KErrNone) + { + aLabel.OverrideColorL(EColorLabelText, color); + } TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/regionalplugins/lunarVietnamese/src/calenlunarvietnameseplugin.cpp --- a/calendarui/regionalplugins/lunarVietnamese/src/calenlunarvietnameseplugin.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/regionalplugins/lunarVietnamese/src/calenlunarvietnameseplugin.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -32,6 +32,10 @@ #include #include +#include +#include +#include + #include "calendarui_debug.h" #include "calenlunarvietnameseplugin.h" #include "calenlunarvietnameselocalizer.h" @@ -203,6 +207,16 @@ aLabel.SetLabelAlignment(ELayoutAlignCenter); aLabel.SetTextL( *newLinedText); + // Query the text colour based on the theme and update the label text + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + TRgb color; + TInt error = AknsUtils::GetCachedColor(skin, color, + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6); + if (error == KErrNone) + { + aLabel.OverrideColorL(EColorLabelText, color); + } + CleanupStack::PopAndDestroy( newLinedText ); CleanupStack::PopAndDestroy( lineWidths ); CleanupStack::PopAndDestroy( textLines ); @@ -227,6 +241,16 @@ aLabel.SetLabelAlignment(ELayoutAlignCenter); aLabel.SetTextL( iExtraRowText ); + // Query the text colour based on the theme and update the label text + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + TRgb color; + TInt error = AknsUtils::GetCachedColor(skin, color, + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6); + if (error == KErrNone) + { + aLabel.OverrideColorL(EColorLabelText, color); + } + TRACE_EXIT_POINT; } @@ -673,10 +697,15 @@ // ----------------------------------------------------------------------------- // void CCalenPluginLabel::HandlePointerEventL(const TPointerEvent& - /*aPointerEvent*/) + aPointerEvent) { TRACE_ENTRY_POINT; - iPlugin.ShowDetailsL(); + + if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + iPlugin.ShowDetailsL(); + } + TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp --- a/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -31,6 +31,10 @@ #include #include +#include +#include +#include + #include "calendarui_debug.h" #include "CalenLunarChinesePlugin.h" #include "calenlunarpanic.h" @@ -155,7 +159,8 @@ // CCalenLunarChinesePlugin::SetLabelContentExtraL // ----------------------------------------------------------------------------- // -void CCalenLunarChinesePlugin::SetLabelContentExtraL( CEikLabel& aLabel ,TRect& aRect) +void CCalenLunarChinesePlugin::SetLabelContentExtraL(CEikLabel& aLabel, + TRect& aRect) { TRACE_ENTRY_POINT; @@ -171,37 +176,45 @@ CleanupStack::PushL( lineWidths ); TInt maxWidth = aRect.Size().iWidth; - lineWidths->AppendL( maxWidth ); - - const CFont* fontLabel = AknLayoutUtils::FontFromId(EAknLogicalFontPrimarySmallFont,NULL); - - HBufC* visualText = AknBidiTextUtils::ConvertToVisualAndWrapToArrayWholeTextL( - iExtraRowText, - *lineWidths, - *fontLabel, - *textLines); - - if(textLines->Count() < 3 && textLines->Count() > 0) - { - TInt nH = textLines->Count(); - aRect.iBr.iY = aRect.iBr.iY * nH; - } - - HBufC* newLinedText = HBufC::NewLC( iExtraRowText.Length() + 4); - - for(TInt i = 0 ; i < textLines->Count();i++) - { - newLinedText->Des().Append(textLines->At(i)); - newLinedText->Des().Append( KFieldSeparator ); - } - + lineWidths->AppendL(maxWidth); + + const CFont* fontLabel = AknLayoutUtils::FontFromId( + EAknLogicalFontPrimarySmallFont, NULL); + + HBufC* visualText = + AknBidiTextUtils::ConvertToVisualAndWrapToArrayWholeTextL( + iExtraRowText, *lineWidths, *fontLabel, *textLines); + + if (textLines->Count() < 3 && textLines->Count() > 0) + { + TInt nH = textLines->Count(); + aRect.iBr.iY = aRect.iBr.iY * nH; + } + + HBufC* newLinedText = HBufC::NewLC(iExtraRowText.Length() + 4); + + for (TInt i = 0; i < textLines->Count(); i++) + { + newLinedText->Des().Append(textLines->At(i)); + newLinedText->Des().Append(KFieldSeparator); + } + aLabel.UseLogicalToVisualConversion(ETrue); aLabel.SetLabelAlignment(ELayoutAlignCenter); aLabel.SetTextL( *newLinedText); - CleanupStack::PopAndDestroy( newLinedText ); - CleanupStack::PopAndDestroy( lineWidths ); - CleanupStack::PopAndDestroy( textLines ); + // Query the text colour based on the theme and update the label text + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + TRgb color; + TInt error = AknsUtils::GetCachedColor(skin, color, + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6); + if (error == KErrNone) + { + aLabel.OverrideColorL(EColorLabelText, color); + } + CleanupStack::PopAndDestroy(newLinedText); + CleanupStack::PopAndDestroy(lineWidths); + CleanupStack::PopAndDestroy(textLines); delete visualText; TRACE_EXIT_POINT; @@ -211,7 +224,8 @@ // CCalenLunarChinesePlugin::SetLabelContentL // ----------------------------------------------------------------------------- // -void CCalenLunarChinesePlugin::SetLabelContentL( CEikLabel& aLabel, const TRect& /*aRect*/ ) +void CCalenLunarChinesePlugin::SetLabelContentL(CEikLabel& aLabel, + const TRect& /*aRect*/) { TRACE_ENTRY_POINT; TRect nullRect(0,0,0,0); @@ -222,6 +236,16 @@ aLabel.SetLabelAlignment(ELayoutAlignCenter); aLabel.SetTextL( iExtraRowText ); + // Query the text colour based on the theme and update the label text + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + TRgb color; + TInt error = AknsUtils::GetCachedColor(skin, color, + KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6); + if (error == KErrNone) + { + aLabel.OverrideColorL(EColorLabelText, color); + } + TRACE_EXIT_POINT; } @@ -671,12 +695,17 @@ // ----------------------------------------------------------------------------- // void CCalenPluginLabel::HandlePointerEventL(const TPointerEvent& - /*aPointerEvent*/) - { - TRACE_ENTRY_POINT; - iPlugin.ShowDetailsL(); - TRACE_EXIT_POINT; - } + aPointerEvent) + { + TRACE_ENTRY_POINT; + + if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + iPlugin.ShowDetailsL(); + } + + TRACE_EXIT_POINT; + } //EOF diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/rom/CalenSvr.iby --- a/calendarui/rom/CalenSvr.iby Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/rom/CalenSvr.iby Mon Mar 22 17:23:21 2010 +0100 @@ -22,7 +22,7 @@ file=ABI_DIR\BUILD_DIR\CalenSvrClient.dll SHARED_LIB_DIR\CalenSvrClient.dll file=ABI_DIR\BUILD_DIR\CalenSvr.exe PROGRAMS_DIR\CalenSvr.exe -data=DATAZ_\RESOURCE_FILES_DIR\CalenSvrMissedAlarmManagerResource.rsc RESOURCE_FILES_DIR\CalenSvrMissedAlarmManagerResource.rsc + #endif // CALENSVR_IBY diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/rom/CalenSvrResources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/rom/CalenSvrResources.iby Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2002 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: IBY file for Calendar Server. +* +*/ + + + +#ifndef CALENSVRRESOURCES_IBY +#define CALENSVRRESOURCES_IBY + +data=DATAZ_\RESOURCE_FILES_DIR\CalenSvrMissedAlarmManagerResource.rsc RESOURCE_FILES_DIR\CalenSvrMissedAlarmManagerResource.rsc + +#endif // CALENSVRRESOURCES_IBY + +// End of File \ No newline at end of file diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/server/CalenSvr/src/CalenServer.cpp --- a/calendarui/server/CalenSvr/src/CalenServer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/server/CalenSvr/src/CalenServer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -51,6 +51,7 @@ const TInt KComma( ',' ); +_LIT(KPhoneCalendarName,"PhoneCalendar"); // ================= MEMBER FUNCTIONS ======================= // @@ -337,6 +338,7 @@ { TBuf calendarFileName; calendarFileName.Append(KCalendarDatabaseFilePath); + calendarInfo->SetEnabled(EFalse); TRAPD(error,session->CreateCalFileL(calendarFileName,*calendarInfo)); User::LeaveIfError(error); } @@ -377,10 +379,14 @@ BaflUtils::NearestLanguageFile( fsSession, resourceFileName ); - // __PRINT(" resourcefileName : %s" , resourceFileName ); - resourceFile.OpenL(fsSession, resourceFileName ); resourceFile.ConfirmSignatureL( 0 ); + + //Phone calendar + HBufC* phoneCalendarBuffer = KPhoneCalendarName().AllocLC(); + aCalendarNames.AppendL(phoneCalendarBuffer->Des()); + CleanupStack::PopAndDestroy( phoneCalendarBuffer ); + // personal HBufC8* personalBuffer = resourceFile.AllocReadLC( R_CALE_DB_PERSONAL ); const TPtrC16 ptrPBuffer(( TText16*) personalBuffer->Ptr(), @@ -465,6 +471,10 @@ TPtrC marker = aRepositoryBuffer; TInt calendarColorOffset; + + //For phone calendar + aCalendarColors.Append(KRgbRed.Value()); + while ((calendarColorOffset = marker.Locate(TChar(KComma))) != KErrNotFound) { diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/settings/settingsui/group/calensettingsui.mmp --- a/calendarui/settings/settingsui/group/calensettingsui.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/settings/settingsui/group/calensettingsui.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -76,6 +76,7 @@ LIBRARY eikcoctl.lib LIBRARY eikctl.lib LIBRARY euser.lib +LIBRARY featdiscovery.lib LIBRARY featmgr.lib LIBRARY filelist.lib LIBRARY hlplch.lib @@ -85,6 +86,7 @@ LIBRARY caf.lib LIBRARY cafutils.lib LIBRARY drmhelper.lib +LIBRARY MediaFileList.lib // File logging LIBRARY flogger.lib diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/settings/settingsui/src/CalenFileListSettingItem.cpp --- a/calendarui/settings/settingsui/src/CalenFileListSettingItem.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/settings/settingsui/src/CalenFileListSettingItem.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -35,11 +35,14 @@ #include #include +#include // CFeatureDiscovery +#include // KCRUidProfileEngine / KProEngRingingToneMaxSize // PathInfo for concatenating resource #include // KDC_RESOURCE_DIR definition #include +#include // ============================ MEMBER FUNCTIONS =============================== @@ -214,6 +217,8 @@ { TRACE_ENTRY_POINT; +#define NEW_MEDIA_FILE_LIST_API +#ifndef NEW_MEDIA_FILE_LIST_API // Create instance of FileList using new FileList API CFLDFileListContainer* filelist = CFLDFileListContainer::NewLC(); @@ -226,8 +231,74 @@ // Make sure that iOffToneFile is passed, in case iToneFile happens to be KNullDesC ASSERT(!IsEmpty(iToneFile)); + // Do not show items over the file size limit, if configured. + if ( CFeatureDiscovery::IsFeatureSupportedL( + KFeatureIdFfLimitedMessageAndAlarmToneSize ) ) + { + // Max file size allowed (in KB). 0 == no limit. + TInt fileSizeLimit = 0; + CRepository* profilesCenRep = CRepository::NewLC( KCRUidProfileEngine ); + + // Reading the repository should not fail, but if it does, the default + // value we have for the file size limit is acceptable. + profilesCenRep->Get( KProEngRingingToneMaxSize, fileSizeLimit ); // codescanner::crepository + CleanupStack::PopAndDestroy( profilesCenRep ); + + if ( fileSizeLimit > 0 ) + { + filelist->SetMaxFileSize( fileSizeLimit * KKilo ); + } + } TBool ok( filelist->LaunchL( iToneFile, *iPopupHeader ) ); + CleanupStack::PopAndDestroy( filelist ); // filelist +#else + CMediaFileList* list = CMediaFileList::NewL(); + CleanupStack::PushL(list); + + + TInt nullItem = KErrNotFound; + + // off + list->SetNullItemL(*iToneOffText, iOffToneFile, + CMediaFileList::EMediaFileTypeAudio, + CMediaFileList::ENullItemIconOff); + + // default tone + list->SetNullItemL(*iToneDefaultText, iDefaultToneFile, + CMediaFileList::EMediaFileTypeAudio, + CMediaFileList::ENullItemIconOff); + + list->SetAttrL(CMediaFileList::EAttrExcludeFolder, CMediaFileList::EMediaFileTypeVideo); + list->SetAttrL(CMediaFileList::EAttrAutomatedType, CDRMHelper::EAutomatedTypeCalendarAlarm); + + // Do not show items over the file size limit, if configured. + if ( CFeatureDiscovery::IsFeatureSupportedL( + KFeatureIdFfLimitedMessageAndAlarmToneSize ) ) + { + // Max file size allowed (in KB). 0 == no limit. + TInt fileSizeLimit = 0; + CRepository* profilesCenRep = CRepository::NewLC( KCRUidProfileEngine ); + + // Reading the repository should not fail, but if it does, the default + // value we have for the file size limit is acceptable. + profilesCenRep->Get( KProEngRingingToneMaxSize, fileSizeLimit ); // codescanner::crepository + CleanupStack::PopAndDestroy( profilesCenRep ); + + if ( fileSizeLimit > 0 ) + { + list->SetAttrL( CMediaFileList::EAttrFileSize, fileSizeLimit ); + } + } + // Make sure that iOffToneFile is passed, in case iToneFile happens to be KNullDesC + ASSERT(!IsEmpty(iToneFile)); + + TBool ok = !list->ShowMediaFileListL(&iToneFile, &nullItem, + NULL, NULL ); + + + CleanupStack::PopAndDestroy(list); +#endif if( ok ) { iAlarmSoundChanged = ETrue; @@ -235,7 +306,6 @@ UpdateListBoxTextL(); } - CleanupStack::PopAndDestroy( filelist ); // filelist TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/settings/settingsui/src/calensettingsuicontainer.cpp --- a/calendarui/settings/settingsui/src/calensettingsuicontainer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/settings/settingsui/src/calensettingsuicontainer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -1010,7 +1010,12 @@ // Open edit dialog if EAknCmdOpen, invert the value otherwise aPageStatus = ETrue; iPageStatus = aPageStatus; - item->EditItemL( aCommand == EAknCmdOpen ); + // for week title only two options available + // so let's toggle instead of opening setting page + if( item->Identifier() != ECalenWeekTitleItemId ) + { + item->EditItemL( aCommand == EAknCmdOpen ); + } aPageStatus = EFalse; iPageStatus = aPageStatus; TBool isNativeSettingChange = ETrue; @@ -1039,8 +1044,13 @@ iSetting->SetDefaultView( TUid::Uid( iDefView ) ); break; case ECalenWeekTitleItemId: - item->StoreL(); - iSetting->SetWeekTitle( static_cast( iWeekTitle ) ); + //item->StoreL(); + // toggling option done here + iSetting->SetWeekTitle( static_cast( iWeekTitle ) == EWeekTitleNumber ? + EWeekTitleDuration : EWeekTitleNumber ); + iWeekTitle = iSetting->WeekTitle(); + item->LoadL(); + item->UpdateListBoxTextL(); break; case ECalenDefaultMailboxId: item->StoreL(); diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/inc/calencontainer.h --- a/calendarui/views/inc/calencontainer.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/inc/calencontainer.h Mon Mar 22 17:23:21 2010 +0100 @@ -44,6 +44,7 @@ class CEikLabel; class MCalenContext; class CCalenContainerLayoutManager; +class MCalenPreview; class MAknNaviDecoratorObserver; @@ -241,6 +242,10 @@ */ void UpdateTodayToolbarItemL(); + /** + * returns previewpane pointer + */ + virtual const MCalenPreview* PreviewPane(){return NULL; }; private: // New functions /** * Return number of icons needed to be displayed diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/inc/calendayview.h --- a/calendarui/views/inc/calendayview.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/inc/calendayview.h Mon Mar 22 17:23:21 2010 +0100 @@ -124,12 +124,7 @@ TUid Id() const; - /** - * Enable the copy functionality for the entries - *.to single aur multiple calendars. - */ - - void CopyToCalendarsL(); + private: // From MEikMenuObserver /** diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/inc/calenmonthcontainer.h --- a/calendarui/views/inc/calenmonthcontainer.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/inc/calenmonthcontainer.h Mon Mar 22 17:23:21 2010 +0100 @@ -127,6 +127,11 @@ void HidePopup(); void RedrawPreviewPane(); + + /** + * returns previewpane pointer + */ + const MCalenPreview* PreviewPane(); private: // New function @@ -364,8 +369,7 @@ // View specific data, references to views data TTime& iDate; TTime iOldFirstDayOfGrid; - TBool iChangeMonth; - TBool iNativePreview; + TBool iChangeMonth; }; #endif //CALENMONTHCONT_H diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/inc/calennativeview.h --- a/calendarui/views/inc/calennativeview.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/inc/calennativeview.h Mon Mar 22 17:23:21 2010 +0100 @@ -262,6 +262,12 @@ * @see MEikMenuObserver. */ void DynInitMenuBarL( TInt aResourceId, CEikMenuBar* aMenuBar ); + + /** + * @brief copies the calendar entry to respective calendar. + */ + void CopyToCalendarsL(); + protected: // New functions /** @@ -347,6 +353,18 @@ * From CAknView View deactivation handler */ void DoDeactivate(); + + /** + * @brief asynchronous call back for copy to calendar functionality. + * added because of err VGGG-82X8TV . + * + */ + static TInt AsyncCopyToCalendarsL(TAny* aThisPtr); + + /** + * @brief called from AsyncCopyToCalendarsL + */ + void CopyEntryToCalendarsL(); protected: // Data CCalenContainer* iContainer; @@ -380,6 +398,8 @@ * @brief ETrue if some command handling is under progress, EFalse otherwise */ TBool iCommandProcessing; + + CAsyncCallBack* iAsyncCallback; }; #endif // CALENNATIVEVIEW_H diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/inc/calentodoview.h --- a/calendarui/views/inc/calentodoview.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/inc/calentodoview.h Mon Mar 22 17:23:21 2010 +0100 @@ -216,12 +216,7 @@ **/ TInt ShowMarkedTodosDeleteConfirmationQueryL( TInt aCount ); - /** - * Enable the functionlity of copying entries to one or more calendars. - **/ - - void CopyToCalendarsL(); - + private: /** * Static callback function diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/inc/calenweekcontainer.h --- a/calendarui/views/inc/calenweekcontainer.h Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/inc/calenweekcontainer.h Mon Mar 22 17:23:21 2010 +0100 @@ -178,6 +178,11 @@ * Cleanup instances */ void CleanupInstances(); + + /** + * returns previewpane pointer + */ + const MCalenPreview* PreviewPane(); public: /** @@ -433,8 +438,7 @@ TBool iTopRowDefault; TBool iRow; - TBool iValidDay; - TBool iNativePreview; + TBool iValidDay; }; #endif //CALENWEEKCONT_H diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calencontainer.cpp --- a/calendarui/views/src/calencontainer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calencontainer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -826,29 +826,24 @@ TRect CCalenContainer::ReducePreview( TRect aRect ) const { TRACE_ENTRY_POINT; - if (UsePreview() ) - { - // Find the application window - TRect screenRect; - TAknLayoutRect application_window; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, - screenRect ); - application_window.LayoutRect( - screenRect, - AknLayoutScalable_Apps::application_window().LayoutLine() ); - - // Find the size of the main pane when the preview is valid. - TAknLayoutRect main_pane; - - TInt orientation = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; - - main_pane.LayoutRect( - application_window.Rect(), - AknLayoutScalable_Apps::main_pane( orientation + 10 ).LayoutLine() ); + + // Find the application window + TRect screenRect; + TAknLayoutRect application_window; + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, screenRect); + application_window.LayoutRect(screenRect, + AknLayoutScalable_Apps::application_window().LayoutLine()); - aRect.SetWidth( main_pane.Rect().Width() ); - aRect.SetHeight( main_pane.Rect().Height() ); - } + // Find the size of the main pane when the preview is valid. + TAknLayoutRect main_pane; + + TInt orientation = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; + + main_pane.LayoutRect(application_window.Rect(), + AknLayoutScalable_Apps::main_pane(orientation + 10).LayoutLine()); + + aRect.SetWidth(main_pane.Rect().Width()); + aRect.SetHeight(main_pane.Rect().Height()); TRACE_EXIT_POINT; return aRect; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calencontainerlayoutmanager.cpp --- a/calendarui/views/src/calencontainerlayoutmanager.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calencontainerlayoutmanager.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -144,12 +144,8 @@ // See if preview pane is available CheckPreviewL(); - // If no preview pane, check for an info bar - if ( !iLayoutFlags.IsSet( ECalenContainerPreview )) - { - CheckInfobarL(); - } - + CheckInfobarL(); + TRACE_EXIT_POINT; } @@ -163,10 +159,9 @@ TRACE_ENTRY_POINT; TRect previewRect = iContainer.PreviewRectL(); - if ( !iContainer.PreviewRectL().IsEmpty() ) + if (!iContainer.PreviewRectL().IsEmpty() && iContainer.PreviewPane()) { - iLayoutFlags.Set( ECalenContainerPreview ); - iLayoutFlags.Clear( ECalenContainerInfobar ); + iLayoutFlags.Set( ECalenContainerPreview ); } @@ -200,8 +195,7 @@ { iInfobar = infoBarControl; // If the infobar exists, set the container window and activate. - iLayoutFlags.Set( ECalenContainerInfobar ); - iLayoutFlags.Clear( ECalenContainerPreview ); + iLayoutFlags.Set( ECalenContainerInfobar ); iInfobar->SetContainerWindowL( iContainer ); } } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calendaycontainer.cpp --- a/calendarui/views/src/calendaycontainer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calendaycontainer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -1438,24 +1438,25 @@ return; } - if(aPointerEvent.iType == TPointerEvent::EButton1Up) + if(aPointerEvent.iType == TPointerEvent::EButton1Down) { control = iLayoutManager->ControlOrNull(); if(control) { if(control->Rect().Contains(aPointerEvent.iPosition)) { - control->HandlePointerEventL(aPointerEvent); + control->HandlePointerEventL(aPointerEvent); + return; } } + if (iListBox->Model()->NumberOfItems() <= 0) + { + iView->HandleCommandL(ECalenCmdOpenMskDialog); + return; + } } - TInt pointerIndex(-1); - if(iListBox->Model()->NumberOfItems() <= 0) - { - iView->HandleCommandL(ECalenCmdOpenMskDialog); - return; - } + TInt pointerIndex(-1); // Single click integration if ( aPointerEvent.iType == TPointerEvent::EButton1Down && iListBox->View()->XYPosToItemIndex( diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calendaylistboxview.cpp --- a/calendarui/views/src/calendaylistboxview.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calendaylistboxview.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -234,7 +234,7 @@ TInt nextCell(LastLineOfCell(iCurrentItemIndex) + 1); if ( !( iItemDrawer->Flags() - & CTextListItemDrawer::EDisableHighlight ) + & CTextListItemDrawer::ESingleClickDisabledHighlight ) && aItemIndex < nextCell ) { highlight = ETrue; diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calendayview.cpp --- a/calendarui/views/src/calendayview.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calendayview.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -503,52 +503,6 @@ TRACE_EXIT_POINT; return KUidCalenDayView; } - -// ---------------------------------------------------------------------------- -// CCalenDayView::CopytoCalendarsL -// From CAknView -// Return the UID of the day view -// (other items were commented in a header) -// ---------------------------------------------------------------------------- -// -void CCalenDayView::CopyToCalendarsL() - { - - // Hide the toolbar before we display settings menu - MCalenToolbar* toolbar = iServices.ToolbarOrNull(); - if(toolbar) - { - toolbar->SetToolbarVisibilityL(EFalse); - } - iSPUtils->UnderLineTitleText( EFalse ); - MCalenContext& context = iServices.Context(); - TCalLocalUid instanceId = context.InstanceId().iEntryLocalUid; - - CCalEntry* entry = iServices.EntryViewL(context.InstanceId().iColId)->FetchL(instanceId); - CleanupStack::PushL(entry); - - RPointerArray calentryArray; - calentryArray.Append( entry ); - - // Launch the Calendar List Dialiog. - CMultiCalUiDialog* calenDbListDialog = CMultiCalUiDialog::NewLC(calentryArray, ETrue); - TInt err = KErrNone; - // Execute. - TRAP( err,calenDbListDialog->LaunchL() ); - CleanupStack::PopAndDestroy( calenDbListDialog ); - - iSPUtils->UnderLineTitleText( EFalse ); - // Unhide the toolbar when settings is closed - if(toolbar) - { - toolbar->SetToolbarVisibilityL(ETrue); - } - CleanupStack::Pop(entry); - calentryArray.ResetAndDestroy(); - - BeginRepopulationL(); - } - // ---------------------------------------------------------------------------- // CCalenDayView::ClearViewSpecificDataL // Clears any cached data for the specific view, e.g. currently diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/caleneventview.cpp --- a/calendarui/views/src/caleneventview.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/caleneventview.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -37,6 +37,7 @@ #include "calendar.hrh" #include #include +#include "calenattachmentmodel.h" // Button position of the MSK CBA button const TInt KSK2CBAPosition = 2; @@ -280,7 +281,12 @@ void CCalenEventView::DoDeactivateImpl() { TRACE_ENTRY_POINT; - + // After forced exit need to Reset CCalenAttachmentModel + //to refresh the model after opening the calender next time + if (iServices.GetAttachmentData()->NumberOfItems()) + { + iServices.GetAttachmentData()->Reset(); + } iPreviousViewId.iViewUid = KNullUid; // Remove the toolbar buttons for event viewer before exiting from event view diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/caleneventviewcontainer.cpp --- a/calendarui/views/src/caleneventviewcontainer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/caleneventviewcontainer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -680,6 +680,7 @@ iTextEditor->SetFocus(EFalse); iTextEditor->SetRect( Rect() ); + iTextEditor->SetCursorPosL(0,EFalse); iTextEditor->RichText()->Reset(); // Create the scroll bars. @@ -861,6 +862,11 @@ { // date field AddDateFieldL(iEventViewData->StartDateTime()); + + // against the location field in the viewer + iTimeFieldLines = 1; + // location + AddLocationFieldL(); // Adds empty line AddEmptyLineL(); @@ -899,6 +905,13 @@ AddDateDateFieldL( startTime, endTime ); } + // Increment the time filed count to 1 so that maps icon is placed + // against the location field in the viewer + iTimeFieldLines = 1; + + // location + AddLocationFieldL(); + // extra empty line between primary and secondary information AddEmptyLineL(); diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calenmonthcontainer.cpp --- a/calendarui/views/src/calenmonthcontainer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calenmonthcontainer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -116,12 +116,7 @@ delete iGrid; delete iMonthDataArray; - delete iBackgroundSkinContext; - if( iNativePreview && iPreview ) - { - delete iPreview; - iPreview = NULL; - } + delete iBackgroundSkinContext; TRACE_EXIT_POINT; } @@ -510,7 +505,7 @@ SetActiveDayL( aNewActiveDay ); // dont focus the preview popup/previewpane if any dialog or faster app is active - if( !iView->IsEditorActiveOrFasterAppExit()) + if( iPreview && !iView->IsEditorActiveOrFasterAppExit()) { iPreview->FocusChangedL( aNewActiveDay ); } @@ -619,7 +614,7 @@ { TRACE_ENTRY_POINT; - if (aType == EEventKeyDown) + if (iPreview && aType == EEventKeyDown) { iPreview->Hide(); } @@ -1035,6 +1030,16 @@ } // ---------------------------------------------------------------------------- +// CCalenMonthContainer::PreviewPane +// Returns previewpane pointer +// ---------------------------------------------------------------------------- +const MCalenPreview* CCalenMonthContainer::PreviewPane() + { + TRACE_ENTRY_POINT + TRACE_EXIT_POINT + return iPreview; + } + // CCalenMonthContainer::ConstructImplL // Third phase constructor. // This function was called CCalenNativeView::ConstructL(). @@ -1055,12 +1060,7 @@ // Create preview pane TRect aRect = PreviewRectL(); iPreview = iServices.CustomPreviewPaneL(aRect); - if (iPreview == NULL) - { - iPreview = CCalenPreview::NewL( iView, locale, iServices ); - iNativePreview = ETrue; - } - + // grid iGrid = new(ELeave) CCalenMonthGrid(iFirstDayOfGrid,this); iGrid->SetContainerWindowL(*this); @@ -1658,6 +1658,19 @@ if(AknLayoutUtils::PenEnabled()) { + CCoeControl* control( NULL ); + if(aPointerEvent.iType == TPointerEvent::EButton1Down) + { + control = iLayoutManager->ControlOrNull(); + if(control) + { + if(control->Rect().Contains(aPointerEvent.iPosition)) + { + control->HandlePointerEventL(aPointerEvent); + return; + } + } + } TInt pointerIndex(-1); TBool isItem (iGrid->View()->XYPosToItemIndex(aPointerEvent.iPosition, pointerIndex)); CAknGridM* gridModel = static_cast(iGrid->Model()); @@ -1732,7 +1745,10 @@ if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) { iGrid->HandlePointerEventL( pointerEvent ); - iPreview->Hide(); + if (iPreview) + { + iPreview->Hide(); + } if ( pointerIndex != index ) { iChangeMonth = EFalse; @@ -1779,7 +1795,7 @@ { switch ( aEventType ) { - case ( MEikListBoxObserver::EEventItemDoubleClicked ): + case ( MEikListBoxObserver::EEventItemClicked ): { if ( !iView->MenuBar()->IsDisplayed() ) { @@ -1791,13 +1807,16 @@ } - +// ---------------------------------------------------------------------------- +// CCalenMonthContainer::HidePopup +// ---------------------------------------------------------------------------- void CCalenMonthContainer::HidePopup() { TRACE_ENTRY_POINT; - - iPreview->Hide(); - + if (iPreview) + { + iPreview->Hide(); + } TRACE_EXIT_POINT; } @@ -2131,7 +2150,7 @@ iView->SetEditorActive( EFalse ); // dont focus the preview popup/previewpane if any dialog or faster app is active - if(!iView->IsEditorActiveOrFasterAppExit()) + if(iPreview && !iView->IsEditorActiveOrFasterAppExit()) { // preview popup is shown when application comes to foreground iPreview->FocusChangedL( iServices.Context().FocusDateAndTimeL().TimeLocalL() ); diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calennativeview.cpp --- a/calendarui/views/src/calennativeview.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calennativeview.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -43,6 +43,8 @@ #include #include #include +#include // TCalenInstanceId + #include "calendarui_debug.h" // Debug. #include "CalendarVariant.hrh" @@ -56,6 +58,7 @@ #include "calendar.hrh" #include "CalenUid.h" #include "CalendarPrivateCRKeys.h" +#include "multicaluidialog.h" const TInt KAbbreviatedWeekNames[] = { @@ -113,6 +116,13 @@ delete iSPUtils; + if( iAsyncCallback ) + { + iAsyncCallback->Cancel(); + delete iAsyncCallback; + iAsyncCallback = NULL; + } + TRACE_EXIT_POINT; } @@ -511,6 +521,143 @@ } // ---------------------------------------------------------------------------- +// CCalenNativeView::CopytoCalendarsL +// From CAknView +// Return the UID of the day view +// (other items were commented in a header) +// ---------------------------------------------------------------------------- +// +void CCalenNativeView::CopyToCalendarsL() + { + TRACE_ENTRY_POINT; + + iAsyncCallback->CallBack(); + + TRACE_EXIT_POINT; + } + +// ---------------------------------------------------------------------------- +// CCalenNativeView::AsyncCopyToCalendarsL +// From CAknView +// Return the UID of the day view +// (other items were commented in a header) +// ---------------------------------------------------------------------------- +// +TInt CCalenNativeView::AsyncCopyToCalendarsL( TAny* aThisPtr ) + { + TRACE_ENTRY_POINT; + + static_cast(aThisPtr)->CopyEntryToCalendarsL(); + + TRACE_EXIT_POINT; + return 0; + + } + +// ---------------------------------------------------------------------------- +// CCalenNativeView::CopyEntryToCalendarsL +// From CAknView +// Return the UID of the day view +// (other items were commented in a header) +// ---------------------------------------------------------------------------- +// +void CCalenNativeView::CopyEntryToCalendarsL() + { + TRACE_ENTRY_POINT; + + // Create settings own titlepane and navipane, and swap with existing ones + CEikStatusPane* sp = CEikonEnv::Static()->AppUiFactory()->StatusPane(); + + // Hide the toolbar before we display settings menu + MCalenToolbar* toolbar = iServices.ToolbarOrNull(); + if(toolbar) + { + toolbar->SetToolbarVisibilityL(EFalse); + } + iSPUtils->UnderLineTitleText( EFalse ); + + // Titlepane + CAknTitlePane* newtp = new( ELeave ) CAknTitlePane(); + CleanupStack::PushL( newtp ); + CCoeControl* oldtp = sp->SwapControlL( TUid::Uid(EEikStatusPaneUidTitle), newtp ); + CleanupStack::Pop( newtp ); // ownership is passed to statuspane + TRect oldRect( 0, 0, 0, 0 ); + if( oldtp ) + { + CleanupStack::PushL( oldtp ); + oldRect = oldtp->Rect(); + CCoeControl* ctrl = sp->ContainerControlL( TUid::Uid( EEikStatusPaneUidTitle )); + newtp->SetContainerWindowL( *ctrl ); + newtp->ConstructL(); + newtp->SetRect(oldRect); + newtp->ActivateL(); + } + + // NaviPane + CAknNavigationControlContainer* newnp = new( ELeave )CAknNavigationControlContainer(); + CleanupStack::PushL( newnp ); + CCoeControl* oldnp = sp->SwapControlL( TUid::Uid( EEikStatusPaneUidNavi ), newnp ); + CleanupStack::Pop( newnp ); // ownership is passed to statuspane + if( oldnp ) + { + CleanupStack::PushL( oldnp ); + oldRect = oldnp->Rect(); + CCoeControl* ctrl = sp->ContainerControlL( TUid::Uid( EEikStatusPaneUidNavi ) ); + newnp->SetContainerWindowL( *ctrl ); + newnp->ConstructL(); + newnp->SetRect( oldRect ); + newnp->PushDefaultL(); + newnp->ActivateL(); + } + + MCalenContext& context = iServices.Context(); + TCalLocalUid instanceId = context.InstanceId().iEntryLocalUid; + + CCalEntry* entry = iServices.EntryViewL(context.InstanceId().iColId)->FetchL(instanceId); + CleanupStack::PushL(entry); + + RPointerArray calentryArray; + calentryArray.Append( entry ); + + // Launch the Calendar List Dialiog. + CMultiCalUiDialog* calenDbListDialog = CMultiCalUiDialog::NewLC(calentryArray, EFalse); + TInt err = KErrNone; + // Execute. + TRAP( err,calenDbListDialog->LaunchL() ); + CleanupStack::PopAndDestroy( calenDbListDialog ); + + iSPUtils->UnderLineTitleText( EFalse ); + // Unhide the toolbar when settings is closed + if(toolbar) + { + toolbar->SetToolbarVisibilityL(ETrue); + } + + CleanupStack::Pop(entry); + calentryArray.ResetAndDestroy(); + + // When setting is closed, swap back old titlepane and navipane + if( oldnp && sp->SwapControlL( TUid::Uid(EEikStatusPaneUidNavi), oldnp ) ) + { + CleanupStack::Pop( oldnp ); + delete newnp; + oldnp->ActivateL(); + } + + if( oldtp && sp->SwapControlL( TUid::Uid(EEikStatusPaneUidTitle), oldtp ) ) + { + CleanupStack::Pop( oldtp ); + delete newtp; + oldtp->ActivateL(); + } + + BeginRepopulationL(); + + TRACE_EXIT_POINT; + + } + +// ---------------------------------------------------------------------------- // C++ constructor can NOT contain any code, that // might leave. // ---------------------------------------------------------------------------- @@ -566,6 +713,8 @@ notificationArray.Reset(); iCommandProcessing = EFalse; + TCallBack callback(CCalenNativeView::AsyncCopyToCalendarsL,this); + iAsyncCallback = new(ELeave) CAsyncCallBack(callback,CActive::EPriorityStandard); TRACE_EXIT_POINT; } diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calentodoview.cpp --- a/calendarui/views/src/calentodoview.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calentodoview.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -323,6 +323,7 @@ //TODO: will be uncommented with copy to cal functionality. case ECalenCopyToCalendars: { + SaveCurrentItemIndexL(); CopyToCalendarsL(); } break; @@ -905,50 +906,6 @@ ( iHighlightedRowNumber == KErrNotFound ); } -// ---------------------------------------------------------------------------- -// CCalenTodoView::CopyToCalendarsL -// -// (other items were commented in a header) -// ---------------------------------------------------------------------------- -// -void CCalenTodoView::CopyToCalendarsL() - { - - // Hide the toolbar before we display settings menu - MCalenToolbar* toolbar = iServices.ToolbarOrNull(); - if(toolbar) - { - toolbar->SetToolbarVisibilityL(EFalse); - } - - MCalenContext& context = iServices.Context(); - TCalLocalUid instanceId = context.InstanceId().iEntryLocalUid; - - CCalEntry* entry = iServices.EntryViewL(context.InstanceId().iColId)->FetchL(instanceId); - CleanupStack::PushL(entry); - - RPointerArray entryArray; - entryArray.Append(entry); - - - // Launch the Calendar List Dialiog. - CMultiCalUiDialog* multiCalUiDialog = CMultiCalUiDialog::NewLC(entryArray , ETrue ); - TInt err = KErrNone; - // Execute. - TRAP( err,multiCalUiDialog->LaunchL() ); - CleanupStack::PopAndDestroy( multiCalUiDialog ); - - // Unhide the toolbar when settings is closed - if(toolbar) - { - toolbar->SetToolbarVisibilityL(ETrue); - } - - CleanupStack::Pop(entry); - entryArray.ResetAndDestroy(); - - BeginRepopulationL(); - } // ---------------------------------------------------------------------------- diff -r e9a27a9cdac2 -r a552c9d3f67b calendarui/views/src/calenweekcontainer.cpp --- a/calendarui/views/src/calenweekcontainer.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/calendarui/views/src/calenweekcontainer.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -211,11 +211,7 @@ TRACE_ENTRY_POINT; delete iListBox; - if( iNativePreview && iPreview ) - { - delete iPreview; - iPreview = NULL; - } + delete iDesArray; CleanupInstances(); @@ -1242,11 +1238,7 @@ // Create preview pane TRect aRect = PreviewRectL(); iPreview = iServices.CustomPreviewPaneL(aRect); - if (iPreview == NULL) - { - iPreview = CCalenPreview::NewL( iView, locale, iServices ); - iNativePreview = ETrue; - } + // ownership of builder transferred // 3) Listbox @@ -1361,7 +1353,7 @@ AknLayoutScalable_Apps::listscroll_cale_week_pane(layoutToolBarVariant).LayoutLine() ); - TWeekListBoxLayout lay( UseInfobar(), UseToolbar(), ETrue, main_pane ); + TWeekListBoxLayout lay( UseInfobar(), UseToolbar(), UsePreview(), main_pane ); iListBox->SetRect( iListBox->LayoutRect() ); TInt layoutVariant = lay.LayoutVariantIndex(TWeekListBoxLayout::EScrollPaneCp08); @@ -1545,7 +1537,7 @@ TRACE_ENTRY_POINT; // always hide popup on key events - if (aType == EEventKeyDown) + if (iPreview && aType == EEventKeyDown) { iPreview->Hide(); } @@ -1766,7 +1758,7 @@ CCalHourItem& itemInfo = *(*slotTable)[iListBox->CurrentItemIndex()]; // dont focus the preview popup/previewpane if any dialog or faster app is active - if(!iView->IsEditorActiveOrFasterAppExit()) + if(iPreview && !iView->IsEditorActiveOrFasterAppExit()) { if( !itemInfo.IsTimed() ) { @@ -2182,6 +2174,18 @@ aPointerEvent.iType == TPointerEvent::EButton1Down ) { IgnoreEventsUntilNextPointerUp(); + CCoeControl* control(NULL); + if (aPointerEvent.iType == TPointerEvent::EButton1Down) + { + control = iLayoutManager->ControlOrNull(); + if (control) + { + if (control->Rect().Contains(aPointerEvent.iPosition)) + { + control->HandlePointerEventL(aPointerEvent); + } + } + } return; } @@ -2204,10 +2208,7 @@ { UpdateStatusPaneAndExtensionsL(); } - iFirstTap = ETrue; } - else - iFirstTap = EFalse; } else { @@ -2235,13 +2236,12 @@ if (newColumn != oldColumn) { WeekView().SetStatusPaneFromActiveContextL(); - } - iFirstTap = ETrue; + } } break; } case TPointerEvent::EButton1Up: - if(isItem && iFirstTap == EFalse && + if(isItem && iView->MenuBar()->IsDisplayed() == EFalse) { iServices.IssueCommandL( ECalenForwardsToDayView ); @@ -2267,9 +2267,10 @@ void CCalenWeekContainer::HidePopup() { TRACE_ENTRY_POINT; - - iPreview->Hide(); - + if (iPreview) + { + iPreview->Hide(); + } TRACE_EXIT_POINT; } @@ -2285,8 +2286,10 @@ SizeChanged(); iViewPopulationComplete = EFalse; - iPreview->Hide(); - + if (iPreview) + { + iPreview->Hide(); + } iListBox->View()->SetDisableRedraw( ETrue ); PopulatesDayListsL(); @@ -2465,6 +2468,18 @@ return row; } + +// ----------------------------------------------------------------------------- +// CCalenWeekContainer::PreviewPane +// Return preview pane pointer +// ----------------------------------------------------------------------------- +// +const MCalenPreview* CCalenWeekContainer::PreviewPane() + { + TRACE_ENTRY_POINT + TRACE_EXIT_POINT + return iPreview; + } // ---------------------------------------------------------------------------- // CCalenWeekContainer::UpdatePreviewPaneL @@ -2482,7 +2497,7 @@ CCalHourItem& itemInfo = *(*slotTable)[iListBox->CurrentItemIndex()]; // dont focus the preview popup/previewpane if any dialog or faster app is active - if(!iView->IsEditorActiveOrFasterAppExit()) + if( iPreview && !iView->IsEditorActiveOrFasterAppExit()) { if( !itemInfo.IsTimed() ) { diff -r e9a27a9cdac2 -r a552c9d3f67b clock2/clockui/uilayer/clkdatetimeview/group/clkdatetimeview.mmp --- a/clock2/clockui/uilayer/clkdatetimeview/group/clkdatetimeview.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/clock2/clockui/uilayer/clkdatetimeview/group/clkdatetimeview.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -70,6 +70,7 @@ LIBRARY efsrv.lib LIBRARY avkon.lib LIBRARY hlplch.lib +LIBRARY featdiscovery.lib LIBRARY featmgr.lib LIBRARY drmhelper.lib LIBRARY tzclient.lib diff -r e9a27a9cdac2 -r a552c9d3f67b clock2/clockui/uilayer/clkdatetimeview/src/clkdatetimeview.cpp --- a/clock2/clockui/uilayer/clkdatetimeview/src/clkdatetimeview.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/clock2/clockui/uilayer/clkdatetimeview/src/clkdatetimeview.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -54,6 +54,8 @@ #include #include #include +#include +#include // User Includes #include "clkuiclksrvmodel.h" @@ -2448,7 +2450,24 @@ // Do not show videos. alarmToneList->AddExclusiveMediaTypeL( ECLFMediaTypeVideo ); alarmToneList->SetAutomatedType( CDRMHelper::EAutomatedTypeClockAlarm ); - + // Do not show items over the file size limit, if configured. + if ( CFeatureDiscovery::IsFeatureSupportedL( + KFeatureIdFfLimitedMessageAndAlarmToneSize ) ) + { + // Max file size allowed (in KB). 0 == no limit. + TInt fileSizeLimit = 0; + CRepository* profilesCenRep = CRepository::NewLC( KCRUidProfileEngine ); + + // Reading the repository should not fail, but if it does, the default + // value we have for the file size limit is acceptable. + profilesCenRep->Get( KProEngRingingToneMaxSize, fileSizeLimit ); // codescanner::crepository + CleanupStack::PopAndDestroy( profilesCenRep ); + + if ( fileSizeLimit > 0 ) + { + alarmToneList->SetMaxFileSize( fileSizeLimit * KKilo ); + } + } // Launch the list. ETrue is returned if OK is pressed. EFalse otherwise. if( alarmToneList->LaunchL( iAlarmToneName, *iToneListHeader ) ) { diff -r e9a27a9cdac2 -r a552c9d3f67b clock2/clockui/uilayer/clockalarmeditor/src/clockalarmeditorimpl.cpp --- a/clock2/clockui/uilayer/clockalarmeditor/src/clockalarmeditorimpl.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/clock2/clockui/uilayer/clockalarmeditor/src/clockalarmeditorimpl.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -547,7 +547,9 @@ // Execute the following commands if the resource belongs to alarmeditor. // Display the menu items based on the current focused control. if( ( EControlTextEditor == iSelectedControl ) || - ( EControlTimeEditor == iSelectedControl ) ) + ( EControlTimeEditor == iSelectedControl ) || + ( EControlOccurancePopup == iSelectedControl ) || + ( EControlAlarmDayPopup == iSelectedControl ) ) { aMenuPane->SetItemDimmed( EClockAlarmChange, ETrue ); } diff -r e9a27a9cdac2 -r a552c9d3f67b clock2/conf/clockapp.confml Binary file clock2/conf/clockapp.confml has changed diff -r e9a27a9cdac2 -r a552c9d3f67b notepad/notepad1/LibData/NpdLib.rss --- a/notepad/notepad1/LibData/NpdLib.rss Tue Mar 16 14:31:25 2010 +0100 +++ b/notepad/notepad1/LibData/NpdLib.rss Mon Mar 22 17:23:21 2010 +0100 @@ -1524,19 +1524,23 @@ { buf = qtn_nmake_no_memos_secondary_text; } +// ----------------------------------------------------------------------------- +// +// r_send_notepad_note +// the resource process dialog when send notes via message and bluetooth +// +// ----------------------------------------------------------------------------- +// RESOURCE DIALOG r_send_notepad_note { - flags = EAknWaitNoteFlags | EEikDialogFlagModeless; -// buttons=R_AVKON_SOFTKEYS_EMPTY; - buttons=R_AVKON_SOFTKEYS_CANCEL; + flags = EAknWaitNoteFlags; + buttons=R_AVKON_SOFTKEYS_CANCEL; items= { DLG_LINE { type = EAknCtNote; - - //id = EGeneralNote; - id = ESendNotepadAttach; + id = ESendNotepadAttach; control= AVKON_NOTE { layout = EWaitLayout; diff -r e9a27a9cdac2 -r a552c9d3f67b notepad/notepad1/LibSrc/NpdEdwinBase.cpp --- a/notepad/notepad1/LibSrc/NpdEdwinBase.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/notepad/notepad1/LibSrc/NpdEdwinBase.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -32,6 +32,10 @@ #include #include #include +#ifdef RD_SCALABLE_UI_V2 +#include +#include +#endif #include "NpdEdwin.h" #include "NpdRichTextEditor.h" @@ -110,7 +114,25 @@ TRect mainPane(TPoint(0, 0), tempMainPane.Size()); mainNotesPane.LayoutRect(mainPane, AknLayoutScalable_Apps::main_notes_pane().LayoutLine()); lineLayout.LayoutRect(mainNotesPane.Rect(),AknLayoutScalable_Apps::list_notes_pane().LayoutLine()); - TAknLayoutScalableParameterLimits textLimits =AknLayoutScalable_Apps::list_notes_text_pane_ParamLimits(); + TAknLayoutScalableParameterLimits textLimits; + TBool isShowToolbar = EFalse; +#ifdef RD_SCALABLE_UI_V2 + CEikAppUiFactory* appUiFactory + = static_cast( CEikonEnv::Static()->AppUiFactory() ); + CAknToolbar* oldFixedToolbar = appUiFactory->CurrentFixedToolbar(); + if ( oldFixedToolbar != NULL ) + { + isShowToolbar = oldFixedToolbar->IsShown(); + } +#endif + if ( isShowToolbar ) + { + textLimits = AknLayoutScalable_Apps::list_notes_text_pane_ParamLimits(1); + } + else + { + textLimits =AknLayoutScalable_Apps::list_notes_text_pane_ParamLimits(); + } RArray layouts; for (TInt i = 0; i < textLimits.LastRow()+1 ; i++) { @@ -352,7 +374,7 @@ TRect tempMainPane; AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,tempMainPane); TRect mainPane(TPoint(0, 0), tempMainPane.Size()); - TAknWindowLineLayout scrollPane = AknLayoutScalable_Apps::scroll_pane_cp06().LayoutLine(); + TAknWindowLineLayout scrollPane = AknLayoutScalable_Apps::scroll_pane_cp05(0).LayoutLine(); mainNotesPane.LayoutRect(mainPane, AknLayoutScalable_Apps::main_notes_pane().LayoutLine()); AknLayoutUtils::LayoutVerticalScrollBar(sbFrame, mainNotesPane.Rect(), scrollPane); } diff -r e9a27a9cdac2 -r a552c9d3f67b notepad/notepad1/LibSrc/NpdPopupList.cpp --- a/notepad/notepad1/LibSrc/NpdPopupList.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/notepad/notepad1/LibSrc/NpdPopupList.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -116,6 +116,11 @@ if ( !iFinished || *iFinished ) // really finished { CAknPopupList::AttemptExitL(aAccept); + if ( iFlags & ENotepadIsViewDeactivated ) + { + iEikonEnv->RemoveFromStack(this); + CAknEnv::StopSchedulerWaitWithBusyMessage(iWait); + } } else // empty -> non-empty { diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/calendar_common_utils_api/tsrc/group/CalendarCommonUtilsTest_DoxyFile.txt --- a/organizer_plat/calendar_common_utils_api/tsrc/group/CalendarCommonUtilsTest_DoxyFile.txt Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_plat/calendar_common_utils_api/tsrc/group/CalendarCommonUtilsTest_DoxyFile.txt Mon Mar 22 17:23:21 2010 +0100 @@ -1,8 +1,8 @@ # -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (c) 2007 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". # @@ -10,7 +10,7 @@ # Nokia Corporation - initial contribution. # # Contributors: -# +# # Description: # # diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/calendar_common_utils_api/tsrc/group/rndcert.der Binary file organizer_plat/calendar_common_utils_api/tsrc/group/rndcert.der has changed diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/calendar_common_utils_api/tsrc/group/rndcert.key --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/organizer_plat/calendar_common_utils_api/tsrc/group/rndcert.key Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn +uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO +vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB +AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo +REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss +/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J +s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut +sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/ +pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp +VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ +P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK +1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT +1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x +-----END RSA PRIVATE KEY----- diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/calendar_custamization_api/inc/calencommands.hrh --- a/organizer_plat/calendar_custamization_api/inc/calencommands.hrh Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_plat/calendar_custamization_api/inc/calencommands.hrh Mon Mar 22 17:23:21 2010 +0100 @@ -68,6 +68,7 @@ ECalenNewDayNote, ECalenNewReminder, ECalenNewMeetingRequest, + ECalenNewMeetingTimeSpan, ECalenEditCurrentEntry, ECalenEditSeries, ECalenEditOccurrence, diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/calendar_custamization_api/inc/calennotificationhandler.h --- a/organizer_plat/calendar_custamization_api/inc/calennotificationhandler.h Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_plat/calendar_custamization_api/inc/calennotificationhandler.h Mon Mar 22 17:23:21 2010 +0100 @@ -77,6 +77,7 @@ ECalenNotifyCalendarInfoCreated, ECalenNotifyCalendarInfoUpdated, ECalenNotifyCalendarFileDeleted, + ECalenNotifyEntrySendCancel, ECalenNotifyUserDefined1, ECalenNotifyUserDefined2, ECalenNotifyUserDefined3, diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/calendar_settings_keys_api/inc/CalendarInternalCRKeys.h --- a/organizer_plat/calendar_settings_keys_api/inc/CalendarInternalCRKeys.h Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_plat/calendar_settings_keys_api/inc/CalendarInternalCRKeys.h Mon Mar 22 17:23:21 2010 +0100 @@ -123,26 +123,21 @@ **/ const TUint32 KCalendarStartupStatus = 0x0000000E; -/** -* Text string containing default calendar names separated by commas -* Used for creating default calendars at the startup of the device -* Default value: "Personal,Family,Friends" -*/ -const TUint32 KCalendarDefaultCalendars = 0x0000000F; + /** * Text string containing default calendar colors separated by commas * Used for creating default calendars at the startup of the device * Default value: "16711680,65280,255" */ -const TUint32 KCalendarDefaultColors = 0x00000010; +const TUint32 KCalendarDefaultColors = 0x0000000F; /** * String value containing unique calendar value * Used for identifying an entry by LUID + unique calendar value * Default value:"0" */ -const TUint32 KCalendarAvailableValue = 0x00000011; +const TUint32 KCalendarAvailableValue = 0x00000010; #endif // CALENDARINTERNALCRKEYS_H diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/meeting_request_mailbox_utilities_api/tsrc/stiff/group/rndcert.der Binary file organizer_plat/meeting_request_mailbox_utilities_api/tsrc/stiff/group/rndcert.der has changed diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_plat/meeting_request_mailbox_utilities_api/tsrc/stiff/group/rndcert.key --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/organizer_plat/meeting_request_mailbox_utilities_api/tsrc/stiff/group/rndcert.key Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC/TDP7KKIaf5+uW4OD2iVZuUMC2a+SeQTjf6srlKcOm+CpPNXn +uLNm/8fdEnyOIuRXPRKmqhs1n0JkxEGHynELWMTuKXbQx9SRAGUXzyneGn+IJNnO +vOKHWgKCouX2hfI8rtkdqJpqmO460gGsMgw+lsbeyWyW9lnfLxq+ZC7sqQIDAQAB +AoGBALmUWZE8GBaQ3P4u9WUCSd3DJkkrmXIFSULSZeH/chlwCwDjbbhArHothVzo +REE3hEFFlERvHbplZ+mNouzy7boduvgUzbksGrbGMLJ2qO1GzWWVwV+GzOWKd3ss +/98Gwoy5R8pjnkqUE2wP1iJFw0FjvUTKcYv/z6t3LLJ0CsoBAkEA+c7ixvsviQ3J +s0INytCKU2bf8fqFQJi1VI82ukxNsujGTQ9upVSjuvqPvWyDvvTdrUBHqO+3qPut +sEh01Q8aiQJBAMQKDJPVRu4ud3mwUfEavzL5EjqwG1k9VCNGYsT4FwtrHcxu1oP/ +pk6M3rIZukqomoEEnHWPMwhrK3fhBqi0OSECQQDr40VXege4FnH5OI2Hj4afHMyp +VdQQXGMWFyopnzXblFz0lXb43cTCIiorR9XcMqNFHybLypkWE5o+lRzlt55pAkBQ +P/zeF5Sts//cpL0mgdh7OVKpC6ZmZaCnwAx2rUhhuDu+kDDoYCLoTOps5fNI1LRK +1GRoC3LMo3Jr5IYhUYWBAkBpCpN6k4JU/mszq98EojHerQNxk8sPqvQKUzTutohT +1gLX9yepGayB/TtT2EEJDkWOlnTy/dvN6W3vzbJYz97x +-----END RSA PRIVATE KEY----- diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_pub/calendar_interim_utils2_api/tsrc/stiff/group/CalenInterimUtils2Test_DoxyFile.txt --- a/organizer_pub/calendar_interim_utils2_api/tsrc/stiff/group/CalenInterimUtils2Test_DoxyFile.txt Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_pub/calendar_interim_utils2_api/tsrc/stiff/group/CalenInterimUtils2Test_DoxyFile.txt Mon Mar 22 17:23:21 2010 +0100 @@ -1,8 +1,8 @@ # -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (c) 2007 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". # @@ -10,7 +10,7 @@ # Nokia Corporation - initial contribution. # # Contributors: -# +# # Description: # # diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_pub/notepad_library_api/tsrc/.cproject --- a/organizer_pub/notepad_library_api/tsrc/.cproject Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_pub/notepad_library_api/tsrc/.cproject Mon Mar 22 17:23:21 2010 +0100 @@ -1,30 +1,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_pub/notepad_library_api/tsrc/.project --- a/organizer_pub/notepad_library_api/tsrc/.project Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_pub/notepad_library_api/tsrc/.project Mon Mar 22 17:23:21 2010 +0100 @@ -1,31 +1,31 @@ - - - TestNpdApi - - - - - - com.nokia.carbide.cdt.builder.carbideCPPBuilder - - - - - com.nokia.carbide.cdt.rombuilder.carbideRomBuilder - - - - - com.nokia.s60tools.pclint.pclintAuditor - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - com.nokia.carbide.cdt.builder.carbideCPPBuilderNature - com.nokia.carbide.cdt.rombuilder.carbideRomBuildNature - com.nokia.s60tools.pclint.pclintNature - - + + + TestNpdApi + + + + + + com.nokia.carbide.cdt.builder.carbideCPPBuilder + + + + + com.nokia.carbide.cdt.rombuilder.carbideRomBuilder + + + + + com.nokia.s60tools.pclint.pclintAuditor + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + com.nokia.carbide.cdt.builder.carbideCPPBuilderNature + com.nokia.carbide.cdt.rombuilder.carbideRomBuildNature + com.nokia.s60tools.pclint.pclintNature + + diff -r e9a27a9cdac2 -r a552c9d3f67b organizer_pub/notepad_library_api/tsrc/group/ABLD.BAT --- a/organizer_pub/notepad_library_api/tsrc/group/ABLD.BAT Tue Mar 16 14:31:25 2010 +0100 +++ b/organizer_pub/notepad_library_api/tsrc/group/ABLD.BAT Mon Mar 22 17:23:21 2010 +0100 @@ -1,8 +1,8 @@ rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +rem Copyright (c) 2007 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 the License "Eclipse Public License v1.0" +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 @@ -11,7 +11,8 @@ rem rem Contributors: rem -rem Description: batch file +rem Description: +rem rem @ECHO OFF diff -r e9a27a9cdac2 -r a552c9d3f67b pimappservices/calendar/bwins/caltestlibu.def --- a/pimappservices/calendar/bwins/caltestlibu.def Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappservices/calendar/bwins/caltestlibu.def Mon Mar 22 17:23:21 2010 +0100 @@ -45,4 +45,5 @@ ?RegisterCalFileL@CCalTestLibrary@@QAEXABVTDesC16@@@Z @ 44 NONAME ; void CCalTestLibrary::RegisterCalFileL(class TDesC16 const &) ?WaitForAgendaServerClose@CCalTestLibrary@@SAXXZ @ 45 NONAME ; void CCalTestLibrary::WaitForAgendaServerClose(void) ?WaitForAlarmEvent@CCalTestLibrary@@QAEHHW4TAlarmChangeEvent@@W4TAlarmState@@H@Z @ 46 NONAME ; int CCalTestLibrary::WaitForAlarmEvent(int, enum TAlarmChangeEvent, enum TAlarmState, int) + ?CreateCalSubSessionL@CCalTestLibrary@@QAEAAV?$RPointerArray@VCCalSession@@@@ABVTDesC16@@@Z @ 47 NONAME ; class RPointerArray & CCalTestLibrary::CreateCalSubSessionL(class TDesC16 const &) diff -r e9a27a9cdac2 -r a552c9d3f67b pimappservices/calendar/client/src/calattachment.cpp --- a/pimappservices/calendar/client/src/calattachment.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappservices/calendar/client/src/calattachment.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -554,12 +554,23 @@ */ EXPORT_C void CCalAttachmentFile::FetchFileHandleL(RFile& aFileHandle) const { - if (iAttachmentImpl->IsFileHandleSet() || ! iCalSessionImpl) - { - User::Leave(KErrArgument); - } - - iCalSessionImpl->Server().FetchFileHandleL(aFileHandle, iAttachmentImpl->Uid(), iCalSessionImpl->FileId()); + if ( iAttachmentImpl->IsFileHandleSet() ) + { + aFileHandle.Close(); + User::LeaveIfError( + aFileHandle.Duplicate( iAttachmentImpl->FileHandle() ) ); + } + else if ( iCalSessionImpl ) + { + iCalSessionImpl->Server().FetchFileHandleL( + aFileHandle, + iAttachmentImpl->Uid(), + iCalSessionImpl->FileId() ); + } + else + { + User::Leave( KErrArgument ); + } } /** Load the binary data into the attachment object to be accessed through the CCalAttachment::Value function. diff -r e9a27a9cdac2 -r a552c9d3f67b pimappservices/calendar/client/src/calcalendarinfoimpl.cpp --- a/pimappservices/calendar/client/src/calcalendarinfoimpl.cpp Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappservices/calendar/client/src/calcalendarinfoimpl.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -69,9 +69,9 @@ { if (iProperties[position]->Value().Compare(KNullDesC8) == 0) { - __ASSERT_DEBUG(iProperties[position]->StreamId() != KNullStreamId, CalUtils::Panic(ECalendarInfoNullStreamId)); + __ASSERT_DEBUG(iFileName && iProperties[position]->StreamId() != KNullStreamId, CalUtils::Panic(ECalendarInfoNullStreamId)); // Get the property - HBufC8* value = iSessionImpl->Server().GetPropertyValueL(iSessionImpl->FileName(), iProperties[position]->StreamId()); + HBufC8* value = iSessionImpl->Server().GetPropertyValueL(iFileName->Des(), iProperties[position]->StreamId()); iProperties[position]->SetValue(value); } else if (iProperties[position]->State() == CAgnCalendarInfoProperty::EDeleted) diff -r e9a27a9cdac2 -r a552c9d3f67b pimappservices/calendar/eabi/caltestlibu.def --- a/pimappservices/calendar/eabi/caltestlibu.def Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappservices/calendar/eabi/caltestlibu.def Mon Mar 22 17:23:21 2010 +0100 @@ -52,4 +52,5 @@ _ZTV15CCalTestLibrary @ 51 NONAME _ZN15CCalTestLibrary24WaitForAgendaServerCloseEv @ 52 NONAME _ZN15CCalTestLibrary17WaitForAlarmEventEi17TAlarmChangeEvent11TAlarmStatei @ 53 NONAME + _ZN15CCalTestLibrary20CreateCalSubSessionLERK7TDesC16 @ 54 NONAME diff -r e9a27a9cdac2 -r a552c9d3f67b pimappservices/calendar/group/backup_registration.xml --- a/pimappservices/calendar/group/backup_registration.xml Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappservices/calendar/group/backup_registration.xml Mon Mar 22 17:23:21 2010 +0100 @@ -1,10 +1,10 @@ K29/30DayLeapMonth + + if ((aMonth==12) && (leapMonth==0)) + flag=KMonthInvalid;//month doesn't exist + + return flag; + } + +TUint TCalconData::GetNewYear(TInt aCycle, TInt aYear) const + { + __ASSERT_DEBUG((aYear>=0 && aYear<=59), User::Panic(_L("Calcon"), ECalconGetNewYearYearOutOfRange)); + TInt y=(aCycle*KNoOfYearsInCycle)+aYear; + y-=(KFirstYear-1); + return (iCalConDataYear[y] & 0x0fffffff); + } + +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: ChineseToDateTime +// Arguments: TDateTime & +// +// Comments: This function converts the date held within +// the TChineseCalendar class to a TDateTime format and +// places it in the TDateTime class provided. +// +// Return: void +//------------------------------------------------------ +void TChineseCalendar::ChineseToDateTime(TDateTime &aDT) + { + TArithmeticalDate gregDate; + TGregorianCalendar greg(iJulianDay); + + greg.GregFromJulianDay(gregDate,iJulianDay); + aDT.Set(0,EJanuary,0,0,0,0,0); + + aDT.SetDay(gregDate.iDay - KCalConvMonthOffsetByOne); + aDT.SetMonth((TMonth)(gregDate.iMonth - KCalConvMonthOffsetByOne)); + aDT.SetYear(gregDate.iYear); + } + +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: DateTimeToChinese +// Arguments: TDateTime & +// +// Comments: Sets the date held in the given TDateTime +// class to the TChineseCalendar class +// +// Return: void +//------------------------------------------------------ +void TChineseCalendar::DateTimeToChinese(const TDateTime &aDT) + { + TArithmeticalDate gregDate; + TGregorianCalendar greg; + + gregDate.iDay = aDT.Day() + KCalConvMonthOffsetByOne; + gregDate.iMonth = (TInt)aDT.Month() + KCalConvMonthOffsetByOne; + gregDate.iYear = aDT.Year(); + + iJulianDay = greg.GregToJulianDay(gregDate); + } + +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: SetDate +// Arguments: TChineseDate& +// +// Comments: this function sets the julian day value +// in the base class from the given +// TChineseDate +// +// Return: None +//------------------------------------------------------ +TInt TChineseCalendar::SetDate(const TChineseDate &aDate) + { + TReal jD; + TChineseDate ChinDate = aDate; + + if(!ValidDate(ChinDate)) + return KErrArgument; + + if (!ChineseToFixed(aDate,jD)) + return KErrArgument; + + if (jDKLastJulianDate) + return KErrArgument; + + iJulianDay = (TInt)jD; + return KErrNone; + } +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: GetDate +// Arguments: TChineseDate & +// +// Comments: This function Determines the chinese date and +// places it in the TChineseDate class provided +// for the julian day value held internally in the +// Chinese class. +// +// Return: None +//------------------------------------------------------ +TInt TChineseCalendar::GetDate(TChineseDate &aDate) + { + return ChineseFromFixed(aDate,iJulianDay); + } + +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: ChineseToFixed +// Arguments: TChineseDate , TReal & +// TChineseDate members start at 1 (not zero) +// +// Comments: This function converts a chinese date to +// to a julian day value. +// +// Return: TBool ETrue if date valid, else EFalse +//------------------------------------------------------ +TBool TChineseCalendar::ChineseToFixed(const TChineseDate& aDate, TReal &aJulianDay) const + { + TInt cycle=aDate.iCycle-KFirstCycle; //cycle starts from zero + TInt year=aDate.iYear-1; //year is 0..59 + + TInt days=0; + + TInt targetMonth=aDate.iMonth; //targetMonth is 1..12 + TBool leap=aDate.iLeapMonth; + if (leap) + { + targetMonth++; + if (iData.GetData(cycle, year, targetMonth-1)<3) + return EFalse; //not a leap month + } + + TInt month=1; + while (month<=targetMonth) + { + TInt daysFlag=iData.GetData(cycle, year, month-1); + +//We need to handle case where targetMonth is a leap month +//Eg if Chinese month==6 targetMonth will be 6 +//Eg but if Chinese month 5 is a leap month, month 6 will be 5(leap) so we need to take it into account +//BUT Eg if Chinese momth== 7(leap) we've already taken this into account. + if (month==targetMonth) + if ((leap) || (daysFlag<3)) + break; + + switch (daysFlag) + { + case KMonthInvalid: + return EFalse; + case K29DayMonth: + days+=29; + break; + case K30DayMonth: + days+=30; + break; + case K29DayLeapMonth: + __ASSERT_DEBUG(!leap, User::Panic(KCalconPanic,ECalconChineseToFixedLeapYearInvalid)); + leap=ETrue; + targetMonth++; + days+=29; + break; + case K30DayLeapMonth: + __ASSERT_DEBUG(!leap, User::Panic(KCalconPanic,ECalconChineseToFixedLeapYearInvalid)); + leap=ETrue; + targetMonth++; + days+=30; + break; + } + month++; + } + +//Check that if days==30, the requested month actually has 30 days + TInt checkMonth = aDate.iMonth; + if (leap) + checkMonth++; //this is the month requested by the user + TUint daysFlag=iData.GetData(cycle, year, checkMonth-1); + + if ((aDate.iDay==30) && ((daysFlag==K29DayMonth) || (daysFlag==K29DayLeapMonth))) + return EFalse; + + days+=aDate.iDay-1; + + days+=iData.GetNewYear(cycle, year);//add the New Year + aJulianDay=days; + return ETrue; + } + +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: ChineseFromFixed +// Arguments: TChineseDate &, TReal +// +// Comments: this function converts a julian day value to +// a chinese date in the form TChineseDate +// +// Return: None +//------------------------------------------------------ +TInt TChineseCalendar::ChineseFromFixed(TChineseDate &aDate, const TReal& aJulianDay) const + { + if ((aJulianDayKLastJulianDate)) + return KErrArgument; + + TInt cycleIndex=0; + + while ((cycleIndex < KLastCycle-KFirstCycle) + && (aJulianDay >= iData.GetNewYear(cycleIndex+1,0))) + cycleIndex++; + + aDate.iCycle=cycleIndex + KFirstCycle; + TInt chineseNewYear; + TInt yearCount=0; + if (cycleIndex==0) + yearCount=KFirstYear-1; + + while (yearCount<60 && aJulianDay >= iData.GetNewYear(cycleIndex,yearCount)) + yearCount++; + + aDate.iYear=yearCount; + chineseNewYear = iData.GetNewYear(cycleIndex,--yearCount); + + TInt addedNumberOfDays = 0; + TInt previousAddedNumberOfDays = 0; + TInt monthCount = 1; + aDate.iMonth = 0; + + TInt monthNumber; // 0=No month exists, 1 = 29 day month, 2 = 30 day month, 3 = 29 day leap month, 4 = 30 day leap month + + while (aJulianDay >= (chineseNewYear + addedNumberOfDays)) + { + previousAddedNumberOfDays = addedNumberOfDays; + monthNumber = iData.GetData(cycleIndex,yearCount,monthCount-1); + + switch (monthNumber) + { + case KMonthInvalid: + __ASSERT_DEBUG(0, User::Panic(_L("Calcon"),ECalconChineseFromFixedMonthInvalid)); + break; + case K29DayMonth: + addedNumberOfDays += 29; + aDate.iMonth++; + aDate.iLeapMonth = EFalse; + break; + case K30DayMonth: + addedNumberOfDays += 30; + aDate.iMonth++; + aDate.iLeapMonth = EFalse; + break; + case K29DayLeapMonth: + addedNumberOfDays += 29; + aDate.iLeapMonth = ETrue; + break; + case K30DayLeapMonth: + addedNumberOfDays += 30; + aDate.iLeapMonth = ETrue; + break; + } + monthCount++; + } + + aDate.iDay = (TInt)aJulianDay - chineseNewYear-previousAddedNumberOfDays; + aDate.iDay++; + return KErrNone; + } + +//------------------------------------------------------ +// Class: TChineseCalendar +// Function: ValidDate +// Arguments: TChineseDate & +// +// Comments: This function Determines whether the given +// date is a valid chinese date +// +// Return: TBool - ETrue if date is valid, else EFalse +//------------------------------------------------------ +TBool TChineseCalendar::ValidDate(const TChineseDate &aDate) const + { + //do some trivial checks to ensure that the date is in the range of the lookup table + if (aDate.iYear==0 || aDate.iYear>KNoOfYearsInCycle) + return EFalse; + + if (aDate.iCycle < KFirstCycle) + return EFalse; + + if (aDate.iCycle==KFirstCycle && aDate.iYear < KFirstYear) + return EFalse; + + if (aDate.iCycle > KLastCycle) + return EFalse; + + if ( (aDate.iCycle==KLastCycle) && (aDate.iYear>KLastYear)) + return EFalse; + + if (aDate.iDay==0 || aDate.iDay>30) + return EFalse; + + return ETrue; + } + +TReal TChineseCalendar::JulianDate() __SOFTFP + { + return iJulianDay; + } diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/chinesecalendar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/chinesecalendar.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,50 @@ +// Copyright (c) 2000-2009 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 __CHINESECALENDAR_H__ +#define __CHINESECALENDAR_H__ + +#include "calcondata.h" +#include + +class TCalconData + { +public: + TUint GetData(TInt aCycle, TInt aYear, TInt aMonth) const; + TUint GetNewYear(TInt aCycle, TInt aYear) const; + +private: + static const TUint16 iCalConDataMonth[KNumberOfYears]; + static const TUint32 iCalConDataYear[KNumberOfYears+1]; //marker on end of table + }; + +class TChineseCalendar + { +public: + void DateTimeToChinese(const TDateTime& aDT); + void ChineseToDateTime(TDateTime& aDT); + TInt SetDate(const TChineseDate& aDate); + TInt GetDate(TChineseDate& aDate); + TInt ChineseFromFixed(TChineseDate& aDate,const TReal& aJulianDay) const; + TReal JulianDate() __SOFTFP; + +private: + TBool ValidDate(const TChineseDate &aDate) const; + TBool ChineseToFixed(const TChineseDate& aDate, TReal& aJulianDay) const; + TReal iJulianDay; + TCalconData iData; + }; + +#endif diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/chinesecalendarconverterimpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/chinesecalendarconverterimpl.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,53 @@ +// Copyright (c) 2000-2009 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 "chinesecalendarconverterimpl.h" +#include "gregoriancalendar.h" + +CChineseCalendarConverter* CChineseCalendarConverterImpl::NewL() + { + return new(ELeave) CChineseCalendarConverterImpl(); + } + +void CChineseCalendarConverterImpl::DateTimeToChineseL(const TDateTime& aDateTime, TChineseDate& aChineseDate) + { + iCalendar.DateTimeToChinese(aDateTime); + User::LeaveIfError(iCalendar.GetDate(aChineseDate)); + } + +void CChineseCalendarConverterImpl::ChineseToDateTimeL(const TChineseDate& aChineseDate, TDateTime& aDateTime) + { + User::LeaveIfError(iCalendar.SetDate(aChineseDate)); + iCalendar.ChineseToDateTime(aDateTime); + } + +void CChineseCalendarConverterImpl::DateRange(TDateTime& aLower, TDateTime& aUpper) + { + TGregorianCalendar greg1(KFirstJulianDate); + greg1.GregorianToDateTime(aLower); + TGregorianCalendar greg2(KLastJulianDate); + greg2.GregorianToDateTime(aUpper); + } + +void CChineseCalendarConverterImpl::DateRange(TChineseDate& aLower, TChineseDate& aUpper) + { + iCalendar.ChineseFromFixed(aLower, KFirstJulianDate); + iCalendar.ChineseFromFixed(aUpper, KLastJulianDate); + } + +TReal CChineseCalendarConverterImpl::JulianDate() __SOFTFP + { + return iCalendar.JulianDate(); + } diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/chinesecalendarconverterimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/chinesecalendarconverterimpl.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,36 @@ +// Copyright (c) 2000-2009 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 __CHINESECALENDARCONVERTERIMPL_H__ +#define __CHINESECALENDARCONVERTERIMPL_H__ + +#include +#include "chinesecalendar.h" + +class CChineseCalendarConverterImpl : public CChineseCalendarConverterEcomPlugin + { +public: + static CChineseCalendarConverter* NewL(); + virtual void DateTimeToChineseL(const TDateTime& aDateTime, TChineseDate& aChineseDate); + virtual void ChineseToDateTimeL(const TChineseDate& aChineseDate, TDateTime& aDateTime); + virtual void DateRange(TDateTime& aLower, TDateTime& aUpper); + virtual void DateRange(TChineseDate& aLower, TChineseDate& aUpper); + virtual TReal JulianDate() __SOFTFP; + +private: + TChineseCalendar iCalendar; + }; + +#endif diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/gregoriancalendar.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/gregoriancalendar.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,410 @@ +// Copyright (c) 2000-2009 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: +// Implementation of the TGregorianCalendar class. +// + +#include +#include +#include "gregoriancalendar.h" + +// Constants +const TReal KFourYears = 4.0; +const TReal KFourHundredYears = 400; +const TReal KOneHundredYears = 100; +const TReal KGregStartEpoch = 1721424.5; +// +const TInt KDayOffsetByZero = 0; +const TInt KGregDaysInNormYear = 365; +const TInt KDaysIn400Years = 146097; +const TInt KDaysIn100Years = 36524; +const TInt KDaysIn4Years = 1461; +const TInt KGregCycle = 12; +const TInt KGregLeaps = 7; +const TInt KGregOffset = 11; +const TInt KGregStdMonth = 30; +const TInt KLastDayInDecember = 31; + + + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: TGregorianCalendar +// Arguments: None +// +// Comments: Constructor +// +// Return: None +//------------------------------------------------------ +TGregorianCalendar::TGregorianCalendar() + { + InitMembers(); + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: TGregorianCalendar +// Arguments: TReal +// +// Comments: Overloaded Constructor +// +// Return: None +//------------------------------------------------------ +TGregorianCalendar::TGregorianCalendar(TReal aJD) __SOFTFP + { + iJulianDay = aJD; + InitMembers(); + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: InitMembers +// Arguments: None +// +// Comments: This function initialises the member variables +// or the class. It is called in the constructors +// +// Return: +//------------------------------------------------------ +void TGregorianCalendar::InitMembers() + { + iStartEpoch = KGregStartEpoch + KCalConvPointFive; + Floor(iDaysInNormYear,KGregDaysInNormYear); + iCycle = KGregCycle; + iLeaps = KGregLeaps; + iOffset = KGregOffset; + iStdYearMonth = KGregStdMonth; + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: IsLeapYear +// Arguments: const TInt +// +// Comments: Determines whether the given year is a leap year. +// +// Return: ETrue if leap year, else EFalse +//------------------------------------------------------ +TBool TGregorianCalendar::IsLeapYear(const TInt aYear)const + { + TReal result; + TBool rtn = EFalse; + + Mod(result,aYear,KFourYears); + + if (!result) + { + rtn = ETrue; + } + + Mod(result,aYear,KOneHundredYears); + + if (!result) + { + Mod(result,aYear,KFourHundredYears); + + if (result) + { + rtn = EFalse; + } + } + return rtn; + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: GregToJulianDay +// Arguments: const TArithmeticalDate& +// +// Comments: converts gregorian date to Julian day value +// +// Return: Julian day value for the given Gregorian date +//------------------------------------------------------ +TReal TGregorianCalendar::GregToJulianDay(const TArithmeticalDate& aDate) const __SOFTFP + { + TReal result; + TReal tempReal; + TInt tempInt; + + // days to the start of the year based on normal years + result = iStartEpoch + (iDaysInNormYear * (aDate.iYear - 1)); + + // leap year corrections + tempReal = (aDate.iYear - 1) / KFourYears; + Floor(tempInt,tempReal); + result += tempInt; + + tempReal = (aDate.iYear - 1) / KOneHundredYears; + Floor(tempInt,tempReal); + result -= tempInt; + + tempReal = (aDate.iYear - 1) / KFourHundredYears; + Floor(tempInt,tempReal); + result += tempInt; + + // days in whole months in the year in question - approx + // based on Feb having 30 days + tempInt = DaysMonthsElapsed(aDate.iMonth); + result += tempInt; + + // correction for assumption that Feb has 30 days + if (aDate.iMonth <= (EFebruary + 1)) + result += KDayOffsetByZero; + else if (aDate.iMonth > (EFebruary + 1) && IsLeapYear(aDate.iYear)) + result -= 1; + else + result -= 2; + + // days in month in question + result += aDate.iDay; + + return result; + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: GregorianToDateTime +// Arguments: TDateTime& +// +// Comments: This gets the date from the TGregorianCalendar class +// and places in the the given TDateTime class +// +// Return: void +//------------------------------------------------------ +void TGregorianCalendar::GregorianToDateTime(TDateTime& aDT) + { + TArithmeticalDate gregDate; + GregFromJulianDay(gregDate,iJulianDay); + + aDT.Set(0,EJanuary,0,0,0,0,0); + aDT.SetMonth((TMonth)(gregDate.iMonth - 1)); + aDT.SetDay(gregDate.iDay - 1); + aDT.SetYear(gregDate.iYear); + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: CalcGregYear +// Arguments: TArithmeticalDate& +// +// Comments: Calculates the gregorian year from Julian +// day value. +// +// Return: None +//------------------------------------------------------ +void TGregorianCalendar::CalcGregYear(TArithmeticalDate& aDate, TReal aJulianDay) const __SOFTFP + { + TReal d0; + TReal d1; + TReal d2; + TReal d3; + TReal year; + TInt n400; + TInt n100; + TInt n4; + TInt n1; + TInt32 yearInt32; + + // determine year + // get to start of calendar ie year 1 + d0 = aJulianDay - iStartEpoch - 1; + + Mod(d1,d0,KDaysIn400Years); + + Mod(d2,d1,KDaysIn100Years); + + Mod(d3,d2,KDaysIn4Years); + + // number of 400 year blocks + d0 /= KDaysIn400Years; + Floor(n400,d0); + + // number of 100 year blocks + d1 /= KDaysIn100Years; + Floor(n100,d1); + + // number of 4 year blocks + d2 /= KDaysIn4Years; + Floor(n4,d2); + + // number of 1 year blocks + d3 /= KGregDaysInNormYear; + Floor(n1,d3); + + // calc year + year = (KFourHundredYears * n400) + (KOneHundredYears * n100) + (KFourYears * n4) + n1; + Math::Int(yearInt32,year); + + if ((n100 == (KFourHundredYears / KOneHundredYears)) || (n1 == KFourYears)) + { + aDate.iYear = yearInt32; + } + else + { + aDate.iYear = yearInt32 + 1; + } + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: GregDateDiff +// Arguments: const TArithmeticalDate, const TArithmeticalDate +// +// Comments: This function Determines the difference in days +// between two gregorian dates. +// +// Return: Days difference +//------------------------------------------------------ +TInt TGregorianCalendar::GregDateDiff(const TArithmeticalDate aDate1, const TArithmeticalDate aDate2)const + { + TInt diff; + TReal diffReal; + diffReal = GregToJulianDay(aDate2) - GregToJulianDay(aDate1); + Floor(diff,diffReal); + return diff; + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: DayNumber +// Arguments: const TArithmeticalDate& +// +// Comments: this function returns the number of days that +// have elapsed in the given year +// +// Return: see comment +//------------------------------------------------------ +TInt TGregorianCalendar::DayNumber(const TArithmeticalDate& aDate)const + { + TArithmeticalDate tempDate; + TInt dayNum; + + tempDate.iDay = KLastDayInDecember; + tempDate.iMonth = EDecember + 1; + tempDate.iYear = aDate.iYear - 1; + + dayNum = GregDateDiff(tempDate,aDate); + + return dayNum; + } + +//------------------------------------------------------ +// Class: TGregorianCalendar +// Function: GregFromJulianDay +// Arguments: TArithmeticalDate& , TReal +// +// Comments: This function converts a gregorian date to +// a julian day +// +// Return: void +//------------------------------------------------------ +void TGregorianCalendar::GregFromJulianDay(TArithmeticalDate& aDate, TReal aJulianDay) const __SOFTFP + { + TReal priorDays; + TReal correction; + TReal day; + TReal month; + TInt32 dayInt32; + TInt32 monthInt32; + + CalcGregYear(aDate,aJulianDay); + + aDate.iDay = 1; + aDate.iMonth = EJanuary + 1; + + priorDays = aJulianDay - GregToJulianDay(aDate); + + aDate.iMonth = EMarch + 1; + + if (aJulianDay < GregToJulianDay(aDate)) + { + correction = KDayOffsetByZero; + } + else if ((aJulianDay >= GregToJulianDay(aDate)) && IsLeapYear(aDate.iYear)) + { + correction = 1; + } + else + { + correction = 2; + } + + month = priorDays + correction; + Math::Int(monthInt32,month); + monthInt32 = DayMonthInYear(monthInt32); + aDate.iMonth = monthInt32; + + day = aJulianDay - GregToJulianDay(aDate) + 1; + Math::Int(dayInt32,day); + aDate.iDay = dayInt32; + } + + +//------------------------------------------------------ +// Class: TArithmeticalCalendar +// Function: DaysMonthsElapsed +// Arguments: const TInt ,const TInt ,const TInt , const TInt ,const TInt +// +// Comments: The use of this function varies between calendars +// however since the form of the equation is the same it +// is represented in this class. The equation is use to +// calculate the number of days in whole months of a particular +// year up to a particular date in the Gregorian and +// Islamic calendars. The Hebrew calendar uses this +// equation to calculate the number of whole months +// since the start of the calendar. +// +// +// Return: See comments +//------------------------------------------------------ +TInt TGregorianCalendar::DaysMonthsElapsed(const TInt aYear) const + { + TReal tempReal; + TInt result; + + tempReal = iOffset * iLeaps; + Mod(tempReal,tempReal,iCycle); + tempReal = ((iLeaps * aYear) - iLeaps + tempReal) / iCycle; + Floor(result,tempReal); + result = result + (iStdYearMonth * (aYear - KCalConvYearOffsetByOne)); + + return result; + } + +//------------------------------------------------------ +// Class: TArithmeticalCalendar +// Function: DayMonthInYear +// Arguments: None +// +// Comments: This function Determines the month based on +// the number of days into the year it is +// +// Return: TInt - Month +//------------------------------------------------------ +TInt TGregorianCalendar::DayMonthInYear(const TInt aDays) const + { + TReal tempReal; + TInt result; + + tempReal = iLeaps * iOffset; + Mod(tempReal,tempReal,iCycle); + tempReal = (iCycle * aDays) + (iCycle * iStdYearMonth) + iLeaps - KCalConvYearOffsetByOne + iCycle - tempReal; + tempReal = tempReal / ((iCycle * iStdYearMonth) + iLeaps); + Floor(result,tempReal); + + return result; + } diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/gregoriancalendar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/gregoriancalendar.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,40 @@ +// Copyright (c) 2000-2009 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 __GREGORIANCALENDAR_H__ +#define __GREGORIANCALENDAR_H__ + +#include "calendar.h" +#include "arithmeticaldate.h" + +class TGregorianCalendar : public TCalendar + { +public: + TGregorianCalendar(); + TGregorianCalendar(TReal aJulianDay); + void GregorianToDateTime(TDateTime& aDT); + void GregFromJulianDay(TArithmeticalDate& aDate, TReal aJulianDay) const; + TReal GregToJulianDay(const TArithmeticalDate& aYear) const; +private: + void InitMembers(); + TInt DayNumber(const TArithmeticalDate& aDate) const; + void CalcGregYear(TArithmeticalDate& aDate, TReal aJulianDay) const; + TBool IsLeapYear(const TInt aYear) const; + TInt GregDateDiff(const TArithmeticalDate aDate1, const TArithmeticalDate aDate2) const; + TInt DayMonthInYear(const TInt) const; + TInt DaysMonthsElapsed(const TInt) const; + }; + +#endif diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/table-587-2100/calcondata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/table-587-2100/calcondata.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,5401 @@ +// Copyright (c) 2000-2009 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: +// Generated by CalconTable.exe +// + +#include "calconvusingtable.h" +const TUint16 TCalconData::iCalConDataMonth[]={ + 43856U, // 0 - 8 + 11176U, // 0 - 9 + 11104U, // 0 - 10 + 37744U, // 0 - 11 + 18808U, // 0 - 12 + 18800U, // 0 - 13 + 25776U, // 0 - 14 + 27288U, // 0 - 15 + 23200U, // 0 - 16 + 23376U, // 0 - 17 + 22224U, // 0 - 18 + 9952U, // 0 - 19 + 37616U, // 0 - 20 + 37600U, // 0 - 21 + 51552U, // 0 - 22 + 54440U, // 0 - 23 + 46368U, // 0 - 24 + 54944U, // 0 - 25 + 44448U, // 0 - 26 + 21968U, // 0 - 27 + 9960U, // 0 - 28 + 9680U, // 0 - 29 + 37584U, // 0 - 30 + 43352U, // 0 - 31 + 43344U, // 0 - 32 + 46240U, // 0 - 33 + 46480U, // 0 - 34 + 44448U, // 0 - 35 + 19888U, // 0 - 36 + 19376U, // 0 - 37 + 9648U, // 0 - 38 + 37560U, // 0 - 39 + 21168U, // 0 - 40 + 26960U, // 0 - 41 + 27304U, // 0 - 42 + 23200U, // 0 - 43 + 43872U, // 0 - 44 + 38752U, // 0 - 45 + 19312U, // 0 - 46 + 9584U, // 0 - 47 + 42336U, // 0 - 48 + 53920U, // 0 - 49 + 59728U, // 0 - 50 + 54608U, // 0 - 51 + 22176U, // 0 - 52 + 43856U, // 0 - 53 + 38608U, // 0 - 54 + 19176U, // 0 - 55 + 19168U, // 0 - 56 + 42192U, // 0 - 57 + 53928U, // 0 - 58 + 43680U, // 0 - 59 + 46416U, // 1 - 0 + 22184U, // 1 - 1 + 11680U, // 1 - 2 + 38352U, // 1 - 3 + 38320U, // 1 - 4 + 18864U, // 1 - 5 + 42200U, // 1 - 6 + 25808U, // 1 - 7 + 27296U, // 1 - 8 + 44368U, // 1 - 9 + 27472U, // 1 - 10 + 11168U, // 1 - 11 + 38320U, // 1 - 12 + 37744U, // 1 - 13 + 18808U, // 1 - 14 + 18800U, // 1 - 15 + 21680U, // 1 - 16 + 27280U, // 1 - 17 + 55968U, // 1 - 18 + 23376U, // 1 - 19 + 11112U, // 1 - 20 + 9952U, // 1 - 21 + 37616U, // 1 - 22 + 37600U, // 1 - 23 + 51552U, // 1 - 24 + 54440U, // 1 - 25 + 46240U, // 1 - 26 + 46752U, // 1 - 27 + 22224U, // 1 - 28 + 21968U, // 1 - 29 + 9696U, // 1 - 30 + 37608U, // 1 - 31 + 37584U, // 1 - 32 + 43352U, // 1 - 33 + 43344U, // 1 - 34 + 46240U, // 1 - 35 + 46480U, // 1 - 36 + 44448U, // 1 - 37 + 19888U, // 1 - 38 + 9688U, // 1 - 39 + 9648U, // 1 - 40 + 37552U, // 1 - 41 + 43352U, // 1 - 42 + 26960U, // 1 - 43 + 27304U, // 1 - 44 + 23200U, // 1 - 45 + 43872U, // 1 - 46 + 19376U, // 1 - 47 + 19296U, // 1 - 48 + 42352U, // 1 - 49 + 21168U, // 1 - 50 + 53920U, // 1 - 51 + 55632U, // 1 - 52 + 54608U, // 1 - 53 + 22176U, // 1 - 54 + 39760U, // 1 - 55 + 38608U, // 1 - 56 + 19168U, // 1 - 57 + 42216U, // 1 - 58 + 42192U, // 1 - 59 + 53864U, // 2 - 0 + 43680U, // 2 - 1 + 46416U, // 2 - 2 + 22184U, // 2 - 3 + 11680U, // 2 - 4 + 38352U, // 2 - 5 + 18904U, // 2 - 6 + 18864U, // 2 - 7 + 42192U, // 2 - 8 + 45656U, // 2 - 9 + 27280U, // 2 - 10 + 44368U, // 2 - 11 + 23376U, // 2 - 12 + 11168U, // 2 - 13 + 38320U, // 2 - 14 + 37744U, // 2 - 15 + 18800U, // 2 - 16 + 42168U, // 2 - 17 + 21680U, // 2 - 18 + 27216U, // 2 - 19 + 55968U, // 2 - 20 + 23376U, // 2 - 21 + 11112U, // 2 - 22 + 9952U, // 2 - 23 + 37616U, // 2 - 24 + 18800U, // 2 - 25 + 51552U, // 2 - 26 + 54432U, // 2 - 27 + 55888U, // 2 - 28 + 46736U, // 2 - 29 + 22224U, // 2 - 30 + 21968U, // 2 - 31 + 9696U, // 2 - 32 + 37608U, // 2 - 33 + 37584U, // 2 - 34 + 43344U, // 2 - 35 + 54440U, // 2 - 36 + 44192U, // 2 - 37 + 46416U, // 2 - 38 + 44384U, // 2 - 39 + 19888U, // 2 - 40 + 9688U, // 2 - 41 + 9648U, // 2 - 42 + 21168U, // 2 - 43 + 43352U, // 2 - 44 + 26960U, // 2 - 45 + 27296U, // 2 - 46 + 44368U, // 2 - 47 + 39760U, // 2 - 48 + 19376U, // 2 - 49 + 19296U, // 2 - 50 + 42352U, // 2 - 51 + 21168U, // 2 - 52 + 53920U, // 2 - 53 + 54608U, // 2 - 54 + 27304U, // 2 - 55 + 22176U, // 2 - 56 + 38736U, // 2 - 57 + 38608U, // 2 - 58 + 19168U, // 2 - 59 + 42216U, // 3 - 0 + 42192U, // 3 - 1 + 53856U, // 3 - 2 + 54608U, // 3 - 3 + 46416U, // 3 - 4 + 13984U, // 3 - 5 + 38608U, // 3 - 6 + 38352U, // 3 - 7 + 18904U, // 3 - 8 + 18864U, // 3 - 9 + 42192U, // 3 - 10 + 43608U, // 3 - 11 + 27280U, // 3 - 12 + 44352U, // 3 - 13 + 44456U, // 3 - 14 + 11168U, // 3 - 15 + 38320U, // 3 - 16 + 18872U, // 3 - 17 + 18800U, // 3 - 18 + 25784U, // 3 - 19 + 21680U, // 3 - 20 + 27216U, // 3 - 21 + 27464U, // 3 - 22 + 23376U, // 3 - 23 + 11104U, // 3 - 24 + 37744U, // 3 - 25 + 37616U, // 3 - 26 + 18800U, // 3 - 27 + 43360U, // 3 - 28 + 54432U, // 3 - 29 + 55888U, // 3 - 30 + 46480U, // 3 - 31 + 22224U, // 3 - 32 + 9960U, // 3 - 33 + 9696U, // 3 - 34 + 37600U, // 3 - 35 + 51560U, // 3 - 36 + 43344U, // 3 - 37 + 54440U, // 3 - 38 + 43680U, // 3 - 39 + 44368U, // 3 - 40 + 21928U, // 3 - 41 + 19376U, // 3 - 42 + 9680U, // 3 - 43 + 37592U, // 3 - 44 + 21168U, // 3 - 45 + 43352U, // 3 - 46 + 26960U, // 3 - 47 + 27296U, // 3 - 48 + 44368U, // 3 - 49 + 39760U, // 3 - 50 + 19360U, // 3 - 51 + 42352U, // 3 - 52 + 42352U, // 3 - 53 + 21104U, // 3 - 54 + 26960U, // 3 - 55 + 54608U, // 3 - 56 + 23208U, // 3 - 57 + 22176U, // 3 - 58 + 38736U, // 3 - 59 + 19304U, // 4 - 0 + 19168U, // 4 - 1 + 42208U, // 4 - 2 + 53864U, // 4 - 3 + 53856U, // 4 - 4 + 54608U, // 4 - 5 + 46416U, // 4 - 6 + 13984U, // 4 - 7 + 38608U, // 4 - 8 + 38352U, // 4 - 9 + 17872U, // 4 - 10 + 41688U, // 4 - 11 + 42160U, // 4 - 12 + 43600U, // 4 - 13 + 46376U, // 4 - 14 + 44352U, // 4 - 15 + 44456U, // 4 - 16 + 11168U, // 4 - 17 + 37808U, // 4 - 18 + 17848U, // 4 - 19 + 17776U, // 4 - 20 + 25776U, // 4 - 21 + 43608U, // 4 - 22 + 27216U, // 4 - 23 + 27464U, // 4 - 24 + 22208U, // 4 - 25 + 43872U, // 4 - 26 + 37744U, // 4 - 27 + 35568U, // 4 - 28 + 17776U, // 4 - 29 + 21680U, // 4 - 30 + 54432U, // 4 - 31 + 55888U, // 4 - 32 + 46416U, // 4 - 33 + 22208U, // 4 - 34 + 42728U, // 4 - 35 + 9680U, // 4 - 36 + 37600U, // 4 - 37 + 51560U, // 4 - 38 + 43344U, // 4 - 39 + 46240U, // 4 - 40 + 54608U, // 4 - 41 + 44368U, // 4 - 42 + 21928U, // 4 - 43 + 19360U, // 4 - 44 + 42448U, // 4 - 45 + 37592U, // 4 - 46 + 21168U, // 4 - 47 + 43344U, // 4 - 48 + 45736U, // 4 - 49 + 27296U, // 4 - 50 + 44368U, // 4 - 51 + 19880U, // 4 - 52 + 19360U, // 4 - 53 + 42352U, // 4 - 54 + 41840U, // 4 - 55 + 21104U, // 4 - 56 + 25904U, // 4 - 57 + 54608U, // 4 - 58 + 23200U, // 4 - 59 + 43856U, // 5 - 0 + 38608U, // 5 - 1 + 19176U, // 5 - 2 + 18144U, // 5 - 3 + 41696U, // 5 - 4 + 53608U, // 5 - 5 + 51808U, // 5 - 6 + 54560U, // 5 - 7 + 55968U, // 5 - 8 + 46496U, // 5 - 9 + 22224U, // 5 - 10 + 19176U, // 5 - 11 + 17872U, // 5 - 12 + 41688U, // 5 - 13 + 41648U, // 5 - 14 + 43600U, // 5 - 15 + 46376U, // 5 - 16 + 27968U, // 5 - 17 + 44448U, // 5 - 18 + 21968U, // 5 - 19 + 37808U, // 5 - 20 + 17848U, // 5 - 21 + 17776U, // 5 - 22 + 21168U, // 5 - 23 + 27224U, // 5 - 24 + 23120U, // 5 - 25 + 27456U, // 5 - 26 + 43872U, // 5 - 27 + 43872U, // 5 - 28 + 35696U, // 5 - 29 + 17776U, // 5 - 30 + 50544U, // 5 - 31 + 21168U, // 5 - 32 + 53920U, // 5 - 33 + 54608U, // 5 - 34 + 23208U, // 5 - 35 + 22208U, // 5 - 36 + 42720U, // 5 - 37 + 35560U, // 5 - 38 + 35552U, // 5 - 39 + 42344U, // 5 - 40 + 42320U, // 5 - 41 + 45728U, // 5 - 42 + 46416U, // 5 - 43 + 44368U, // 5 - 44 + 19872U, // 5 - 45 + 38352U, // 5 - 46 + 38352U, // 5 - 47 + 19152U, // 5 - 48 + 42200U, // 5 - 49 + 42320U, // 5 - 50 + 43688U, // 5 - 51 + 27296U, // 5 - 52 + 44368U, // 5 - 53 + 19880U, // 5 - 54 + 11104U, // 5 - 55 + 38256U, // 5 - 56 + 18872U, // 5 - 57 + 18800U, // 5 - 58 + 25904U, // 5 - 59 + 54608U, // 6 - 0 + 23200U, // 6 - 1 + 39760U, // 6 - 2 + 22224U, // 6 - 3 + 10976U, // 6 - 4 + 37744U, // 6 - 5 + 41696U, // 6 - 6 + 51552U, // 6 - 7 + 54448U, // 6 - 8 + 54560U, // 6 - 9 + 54944U, // 6 - 10 + 44448U, // 6 - 11 + 22224U, // 6 - 12 + 9960U, // 6 - 13 + 9680U, // 6 - 14 + 41680U, // 6 - 15 + 51544U, // 6 - 16 + 43344U, // 6 - 17 + 46376U, // 6 - 18 + 27968U, // 6 - 19 + 44448U, // 6 - 20 + 21968U, // 6 - 21 + 19376U, // 6 - 22 + 17840U, // 6 - 23 + 37560U, // 6 - 24 + 21168U, // 6 - 25 + 26960U, // 6 - 26 + 27816U, // 6 - 27 + 23328U, // 6 - 28 + 43872U, // 6 - 29 + 42848U, // 6 - 30 + 19312U, // 6 - 31 + 9584U, // 6 - 32 + 42352U, // 6 - 33 + 21168U, // 6 - 34 + 26960U, // 6 - 35 + 54608U, // 6 - 36 + 23208U, // 6 - 37 + 22176U, // 6 - 38 + 38624U, // 6 - 39 + 19176U, // 6 - 40 + 19168U, // 6 - 41 + 42336U, // 6 - 42 + 53928U, // 6 - 43 + 45728U, // 6 - 44 + 46416U, // 6 - 45 + 22184U, // 6 - 46 + 19872U, // 6 - 47 + 38352U, // 6 - 48 + 38352U, // 6 - 49 + 18864U, // 6 - 50 + 42200U, // 6 - 51 + 42320U, // 6 - 52 + 43680U, // 6 - 53 + 46416U, // 6 - 54 + 43856U, // 6 - 55 + 11176U, // 6 - 56 + 11104U, // 6 - 57 + 37744U, // 6 - 58 + 18872U, // 6 - 59 + 18800U, // 7 - 0 + 25776U, // 7 - 1 + 27288U, // 7 - 2 + 23200U, // 7 - 3 + 23376U, // 7 - 4 + 11112U, // 7 - 5 + 10976U, // 7 - 6 + 37744U, // 7 - 7 + 37600U, // 7 - 8 + 51552U, // 7 - 9 + 54448U, // 7 - 10 + 54560U, // 7 - 11 + 54944U, // 7 - 12 + 22224U, // 7 - 13 + 22224U, // 7 - 14 + 9952U, // 7 - 15 + 37608U, // 7 - 16 + 37584U, // 7 - 17 + 51544U, // 7 - 18 + 43344U, // 7 - 19 + 46240U, // 7 - 20 + 46496U, // 7 - 21 + 44448U, // 7 - 22 + 21968U, // 7 - 23 + 9688U, // 7 - 24 + 9648U, // 7 - 25 + 37560U, // 7 - 26 + 21168U, // 7 - 27 + 26960U, // 7 - 28 + 27816U, // 7 - 29 + 23200U, // 7 - 30 + 43872U, // 7 - 31 + 19376U, // 7 - 32 + 19312U, // 7 - 33 + 9584U, // 7 - 34 + 42352U, // 7 - 35 + 21168U, // 7 - 36 + 26960U, // 7 - 37 + 54608U, // 7 - 38 + 23200U, // 7 - 39 + 43856U, // 7 - 40 + 38608U, // 7 - 41 + 19168U, // 7 - 42 + 42352U, // 7 - 43 + 42320U, // 7 - 44 + 53928U, // 7 - 45 + 45728U, // 7 - 46 + 46416U, // 7 - 47 + 22184U, // 7 - 48 + 11680U, // 7 - 49 + 38352U, // 7 - 50 + 19176U, // 7 - 51 + 18864U, // 7 - 52 + 42200U, // 7 - 53 + 42192U, // 7 - 54 + 43680U, // 7 - 55 + 46416U, // 7 - 56 + 27472U, // 7 - 57 + 11168U, // 7 - 58 + 38320U, // 7 - 59 + 37744U, // 8 - 0 + 18864U, // 8 - 1 + 42168U, // 8 - 2 + 25776U, // 8 - 3 + 27288U, // 8 - 4 + 23200U, // 8 - 5 + 23376U, // 8 - 6 + 11112U, // 8 - 7 + 9952U, // 8 - 8 + 37616U, // 8 - 9 + 18800U, // 8 - 10 + 51552U, // 8 - 11 + 54440U, // 8 - 12 + 46368U, // 8 - 13 + 54944U, // 8 - 14 + 22224U, // 8 - 15 + 21968U, // 8 - 16 + 9696U, // 8 - 17 + 37608U, // 8 - 18 + 37584U, // 8 - 19 + 43344U, // 8 - 20 + 54440U, // 8 - 21 + 46240U, // 8 - 22 + 46480U, // 8 - 23 + 44448U, // 8 - 24 + 19888U, // 8 - 25 + 9688U, // 8 - 26 + 9648U, // 8 - 27 + 37552U, // 8 - 28 + 43352U, // 8 - 29 + 26960U, // 8 - 30 + 27304U, // 8 - 31 + 23200U, // 8 - 32 + 43872U, // 8 - 33 + 19376U, // 8 - 34 + 19312U, // 8 - 35 + 9584U, // 8 - 36 + 21168U, // 8 - 37 + 53920U, // 8 - 38 + 59728U, // 8 - 39 + 27304U, // 8 - 40 + 22176U, // 8 - 41 + 39760U, // 8 - 42 + 38608U, // 8 - 43 + 19168U, // 8 - 44 + 42352U, // 8 - 45 + 42192U, // 8 - 46 + 53920U, // 8 - 47 + 54608U, // 8 - 48 + 46416U, // 8 - 49 + 22176U, // 8 - 50 + 38608U, // 8 - 51 + 38352U, // 8 - 52 + 19176U, // 8 - 53 + 18864U, // 8 - 54 + 42192U, // 8 - 55 + 45656U, // 8 - 56 + 27280U, // 8 - 57 + 44368U, // 8 - 58 + 13736U, // 8 - 59 + 11168U, // 9 - 0 + 38320U, // 9 - 1 + 37744U, // 9 - 2 + 18800U, // 9 - 3 + 42168U, // 9 - 4 + 21680U, // 9 - 5 + 27280U, // 9 - 6 + 27976U, // 9 - 7 + 23376U, // 9 - 8 + 11104U, // 9 - 9 + 37744U, // 9 - 10 + 37616U, // 9 - 11 + 18800U, // 9 - 12 + 51552U, // 9 - 13 + 54432U, // 9 - 14 + 55888U, // 9 - 15 + 54928U, // 9 - 16 + 22224U, // 9 - 17 + 10984U, // 9 - 18 + 9696U, // 9 - 19 + 37608U, // 9 - 20 + 37584U, // 9 - 21 + 43344U, // 9 - 22 + 54440U, // 9 - 23 + 46240U, // 9 - 24 + 46480U, // 9 - 25 + 22224U, // 9 - 26 + 19888U, // 9 - 27 + 9680U, // 9 - 28 + 37592U, // 9 - 29 + 21168U, // 9 - 30 + 43352U, // 9 - 31 + 26960U, // 9 - 32 + 27296U, // 9 - 33 + 44368U, // 9 - 34 + 43856U, // 9 - 35 + 19376U, // 9 - 36 + 9656U, // 9 - 37 + 9584U, // 9 - 38 + 21168U, // 9 - 39 + 53920U, // 9 - 40 + 55632U, // 9 - 41 + 27304U, // 9 - 42 + 22176U, // 9 - 43 + 38736U, // 9 - 44 + 19304U, // 9 - 45 + 19168U, // 9 - 46 + 42224U, // 9 - 47 + 21096U, // 9 - 48 + 53856U, // 9 - 49 + 54608U, // 9 - 50 + 46416U, // 9 - 51 + 22176U, // 9 - 52 + 38608U, // 9 - 53 + 38352U, // 9 - 54 + 18896U, // 9 - 55 + 42200U, // 9 - 56 + 42192U, // 9 - 57 + 45656U, // 9 - 58 + 27280U, // 9 - 59 + 44368U, // 10 - 0 + 11688U, // 10 - 1 + 11168U, // 10 - 2 + 38320U, // 10 - 3 + 18872U, // 10 - 4 + 18800U, // 10 - 5 + 42160U, // 10 - 6 + 43608U, // 10 - 7 + 27216U, // 10 - 8 + 27464U, // 10 - 9 + 23376U, // 10 - 10 + 11104U, // 10 - 11 + 37744U, // 10 - 12 + 37616U, // 10 - 13 + 18800U, // 10 - 14 + 25776U, // 10 - 15 + 54432U, // 10 - 16 + 55888U, // 10 - 17 + 46480U, // 10 - 18 + 22224U, // 10 - 19 + 9960U, // 10 - 20 + 9696U, // 10 - 21 + 37600U, // 10 - 22 + 51560U, // 10 - 23 + 43344U, // 10 - 24 + 54432U, // 10 - 25 + 54864U, // 10 - 26 + 46416U, // 10 - 27 + 22184U, // 10 - 28 + 19888U, // 10 - 29 + 9680U, // 10 - 30 + 37592U, // 10 - 31 + 21168U, // 10 - 32 + 43344U, // 10 - 33 + 46248U, // 10 - 34 + 27296U, // 10 - 35 + 44368U, // 10 - 36 + 39760U, // 10 - 37 + 19360U, // 10 - 38 + 42416U, // 10 - 39 + 42352U, // 10 - 40 + 21168U, // 10 - 41 + 26960U, // 10 - 42 + 54608U, // 10 - 43 + 23200U, // 10 - 44 + 43856U, // 10 - 45 + 38736U, // 10 - 46 + 19304U, // 10 - 47 + 19168U, // 10 - 48 + 42208U, // 10 - 49 + 53864U, // 10 - 50 + 53856U, // 10 - 51 + 54608U, // 10 - 52 + 23208U, // 10 - 53 + 13984U, // 10 - 54 + 38608U, // 10 - 55 + 38352U, // 10 - 56 + 18896U, // 10 - 57 + 42200U, // 10 - 58 + 42192U, // 10 - 59 + 43600U, // 11 - 0 + 46376U, // 11 - 1 + 44352U, // 11 - 2 + 44448U, // 11 - 3 + 38352U, // 11 - 4 + 37808U, // 11 - 5 + 18872U, // 11 - 6 + 18800U, // 11 - 7 + 42160U, // 11 - 8 + 43608U, // 11 - 9 + 27216U, // 11 - 10 + 27456U, // 11 - 11 + 44392U, // 11 - 12 + 11104U, // 11 - 13 + 37744U, // 11 - 14 + 37616U, // 11 - 15 + 18800U, // 11 - 16 + 21680U, // 11 - 17 + 54432U, // 11 - 18 + 55888U, // 11 - 19 + 23208U, // 11 - 20 + 22208U, // 11 - 21 + 42720U, // 11 - 22 + 37608U, // 11 - 23 + 37600U, // 11 - 24 + 51560U, // 11 - 25 + 43344U, // 11 - 26 + 54432U, // 11 - 27 + 54608U, // 11 - 28 + 44368U, // 11 - 29 + 21920U, // 11 - 30 + 42456U, // 11 - 31 + 9680U, // 11 - 32 + 37592U, // 11 - 33 + 21168U, // 11 - 34 + 43344U, // 11 - 35 + 45736U, // 11 - 36 + 27296U, // 11 - 37 + 44368U, // 11 - 38 + 19880U, // 11 - 39 + 19360U, // 11 - 40 + 42352U, // 11 - 41 + 21176U, // 11 - 42 + 21168U, // 11 - 43 + 26928U, // 11 - 44 + 54608U, // 11 - 45 + 23200U, // 11 - 46 + 43856U, // 11 - 47 + 38736U, // 11 - 48 + 19296U, // 11 - 49 + 42352U, // 11 - 50 + 41696U, // 11 - 51 + 53608U, // 11 - 52 + 51808U, // 11 - 53 + 54560U, // 11 - 54 + 55968U, // 11 - 55 + 46752U, // 11 - 56 + 38608U, // 11 - 57 + 19176U, // 11 - 58 + 17872U, // 11 - 59 + 41680U, // 12 - 0 + 53608U, // 12 - 1 + 43600U, // 12 - 2 + 46376U, // 12 - 3 + 44352U, // 12 - 4 + 44448U, // 12 - 5 + 38352U, // 12 - 6 + 37808U, // 12 - 7 + 17840U, // 12 - 8 + 41656U, // 12 - 9 + 25264U, // 12 - 10 + 27224U, // 12 - 11 + 27216U, // 12 - 12 + 27456U, // 12 - 13 + 43872U, // 12 - 14 + 43872U, // 12 - 15 + 35696U, // 12 - 16 + 17776U, // 12 - 17 + 50544U, // 12 - 18 + 21168U, // 12 - 19 + 26960U, // 12 - 20 + 55632U, // 12 - 21 + 23208U, // 12 - 22 + 22208U, // 12 - 23 + 42720U, // 12 - 24 + 35560U, // 12 - 25 + 35552U, // 12 - 26 + 42336U, // 12 - 27 + 53928U, // 12 - 28 + 45728U, // 12 - 29 + 54608U, // 12 - 30 + 44368U, // 12 - 31 + 21920U, // 12 - 32 + 42448U, // 12 - 33 + 38352U, // 12 - 34 + 19152U, // 12 - 35 + 43352U, // 12 - 36 + 42320U, // 12 - 37 + 45728U, // 12 - 38 + 46416U, // 12 - 39 + 44368U, // 12 - 40 + 19880U, // 12 - 41 + 19360U, // 12 - 42 + 38256U, // 12 - 43 + 20920U, // 12 - 44 + 20848U, // 12 - 45 + 25904U, // 12 - 46 + 27304U, // 12 - 47 + 23200U, // 12 - 48 + 43856U, // 12 - 49 + 22352U, // 12 - 50 + 19296U, // 12 - 51 + 41840U, // 12 - 52 + 41696U, // 12 - 53 + 53600U, // 12 - 54 + 54448U, // 12 - 55 + 54560U, // 12 - 56 + 55968U, // 12 - 57 + 23248U, // 12 - 58 + 22224U, // 12 - 59 + 19176U, // 13 - 0 + 17872U, // 13 - 1 + 41680U, // 13 - 2 + 51544U, // 13 - 3 + 43344U, // 13 - 4 + 46368U, // 13 - 5 + 46752U, // 13 - 6 + 44448U, // 13 - 7 + 21968U, // 13 - 8 + 35760U, // 13 - 9 + 17840U, // 13 - 10 + 41656U, // 13 - 11 + 21168U, // 13 - 12 + 26960U, // 13 - 13 + 44200U, // 13 - 14 + 27424U, // 13 - 15 + 43872U, // 13 - 16 + 21424U, // 13 - 17 + 19312U, // 13 - 18 + 17776U, // 13 - 19 + 42352U, // 13 - 20 + 21168U, // 13 - 21 + 26960U, // 13 - 22 + 54608U, // 13 - 23 + 23200U, // 13 - 24 + 43872U, // 13 - 25 + 42720U, // 13 - 26 + 19168U, // 13 - 27 + 50544U, // 13 - 28 + 42336U, // 13 - 29 + 53928U, // 13 - 30 + 45728U, // 13 - 31 + 46416U, // 13 - 32 + 22184U, // 13 - 33 + 19872U, // 13 - 34 + 38352U, // 13 - 35 + 19176U, // 13 - 36 + 18864U, // 13 - 37 + 42200U, // 13 - 38 + 42320U, // 13 - 39 + 43680U, // 13 - 40 + 46416U, // 13 - 41 + 44368U, // 13 - 42 + 11680U, // 13 - 43 + 38352U, // 13 - 44 + 37744U, // 13 - 45 + 18872U, // 13 - 46 + 18800U, // 13 - 47 + 25776U, // 13 - 48 + 27288U, // 13 - 49 + 23200U, // 13 - 50 + 23376U, // 13 - 51 + 11112U, // 13 - 52 + 10976U, // 13 - 53 + 37744U, // 13 - 54 + 18800U, // 13 - 55 + 51552U, // 13 - 56 + 54448U, // 13 - 57 + 54560U, // 13 - 58 + 54944U, // 13 - 59 + 23248U, // 14 - 0 + 22224U, // 14 - 1 + 9952U, // 14 - 2 + 37608U, // 14 - 3 + 37584U, // 14 - 4 + 51544U, // 14 - 5 + 43344U, // 14 - 6 + 46368U, // 14 - 7 + 46752U, // 14 - 8 + 44448U, // 14 - 9 + 21968U, // 14 - 10 + 9688U, // 14 - 11 + 9648U, // 14 - 12 + 37552U, // 14 - 13 + 43352U, // 14 - 14 + 26960U, // 14 - 15 + 44200U, // 14 - 16 + 23200U, // 14 - 17 + 43872U, // 14 - 18 + 19376U, // 14 - 19 + 19312U, // 14 - 20 + 9584U, // 14 - 21 + 21176U, // 14 - 22 + 21168U, // 14 - 23 + 26960U, // 14 - 24 + 54608U, // 14 - 25 + 23200U, // 14 - 26 + 43856U, // 14 - 27 + 38624U, // 14 - 28 + 19168U, // 14 - 29 + 42352U, // 14 - 30 + 42320U, // 14 - 31 + 53920U, // 14 - 32 + 55632U, // 14 - 33 + 46416U, // 14 - 34 + 22184U, // 14 - 35 + 11680U, // 14 - 36 + 38352U, // 14 - 37 + 19176U, // 14 - 38 + 18864U, // 14 - 39 + 42192U, // 14 - 40 + 53864U, // 14 - 41 + 43680U, // 14 - 42 + 46416U, // 14 - 43 + 43856U, // 14 - 44 + 11680U, // 14 - 45 + 38320U, // 14 - 46 + 37744U, // 14 - 47 + 18864U, // 14 - 48 + 42168U, // 14 - 49 + 25776U, // 14 - 50 + 27280U, // 14 - 51 + 44368U, // 14 - 52 + 23376U, // 14 - 53 + 11112U, // 14 - 54 + 10976U, // 14 - 55 + 37616U, // 14 - 56 + 18800U, // 14 - 57 + 51552U, // 14 - 58 + 54432U, // 14 - 59 + 60048U, // 15 - 0 + 54928U, // 15 - 1 + 22224U, // 15 - 2 + 11112U, // 15 - 3 + 9952U, // 15 - 4 + 37608U, // 15 - 5 + 37584U, // 15 - 6 + 51536U, // 15 - 7 + 54440U, // 15 - 8 + 46240U, // 15 - 9 + 46480U, // 15 - 10 + 22224U, // 15 - 11 + 19888U, // 15 - 12 + 9688U, // 15 - 13 + 9648U, // 15 - 14 + 37552U, // 15 - 15 + 43352U, // 15 - 16 + 26960U, // 15 - 17 + 27808U, // 15 - 18 + 44368U, // 15 - 19 + 43872U, // 15 - 20 + 19376U, // 15 - 21 + 9656U, // 15 - 22 + 9584U, // 15 - 23 + 21168U, // 15 - 24 + 53920U, // 15 - 25 + 59728U, // 15 - 26 + 27304U, // 15 - 27 + 23200U, // 15 - 28 + 43856U, // 15 - 29 + 19304U, // 15 - 30 + 19168U, // 15 - 31 + 42352U, // 15 - 32 + 42208U, // 15 - 33 + 53920U, // 15 - 34 + 55632U, // 15 - 35 + 46416U, // 15 - 36 + 22176U, // 15 - 37 + 38608U, // 15 - 38 + 38352U, // 15 - 39 + 19168U, // 15 - 40 + 42200U, // 15 - 41 + 42192U, // 15 - 42 + 45672U, // 15 - 43 + 43664U, // 15 - 44 + 46416U, // 15 - 45 + 13736U, // 15 - 46 + 11168U, // 15 - 47 + 38320U, // 15 - 48 + 18872U, // 15 - 49 + 18800U, // 15 - 50 + 42168U, // 15 - 51 + 21680U, // 15 - 52 + 27280U, // 15 - 53 + 27976U, // 15 - 54 + 23376U, // 15 - 55 + 11104U, // 15 - 56 + 37744U, // 15 - 57 + 37616U, // 15 - 58 + 18800U, // 15 - 59 + 25776U, // 16 - 0 + 54432U, // 16 - 1 + 55888U, // 16 - 2 + 54928U, // 16 - 3 + 22224U, // 16 - 4 + 10984U, // 16 - 5 + 9952U, // 16 - 6 + 37600U, // 16 - 7 + 51560U, // 16 - 8 + 43344U, // 16 - 9 + 54440U, // 16 - 10 + 46240U, // 16 - 11 + 46480U, // 16 - 12 + 22224U, // 16 - 13 + 19888U, // 16 - 14 + 9680U, // 16 - 15 + 37592U, // 16 - 16 + 37552U, // 16 - 17 + 43344U, // 16 - 18 + 46248U, // 16 - 19 + 27296U, // 16 - 20 + 44368U, // 16 - 21 + 43856U, // 16 - 22 + 19376U, // 16 - 23 + 9656U, // 16 - 24 + 9584U, // 16 - 25 + 21168U, // 16 - 26 + 26960U, // 16 - 27 + 59728U, // 16 - 28 + 27304U, // 16 - 29 + 22176U, // 16 - 30 + 39760U, // 16 - 31 + 19304U, // 16 - 32 + 19168U, // 16 - 33 + 42352U, // 16 - 34 + 21096U, // 16 - 35 + 53856U, // 16 - 36 + 54608U, // 16 - 37 + 23208U, // 16 - 38 + 22176U, // 16 - 39 + 38608U, // 16 - 40 + 38352U, // 16 - 41 + 18896U, // 16 - 42 + 42200U, // 16 - 43 + 42192U, // 16 - 44 + 45648U, // 16 - 45 + 46408U, // 16 - 46 + 44368U, // 16 - 47 + 13736U, // 16 - 48 + 11168U, // 16 - 49 + 38320U, // 16 - 50 + 18872U, // 16 - 51 + 18800U, // 16 - 52 + 42160U, // 16 - 53 + 43608U, // 16 - 54 + 27216U, // 16 - 55 + 27968U, // 16 - 56 + 44456U, // 16 - 57 + 11104U, // 16 - 58 + 37744U, // 16 - 59 + 37616U, // 17 - 0 + 18800U, // 17 - 1 + 25776U, // 17 - 2 + 54432U, // 17 - 3 + 55888U, // 17 - 4 + 23368U, // 17 - 5 + 22224U, // 17 - 6 + 10984U, // 17 - 7 + 9696U, // 17 - 8 + 37600U, // 17 - 9 + 51560U, // 17 - 10 + 43344U, // 17 - 11 + 54432U, // 17 - 12 + 54864U, // 17 - 13 + 46416U, // 17 - 14 + 22192U, // 17 - 15 + 9944U, // 17 - 16 + 9680U, // 17 - 17 + 37592U, // 17 - 18 + 21168U, // 17 - 19 + 43344U, // 17 - 20 + 46248U, // 17 - 21 + 27296U, // 17 - 22 + 44368U, // 17 - 23 + 21928U, // 17 - 24 + 19360U, // 17 - 25 + 42416U, // 17 - 26 + 42352U, // 17 - 27 + 21168U, // 17 - 28 + 26960U, // 17 - 29 + 54608U, // 17 - 30 + 27296U, // 17 - 31 + 43856U, // 17 - 32 + 38736U, // 17 - 33 + 19296U, // 17 - 34 + 42352U, // 17 - 35 + 42208U, // 17 - 36 + 53864U, // 17 - 37 + 53856U, // 17 - 38 + 54608U, // 17 - 39 + 23208U, // 17 - 40 + 13984U, // 17 - 41 + 38608U, // 17 - 42 + 19176U, // 17 - 43 + 18896U, // 17 - 44 + 42200U, // 17 - 45 + 42192U, // 17 - 46 + 43600U, // 17 - 47 + 46376U, // 17 - 48 + 44352U, // 17 - 49 + 44448U, // 17 - 50 + 38352U, // 17 - 51 + 38320U, // 17 - 52 + 18864U, // 17 - 53 + 42168U, // 17 - 54 + 42160U, // 17 - 55 + 43608U, // 17 - 56 + 27216U, // 17 - 57 + 27456U, // 17 - 58 + 44456U, // 17 - 59 + 11104U, // 18 - 0 + 37744U, // 18 - 1 + 18808U, // 18 - 2 + 18800U, // 18 - 3 + 21680U, // 18 - 4 + 54432U, // 18 - 5 + 55888U, // 18 - 6 + 23208U, // 18 - 7 + 22224U, // 18 - 8 + 9952U, // 18 - 9 + 37616U, // 18 - 10 + 37600U, // 18 - 11 + 51552U, // 18 - 12 + 54440U, // 18 - 13 + 54432U, // 18 - 14 + 54608U, // 18 - 15 + 46416U, // 18 - 16 + 22176U, // 18 - 17 + 42712U, // 18 - 18 + 9680U, // 18 - 19 + 37584U, // 18 - 20 + 43352U, // 18 - 21 + 43344U, // 18 - 22 + 45736U, // 18 - 23 + 27296U, // 18 - 24 + 44368U, // 18 - 25 + 19880U, // 18 - 26 + 19360U, // 18 - 27 + 42416U, // 18 - 28 + 21176U, // 18 - 29 + 21104U, // 18 - 30 + 26928U, // 18 - 31 + 27304U, // 18 - 32 + 27296U, // 18 - 33 + 43856U, // 18 - 34 + 38736U, // 18 - 35 + 19296U, // 18 - 36 + 42352U, // 18 - 37 + 42208U, // 18 - 38 + 53856U, // 18 - 39 + 59696U, // 18 - 40 + 54560U, // 18 - 41 + 55968U, // 18 - 42 + 46752U, // 18 - 43 + 38608U, // 18 - 44 + 19176U, // 18 - 45 + 18896U, // 18 - 46 + 41680U, // 18 - 47 + 53864U, // 18 - 48 + 43600U, // 18 - 49 + 46368U, // 18 - 50 + 54944U, // 18 - 51 + 44448U, // 18 - 52 + 21968U, // 18 - 53 + 37808U, // 18 - 54 + 17840U, // 18 - 55 + 41656U, // 18 - 56 + 25776U, // 18 - 57 + 43600U, // 18 - 58 + 46376U, // 18 - 59 + 27456U, // 19 - 0 + 44448U, // 19 - 1 + 43872U, // 19 - 2 + 37744U, // 19 - 3 + 17784U, // 19 - 4 + 17776U, // 19 - 5 + 21680U, // 19 - 6 + 27216U, // 19 - 7 + 55632U, // 19 - 8 + 23200U, // 19 - 9 + 43872U, // 19 - 10 + 42720U, // 19 - 11 + 37608U, // 19 - 12 + 35552U, // 19 - 13 + 42336U, // 19 - 14 + 54440U, // 19 - 15 + 53920U, // 19 - 16 + 54608U, // 19 - 17 + 22184U, // 19 - 18 + 21920U, // 19 - 19 + 42448U, // 19 - 20 + 42448U, // 19 - 21 + 19152U, // 19 - 22 + 43352U, // 19 - 23 + 43344U, // 19 - 24 + 45728U, // 19 - 25 + 46416U, // 19 - 26 + 44368U, // 19 - 27 + 19872U, // 19 - 28 + 42448U, // 19 - 29 + 42416U, // 19 - 30 + 20920U, // 19 - 31 + 20848U, // 19 - 32 + 25904U, // 19 - 33 + 27304U, // 19 - 34 + 23200U, // 19 - 35 + 43856U, // 19 - 36 + 11176U, // 19 - 37 + 19296U, // 19 - 38 + 41840U, // 19 - 39 + 41696U, // 19 - 40 + 53600U, // 19 - 41 + 58672U, // 19 - 42 + 54560U, // 19 - 43 + 55968U, // 19 - 44 + 23248U, // 19 - 45 + 22224U, // 19 - 46 + 19168U, // 19 - 47 + 41704U, // 19 - 48 + 41680U, // 19 - 49 + 51544U, // 19 - 50 + 43600U, // 19 - 51 + 46368U, // 19 - 52 + 46752U, // 19 - 53 + 44448U, // 19 - 54 + 21968U, // 19 - 55 + 9688U, // 19 - 56 + 17840U, // 19 - 57 + 41656U, // 19 - 58 + 21168U, // 19 - 59 + 43344U, // 20 - 0 + 46376U, // 20 - 1 + 27424U, // 20 - 2 + 43872U, // 20 - 3 + 21936U, // 20 - 4 + 19312U, // 20 - 5 + 17776U, // 20 - 6 + 25272U, // 20 - 7 + 21168U, // 20 - 8 + 26960U, // 20 - 9 + 55632U, // 20 - 10 + 23200U, // 20 - 11 + 43872U, // 20 - 12 + 42720U, // 20 - 13 + 19168U, // 20 - 14 + 42352U, // 20 - 15 + 42336U, // 20 - 16 + 53928U, // 20 - 17 + 45728U, // 20 - 18 + 46416U, // 20 - 19 + 22184U, // 20 - 20 + 21920U, // 20 - 21 + 38352U, // 20 - 22 + 19176U, // 20 - 23 + 18896U, // 20 - 24 + 42192U, // 20 - 25 + 53928U, // 20 - 26 + 43680U, // 20 - 27 + 46416U, // 20 - 28 + 44368U, // 20 - 29 + 11680U, // 20 - 30 + 38352U, // 20 - 31 + 38256U, // 20 - 32 + 18864U, // 20 - 33 + 42168U, // 20 - 34 + 25776U, // 20 - 35 + 27288U, // 20 - 36 + 23200U, // 20 - 37 + 23376U, // 20 - 38 + 11112U, // 20 - 39 + 10976U, // 20 - 40 + 37744U, // 20 - 41 + 18800U, // 20 - 42 + 51552U, // 20 - 43 + 54448U, // 20 - 44 + 27280U, // 20 - 45 + 54944U, // 20 - 46 + 23248U, // 20 - 47 + 22224U, // 20 - 48 + 10976U, // 20 - 49 + 37608U, // 20 - 50 + 37584U, // 20 - 51 + 51536U, // 20 - 52 + 54440U, // 20 - 53 + 46368U, // 20 - 54 + 46736U, // 20 - 55 + 44448U, // 20 - 56 + 21968U, // 20 - 57 + 9688U, // 20 - 58 + 9648U, // 20 - 59 + 37552U, // 21 - 0 + 43352U, // 21 - 1 + 26960U, // 21 - 2 + 27808U, // 21 - 3 + 46416U, // 21 - 4 + 43872U, // 21 - 5 + 19888U, // 21 - 6 + 19312U, // 21 - 7 + 9584U, // 21 - 8 + 21176U, // 21 - 9 + 21168U, // 21 - 10 + 26960U, // 21 - 11 + 27304U, // 21 - 12 + 23200U, // 21 - 13 + 43856U, // 21 - 14 + 38608U, // 21 - 15 + 19168U, // 21 - 16 + 42352U, // 21 - 17 + 42208U, // 21 - 18 + 53920U, // 21 - 19 + 55632U, // 21 - 20 + 46416U, // 21 - 21 + 22176U, // 21 - 22 + 42704U, // 21 - 23 + 38352U, // 21 - 24 + 19176U, // 21 - 25 + 18864U, // 21 - 26 + 42192U, // 21 - 27 + 53864U, // 21 - 28 + 43680U, // 21 - 29 + 46416U, // 21 - 30 + 22184U, // 21 - 31 + 11680U, // 21 - 32 + 38320U, // 21 - 33 + 18872U, // 21 - 34 + 18864U, // 21 - 35 + 42168U, // 21 - 36 + 25776U, // 21 - 37 + 27280U, // 21 - 38 + 44368U, // 21 - 39 + 23376U, // 21 - 40 + 11104U, // 21 - 41 + 38256U, // 21 - 42 + 37744U, // 21 - 43 + 18800U, // 21 - 44 + 51552U, // 21 - 45 + 54432U, // 21 - 46 + 60048U, // 21 - 47 + 54928U, // 21 - 48 + 22224U, // 21 - 49 + 11112U, // 21 - 50 + 9952U, // 21 - 51 + 37600U, // 21 - 52 + 51560U, // 21 - 53 + 51536U, // 21 - 54 + 54440U, // 21 - 55 + 46240U, // 21 - 56 + 46480U, // 21 - 57 + 22224U, // 21 - 58 + 21936U, // 21 - 59 + 9680U, // 22 - 0 + 37592U, // 22 - 1 + 37552U, // 22 - 2 + 43352U, // 22 - 3 + 26960U, // 22 - 4 + 27808U, // 22 - 5 + 44368U, // 22 - 6 + 43856U, // 22 - 7 + 19376U, // 22 - 8 + 9656U, // 22 - 9 + 9584U, // 22 - 10 + 21168U, // 22 - 11 + 43352U, // 22 - 12 + 26960U, // 22 - 13 + 27304U, // 22 - 14 + 23200U, // 22 - 15 + 43856U, // 22 - 16 + 19304U, // 22 - 17 + 19168U, // 22 - 18 + 42352U, // 22 - 19 + 21096U, // 22 - 20 + 53856U, // 22 - 21 + 55632U, // 22 - 22 + 46416U, // 22 - 23 + 22176U, // 22 - 24 + 38608U, // 22 - 25 + 38352U, // 22 - 26 + 19152U, // 22 - 27 + 42200U, // 22 - 28 + 42192U, // 22 - 29 + 53848U, // 22 - 30 + 43680U, // 22 - 31 + 46416U, // 22 - 32 + 13736U, // 22 - 33 + 11168U, // 22 - 34 + 38320U, // 22 - 35 + 18872U, // 22 - 36 + 18800U, // 22 - 37 + 42160U, // 22 - 38 + 45656U, // 22 - 39 + 27216U, // 22 - 40 + 27984U, // 22 - 41 + 23376U, // 22 - 42 + 11104U, // 22 - 43 + 37744U, // 22 - 44 + 37616U, // 22 - 45 + 18800U, // 22 - 46 + 25776U, // 22 - 47 + 54432U, // 22 - 48 + 55888U, // 22 - 49 + 54928U, // 22 - 50 + 22224U, // 22 - 51 + 10984U, // 22 - 52 + 9952U, // 22 - 53 + 37600U, // 22 - 54 + 51560U, // 22 - 55 + 43344U, // 22 - 56 + 54432U, // 22 - 57 + 55888U, // 22 - 58 + 46416U, // 22 - 59 + 22224U, // 23 - 0 + 19888U, // 23 - 1 + 9680U, // 23 - 2 + 37592U, // 23 - 3 + 37552U, // 23 - 4 + 43344U, // 23 - 5 + 46248U, // 23 - 6 + 27296U, // 23 - 7 + 44368U, // 23 - 8 + 21928U, // 23 - 9 + 19376U, // 23 - 10 + 9648U, // 23 - 11 + 42352U, // 23 - 12 + 21168U, // 23 - 13 + 26960U, // 23 - 14 + 59728U, // 23 - 15 + 27296U, // 23 - 16 + 44368U, // 23 - 17 + 39760U, // 23 - 18 + 19304U, // 23 - 19 + 19168U, // 23 - 20 + 42224U, // 23 - 21 + 21096U, // 23 - 22 + 53856U, // 23 - 23 + 54608U, // 23 - 24 + 23208U, // 23 - 25 + 22176U, // 23 - 26 + 38608U, // 23 - 27 + 19176U, // 23 - 28 + 18896U, // 23 - 29 + 42200U, // 23 - 30 + 42192U, // 23 - 31 + 45648U, // 23 - 32 + 54568U, // 23 - 33 + 44368U, // 23 - 34 + 13728U, // 23 - 35 + 38352U, // 23 - 36 + 38320U, // 23 - 37 + 18872U, // 23 - 38 + 18800U, // 23 - 39 + 42160U, // 23 - 40 + 43608U, // 23 - 41 + 27216U, // 23 - 42 + 27968U, // 23 - 43 + 44456U, // 23 - 44 + 11104U, // 23 - 45 + 37744U, // 23 - 46 + 18808U, // 23 - 47 + 18800U, // 23 - 48 + 25776U, // 23 - 49 + 54432U, // 23 - 50 + 55888U, // 23 - 51 + 27464U, // 23 - 52 + 22224U, // 23 - 53 + 10976U, // 23 - 54 + 37616U, // 23 - 55 + 37600U, // 23 - 56 + 51560U, // 23 - 57 + 43344U, // 23 - 58 + 54432U, // 23 - 59 + 55888U, // 24 - 0 + 46416U, // 24 - 1 + 22176U, // 24 - 2 + 42712U, // 24 - 3 + 9680U, // 24 - 4 + 37584U, // 24 - 5 + 43352U, // 24 - 6 + 43344U, // 24 - 7 + 46248U, // 24 - 8 + 27296U, // 24 - 9 + 44368U, // 24 - 10 + 21928U, // 24 - 11 + 19360U, // 24 - 12 + 42416U, // 24 - 13 + 21176U, // 24 - 14 + 21168U, // 24 - 15 + 26960U, // 24 - 16 + 58704U, // 24 - 17 + 27296U, // 24 - 18 + 43856U, // 24 - 19 + 39760U, // 24 - 20 + 19296U, // 24 - 21 + 42352U, // 24 - 22 + 42208U, // 24 - 23 + 53856U, // 24 - 24 + 59696U, // 24 - 25 + 54608U, // 24 - 26 + 23208U, // 24 - 27 + 22176U, // 24 - 28 + 38608U, // 24 - 29 + 19176U, // 24 - 30 + 18896U, // 24 - 31 + 42192U, // 24 - 32 + 53864U, // 24 - 33 + 45648U, // 24 - 34 + 46376U, // 24 - 35 + 44352U, // 24 - 36 + 44448U, // 24 - 37 + 38352U, // 24 - 38 + 38320U, // 24 - 39 + 18864U, // 24 - 40 + 42168U, // 24 - 41 + 42160U, // 24 - 42 + 43600U, // 24 - 43 + 46376U, // 24 - 44 + 27456U, // 24 - 45 + 44456U, // 24 - 46 + 11104U, // 24 - 47 + 37744U, // 24 - 48 + 18808U, // 24 - 49 + 18800U, // 24 - 50 + 21680U, // 24 - 51 + 27216U, // 24 - 52 + 55888U, // 24 - 53 + 23208U, // 24 - 54 + 22208U, // 24 - 55 + 42720U, // 24 - 56 + 37608U, // 24 - 57 + 37600U, // 24 - 58 + 51552U, // 24 - 59 + 54440U, // 25 - 0 + 54432U, // 25 - 1 + 54608U, // 25 - 2 + 23208U, // 25 - 3 + 22176U, // 25 - 4 + 42712U, // 25 - 5 + 9680U, // 25 - 6 + 37584U, // 25 - 7 + 43352U, // 25 - 8 + 43344U, // 25 - 9 + 46240U, // 25 - 10 + 46416U, // 25 - 11 + 44368U, // 25 - 12 + 21928U, // 25 - 13 + 19360U, // 25 - 14 + 42416U, // 25 - 15 + 21176U, // 25 - 16 + 21104U, // 25 - 17 + 26928U, // 25 - 18 + 27304U, // 25 - 19 + 27296U, // 25 - 20 + 43856U, // 25 - 21 + 19368U, // 25 - 22 + 19296U, // 25 - 23 + 42352U, // 25 - 24 + 41696U, // 25 - 25 + 53856U, // 25 - 26 + 59696U, // 25 - 27 + 54560U, // 25 - 28 + 55968U, // 25 - 29 + 23376U, // 25 - 30 + 22224U, // 25 - 31 + 19168U, // 25 - 32 + 41704U, // 25 - 33 + 41680U, // 25 - 34 + 53848U, // 25 - 35 + 43600U, // 25 - 36 + 46368U, // 25 - 37 + 54944U, // 25 - 38 + 44448U, // 25 - 39 + 21968U, // 25 - 40 + 18904U, // 25 - 41 + 17840U, // 25 - 42 + 41656U, // 25 - 43 + 42160U, // 25 - 44 + 43600U, // 25 - 45 + 46376U, // 25 - 46 + 27456U, // 25 - 47 + 44384U, // 25 - 48 + 21936U, // 25 - 49 + 37744U, // 25 - 50 + 17784U, // 25 - 51 + 17776U, // 25 - 52 + 21680U, // 25 - 53 + 27216U, // 25 - 54 + 55888U, // 25 - 55 + 23200U, // 25 - 56 + 43872U, // 25 - 57 + 42720U, // 25 - 58 + 37600U, // 25 - 59 + 50544U, // 26 - 0 + 50528U, // 26 - 1 + 54440U, // 26 - 2 + 54432U, // 26 - 3 + 54608U, // 26 - 4 + 23208U, // 26 - 5 + 21920U, // 26 - 6 + 42448U, // 26 - 7 + 21224U, // 26 - 8 + 21200U, // 26 - 9 + 43352U, // 26 - 10 + 42320U, // 26 - 11 + 45728U, // 26 - 12 + 46416U, // 26 - 13 + 44368U, // 26 - 14 + 19872U, // 26 - 15 + 42448U, // 26 - 16 + 42416U, // 26 - 17 + 20912U, // 26 - 18 + 43192U, // 26 - 19 + 25904U, // 26 - 20 + 27288U, // 26 - 21 + 23200U, // 26 - 22 + 43856U, // 26 - 23 + 11112U, // 26 - 24 + 11104U, // 26 - 25 + 41840U, // 26 - 26 + 20848U, // 26 - 27 + 53600U, // 26 - 28 + 58672U, // 26 - 29 + 54560U, // 26 - 30 + 55968U, // 26 - 31 + 23376U, // 26 - 32 + 22224U, // 26 - 33 + 10976U, // 26 - 34 + 41704U, // 26 - 35 + 41680U, // 26 - 36 + 53584U, // 26 - 37 + 54568U, // 26 - 38 + 46368U, // 26 - 39 + 54928U, // 26 - 40 + 44448U, // 26 - 41 + 21968U, // 26 - 42 + 10712U, // 26 - 43 + 17840U, // 26 - 44 + 41648U, // 26 - 45 + 43352U, // 26 - 46 + 43344U, // 26 - 47 + 46376U, // 26 - 48 + 27424U, // 26 - 49 + 44384U, // 26 - 50 + 21936U, // 26 - 51 + 19312U, // 26 - 52 + 17776U, // 26 - 53 + 25272U, // 26 - 54 + 21168U, // 26 - 55 + 26960U, // 26 - 56 + 27816U, // 26 - 57 + 23200U, // 26 - 58 + 43856U, // 26 - 59 + 42720U, // 27 - 0 + 19168U, // 27 - 1 + 42352U, // 27 - 2 + 42336U, // 27 - 3 + 53920U, // 27 - 4 + 59728U, // 27 - 5 + 54608U, // 27 - 6 + 22184U, // 27 - 7 + 21920U, // 27 - 8 + 38352U, // 27 - 9 + 19176U, // 27 - 10 + 18896U, // 27 - 11 + 42192U, // 27 - 12 + 53928U, // 27 - 13 + 45728U, // 27 - 14 + 46416U, // 27 - 15 + 22184U, // 27 - 16 + 11680U, // 27 - 17 + 38320U, // 27 - 18 + 38256U, // 27 - 19 + 18864U, // 27 - 20 + 42168U, // 27 - 21 + 25776U, // 27 - 22 + 27280U, // 27 - 23 + 44368U, // 27 - 24 + 27472U, // 27 - 25 + 11104U, // 27 - 26 + 38320U, // 27 - 27 + 37744U, // 27 - 28 + 18800U, // 27 - 29 + 51552U, // 27 - 30 + 58544U, // 27 - 31 + 27280U, // 27 - 32 + 55952U, // 27 - 33 + 23248U, // 27 - 34 + 11112U, // 27 - 35 + 10976U, // 27 - 36 + 37608U, // 27 - 37 + 37584U, // 27 - 38 + 51536U, // 27 - 39 + 54440U, // 27 - 40 + 46368U, // 27 - 41 + 46736U, // 27 - 42 + 22224U, // 27 - 43 + 21936U, // 27 - 44 + 9680U, // 27 - 45 + 37592U, // 27 - 46 + 37552U, // 27 - 47 + 43352U, // 27 - 48 + 26960U, // 27 - 49 + 29856U, // 27 - 50 + 46416U, // 27 - 51 + 43872U, // 27 - 52 + 21936U, // 27 - 53 + 9656U, // 27 - 54 + 9584U, // 27 - 55 + 21176U, // 27 - 56 + 21168U, // 27 - 57 + 26960U, // 27 - 58 + 27304U, // 27 - 59 + 23200U, // 28 - 0 + 43856U, // 28 - 1 + 19304U, // 28 - 2 + 19168U, // 28 - 3 + 42352U, // 28 - 4 + 21104U, // 28 - 5 + 53920U, // 28 - 6 + 55632U, // 28 - 7 + 46416U, // 28 - 8 + 22176U, // 28 - 9 + 42704U, // 28 - 10 + 38352U, // 28 - 11 + 19168U, // 28 - 12 + 42200U, // 28 - 13 + 42192U, // 28 - 14 + 53864U, // 28 - 15 + 43680U, // 28 - 16 + 46416U, // 28 - 17 + 22184U, // 28 - 18 + 11680U, // 28 - 19 + 38320U, // 28 - 20 + 18872U, // 28 - 21 + 18864U, // 28 - 22 + 42168U, // 28 - 23 + 25776U, // 28 - 24 + 27280U, // 28 - 25 + 44368U, // 28 - 26 + 23376U, // 28 - 27 + 11104U, // 28 - 28 + 38256U, // 28 - 29 + 37744U, // 28 - 30 + 18800U, // 28 - 31 + 25776U, // 28 - 32 + 54432U, // 28 - 33 + 59984U, // 28 - 34 + 54928U, // 28 - 35 + 23248U, // 28 - 36 + 11112U, // 28 - 37 + 9952U, // 28 - 38 + 37600U, // 28 - 39 + 51560U, // 28 - 40 + 51536U, // 28 - 41 + 54440U, // 28 - 42 + 46240U, // 28 - 43 + 46480U, // 28 - 44 + 22224U, // 28 - 45 + 21936U, // 28 - 46 + 9680U, // 28 - 47 + 37592U, // 28 - 48 + 37552U, // 28 - 49 + 43344U, // 28 - 50 + 46248U, // 28 - 51 + 27808U, // 28 - 52 + 44368U, // 28 - 53 + 43856U, // 28 - 54 + 19376U, // 28 - 55 + 9656U, // 28 - 56 + 9584U, // 28 - 57 + 21168U, // 28 - 58 + 43352U, // 28 - 59 + 26960U, // 29 - 0 + 27296U, // 29 - 1 + 44368U, // 29 - 2 + 43856U, // 29 - 3 + 19304U, // 29 - 4 + 19168U, // 29 - 5 + 42352U, // 29 - 6 + 21096U, // 29 - 7 + 53856U, // 29 - 8 + 55632U, // 29 - 9 + 23208U, // 29 - 10 + 22176U, // 29 - 11 + 38608U, // 29 - 12 + 38352U, // 29 - 13 + 19168U, // 29 - 14 + 42200U, // 29 - 15 + 42192U, // 29 - 16 + 53840U, // 29 - 17 + 54600U, // 29 - 18 + 46416U, // 29 - 19 + 13728U, // 29 - 20 + 38608U, // 29 - 21 + 38320U, // 29 - 22 + 18872U, // 29 - 23 + 18864U, // 29 - 24 + 42160U, // 29 - 25 + 45656U, // 29 - 26 + 27216U, // 29 - 27 + 27968U, // 29 - 28 + 44456U, // 29 - 29 + 11104U, // 29 - 30 + 38256U, // 29 - 31 + 37616U, // 29 - 32 + 18800U, // 29 - 33 + 25776U, // 29 - 34 + 54432U, // 29 - 35 + 59984U, // 29 - 36 + 27464U, // 29 - 37 + 22224U, // 29 - 38 + 11104U, // 29 - 39 + 37744U, // 29 - 40 + 37600U, // 29 - 41 + 51560U, // 29 - 42 + 43344U, // 29 - 43 + 54432U, // 29 - 44 + 55888U, // 29 - 45 + 46416U, // 29 - 46 + 22192U, // 29 - 47 + 9944U, // 29 - 48 + 9680U, // 29 - 49 + 37592U, // 29 - 50 + 37552U, // 29 - 51 + 43344U, // 29 - 52 + 46248U, // 29 - 53 + 27296U, // 29 - 54 + 44368U, // 29 - 55 + 21928U, // 29 - 56 + 19376U, // 29 - 57 + 9648U, // 29 - 58 + 21176U, // 29 - 59 + 21168U, // 30 - 0 + 26960U, // 30 - 1 + 59728U, // 30 - 2 + 27296U, // 30 - 3 + 44368U, // 30 - 4 + 39760U, // 30 - 5 + 19296U, // 30 - 6 + 42352U, // 30 - 7 + 42224U, // 30 - 8 + 21096U, // 30 - 9 + 53856U, // 30 - 10 + 54608U, // 30 - 11 + 23208U, // 30 - 12 + 22176U, // 30 - 13 + 38608U, // 30 - 14 + 19176U, // 30 - 15 + 19152U, // 30 - 16 + 42192U, // 30 - 17 + 53864U, // 30 - 18 + 45648U, // 30 - 19 + 54568U, // 30 - 20 + 46400U, // 30 - 21 + 46496U, // 30 - 22 + 38352U, // 30 - 23 + 38320U, // 30 - 24 + 18864U, // 30 - 25 + 42168U, // 30 - 26 + 42160U, // 30 - 27 + 43608U, // 30 - 28 + 27216U, // 30 - 29 + 27968U, // 30 - 30 + 44456U, // 30 - 31 + 11104U, // 30 - 32 + 37744U, // 30 - 33 + 18808U, // 30 - 34 + 18800U, // 30 - 35 + 25776U, // 30 - 36 + 27216U, // 30 - 37 + 55888U, // 30 - 38 + 27464U, // 30 - 39 + 22208U, // 30 - 40 + 43744U, // 30 - 41 + 37616U, // 30 - 42 + 37600U, // 30 - 43 + 51552U, // 30 - 44 + 54440U, // 30 - 45 + 54432U, // 30 - 46 + 55888U, // 30 - 47 + 46416U, // 30 - 48 + 22176U, // 30 - 49 + 42712U, // 30 - 50 + 9680U, // 30 - 51 + 37584U, // 30 - 52 + 43352U, // 30 - 53 + 43344U, // 30 - 54 + 46240U, // 30 - 55 + 46416U, // 30 - 56 + 44368U, // 30 - 57 + 21928U, // 30 - 58 + 19360U, // 30 - 59 + 42416U, // 31 - 0 + 21176U, // 31 - 1 + 21104U, // 31 - 2 + 26928U, // 31 - 3 + 29864U, // 31 - 4 + 27296U, // 31 - 5 + 43856U, // 31 - 6 + 39760U, // 31 - 7 + 19296U, // 31 - 8 + 42352U, // 31 - 9 + 42224U, // 31 - 10 + 21088U, // 31 - 11 + 59696U, // 31 - 12 + 54576U, // 31 - 13 + 23200U, // 31 - 14 + 27472U, // 31 - 15 + 38608U, // 31 - 16 + 19176U, // 31 - 17 + 18896U, // 31 - 18 + 42192U, // 31 - 19 + 53848U, // 31 - 20 + 45648U, // 31 - 21 + 46368U, // 31 - 22 + 54944U, // 31 - 23 + 46496U, // 31 - 24 + 21968U, // 31 - 25 + 38320U, // 31 - 26 + 18864U, // 31 - 27 + 42168U, // 31 - 28 + 42160U, // 31 - 29 + 43600U, // 31 - 30 + 46376U, // 31 - 31 + 27968U, // 31 - 32 + 44448U, // 31 - 33 + 21936U, // 31 - 34 + 37744U, // 31 - 35 + 18808U, // 31 - 36 + 18800U, // 31 - 37 + 21680U, // 31 - 38 + 27216U, // 31 - 39 + 55888U, // 31 - 40 + 23200U, // 31 - 41 + 43872U, // 31 - 42 + 43744U, // 31 - 43 + 37608U, // 31 - 44 + 37600U, // 31 - 45 + 51552U, // 31 - 46 + 54440U, // 31 - 47 + 54432U, // 31 - 48 + 54608U, // 31 - 49 + 23208U, // 31 - 50 + 22176U, // 31 - 51 + 42704U, // 31 - 52 + 21224U, // 31 - 53 + 37584U, // 31 - 54 + 43352U, // 31 - 55 + 43344U, // 31 - 56 + 46240U, // 31 - 57 + 46416U, // 31 - 58 + 44368U, // 31 - 59 + 21920U, // 32 - 0 + 42448U, // 32 - 1 + 42416U, // 32 - 2 + 21176U, // 32 - 3 + 21104U, // 32 - 4 + 26928U, // 32 - 5 + 27288U, // 32 - 6 + 27296U, // 32 - 7 + 43856U, // 32 - 8 + 19880U, // 32 - 9 + 19296U, // 32 - 10 + 42352U, // 32 - 11 + 20848U, // 32 - 12 + 53600U, // 32 - 13 + 59696U, // 32 - 14 + 54560U, // 32 - 15 + 55968U, // 32 - 16 + 23376U, // 32 - 17 + 22224U, // 32 - 18 + 19168U, // 32 - 19 + 42216U, // 32 - 20 + 41680U, // 32 - 21 + 53592U, // 32 - 22 + 43600U, // 32 - 23 + 46368U, // 32 - 24 + 54944U, // 32 - 25 + 44448U, // 32 - 26 + 21968U, // 32 - 27 + 18904U, // 32 - 28 + 17840U, // 32 - 29 + 41648U, // 32 - 30 + 45400U, // 32 - 31 + 43600U, // 32 - 32 + 46376U, // 32 - 33 + 27424U, // 32 - 34 + 44384U, // 32 - 35 + 21936U, // 32 - 36 + 37744U, // 32 - 37 + 17776U, // 32 - 38 + 25272U, // 32 - 39 + 21168U, // 32 - 40 + 27216U, // 32 - 41 + 55888U, // 32 - 42 + 23200U, // 32 - 43 + 43856U, // 32 - 44 + 42720U, // 32 - 45 + 21216U, // 32 - 46 + 51568U, // 32 - 47 + 42336U, // 32 - 48 + 53920U, // 32 - 49 + 59728U, // 32 - 50 + 54608U, // 32 - 51 + 23208U, // 32 - 52 + 22176U, // 32 - 53 + 42704U, // 32 - 54 + 19176U, // 32 - 55 + 21200U, // 32 - 56 + 43216U, // 32 - 57 + 53928U, // 32 - 58 + 45728U, // 32 - 59 + 46416U, // 33 - 0 + 44368U, // 33 - 1 + 19872U, // 33 - 2 + 38352U, // 33 - 3 + 38256U, // 33 - 4 + 20912U, // 33 - 5 + 43192U, // 33 - 6 + 25904U, // 33 - 7 + 27280U, // 33 - 8 + 46416U, // 33 - 9 + 43856U, // 33 - 10 + 11112U, // 33 - 11 + 11104U, // 33 - 12 + 42352U, // 33 - 13 + 20848U, // 33 - 14 + 53600U, // 33 - 15 + 58544U, // 33 - 16 + 27280U, // 33 - 17 + 55968U, // 33 - 18 + 23376U, // 33 - 19 + 22224U, // 33 - 20 + 10976U, // 33 - 21 + 41704U, // 33 - 22 + 41680U, // 33 - 23 + 53584U, // 33 - 24 + 54440U, // 33 - 25 + 46368U, // 33 - 26 + 54928U, // 33 - 27 + 22224U, // 33 - 28 + 21968U, // 33 - 29 + 9688U, // 33 - 30 + 17840U, // 33 - 31 + 41648U, // 33 - 32 + 43352U, // 33 - 33 + 43344U, // 33 - 34 + 46240U, // 33 - 35 + 46480U, // 33 - 36 + 44384U, // 33 - 37 + 21936U, // 33 - 38 + 9656U, // 33 - 39 + 17776U, // 33 - 40 + 21176U, // 33 - 41 + 21168U, // 33 - 42 + 26960U, // 33 - 43 + 27816U, // 33 - 44 + 23200U, // 33 - 45 + 43856U, // 33 - 46 + 21352U, // 33 - 47 + 19168U, // 33 - 48 + 42352U, // 33 - 49 + 42336U, // 33 - 50 + 53920U, // 33 - 51 + 59728U, // 33 - 52 + 54608U, // 33 - 53 + 22176U, // 33 - 54 + 43728U, // 33 - 55 + 38352U, // 33 - 56 + 19168U, // 33 - 57 + 42328U, // 33 - 58 + 42192U, // 33 - 59 + 53864U, // 34 - 0 + 45728U, // 34 - 1 + 46416U, // 34 - 2 + 22184U, // 34 - 3 + 11680U, // 34 - 4 + 38320U, // 34 - 5 + 19128U, // 34 - 6 + 18864U, // 34 - 7 + 42168U, // 34 - 8 + 25776U, // 34 - 9 + 27280U, // 34 - 10 + 44368U, // 34 - 11 + 27472U, // 34 - 12 + 11104U, // 34 - 13 + 38320U, // 34 - 14 + 37744U, // 34 - 15 + 18800U, // 34 - 16 + 25776U, // 34 - 17 + 54448U, // 34 - 18 + 27280U, // 34 - 19 + 55952U, // 34 - 20 + 23248U, // 34 - 21 + 11112U, // 34 - 22 + 10976U, // 34 - 23 + 37600U, // 34 - 24 + 51560U, // 34 - 25 + 51536U, // 34 - 26 + 54440U, // 34 - 27 + 46240U, // 34 - 28 + 46736U, // 34 - 29 + 22224U, // 34 - 30 + 21936U, // 34 - 31 + 9680U, // 34 - 32 + 37592U, // 34 - 33 + 37552U, // 34 - 34 + 43352U, // 34 - 35 + 26960U, // 34 - 36 + 46240U, // 34 - 37 + 46416U, // 34 - 38 + 43856U, // 34 - 39 + 21936U, // 34 - 40 + 9656U, // 34 - 41 + 9584U, // 34 - 42 + 21168U, // 34 - 43 + 43352U, // 34 - 44 + 26960U, // 34 - 45 + 27304U, // 34 - 46 + 23200U, // 34 - 47 + 43856U, // 34 - 48 + 19304U, // 34 - 49 + 19168U, // 34 - 50 + 42352U, // 34 - 51 + 21096U, // 34 - 52 + 53856U, // 34 - 53 + 55632U, // 34 - 54 + 46416U, // 34 - 55 + 22176U, // 34 - 56 + 39632U, // 34 - 57 + 38352U, // 34 - 58 + 19168U, // 34 - 59 + 42200U, // 35 - 0 + 42192U, // 35 - 1 + 53840U, // 35 - 2 + 54600U, // 35 - 3 + 46416U, // 35 - 4 + 22184U, // 35 - 5 + 11680U, // 35 - 6 + 38320U, // 35 - 7 + 18872U, // 35 - 8 + 18864U, // 35 - 9 + 42160U, // 35 - 10 + 45656U, // 35 - 11 + 27216U, // 35 - 12 + 44360U, // 35 - 13 + 23376U, // 35 - 14 + 11104U, // 35 - 15 + 38256U, // 35 - 16 + 37744U, // 35 - 17 + 18800U, // 35 - 18 + 25776U, // 35 - 19 + 54432U, // 35 - 20 + 59984U, // 35 - 21 + 27464U, // 35 - 22 + 23248U, // 35 - 23 + 11112U, // 35 - 24 + 9952U, // 35 - 25 + 37600U, // 35 - 26 + 51560U, // 35 - 27 + 51536U, // 35 - 28 + 54432U, // 35 - 29 + 55888U, // 35 - 30 + 46416U, // 35 - 31 + 22192U, // 35 - 32 + 10968U, // 35 - 33 + 9680U, // 35 - 34 + 37592U, // 35 - 35 + 37552U, // 35 - 36 + 43344U, // 35 - 37 + 46248U, // 35 - 38 + 27808U, // 35 - 39 + 44368U, // 35 - 40 + 21928U, // 35 - 41 + 19376U, // 35 - 42 + 9648U, // 35 - 43 + 42352U, // 35 - 44 + 21168U, // 35 - 45 + 43344U, // 35 - 46 + 59728U, // 35 - 47 + 27296U, // 35 - 48 + 44368U, // 35 - 49 + 43856U, // 35 - 50 + 19296U, // 35 - 51 + 42352U, // 35 - 52 + 42352U, // 35 - 53 + 21096U, // 35 - 54 + 53856U, // 35 - 55 + 55632U, // 35 - 56 + 23208U, // 35 - 57 + 22176U, // 35 - 58 + 38608U, // 35 - 59 + 19176U, // 36 - 0 + 19168U, // 36 - 1 + 42200U, // 36 - 2 + 42192U, // 36 - 3 + 53840U, // 36 - 4 + 54568U, // 36 - 5 + 46400U, // 36 - 6 + 46752U, // 36 - 7 + 38608U, // 36 - 8 + 38320U, // 36 - 9 + 18864U, // 36 - 10 + 42168U, // 36 - 11 + 42160U, // 36 - 12 + 45656U, // 36 - 13 + 27216U, // 36 - 14 + 27968U, // 36 - 15 + 44456U, // 36 - 16 + 11104U, // 36 - 17 + 38256U, // 36 - 18 + 18808U, // 36 - 19 + 18800U, // 36 - 20 + 25776U, // 36 - 21 + 54432U, // 36 - 22 + 59984U, // 36 - 23 + 27464U, // 36 - 24 + 22224U, // 36 - 25 + 11104U, // 36 - 26 + 37744U, // 36 - 27 + 37600U, // 36 - 28 + 51552U, // 36 - 29 + 54440U, // 36 - 30 + 54432U, // 36 - 31 + 55888U, // 36 - 32 + 46416U, // 36 - 33 + 22176U, // 36 - 34 + 42712U, // 36 - 35 + 9680U, // 36 - 36 + 37584U, // 36 - 37 + 51544U, // 36 - 38 + 43344U, // 36 - 39 + 46248U, // 36 - 40 + 27296U, // 36 - 41 + 44368U, // 36 - 42 + 21928U, // 36 - 43 + 19360U, // 36 - 44 + 42416U, // 36 - 45 + 21176U, // 36 - 46 + 21168U, // 36 - 47 + 26928U, // 36 - 48 + 29864U, // 36 - 49 + 27296U, // 36 - 50 + 44368U, // 36 - 51 + 39760U, // 36 - 52 + 19296U, // 36 - 53 + 42352U, // 36 - 54 + 42224U, // 36 - 55 + 21088U, // 36 - 56 + 59696U, // 36 - 57 + 54576U, // 36 - 58 + 23208U, // 36 - 59 + 22176U, // 37 - 0 + 38608U, // 37 - 1 + 19176U, // 37 - 2 + 19152U, // 37 - 3 + 42192U, // 37 - 4 + 53864U, // 37 - 5 + 45648U, // 37 - 6 + 54560U, // 37 - 7 + 55968U, // 37 - 8 + 46496U, // 37 - 9 + 38352U, // 37 - 10 + 38320U, // 37 - 11 + 18864U, // 37 - 12 + 42168U, // 37 - 13 + 42160U, // 37 - 14 + 43600U, // 37 - 15 + 46376U, // 37 - 16 + 27968U, // 37 - 17 + 44448U, // 37 - 18 + 43872U, // 37 - 19 + 37744U, // 37 - 20 + 18808U, // 37 - 21 + 18800U, // 37 - 22 + 25776U, // 37 - 23 + 27216U, // 37 - 24 + 55888U, // 37 - 25 + 27424U, // 37 - 26 + 43872U, // 37 - 27 + 43744U, // 37 - 28 + 37608U, // 37 - 29 + 37600U, // 37 - 30 + 51552U, // 37 - 31 + 54440U, // 37 - 32 + 54432U, // 37 - 33 + 55888U, // 37 - 34 + 23208U, // 37 - 35 + 22176U, // 37 - 36 + 42704U, // 37 - 37 + 42448U, // 37 - 38 + 37584U, // 37 - 39 + 43352U, // 37 - 40 + 43344U, // 37 - 41 + 46240U, // 37 - 42 + 46416U, // 37 - 43 + 44368U, // 37 - 44 + 21920U, // 37 - 45 + 42448U, // 37 - 46 + 42416U, // 37 - 47 + 21176U, // 37 - 48 + 21104U, // 37 - 49 + 26928U, // 37 - 50 + 29864U, // 37 - 51 + 27296U, // 37 - 52 + 44368U, // 37 - 53 + 19880U, // 37 - 54 + 19296U, // 37 - 55 + 42352U, // 37 - 56 + 42208U, // 37 - 57 + 53856U, // 37 - 58 + 59696U, // 37 - 59 + 54560U, // 38 - 0 + 55968U, // 38 - 1 + 23376U, // 38 - 2 + 22224U, // 38 - 3 + 19168U, // 38 - 4 + 42216U, // 38 - 5 + 42192U, // 38 - 6 + 53848U, // 38 - 7 + 43600U, // 38 - 8 + 46368U, // 38 - 9 + 54944U, // 38 - 10 + 46496U, // 38 - 11 + 21968U, // 38 - 12 + 19160U, // 38 - 13 + 18864U, // 38 - 14 + 42168U, // 38 - 15 + 42160U, // 38 - 16 + 43600U, // 38 - 17 + 46376U, // 38 - 18 + 27936U, // 38 - 19 + 44384U, // 38 - 20 + 21936U, // 38 - 21 + 37744U, // 38 - 22 + 18800U, // 38 - 23 + 42168U, // 38 - 24 + 25776U, // 38 - 25 + 27216U, // 38 - 26 + 55888U, // 38 - 27 + 23200U, // 38 - 28 + 43856U, // 38 - 29 + 43744U, // 38 - 30 + 21216U, // 38 - 31 + 51568U, // 38 - 32 + 51552U, // 38 - 33 + 54440U, // 38 - 34 + 54432U, // 38 - 35 + 54608U, // 38 - 36 + 23208U, // 38 - 37 + 22176U, // 38 - 38 + 42704U, // 38 - 39 + 21224U, // 38 - 40 + 21200U, // 38 - 41 + 43344U, // 38 - 42 + 54440U, // 38 - 43 + 45728U, // 38 - 44 + 46416U, // 38 - 45 + 44368U, // 38 - 46 + 19872U, // 38 - 47 + 42448U, // 38 - 48 + 42416U, // 38 - 49 + 21168U, // 38 - 50 + 43192U, // 38 - 51 + 26928U, // 38 - 52 + 27288U, // 38 - 53 + 27296U, // 38 - 54 + 43856U, // 38 - 55 + 19880U, // 38 - 56 + 19296U, // 38 - 57 + 42352U, // 38 - 58 + 20848U, // 38 - 59 + 53600U, // 39 - 0 + 59696U, // 39 - 1 + 27280U, // 39 - 2 + 55968U, // 39 - 3 + 23376U, // 39 - 4 + 22224U, // 39 - 5 + 19168U, // 39 - 6 + 42216U, // 39 - 7 + 41680U, // 39 - 8 + 53584U, // 39 - 9 + 54440U, // 39 - 10 + 46368U, // 39 - 11 + 54928U, // 39 - 12 + 44448U, // 39 - 13 + 21968U, // 39 - 14 + 10968U, // 39 - 15 + 17840U, // 39 - 16 + 41648U, // 39 - 17 + 45400U, // 39 - 18 + 43344U, // 39 - 19 + 46368U, // 39 - 20 + 46480U, // 39 - 21 + 44384U, // 39 - 22 + 21936U, // 39 - 23 + 21360U, // 39 - 24 + 17776U, // 39 - 25 + 25272U, // 39 - 26 + 21168U, // 39 - 27 + 26960U, // 39 - 28 + 27816U, // 39 - 29 + 23200U, // 39 - 30 + 43856U, // 39 - 31 + 42704U, // 39 - 32 + 19168U, // 39 - 33 + 42352U, // 39 - 34 + 42336U, // 39 - 35 + 53920U, // 39 - 36 + 59728U, // 39 - 37 + 54608U, // 39 - 38 + 23200U, // 39 - 39 + 43856U, // 39 - 40 + 42704U, // 39 - 41 + 19176U, // 39 - 42 + 19120U, // 39 - 43 + 43216U, // 39 - 44 + 53864U, // 39 - 45 + 45728U, // 39 - 46 + 46416U, // 39 - 47 + 22184U, // 39 - 48 + 19872U, // 39 - 49 + 38320U, // 39 - 50 + 19128U, // 39 - 51 + 18864U, // 39 - 52 + 43192U, // 39 - 53 + 25776U, // 39 - 54 + 27280U, // 39 - 55 + 46416U, // 39 - 56 + 27472U, // 39 - 57 + 11168U, // 39 - 58 + 38320U, // 39 - 59 + 37744U, // 40 - 0 + 20848U, // 40 - 1 + 53600U, // 40 - 2 + 58544U, // 40 - 3 + 27280U, // 40 - 4 + 55952U, // 40 - 5 + 23376U, // 40 - 6 + 11112U, // 40 - 7 + 10976U, // 40 - 8 + 37600U, // 40 - 9 + 53608U, // 40 - 10 + 51536U, // 40 - 11 + 54440U, // 40 - 12 + 46240U, // 40 - 13 + 46736U, // 40 - 14 + 22224U, // 40 - 15 + 21936U, // 40 - 16 + 9680U, // 40 - 17 + 41688U, // 40 - 18 + 37552U, // 40 - 19 + 43352U, // 40 - 20 + 43344U, // 40 - 21 + 46240U, // 40 - 22 + 46416U, // 40 - 23 + 44368U, // 40 - 24 + 21936U, // 40 - 25 + 9656U, // 40 - 26 + 9584U, // 40 - 27 + 21176U, // 40 - 28 + 21168U, // 40 - 29 + 26960U, // 40 - 30 + 27816U, // 40 - 31 + 23200U, // 40 - 32 + 43856U, // 40 - 33 + 21352U, // 40 - 34 + 19168U, // 40 - 35 + 42352U, // 40 - 36 + 21168U, // 40 - 37 + 53856U, // 40 - 38 + 59728U, // 40 - 39 + 54608U, // 40 - 40 + 23200U, // 40 - 41 + 43728U, // 40 - 42 + 38352U, // 40 - 43 + 19168U, // 40 - 44 + 42200U, // 40 - 45 + 42192U, // 40 - 46 + 53848U, // 40 - 47 + 45712U, // 40 - 48 + 46416U, // 40 - 49 + 22184U, // 40 - 50 + 11680U, // 40 - 51 + 38320U, // 40 - 52 + 19128U, // 40 - 53 + 18864U, // 40 - 54 + 42160U, // 40 - 55 + 45656U, // 40 - 56 + 27216U, // 40 - 57 + 44360U, // 40 - 58 + 27472U, // 40 - 59 + 11104U, // 41 - 0 + 38320U, // 41 - 1 + 37744U, // 41 - 2 + 18800U, // 41 - 3 + 25776U, // 41 - 4 + 54432U, // 41 - 5 + 59984U, // 41 - 6 + 55952U, // 41 - 7 + 23248U, // 41 - 8 + 11112U, // 41 - 9 + 10976U, // 41 - 10 + 37600U, // 41 - 11 + 51560U, // 41 - 12 + 51536U, // 41 - 13 + 54432U, // 41 - 14 + 55888U, // 41 - 15 + 46672U, // 41 - 16 + 22224U, // 41 - 17 + 21936U, // 41 - 18 + 9680U, // 41 - 19 + 37592U, // 41 - 20 + 37552U, // 41 - 21 + 43344U, // 41 - 22 + 46248U, // 41 - 23 + 46240U, // 41 - 24 + 46416U, // 41 - 25 + 22184U, // 41 - 26 + 21936U, // 41 - 27 + 9656U, // 41 - 28 + 9584U, // 41 - 29 + 21168U, // 41 - 30 + 43344U, // 41 - 31 + 59728U, // 41 - 32 + 27296U, // 41 - 33 + 44368U, // 41 - 34 + 43856U, // 41 - 35 + 19304U, // 41 - 36 + 19168U, // 41 - 37 + 42352U, // 41 - 38 + 21096U, // 41 - 39 + 53856U, // 41 - 40 + 55632U, // 41 - 41 + 23208U, // 41 - 42 + 22176U, // 41 - 43 + 39632U, // 41 - 44 + 19176U, // 41 - 45 + 19168U, // 41 - 46 + 42200U, // 41 - 47 + 42192U, // 41 - 48 + 53840U, // 41 - 49 + 54568U, // 41 - 50 + 46400U, // 41 - 51 + 54944U, // 41 - 52 + 38608U, // 41 - 53 + 38320U, // 41 - 54 + 18872U, // 41 - 55 + 18800U, // 41 - 56 + 42160U, // 41 - 57 + 45656U, // 41 - 58 + 27216U, // 41 - 59 + 27968U, // 42 - 0 + 44456U, // 42 - 1 + 11104U, // 42 - 2 + 38256U, // 42 - 3 + 18808U, // 42 - 4 + 18800U, // 42 - 5 + 25776U, // 42 - 6 + 54432U, // 42 - 7 + 59984U, // 42 - 8 + 27976U, // 42 - 9 + 23248U, // 42 - 10 + 11104U, // 42 - 11 + 37744U, // 42 - 12 + 37600U, // 42 - 13 + 51560U, // 42 - 14 + 51536U, // 42 - 15 + 54432U, // 42 - 16 + 55888U, // 42 - 17 + 46416U, // 42 - 18 + 22176U, // 42 - 19 + 43736U, // 42 - 20 + 9680U, // 42 - 21 + 37584U, // 42 - 22 + 51544U, // 42 - 23 + 43344U, // 42 - 24 + 46248U, // 42 - 25 + 27808U, // 42 - 26 + 46416U, // 42 - 27 + 21928U, // 42 - 28 + 19872U, // 42 - 29 + 42416U, // 42 - 30 + 21176U, // 42 - 31 + 21168U, // 42 - 32 + 43344U, // 42 - 33 + 59728U, // 42 - 34 + 27296U, // 42 - 35 + 44368U, // 42 - 36 + 43856U, // 42 - 37 + 19296U, // 42 - 38 + 42352U, // 42 - 39 + 42352U, // 42 - 40 + 21088U, // 42 - 41 + 59696U, // 42 - 42 + 55632U, // 42 - 43 + 23208U, // 42 - 44 + 22176U, // 42 - 45 + 38608U, // 42 - 46 + 19176U, // 42 - 47 + 19152U, // 42 - 48 + 42192U, // 42 - 49 + 53864U, // 42 - 50 + 53840U, // 42 - 51 + 54568U, // 42 - 52 + 46400U, // 42 - 53 + 46752U, // 42 - 54 + 38608U, // 42 - 55 + 38320U, // 42 - 56 + 18864U, // 42 - 57 + 42168U, // 42 - 58 + 42160U, // 42 - 59 + 45656U, // 43 - 0 + 27216U, // 43 - 1 + 27968U, // 43 - 2 + 44448U, // 43 - 3 + 43872U, // 43 - 4 + 38256U, // 43 - 5 + 18808U, // 43 - 6 + 18800U, // 43 - 7 + 25776U, // 43 - 8 + 27216U, // 43 - 9 + 59984U, // 43 - 10 + 27432U, // 43 - 11 + 23232U, // 43 - 12 + 43872U, // 43 - 13 + 37736U, // 43 - 14 + 37600U, // 43 - 15 + 51552U, // 43 - 16 + 54440U, // 43 - 17 + 54432U, // 43 - 18 + 55888U, // 43 - 19 + 23208U, // 43 - 20 + 22176U, // 43 - 21 + 43736U, // 43 - 22 + 9680U, // 43 - 23 + 37584U, // 43 - 24 + 51544U, // 43 - 25 + 43344U, // 43 - 26 + 46240U, // 43 - 27 + 46416U, // 43 - 28 + 44368U, // 43 - 29 + 21928U, // 43 - 30 + 19360U, // 43 - 31 + 42416U, // 43 - 32 + 21176U, // 43 - 33 + 21168U, // 43 - 34 + 43312U, // 43 - 35 + 29864U, // 43 - 36 + 27296U, // 43 - 37 + 44368U, // 43 - 38 + 19880U, // 43 - 39 + 19296U, // 43 - 40 + 42352U, // 43 - 41 + 42208U, // 43 - 42 + 53856U, // 43 - 43 + 59696U, // 43 - 44 + 54576U, // 43 - 45 + 23200U, // 43 - 46 + 27472U, // 43 - 47 + 38608U, // 43 - 48 + 19176U, // 43 - 49 + 19152U, // 43 - 50 + 42192U, // 43 - 51 + 53848U, // 43 - 52 + 53840U, // 43 - 53 + 54560U, // 43 - 54 + 55968U, // 43 - 55 + 46496U, // 43 - 56 + 22224U, // 43 - 57 + 19160U, // 43 - 58 + 18864U, // 43 - 59 + 42168U, // 44 - 0 + 42160U, // 44 - 1 + 43600U, // 44 - 2 + 46376U, // 44 - 3 + 27936U, // 44 - 4 + 44448U, // 44 - 5 + 21936U, // 44 - 6 + 37744U, // 44 - 7 + 18808U, // 44 - 8 + 18800U, // 44 - 9 + 25776U, // 44 - 10 + 27216U, // 44 - 11 + 59984U, // 44 - 12 + 27296U, // 44 - 13 + 43872U, // 44 - 14 + 43744U, // 44 - 15 + 37600U, // 44 - 16 + 51568U, // 44 - 17 + 51552U, // 44 - 18 + 54440U, // 44 - 19 + 54432U, // 44 - 20 + 55888U, // 44 - 21 + 23208U, // 44 - 22 + 22176U, // 44 - 23 + 42704U, // 44 - 24 + 21224U, // 44 - 25 + 21200U, // 44 - 26 + 43352U, // 44 - 27 + 43344U, // 44 - 28 + 46240U, // 44 - 29 + 46416U, // 44 - 30 + 44368U, // 44 - 31 + 21920U, // 44 - 32 + 42448U, // 44 - 33 + 42416U, // 44 - 34 + 21168U, // 44 - 35 + 43320U, // 44 - 36 + 26928U, // 44 - 37 + 29336U, // 44 - 38 + 27296U, // 44 - 39 + 44368U, // 44 - 40 + 19880U, // 44 - 41 + 19296U, // 44 - 42 + 42352U, // 44 - 43 + 21104U, // 44 - 44 + 53600U, // 44 - 45 + 59696U, // 44 - 46 + 54560U, // 44 - 47 + 55968U, // 44 - 48 + 27472U, // 44 - 49 + 22224U, // 44 - 50 + 19168U, // 44 - 51 + 42216U, // 44 - 52 + 41680U, // 44 - 53 + 53584U, // 44 - 54 + 55592U, // 44 - 55 +}; +const TUint32 TCalconData::iCalConDataYear[]={ + 1506335U, // 0 - 8 + 1612119426U, // 0 - 9 + 1507074U, // 0 - 10 + 1507428U, // 0 - 11 + 1075249607U, // 0 - 12 + 1508167U, // 0 - 13 + 1508521U, // 0 - 14 + 538379787U, // 0 - 15 + 1509259U, // 0 - 16 + 1612122349U, // 0 - 17 + 1509997U, // 0 - 18 + 1510352U, // 0 - 19 + 1343687986U, // 0 - 20 + 1511090U, // 0 - 21 + 1511444U, // 0 - 22 + 806818166U, // 0 - 23 + 1512182U, // 0 - 24 + 3222738008U, // 0 - 25 + 1512920U, // 0 - 26 + 1513275U, // 0 - 27 + 1343690910U, // 0 - 28 + 1514014U, // 0 - 29 + 1514368U, // 0 - 30 + 1075256546U, // 0 - 31 + 1515106U, // 0 - 32 + 1515460U, // 0 - 33 + 538386726U, // 0 - 34 + 1516198U, // 0 - 35 + 1880564745U, // 0 - 36 + 1516937U, // 0 - 37 + 1517292U, // 0 - 38 + 1343694926U, // 0 - 39 + 1518030U, // 0 - 40 + 1518384U, // 0 - 41 + 1075260562U, // 0 - 42 + 1519122U, // 0 - 43 + 3491180404U, // 0 - 44 + 1519860U, // 0 - 45 + 1520215U, // 0 - 46 + 1343697850U, // 0 - 47 + 1520953U, // 0 - 48 + 1521307U, // 0 - 49 + 1075263485U, // 0 - 50 + 1522045U, // 0 - 51 + 1522400U, // 0 - 52 + 538393666U, // 0 - 53 + 1523138U, // 0 - 54 + 1612136229U, // 0 - 55 + 1523877U, // 0 - 56 + 1524231U, // 0 - 57 + 1343701865U, // 0 - 58 + 1524969U, // 0 - 59 + 1525323U, // 1 - 0 + 806832046U, // 1 - 1 + 1526062U, // 1 - 2 + 3491187344U, // 1 - 3 + 1526800U, // 1 - 4 + 1527155U, // 1 - 5 + 1612140245U, // 1 - 6 + 1527893U, // 1 - 7 + 1528247U, // 1 - 8 + 1075270425U, // 1 - 9 + 1528985U, // 1 - 10 + 1529340U, // 1 - 11 + 538400606U, // 1 - 12 + 1530078U, // 1 - 13 + 1880578625U, // 1 - 14 + 1530817U, // 1 - 15 + 1531171U, // 1 - 16 + 1343708805U, // 1 - 17 + 1531908U, // 1 - 18 + 1532263U, // 1 - 19 + 806838986U, // 1 - 20 + 1533002U, // 1 - 21 + 3491194284U, // 1 - 22 + 1533740U, // 1 - 23 + 1534094U, // 1 - 24 + 1612147184U, // 1 - 25 + 1534832U, // 1 - 26 + 1535186U, // 1 - 27 + 1075277365U, // 1 - 28 + 1535925U, // 1 - 29 + 1536280U, // 1 - 30 + 806843002U, // 1 - 31 + 1537018U, // 1 - 32 + 1880585564U, // 1 - 33 + 1537756U, // 1 - 34 + 1538110U, // 1 - 35 + 1343715744U, // 1 - 36 + 1538848U, // 1 - 37 + 1539203U, // 1 - 38 + 1075281382U, // 1 - 39 + 1539942U, // 1 - 40 + 1540296U, // 1 - 41 + 538411562U, // 1 - 42 + 1541034U, // 1 - 43 + 1612154124U, // 1 - 44 + 1541772U, // 1 - 45 + 1542126U, // 1 - 46 + 1075284305U, // 1 - 47 + 1542865U, // 1 - 48 + 1543219U, // 1 - 49 + 806849942U, // 1 - 50 + 1543957U, // 1 - 51 + 1880592503U, // 1 - 52 + 1544695U, // 1 - 53 + 1545050U, // 1 - 54 + 1343722684U, // 1 - 55 + 1545788U, // 1 - 56 + 1546143U, // 1 - 57 + 1075288321U, // 1 - 58 + 1546881U, // 1 - 59 + 3222772707U, // 2 - 0 + 1547619U, // 2 - 1 + 1547973U, // 2 - 2 + 1612161064U, // 2 - 3 + 1548712U, // 2 - 4 + 1549066U, // 2 - 5 + 1075291245U, // 2 - 6 + 1549805U, // 2 - 7 + 1550159U, // 2 - 8 + 806856881U, // 2 - 9 + 1550897U, // 2 - 10 + 1880599443U, // 2 - 11 + 1551635U, // 2 - 12 + 1551990U, // 2 - 13 + 1343729624U, // 2 - 14 + 1552728U, // 2 - 15 + 1553083U, // 2 - 16 + 1075295261U, // 2 - 17 + 1553821U, // 2 - 18 + 2417473279U, // 2 - 19 + 1554558U, // 2 - 20 + 1554913U, // 2 - 21 + 1612168004U, // 2 - 22 + 1555652U, // 2 - 23 + 1556006U, // 2 - 24 + 1075298185U, // 2 - 25 + 1556744U, // 2 - 26 + 1557098U, // 2 - 27 + 806863820U, // 2 - 28 + 1557836U, // 2 - 29 + 2149041839U, // 2 - 30 + 1558575U, // 2 - 31 + 1558930U, // 2 - 32 + 1343736564U, // 2 - 33 + 1559668U, // 2 - 34 + 1560022U, // 2 - 35 + 1075302200U, // 2 - 36 + 1560760U, // 2 - 37 + 3491222042U, // 2 - 38 + 1561498U, // 2 - 39 + 1561853U, // 2 - 40 + 1612174944U, // 2 - 41 + 1562592U, // 2 - 42 + 1562946U, // 2 - 43 + 1343740580U, // 2 - 44 + 1563684U, // 2 - 45 + 1564038U, // 2 - 46 + 538435304U, // 2 - 47 + 1564776U, // 2 - 48 + 1880613323U, // 2 - 49 + 1565515U, // 2 - 50 + 1565869U, // 2 - 51 + 1343743504U, // 2 - 52 + 1566607U, // 2 - 53 + 1566961U, // 2 - 54 + 1075309140U, // 2 - 55 + 1567700U, // 2 - 56 + 3491228982U, // 2 - 57 + 1568438U, // 2 - 58 + 1568793U, // 2 - 59 + 1612181883U, // 3 - 0 + 1569531U, // 3 - 1 + 1569885U, // 3 - 2 + 1343747519U, // 3 - 3 + 1570623U, // 3 - 4 + 1570978U, // 3 - 5 + 806877700U, // 3 - 6 + 1571716U, // 3 - 7 + 1880620263U, // 3 - 8 + 1572455U, // 3 - 9 + 1572809U, // 3 - 10 + 1612185899U, // 3 - 11 + 1573547U, // 3 - 12 + 1573901U, // 3 - 13 + 1075316079U, // 3 - 14 + 1574640U, // 3 - 15 + 1574994U, // 3 - 16 + 538446261U, // 3 - 17 + 1575733U, // 3 - 18 + 1612188823U, // 3 - 19 + 1576471U, // 3 - 20 + 1576825U, // 3 - 21 + 1075319003U, // 3 - 22 + 1577563U, // 3 - 23 + 1577918U, // 3 - 24 + 806884640U, // 3 - 25 + 1578656U, // 3 - 26 + 1880627203U, // 3 - 27 + 1579394U, // 3 - 28 + 1579748U, // 3 - 29 + 1612192838U, // 3 - 30 + 1580486U, // 3 - 31 + 1580841U, // 3 - 32 + 1075323020U, // 3 - 33 + 1581580U, // 3 - 34 + 1581934U, // 3 - 35 + 806888656U, // 3 - 36 + 1582672U, // 3 - 37 + 1880631218U, // 3 - 38 + 1583410U, // 3 - 39 + 1583764U, // 3 - 40 + 1343761399U, // 3 - 41 + 1584503U, // 3 - 42 + 1584858U, // 3 - 43 + 806891580U, // 3 - 44 + 1585596U, // 3 - 45 + 1880634142U, // 3 - 46 + 1586334U, // 3 - 47 + 1586688U, // 3 - 48 + 1343764322U, // 3 - 49 + 1587426U, // 3 - 50 + 1587781U, // 3 - 51 + 1075329959U, // 3 - 52 + 1588519U, // 3 - 53 + 1588874U, // 3 - 54 + 538460140U, // 3 - 55 + 1589611U, // 3 - 56 + 1612202702U, // 3 - 57 + 1590350U, // 3 - 58 + 1590704U, // 3 - 59 + 1075332883U, // 4 - 0 + 1591443U, // 4 - 1 + 1591797U, // 4 - 2 + 806898519U, // 4 - 3 + 1592535U, // 4 - 4 + 1880641081U, // 4 - 5 + 1593273U, // 4 - 6 + 1593628U, // 4 - 7 + 1343771262U, // 4 - 8 + 1594366U, // 4 - 9 + 1594721U, // 4 - 10 + 1075336899U, // 4 - 11 + 1595459U, // 4 - 12 + 1595813U, // 4 - 13 + 538467079U, // 4 - 14 + 1596551U, // 4 - 15 + 1880645097U, // 4 - 16 + 1597290U, // 4 - 17 + 1597644U, // 4 - 18 + 1343775279U, // 4 - 19 + 1598383U, // 4 - 20 + 1598737U, // 4 - 21 + 806905459U, // 4 - 22 + 1599475U, // 4 - 23 + 2417518933U, // 4 - 24 + 1600213U, // 4 - 25 + 1600567U, // 4 - 26 + 1343778202U, // 4 - 27 + 1601306U, // 4 - 28 + 1601661U, // 4 - 29 + 1075343839U, // 4 - 30 + 1602398U, // 4 - 31 + 3491263680U, // 4 - 32 + 1603136U, // 4 - 33 + 1603491U, // 4 - 34 + 1612216581U, // 4 - 35 + 1604230U, // 4 - 36 + 1604584U, // 4 - 37 + 1343782218U, // 4 - 38 + 1605322U, // 4 - 39 + 1605676U, // 4 - 40 + 806912398U, // 4 - 41 + 1606414U, // 4 - 42 + 1880654961U, // 4 - 43 + 1607153U, // 4 - 44 + 1607507U, // 4 - 45 + 1612220598U, // 4 - 46 + 1608246U, // 4 - 47 + 1608600U, // 4 - 48 + 1075350778U, // 4 - 49 + 1609338U, // 4 - 50 + 1609692U, // 4 - 51 + 538480959U, // 4 - 52 + 1610431U, // 4 - 53 + 1612223521U, // 4 - 54 + 1611169U, // 4 - 55 + 1611524U, // 4 - 56 + 1343789158U, // 4 - 57 + 1612261U, // 4 - 58 + 1612616U, // 4 - 59 + 806919338U, // 5 - 0 + 1613354U, // 5 - 1 + 3222839181U, // 5 - 2 + 1614093U, // 5 - 3 + 1614447U, // 5 - 4 + 1612227537U, // 5 - 5 + 1615185U, // 5 - 6 + 1615539U, // 5 - 7 + 1075357717U, // 5 - 8 + 1616277U, // 5 - 9 + 1616632U, // 5 - 10 + 806923355U, // 5 - 11 + 1617371U, // 5 - 12 + 1612230461U, // 5 - 13 + 1618109U, // 5 - 14 + 1618463U, // 5 - 15 + 1343796097U, // 5 - 16 + 1619201U, // 5 - 17 + 1619555U, // 5 - 18 + 806926278U, // 5 - 19 + 1620294U, // 5 - 20 + 1880668841U, // 5 - 21 + 1621033U, // 5 - 22 + 1621387U, // 5 - 23 + 1612234477U, // 5 - 24 + 1622125U, // 5 - 25 + 1622479U, // 5 - 26 + 1075364657U, // 5 - 27 + 1623217U, // 5 - 28 + 1623572U, // 5 - 29 + 806930295U, // 5 - 30 + 1624310U, // 5 - 31 + 1612237401U, // 5 - 32 + 1625048U, // 5 - 33 + 1625402U, // 5 - 34 + 1343803037U, // 5 - 35 + 1626141U, // 5 - 36 + 1626495U, // 5 - 37 + 806933218U, // 5 - 38 + 1627234U, // 5 - 39 + 3222853060U, // 5 - 40 + 1627972U, // 5 - 41 + 1628326U, // 5 - 42 + 1612241416U, // 5 - 43 + 1629064U, // 5 - 44 + 1629419U, // 5 - 45 + 1075371597U, // 5 - 46 + 1630157U, // 5 - 47 + 1630512U, // 5 - 48 + 538501778U, // 5 - 49 + 1631250U, // 5 - 50 + 1880679796U, // 5 - 51 + 1631988U, // 5 - 52 + 1632342U, // 5 - 53 + 1343809977U, // 5 - 54 + 1633081U, // 5 - 55 + 1633435U, // 5 - 56 + 806940158U, // 5 - 57 + 1634174U, // 5 - 58 + 2417553632U, // 5 - 59 + 1634911U, // 6 - 0 + 1635266U, // 6 - 1 + 1612248356U, // 6 - 2 + 1636004U, // 6 - 3 + 1636359U, // 6 - 4 + 1075378537U, // 6 - 5 + 1637097U, // 6 - 6 + 1637451U, // 6 - 7 + 806944173U, // 6 - 8 + 1638189U, // 6 - 9 + 1880686735U, // 6 - 10 + 1638927U, // 6 - 11 + 1639282U, // 6 - 12 + 1343816917U, // 6 - 13 + 1640021U, // 6 - 14 + 1640375U, // 6 - 15 + 1075382553U, // 6 - 16 + 1641113U, // 6 - 17 + 2417560571U, // 6 - 18 + 1641851U, // 6 - 19 + 1642205U, // 6 - 20 + 1612255296U, // 6 - 21 + 1642944U, // 6 - 22 + 1643299U, // 6 - 23 + 1075385477U, // 6 - 24 + 1644037U, // 6 - 25 + 1644391U, // 6 - 26 + 538515657U, // 6 - 27 + 1645129U, // 6 - 28 + 1612258219U, // 6 - 29 + 1645867U, // 6 - 30 + 1646222U, // 6 - 31 + 1343823857U, // 6 - 32 + 1646960U, // 6 - 33 + 1647315U, // 6 - 34 + 1075389493U, // 6 - 35 + 1648052U, // 6 - 36 + 3222873879U, // 6 - 37 + 1648791U, // 6 - 38 + 1649145U, // 6 - 39 + 1612262236U, // 6 - 40 + 1649884U, // 6 - 41 + 1650238U, // 6 - 42 + 1343827872U, // 6 - 43 + 1650976U, // 6 - 44 + 1651330U, // 6 - 45 + 806958053U, // 6 - 46 + 1652069U, // 6 - 47 + 1880700615U, // 6 - 48 + 1652807U, // 6 - 49 + 1653162U, // 6 - 50 + 1343830796U, // 6 - 51 + 1653900U, // 6 - 52 + 1654254U, // 6 - 53 + 806960976U, // 6 - 54 + 1654992U, // 6 - 55 + 3491316275U, // 6 - 56 + 1655731U, // 6 - 57 + 1656085U, // 6 - 58 + 1612269176U, // 6 - 59 + 1656824U, // 7 - 0 + 1657178U, // 7 - 1 + 1075399356U, // 7 - 2 + 1657916U, // 7 - 3 + 1658270U, // 7 - 4 + 538529537U, // 7 - 5 + 1659009U, // 7 - 6 + 1612272099U, // 7 - 7 + 1659747U, // 7 - 8 + 1660101U, // 7 - 9 + 1343837735U, // 7 - 10 + 1660839U, // 7 - 11 + 1661193U, // 7 - 12 + 806967916U, // 7 - 13 + 1661932U, // 7 - 14 + 1662287U, // 7 - 15 + 538533553U, // 7 - 16 + 1663025U, // 7 - 17 + 1612276115U, // 7 - 18 + 1663763U, // 7 - 19 + 1664117U, // 7 - 20 + 1343841751U, // 7 - 21 + 1664855U, // 7 - 22 + 1665210U, // 7 - 23 + 538536477U, // 7 - 24 + 1665949U, // 7 - 25 + 1880714495U, // 7 - 26 + 1666687U, // 7 - 27 + 1667041U, // 7 - 28 + 1343844675U, // 7 - 29 + 1667779U, // 7 - 30 + 1668133U, // 7 - 31 + 806974856U, // 7 - 32 + 1668872U, // 7 - 33 + 3491330155U, // 7 - 34 + 1669610U, // 7 - 35 + 1669965U, // 7 - 36 + 1612283055U, // 7 - 37 + 1670702U, // 7 - 38 + 1671057U, // 7 - 39 + 1075413235U, // 7 - 40 + 1671795U, // 7 - 41 + 1672150U, // 7 - 42 + 806978872U, // 7 - 43 + 1672888U, // 7 - 44 + 1880721434U, // 7 - 45 + 1673626U, // 7 - 46 + 1673980U, // 7 - 47 + 1343851615U, // 7 - 48 + 1674719U, // 7 - 49 + 1675073U, // 7 - 50 + 1075417252U, // 7 - 51 + 1675812U, // 7 - 52 + 2149159814U, // 7 - 53 + 1676550U, // 7 - 54 + 1676904U, // 7 - 55 + 1612289994U, // 7 - 56 + 1677642U, // 7 - 57 + 1677997U, // 7 - 58 + 1075420175U, // 7 - 59 + 1678735U, // 8 - 0 + 1679090U, // 8 - 1 + 806985812U, // 8 - 2 + 1679828U, // 8 - 3 + 2149163830U, // 8 - 4 + 1680566U, // 8 - 5 + 1680920U, // 8 - 6 + 1343858555U, // 8 - 7 + 1681659U, // 8 - 8 + 1682013U, // 8 - 9 + 1075424192U, // 8 - 10 + 1682751U, // 8 - 11 + 3222908577U, // 8 - 12 + 1683489U, // 8 - 13 + 1683843U, // 8 - 14 + 1612296934U, // 8 - 15 + 1684582U, // 8 - 16 + 1684937U, // 8 - 17 + 1343862571U, // 8 - 18 + 1685675U, // 8 - 19 + 1686029U, // 8 - 20 + 806992751U, // 8 - 21 + 1686767U, // 8 - 22 + 1880735313U, // 8 - 23 + 1687505U, // 8 - 24 + 1687860U, // 8 - 25 + 1343865495U, // 8 - 26 + 1688599U, // 8 - 27 + 1688953U, // 8 - 28 + 1075431131U, // 8 - 29 + 1689691U, // 8 - 30 + 3222915517U, // 8 - 31 + 1690429U, // 8 - 32 + 1690783U, // 8 - 33 + 1612303874U, // 8 - 34 + 1691522U, // 8 - 35 + 1691877U, // 8 - 36 + 1343869511U, // 8 - 37 + 1692614U, // 8 - 38 + 1692968U, // 8 - 39 + 806999691U, // 8 - 40 + 1693707U, // 8 - 41 + 1880742253U, // 8 - 42 + 1694445U, // 8 - 43 + 1694800U, // 8 - 44 + 1343872434U, // 8 - 45 + 1695538U, // 8 - 46 + 1695892U, // 8 - 47 + 1075438070U, // 8 - 48 + 1696630U, // 8 - 49 + 1696985U, // 8 - 50 + 538568251U, // 8 - 51 + 1697723U, // 8 - 52 + 1612310814U, // 8 - 53 + 1698462U, // 8 - 54 + 1698816U, // 8 - 55 + 1343876450U, // 8 - 56 + 1699554U, // 8 - 57 + 1699908U, // 8 - 58 + 538571175U, // 8 - 59 + 1700647U, // 9 - 0 + 1880749193U, // 9 - 1 + 1701385U, // 9 - 2 + 1701740U, // 9 - 3 + 1343879374U, // 9 - 4 + 1702478U, // 9 - 5 + 1702832U, // 9 - 6 + 1075445010U, // 9 - 7 + 1703570U, // 9 - 8 + 1703925U, // 9 - 9 + 538575191U, // 9 - 10 + 1704663U, // 9 - 11 + 1612317754U, // 9 - 12 + 1705401U, // 9 - 13 + 1705755U, // 9 - 14 + 1343883389U, // 9 - 15 + 1706493U, // 9 - 16 + 1706848U, // 9 - 17 + 807013571U, // 9 - 18 + 1707587U, // 9 - 19 + 1880756133U, // 9 - 20 + 1708325U, // 9 - 21 + 1708679U, // 9 - 22 + 1612321769U, // 9 - 23 + 1709417U, // 9 - 24 + 1709771U, // 9 - 25 + 1075451950U, // 9 - 26 + 1710510U, // 9 - 27 + 1710865U, // 9 - 28 + 538582131U, // 9 - 29 + 1711603U, // 9 - 30 + 1612324693U, // 9 - 31 + 1712341U, // 9 - 32 + 1712695U, // 9 - 33 + 1075454873U, // 9 - 34 + 1713433U, // 9 - 35 + 1713788U, // 9 - 36 + 807020511U, // 9 - 37 + 1714527U, // 9 - 38 + 2149198529U, // 9 - 39 + 1715264U, // 9 - 40 + 1715618U, // 9 - 41 + 1612328709U, // 9 - 42 + 1716357U, // 9 - 43 + 1716711U, // 9 - 44 + 1075458890U, // 9 - 45 + 1717450U, // 9 - 46 + 1717804U, // 9 - 47 + 538589071U, // 9 - 48 + 1718542U, // 9 - 49 + 1880767088U, // 9 - 50 + 1719280U, // 9 - 51 + 1719635U, // 9 - 52 + 1343897269U, // 9 - 53 + 1720373U, // 9 - 54 + 1720728U, // 9 - 55 + 807027450U, // 9 - 56 + 1721466U, // 9 - 57 + 2149205468U, // 9 - 58 + 1722204U, // 9 - 59 + 1722558U, // 10 - 0 + 1343900193U, // 10 - 1 + 1723297U, // 10 - 2 + 1723651U, // 10 - 3 + 1075465830U, // 10 - 4 + 1724390U, // 10 - 5 + 1724744U, // 10 - 6 + 538596010U, // 10 - 7 + 1725482U, // 10 - 8 + 1612338572U, // 10 - 9 + 1726220U, // 10 - 10 + 1726575U, // 10 - 11 + 1343904209U, // 10 - 12 + 1727313U, // 10 - 13 + 1727668U, // 10 - 14 + 1075469846U, // 10 - 15 + 1728405U, // 10 - 16 + 2149212407U, // 10 - 17 + 1729143U, // 10 - 18 + 1729498U, // 10 - 19 + 1343907133U, // 10 - 20 + 1730237U, // 10 - 21 + 1730591U, // 10 - 22 + 1075472769U, // 10 - 23 + 1731329U, // 10 - 24 + 1731683U, // 10 - 25 + 538602949U, // 10 - 26 + 1732421U, // 10 - 27 + 1880780968U, // 10 - 28 + 1733160U, // 10 - 29 + 1733515U, // 10 - 30 + 1343911149U, // 10 - 31 + 1734253U, // 10 - 32 + 1734607U, // 10 - 33 + 807041329U, // 10 - 34 + 1735345U, // 10 - 35 + 2149219347U, // 10 - 36 + 1736083U, // 10 - 37 + 1736438U, // 10 - 38 + 1343914072U, // 10 - 39 + 1737176U, // 10 - 40 + 1737531U, // 10 - 41 + 1075479709U, // 10 - 42 + 1738268U, // 10 - 43 + 1738623U, // 10 - 44 + 538609889U, // 10 - 45 + 1739361U, // 10 - 46 + 1612352452U, // 10 - 47 + 1740100U, // 10 - 48 + 1740454U, // 10 - 49 + 1343918088U, // 10 - 50 + 1741192U, // 10 - 51 + 1741546U, // 10 - 52 + 807048269U, // 10 - 53 + 1742285U, // 10 - 54 + 2149226287U, // 10 - 55 + 1743023U, // 10 - 56 + 1743378U, // 10 - 57 + 1612356468U, // 10 - 58 + 1744116U, // 10 - 59 + 1744470U, // 11 - 0 + 1075486648U, // 11 - 1 + 1745208U, // 11 - 2 + 1745562U, // 11 - 3 + 538616829U, // 11 - 4 + 1746301U, // 11 - 5 + 1612359392U, // 11 - 6 + 1747040U, // 11 - 7 + 1747394U, // 11 - 8 + 1343925028U, // 11 - 9 + 1748132U, // 11 - 10 + 1748486U, // 11 - 11 + 807055208U, // 11 - 12 + 1749225U, // 11 - 13 + 2149233227U, // 11 - 14 + 1749963U, // 11 - 15 + 1750318U, // 11 - 16 + 1612363408U, // 11 - 17 + 1751055U, // 11 - 18 + 1751409U, // 11 - 19 + 1075493588U, // 11 - 20 + 1752148U, // 11 - 21 + 1752502U, // 11 - 22 + 538623769U, // 11 - 23 + 1753241U, // 11 - 24 + 1880801787U, // 11 - 25 + 1753979U, // 11 - 26 + 1754333U, // 11 - 27 + 1343931967U, // 11 - 28 + 1755071U, // 11 - 29 + 1755426U, // 11 - 30 + 807062148U, // 11 - 31 + 1756165U, // 11 - 32 + 2149240167U, // 11 - 33 + 1756903U, // 11 - 34 + 1757257U, // 11 - 35 + 1612370347U, // 11 - 36 + 1757995U, // 11 - 37 + 1758349U, // 11 - 38 + 1075500528U, // 11 - 39 + 1759088U, // 11 - 40 + 1759442U, // 11 - 41 + 807066165U, // 11 - 42 + 1760181U, // 11 - 43 + 1880808727U, // 11 - 44 + 1760918U, // 11 - 45 + 1761273U, // 11 - 46 + 1343938907U, // 11 - 47 + 1762011U, // 11 - 48 + 1762366U, // 11 - 49 + 1075504544U, // 11 - 50 + 1763104U, // 11 - 51 + 1880811650U, // 11 - 52 + 1763842U, // 11 - 53 + 1764196U, // 11 - 54 + 1612377286U, // 11 - 55 + 1764934U, // 11 - 56 + 1765289U, // 11 - 57 + 1075507468U, // 11 - 58 + 1766028U, // 11 - 59 + 1766382U, // 12 - 0 + 807073104U, // 12 - 1 + 1767120U, // 12 - 2 + 1880815666U, // 12 - 3 + 1767858U, // 12 - 4 + 1768212U, // 12 - 5 + 1343945847U, // 12 - 6 + 1768951U, // 12 - 7 + 1769306U, // 12 - 8 + 1075511484U, // 12 - 9 + 1770044U, // 12 - 10 + 2149254046U, // 12 - 11 + 1770782U, // 12 - 12 + 1771136U, // 12 - 13 + 1612384226U, // 12 - 14 + 1771874U, // 12 - 15 + 1772229U, // 12 - 16 + 1075514408U, // 12 - 17 + 1772967U, // 12 - 18 + 1773322U, // 12 - 19 + 807080044U, // 12 - 20 + 1774059U, // 12 - 21 + 1880822606U, // 12 - 22 + 1774798U, // 12 - 23 + 1775152U, // 12 - 24 + 1343952787U, // 12 - 25 + 1775891U, // 12 - 26 + 1776245U, // 12 - 27 + 1075518423U, // 12 - 28 + 1776983U, // 12 - 29 + 2417696441U, // 12 - 30 + 1777721U, // 12 - 31 + 1778076U, // 12 - 32 + 1612391166U, // 12 - 33 + 1778814U, // 12 - 34 + 1779169U, // 12 - 35 + 1075521347U, // 12 - 36 + 1779907U, // 12 - 37 + 1780261U, // 12 - 38 + 538651527U, // 12 - 39 + 1780999U, // 12 - 40 + 1880829546U, // 12 - 41 + 1781738U, // 12 - 42 + 1782092U, // 12 - 43 + 1343959727U, // 12 - 44 + 1782831U, // 12 - 45 + 1783185U, // 12 - 46 + 1075525363U, // 12 - 47 + 1783923U, // 12 - 48 + 2417703381U, // 12 - 49 + 1784661U, // 12 - 50 + 1785016U, // 12 - 51 + 1612398106U, // 12 - 52 + 1785754U, // 12 - 53 + 1786108U, // 12 - 54 + 1343963742U, // 12 - 55 + 1786846U, // 12 - 56 + 1787200U, // 12 - 57 + 538658467U, // 12 - 58 + 1787939U, // 12 - 59 + 1880836486U, // 13 - 0 + 1788678U, // 13 - 1 + 1789032U, // 13 - 2 + 1343966666U, // 13 - 3 + 1789770U, // 13 - 4 + 1790124U, // 13 - 5 + 807096846U, // 13 - 6 + 1790862U, // 13 - 7 + 3491452145U, // 13 - 8 + 1791601U, // 13 - 9 + 1791956U, // 13 - 10 + 1612405046U, // 13 - 11 + 1792694U, // 13 - 12 + 1793048U, // 13 - 13 + 1075535226U, // 13 - 14 + 1793786U, // 13 - 15 + 1794140U, // 13 - 16 + 807100863U, // 13 - 17 + 1794879U, // 13 - 18 + 1880843426U, // 13 - 19 + 1795617U, // 13 - 20 + 1795972U, // 13 - 21 + 1612409062U, // 13 - 22 + 1796709U, // 13 - 23 + 1797064U, // 13 - 24 + 1075539242U, // 13 - 25 + 1797802U, // 13 - 26 + 1798157U, // 13 - 27 + 538669423U, // 13 - 28 + 1798895U, // 13 - 29 + 1612411985U, // 13 - 30 + 1799633U, // 13 - 31 + 1799987U, // 13 - 32 + 1343977622U, // 13 - 33 + 1800726U, // 13 - 34 + 1801080U, // 13 - 35 + 807107803U, // 13 - 36 + 1801819U, // 13 - 37 + 1880850365U, // 13 - 38 + 1802557U, // 13 - 39 + 1802911U, // 13 - 40 + 1343980545U, // 13 - 41 + 1803649U, // 13 - 42 + 1804004U, // 13 - 43 + 807110726U, // 13 - 44 + 1804742U, // 13 - 45 + 2149288745U, // 13 - 46 + 1805481U, // 13 - 47 + 1805835U, // 13 - 48 + 1612418925U, // 13 - 49 + 1806573U, // 13 - 50 + 1806927U, // 13 - 51 + 1075549106U, // 13 - 52 + 1807666U, // 13 - 53 + 1808020U, // 13 - 54 + 807114743U, // 13 - 55 + 1808758U, // 13 - 56 + 1880857304U, // 13 - 57 + 1809496U, // 13 - 58 + 1809850U, // 13 - 59 + 1612422941U, // 14 - 0 + 1810589U, // 14 - 1 + 1810944U, // 14 - 2 + 1075553122U, // 14 - 3 + 1811682U, // 14 - 4 + 2417731140U, // 14 - 5 + 1812420U, // 14 - 6 + 1812774U, // 14 - 7 + 1612425864U, // 14 - 8 + 1813512U, // 14 - 9 + 1813867U, // 14 - 10 + 1075556046U, // 14 - 11 + 1814606U, // 14 - 12 + 1814960U, // 14 - 13 + 807121682U, // 14 - 14 + 1815698U, // 14 - 15 + 1880864244U, // 14 - 16 + 1816436U, // 14 - 17 + 1816790U, // 14 - 18 + 1343994425U, // 14 - 19 + 1817529U, // 14 - 20 + 1817884U, // 14 - 21 + 1075560062U, // 14 - 22 + 1818622U, // 14 - 23 + 2417738080U, // 14 - 24 + 1819359U, // 14 - 25 + 1819714U, // 14 - 26 + 1612432804U, // 14 - 27 + 1820452U, // 14 - 28 + 1820807U, // 14 - 29 + 1343998441U, // 14 - 30 + 1821545U, // 14 - 31 + 1821899U, // 14 - 32 + 807128621U, // 14 - 33 + 1822637U, // 14 - 34 + 2149306640U, // 14 - 35 + 1823376U, // 14 - 36 + 1823730U, // 14 - 37 + 1344001365U, // 14 - 38 + 1824469U, // 14 - 39 + 1824823U, // 14 - 40 + 1075567001U, // 14 - 41 + 1825561U, // 14 - 42 + 3491486843U, // 14 - 43 + 1826299U, // 14 - 44 + 1826654U, // 14 - 45 + 1612439744U, // 14 - 46 + 1827392U, // 14 - 47 + 1827747U, // 14 - 48 + 1344005381U, // 14 - 49 + 1828485U, // 14 - 50 + 1828839U, // 14 - 51 + 807135561U, // 14 - 52 + 1829577U, // 14 - 53 + 1880878124U, // 14 - 54 + 1830316U, // 14 - 55 + 1830670U, // 14 - 56 + 1612443761U, // 14 - 57 + 1831408U, // 14 - 58 + 1831762U, // 14 - 59 + 1075573940U, // 15 - 0 + 1832500U, // 15 - 1 + 1832855U, // 15 - 2 + 538704122U, // 15 - 3 + 1833594U, // 15 - 4 + 1612446684U, // 15 - 5 + 1834332U, // 15 - 6 + 1834686U, // 15 - 7 + 1344012320U, // 15 - 8 + 1835424U, // 15 - 9 + 1835778U, // 15 - 10 + 807142501U, // 15 - 11 + 1836517U, // 15 - 12 + 1880885064U, // 15 - 13 + 1837256U, // 15 - 14 + 1837610U, // 15 - 15 + 1612450700U, // 15 - 16 + 1838348U, // 15 - 17 + 1838702U, // 15 - 18 + 1075580880U, // 15 - 19 + 1839440U, // 15 - 20 + 1839795U, // 15 - 21 + 538711062U, // 15 - 22 + 1840534U, // 15 - 23 + 1612453624U, // 15 - 24 + 1841271U, // 15 - 25 + 1841625U, // 15 - 26 + 1344019260U, // 15 - 27 + 1842364U, // 15 - 28 + 1842718U, // 15 - 29 + 807149441U, // 15 - 30 + 1843457U, // 15 - 31 + 1880892003U, // 15 - 32 + 1844195U, // 15 - 33 + 1844549U, // 15 - 34 + 1612457639U, // 15 - 35 + 1845287U, // 15 - 36 + 1845642U, // 15 - 37 + 1075587820U, // 15 - 38 + 1846380U, // 15 - 39 + 1846735U, // 15 - 40 + 538718001U, // 15 - 41 + 1847473U, // 15 - 42 + 1612460563U, // 15 - 43 + 1848211U, // 15 - 44 + 1848565U, // 15 - 45 + 1344026200U, // 15 - 46 + 1849304U, // 15 - 47 + 1849658U, // 15 - 48 + 807156381U, // 15 - 49 + 1850397U, // 15 - 50 + 1880898943U, // 15 - 51 + 1851135U, // 15 - 52 + 1851489U, // 15 - 53 + 1612464579U, // 15 - 54 + 1852227U, // 15 - 55 + 1852582U, // 15 - 56 + 1075594760U, // 15 - 57 + 1853320U, // 15 - 58 + 1853675U, // 15 - 59 + 538724941U, // 16 - 0 + 1854412U, // 16 - 1 + 1880902958U, // 16 - 2 + 1855150U, // 16 - 3 + 1855505U, // 16 - 4 + 1344033140U, // 16 - 5 + 1856244U, // 16 - 6 + 1856598U, // 16 - 7 + 807163320U, // 16 - 8 + 1857336U, // 16 - 9 + 2149341338U, // 16 - 10 + 1858074U, // 16 - 11 + 1858428U, // 16 - 12 + 1344036063U, // 16 - 13 + 1859167U, // 16 - 14 + 1859522U, // 16 - 15 + 1075601700U, // 16 - 16 + 1860260U, // 16 - 17 + 1860614U, // 16 - 18 + 538731880U, // 16 - 19 + 1861352U, // 16 - 20 + 1880909898U, // 16 - 21 + 1862090U, // 16 - 22 + 1862445U, // 16 - 23 + 1344040080U, // 16 - 24 + 1863184U, // 16 - 25 + 1863538U, // 16 - 26 + 1075605716U, // 16 - 27 + 1864275U, // 16 - 28 + 2149348278U, // 16 - 29 + 1865014U, // 16 - 30 + 1865368U, // 16 - 31 + 1612478459U, // 16 - 32 + 1866107U, // 16 - 33 + 1866461U, // 16 - 34 + 1344044096U, // 16 - 35 + 1867199U, // 16 - 36 + 1867553U, // 16 - 37 + 538738820U, // 16 - 38 + 1868292U, // 16 - 39 + 1612481382U, // 16 - 40 + 1869030U, // 16 - 41 + 1869385U, // 16 - 42 + 1344047019U, // 16 - 43 + 1870123U, // 16 - 44 + 1870477U, // 16 - 45 + 807177199U, // 16 - 46 + 1871215U, // 16 - 47 + 2149355218U, // 16 - 48 + 1871954U, // 16 - 49 + 1872308U, // 16 - 50 + 1612485399U, // 16 - 51 + 1873047U, // 16 - 52 + 1873401U, // 16 - 53 + 1075615579U, // 16 - 54 + 1874139U, // 16 - 55 + 1874493U, // 16 - 56 + 538745759U, // 16 - 57 + 1875232U, // 16 - 58 + 1612488322U, // 16 - 59 + 1875970U, // 17 - 0 + 1876325U, // 17 - 1 + 1344053959U, // 17 - 2 + 1877062U, // 17 - 3 + 1877416U, // 17 - 4 + 807184139U, // 17 - 5 + 1878155U, // 17 - 6 + 3223103982U, // 17 - 7 + 1878894U, // 17 - 8 + 1879248U, // 17 - 9 + 1612492338U, // 17 - 10 + 1879986U, // 17 - 11 + 1880340U, // 17 - 12 + 1075622518U, // 17 - 13 + 1881078U, // 17 - 14 + 1881433U, // 17 - 15 + 538752700U, // 17 - 16 + 1882172U, // 17 - 17 + 1612495262U, // 17 - 18 + 1882910U, // 17 - 19 + 1883264U, // 17 - 20 + 1344060898U, // 17 - 21 + 1884002U, // 17 - 22 + 1884356U, // 17 - 23 + 807191079U, // 17 - 24 + 1885095U, // 17 - 25 + 1880933641U, // 17 - 26 + 1885833U, // 17 - 27 + 1886188U, // 17 - 28 + 1612499278U, // 17 - 29 + 1886925U, // 17 - 30 + 1887280U, // 17 - 31 + 1075629458U, // 17 - 32 + 1888018U, // 17 - 33 + 1888373U, // 17 - 34 + 538759639U, // 17 - 35 + 1889111U, // 17 - 36 + 1880937657U, // 17 - 37 + 1889849U, // 17 - 38 + 1890203U, // 17 - 39 + 1344067838U, // 17 - 40 + 1890942U, // 17 - 41 + 1891296U, // 17 - 42 + 807198019U, // 17 - 43 + 1892035U, // 17 - 44 + 2149376037U, // 17 - 45 + 1892773U, // 17 - 46 + 1893127U, // 17 - 47 + 1612506217U, // 17 - 48 + 1893865U, // 17 - 49 + 1894219U, // 17 - 50 + 1075636398U, // 17 - 51 + 1894958U, // 17 - 52 + 1895313U, // 17 - 53 + 807202035U, // 17 - 54 + 1896051U, // 17 - 55 + 1880944597U, // 17 - 56 + 1896789U, // 17 - 57 + 1897143U, // 17 - 58 + 1344074777U, // 17 - 59 + 1897882U, // 18 - 0 + 1898236U, // 18 - 1 + 1075640415U, // 18 - 2 + 1898975U, // 18 - 3 + 2149382977U, // 18 - 4 + 1899712U, // 18 - 5 + 1900066U, // 18 - 6 + 1612513157U, // 18 - 7 + 1900805U, // 18 - 8 + 1901160U, // 18 - 9 + 1344078794U, // 18 - 10 + 1901898U, // 18 - 11 + 1902252U, // 18 - 12 + 807208974U, // 18 - 13 + 1902990U, // 18 - 14 + 1880951536U, // 18 - 15 + 1903728U, // 18 - 16 + 1904083U, // 18 - 17 + 1344081717U, // 18 - 18 + 1904822U, // 18 - 19 + 1905176U, // 18 - 20 + 1075647354U, // 18 - 21 + 1905914U, // 18 - 22 + 2149389916U, // 18 - 23 + 1906652U, // 18 - 24 + 1907006U, // 18 - 25 + 1612520097U, // 18 - 26 + 1907745U, // 18 - 27 + 1908099U, // 18 - 28 + 1344085734U, // 18 - 29 + 1908838U, // 18 - 30 + 1909192U, // 18 - 31 + 538780458U, // 18 - 32 + 1909930U, // 18 - 33 + 1880958476U, // 18 - 34 + 1910668U, // 18 - 35 + 1911023U, // 18 - 36 + 1344088657U, // 18 - 37 + 1911761U, // 18 - 38 + 1912115U, // 18 - 39 + 1075654293U, // 18 - 40 + 1912853U, // 18 - 41 + 3223138679U, // 18 - 42 + 1913591U, // 18 - 43 + 1913946U, // 18 - 44 + 1612527037U, // 18 - 45 + 1914685U, // 18 - 46 + 1915039U, // 18 - 47 + 1344092673U, // 18 - 48 + 1915777U, // 18 - 49 + 1916131U, // 18 - 50 + 807222853U, // 18 - 51 + 1916869U, // 18 - 52 + 1880965416U, // 18 - 53 + 1917608U, // 18 - 54 + 1917963U, // 18 - 55 + 1344095597U, // 18 - 56 + 1918701U, // 18 - 57 + 1919055U, // 18 - 58 + 1075661233U, // 18 - 59 + 1919793U, // 19 - 0 + 3223145619U, // 19 - 1 + 1920531U, // 19 - 2 + 1920886U, // 19 - 3 + 1612533977U, // 19 - 4 + 1921625U, // 19 - 5 + 1921979U, // 19 - 6 + 1344099613U, // 19 - 7 + 1922716U, // 19 - 8 + 1923071U, // 19 - 9 + 538794337U, // 19 - 10 + 1923809U, // 19 - 11 + 1880972356U, // 19 - 12 + 1924548U, // 19 - 13 + 1924902U, // 19 - 14 + 1344102536U, // 19 - 15 + 1925640U, // 19 - 16 + 1925994U, // 19 - 17 + 807232717U, // 19 - 18 + 1926733U, // 19 - 19 + 2149410735U, // 19 - 20 + 1927471U, // 19 - 21 + 1927826U, // 19 - 22 + 1612540916U, // 19 - 23 + 1928564U, // 19 - 24 + 1928918U, // 19 - 25 + 1344106552U, // 19 - 26 + 1929656U, // 19 - 27 + 1930011U, // 19 - 28 + 807236733U, // 19 - 29 + 1930749U, // 19 - 30 + 1880979296U, // 19 - 31 + 1931488U, // 19 - 32 + 1931842U, // 19 - 33 + 1612544932U, // 19 - 34 + 1932580U, // 19 - 35 + 1932934U, // 19 - 36 + 1075675113U, // 19 - 37 + 1933673U, // 19 - 38 + 3491594955U, // 19 - 39 + 1934411U, // 19 - 40 + 1934765U, // 19 - 41 + 1612547855U, // 19 - 42 + 1935503U, // 19 - 43 + 1935857U, // 19 - 44 + 1344113492U, // 19 - 45 + 1936596U, // 19 - 46 + 1936951U, // 19 - 47 + 807243673U, // 19 - 48 + 1937689U, // 19 - 49 + 1880986235U, // 19 - 50 + 1938427U, // 19 - 51 + 1938781U, // 19 - 52 + 1344116415U, // 19 - 53 + 1939519U, // 19 - 54 + 1939874U, // 19 - 55 + 1075682053U, // 19 - 56 + 1940613U, // 19 - 57 + 2149424615U, // 19 - 58 + 1941351U, // 19 - 59 + 1941705U, // 20 - 0 + 1880990251U, // 20 - 1 + 1942443U, // 20 - 2 + 1942797U, // 20 - 3 + 1344120432U, // 20 - 4 + 1943536U, // 20 - 5 + 1943891U, // 20 - 6 + 1075686069U, // 20 - 7 + 1944629U, // 20 - 8 + 1880993175U, // 20 - 9 + 1945366U, // 20 - 10 + 1945721U, // 20 - 11 + 1612558811U, // 20 - 12 + 1946459U, // 20 - 13 + 1946814U, // 20 - 14 + 1075688992U, // 20 - 15 + 1947552U, // 20 - 16 + 3223173378U, // 20 - 17 + 1948290U, // 20 - 18 + 1948644U, // 20 - 19 + 1612561735U, // 20 - 20 + 1949383U, // 20 - 21 + 1949737U, // 20 - 22 + 1075691916U, // 20 - 23 + 1950476U, // 20 - 24 + 1950830U, // 20 - 25 + 807257552U, // 20 - 26 + 1951568U, // 20 - 27 + 1881000114U, // 20 - 28 + 1952306U, // 20 - 29 + 1952661U, // 20 - 30 + 1344130295U, // 20 - 31 + 1953399U, // 20 - 32 + 1953754U, // 20 - 33 + 1075695932U, // 20 - 34 + 1954492U, // 20 - 35 + 2686309406U, // 20 - 36 + 1955230U, // 20 - 37 + 1955584U, // 20 - 38 + 1612568675U, // 20 - 39 + 1956323U, // 20 - 40 + 1956677U, // 20 - 41 + 1344134312U, // 20 - 42 + 1957415U, // 20 - 43 + 1957769U, // 20 - 44 + 807264492U, // 20 - 45 + 1958507U, // 20 - 46 + 2149442510U, // 20 - 47 + 1959246U, // 20 - 48 + 1959601U, // 20 - 49 + 1344137235U, // 20 - 50 + 1960339U, // 20 - 51 + 1960693U, // 20 - 52 + 1075702871U, // 20 - 53 + 1961431U, // 20 - 54 + 2954751801U, // 20 - 55 + 1962169U, // 20 - 56 + 1962524U, // 20 - 57 + 1612575615U, // 20 - 58 + 1963263U, // 20 - 59 + 1963617U, // 21 - 0 + 1344141251U, // 21 - 1 + 1964355U, // 21 - 2 + 1964709U, // 21 - 3 + 807271431U, // 21 - 4 + 1965447U, // 21 - 5 + 1881013994U, // 21 - 6 + 1966186U, // 21 - 7 + 1966541U, // 21 - 8 + 1612579631U, // 21 - 9 + 1967279U, // 21 - 10 + 1967633U, // 21 - 11 + 1075709811U, // 21 - 12 + 1968371U, // 21 - 13 + 3491629653U, // 21 - 14 + 1969109U, // 21 - 15 + 1969464U, // 21 - 16 + 1612582554U, // 21 - 17 + 1970202U, // 21 - 18 + 1970556U, // 21 - 19 + 1344148190U, // 21 - 20 + 1971294U, // 21 - 21 + 1971649U, // 21 - 22 + 807278371U, // 21 - 23 + 1972387U, // 21 - 24 + 2149456390U, // 21 - 25 + 1973126U, // 21 - 26 + 1973480U, // 21 - 27 + 1612586570U, // 21 - 28 + 1974218U, // 21 - 29 + 1974572U, // 21 - 30 + 1075716751U, // 21 - 31 + 1975311U, // 21 - 32 + 1975665U, // 21 - 33 + 538846932U, // 21 - 34 + 1976404U, // 21 - 35 + 1881024950U, // 21 - 36 + 1977142U, // 21 - 37 + 1977496U, // 21 - 38 + 1344155130U, // 21 - 39 + 1978234U, // 21 - 40 + 1978589U, // 21 - 41 + 807285311U, // 21 - 42 + 1979327U, // 21 - 43 + 1881027874U, // 21 - 44 + 1980065U, // 21 - 45 + 1980419U, // 21 - 46 + 1612593509U, // 21 - 47 + 1981157U, // 21 - 48 + 1981512U, // 21 - 49 + 1075723691U, // 21 - 50 + 1982251U, // 21 - 51 + 1982605U, // 21 - 52 + 807289327U, // 21 - 53 + 1983343U, // 21 - 54 + 1881031889U, // 21 - 55 + 1984081U, // 21 - 56 + 1984435U, // 21 - 57 + 1344162070U, // 21 - 58 + 1985174U, // 21 - 59 + 1985529U, // 22 - 0 + 807292251U, // 22 - 1 + 1986267U, // 22 - 2 + 1881034813U, // 22 - 3 + 1987005U, // 22 - 4 + 1987359U, // 22 - 5 + 1612600449U, // 22 - 6 + 1988097U, // 22 - 7 + 1988452U, // 22 - 8 + 1075730631U, // 22 - 9 + 1989191U, // 22 - 10 + 1989545U, // 22 - 11 + 538860811U, // 22 - 12 + 1990283U, // 22 - 13 + 1881038829U, // 22 - 14 + 1991021U, // 22 - 15 + 1991375U, // 22 - 16 + 1344169010U, // 22 - 17 + 1992114U, // 22 - 18 + 1992468U, // 22 - 19 + 807299191U, // 22 - 20 + 1993206U, // 22 - 21 + 2149477208U, // 22 - 22 + 1993944U, // 22 - 23 + 1994299U, // 22 - 24 + 1344171933U, // 22 - 25 + 1995037U, // 22 - 26 + 1995392U, // 22 - 27 + 1075737570U, // 22 - 28 + 1996130U, // 22 - 29 + 2417915588U, // 22 - 30 + 1996868U, // 22 - 31 + 1997222U, // 22 - 32 + 1881045769U, // 22 - 33 + 1997961U, // 22 - 34 + 1998315U, // 22 - 35 + 1344175950U, // 22 - 36 + 1999054U, // 22 - 37 + 1999408U, // 22 - 38 + 1075741586U, // 22 - 39 + 2000146U, // 22 - 40 + 2417919604U, // 22 - 41 + 2000884U, // 22 - 42 + 2001239U, // 22 - 43 + 1612614329U, // 22 - 44 + 2001977U, // 22 - 45 + 2002332U, // 22 - 46 + 1344179966U, // 22 - 47 + 2003069U, // 22 - 48 + 3491664351U, // 22 - 49 + 2003807U, // 22 - 50 + 2004162U, // 22 - 51 + 1881052709U, // 22 - 52 + 2004901U, // 22 - 53 + 2005255U, // 22 - 54 + 1344182889U, // 22 - 55 + 2005993U, // 22 - 56 + 2006347U, // 22 - 57 + 807313069U, // 22 - 58 + 2007085U, // 22 - 59 + 2149491088U, // 23 - 0 + 2007824U, // 23 - 1 + 2008179U, // 23 - 2 + 1612621269U, // 23 - 3 + 2008917U, // 23 - 4 + 2009271U, // 23 - 5 + 1344186905U, // 23 - 6 + 2010009U, // 23 - 7 + 2010363U, // 23 - 8 + 538881630U, // 23 - 9 + 2011102U, // 23 - 10 + 1881059649U, // 23 - 11 + 2011840U, // 23 - 12 + 2012195U, // 23 - 13 + 1612625285U, // 23 - 14 + 2012932U, // 23 - 15 + 2013287U, // 23 - 16 + 1075755465U, // 23 - 17 + 2014025U, // 23 - 18 + 2149498028U, // 23 - 19 + 2014764U, // 23 - 20 + 2015118U, // 23 - 21 + 1612628209U, // 23 - 22 + 2015856U, // 23 - 23 + 2016210U, // 23 - 24 + 1075758389U, // 23 - 25 + 2016949U, // 23 - 26 + 2017303U, // 23 - 27 + 807324026U, // 23 - 28 + 2018042U, // 23 - 29 + 1881066588U, // 23 - 30 + 2018780U, // 23 - 31 + 2019134U, // 23 - 32 + 1344196768U, // 23 - 33 + 2019872U, // 23 - 34 + 2020227U, // 23 - 35 + 807326949U, // 23 - 36 + 2020965U, // 23 - 37 + 1881069512U, // 23 - 38 + 2021704U, // 23 - 39 + 2022058U, // 23 - 40 + 1612635148U, // 23 - 41 + 2022796U, // 23 - 42 + 2023150U, // 23 - 43 + 1075765328U, // 23 - 44 + 2023889U, // 23 - 45 + 2024243U, // 23 - 46 + 807330966U, // 23 - 47 + 2024982U, // 23 - 48 + 1881073528U, // 23 - 49 + 2025719U, // 23 - 50 + 2026073U, // 23 - 51 + 1344203708U, // 23 - 52 + 2026812U, // 23 - 53 + 2027167U, // 23 - 54 + 807333889U, // 23 - 55 + 2027905U, // 23 - 56 + 2149511907U, // 23 - 57 + 2028643U, // 23 - 58 + 2028997U, // 23 - 59 + 1612642087U, // 24 - 0 + 2029735U, // 24 - 1 + 2030090U, // 24 - 2 + 1075772268U, // 24 - 3 + 2030829U, // 24 - 4 + 2031183U, // 24 - 5 + 807337905U, // 24 - 6 + 2031921U, // 24 - 7 + 1881080467U, // 24 - 8 + 2032659U, // 24 - 9 + 2033013U, // 24 - 10 + 1344210648U, // 24 - 11 + 2033752U, // 24 - 12 + 2034106U, // 24 - 13 + 1075776285U, // 24 - 14 + 2034845U, // 24 - 15 + 2417954303U, // 24 - 16 + 2035582U, // 24 - 17 + 2035937U, // 24 - 18 + 1612649027U, // 24 - 19 + 2036675U, // 24 - 20 + 2037030U, // 24 - 21 + 1344214664U, // 24 - 22 + 2037768U, // 24 - 23 + 2038122U, // 24 - 24 + 807344844U, // 24 - 25 + 2038860U, // 24 - 26 + 1881087407U, // 24 - 27 + 2039599U, // 24 - 28 + 2039953U, // 24 - 29 + 1344217588U, // 24 - 30 + 2040692U, // 24 - 31 + 2041046U, // 24 - 32 + 1075783224U, // 24 - 33 + 2041784U, // 24 - 34 + 2417961242U, // 24 - 35 + 2042522U, // 24 - 36 + 2042876U, // 24 - 37 + 1612655967U, // 24 - 38 + 2043615U, // 24 - 39 + 2043970U, // 24 - 40 + 1344221604U, // 24 - 41 + 2044708U, // 24 - 42 + 2045062U, // 24 - 43 + 538916328U, // 24 - 44 + 2045800U, // 24 - 45 + 1881094346U, // 24 - 46 + 2046539U, // 24 - 47 + 2046893U, // 24 - 48 + 1612659984U, // 24 - 49 + 2047632U, // 24 - 50 + 2047986U, // 24 - 51 + 1075790164U, // 24 - 52 + 2048723U, // 24 - 53 + 2149532726U, // 24 - 54 + 2049462U, // 24 - 55 + 2049816U, // 24 - 56 + 1612662907U, // 24 - 57 + 2050555U, // 24 - 58 + 2050909U, // 24 - 59 + 1344228543U, // 25 - 0 + 2051647U, // 25 - 1 + 2052001U, // 25 - 2 + 807358724U, // 25 - 3 + 2052740U, // 25 - 4 + 1881101286U, // 25 - 5 + 2053479U, // 25 - 6 + 2053833U, // 25 - 7 + 1612666923U, // 25 - 8 + 2054571U, // 25 - 9 + 2054925U, // 25 - 10 + 1075797103U, // 25 - 11 + 2055663U, // 25 - 12 + 3223281490U, // 25 - 13 + 2056402U, // 25 - 14 + 2056756U, // 25 - 15 + 1612669847U, // 25 - 16 + 2057495U, // 25 - 17 + 2057849U, // 25 - 18 + 1344235483U, // 25 - 19 + 2058587U, // 25 - 20 + 2058941U, // 25 - 21 + 807365664U, // 25 - 22 + 2059680U, // 25 - 23 + 1881108226U, // 25 - 24 + 2060418U, // 25 - 25 + 2060772U, // 25 - 26 + 1612673862U, // 25 - 27 + 2061510U, // 25 - 28 + 2061864U, // 25 - 29 + 807368587U, // 25 - 30 + 2062603U, // 25 - 31 + 2062958U, // 25 - 32 + 538934224U, // 25 - 33 + 2063696U, // 25 - 34 + 1612676786U, // 25 - 35 + 2064434U, // 25 - 36 + 2064788U, // 25 - 37 + 1344242422U, // 25 - 38 + 2065526U, // 25 - 39 + 2065881U, // 25 - 40 + 807372604U, // 25 - 41 + 2066620U, // 25 - 42 + 1881115166U, // 25 - 43 + 2067358U, // 25 - 44 + 2067712U, // 25 - 45 + 1612680802U, // 25 - 46 + 2068450U, // 25 - 47 + 2068804U, // 25 - 48 + 1075810983U, // 25 - 49 + 2069543U, // 25 - 50 + 2417989002U, // 25 - 51 + 2070282U, // 25 - 52 + 2070636U, // 25 - 53 + 1612683726U, // 25 - 54 + 2071373U, // 25 - 55 + 2071728U, // 25 - 56 + 1344249362U, // 25 - 57 + 2072466U, // 25 - 58 + 2072821U, // 25 - 59 + 807379543U, // 26 - 0 + 2073559U, // 26 - 1 + 1881122105U, // 26 - 2 + 2074297U, // 26 - 3 + 2074651U, // 26 - 4 + 1612687742U, // 26 - 5 + 2075390U, // 26 - 6 + 2075744U, // 26 - 7 + 1075817923U, // 26 - 8 + 2076483U, // 26 - 9 + 2417995941U, // 26 - 10 + 2077221U, // 26 - 11 + 2077575U, // 26 - 12 + 1881126121U, // 26 - 13 + 2078313U, // 26 - 14 + 2078668U, // 26 - 15 + 1344256302U, // 26 - 16 + 2079406U, // 26 - 17 + 2079761U, // 26 - 18 + 1075821939U, // 26 - 19 + 2080499U, // 26 - 20 + 2149564501U, // 26 - 21 + 2081237U, // 26 - 22 + 2081591U, // 26 - 23 + 1612694682U, // 26 - 24 + 2082330U, // 26 - 25 + 2082684U, // 26 - 26 + 1075824863U, // 26 - 27 + 2083422U, // 26 - 28 + 2418002880U, // 26 - 29 + 2084160U, // 26 - 30 + 2084514U, // 26 - 31 + 1612697605U, // 26 - 32 + 2085253U, // 26 - 33 + 2085608U, // 26 - 34 + 1344263242U, // 26 - 35 + 2086346U, // 26 - 36 + 2086700U, // 26 - 37 + 807393422U, // 26 - 38 + 2087438U, // 26 - 39 + 2149571440U, // 26 - 40 + 2088176U, // 26 - 41 + 2088531U, // 26 - 42 + 1612701622U, // 26 - 43 + 2089270U, // 26 - 44 + 2089624U, // 26 - 45 + 1075831802U, // 26 - 46 + 2090362U, // 26 - 47 + 3223316188U, // 26 - 48 + 2091100U, // 26 - 49 + 2091454U, // 26 - 50 + 1881140001U, // 26 - 51 + 2092193U, // 26 - 52 + 2092548U, // 26 - 53 + 1344270182U, // 26 - 54 + 2093286U, // 26 - 55 + 2093640U, // 26 - 56 + 807400362U, // 26 - 57 + 2094378U, // 26 - 58 + 2149578380U, // 26 - 59 + 2095116U, // 27 - 0 + 2095471U, // 27 - 1 + 1344273105U, // 27 - 2 + 2096209U, // 27 - 3 + 2096563U, // 27 - 4 + 1075838741U, // 27 - 5 + 2097301U, // 27 - 6 + 3223323128U, // 27 - 7 + 2098040U, // 27 - 8 + 2098394U, // 27 - 9 + 1612711485U, // 27 - 10 + 2099133U, // 27 - 11 + 2099487U, // 27 - 12 + 1344277121U, // 27 - 13 + 2100225U, // 27 - 14 + 2100579U, // 27 - 15 + 807407302U, // 27 - 16 + 2101318U, // 27 - 17 + 1881149864U, // 27 - 18 + 2102056U, // 27 - 19 + 2102411U, // 27 - 20 + 1612715501U, // 27 - 21 + 2103149U, // 27 - 22 + 2103503U, // 27 - 23 + 1075845681U, // 27 - 24 + 2104241U, // 27 - 25 + 2104596U, // 27 - 26 + 538975862U, // 27 - 27 + 2105334U, // 27 - 28 + 1881153881U, // 27 - 29 + 2106072U, // 27 - 30 + 2106426U, // 27 - 31 + 1344284061U, // 27 - 32 + 2107164U, // 27 - 33 + 2107519U, // 27 - 34 + 807414242U, // 27 - 35 + 2108258U, // 27 - 36 + 1881156804U, // 27 - 37 + 2108996U, // 27 - 38 + 2109350U, // 27 - 39 + 1612722440U, // 27 - 40 + 2110088U, // 27 - 41 + 2110442U, // 27 - 42 + 1075852621U, // 27 - 43 + 2111181U, // 27 - 44 + 2111536U, // 27 - 45 + 538982802U, // 27 - 46 + 2112274U, // 27 - 47 + 1881160820U, // 27 - 48 + 2113012U, // 27 - 49 + 2113366U, // 27 - 50 + 1344291000U, // 27 - 51 + 2114104U, // 27 - 52 + 2114459U, // 27 - 53 + 1075856638U, // 27 - 54 + 2115198U, // 27 - 55 + 2149599200U, // 27 - 56 + 2115936U, // 27 - 57 + 2116290U, // 27 - 58 + 1612729380U, // 27 - 59 + 2117028U, // 28 - 0 + 2117382U, // 28 - 1 + 1075859561U, // 28 - 2 + 2118121U, // 28 - 3 + 2118475U, // 28 - 4 + 807425198U, // 28 - 5 + 2119213U, // 28 - 6 + 1881167759U, // 28 - 7 + 2119951U, // 28 - 8 + 2120306U, // 28 - 9 + 1344297940U, // 28 - 10 + 2121044U, // 28 - 11 + 2121399U, // 28 - 12 + 1075863577U, // 28 - 13 + 2122137U, // 28 - 14 + 2149606139U, // 28 - 15 + 2122875U, // 28 - 16 + 2123229U, // 28 - 17 + 1612736320U, // 28 - 18 + 2123968U, // 28 - 19 + 2124322U, // 28 - 20 + 1075866501U, // 28 - 21 + 2125061U, // 28 - 22 + 2686479975U, // 28 - 23 + 2125799U, // 28 - 24 + 2126153U, // 28 - 25 + 1881174699U, // 28 - 26 + 2126891U, // 28 - 27 + 2127246U, // 28 - 28 + 1344304880U, // 28 - 29 + 2127984U, // 28 - 30 + 2128339U, // 28 - 31 + 1075870517U, // 28 - 32 + 2129076U, // 28 - 33 + 2149613078U, // 28 - 34 + 2129814U, // 28 - 35 + 2130169U, // 28 - 36 + 1612743260U, // 28 - 37 + 2130908U, // 28 - 38 + 2131262U, // 28 - 39 + 1075873440U, // 28 - 40 + 2132000U, // 28 - 41 + 3223357826U, // 28 - 42 + 2132738U, // 28 - 43 + 2133092U, // 28 - 44 + 1881181639U, // 28 - 45 + 2133831U, // 28 - 46 + 2134186U, // 28 - 47 + 1344311820U, // 28 - 48 + 2134924U, // 28 - 49 + 2135278U, // 28 - 50 + 1075877456U, // 28 - 51 + 2136016U, // 28 - 52 + 2149620018U, // 28 - 53 + 2136754U, // 28 - 54 + 2137109U, // 28 - 55 + 1612750200U, // 28 - 56 + 2137848U, // 28 - 57 + 2138202U, // 28 - 58 + 1344315836U, // 28 - 59 + 2138940U, // 29 - 0 + 2139294U, // 29 - 1 + 539010560U, // 29 - 2 + 2140032U, // 29 - 3 + 1881188579U, // 29 - 4 + 2140771U, // 29 - 5 + 2141125U, // 29 - 6 + 1344318760U, // 29 - 7 + 2141863U, // 29 - 8 + 2142217U, // 29 - 9 + 807448940U, // 29 - 10 + 2142956U, // 29 - 11 + 2149626958U, // 29 - 12 + 2143694U, // 29 - 13 + 2144049U, // 29 - 14 + 1612757139U, // 29 - 15 + 2144787U, // 29 - 16 + 2145141U, // 29 - 17 + 1344322775U, // 29 - 18 + 2145879U, // 29 - 19 + 2146234U, // 29 - 20 + 539017500U, // 29 - 21 + 2146972U, // 29 - 22 + 1881195519U, // 29 - 23 + 2147711U, // 29 - 24 + 2148065U, // 29 - 25 + 1612761155U, // 29 - 26 + 2148803U, // 29 - 27 + 2149157U, // 29 - 28 + 1075891335U, // 29 - 29 + 2149896U, // 29 - 30 + 2149633898U, // 29 - 31 + 2150634U, // 29 - 32 + 2150989U, // 29 - 33 + 1612764079U, // 29 - 34 + 2151726U, // 29 - 35 + 2152080U, // 29 - 36 + 1075894259U, // 29 - 37 + 2152819U, // 29 - 38 + 2153174U, // 29 - 39 + 807459896U, // 29 - 40 + 2153912U, // 29 - 41 + 1881202458U, // 29 - 42 + 2154650U, // 29 - 43 + 2155004U, // 29 - 44 + 1612768094U, // 29 - 45 + 2155742U, // 29 - 46 + 2156097U, // 29 - 47 + 1075898276U, // 29 - 48 + 2156836U, // 29 - 49 + 2149640838U, // 29 - 50 + 2157574U, // 29 - 51 + 2157928U, // 29 - 52 + 1881206474U, // 29 - 53 + 2158666U, // 29 - 54 + 2159020U, // 29 - 55 + 1344336655U, // 29 - 56 + 2159759U, // 29 - 57 + 2160114U, // 29 - 58 + 807466836U, // 29 - 59 + 2160852U, // 30 - 0 + 1881209398U, // 30 - 1 + 2161589U, // 30 - 2 + 2161944U, // 30 - 3 + 1344339578U, // 30 - 4 + 2162682U, // 30 - 5 + 2163037U, // 30 - 6 + 1075905215U, // 30 - 7 + 2163775U, // 30 - 8 + 2149647778U, // 30 - 9 + 2164513U, // 30 - 10 + 2164867U, // 30 - 11 + 1612777958U, // 30 - 12 + 2165606U, // 30 - 13 + 2165960U, // 30 - 14 + 1075908139U, // 30 - 15 + 2166699U, // 30 - 16 + 2167053U, // 30 - 17 + 807473775U, // 30 - 18 + 2167791U, // 30 - 19 + 1881216337U, // 30 - 20 + 2168529U, // 30 - 21 + 2168883U, // 30 - 22 + 1344346518U, // 30 - 23 + 2169622U, // 30 - 24 + 2169977U, // 30 - 25 + 1075912155U, // 30 - 26 + 2170715U, // 30 - 27 + 2149654717U, // 30 - 28 + 2171453U, // 30 - 29 + 2171807U, // 30 - 30 + 1881220353U, // 30 - 31 + 2172546U, // 30 - 32 + 2172900U, // 30 - 33 + 1344350535U, // 30 - 34 + 2173639U, // 30 - 35 + 2173993U, // 30 - 36 + 807480715U, // 30 - 37 + 2174730U, // 30 - 38 + 1881223277U, // 30 - 39 + 2175469U, // 30 - 40 + 2175823U, // 30 - 41 + 1344353458U, // 30 - 42 + 2176562U, // 30 - 43 + 2176916U, // 30 - 44 + 1075919094U, // 30 - 45 + 2177654U, // 30 - 46 + 2418097112U, // 30 - 47 + 2178392U, // 30 - 48 + 2178747U, // 30 - 49 + 1612791837U, // 30 - 50 + 2179486U, // 30 - 51 + 2179840U, // 30 - 52 + 1344357474U, // 30 - 53 + 2180578U, // 30 - 54 + 2180932U, // 30 - 55 + 539052198U, // 30 - 56 + 2181670U, // 30 - 57 + 1881230217U, // 30 - 58 + 2182409U, // 30 - 59 + 2182763U, // 31 - 0 + 1612795854U, // 31 - 1 + 2183502U, // 31 - 2 + 2183856U, // 31 - 3 + 1075926034U, // 31 - 4 + 2184594U, // 31 - 5 + 2418104052U, // 31 - 6 + 2185332U, // 31 - 7 + 2185687U, // 31 - 8 + 1612798777U, // 31 - 9 + 2186425U, // 31 - 10 + 2186780U, // 31 - 11 + 1344364413U, // 31 - 12 + 2187517U, // 31 - 13 + 2187872U, // 31 - 14 + 807494594U, // 31 - 15 + 2188610U, // 31 - 16 + 1881237157U, // 31 - 17 + 2189349U, // 31 - 18 + 2189703U, // 31 - 19 + 1612802793U, // 31 - 20 + 2190441U, // 31 - 21 + 2190795U, // 31 - 22 + 1075932973U, // 31 - 23 + 2191533U, // 31 - 24 + 2418110992U, // 31 - 25 + 2192272U, // 31 - 26 + 2192627U, // 31 - 27 + 1881241173U, // 31 - 28 + 2193365U, // 31 - 29 + 2193719U, // 31 - 30 + 1344371353U, // 31 - 31 + 2194457U, // 31 - 32 + 2194811U, // 31 - 33 + 807501534U, // 31 - 34 + 2195550U, // 31 - 35 + 1881244097U, // 31 - 36 + 2196289U, // 31 - 37 + 2196643U, // 31 - 38 + 1612809733U, // 31 - 39 + 2197380U, // 31 - 40 + 2197735U, // 31 - 41 + 1075939913U, // 31 - 42 + 2198473U, // 31 - 43 + 3223424300U, // 31 - 44 + 2199212U, // 31 - 45 + 2199566U, // 31 - 46 + 1881248112U, // 31 - 47 + 2200304U, // 31 - 48 + 2200658U, // 31 - 49 + 1344378293U, // 31 - 50 + 2201397U, // 31 - 51 + 2201751U, // 31 - 52 + 807508474U, // 31 - 53 + 2202490U, // 31 - 54 + 1881251036U, // 31 - 55 + 2203228U, // 31 - 56 + 2203582U, // 31 - 57 + 1612816672U, // 31 - 58 + 2204320U, // 31 - 59 + 2204675U, // 32 - 0 + 1075946853U, // 32 - 1 + 2205413U, // 32 - 2 + 2149689416U, // 32 - 3 + 2206152U, // 32 - 4 + 2206506U, // 32 - 5 + 1881255052U, // 32 - 6 + 2207244U, // 32 - 7 + 2207598U, // 32 - 8 + 1344385233U, // 32 - 9 + 2208337U, // 32 - 10 + 2208691U, // 32 - 11 + 807515414U, // 32 - 12 + 2209429U, // 32 - 13 + 1881257975U, // 32 - 14 + 2210167U, // 32 - 15 + 2210521U, // 32 - 16 + 1612823612U, // 32 - 17 + 2211260U, // 32 - 18 + 2211615U, // 32 - 19 + 1075953793U, // 32 - 20 + 2212353U, // 32 - 21 + 2418131811U, // 32 - 22 + 2213091U, // 32 - 23 + 2213445U, // 32 - 24 + 1881261991U, // 32 - 25 + 2214183U, // 32 - 26 + 2214538U, // 32 - 27 + 1344392173U, // 32 - 28 + 2215277U, // 32 - 29 + 2215631U, // 32 - 30 + 1075957809U, // 32 - 31 + 2216369U, // 32 - 32 + 2149700371U, // 32 - 33 + 2217107U, // 32 - 34 + 2217461U, // 32 - 35 + 1612830552U, // 32 - 36 + 2218200U, // 32 - 37 + 2218555U, // 32 - 38 + 1075960733U, // 32 - 39 + 2219293U, // 32 - 40 + 2418138751U, // 32 - 41 + 2220030U, // 32 - 42 + 2220385U, // 32 - 43 + 1612833475U, // 32 - 44 + 2221123U, // 32 - 45 + 2221478U, // 32 - 46 + 1344399112U, // 32 - 47 + 2222216U, // 32 - 48 + 2222570U, // 32 - 49 + 1075964748U, // 32 - 50 + 2223308U, // 32 - 51 + 2149707311U, // 32 - 52 + 2224047U, // 32 - 53 + 2224401U, // 32 - 54 + 1612837492U, // 32 - 55 + 2225140U, // 32 - 56 + 2225494U, // 32 - 57 + 1344403128U, // 32 - 58 + 2226232U, // 32 - 59 + 2418145690U, // 33 - 0 + 2226970U, // 33 - 1 + 2227325U, // 33 - 2 + 1881275871U, // 33 - 3 + 2228063U, // 33 - 4 + 2228418U, // 33 - 5 + 1612841508U, // 33 - 6 + 2229156U, // 33 - 7 + 2229510U, // 33 - 8 + 807536232U, // 33 - 9 + 2230248U, // 33 - 10 + 2149714251U, // 33 - 11 + 2230987U, // 33 - 12 + 2231341U, // 33 - 13 + 1612844432U, // 33 - 14 + 2232079U, // 33 - 15 + 2232433U, // 33 - 16 + 1075974612U, // 33 - 17 + 2233171U, // 33 - 18 + 3491894454U, // 33 - 19 + 2233910U, // 33 - 20 + 2234265U, // 33 - 21 + 1612847355U, // 33 - 22 + 2235003U, // 33 - 23 + 2235357U, // 33 - 24 + 1344412991U, // 33 - 25 + 2236095U, // 33 - 26 + 2236449U, // 33 - 27 + 807543172U, // 33 - 28 + 2237188U, // 33 - 29 + 1881285735U, // 33 - 30 + 2237927U, // 33 - 31 + 2238281U, // 33 - 32 + 1612851371U, // 33 - 33 + 2239019U, // 33 - 34 + 2239373U, // 33 - 35 + 1344417007U, // 33 - 36 + 2240111U, // 33 - 37 + 2240466U, // 33 - 38 + 539111733U, // 33 - 39 + 2241205U, // 33 - 40 + 1881289751U, // 33 - 41 + 2241943U, // 33 - 42 + 2242297U, // 33 - 43 + 1344419931U, // 33 - 44 + 2243035U, // 33 - 45 + 2243389U, // 33 - 46 + 807550112U, // 33 - 47 + 2244128U, // 33 - 48 + 1881292674U, // 33 - 49 + 2244866U, // 33 - 50 + 2245220U, // 33 - 51 + 1612858310U, // 33 - 52 + 2245958U, // 33 - 53 + 2246313U, // 33 - 54 + 1075988491U, // 33 - 55 + 2247051U, // 33 - 56 + 2247406U, // 33 - 57 + 539118672U, // 33 - 58 + 2248144U, // 33 - 59 + 1881296690U, // 34 - 0 + 2248882U, // 34 - 1 + 2249236U, // 34 - 2 + 1344426871U, // 34 - 3 + 2249975U, // 34 - 4 + 2250329U, // 34 - 5 + 1075992508U, // 34 - 6 + 2251068U, // 34 - 7 + 2149735070U, // 34 - 8 + 2251806U, // 34 - 9 + 2252160U, // 34 - 10 + 1612865250U, // 34 - 11 + 2252898U, // 34 - 12 + 2253253U, // 34 - 13 + 1075995431U, // 34 - 14 + 2253991U, // 34 - 15 + 2254346U, // 34 - 16 + 539125612U, // 34 - 17 + 2255083U, // 34 - 18 + 1881303630U, // 34 - 19 + 2255821U, // 34 - 20 + 2256176U, // 34 - 21 + 1344433811U, // 34 - 22 + 2256915U, // 34 - 23 + 2257269U, // 34 - 24 + 1075999447U, // 34 - 25 + 2258007U, // 34 - 26 + 2149742009U, // 34 - 27 + 2258745U, // 34 - 28 + 2259099U, // 34 - 29 + 1612872190U, // 34 - 30 + 2259838U, // 34 - 31 + 2260193U, // 34 - 32 + 1344437827U, // 34 - 33 + 2260931U, // 34 - 34 + 2418180389U, // 34 - 35 + 2261669U, // 34 - 36 + 2262023U, // 34 - 37 + 1881310569U, // 34 - 38 + 2262761U, // 34 - 39 + 2263116U, // 34 - 40 + 1344440751U, // 34 - 41 + 2263855U, // 34 - 42 + 2264209U, // 34 - 43 + 1076006387U, // 34 - 44 + 2264947U, // 34 - 45 + 2149748949U, // 34 - 46 + 2265685U, // 34 - 47 + 2266039U, // 34 - 48 + 1612879130U, // 34 - 49 + 2266778U, // 34 - 50 + 2267132U, // 34 - 51 + 1344444767U, // 34 - 52 + 2267870U, // 34 - 53 + 2955058240U, // 34 - 54 + 2268608U, // 34 - 55 + 2268963U, // 34 - 56 + 1881317509U, // 34 - 57 + 2269701U, // 34 - 58 + 2270056U, // 34 - 59 + 1344447690U, // 35 - 0 + 2270794U, // 35 - 1 + 2271148U, // 35 - 2 + 1076013326U, // 35 - 3 + 2271886U, // 35 - 4 + 2149755889U, // 35 - 5 + 2272625U, // 35 - 6 + 2272979U, // 35 - 7 + 1612886070U, // 35 - 8 + 2273718U, // 35 - 9 + 2274072U, // 35 - 10 + 1344451706U, // 35 - 11 + 2274810U, // 35 - 12 + 3223500636U, // 35 - 13 + 2275548U, // 35 - 14 + 2275903U, // 35 - 15 + 1881324449U, // 35 - 16 + 2276641U, // 35 - 17 + 2276996U, // 35 - 18 + 1344454630U, // 35 - 19 + 2277733U, // 35 - 20 + 2278087U, // 35 - 21 + 1076020266U, // 35 - 22 + 2278826U, // 35 - 23 + 2418198285U, // 35 - 24 + 2279565U, // 35 - 25 + 2279919U, // 35 - 26 + 1612893009U, // 35 - 27 + 2280657U, // 35 - 28 + 2281011U, // 35 - 29 + 1344458645U, // 35 - 30 + 2281749U, // 35 - 31 + 2282104U, // 35 - 32 + 539153371U, // 35 - 33 + 2282843U, // 35 - 34 + 1881331389U, // 35 - 35 + 2283581U, // 35 - 36 + 2283935U, // 35 - 37 + 1612897025U, // 35 - 38 + 2284673U, // 35 - 39 + 2285027U, // 35 - 40 + 1076027206U, // 35 - 41 + 2285766U, // 35 - 42 + 2149769769U, // 35 - 43 + 2286504U, // 35 - 44 + 2286859U, // 35 - 45 + 1612899949U, // 35 - 46 + 2287596U, // 35 - 47 + 2287951U, // 35 - 48 + 1344465585U, // 35 - 49 + 2288689U, // 35 - 50 + 2289044U, // 35 - 51 + 539160310U, // 35 - 52 + 2289782U, // 35 - 53 + 1881338329U, // 35 - 54 + 2290520U, // 35 - 55 + 2290874U, // 35 - 56 + 1612903965U, // 35 - 57 + 2291613U, // 35 - 58 + 2291967U, // 35 - 59 + 1076034146U, // 36 - 0 + 2292706U, // 36 - 1 + 2149776708U, // 36 - 2 + 2293444U, // 36 - 3 + 2293798U, // 36 - 4 + 1881342344U, // 36 - 5 + 2294536U, // 36 - 6 + 2294890U, // 36 - 7 + 1344472525U, // 36 - 8 + 2295629U, // 36 - 9 + 2295984U, // 36 - 10 + 807602706U, // 36 - 11 + 2296722U, // 36 - 12 + 2149780724U, // 36 - 13 + 2297460U, // 36 - 14 + 2297814U, // 36 - 15 + 1612910904U, // 36 - 16 + 2298553U, // 36 - 17 + 2298907U, // 36 - 18 + 1076041086U, // 36 - 19 + 2299646U, // 36 - 20 + 2149783648U, // 36 - 21 + 2300383U, // 36 - 22 + 2300737U, // 36 - 23 + 1612913828U, // 36 - 24 + 2301476U, // 36 - 25 + 2301831U, // 36 - 26 + 1344479465U, // 36 - 27 + 2302569U, // 36 - 28 + 2302923U, // 36 - 29 + 807609645U, // 36 - 30 + 2303661U, // 36 - 31 + 2149787663U, // 36 - 32 + 2304399U, // 36 - 33 + 2304754U, // 36 - 34 + 1344482388U, // 36 - 35 + 2305493U, // 36 - 36 + 2305847U, // 36 - 37 + 1076048025U, // 36 - 38 + 2306585U, // 36 - 39 + 2149790587U, // 36 - 40 + 2307323U, // 36 - 41 + 2307677U, // 36 - 42 + 1881356224U, // 36 - 43 + 2308416U, // 36 - 44 + 2308770U, // 36 - 45 + 1344486405U, // 36 - 46 + 2309509U, // 36 - 47 + 2309863U, // 36 - 48 + 807616585U, // 36 - 49 + 2310601U, // 36 - 50 + 1881359147U, // 36 - 51 + 2311339U, // 36 - 52 + 2311694U, // 36 - 53 + 1344489328U, // 36 - 54 + 2312432U, // 36 - 55 + 2312787U, // 36 - 56 + 1076054964U, // 36 - 57 + 2313524U, // 36 - 58 + 2418232983U, // 36 - 59 + 2314263U, // 37 - 0 + 2314617U, // 37 - 1 + 1612927708U, // 37 - 2 + 2315356U, // 37 - 3 + 2315710U, // 37 - 4 + 1344493344U, // 37 - 5 + 2316448U, // 37 - 6 + 2316802U, // 37 - 7 + 807623524U, // 37 - 8 + 2317540U, // 37 - 9 + 1881366087U, // 37 - 10 + 2318279U, // 37 - 11 + 2318634U, // 37 - 12 + 1612931724U, // 37 - 13 + 2319372U, // 37 - 14 + 2319726U, // 37 - 15 + 1076061904U, // 37 - 16 + 2320464U, // 37 - 17 + 3223546290U, // 37 - 18 + 2321202U, // 37 - 19 + 2321557U, // 37 - 20 + 1612934648U, // 37 - 21 + 2322296U, // 37 - 22 + 2322650U, // 37 - 23 + 1344500284U, // 37 - 24 + 2323387U, // 37 - 25 + 2323742U, // 37 - 26 + 539195008U, // 37 - 27 + 2324480U, // 37 - 28 + 1881373027U, // 37 - 29 + 2325219U, // 37 - 30 + 2325573U, // 37 - 31 + 1612938663U, // 37 - 32 + 2326311U, // 37 - 33 + 2326665U, // 37 - 34 + 1076068844U, // 37 - 35 + 2327404U, // 37 - 36 + 2418246862U, // 37 - 37 + 2328142U, // 37 - 38 + 2328497U, // 37 - 39 + 1881377043U, // 37 - 40 + 2329235U, // 37 - 41 + 2329589U, // 37 - 42 + 1344507223U, // 37 - 43 + 2330327U, // 37 - 44 + 2330682U, // 37 - 45 + 807637404U, // 37 - 46 + 2331420U, // 37 - 47 + 2149815423U, // 37 - 48 + 2332159U, // 37 - 49 + 2332513U, // 37 - 50 + 1612945603U, // 37 - 51 + 2333251U, // 37 - 52 + 2333605U, // 37 - 53 + 1076075784U, // 37 - 54 + 2334344U, // 37 - 55 + 2418253802U, // 37 - 56 + 2335082U, // 37 - 57 + 2335436U, // 37 - 58 + 1881383982U, // 37 - 59 + 2336174U, // 38 - 0 + 2336528U, // 38 - 1 + 1344514163U, // 38 - 2 + 2337267U, // 38 - 3 + 2337622U, // 38 - 4 + 1076079800U, // 38 - 5 + 2338360U, // 38 - 6 + 2149822362U, // 38 - 7 + 2339098U, // 38 - 8 + 2339452U, // 38 - 9 + 1612952542U, // 38 - 10 + 2340190U, // 38 - 11 + 2340545U, // 38 - 12 + 1076082724U, // 38 - 13 + 2341284U, // 38 - 14 + 2149825286U, // 38 - 15 + 2342022U, // 38 - 16 + 2342376U, // 38 - 17 + 1881390922U, // 38 - 18 + 2343114U, // 38 - 19 + 2343468U, // 38 - 20 + 1344521103U, // 38 - 21 + 2344207U, // 38 - 22 + 2344562U, // 38 - 23 + 1076086740U, // 38 - 24 + 2345300U, // 38 - 25 + 2149829302U, // 38 - 26 + 2346037U, // 38 - 27 + 2346392U, // 38 - 28 + 1612959482U, // 38 - 29 + 2347130U, // 38 - 30 + 2347485U, // 38 - 31 + 1076089663U, // 38 - 32 + 2348223U, // 38 - 33 + 2418267681U, // 38 - 34 + 2348961U, // 38 - 35 + 2349315U, // 38 - 36 + 1881397862U, // 38 - 37 + 2350054U, // 38 - 38 + 2350408U, // 38 - 39 + 1344528043U, // 38 - 40 + 2351147U, // 38 - 41 + 2351501U, // 38 - 42 + 807658223U, // 38 - 43 + 2352239U, // 38 - 44 + 2149836241U, // 38 - 45 + 2352977U, // 38 - 46 + 2353332U, // 38 - 47 + 1612966422U, // 38 - 48 + 2354070U, // 38 - 49 + 2354425U, // 38 - 50 + 1344532059U, // 38 - 51 + 2355163U, // 38 - 52 + 2686710077U, // 38 - 53 + 2355901U, // 38 - 54 + 2356255U, // 38 - 55 + 1881404802U, // 38 - 56 + 2356994U, // 38 - 57 + 2357348U, // 38 - 58 + 1344534983U, // 38 - 59 + 2358086U, // 39 - 0 + 2358440U, // 39 - 1 + 1076100619U, // 39 - 2 + 2359178U, // 39 - 3 + 2149843181U, // 39 - 4 + 2359917U, // 39 - 5 + 2360272U, // 39 - 6 + 1612973362U, // 39 - 7 + 2361010U, // 39 - 8 + 2361364U, // 39 - 9 + 1344538998U, // 39 - 10 + 2362102U, // 39 - 11 + 2686717016U, // 39 - 12 + 2362840U, // 39 - 13 + 2363195U, // 39 - 14 + 1881411742U, // 39 - 15 + 2363934U, // 39 - 16 + 2364288U, // 39 - 17 + 1612977378U, // 39 - 18 + 2365026U, // 39 - 19 + 2365380U, // 39 - 20 + 807672102U, // 39 - 21 + 2366118U, // 39 - 22 + 2149850121U, // 39 - 23 + 2366857U, // 39 - 24 + 2367212U, // 39 - 25 + 1612980302U, // 39 - 26 + 2367950U, // 39 - 27 + 2368304U, // 39 - 28 + 1076110482U, // 39 - 29 + 2369042U, // 39 - 30 + 2955159412U, // 39 - 31 + 2369780U, // 39 - 32 + 2370135U, // 39 - 33 + 1881418681U, // 39 - 34 + 2370873U, // 39 - 35 + 2371227U, // 39 - 36 + 1612984317U, // 39 - 37 + 2371965U, // 39 - 38 + 2372320U, // 39 - 39 + 1076114498U, // 39 - 40 + 2373058U, // 39 - 41 + 2149857061U, // 39 - 42 + 2373797U, // 39 - 43 + 2374151U, // 39 - 44 + 1612987241U, // 39 - 45 + 2374889U, // 39 - 46 + 2375243U, // 39 - 47 + 1344552878U, // 39 - 48 + 2375982U, // 39 - 49 + 2376336U, // 39 - 50 + 807683059U, // 39 - 51 + 2377075U, // 39 - 52 + 1881425621U, // 39 - 53 + 2377813U, // 39 - 54 + 2378167U, // 39 - 55 + 1344555801U, // 39 - 56 + 2378905U, // 39 - 57 + 2379260U, // 39 - 58 + 807685982U, // 39 - 59 + 2379998U, // 40 - 0 + 2149864001U, // 40 - 1 + 2380736U, // 40 - 2 + 2381090U, // 40 - 3 + 1612994181U, // 40 - 4 + 2381828U, // 40 - 5 + 2382183U, // 40 - 6 + 1076124362U, // 40 - 7 + 2382922U, // 40 - 8 + 2383276U, // 40 - 9 + 807689998U, // 40 - 10 + 2384014U, // 40 - 11 + 1881432560U, // 40 - 12 + 2384752U, // 40 - 13 + 2385106U, // 40 - 14 + 1344562741U, // 40 - 15 + 2385845U, // 40 - 16 + 2386200U, // 40 - 17 + 1076128378U, // 40 - 18 + 2386938U, // 40 - 19 + 2149870940U, // 40 - 20 + 2387676U, // 40 - 21 + 2388030U, // 40 - 22 + 1613001120U, // 40 - 23 + 2388768U, // 40 - 24 + 2389123U, // 40 - 25 + 1344566758U, // 40 - 26 + 2389862U, // 40 - 27 + 2686744776U, // 40 - 28 + 2390600U, // 40 - 29 + 2390954U, // 40 - 30 + 1881439500U, // 40 - 31 + 2391692U, // 40 - 32 + 2392046U, // 40 - 33 + 1344569681U, // 40 - 34 + 2392785U, // 40 - 35 + 2393139U, // 40 - 36 + 1076135318U, // 40 - 37 + 2393877U, // 40 - 38 + 2149877879U, // 40 - 39 + 2394615U, // 40 - 40 + 2394970U, // 40 - 41 + 1613008060U, // 40 - 42 + 2395708U, // 40 - 43 + 2396063U, // 40 - 44 + 1344573697U, // 40 - 45 + 2396801U, // 40 - 46 + 2418316259U, // 40 - 47 + 2397539U, // 40 - 48 + 2397893U, // 40 - 49 + 2149881896U, // 40 - 50 + 2398632U, // 40 - 51 + 2398986U, // 40 - 52 + 1613012077U, // 40 - 53 + 2399725U, // 40 - 54 + 2400079U, // 40 - 55 + 1076142257U, // 40 - 56 + 2400817U, // 40 - 57 + 2418320275U, // 40 - 58 + 2401555U, // 40 - 59 + 2401910U, // 41 - 0 + 1613015000U, // 41 - 1 + 2402648U, // 41 - 2 + 2403003U, // 41 - 3 + 1344580637U, // 41 - 4 + 2403740U, // 41 - 5 + 2955194110U, // 41 - 6 + 2404478U, // 41 - 7 + 2404833U, // 41 - 8 + 1881453380U, // 41 - 9 + 2405572U, // 41 - 10 + 2405926U, // 41 - 11 + 1613019016U, // 41 - 12 + 2406664U, // 41 - 13 + 2407018U, // 41 - 14 + 1076149196U, // 41 - 15 + 2407756U, // 41 - 16 + 2149891759U, // 41 - 17 + 2408495U, // 41 - 18 + 2408850U, // 41 - 19 + 1613021940U, // 41 - 20 + 2409588U, // 41 - 21 + 2409942U, // 41 - 22 + 1344587576U, // 41 - 23 + 2410680U, // 41 - 24 + 2411034U, // 41 - 25 + 807717757U, // 41 - 26 + 2411773U, // 41 - 27 + 1881460320U, // 41 - 28 + 2412512U, // 41 - 29 + 2412866U, // 41 - 30 + 1613025956U, // 41 - 31 + 2413603U, // 41 - 32 + 2413958U, // 41 - 33 + 1076156136U, // 41 - 34 + 2414696U, // 41 - 35 + 2418334155U, // 41 - 36 + 2415435U, // 41 - 37 + 2415789U, // 41 - 38 + 1613028880U, // 41 - 39 + 2416527U, // 41 - 40 + 2416881U, // 41 - 41 + 1344594516U, // 41 - 42 + 2417620U, // 41 - 43 + 2417974U, // 41 - 44 + 807724697U, // 41 - 45 + 2418713U, // 41 - 46 + 1881467259U, // 41 - 47 + 2419451U, // 41 - 48 + 2419805U, // 41 - 49 + 1613032895U, // 41 - 50 + 2420543U, // 41 - 51 + 2420897U, // 41 - 52 + 807727620U, // 41 - 53 + 2421636U, // 41 - 54 + 2149905639U, // 41 - 55 + 2422375U, // 41 - 56 + 2422729U, // 41 - 57 + 1613035819U, // 41 - 58 + 2423467U, // 41 - 59 + 2423821U, // 42 - 0 + 1344601455U, // 42 - 1 + 2424560U, // 42 - 2 + 2424914U, // 42 - 3 + 807731637U, // 42 - 4 + 2425653U, // 42 - 5 + 1881474199U, // 42 - 6 + 2426390U, // 42 - 7 + 2426744U, // 42 - 8 + 1613039835U, // 42 - 9 + 2427483U, // 42 - 10 + 2427838U, // 42 - 11 + 1076170016U, // 42 - 12 + 2428576U, // 42 - 13 + 2149912578U, // 42 - 14 + 2429314U, // 42 - 15 + 2429668U, // 42 - 16 + 1881478214U, // 42 - 17 + 2430406U, // 42 - 18 + 2430761U, // 42 - 19 + 1344608395U, // 42 - 20 + 2431500U, // 42 - 21 + 2431854U, // 42 - 22 + 807738576U, // 42 - 23 + 2432592U, // 42 - 24 + 2149916594U, // 42 - 25 + 2433330U, // 42 - 26 + 2433684U, // 42 - 27 + 1613046775U, // 42 - 28 + 2434423U, // 42 - 29 + 2434777U, // 42 - 30 + 1076176956U, // 42 - 31 + 2435516U, // 42 - 32 + 2418354974U, // 42 - 33 + 2436253U, // 42 - 34 + 2436608U, // 42 - 35 + 1881485154U, // 42 - 36 + 2437346U, // 42 - 37 + 2437701U, // 42 - 38 + 1344615335U, // 42 - 39 + 2438439U, // 42 - 40 + 2438794U, // 42 - 41 + 1076180971U, // 42 - 42 + 2439531U, // 42 - 43 + 2149923534U, // 42 - 44 + 2440270U, // 42 - 45 + 2440624U, // 42 - 46 + 1613053715U, // 42 - 47 + 2441363U, // 42 - 48 + 2441717U, // 42 - 49 + 1344619351U, // 42 - 50 + 2442455U, // 42 - 51 + 2418361913U, // 42 - 52 + 2443193U, // 42 - 53 + 2443547U, // 42 - 54 + 1881492094U, // 42 - 55 + 2444286U, // 42 - 56 + 2444641U, // 42 - 57 + 1344622275U, // 42 - 58 + 2445379U, // 42 - 59 + 2955235749U, // 43 - 0 + 2446117U, // 43 - 1 + 2446471U, // 43 - 2 + 1881495017U, // 43 - 3 + 2447209U, // 43 - 4 + 2447564U, // 43 - 5 + 1613060655U, // 43 - 6 + 2448303U, // 43 - 7 + 2448657U, // 43 - 8 + 1076190835U, // 43 - 9 + 2449394U, // 43 - 10 + 2418368853U, // 43 - 11 + 2450133U, // 43 - 12 + 2450487U, // 43 - 13 + 1613063578U, // 43 - 14 + 2451226U, // 43 - 15 + 2451580U, // 43 - 16 + 1344629214U, // 43 - 17 + 2452318U, // 43 - 18 + 2452672U, // 43 - 19 + 807759395U, // 43 - 20 + 2453411U, // 43 - 21 + 2149937413U, // 43 - 22 + 2454150U, // 43 - 23 + 2454504U, // 43 - 24 + 1613067594U, // 43 - 25 + 2455242U, // 43 - 26 + 2455596U, // 43 - 27 + 1344633230U, // 43 - 28 + 2456334U, // 43 - 29 + 2686811249U, // 43 - 30 + 2457073U, // 43 - 31 + 2457427U, // 43 - 32 + 1881505974U, // 43 - 33 + 2458166U, // 43 - 34 + 2458520U, // 43 - 35 + 1344636154U, // 43 - 36 + 2459258U, // 43 - 37 + 2459612U, // 43 - 38 + 807766335U, // 43 - 39 + 2460351U, // 43 - 40 + 1881508897U, // 43 - 41 + 2461089U, // 43 - 42 + 2461443U, // 43 - 43 + 1613074533U, // 43 - 44 + 2462181U, // 43 - 45 + 2462536U, // 43 - 46 + 1076204714U, // 43 - 47 + 2463274U, // 43 - 48 + 3223689101U, // 43 - 49 + 2464013U, // 43 - 50 + 2464367U, // 43 - 51 + 1881512913U, // 43 - 52 + 2465105U, // 43 - 53 + 2465459U, // 43 - 54 + 1613078549U, // 43 - 55 + 2466197U, // 43 - 56 + 2466552U, // 43 - 57 + 807773275U, // 43 - 58 + 2467291U, // 43 - 59 + 2149951293U, // 44 - 0 + 2468029U, // 44 - 1 + 2468383U, // 44 - 2 + 1613081473U, // 44 - 3 + 2469121U, // 44 - 4 + 2469475U, // 44 - 5 + 1076211654U, // 44 - 6 + 2470214U, // 44 - 7 + 2418389673U, // 44 - 8 + 2470953U, // 44 - 9 + 2471307U, // 44 - 10 + 1881519853U, // 44 - 11 + 2472044U, // 44 - 12 + 2472399U, // 44 - 13 + 1344650033U, // 44 - 14 + 2473137U, // 44 - 15 + 2473492U, // 44 - 16 + 1076215670U, // 44 - 17 + 2474230U, // 44 - 18 + 2149958232U, // 44 - 19 + 2474968U, // 44 - 20 + 2475322U, // 44 - 21 + 1613088413U, // 44 - 22 + 2476061U, // 44 - 23 + 2476415U, // 44 - 24 + 1344654050U, // 44 - 25 + 2477154U, // 44 - 26 + 2418396612U, // 44 - 27 + 2477892U, // 44 - 28 + 2478246U, // 44 - 29 + 1881526792U, // 44 - 30 + 2478984U, // 44 - 31 + 2479339U, // 44 - 32 + 1344656973U, // 44 - 33 + 2480077U, // 44 - 34 + 2480432U, // 44 - 35 + 1076222610U, // 44 - 36 + 2481170U, // 44 - 37 + 2149965172U, // 44 - 38 + 2481908U, // 44 - 39 + 2482262U, // 44 - 40 + 1613095353U, // 44 - 41 + 2483001U, // 44 - 42 + 2483355U, // 44 - 43 + 1344660990U, // 44 - 44 + 2484093U, // 44 - 45 + 2418403551U, // 44 - 46 + 2484831U, // 44 - 47 + 2485185U, // 44 - 48 + 1881533732U, // 44 - 49 + 2485924U, // 44 - 50 + 2486279U, // 44 - 51 + 1344663913U, // 44 - 52 + 2487017U, // 44 - 53 + 2487371U, // 44 - 54 + 807794093U, // 44 - 55 + 2488109U, // 44 - 56 +0xffffffff +}; + +//Took 20975 seconds to create diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/table-587-2100/calcondata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/table-587-2100/calcondata.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,23 @@ +// Copyright (c) 2000-2009 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: +// Generated by CalconTable.exe +// + +const TInt KFirstCycle=35;//1..n +const TInt KFirstJulianDate=1506663; +const TInt KLastJulianDate=2488434; +const TInt KFirstYear=9; //1..60 +const TInt KLastCycle=79;//1..n +const TInt KLastYear=57;//1..60 +const TInt KNumberOfYears=2689; diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/table1900-2100/calcondata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/table1900-2100/calcondata.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,427 @@ +// Copyright (c) 2000-2009 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: +// Generated by CalconTable.exe +// + +#include "calconvusingtable.h" +const TUint16 TCalconData::iCalConDataMonth[]={ + 43856U, // 0 - 35 + 19304U, // 0 - 36 + 19168U, // 0 - 37 + 42352U, // 0 - 38 + 21096U, // 0 - 39 + 53856U, // 0 - 40 + 55632U, // 0 - 41 + 23208U, // 0 - 42 + 22176U, // 0 - 43 + 39632U, // 0 - 44 + 19176U, // 0 - 45 + 19168U, // 0 - 46 + 42200U, // 0 - 47 + 42192U, // 0 - 48 + 53840U, // 0 - 49 + 54568U, // 0 - 50 + 46400U, // 0 - 51 + 54944U, // 0 - 52 + 38608U, // 0 - 53 + 38320U, // 0 - 54 + 18872U, // 0 - 55 + 18800U, // 0 - 56 + 42160U, // 0 - 57 + 45656U, // 0 - 58 + 27216U, // 0 - 59 + 27968U, // 1 - 0 + 44456U, // 1 - 1 + 11104U, // 1 - 2 + 38256U, // 1 - 3 + 18808U, // 1 - 4 + 18800U, // 1 - 5 + 25776U, // 1 - 6 + 54432U, // 1 - 7 + 59984U, // 1 - 8 + 27976U, // 1 - 9 + 23248U, // 1 - 10 + 11104U, // 1 - 11 + 37744U, // 1 - 12 + 37600U, // 1 - 13 + 51560U, // 1 - 14 + 51536U, // 1 - 15 + 54432U, // 1 - 16 + 55888U, // 1 - 17 + 46416U, // 1 - 18 + 22176U, // 1 - 19 + 43736U, // 1 - 20 + 9680U, // 1 - 21 + 37584U, // 1 - 22 + 51544U, // 1 - 23 + 43344U, // 1 - 24 + 46248U, // 1 - 25 + 27808U, // 1 - 26 + 46416U, // 1 - 27 + 21928U, // 1 - 28 + 19872U, // 1 - 29 + 42416U, // 1 - 30 + 21176U, // 1 - 31 + 21168U, // 1 - 32 + 43344U, // 1 - 33 + 59728U, // 1 - 34 + 27296U, // 1 - 35 + 44368U, // 1 - 36 + 43856U, // 1 - 37 + 19296U, // 1 - 38 + 42352U, // 1 - 39 + 42352U, // 1 - 40 + 21088U, // 1 - 41 + 59696U, // 1 - 42 + 55632U, // 1 - 43 + 23208U, // 1 - 44 + 22176U, // 1 - 45 + 38608U, // 1 - 46 + 19176U, // 1 - 47 + 19152U, // 1 - 48 + 42192U, // 1 - 49 + 53864U, // 1 - 50 + 53840U, // 1 - 51 + 54568U, // 1 - 52 + 46400U, // 1 - 53 + 46752U, // 1 - 54 + 38608U, // 1 - 55 + 38320U, // 1 - 56 + 18864U, // 1 - 57 + 42168U, // 1 - 58 + 42160U, // 1 - 59 + 45656U, // 2 - 0 + 27216U, // 2 - 1 + 27968U, // 2 - 2 + 44448U, // 2 - 3 + 43872U, // 2 - 4 + 38256U, // 2 - 5 + 18808U, // 2 - 6 + 18800U, // 2 - 7 + 25776U, // 2 - 8 + 27216U, // 2 - 9 + 59984U, // 2 - 10 + 27432U, // 2 - 11 + 23232U, // 2 - 12 + 43872U, // 2 - 13 + 37736U, // 2 - 14 + 37600U, // 2 - 15 + 51552U, // 2 - 16 + 54440U, // 2 - 17 + 54432U, // 2 - 18 + 55888U, // 2 - 19 + 23208U, // 2 - 20 + 22176U, // 2 - 21 + 43736U, // 2 - 22 + 9680U, // 2 - 23 + 37584U, // 2 - 24 + 51544U, // 2 - 25 + 43344U, // 2 - 26 + 46240U, // 2 - 27 + 46416U, // 2 - 28 + 44368U, // 2 - 29 + 21928U, // 2 - 30 + 19360U, // 2 - 31 + 42416U, // 2 - 32 + 21176U, // 2 - 33 + 21168U, // 2 - 34 + 43312U, // 2 - 35 + 29864U, // 2 - 36 + 27296U, // 2 - 37 + 44368U, // 2 - 38 + 19880U, // 2 - 39 + 19296U, // 2 - 40 + 42352U, // 2 - 41 + 42208U, // 2 - 42 + 53856U, // 2 - 43 + 59696U, // 2 - 44 + 54576U, // 2 - 45 + 23200U, // 2 - 46 + 27472U, // 2 - 47 + 38608U, // 2 - 48 + 19176U, // 2 - 49 + 19152U, // 2 - 50 + 42192U, // 2 - 51 + 53848U, // 2 - 52 + 53840U, // 2 - 53 + 54560U, // 2 - 54 + 55968U, // 2 - 55 + 46496U, // 2 - 56 + 22224U, // 2 - 57 + 19160U, // 2 - 58 + 18864U, // 2 - 59 + 42168U, // 3 - 0 + 42160U, // 3 - 1 + 43600U, // 3 - 2 + 46376U, // 3 - 3 + 27936U, // 3 - 4 + 44448U, // 3 - 5 + 21936U, // 3 - 6 + 37744U, // 3 - 7 + 18808U, // 3 - 8 + 18800U, // 3 - 9 + 25776U, // 3 - 10 + 27216U, // 3 - 11 + 59984U, // 3 - 12 + 27296U, // 3 - 13 + 43872U, // 3 - 14 + 43744U, // 3 - 15 + 37600U, // 3 - 16 + 51568U, // 3 - 17 + 51552U, // 3 - 18 + 54440U, // 3 - 19 + 54432U, // 3 - 20 + 55888U, // 3 - 21 + 23208U, // 3 - 22 + 22176U, // 3 - 23 + 42704U, // 3 - 24 + 21224U, // 3 - 25 + 21200U, // 3 - 26 + 43352U, // 3 - 27 + 43344U, // 3 - 28 + 46240U, // 3 - 29 + 46416U, // 3 - 30 + 44368U, // 3 - 31 + 21920U, // 3 - 32 + 42448U, // 3 - 33 + 42416U, // 3 - 34 + 21168U, // 3 - 35 + 43320U, // 3 - 36 + 26928U, // 3 - 37 + 29336U, // 3 - 38 + 27296U, // 3 - 39 + 44368U, // 3 - 40 + 19880U, // 3 - 41 + 19296U, // 3 - 42 + 42352U, // 3 - 43 + 21104U, // 3 - 44 + 53600U, // 3 - 45 + 59696U, // 3 - 46 + 54560U, // 3 - 47 + 55968U, // 3 - 48 + 27472U, // 3 - 49 + 22224U, // 3 - 50 + 19168U, // 3 - 51 + 42216U, // 3 - 52 + 41680U, // 3 - 53 + 53584U, // 3 - 54 + 55592U, // 3 - 55 +}; +const TUint32 TCalconData::iCalConDataYear[]={ + 2414696, // 0 - 35 + 2418334155, // 0 - 36 + 2415435, // 0 - 37 + 2415789, // 0 - 38 + 1613028880, // 0 - 39 + 2416527, // 0 - 40 + 2416881, // 0 - 41 + 1344594516, // 0 - 42 + 2417620, // 0 - 43 + 2417974, // 0 - 44 + 807724697, // 0 - 45 + 2418713, // 0 - 46 + 1881467259, // 0 - 47 + 2419451, // 0 - 48 + 2419805, // 0 - 49 + 1613032895, // 0 - 50 + 2420543, // 0 - 51 + 2420897, // 0 - 52 + 807727620, // 0 - 53 + 2421636, // 0 - 54 + 2149905639, // 0 - 55 + 2422375, // 0 - 56 + 2422729, // 0 - 57 + 1613035819, // 0 - 58 + 2423467, // 0 - 59 + 2423821, // 1 - 0 + 1344601455, // 1 - 1 + 2424560, // 1 - 2 + 2424914, // 1 - 3 + 807731637, // 1 - 4 + 2425653, // 1 - 5 + 1881474199, // 1 - 6 + 2426390, // 1 - 7 + 2426744, // 1 - 8 + 1613039835, // 1 - 9 + 2427483, // 1 - 10 + 2427838, // 1 - 11 + 1076170016, // 1 - 12 + 2428576, // 1 - 13 + 2149912578, // 1 - 14 + 2429314, // 1 - 15 + 2429668, // 1 - 16 + 1881478214, // 1 - 17 + 2430406, // 1 - 18 + 2430761, // 1 - 19 + 1344608395, // 1 - 20 + 2431500, // 1 - 21 + 2431854, // 1 - 22 + 807738576, // 1 - 23 + 2432592, // 1 - 24 + 2149916594, // 1 - 25 + 2433330, // 1 - 26 + 2433684, // 1 - 27 + 1613046775, // 1 - 28 + 2434423, // 1 - 29 + 2434777, // 1 - 30 + 1076176956, // 1 - 31 + 2435516, // 1 - 32 + 2418354974, // 1 - 33 + 2436253, // 1 - 34 + 2436608, // 1 - 35 + 1881485154, // 1 - 36 + 2437346, // 1 - 37 + 2437701, // 1 - 38 + 1344615335, // 1 - 39 + 2438439, // 1 - 40 + 2438794, // 1 - 41 + 1076180971, // 1 - 42 + 2439531, // 1 - 43 + 2149923534, // 1 - 44 + 2440270, // 1 - 45 + 2440624, // 1 - 46 + 1613053715, // 1 - 47 + 2441363, // 1 - 48 + 2441717, // 1 - 49 + 1344619351, // 1 - 50 + 2442455, // 1 - 51 + 2418361913, // 1 - 52 + 2443193, // 1 - 53 + 2443547, // 1 - 54 + 1881492094, // 1 - 55 + 2444286, // 1 - 56 + 2444641, // 1 - 57 + 1344622275, // 1 - 58 + 2445379, // 1 - 59 + 2955235749, // 2 - 0 + 2446117, // 2 - 1 + 2446471, // 2 - 2 + 1881495017, // 2 - 3 + 2447209, // 2 - 4 + 2447564, // 2 - 5 + 1613060655, // 2 - 6 + 2448303, // 2 - 7 + 2448657, // 2 - 8 + 1076190835, // 2 - 9 + 2449394, // 2 - 10 + 2418368853, // 2 - 11 + 2450133, // 2 - 12 + 2450487, // 2 - 13 + 1613063578, // 2 - 14 + 2451226, // 2 - 15 + 2451580, // 2 - 16 + 1344629214, // 2 - 17 + 2452318, // 2 - 18 + 2452672, // 2 - 19 + 807759395, // 2 - 20 + 2453411, // 2 - 21 + 2149937413, // 2 - 22 + 2454150, // 2 - 23 + 2454504, // 2 - 24 + 1613067594, // 2 - 25 + 2455242, // 2 - 26 + 2455596, // 2 - 27 + 1344633230, // 2 - 28 + 2456334, // 2 - 29 + 2686811249, // 2 - 30 + 2457073, // 2 - 31 + 2457427, // 2 - 32 + 1881505974, // 2 - 33 + 2458166, // 2 - 34 + 2458520, // 2 - 35 + 1344636154, // 2 - 36 + 2459258, // 2 - 37 + 2459612, // 2 - 38 + 807766335, // 2 - 39 + 2460351, // 2 - 40 + 1881508897, // 2 - 41 + 2461089, // 2 - 42 + 2461443, // 2 - 43 + 1613074533, // 2 - 44 + 2462181, // 2 - 45 + 2462536, // 2 - 46 + 1076204714, // 2 - 47 + 2463274, // 2 - 48 + 3223689101, // 2 - 49 + 2464013, // 2 - 50 + 2464367, // 2 - 51 + 1881512913, // 2 - 52 + 2465105, // 2 - 53 + 2465459, // 2 - 54 + 1613078549, // 2 - 55 + 2466197, // 2 - 56 + 2466552, // 2 - 57 + 807773275, // 2 - 58 + 2467291, // 2 - 59 + 2149951293, // 3 - 0 + 2468029, // 3 - 1 + 2468383, // 3 - 2 + 1613081473, // 3 - 3 + 2469121, // 3 - 4 + 2469475, // 3 - 5 + 1076211654, // 3 - 6 + 2470214, // 3 - 7 + 2418389673, // 3 - 8 + 2470953, // 3 - 9 + 2471307, // 3 - 10 + 1881519853, // 3 - 11 + 2472044, // 3 - 12 + 2472399, // 3 - 13 + 1344650033, // 3 - 14 + 2473137, // 3 - 15 + 2473492, // 3 - 16 + 1076215670, // 3 - 17 + 2474230, // 3 - 18 + 2149958232, // 3 - 19 + 2474968, // 3 - 20 + 2475322, // 3 - 21 + 1613088413, // 3 - 22 + 2476061, // 3 - 23 + 2476415, // 3 - 24 + 1344654050, // 3 - 25 + 2477154, // 3 - 26 + 2418396612, // 3 - 27 + 2477892, // 3 - 28 + 2478246, // 3 - 29 + 1881526792, // 3 - 30 + 2478984, // 3 - 31 + 2479339, // 3 - 32 + 1344656973, // 3 - 33 + 2480077, // 3 - 34 + 2480432, // 3 - 35 + 1076222610, // 3 - 36 + 2481170, // 3 - 37 + 2149965172, // 3 - 38 + 2481908, // 3 - 39 + 2482262, // 3 - 40 + 1613095353, // 3 - 41 + 2483001, // 3 - 42 + 2483355, // 3 - 43 + 1344660990, // 3 - 44 + 2484093, // 3 - 45 + 2418403551, // 3 - 46 + 2484831, // 3 - 47 + 2485185, // 3 - 48 + 1881533732, // 3 - 49 + 2485924, // 3 - 50 + 2486279, // 3 - 51 + 1344663913, // 3 - 52 + 2487017, // 3 - 53 + 2487371, // 3 - 54 + 807794093, // 3 - 55 + 2488109, // 3 - 56 +0xffffffff +}; + +//Took 260 seconds to create diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/table1900-2100/calcondata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/table1900-2100/calcondata.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,23 @@ +// Copyright (c) 2000-2009 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: +// Generated by CalconTable.exe +// + +const TInt KFirstCycle=76;//1..n +const TInt KFirstJulianDate=2415021; +const TInt KLastJulianDate=2488434; +const TInt KFirstYear=36; //1..60 +const TInt KLastCycle=79;//1..n +const TInt KLastYear=57;//1..60 +const TInt KNumberOfYears=202; diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/table1980-2100/calcondata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/table1980-2100/calcondata.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,267 @@ +// Copyright (c) 2000-2009 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: +// Generated by CalconTable.exe +// + +#include "calconvusingtable.h" +const TUint16 TCalconData::iCalConDataMonth[]={ + 38608U, // 0 - 55 + 38320U, // 0 - 56 + 18864U, // 0 - 57 + 42168U, // 0 - 58 + 42160U, // 0 - 59 + 45656U, // 1 - 0 + 27216U, // 1 - 1 + 27968U, // 1 - 2 + 44448U, // 1 - 3 + 43872U, // 1 - 4 + 38256U, // 1 - 5 + 18808U, // 1 - 6 + 18800U, // 1 - 7 + 25776U, // 1 - 8 + 27216U, // 1 - 9 + 59984U, // 1 - 10 + 27432U, // 1 - 11 + 23232U, // 1 - 12 + 43872U, // 1 - 13 + 37736U, // 1 - 14 + 37600U, // 1 - 15 + 51552U, // 1 - 16 + 54440U, // 1 - 17 + 54432U, // 1 - 18 + 55888U, // 1 - 19 + 23208U, // 1 - 20 + 22176U, // 1 - 21 + 43736U, // 1 - 22 + 9680U, // 1 - 23 + 37584U, // 1 - 24 + 51544U, // 1 - 25 + 43344U, // 1 - 26 + 46240U, // 1 - 27 + 46416U, // 1 - 28 + 44368U, // 1 - 29 + 21928U, // 1 - 30 + 19360U, // 1 - 31 + 42416U, // 1 - 32 + 21176U, // 1 - 33 + 21168U, // 1 - 34 + 43312U, // 1 - 35 + 29864U, // 1 - 36 + 27296U, // 1 - 37 + 44368U, // 1 - 38 + 19880U, // 1 - 39 + 19296U, // 1 - 40 + 42352U, // 1 - 41 + 42208U, // 1 - 42 + 53856U, // 1 - 43 + 59696U, // 1 - 44 + 54576U, // 1 - 45 + 23200U, // 1 - 46 + 27472U, // 1 - 47 + 38608U, // 1 - 48 + 19176U, // 1 - 49 + 19152U, // 1 - 50 + 42192U, // 1 - 51 + 53848U, // 1 - 52 + 53840U, // 1 - 53 + 54560U, // 1 - 54 + 55968U, // 1 - 55 + 46496U, // 1 - 56 + 22224U, // 1 - 57 + 19160U, // 1 - 58 + 18864U, // 1 - 59 + 42168U, // 2 - 0 + 42160U, // 2 - 1 + 43600U, // 2 - 2 + 46376U, // 2 - 3 + 27936U, // 2 - 4 + 44448U, // 2 - 5 + 21936U, // 2 - 6 + 37744U, // 2 - 7 + 18808U, // 2 - 8 + 18800U, // 2 - 9 + 25776U, // 2 - 10 + 27216U, // 2 - 11 + 59984U, // 2 - 12 + 27296U, // 2 - 13 + 43872U, // 2 - 14 + 43744U, // 2 - 15 + 37600U, // 2 - 16 + 51568U, // 2 - 17 + 51552U, // 2 - 18 + 54440U, // 2 - 19 + 54432U, // 2 - 20 + 55888U, // 2 - 21 + 23208U, // 2 - 22 + 22176U, // 2 - 23 + 42704U, // 2 - 24 + 21224U, // 2 - 25 + 21200U, // 2 - 26 + 43352U, // 2 - 27 + 43344U, // 2 - 28 + 46240U, // 2 - 29 + 46416U, // 2 - 30 + 44368U, // 2 - 31 + 21920U, // 2 - 32 + 42448U, // 2 - 33 + 42416U, // 2 - 34 + 21168U, // 2 - 35 + 43320U, // 2 - 36 + 26928U, // 2 - 37 + 29336U, // 2 - 38 + 27296U, // 2 - 39 + 44368U, // 2 - 40 + 19880U, // 2 - 41 + 19296U, // 2 - 42 + 42352U, // 2 - 43 + 21104U, // 2 - 44 + 53600U, // 2 - 45 + 59696U, // 2 - 46 + 54560U, // 2 - 47 + 55968U, // 2 - 48 + 27472U, // 2 - 49 + 22224U, // 2 - 50 + 19168U, // 2 - 51 + 42216U, // 2 - 52 + 41680U, // 2 - 53 + 53584U, // 2 - 54 + 55592U, // 2 - 55 +}; +const TUint32 TCalconData::iCalConDataYear[]={ + 1881492094U, // 0 - 55 + 2444286U, // 0 - 56 + 2444641U, // 0 - 57 + 1344622275U, // 0 - 58 + 2445379U, // 0 - 59 + 2955235749U, // 1 - 0 + 2446117U, // 1 - 1 + 2446471U, // 1 - 2 + 1881495017U, // 1 - 3 + 2447209U, // 1 - 4 + 2447564U, // 1 - 5 + 1613060655U, // 1 - 6 + 2448303U, // 1 - 7 + 2448657U, // 1 - 8 + 1076190835U, // 1 - 9 + 2449394U, // 1 - 10 + 2418368853U, // 1 - 11 + 2450133U, // 1 - 12 + 2450487U, // 1 - 13 + 1613063578U, // 1 - 14 + 2451226U, // 1 - 15 + 2451580U, // 1 - 16 + 1344629214U, // 1 - 17 + 2452318U, // 1 - 18 + 2452672U, // 1 - 19 + 807759395U, // 1 - 20 + 2453411U, // 1 - 21 + 2149937413U, // 1 - 22 + 2454150U, // 1 - 23 + 2454504U, // 1 - 24 + 1613067594U, // 1 - 25 + 2455242U, // 1 - 26 + 2455596U, // 1 - 27 + 1344633230U, // 1 - 28 + 2456334U, // 1 - 29 + 2686811249U, // 1 - 30 + 2457073U, // 1 - 31 + 2457427U, // 1 - 32 + 1881505974U, // 1 - 33 + 2458166U, // 1 - 34 + 2458520U, // 1 - 35 + 1344636154U, // 1 - 36 + 2459258U, // 1 - 37 + 2459612U, // 1 - 38 + 807766335U, // 1 - 39 + 2460351U, // 1 - 40 + 1881508897U, // 1 - 41 + 2461089U, // 1 - 42 + 2461443U, // 1 - 43 + 1613074533U, // 1 - 44 + 2462181U, // 1 - 45 + 2462536U, // 1 - 46 + 1076204714U, // 1 - 47 + 2463274U, // 1 - 48 + 3223689101U, // 1 - 49 + 2464013U, // 1 - 50 + 2464367U, // 1 - 51 + 1881512913U, // 1 - 52 + 2465105U, // 1 - 53 + 2465459U, // 1 - 54 + 1613078549U, // 1 - 55 + 2466197U, // 1 - 56 + 2466552U, // 1 - 57 + 807773275U, // 1 - 58 + 2467291U, // 1 - 59 + 2149951293U, // 2 - 0 + 2468029U, // 2 - 1 + 2468383U, // 2 - 2 + 1613081473U, // 2 - 3 + 2469121U, // 2 - 4 + 2469475U, // 2 - 5 + 1076211654U, // 2 - 6 + 2470214U, // 2 - 7 + 2418389673U, // 2 - 8 + 2470953U, // 2 - 9 + 2471307U, // 2 - 10 + 1881519853U, // 2 - 11 + 2472044U, // 2 - 12 + 2472399U, // 2 - 13 + 1344650033U, // 2 - 14 + 2473137U, // 2 - 15 + 2473492U, // 2 - 16 + 1076215670U, // 2 - 17 + 2474230U, // 2 - 18 + 2149958232U, // 2 - 19 + 2474968U, // 2 - 20 + 2475322U, // 2 - 21 + 1613088413U, // 2 - 22 + 2476061U, // 2 - 23 + 2476415U, // 2 - 24 + 1344654050U, // 2 - 25 + 2477154U, // 2 - 26 + 2418396612U, // 2 - 27 + 2477892U, // 2 - 28 + 2478246U, // 2 - 29 + 1881526792U, // 2 - 30 + 2478984U, // 2 - 31 + 2479339U, // 2 - 32 + 1344656973U, // 2 - 33 + 2480077U, // 2 - 34 + 2480432U, // 2 - 35 + 1076222610U, // 2 - 36 + 2481170U, // 2 - 37 + 2149965172U, // 2 - 38 + 2481908U, // 2 - 39 + 2482262U, // 2 - 40 + 1613095353U, // 2 - 41 + 2483001U, // 2 - 42 + 2483355U, // 2 - 43 + 1344660990U, // 2 - 44 + 2484093U, // 2 - 45 + 2418403551U, // 2 - 46 + 2484831U, // 2 - 47 + 2485185U, // 2 - 48 + 1881533732U, // 2 - 49 + 2485924U, // 2 - 50 + 2486279U, // 2 - 51 + 1344663913U, // 2 - 52 + 2487017U, // 2 - 53 + 2487371U, // 2 - 54 + 807794093U, // 2 - 55 + 2488109U, // 2 - 56 +0xffffffff +}; + +//Took 917 seconds to create diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/pluginsrc/table1980-2100/calcondata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/pluginsrc/table1980-2100/calcondata.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,23 @@ +// Copyright (c) 2000-2009 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: +// Generated by CalconTable.exe +// + +const TInt KFirstCycle=77;//1..n +const TInt KFirstJulianDate=2444240; +const TInt KLastJulianDate=2488434; +const TInt KFirstYear=56; //1..60 +const TInt KLastCycle=79;//1..n +const TInt KLastYear=57;//1..60 +const TInt KNumberOfYears=122; diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/test/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/test/group/bld.inf Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,42 @@ +// Copyright (c) 2008-2009 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: +// Calcon BLD.INF +// +// + +PRJ_TESTMMPFILES +../../tsrc/TCCn.mmp +../../OriginalTsrc/TCCnoriginal.mmp manual +cconoriginal.mmp manual +calcontable.mmp manual + +PRJ_TESTEXPORTS +calcontest.iby /epoc32/rom/include/calcontest.iby + +../../tsrc/input1.txt /epoc32/release/wins/udeb/z/calcontest/input1.txt +../../tsrc/output1REFERENCE.txt /epoc32/release/wins/udeb/z/calcontest/output1reference.txt +../../tsrc/Input2.txt /epoc32/release/wins/udeb/z/calcontest/input2.txt +../../tsrc/output2REFERENCE.txt /epoc32/release/wins/udeb/z/calcontest/output2reference.txt +../../tsrc/input1.txt /epoc32/release/winscw/udeb/z/calcontest/input1.txt +../../tsrc/output1REFERENCE.txt /epoc32/release/winscw/udeb/z/calcontest/output1reference.txt +../../tsrc/Input2.txt /epoc32/release/winscw/udeb/z/calcontest/input2.txt +../../tsrc/output2REFERENCE.txt /epoc32/release/winscw/udeb/z/calcontest/output2reference.txt +../../tsrc/input1.txt /epoc32/release/wins/urel/z/calcontest/input1.txt +../../tsrc/output1REFERENCE.txt /epoc32/release/wins/urel/z/calcontest/output1reference.txt +../../tsrc/Input2.txt /epoc32/release/wins/urel/z/calcontest/input2.txt +../../tsrc/output2REFERENCE.txt /epoc32/release/wins/urel/z/calcontest/output2reference.txt +../../tsrc/input1.txt /epoc32/release/winscw/urel/z/calcontest/input1.txt +../../tsrc/output1REFERENCE.txt /epoc32/release/winscw/urel/z/calcontest/output1reference.txt +../../tsrc/Input2.txt /epoc32/release/winscw/urel/z/calcontest/input2.txt +../../tsrc/output2REFERENCE.txt /epoc32/release/winscw/urel/z/calcontest/output2reference.txt diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/test/group/calcontable.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/test/group/calcontable.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,29 @@ +// Copyright (c) 2000-2009 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: +// + +TARGET calcontable.exe +TARGETTYPE exe +CAPABILITY All -TCB +UID 0 +VENDORID 0x70000001 +SOURCEPATH ../../calcontablesrc +SOURCE calcontable.cpp +USERINCLUDE ../../calcontablesrc +USERINCLUDE ../../originalinc +SYSTEMINCLUDE /epoc32/include +APP_LAYER_SYSTEMINCLUDE_SYMBIAN +LIBRARY euser.lib efsrv.lib cconoriginal.lib charconv.lib + +SMPSAFE diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/test/group/calcontest.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/test/group/calcontest.iby Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,30 @@ +// Copyright (c) 2000-2009 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 __CALCONTEST_IBY__ +#define __CALCONTEST_IBY__ + +REM Calender Converter Test + +file=ABI_DIR\BUILD_DIR\tCCn.exe System\Programs\CalconTest\tCCn.exe +#include + + + +data=EPOCROOT##epoc32\release\wins\udeb\z\calcontest\input1.txt calcontest\input1.txt +data=EPOCROOT##epoc32\release\wins\udeb\z\calcontest\input2.txt calcontest\input2.txt +data=EPOCROOT##epoc32\release\wins\udeb\z\calcontest\output1REFERENCE.txt calcontest\output1REFERENCE.txt +data=EPOCROOT##epoc32\release\wins\udeb\z\calcontest\output2REFERENCE.txt calcontest\output2REFERENCE.txt +#endif diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/test/group/cconoriginal.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/test/group/cconoriginal.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,36 @@ +// Copyright (c) 2000-2009 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: +// + +TARGET cconoriginal.dll +TARGETTYPE dll +CAPABILITY All -TCB +UID 0x1000008d 0x10005407 //need to change UID +VENDORID 0x70000001 +SOURCEPATH ../../originalsrc +SOURCE CConmain.cpp Calendar.cpp ArithmeticalCal.cpp Gregorian.cpp +SOURCE ArithmeticalDate.cpp AstronomicalCal.cpp Chinese.cpp ChineseDate.cpp +USERINCLUDE ../../OriginalInc +SYSTEMINCLUDE /epoc32/include +APP_LAYER_SYSTEMINCLUDE_SYMBIAN + +LIBRARY euser.lib + +#ifdef WINS +DEFFILE ../../BWINS/CCONORIGINAL.DEF +#else +DEFFILE ../../EABI/CConOriginal.DEF +#endif + +SMPSAFE \ No newline at end of file diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/ConvertDates.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/ConvertDates.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,910 @@ +// Copyright (c) 2002-2009 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 "ConvertDates.h" + +// Constants +const TInt KFirstConvertYear = 0; +const TInt KFromOffset = 0; +const TInt KToOffset = 5; +const TInt KCycleOffset = 10; +const TInt KYearOffset = 13; +const TInt KMnthOffset = 19; +const TInt KLeapMonthOffset = 22; +const TInt KDyOffset = 24; +const TInt KCycleLen = 2; +const TInt KSignLen = 1; +const TInt KYearLen = 5; +const TInt KMonthLen = 2; +const TInt KDayLen = 2; +// +_LIT(KRoot, "C:\\"); +_LIT(KSpace, " "); +_LIT(KResult, " Result "); +_LIT(KTestHeader, "Test Results"); +_LIT(KFileNotPresent, "test file %S not present - test failed\n"); +_LIT(KCalconDirectory, "c:\\calcontest\\"); +_LIT(KCalconLogFileDirectory, "c:\\calcon\\"); +_LIT(KCalconLogFile, "c:\\calcon\\calcon.txt"); +_LIT(KInputFile1, "z:\\calcontest\\input1.txt"); +_LIT(KOutputFile1, "c:\\calcontest\\output1.txt"); +_LIT(KInputFile2, "z:\\calcontest\\input2.txt"); +_LIT(KOutputFile2, "c:\\calcontest\\output2.txt"); +_LIT(KOutputFileRef1, "z:\\calcontest\\output1REFERENCE.txt"); +_LIT(KOutputFileRef2, "z:\\calcontest\\output2REFERENCE.txt"); +_LIT8(KImcvCRLF, "\r\n"); +_LIT8(KOutOfRange, " *** Out of range ***"); + + +// +// Construction/Destruction +// + +CConvertDates::CConvertDates() : iTest(_L("Calcon Test")) + { + } + +CConvertDates::~CConvertDates() + { + if (iCalendarConverter) + delete iCalendarConverter; + iInputFile.Close(); + iOutputFile.Close(); + iLogger.Close(); + iRFSession.Close(); + } + +CConvertDates* CConvertDates::NewL() + { + CConvertDates* self = CConvertDates::NewLC(); + CleanupStack::Pop(); + return self; + } + +CConvertDates* CConvertDates::NewLC() + { + CConvertDates* self = new(ELeave) CConvertDates; + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +void CConvertDates::ConstructL() + { + User::LeaveIfError(iRFSession.Connect()); + iRFSession.SetSessionPath(KRoot); + iRFSession.MkDirAll(KCalconLogFileDirectory); // ignore errors -- any FS errors will present themselves later + iRFSession.MkDirAll(KCalconDirectory); + + if (iLogger.LogValid()) + iLogger.CloseLog(); + TParse p; + p.Set(KCalconLogFile, NULL, NULL); + iLogger.Connect(); + iLogger.CreateLog(KCalconLogFileDirectory, p.NameAndExt(), EFileLoggingModeOverwrite); + iLogger.SetDateAndTime(EFalse, EFalse); + iLogger.Write(KTestHeader); + + iCalendarConverter=CChineseCalendarConverter::NewL(); + } + +void CConvertDates::ConvertL(TInt aInput) + { + iInputFileNumber=aInput; + + if (iInputFileNumber==1) + iTest.Printf(_L("Generating c:\\output1.txt\n")); + else + iTest.Printf(_L("Generating c:\\output2.txt\n")); + + TBuf8<100> logLine; + TBuf<64> errBuf; + // open the input and output files + OpenFilesL(); + + TInt fileErr = KErrNone; + while(fileErr == KErrNone) + { + // read date from the input file + fileErr = ReadLine(iInputFile, iDateLine); + if (fileErr==KErrNone) + { + // get the cal types to convert from and to + TRAPD(err,GetCalL(iDateLine)); + if (err) + { + errBuf.Format(_L("\r\nError get calendar conversion type %d\r\n"),err); + iLogger.Write(errBuf); + } + else + { + // do the conversion + TBool success=Cal1ToCal2(); + + // set the cal types to convert from and to + logLine.Zero(); + TRAP(err,SetCalL(logLine,success)); + if (err) + { + errBuf.Format(_L("\r\nError set calendar conversion type %d\r\n"),err); + iDateLine.Append(errBuf); + } + else + { + iDateLine.Append(logLine); + iDateLine.Append(_L8("\r\n")); + iLogger.Write(iDateLine); + if (iOutputFile.Write(iDateLine)) + { + User::Leave(KErrCorrupt); + } + } + } + } + } + } + +void CConvertDates::OpenFilesL() + { + TInt err=KErrNone; + if (iInputFileNumber==1) + { + err = iInputFile.Open(iRFSession, KInputFile1, EFileStreamText|EFileRead|EFileShareExclusive); + if (err) + { + if(KErrNotFound == err) + { + iTest.Printf(KFileNotPresent,&(KInputFile1)); + } + User::Leave(err); + } + err = iOutputFile.Replace(iRFSession, KOutputFile1, EFileStreamText|EFileWrite|EFileShareExclusive); + User::LeaveIfError(err); + } + else + { + err = iInputFile.Open(iRFSession, KInputFile2, EFileStreamText|EFileRead|EFileShareExclusive); + if (err) + { + if(KErrNotFound == err) + { + iTest.Printf(KFileNotPresent,&(KInputFile2)); + } + User::Leave(err); + } + err = iOutputFile.Replace(iRFSession, KOutputFile2, EFileStreamText|EFileWrite|EFileShareExclusive); + User::LeaveIfError(err); + } + } + +void CConvertDates::GetCalL(TDes8& aDateToConvert) + { + TInt dateError=KErrNone; + TLex8 lexCycle(aDateToConvert.Mid(KCycleOffset,KCycleLen)); + TLex8 lexYear(aDateToConvert.Mid(KYearOffset,KYearLen)); + TLex8 lexMonth(aDateToConvert.Mid(KMnthOffset,KMonthLen)); + TLex8 lexDay(aDateToConvert.Mid(KDyOffset,KDayLen)); + + // get cycle + if (lexCycle.Val(iChinDateOut.iCycle) != KErrNone) + { + User::Leave(KErrCorrupt); + } + // get year + if (lexYear.Val(iArithDateOut.iYear) != KErrNone) + { + User::Leave(KErrGeneral); + } + iChinDateOut.iYear = iArithDateOut.iYear; + // get month + if (lexMonth.Val(iArithDateOut.iMonth) != KErrNone) + { + User::Leave(KErrGeneral); + } + iChinDateOut.iMonth = iArithDateOut.iMonth; + // get leap month + if (aDateToConvert[KLeapMonthOffset] == 't') + { + iChinDateOut.iLeapMonth = ETrue; + } + else + { + iChinDateOut.iLeapMonth = EFalse; + } + // get day + if (lexDay.Val(iArithDateOut.iDay) != KErrNone) + { + User::Leave(KErrCorrupt); + } + iChinDateOut.iDay = iArithDateOut.iDay; + + + switch(aDateToConvert[KFromOffset]) + { + case 'g': //iArithDateOut contains the date to convert from + iCalTypeFrom = EGreg; + break; + case 'c': + iCalTypeFrom = EChin; + break; + default: + dateError = KErrCorrupt; + break; + } + + if (dateError) + User::Leave(dateError); + + switch(aDateToConvert[KToOffset]) + { + case 'g': + iCalTypeTo = EGreg; + break; + case 'c': + iCalTypeTo = EChin; + break; + default: + break; + } + } + +TBool CConvertDates::Cal1ToCal2() + { + switch(iCalTypeFrom) + { + case EGreg: + { + switch(iCalTypeTo) + { + case EChin: + { //iArithDateOut contains the date to convert from + TDateTime dt(iArithDateOut.iYear, (TMonth)(iArithDateOut.iMonth-1), iArithDateOut.iDay-1, 0,0,0,0); + CChineseCalendarConverter* c=iCalendarConverter; + TRAPD(err,c->DateTimeToChineseL(dt, iChinDateOut)); + if (err) + return EFalse; + break; + } + default: + break; + } + } + break; + case EChin: + { + switch(iCalTypeTo) + { //iArithDateOut contains the date to convert from + case EGreg: + { + CChineseCalendarConverter* c=iCalendarConverter; + TDateTime dt(0,EJanuary,0,0,0,0,0); + TRAPD(err,c->ChineseToDateTimeL(iChinDateOut, dt)); + if (err) + return EFalse; + iArithDateOut.iYear=dt.Year(); + iArithDateOut.iMonth=(TInt)(dt.Month())+1; + iArithDateOut.iDay=dt.Day()+1; + break; + } + default: + break; + } + } + break; + default: + break; + } + return ETrue; + } + + +void CConvertDates::SetCalL(TDes8& aConvertedDate, TBool aSuccess) + { + TArithmeticalDate Date; + TChineseDate ChinDate; + TBuf8 TempDate; + + switch(iCalTypeFrom) + { + case EGreg: + { + switch(iCalTypeTo) + { + case EChin: + ChinDate=iChinDateOut; + break; + default: + break; + } + } + break; + case EChin: + { + switch(iCalTypeTo) + { + case EGreg: + Date=iArithDateOut; + TempDate.Copy(_L("greg ")); + default: + break; + } + } + break; + default: + break; + } + + if (!aSuccess) + { + aConvertedDate.Append(KOutOfRange); + return; + } + + if (iCalTypeTo == EChin) + { + TBuf8<10> TempFormatStr; + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KCycleLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iCycle); + aConvertedDate.Append(KResult); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempDate.FillZ(); + TempDate.Format(_L8("+")); + aConvertedDate.Append(TempDate); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KYearLen - KSignLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iYear); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KMonthLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iMonth); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempDate.FillZ(); + if (ChinDate.iLeapMonth == EFalse) + { + TempDate.Format(_L8("f")); + } + else + { + TempDate.Format(_L8("t")); + } + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KDayLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iDay); + aConvertedDate.Append(TempDate); + } + else + { + TBuf8<10> TempFormatStr; + + if (Date.iYear >= KFirstConvertYear) + { + TempDate.Format(_L8("+")); + } + else + { + TempDate.Format(_L8("-")); + } + aConvertedDate.Append(KResult); + aConvertedDate.Append(TempDate); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KYearLen - KSignLen); + TempDate.FillZ(); + if (Date.iYear >= KFirstConvertYear) + { + TempDate.Format(TempFormatStr,Date.iYear); + } + else + { + TempDate.Format(TempFormatStr,-Date.iYear); + } + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KMonthLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,Date.iMonth); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L8("%%0%dd"),KDayLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,Date.iDay); + aConvertedDate.Append(TempDate); + } + } + +void CConvertDates::SetCal16L(TDes& aConvertedDate, TBool /*aSuccess*/) + { + TArithmeticalDate Date; + TChineseDate ChinDate; + TBuf TempDate; + + switch(iCalTypeFrom) + { + case EGreg: + { + switch(iCalTypeTo) + { + case EChin: + ChinDate=iChinDateOut; + break; + default: + break; + } + } + break; + case EChin: + { + switch(iCalTypeTo) + { + case EGreg: + Date=iArithDateOut; + TempDate.Copy(_L("greg ")); + default: + break; + } + } + break; + default: + break; + } + + if (iCalTypeTo == EChin) + { + TBuf<10> TempFormatStr; + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KCycleLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iCycle); + aConvertedDate.Append(_L(" Chinese ")); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempDate.FillZ(); + TempDate.Format(_L("+")); + aConvertedDate.Append(TempDate); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KYearLen - KSignLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iYear); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KMonthLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iMonth); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempDate.FillZ(); + if (ChinDate.iLeapMonth == EFalse) + { + TempDate.Format(_L("f")); + } + else + { + TempDate.Format(_L("t")); + } + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KDayLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,ChinDate.iDay); + aConvertedDate.Append(TempDate); + } + else + { + TBuf<10> TempFormatStr; + + if (Date.iYear >= KFirstConvertYear) + { + TempDate.Format(_L("+")); + } + else + { + TempDate.Format(_L("-")); + } + aConvertedDate.Append(_L("Greg ")); + aConvertedDate.Append(TempDate); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KYearLen - KSignLen); + TempDate.FillZ(); + if (Date.iYear >= KFirstConvertYear) + { + TempDate.Format(TempFormatStr,Date.iYear); + } + else + { + TempDate.Format(TempFormatStr,-Date.iYear); + } + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KMonthLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,Date.iMonth); + aConvertedDate.Append(TempDate); + aConvertedDate.Append(KSpace); + + TempFormatStr.FillZ(); + TempFormatStr.Format(_L("%%0%dd"),KDayLen); + TempDate.FillZ(); + TempDate.Format(TempFormatStr,Date.iDay); + aConvertedDate.Append(TempDate); + } + } + +// +// Read line of test from file +// +TInt CConvertDates::ReadLine(RFile& aInputFile, TBuf8& aDateLine) + { + TInt err = KErrNone; + + // Read into the buffer + TBuf8<256> buffer; // Max read of the Read() function.. + aDateLine.Zero(); + + // Get the current file position + TInt filePos = 0; + aInputFile.Seek(ESeekCurrent, filePos); + + // Read the buffer + err = aInputFile.Read(buffer); + + //end of file? + TInt s = buffer.Length(); + if ( s == 0) + err = KErrEof; + + if (err == KErrNone) + { + // Copy to the lfcr and then set the file pointer + // to the point after that... + TInt pos = buffer.Find(KImcvCRLF); + if ( pos != -1) + { + aDateLine.Justify(buffer, pos, ELeft, ' '); + filePos += (pos+2); + + // Set the file pointer back to after the lfcr.. + aInputFile.Seek(ESeekStart, filePos); + } + // Else fill the whole buffer 256 chars.. + else + { + aDateLine.Copy(buffer); + } + } + return err; + } + +TBool CConvertDates::IntegrityTestL() + { + iTest.Printf(_L("Integrity test:\n")); + iTest.Printf(_L("Stepping through every possible Chinese date in the range of the calendar\n")); + iTest.Printf(_L("checking that either the Chinese date is invalid, or that the\n")); + iTest.Printf(_L("returned Julian Day is one greater than the previous Julian Day.")); + + TDateTime dateTime; + CChineseCalendarConverter* chineseCalendar=CChineseCalendarConverter::NewL(); + + TChineseDate start; + TChineseDate finish; + chineseCalendar->DateRange(start, finish); + TDateTime startDT; + TDateTime finishDT; + chineseCalendar->DateRange(startDT, finishDT); + + TBuf outputBuf; + iCalTypeFrom=EChin; + iCalTypeTo=EGreg; + iArithDateOut.iDay=startDT.Day()+1; + iArithDateOut.iMonth=(TInt)startDT.Month()+1; + iArithDateOut.iYear=startDT.Year(); + SetCal16L(outputBuf); + iChinDateOut=start; + iCalTypeFrom=EGreg; + iCalTypeTo=EChin; + SetCal16L(outputBuf); + iTest.Printf(_L("\n\nCalendar start date\n")); + iTest.Printf(outputBuf); + + chineseCalendar->DateTimeToChineseL(startDT,start); + TReal startJulian=chineseCalendar->JulianDate(); + chineseCalendar->DateTimeToChineseL(finishDT,finish); + TReal finishJulian=chineseCalendar->JulianDate(); + iTest.Printf(_L("\nJulian: %f"),startJulian); + + chineseCalendar->DateRange(start, finish); + //can check here that start & finish do not change + + outputBuf.SetLength(0); + iCalTypeFrom=EChin; + iCalTypeTo=EGreg; + iArithDateOut.iDay=finishDT.Day()+1; + iArithDateOut.iMonth=(TInt)finishDT.Month()+1; + iArithDateOut.iYear=finishDT.Year(); + SetCal16L(outputBuf); + iChinDateOut=finish; + iCalTypeFrom=EGreg; + iCalTypeTo=EChin; + SetCal16L(outputBuf); + iTest.Printf(_L("\n\nCalendar end date\n")); + iTest.Printf(outputBuf); + iTest.Printf(_L("\nJulian: %f\n\n"),finishJulian); + + start.iCycle--; //check that errors are return for date earlier than the lower bound + finish.iCycle+=2;//check that errors are return for date later than the upper bound + + TInt err=KErrNone; + + do + { + NextDate(start); + TRAP(err,chineseCalendar->ChineseToDateTimeL(start, dateTime)); + } + while (err==KErrArgument); + + TReal currentJulian=chineseCalendar->JulianDate(); + + iState=EChangeDay; + + TDateTime lowerBound; + TDateTime upperBound; + chineseCalendar->DateRange(lowerBound, upperBound); + TChineseDate lowerBoundChin; + TChineseDate upperBoundChin; + chineseCalendar->DateRange(lowerBoundChin, upperBoundChin); + TRAP(err,chineseCalendar->ChineseToDateTimeL(upperBoundChin, dateTime)); + + while (start.iCycleChineseToDateTimeL(start, dateTime)); + + if (err==KErrNone) + { + TReal julian=chineseCalendar->JulianDate(); + + if (julian!=++currentJulian) + { + iTest.Printf(_L("%f %f"),julian,currentJulian); + + delete chineseCalendar; + return EFalse; + } + } + + // chineseCalendar.GetDate(checkDate); + // if (!(checkDate==start)) + // User::Invariant(); + } + delete chineseCalendar; + return ETrue; + } + +void CConvertDates::NextDate(TChineseDate& aDate) + { +top: + TBool cont=EFalse; + + switch (iState) + { + case EChangeDay: + if (aDate.iDay==30) + { + iState=EChangeMonth; + aDate.iDay=1; + cont=ETrue; + } + else + { + aDate.iDay++; + } + break; + case EChangeMonth: + if (aDate.iLeapMonth) + { + aDate.iLeapMonth=EFalse; + if (aDate.iMonth==12) + { + iState=EChangeYear; + aDate.iMonth=1; + cont=ETrue; + } + else + { + aDate.iMonth++; + iState=EChangeDay; + } + } + else + { + aDate.iLeapMonth=ETrue; + iState=EChangeDay; + } + break; + case EChangeYear: + if (aDate.iYear==60) + { + iState=EChangeCycle; + aDate.iYear=1; + cont=ETrue; + } + else + { + aDate.iYear++; + iState=EChangeDay; + } + break; + case EChangeCycle: + aDate.iCycle++; + iState=EChangeDay; + break; + default: + User::Invariant(); + } + if (cont) goto top; + } + + + +// +// Construction/Destruction +// + +//------------------------------------------------------ +// Class: TArithmeticalDate +// Function: TArithmeticalDate +// Arguments: None +// +// Comments: Constructor +// +// Return: None +//------------------------------------------------------ +TArithmeticalDate::TArithmeticalDate() + { + } + +//------------------------------------------------------ +// Class: TArithmeticalDate +// Function: operator == +// Arguments: const TArithmeticalDate & +// +// Comments: overloaded == operator +// +// Return: TBool - ETrue if both the TArithmeticalDate +// classes are the same +//------------------------------------------------------ +TBool TArithmeticalDate::operator ==(const TArithmeticalDate &aDate) const + { + TBool rtn = ETrue; + if(iYear != aDate.iYear) + { + rtn = EFalse; + } + if(iMonth != aDate.iMonth) + { + rtn = EFalse; + } + if(iDay != aDate.iDay) + { + rtn = EFalse; + } + return rtn; + } + +TBool CConvertDates::CompareL() + { + iInputFile.Close(); + iOutputFile.Close(); + + TBool ret=ETrue; + TInt err=KErrNone; + + if (iInputFileNumber==1) + { + err = iOutputFile.Open(iRFSession, KOutputFile1, EFileStreamText|EFileRead|EFileShareExclusive); + if (err) + { + if(KErrNotFound == err) + { + iTest.Printf(KFileNotPresent,&(KOutputFile1)); + } + User::Leave(err); + } + err = iOutputFileRef.Open(iRFSession, KOutputFileRef1, EFileStreamText|EFileRead|EFileShareExclusive); + if (err) + { + if(KErrNotFound == err) + { + iTest.Printf(KFileNotPresent,&(KOutputFileRef1)); + } + User::Leave(err); + } + } + else + { + err = iOutputFile.Open(iRFSession, KOutputFile2, EFileStreamText|EFileRead|EFileShareExclusive); + if (err) + { + if(KErrNotFound == err) + { + iTest.Printf(KFileNotPresent,&(KOutputFile2)); + } + User::Leave(err); + } + err = iOutputFileRef.Open(iRFSession, KOutputFileRef2, EFileStreamText|EFileRead|EFileShareExclusive); + if (err) + { + if(KErrNotFound == err) + { + iTest.Printf(KFileNotPresent,&(KOutputFileRef2)); + } + User::Leave(err); + } + } + + TBuf8 outputBuf; + TBuf8 outputBufRef; + + while (err==KErrNone) + { + err=ReadLine(iOutputFile,outputBuf); + if (err==KErrNone) + { + ReadLine(iOutputFileRef,outputBufRef); + TInt m=outputBuf.FindF(KOutOfRange); + if (m==KErrNotFound) + { + if (outputBuf.CompareF(outputBufRef)!=0) + { + ret=EFalse; + break; + } + } + } + } + iOutputFile.Close(); + iOutputFileRef.Close(); + return ret; + } diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/ConvertDates.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/ConvertDates.h Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,103 @@ +// Copyright (c) 2000-2009 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 __CONVERTDATES_H__ +#define __CONVERTDATES_H__ + +// System includes +#include +#include +#include +#include +#include +#include + +class TArithmeticalDate + { +public: + TArithmeticalDate(); + TBool operator==(const TArithmeticalDate& aDate) const; + +public: + TInt iDay; + TInt iMonth; + TInt iYear; + }; + +// Constants +const TInt KDateLen = 60; + +// Enumerations +enum TCalTypes + { + EGreg, + EHebr, + EChin + }; + +// Classes +class CConvertDates : public CBase + { +public: + CConvertDates(); + static CConvertDates* NewLC(); + static CConvertDates* NewL(); + ~CConvertDates(); + TBool IntegrityTestL(); + TBool CompareL(); +private: + void ConstructL(); + void NextDate(TChineseDate& aDate); + +public: + void ConvertL(TInt aInputFile); + +public: + RTest iTest; + +private: + TBool Cal1ToCal2(); + void GetCalL(TDes8& aDateToConvert); + void SetCalL(TDes8& aDate, TBool aSuccess=ETrue); + void SetCal16L(TDes& aDate, TBool aSuccess=ETrue); + void OpenFilesL(); + TInt ReadLine(RFile& aInputFile, TBuf8& aDateLine); + enum TNextDateState {EChangeDay, EChangeMonth, EChangeYear, EChangeCycle}; + TNextDateState iState; + + +private: + TInt iInputFileNumber; + CChineseCalendarConverter* iCalendarConverter; + TCalTypes iCalTypeFrom; + TCalTypes iCalTypeTo; + TArithmeticalDate iArithDateOut; + TArithmeticalDate iArithDateIn; + TChineseDate iChinDateOut; + TChineseDate iChinDateIn; +// TGregorianCalendar iGreg; +// TChineseCalendar iChin; + + RFs iRFSession; + RFile iInputFile; + RFile iOutputFile; + RFile iOutputFileRef; + + RFileLogger iLogger; + + TBuf8 iDateLine; + }; + +#endif diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/Input2.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/Input2.txt Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,76 @@ +greg chin 00 +1898 01 f 01 +greg chin 00 +1899 12 f 31 +greg chin 00 +1900 01 f 10 +greg chin 00 +1910 02 f 15 +greg chin 00 +1920 03 f 20 +greg chin 00 +1924 02 f 29 +greg chin 00 +1970 01 f 01 +greg chin 00 +1971 02 f 02 +greg chin 00 +1972 03 f 03 +greg chin 00 +1973 04 f 04 +greg chin 00 +1974 05 f 05 +greg chin 00 +1975 06 f 06 +greg chin 00 +1976 07 f 07 +greg chin 00 +1977 08 f 08 +greg chin 00 +1978 09 f 09 +greg chin 00 +1979 10 f 10 +greg chin 00 +1980 11 f 11 +greg chin 00 +1981 12 f 12 +greg chin 00 +1982 01 f 13 +greg chin 00 +1982 02 f 28 +greg chin 00 +1982 03 f 01 +greg chin 00 +1999 12 f 31 +greg chin 00 +2000 01 f 01 +greg chin 00 +2000 02 f 29 +greg chin 00 +1998 01 f 28 +greg chin 00 +1998 02 f 28 +greg chin 00 +1998 03 f 30 +greg chin 00 +1998 04 f 29 +greg chin 00 +1998 05 f 30 +greg chin 00 +1998 06 f 28 +greg chin 00 +1998 07 f 28 +greg chin 00 +1998 08 f 28 +greg chin 00 +1998 09 f 28 +greg chin 00 +1998 10 f 28 +greg chin 00 +1998 11 f 28 +greg chin 00 +1998 12 f 29 +greg chin 00 +1999 01 f 28 +greg chin 00 +2043 02 f 10 +greg chin 00 +2044 01 f 29 +chin greg 76 +0034 12 f 09 +chin greg 76 +0036 11 f 29 +chin greg 76 +0036 12 f 10 +chin greg 76 +0047 01 f 06 +chin greg 76 +0057 02 f 01 +chin greg 77 +0001 01 f 25 +chin greg 77 +0046 11 f 24 +chin greg 77 +0048 01 f 07 +chin greg 77 +0049 01 f 18 +chin greg 77 +0050 03 f 02 +chin greg 77 +0051 04 f 14 +chin greg 77 +0052 04 f 27 +chin greg 77 +0053 06 f 11 +chin greg 77 +0054 06 f 24 +chin greg 77 +0055 08 f 07 +chin greg 77 +0056 08 f 20 +chin greg 77 +0057 10 f 04 +chin greg 77 +0058 11 f 17 +chin greg 77 +0058 12 f 19 +chin greg 77 +0059 02 f 05 +chin greg 77 +0059 02 f 06 +chin greg 78 +0016 11 f 24 +chin greg 78 +0016 11 f 25 +chin greg 78 +0017 01 f 25 +chin greg 78 +0015 01 f 01 +chin greg 78 +0015 02 f 02 +chin greg 78 +0015 03 f 03 +chin greg 78 +0015 04 f 04 +chin greg 78 +0015 05 f 05 +chin greg 78 +0015 05 t 05 +chin greg 78 +0015 06 f 06 +chin greg 78 +0015 08 f 08 +chin greg 78 +0015 09 f 09 +chin greg 78 +0015 10 f 10 +chin greg 78 +0015 11 f 11 +chin greg 78 +0060 01 f 01 +chin greg 78 +0060 12 f 30 diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/Input_2.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/Input_2.txt Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,76 @@ +greg chin 00 +1898 01 f 01 +greg chin 00 +1899 12 f 31 +greg chin 00 +1900 01 f 10 +greg chin 00 +1910 02 f 15 +greg chin 00 +1920 03 f 20 +greg chin 00 +1924 02 f 29 +greg chin 00 +1970 01 f 01 +greg chin 00 +1971 02 f 02 +greg chin 00 +1972 03 f 03 +greg chin 00 +1973 04 f 04 +greg chin 00 +1974 05 f 05 +greg chin 00 +1975 06 f 06 +greg chin 00 +1976 07 f 07 +greg chin 00 +1977 08 f 08 +greg chin 00 +1978 09 f 09 +greg chin 00 +1979 10 f 10 +greg chin 00 +1980 11 f 11 +greg chin 00 +1981 12 f 12 +greg chin 00 +1982 01 f 13 +greg chin 00 +1982 02 f 28 +greg chin 00 +1982 03 f 01 +greg chin 00 +1999 12 f 31 +greg chin 00 +2000 01 f 01 +greg chin 00 +2000 02 f 29 +greg chin 00 +1998 01 f 28 +greg chin 00 +1998 02 f 28 +greg chin 00 +1998 03 f 30 +greg chin 00 +1998 04 f 29 +greg chin 00 +1998 05 f 30 +greg chin 00 +1998 06 f 28 +greg chin 00 +1998 07 f 28 +greg chin 00 +1998 08 f 28 +greg chin 00 +1998 09 f 28 +greg chin 00 +1998 10 f 28 +greg chin 00 +1998 11 f 28 +greg chin 00 +1998 12 f 29 +greg chin 00 +1999 01 f 28 +greg chin 00 +2043 02 f 10 +greg chin 00 +2044 01 f 29 +chin greg 76 +0034 12 f 09 +chin greg 76 +0036 11 f 29 +chin greg 76 +0036 12 f 10 +chin greg 76 +0047 01 f 06 +chin greg 76 +0057 02 f 01 +chin greg 77 +0001 01 f 25 +chin greg 77 +0046 11 f 24 +chin greg 77 +0048 01 f 07 +chin greg 77 +0049 01 f 18 +chin greg 77 +0050 03 f 02 +chin greg 77 +0051 04 f 14 +chin greg 77 +0052 04 f 27 +chin greg 77 +0053 06 f 11 +chin greg 77 +0054 06 f 24 +chin greg 77 +0055 08 f 07 +chin greg 77 +0056 08 f 20 +chin greg 77 +0057 10 f 04 +chin greg 77 +0058 11 f 17 +chin greg 77 +0058 12 f 19 +chin greg 77 +0059 02 f 05 +chin greg 77 +0059 02 f 06 +chin greg 78 +0016 11 f 24 +chin greg 78 +0016 11 f 25 +chin greg 78 +0017 01 f 25 +chin greg 78 +0015 01 f 01 +chin greg 78 +0015 02 f 02 +chin greg 78 +0015 03 f 03 +chin greg 78 +0015 04 f 04 +chin greg 78 +0015 05 f 05 +chin greg 78 +0015 05 t 05 +chin greg 78 +0015 06 f 06 +chin greg 78 +0015 08 f 08 +chin greg 78 +0015 09 f 09 +chin greg 78 +0015 10 f 10 +chin greg 78 +0015 11 f 11 +chin greg 78 +0060 01 f 01 +chin greg 78 +0060 12 f 30 diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/TCCn.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/TCCn.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,26 @@ +// Copyright (c) 2000-2009 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: +// + +TARGET tccn.exe +TARGETTYPE exe +CAPABILITY None +UID 0 +VENDORID 0x70000001 +APP_LAYER_SYSTEMINCLUDE_SYMBIAN +SOURCEPATH ../tsrc +SOURCE TCCnMain.cpp ConvertDates.cpp +LIBRARY euser.lib ccon.lib efsrv.lib flogger.lib ecom.lib + +SMPSAFE diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/TCCnMain.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/TCCnMain.cpp Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,62 @@ +// Copyright (c) 2002-2009 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 +#include +#include "ConvertDates.h" + +_LIT(KTestName,"Basic Calcon tests."); +LOCAL_D RTest test(KTestName); + +void mainL(); + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanupStack=CTrapCleanup::New(); + + TRAPD(error,mainL()); + test(KErrNone == error); + REComSession::FinalClose(); + + delete cleanupStack; + __UHEAP_MARKEND; + return KErrNone; + } + +/** +@SYMTestCaseID PIM-TCCNMAIN-0001 + */ + +void mainL() + { + CConvertDates* convDates = CConvertDates::NewL(); + CleanupStack::PushL(convDates); + + convDates->iTest(convDates->IntegrityTestL()); + + TInt err=KErrNone; + TRAP(err,convDates->ConvertL(1)); + convDates->iTest(err == KErrNone); + TRAP(err,convDates->ConvertL(2)); + convDates->iTest(err == KErrNone); + + convDates->iTest(convDates->CompareL()); + convDates->iTest.Start(_L("@SYMTestCaseID PIM-TCCNMAIN-0001")); + convDates->iTest.End(); + convDates->iTest.Close(); + + CleanupStack::PopAndDestroy(convDates); + } diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/input.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/input.txt Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,66 @@ +greg chin 00 -0586 07 f 24 +greg chin 00 -0168 12 f 05 +greg chin 00 +0070 09 f 24 +greg chin 00 +0135 10 f 02 +greg chin 00 +0470 01 f 08 +greg chin 00 +0576 05 f 20 +greg chin 00 +0694 11 f 10 +greg chin 00 +1013 04 f 25 +greg chin 00 +1096 05 f 24 +greg chin 00 +1190 03 f 23 +greg chin 00 +1240 03 f 10 +greg chin 00 +1288 04 f 02 +greg chin 00 +1298 04 f 27 +greg chin 00 +1391 06 f 12 +greg chin 00 +1436 02 f 03 +greg chin 00 +1492 04 f 09 +greg chin 00 +1553 09 f 19 +greg chin 00 +1560 03 f 05 +greg chin 00 +1648 06 f 10 +greg chin 00 +1680 06 f 30 +greg chin 00 +1716 07 f 24 +greg chin 00 +1768 06 f 19 +greg chin 00 +1819 08 f 02 +greg chin 00 +1839 03 f 27 +greg chin 00 +1903 04 f 19 +greg chin 00 +1929 08 f 25 +greg chin 00 +1941 09 f 29 +greg chin 00 +1943 04 f 19 +greg chin 00 +1943 10 f 07 +greg chin 00 +1992 03 f 17 +greg chin 00 +1996 02 f 25 +greg chin 00 +2038 11 f 10 +greg chin 00 +2094 07 f 18 +chin greg 35 +0011 06 f 12 +chin greg 42 +0009 10 f 27 +chin greg 46 +0007 08 f 04 +chin greg 47 +0012 08 f 09 +chin greg 52 +0046 11 f 20 +chin greg 54 +0033 04 f 05 +chin greg 56 +0031 10 f 15 +chin greg 61 +0050 03 f 07 +chin greg 63 +0013 04 f 24 +chin greg 64 +0047 02 f 09 +chin greg 65 +0037 02 f 09 +chin greg 66 +0025 02 f 23 +chin greg 66 +0035 03 f 09 +chin greg 68 +0008 05 f 02 +chin greg 68 +0053 01 f 08 +chin greg 69 +0049 03 f 04 +chin greg 70 +0050 08 f 02 +chin greg 70 +0057 01 f 29 +chin greg 72 +0025 04 t 20 +chin greg 72 +0057 06 f 05 +chin greg 73 +0033 06 f 06 +chin greg 74 +0025 05 f 05 +chin greg 75 +0016 06 f 12 +chin greg 75 +0036 02 f 13 +chin greg 76 +0040 03 f 22 +chin greg 77 +0006 07 f 21 +chin greg 77 +0018 08 f 09 +chin greg 77 +0020 03 f 15 +chin greg 77 +0020 09 f 09 +chin greg 78 +0009 02 f 14 +chin greg 78 +0013 01 f 07 +chin greg 78 +0055 10 f 14 +chin greg 79 +0051 06 f 07 diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/input1.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/input1.txt Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,66 @@ +greg chin 00 -0586 07 f 24 +greg chin 00 -0168 12 f 05 +greg chin 00 +0070 09 f 24 +greg chin 00 +0135 10 f 02 +greg chin 00 +0470 01 f 08 +greg chin 00 +0576 05 f 20 +greg chin 00 +0694 11 f 10 +greg chin 00 +1013 04 f 25 +greg chin 00 +1096 05 f 24 +greg chin 00 +1190 03 f 23 +greg chin 00 +1240 03 f 10 +greg chin 00 +1288 04 f 02 +greg chin 00 +1298 04 f 27 +greg chin 00 +1391 06 f 12 +greg chin 00 +1436 02 f 03 +greg chin 00 +1492 04 f 09 +greg chin 00 +1553 09 f 19 +greg chin 00 +1560 03 f 05 +greg chin 00 +1648 06 f 10 +greg chin 00 +1680 06 f 30 +greg chin 00 +1716 07 f 24 +greg chin 00 +1768 06 f 19 +greg chin 00 +1819 08 f 02 +greg chin 00 +1839 03 f 27 +greg chin 00 +1903 04 f 19 +greg chin 00 +1929 08 f 25 +greg chin 00 +1941 09 f 29 +greg chin 00 +1943 04 f 19 +greg chin 00 +1943 10 f 07 +greg chin 00 +1992 03 f 17 +greg chin 00 +1996 02 f 25 +greg chin 00 +2038 11 f 10 +greg chin 00 +2094 07 f 18 +chin greg 35 +0011 06 f 12 +chin greg 42 +0009 10 f 27 +chin greg 46 +0007 08 f 04 +chin greg 47 +0012 08 f 09 +chin greg 52 +0046 11 f 20 +chin greg 54 +0033 04 f 05 +chin greg 56 +0031 10 f 15 +chin greg 61 +0050 03 f 07 +chin greg 63 +0013 04 f 24 +chin greg 64 +0047 02 f 09 +chin greg 65 +0037 02 f 09 +chin greg 66 +0025 02 f 23 +chin greg 66 +0035 03 f 09 +chin greg 68 +0008 05 f 02 +chin greg 68 +0053 01 f 08 +chin greg 69 +0049 03 f 04 +chin greg 70 +0050 08 f 02 +chin greg 70 +0057 01 f 29 +chin greg 72 +0025 04 t 20 +chin greg 72 +0057 06 f 05 +chin greg 73 +0033 06 f 06 +chin greg 74 +0025 05 f 05 +chin greg 75 +0016 06 f 12 +chin greg 75 +0036 02 f 13 +chin greg 76 +0040 03 f 22 +chin greg 77 +0006 07 f 21 +chin greg 77 +0018 08 f 09 +chin greg 77 +0020 03 f 15 +chin greg 77 +0020 09 f 09 +chin greg 78 +0009 02 f 14 +chin greg 78 +0013 01 f 07 +chin greg 78 +0055 10 f 14 +chin greg 79 +0051 06 f 07 diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/output1REFERENCE.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/output1REFERENCE.txt Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,66 @@ +greg chin 00 -0586 07 f 24 Result 35 +0011 06 f 12 +greg chin 00 -0168 12 f 05 Result 42 +0009 10 f 27 +greg chin 00 +0070 09 f 24 Result 46 +0007 08 f 04 +greg chin 00 +0135 10 f 02 Result 47 +0012 08 f 09 +greg chin 00 +0470 01 f 08 Result 52 +0046 11 f 20 +greg chin 00 +0576 05 f 20 Result 54 +0033 04 f 05 +greg chin 00 +0694 11 f 10 Result 56 +0031 10 f 15 +greg chin 00 +1013 04 f 25 Result 61 +0050 03 f 07 +greg chin 00 +1096 05 f 24 Result 63 +0013 04 f 24 +greg chin 00 +1190 03 f 23 Result 64 +0047 02 f 09 +greg chin 00 +1240 03 f 10 Result 65 +0037 02 f 09 +greg chin 00 +1288 04 f 02 Result 66 +0025 02 f 23 +greg chin 00 +1298 04 f 27 Result 66 +0035 03 f 09 +greg chin 00 +1391 06 f 12 Result 68 +0008 05 f 02 +greg chin 00 +1436 02 f 03 Result 68 +0053 01 f 08 +greg chin 00 +1492 04 f 09 Result 69 +0049 03 f 04 +greg chin 00 +1553 09 f 19 Result 70 +0050 08 f 02 +greg chin 00 +1560 03 f 05 Result 70 +0057 01 f 29 +greg chin 00 +1648 06 f 10 Result 72 +0025 04 t 20 +greg chin 00 +1680 06 f 30 Result 72 +0057 06 f 05 +greg chin 00 +1716 07 f 24 Result 73 +0033 06 f 06 +greg chin 00 +1768 06 f 19 Result 74 +0025 05 f 05 +greg chin 00 +1819 08 f 02 Result 75 +0016 06 f 12 +greg chin 00 +1839 03 f 27 Result 75 +0036 02 f 13 +greg chin 00 +1903 04 f 19 Result 76 +0040 03 f 22 +greg chin 00 +1929 08 f 25 Result 77 +0006 07 f 21 +greg chin 00 +1941 09 f 29 Result 77 +0018 08 f 09 +greg chin 00 +1943 04 f 19 Result 77 +0020 03 f 15 +greg chin 00 +1943 10 f 07 Result 77 +0020 09 f 09 +greg chin 00 +1992 03 f 17 Result 78 +0009 02 f 14 +greg chin 00 +1996 02 f 25 Result 78 +0013 01 f 07 +greg chin 00 +2038 11 f 10 Result 78 +0055 10 f 14 +greg chin 00 +2094 07 f 18 Result 79 +0051 06 f 07 +chin greg 35 +0011 06 f 12 Result -0586 07 24 +chin greg 42 +0009 10 f 27 Result -0168 12 05 +chin greg 46 +0007 08 f 04 Result +0070 09 24 +chin greg 47 +0012 08 f 09 Result +0135 10 02 +chin greg 52 +0046 11 f 20 Result +0470 01 08 +chin greg 54 +0033 04 f 05 Result +0576 05 20 +chin greg 56 +0031 10 f 15 Result +0694 11 10 +chin greg 61 +0050 03 f 07 Result +1013 04 25 +chin greg 63 +0013 04 f 24 Result +1096 05 24 +chin greg 64 +0047 02 f 09 Result +1190 03 23 +chin greg 65 +0037 02 f 09 Result +1240 03 10 +chin greg 66 +0025 02 f 23 Result +1288 04 02 +chin greg 66 +0035 03 f 09 Result +1298 04 27 +chin greg 68 +0008 05 f 02 Result +1391 06 12 +chin greg 68 +0053 01 f 08 Result +1436 02 03 +chin greg 69 +0049 03 f 04 Result +1492 04 09 +chin greg 70 +0050 08 f 02 Result +1553 09 19 +chin greg 70 +0057 01 f 29 Result +1560 03 05 +chin greg 72 +0025 04 t 20 Result +1648 06 10 +chin greg 72 +0057 06 f 05 Result +1680 06 30 +chin greg 73 +0033 06 f 06 Result +1716 07 24 +chin greg 74 +0025 05 f 05 Result +1768 06 19 +chin greg 75 +0016 06 f 12 Result +1819 08 02 +chin greg 75 +0036 02 f 13 Result +1839 03 27 +chin greg 76 +0040 03 f 22 Result +1903 04 19 +chin greg 77 +0006 07 f 21 Result +1929 08 25 +chin greg 77 +0018 08 f 09 Result +1941 09 29 +chin greg 77 +0020 03 f 15 Result +1943 04 19 +chin greg 77 +0020 09 f 09 Result +1943 10 07 +chin greg 78 +0009 02 f 14 Result +1992 03 17 +chin greg 78 +0013 01 f 07 Result +1996 02 25 +chin greg 78 +0055 10 f 14 Result +2038 11 10 +chin greg 79 +0051 06 f 07 Result +2094 07 18 diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/chinesecalendaralg/tsrc/output2REFERENCE.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappsupport/chinesecalendaralg/tsrc/output2REFERENCE.txt Mon Mar 22 17:23:21 2010 +0100 @@ -0,0 +1,76 @@ +greg chin 00 +1898 01 f 01 Result 76 +0034 12 f 09 +greg chin 00 +1899 12 f 31 Result 76 +0036 11 f 29 +greg chin 00 +1900 01 f 10 Result 76 +0036 12 f 10 +greg chin 00 +1910 02 f 15 Result 76 +0047 01 f 06 +greg chin 00 +1920 03 f 20 Result 76 +0057 02 f 01 +greg chin 00 +1924 02 f 29 Result 77 +0001 01 f 25 +greg chin 00 +1970 01 f 01 Result 77 +0046 11 f 24 +greg chin 00 +1971 02 f 02 Result 77 +0048 01 f 07 +greg chin 00 +1972 03 f 03 Result 77 +0049 01 f 18 +greg chin 00 +1973 04 f 04 Result 77 +0050 03 f 02 +greg chin 00 +1974 05 f 05 Result 77 +0051 04 f 14 +greg chin 00 +1975 06 f 06 Result 77 +0052 04 f 27 +greg chin 00 +1976 07 f 07 Result 77 +0053 06 f 11 +greg chin 00 +1977 08 f 08 Result 77 +0054 06 f 24 +greg chin 00 +1978 09 f 09 Result 77 +0055 08 f 07 +greg chin 00 +1979 10 f 10 Result 77 +0056 08 f 20 +greg chin 00 +1980 11 f 11 Result 77 +0057 10 f 04 +greg chin 00 +1981 12 f 12 Result 77 +0058 11 f 17 +greg chin 00 +1982 01 f 13 Result 77 +0058 12 f 19 +greg chin 00 +1982 02 f 28 Result 77 +0059 02 f 05 +greg chin 00 +1982 03 f 01 Result 77 +0059 02 f 06 +greg chin 00 +1999 12 f 31 Result 78 +0016 11 f 24 +greg chin 00 +2000 01 f 01 Result 78 +0016 11 f 25 +greg chin 00 +2000 02 f 29 Result 78 +0017 01 f 25 +greg chin 00 +1998 01 f 28 Result 78 +0015 01 f 01 +greg chin 00 +1998 02 f 28 Result 78 +0015 02 f 02 +greg chin 00 +1998 03 f 30 Result 78 +0015 03 f 03 +greg chin 00 +1998 04 f 29 Result 78 +0015 04 f 04 +greg chin 00 +1998 05 f 30 Result 78 +0015 05 f 05 +greg chin 00 +1998 06 f 28 Result 78 +0015 05 t 05 +greg chin 00 +1998 07 f 28 Result 78 +0015 06 f 06 +greg chin 00 +1998 08 f 28 Result 78 +0015 07 f 07 +greg chin 00 +1998 09 f 28 Result 78 +0015 08 f 08 +greg chin 00 +1998 10 f 28 Result 78 +0015 09 f 09 +greg chin 00 +1998 11 f 28 Result 78 +0015 10 f 10 +greg chin 00 +1998 12 f 29 Result 78 +0015 11 f 11 +greg chin 00 +1999 01 f 28 Result 78 +0015 12 f 12 +greg chin 00 +2043 02 f 10 Result 78 +0060 01 f 01 +greg chin 00 +2044 01 f 29 Result 78 +0060 12 f 30 +chin greg 76 +0034 12 f 09 Result +1898 01 01 +chin greg 76 +0036 11 f 29 Result +1899 12 31 +chin greg 76 +0036 12 f 10 Result +1900 01 10 +chin greg 76 +0047 01 f 06 Result +1910 02 15 +chin greg 76 +0057 02 f 01 Result +1920 03 20 +chin greg 77 +0001 01 f 25 Result +1924 02 29 +chin greg 77 +0046 11 f 24 Result +1970 01 01 +chin greg 77 +0048 01 f 07 Result +1971 02 02 +chin greg 77 +0049 01 f 18 Result +1972 03 03 +chin greg 77 +0050 03 f 02 Result +1973 04 04 +chin greg 77 +0051 04 f 14 Result +1974 05 05 +chin greg 77 +0052 04 f 27 Result +1975 06 06 +chin greg 77 +0053 06 f 11 Result +1976 07 07 +chin greg 77 +0054 06 f 24 Result +1977 08 08 +chin greg 77 +0055 08 f 07 Result +1978 09 09 +chin greg 77 +0056 08 f 20 Result +1979 10 10 +chin greg 77 +0057 10 f 04 Result +1980 11 11 +chin greg 77 +0058 11 f 17 Result +1981 12 12 +chin greg 77 +0058 12 f 19 Result +1982 01 13 +chin greg 77 +0059 02 f 05 Result +1982 02 28 +chin greg 77 +0059 02 f 06 Result +1982 03 01 +chin greg 78 +0016 11 f 24 Result +1999 12 31 +chin greg 78 +0016 11 f 25 Result +2000 01 01 +chin greg 78 +0017 01 f 25 Result +2000 02 29 +chin greg 78 +0015 01 f 01 Result +1998 01 28 +chin greg 78 +0015 02 f 02 Result +1998 02 28 +chin greg 78 +0015 03 f 03 Result +1998 03 30 +chin greg 78 +0015 04 f 04 Result +1998 04 29 +chin greg 78 +0015 05 f 05 Result +1998 05 30 +chin greg 78 +0015 05 t 05 Result +1998 06 28 +chin greg 78 +0015 06 f 06 Result +1998 07 28 +chin greg 78 +0015 08 f 08 Result +1998 09 28 +chin greg 78 +0015 09 f 09 Result +1998 10 28 +chin greg 78 +0015 10 f 10 Result +1998 11 28 +chin greg 78 +0015 11 f 11 Result +1998 12 29 +chin greg 78 +0060 01 f 01 Result +2043 02 10 +chin greg 78 +0060 12 f 30 Result +2044 01 29 diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/vcardandvcal/Ticket/VTicket.MMP --- a/pimappsupport/vcardandvcal/Ticket/VTicket.MMP Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappsupport/vcardandvcal/Ticket/VTicket.MMP Mon Mar 22 17:23:21 2010 +0100 @@ -23,6 +23,7 @@ userinclude ../inc systeminclude /epoc32/include +APP_LAYER_SYSTEMINCLUDE_SYMBIAN source VTicketMaster.CPP diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/vcardandvcal/group/BLD.INF --- a/pimappsupport/vcardandvcal/group/BLD.INF Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappsupport/vcardandvcal/group/BLD.INF Mon Mar 22 17:23:21 2010 +0100 @@ -22,7 +22,7 @@ // specify the source file followed by its destination here // copy will be used to copy the source file to its destination // If there's no destination then the source file will be copied -// to the same name in \epoc32\include +// to the same name in /epoc32/include ../inc/VCAL.H SYMBIAN_APP_LAYER_PUBLIC_EXPORT_PATH(vcal.h) ../inc/VCAL.INL SYMBIAN_APP_LAYER_PUBLIC_EXPORT_PATH(vcal.inl) diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/vcardandvcal/tsrc/TJapaneseSoundProperty.mmp --- a/pimappsupport/vcardandvcal/tsrc/TJapaneseSoundProperty.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappsupport/vcardandvcal/tsrc/TJapaneseSoundProperty.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -23,6 +23,7 @@ userinclude . userinclude ../inc systeminclude /epoc32/include +APP_LAYER_SYSTEMINCLUDE_SYMBIAN source TJapaneseSoundProperty.cpp diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/vcardandvcal/tsrc/Test_saveloadbinoom.mmp --- a/pimappsupport/vcardandvcal/tsrc/Test_saveloadbinoom.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappsupport/vcardandvcal/tsrc/Test_saveloadbinoom.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -24,6 +24,7 @@ userinclude ../inc systeminclude /epoc32/include +APP_LAYER_SYSTEMINCLUDE_SYMBIAN source Test_saveloadbinoom.cpp library euser.lib estor.lib efsrv.lib library versit.lib vcard.lib diff -r e9a27a9cdac2 -r a552c9d3f67b pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/group/TestExternalize.mmp --- a/pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/group/TestExternalize.mmp Tue Mar 16 14:31:25 2010 +0100 +++ b/pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/group/TestExternalize.mmp Mon Mar 22 17:23:21 2010 +0100 @@ -22,6 +22,7 @@ USERINCLUDE ../inc USERINCLUDE ../../../inc SYSTEMINCLUDE /epoc32/include +APP_LAYER_SYSTEMINCLUDE_SYMBIAN SOURCE TestExternalize.cpp SOURCE TestUtils.cpp