CREATE TABLE abTest(testID INTEGER PRIMARY KEY,  groupID INTEGER);

CREATE TABLE activity(activityID INTEGER PRIMARY KEY, activityTypeID INTEGER, activityNameID INTEGER, activityNameStr TEXT, speedBased BOOLEAN, distanceMeasure INTEGER, selected BOOLEAN, inSummaries BOOLEAN, filterLocations BOOLEAN, warmUpTimesCount INTEGER, workoutTimesCount INTEGER, coolDownTimesCount INTEGER, runCellTopLeftStatsItemID INTEGER, runCellBotLeftStatsItemID INTEGER, splitDistanceIntervalID INTEGER, summaryActivityID INTEGER, heartRateMinTarget INTEGER, heartRateMaxTarget INTEGER, speedMinTarget DOUBLE, speedMaxTarget DOUBLE, paceMinTarget DOUBLE, paceMaxTarget DOUBLE, crankCadenceMinTarget INTEGER, crankCadenceMaxTarget INTEGER, strideCadenceMinTarget DOUBLE, strideCadenceMaxTarget DOUBLE, dampenFastest BOOLEAN, stopAtEnd BOOLEAN, activityDone BOOLEAN, calendarEventID TEXT, activityNotesID INTEGER, activityNotesStr TEXT, usedAsPlanActivity BOOLEAN, useIndoors INTEGER, useSteps INTEGER, bikeID INTEGER, shoesID INTEGER, stopDetection INTEGER, appOffline INTEGER, powerMinTarget INTEGER, powerMaxTarget INTEGER, runCellWeather BOOLEAN, dashboard BLOB, summaryDashboard BLOB, showProgressPage BOOLEAN, useStepDistance INTEGER, strideMeasure INTEGER, strideLength DOUBLE, cycleOffRoad BOOLEAN);

CREATE TABLE activityInterval(activityID INTEGER, intervalGroupID INTEGER, intervalIndex INTEGER, intervalTypeID INTEGER, intervalNameID INTEGER, intervalNameStr TEXT, runTime DOUBLE, length DOUBLE, lengthMeasure INTEGER, heartRateMinTarget INTEGER, heartRateMaxTarget INTEGER, speedMinTarget DOUBLE, speedMaxTarget DOUBLE, crankCadenceMinTarget INTEGER, crankCadenceMaxTarget INTEGER, strideCadenceMinTarget DOUBLE, strideCadenceMaxTarget DOUBLE, paceMinTarget DOUBLE, paceMaxTarget DOUBLE, latitude DOUBLE, longitude DOUBLE, powerMinTarget INTEGER, powerMaxTarget INTEGER, PRIMARY KEY(activityID, intervalGroupID, intervalIndex));

CREATE TABLE activityType(activityTypeID INTEGER PRIMARY KEY, maxSpeed DOUBLE, rateTimeThreshold DOUBLE, rateDistanceThreshold DOUBLE, oldRateTimeThreshold DOUBLE, oldRateDistanceThreshold DOUBLE, stoppedTimeThreshold DOUBLE, stoppedDistanceThreshold DOUBLE, modified BOOLEAN, maxABDistance DOUBLE, longRateTimeThreshold DOUBLE, motionThreshold DOUBLE, assignBike BOOLEAN, assignShoes BOOLEAN);

CREATE TABLE activityZone(zoneSetID INTEGER, zoneIndex INTEGER, zoneNameID INTEGER, zoneNameStr TEXT, zoneMinValue DOUBLE, PRIMARY KEY(zoneSetID, zoneIndex));

CREATE TABLE activityZoneSet(zoneSetID INTEGER PRIMARY KEY, zoneSetTypeID INTEGER, zoneSetNameID INTEGER, zoneSetNameStr TEXT, zoneMaxValue DOUBLE, automatic BOOLEAN, selected BOOLEAN);

CREATE TABLE altitude(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, altitude DOUBLE, distanceDelta DOUBLE, climbSpeed DOUBLE, longAltitude DOUBLE, grade DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxAltitudeRunIDSequenceID ON altitude (runID, sequenceID);
CREATE INDEX idxAltitudeRunIDTimeOffset ON altitude (runID, timeOffset);

CREATE TABLE android(key INTEGER PRIMARY KEY, settingsJSON TEXT);
INSERT INTO android VALUES (1, '');

CREATE TABLE androidPurchase(id INTEGER PRIMARY KEY AUTOINCREMENT, purchaseTime TIMESTAMP, orderId TEXT, packageName TEXT, productId TEXT, originalPurchaseTime TIMESTAMP, purchaseState INTEGER, token TEXT, signature TEXT, isAutoRenewing BOOLEAN, json TEXT);

CREATE TABLE announcements(key INTEGER PRIMARY KEY, timeIntervalID INTEGER, timeItemList TEXT, distanceIntervalID INTEGER, distanceItemList TEXT, onDemand INTEGER, onDemandItemList TEXT, onPassingEvent BOOLEAN, shorten BOOLEAN, volume DOUBLE, interruptIPod BOOLEAN, interruptIPodUI BOOLEAN, target INTEGER, startStop INTEGER, beginSplit BOOLEAN, endSplit BOOLEAN, endSplitItemList TEXT, beginInterval BOOLEAN, endInterval BOOLEAN, endIntervalItemList TEXT, halfDistance BOOLEAN, fullDistance BOOLEAN, awakenBluetoothAudio INTEGER, beginIntervalNumber BOOLEAN, beginIntervalRepetition BOOLEAN, audioDucking BOOLEAN, announcementsEnabled BOOLEAN);
INSERT INTO announcements (key) VALUES (1);
UPDATE announcements SET timeIntervalID=0, timeItemList='-1', distanceIntervalID=0, distanceItemList='-1', onDemand=0, onDemandItemList='-1', onPassingEvent=0, shorten=0, volume=1.0, interruptIPod=0, interruptIPodUI=0, target=2, startStop=2, beginSplit=0, endSplit=0, endSplitItemList='-1', beginInterval=1, endInterval=0, endIntervalItemList='-1', halfDistance=0, fullDistance=0, awakenBluetoothAudio=1, beginIntervalNumber=0, beginIntervalRepetition=0, audioDucking=1, announcementsEnabled=1 WHERE key=1;

CREATE TABLE backup(key INTEGER PRIMARY KEY, enabled BOOLEAN, name TEXT, autoSaveFrequency INTEGER, useCellular BOOLEAN, saveTime TIMESTAMP, askedAutoSave BOOLEAN, askInstallTime TIMESTAMP);
INSERT INTO backup (key) VALUES (1);
UPDATE backup SET enabled=0, name='', autoSaveFrequency=0, useCellular=1, saveTime='', askedAutoSave=0, askInstallTime='' WHERE key=1;

CREATE TABLE bike(bikeID INTEGER PRIMARY KEY, name TEXT, wheelSize DOUBLE, wheelSizeUnits INTEGER, wheelSizeShowCircumference BOOLEAN, initialDistance DOUBLE, date TIMESTAMP);

CREATE TABLE bikeSpeedStopDetection(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, action INTEGER, PRIMARY KEY(runID, sequenceID));

CREATE TABLE blobStore(blobID INTEGER PRIMARY KEY, blob BLOB);

CREATE TABLE calendar(key INTEGER PRIMARY KEY, syncEnabled BOOL, calendarTitle TEXT, calendarType INTEGER, titleItems TEXT, noteItems TEXT, allDayEnabled BOOLEAN, firstWeekday INTEGER, availability INTEGER);
INSERT INTO calendar (key) VALUES (1);
UPDATE calendar SET syncEnabled=0, calendarTitle='', calendarType=0, titleItems='-1', noteItems='-1', allDayEnabled=0, firstWeekday=0, availability=2 WHERE key=1;

CREATE TABLE competitor(competitorID INTEGER PRIMARY KEY AUTOINCREMENT, competitorIconID INTEGER, name TEXT, initials TEXT, share INTEGER);

CREATE TABLE coordinate(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, latitude DOUBLE, longitude DOUBLE, distanceDelta DOUBLE, speed DOUBLE, longSpeed DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxCoordinateRunIDSequenceID ON coordinate (runID, sequenceID);
CREATE INDEX idxCoordinateRunIDTimeOffset ON coordinate (runID, timeOffset);

CREATE TABLE dailymile(key INTEGER PRIMARY KEY, dailymileEnabled BOOLEAN, accessToken TEXT, username TEXT, displayName TEXT, sendOnStart BOOLEAN, sendOnStartTitleItems TEXT, sendOnStartMessageItems TEXT, sendOnStop BOOLEAN, sendOnStopTitleItems TEXT, sendOnStopMessageItems TEXT, sendOnContinue BOOLEAN, sendOnContinueTitleItems TEXT, sendOnContinueMessageItems TEXT, sendOnDone BOOLEAN, sendOnDoneTitleItems TEXT, sendOnDoneMessageItems TEXT, sendAtTimeInterval INTEGER, sendAtTimeIntervalTitleItems TEXT, sendAtTimeIntervalMessageItems TEXT, sendAtDistanceInterval INTEGER, sendAtDistanceIntervalTitleItems TEXT, sendAtDistanceIntervalMessageItems TEXT, dailymileAnnouncementsType INTEGER, userWhiteList TEXT, promptOnDone BOOLEAN, shareMap BOOLEAN, sendEndSplit BOOLEAN, sendEndSplitTitleItems TEXT, sendEndSplitMessageItems TEXT, sendEndInterval BOOLEAN, sendEndIntervalTitleItems TEXT, sendEndIntervalMessageItems TEXT, announceAllowMe BOOLEAN);
INSERT INTO dailymile (key) VALUES (1);
UPDATE dailymile SET dailymileEnabled=1, accessToken='', username='', displayName='', sendOnStart=1, sendOnStartTitleItems='-1', sendOnStartMessageItems='-1', sendOnStop=1, sendOnStopTitleItems='-1', sendOnStopMessageItems='-1', sendOnContinue=1, sendOnContinueTitleItems='-1', sendOnContinueMessageItems='-1', sendOnDone=1, sendOnDoneTitleItems='-1', sendOnDoneMessageItems='-1', sendAtTimeInterval=4, sendAtTimeIntervalTitleItems='-1', sendAtTimeIntervalMessageItems='-1', sendAtDistanceInterval=0, sendAtDistanceIntervalTitleItems='-1', sendAtDistanceIntervalMessageItems='-1', dailymileAnnouncementsType=1, userWhiteList='', promptOnDone=1, shareMap=1, sendEndSplit=0, sendEndSplitTitleItems='-1', sendEndSplitMessageItems='-1', sendEndInterval=0, sendEndIntervalTitleItems='-1', sendEndIntervalMessageItems='-1', announceAllowMe=0 WHERE key=1;

CREATE TABLE dashboard(dashboardID INTEGER PRIMARY KEY, dashboard BLOB);

CREATE TABLE device(id INTEGER PRIMARY KEY, connectionParams TEXT, name TEXT, heartRateEnabled INTEGER, bikeSpeedEnabled INTEGER, bikeCadenceEnabled INTEGER, bikePowerEnabled INTEGER, bikeSpeedIndoorsOnly BOOLEAN, bikePowerContribution INTEGER, bikePowerScale DOUBLE);

CREATE TABLE elevationLookup(id INTEGER PRIMARY KEY AUTOINCREMENT, lat DOUBLE, lng DOUBLE, elevation DOUBLE, resolution DOUBLE, nwLat DOUBLE, nwLng DOUBLE, seLat DOUBLE, seLng DOUBLE);
CREATE INDEX idxElevationLookupLat ON elevationLookup (lat);
CREATE INDEX idxElevationLookupLng ON elevationLookup (lng);
CREATE INDEX idxElevationLookupResolution ON elevationLookup (resolution);
CREATE INDEX idxElevationLookupNWLat ON elevationLookup (nwLat);
CREATE INDEX idxElevationLookupNWLng ON elevationLookup (nwLng);
CREATE INDEX idxElevationLookupSELat ON elevationLookup (seLat);
CREATE INDEX idxElevationLookupSELng ON elevationLookup (seLng);

CREATE TABLE emailUpdates(key INTEGER PRIMARY KEY, emailUpdatesEnabled BOOL, sendOnStart BOOL, sendOnStartItems TEXT, sendOnStop BOOL, sendOnStopItems TEXT, sendOnContinue BOOL, sendOnContinueItems TEXT, sendOnDone BOOL, sendOnDoneItems TEXT, sendAtTimeInterval INTEGER, sendAtTimeIntervalItems TEXT, sendAtDistanceInterval INTEGER, sendAtDistanceIntervalItems TEXT, toList TEXT, promptOnDone BOOLEAN, fromNoReply BOOLEAN, sendEndSplit BOOLEAN, sendEndSplitItems TEXT, sendEndInterval BOOLEAN, sendEndIntervalItems TEXT, includeSystem BOOLEAN);
INSERT INTO emailUpdates (key) VALUES (1);
UPDATE emailUpdates SET emailUpdatesEnabled=1, sendOnStart=1, sendOnStartItems='-1', sendOnStop=0, sendOnStopItems='-1', sendOnContinue=0, sendOnContinueItems='-1', sendOnDone=1, sendOnDoneItems='-1', sendAtTimeInterval=0, sendAtTimeIntervalItems='-1', sendAtDistanceInterval=0, sendAtDistanceIntervalItems='-1', toList='', promptOnDone=1, fromNoReply=1, sendEndSplit=0, sendEndSplitItems='-1', sendEndInterval=0, sendEndIntervalItems='-1', includeSystem=0 WHERE key=1;

CREATE TABLE emailUpdatesMailbox(messageID INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TIMESTAMP, subject TEXT, toList TEXT, message TEXT);

CREATE TABLE facebook(key INTEGER PRIMARY KEY, facebookEnabled BOOL, userName TEXT, postOnStart BOOL, postOnStartTitleItems TEXT, postOnStartDescriptionItems TEXT, postOnStop BOOL, postOnStopTitleItems TEXT, postOnStopDescriptionItems TEXT, postOnContinue BOOL, postOnContinueTitleItems TEXT, postOnContinueDescriptionItems TEXT, postOnDone BOOL, postOnDoneTitleItems TEXT, postOnDoneDescriptionItems TEXT, postAtTimeInterval INTEGER, postAtTimeIntervalTitleItems TEXT, postAtTimeIntervalDescriptionItems TEXT, postAtDistanceInterval INTEGER, postAtDistanceIntervalTitleItems TEXT, postAtDistanceIntervalDescriptionItems TEXT, facebookAnnouncementsType INTEGER, userWhiteList TEXT, promptOnDone BOOLEAN, accessToken TEXT, expirationInterval DOUBLE, uid TEXT, postEndSplit BOOLEAN, postEndSplitTitleItems TEXT, postEndSplitDescriptionItems TEXT, postEndInterval BOOLEAN, postEndIntervalTitleItems TEXT, postEndIntervalDescriptionItems TEXT, announceAllowMe BOOLEAN, postAtTime BOOLEAN, postAtDistance BOOLEAN);
INSERT INTO facebook (key) VALUES (1);
UPDATE facebook SET facebookEnabled=0, userName='', postOnStart=1, postOnStartTitleItems='-1',  postOnStartDescriptionItems='-1', postOnStop=0, postOnStopTitleItems='-1', postOnStopDescriptionItems='-1', postOnContinue=0, postOnContinueTitleItems='-1', postOnContinueDescriptionItems='-1', postOnDone=1, postOnDoneTitleItems='-1', postOnDoneDescriptionItems='-1', postAtTimeInterval=0, postAtTimeIntervalTitleItems='-1', postAtTimeIntervalDescriptionItems='-1', postAtDistanceInterval=0, postAtDistanceIntervalTitleItems='-1', postAtDistanceIntervalDescriptionItems='-1', facebookAnnouncementsType=0, userWhiteList='', promptOnDone=1, accessToken='', expirationInterval=0.0, uid='', postEndSplit=0, postEndSplitTitleItems='-1', postEndSplitDescriptionItems='-1', postEndInterval=0, postEndIntervalTitleItems='-1', postEndIntervalDescriptionItems='-1', announceAllowMe=0, postAtTime=0, postAtDistance=0 WHERE key=1;

CREATE TABLE friends(key INTEGER PRIMARY KEY, friendsEnabled BOOLEAN, friendsUIEnabled BOOLEAN, friendsSettings TEXT, friendsList TEXT);
INSERT INTO friends (key) VALUES (1);
UPDATE friends SET friendsEnabled=1, friendsUIEnabled=0, friendsSettings='', friendsList='' WHERE key=1;

CREATE TABLE heartRateData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, heartRate INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxHeartRateDataRunIDSequenceID ON heartRateData (runID, sequenceID);
CREATE INDEX idxHeartRateDataRunIDTimeOffset ON heartRateData (runID, timeOffset);

CREATE TABLE headingBlob(runID INTEGER, blobID INTEGER, blob BLOB, PRIMARY KEY(runID, blobID));
CREATE INDEX idxHeadingBlobRunIDBlobID ON headingBlob (runID, blobID);

CREATE TABLE locationBlob(runID INTEGER, blobID INTEGER, blob BLOB, PRIMARY KEY(runID, blobID));
CREATE INDEX idxLocationBlobRunIDBlobID ON locationBlob (runID, blobID);

CREATE TABLE meter(key INTEGER PRIMARY KEY, dbVersion INTEGER, dbIdentifier TEXT, appLaunchCount INTEGER, selectedTabNumber INTEGER, tabOrder TEXT, runState INTEGER, currentRunID INTEGER, selectedRouteID INTEGER, appInstanceID TEXT, onStartPostID TEXT, noNoGPSWarning BOOLEAN, askedToFollow BOOLEAN, notes TEXT, lastImportCompetitorID INTEGER, selectedVoiceID TEXT, minGPSStatusForStart DOUBLE, minCoordMove DOUBLE, minAltitudeMove DOUBLE, coordMaxBToACDistance DOUBLE, minHBarsForOutliers DOUBLE, minOutlierDistance DOUBLE, cIntervalGroupID INTEGER, cIntervalGroupTimesRun INTEGER, cIntervalIndex INTEGER, runSIZVCDisplay INTEGER, runSIZVCZoneSetID INTEGER, bikeSpeedStoppedThreshold DOUBLE, targetNagTime DOUBLE, targetLocationOuterDistance DOUBLE, targetLocationInnerDistance DOUBLE, maxSensorAge DOUBLE, stopwatchPageIndex INTEGER, planPaneViewIndex INTEGER, userConsent BOOLEAN, upgradeVoicesInProgress BOOLEAN, selectedProductIDSuffix TEXT, newsReadTime TIMESTAMP, flashNewsCheckTime TIMESTAMP, selectedBikeID INTEGER, selectedShoesID INTEGER, firstUseTime TIMESTAMP, firstUseVersion TEXT, lastPhoneSizeRetina4 BOOLEAN, iPhoneAppLaunchCount INTEGER, iPadAppLaunchCount INTEGER, iPadFirstUse BOOLEAN, modTime TIMESTAMP, asIdentifier TEXT, asTrackingEnabled BOOLEAN, generalDict TEXT, tickets TEXT, proLegacy BOOLEAN, proUpgradeTime TIMESTAMP, statsUploadTime TIMESTAMP, sensorsInterval DOUBLE, askedSummarizedActivities BOOLEAN, askToGetVoiceTime TEXT, eliteUpgradeTime TIMESTAMP, didSetupElite BOOLEAN, historySavedActivity INTEGER, historySavedGroup INTEGER, historySavedSummary INTEGER, pedometerSavedSpan INTEGER, capabilities BLOB, elitePurchaseTime TIMESTAMP, appVersion TEXT, appBuildNumber TEXT, historySavedActivities TEXT, lastPhoneDisplayHeight INTEGER, selectedPathID INTEGER, watchKeepAliveDayID INTEGER, watchKeepAliveTime DOUBLE, watchUsageTime DOUBLE, watchUsageKind INTEGER, watchVersion TEXT, siriUsageTime DOUBLE, iAdAttribution BOOLEAN, iAdCampaignID TEXT, iAdCampaignName TEXT, iAdConversionDate TIMESTAMP, iAdClickDate TIMESTAMP, iAdGroupID TEXT, iAdAdGroupName TEXT, iAdKeyword TEXT, appConfig TEXT, requestReviewID INTEGER, requestReviewTime TIMESTAMP, requestReviewVersion TEXT, requestReviewBuildNumber TEXT, requestReviewCheckTime TIMESTAMP, userConsentVersion INTEGER, weatherSig TEXT);

INSERT INTO meter (key) VALUES (1);
UPDATE meter SET dbVersion=395, dbIdentifier='', appLaunchCount=0, selectedTabNumber=0, tabOrder='0,1,2,3', runState=0, currentRunID=-1, selectedRouteID=0, appInstanceID='', onStartPostID='', noNoGPSWarning=0, askedToFollow=0, notes='', lastImportCompetitorID=-1, selectedVoiceID='', minGPSStatusForStart=3.0, minCoordMove=1.0, minAltitudeMove=10.0, coordMaxBToACDistance=1.5, minHBarsForOutliers=3.0, minOutlierDistance=4.0, cIntervalGroupID=0, cIntervalGroupTimesRun=0, cIntervalIndex=0, runSIZVCDisplay=0, runSIZVCZoneSetID=0, bikeSpeedStoppedThreshold=0.0, targetNagTime=60.0, targetLocationOuterDistance=50.0, targetLocationInnerDistance=10.0, maxSensorAge=5.0, stopwatchPageIndex=-1, planPaneViewIndex=0, userConsent=0, upgradeVoicesInProgress=0, selectedProductIDSuffix='', newsReadTime='', flashNewsCheckTime='', selectedBikeID=0, selectedShoesID=0, firstUseTime='', firstUseVersion='', lastPhoneSizeRetina4=1, iPhoneAppLaunchCount=0, iPadAppLaunchCount=0, iPadFirstUse=0, modTime='', asIdentifier='', asTrackingEnabled=0, generalDict='', tickets='', proLegacy=0, proUpgradeTime='', statsUploadTime='', sensorsInterval=2.0, askedSummarizedActivities=0, askToGetVoiceTime='', eliteUpgradeTime='', didSetupElite=0, historySavedActivity=-1, historySavedGroup=6, historySavedSummary=5, pedometerSavedSpan=1, capabilities='', elitePurchaseTime='', appVersion='', appBuildNumber='', historySavedActivities='', lastPhoneDisplayHeight=0, selectedPathID=-1, watchKeepAliveDayID=0, watchKeepAliveTime=0.0, watchUsageTime=0.0, watchUsageKind=0, watchVersion='', siriUsageTime=0.0, iAdAttribution=0, iAdCampaignID='', iAdCampaignName='', iAdConversionDate='', iAdClickDate='', iAdGroupID='', iAdAdGroupName='', iAdKeyword='', appConfig='', requestReviewID=0, requestReviewTime='', requestReviewVersion='', requestReviewBuildNumber='', requestReviewCheckTime='', userConsentVersion=0, weatherSig='' WHERE key=1;

CREATE TABLE motionBlob(runID INTEGER, blobID INTEGER, blob BLOB, PRIMARY KEY(runID, blobID));
CREATE INDEX idxMotionBlobRunIDBlobID ON motionBlob (runID, blobID);

CREATE TABLE myFitnessPal(key INTEGER PRIMARY KEY, myFitnessPalEnabled BOOLEAN, accessToken TEXT, refreshToken TEXT, doneSend INTEGER, doneItems TEXT);
INSERT INTO myFitnessPal (key) VALUES (1);
UPDATE myFitnessPal SET myFitnessPalEnabled=1, accessToken='', refreshToken='', doneSend=1, doneItems='-1' WHERE key=1;

CREATE TABLE notify(key INTEGER PRIMARY KEY, notifyEnabled BOOL, notifyAtTimeInterval INTEGER, notifyAtTimeIntervalItems TEXT, notifyAtDistanceInterval INTEGER, notifyAtDistanceIntervalItems TEXT, notifyBeginSplit BOOLEAN, notifyEndSplit BOOLEAN, notifyEndSplitItems TEXT, notifyBeginInterval BOOLEAN, notifyEndInterval BOOLEAN, notifyEndIntervalItems TEXT, notifyTarget BOOLEAN, notifyGrandfather BOOLEAN, notifyEndIntervalKind INTEGER);
INSERT INTO notify (key) VALUES (1);
UPDATE notify SET notifyEnabled=1, notifyAtTimeInterval=0, notifyAtTimeIntervalItems='-1', notifyAtDistanceInterval=0, notifyAtDistanceIntervalItems='-1', notifyBeginSplit=0, notifyEndSplit=0, notifyEndSplitItems='-1', notifyBeginInterval=1, notifyEndInterval=0, notifyEndIntervalItems='-1', notifyTarget=0, notifyGrandfather=0, notifyEndIntervalKind=1 WHERE key=1;

CREATE TABLE pedometerData(dayID INTEGER PRIMARY KEY, steps INTEGER, done BOOLEAN);

CREATE TABLE plan(planID INTEGER PRIMARY KEY, planIndex INTEGER, nameID INTEGER, nameStr TEXT, descID INTEGER, descStr TEXT, date TIMESTAMP, weekday INTEGER, dateType INTEGER, calendarSync BOOLEAN, currentActivityIndex INTEGER, planEnabled BOOLEAN, planTypeID INTEGER);

CREATE TABLE planActivity(planID INTEGER, activityIndex INTEGER, activityID INTEGER, PRIMARY KEY(planID, activityIndex));

CREATE TABLE purchase(productIdentifier TEXT, transactionIdentifier TEXT, transactionReceipt TEXT, transactionDate TIMESTAMP, originalTransactionIdentifier TEXT, originalTransactionDate TIMESTAMP);

CREATE TABLE register(key INTEGER PRIMARY KEY, status BOOLEAN, emailAddr TEXT, firstName TEXT, lastName TEXT, receiveNews BOOLEAN, regEmailAddr TEXT, emailEveryRun BOOLEAN);
INSERT INTO register (key) VALUES (1);
UPDATE register SET status=0, emailAddr='', firstName='', lastName='', receiveNews=1, regEmailAddr='', emailEveryRun=1 WHERE key=1;

CREATE TABLE route(routeID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, bmwEnabled BOOLEAN, competitorsEnabled BOOLEAN, officialEnabled BOOLEAN, showMapIcons BOOLEAN, showGraphsIcons BOOLEAN, officialDistance DOUBLE, officialTime DOUBLE, useOfficialDistance BOOLEAN, dashboard BLOB, officialRunID INTEGER);
CREATE INDEX idxRouteName ON route (name);

CREATE TABLE run(runID INTEGER PRIMARY KEY AUTOINCREMENT, routeID INTEGER, activityID INTEGER, startTime TIMESTAMP, startTimeZone TEXT, shareWithFriendsTime TIMESTAMP, runTime DOUBLE, stoppedTime DOUBLE, badGPSTime DOUBLE, distance DOUBLE, ascent DOUBLE, descent DOUBLE, calories DOUBLE, maxSpeed DOUBLE, minPace DOUBLE, weight DOUBLE, age INTEGER, sex INTEGER, vo2Max DOUBLE, wheelSize DOUBLE, official BOOLEAN, runEditFlags INTEGER, dontLoadRunData BOOLEAN, batteryUsage DOUBLE, batteryLevel DOUBLE, competitorID INTEGER, pathOnly BOOLEAN, import BOOLEAN, importDict TEXT, stopDetection BOOLEAN, caloriesUseElevation BOOLEAN, calendarEventID TEXT, coordinateHasSpeed BOOLEAN, altitudeHasDistanceDelta BOOLEAN, altitudeHasClimbSpeed BOOLEAN, avgHeartRate INTEGER, maxHeartRate INTEGER, avgWheelRPM INTEGER, maxWheelRPM INTEGER, avgCrankRPM INTEGER, maxCrankRPM INTEGER, userHash TEXT, dailymileEntryID TEXT, notes TEXT, altitudeHasLongAltitude BOOLEAN, useIndoors BOOLEAN, useSteps BOOLEAN, steps INTEGER, maxStepsPM INTEGER, bikeID INTEGER, shoesID INTEGER, avgStepsPM INTEGER, avgPower INTEGER, maxPower INTEGER, facebookActionID TEXT, facebookActionType TEXT, thresholdPower INTEGER, adjustedPower INTEGER, avgPowerBalance INTEGER, powerOutput DOUBLE, powerIntensity DOUBLE, powerScore INTEGER, peakPower20Sec INTEGER, peakPower1Min INTEGER, peakPower5Min INTEGER, peakPower20Min INTEGER, peakPower1Hr INTEGER, facebookObjectID TEXT, locality TEXT, weather BLOB, useStepDistance BOOLEAN, strideLength DOUBLE, temp DOUBLE, minTemp DOUBLE, avgTemp DOUBLE, maxTemp DOUBLE, weatherSummary TEXT, grossSteps INTEGER, altitudeFromAltimeter BOOLEAN, peakPower10Min INTEGER, health TEXT, pathname TEXT, healthSaved BOOLEAN, heartRateFromHealth BOOLEAN, altitudeAdjust INTEGER, altitudeAdjustment DOUBLE, runTimeBegin DOUBLE, runTimeEnd DOUBLE, altitudeHasGrade BOOLEAN, uuid TEXT, runProperties TEXT);
CREATE INDEX idxRunRunTime ON run (runTime);
CREATE INDEX idxRunStartTime ON run (startTime);
CREATE INDEX idxRunShareWithFriendsTime ON run (shareWithFriendsTime);
CREATE INDEX idxRunUUID ON run (uuid);

CREATE TABLE runComments(runID INTEGER PRIMARY KEY, commentsHash TEXT, commentsArray TEXT);

CREATE TABLE runCommentsUUID(id INTEGER PRIMARY KEY AUTOINCREMENT, runUUID TEXT, commentsHash TEXT, commentsArray TEXT);
CREATE INDEX idxRunCommentsUUIDRunUUID ON runCommentsUUID (runUUID);

CREATE TABLE runInterval(runID INTEGER, sequenceID INTEGER, intervalTypeID INTEGER, timeOffset DOUBLE, runTimeDelta DOUBLE, distanceDelta DOUBLE, intervalNameID INTEGER, intervalNameStr TEXT, origIntervalTypeID INTEGER, importRunTime DOUBLE, importStoppedTime DOUBLE, importDistance DOUBLE, importCalories DOUBLE, importAvgSpeed DOUBLE, importMaxSpeed DOUBLE, importAvgHeartRate INTEGER, importMaxHeartRate INTEGER, importAvgCycleCadence INTEGER, importMaxCycleCadence INTEGER, importAvgPower INTEGER, importAvgPowerBalance INTEGER, importMaxPower INTEGER, importAvgStepCadence INTEGER, importMaxStepCadence INTEGER, importSteps INTEGER, importAscent DOUBLE, importDescent DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxRunIntervalRunIDSequenceID ON runInterval (runID, sequenceID);
CREATE INDEX idxRunIntervalRunIDTimeOffset ON runInterval (runID, timeOffset);

CREATE TABLE runState(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, runState INTEGER, steps INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxRunStateRunIDSequenceID ON runState (runID, sequenceID);
CREATE INDEX idxRunStateRunIDTimeOffset ON runState (runID, timeOffset);

CREATE TABLE sensor(id INTEGER PRIMARY KEY, networkType INTEGER, antDeviceNumber INTEGER, antTransmissionType INTEGER, btleDeviceUUID TEXT, sensorType INTEGER, sensorSubtype INTEGER, name TEXT, heartRateEnabled INTEGER, bikeSpeedEnabled INTEGER, bikeCadenceEnabled INTEGER, bikePowerEnabled INTEGER, displayEnabled INTEGER, elevationEnabled INTEGER, temperatureEnabled INTEGER, antBridgeEnabled INTEGER, bikeSpeedIndoorsOnly BOOLEAN, bikePowerContribution INTEGER, bikePowerScale DOUBLE);

CREATE TABLE sensorData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, heartRate INTEGER, wheelRPM INTEGER, accumWheelRevs INTEGER, crankRPM INTEGER, stepCount INTEGER, power INTEGER, powerBalance INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxSensorDataRunIDSequenceID ON sensorData (runID, sequenceID);
CREATE INDEX idxSensorDataRunIDTimeOffset ON sensorData (runID, timeOffset);

CREATE TABLE settings(key INTEGER PRIMARY KEY, appDistanceMeasure INTEGER, appWeightMeasure INTEGER, bestRunHas INTEGER, proximitySensingEnabled BOOLEAN, landscapeModeEnabled BOOLEAN, weight DOUBLE, remoteControl BOOLEAN, appMapType INTEGER, distanceMarkersEnabled BOOLEAN, graphsLimitEnabled BOOLEAN, badGPSTimeEnabled BOOLEAN, badGPSTimeTimeLimit DOUBLE, badGPSTimePercentTime INTEGER, appOffline BOOLEAN, batterySaverTime DOUBLE, stopDetection BOOLEAN, periodicMapUpload BOOLEAN, useLocationServices BOOLEAN, screenOn INTEGER, screenOrientation INTEGER, gpxImportUseLocalTimeZone BOOLEAN, newRouteOfficialDistance DOUBLE, newRouteOfficialTime DOUBLE, defaultRouteID INTEGER, importCompetitorMe BOOLEAN, appUseCalories BOOLEAN, landscapeModeUI BOOLEAN, proximitySensingUI BOOLEAN, topGraphViewDisplayID INTEGER, botGraphViewDisplayID INTEGER, caloriesUseElevation BOOLEAN, intervalMarkersEnabled BOOLEAN, birthday TIMESTAMP, sex INTEGER, vo2Max DOUBLE, wheelSize DOUBLE, wheelSizeUnits INTEGER, wheelSizeShowCircumference BOOLEAN, bluetooth BOOLEAN, stopwatchPageList BLOB, autoConnectSensors BOOLEAN, maxWheelRPM INTEGER, maxCrankRPM INTEGER, awakenBluetoothAudio BOOLEAN, autoSelectLastActivity BOOLEAN, stopDetectionInExports BOOLEAN, maxLocationAccuracy BOOLEAN, useIndoors BOOLEAN, useSteps BOOLEAN, newsEnabled BOOLEAN, rflktPageList BLOB, indoorsWarningEnabled BOOLEAN, rflktButtonDict BLOB, dampenAscentDescent BOOLEAN, thresholdPower INTEGER, latestFacebook BOOLEAN, shareMap BOOLEAN, graphViewDisplayID3 INTEGER, graphViewDisplayID4 INTEGER, graphViewDisplayIDs TEXT, rflktBacklightTime DOUBLE, rflktPageLimit INTEGER, mapVendor INTEGER, mapTrackHeading BOOLEAN, mapTrafficEnabled BOOLEAN, appUseCelsius BOOLEAN, stopwatchBlack BOOLEAN, tcxLaps INTEGER, stopDetectionUsesDuplicateLocations BOOLEAN, historyDashboard BLOB, stopwatchStatsTextStyle INTEGER, chinaGPSOffset BOOLEAN, lowMemoryWarningEnabled BOOLEAN, rflktBacklightPercent INTEGER, rflktElevationCalibration INTEGER, rflktCalibrationElevation DOUBLE, mapMode INTEGER, ratings BOOLEAN, casioPageList BLOB, casioButtonDict BLOB, useStepDistance BOOLEAN, runStrideMeasure INTEGER, runStrideLength DOUBLE, walkStrideMeasure INTEGER, walkStrideLength DOUBLE, speakKind INTEGER, casioDisconnectOnDone BOOLEAN, smoothElevationGraph BOOLEAN, voiceSettings BOOLEAN, todayEnabled BOOLEAN, todayItems TEXT, compressUploads BOOLEAN, health TEXT, speakAppleVoice TEXT, barometricAltimeter BOOLEAN, defaultPathID INTEGER, watchPageList BLOB, speedSensorFailover BOOLEAN, caloriesFromHeartRate BOOLEAN, lapOnStop BOOLEAN, duplicateDeviceWarningEnabled BOOLEAN, gpsErrorReduction INTEGER, mapSmoothPaths INTEGER, stopwatchBackground INTEGER);
INSERT INTO settings (key) VALUES (1);
UPDATE settings SET appDistanceMeasure=0, appWeightMeasure=0, bestRunHas=1, proximitySensingEnabled=0, landscapeModeEnabled=0, weight=0.0, remoteControl=0, appMapType=0, distanceMarkersEnabled=1, graphsLimitEnabled=1, badGPSTimeEnabled=1, badGPSTimeTimeLimit=300.0, badGPSTimePercentTime=20, appOffline=0, batterySaverTime=300.0, stopDetection=0, periodicMapUpload=1, useLocationServices=1, screenOn=0, screenOrientation=0, gpxImportUseLocalTimeZone=0, newRouteOfficialDistance=0.0, newRouteOfficialTime=0.0, defaultRouteID=0, importCompetitorMe=1, appUseCalories=1, landscapeModeUI=0, proximitySensingUI=0, topGraphViewDisplayID=9, botGraphViewDisplayID=12, caloriesUseElevation=1, intervalMarkersEnabled=1, birthday='', sex=0, vo2Max=0.0, wheelSize=0.0, wheelSizeUnits=4, wheelSizeShowCircumference=0, bluetooth=0, stopwatchPageList='', autoConnectSensors=1, maxWheelRPM=1000, maxCrankRPM=150, awakenBluetoothAudio=0, autoSelectLastActivity=1, stopDetectionInExports=1, maxLocationAccuracy=1, useIndoors=0, useSteps=0, newsEnabled=1, rflktPageList='', indoorsWarningEnabled=1, rflktButtonDict='', dampenAscentDescent=0, thresholdPower=0, latestFacebook=1, shareMap=1, graphViewDisplayID3=0, graphViewDisplayID4=0, graphViewDisplayIDs='', rflktBacklightTime=30.0, rflktPageLimit=0, mapVendor=0, mapTrackHeading=0, mapTrafficEnabled=0, appUseCelsius=0, stopwatchBlack=1, tcxLaps=2, stopDetectionUsesDuplicateLocations=1, historyDashboard='', stopwatchStatsTextStyle=2, chinaGPSOffset=1, lowMemoryWarningEnabled=0, rflktBacklightPercent=100, rflktElevationCalibration=1, rflktCalibrationElevation=-11000.0, mapMode=0, ratings=1, casioPageList='', casioButtonDict='', useStepDistance=0, runStrideMeasure=1, runStrideLength=-1.0, walkStrideMeasure=1, walkStrideLength=-1.0, speakKind=2, casioDisconnectOnDone=1, smoothElevationGraph=1, voiceSettings=0, todayEnabled=1, todayItems='', compressUploads=1, health='', speakAppleVoice='', barometricAltimeter=1, defaultPathID=-1, watchPageList='', speedSensorFailover=1, caloriesFromHeartRate=1, lapOnStop=0, duplicateDeviceWarningEnabled=1, gpsErrorReduction=1, mapSmoothPaths=1, stopwatchBackground=2 WHERE key=1;

CREATE TABLE shoes(shoesID INTEGER PRIMARY KEY, name TEXT, initialDistance DOUBLE, date TIMESTAMP, retired BOOLEAN);

CREATE TABLE stepData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, steps INTEGER, stepsPM INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxStepDataRunIDSequenceID ON stepData (runID, sequenceID);
CREATE INDEX idxStepDataRunIDTimeOffset ON stepData (runID, timeOffset);

CREATE TABLE stepStopDetection(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, action INTEGER, PRIMARY KEY(runID, sequenceID));

CREATE TABLE stopDetection(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, action INTEGER, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxStopDetectionRunIDSequenceID2 ON stopDetection (runID, sequenceID);
CREATE INDEX idxStopDetectionRunIDTimeOffset2 ON stopDetection (runID, timeOffset);

CREATE TABLE stopwatchStatusIcon(iconIndex INTEGER PRIMARY KEY, iconID INTEGER, enabled BOOLEAN);

CREATE TABLE strava(key INTEGER PRIMARY KEY, stravaEnabled BOOLEAN, accessToken TEXT, refreshToken TEXT, expiresAt INTEGER, username TEXT, doneUpload INTEGER, uploadFormat INTEGER, tokenResponseJson TEXT, refreshTokenResponseJson TEXT);
INSERT INTO strava (key) VALUES (1);
UPDATE strava SET stravaEnabled=1, accessToken='', refreshToken='', expiresAt=0, username='', doneUpload=1, uploadFormat=5, tokenResponseJson='', refreshTokenResponseJson='' WHERE key=1;

CREATE TABLE support(key INTEGER PRIMARY KEY, debugMode BOOLEAN, showRunID BOOLEAN, demo BOOLEAN, demoRunID INTEGER, demoTimeRatio DOUBLE, fauxLocation BOOLEAN, fauxLocationRunID INTEGER, fauxlocationTimeRatio DOUBLE, locationRecords BOOLEAN, storeDisabled BOOLEAN, speakDisabled BOOLEAN, useHeartRateData BOOLEAN, useBikeSpeedCadenceData BOOLEAN, useStrideData BOOLEAN, networkTrace BOOL, fauxMotion BOOLEAN, fauxMotionRunID INTEGER, motionRecords BOOLEAN, headingRecords BOOLEAN);
INSERT INTO support (key) VALUES (1);
UPDATE support SET debugMode=0, showRunID=0, demo=0, demoRunID=0, demoTimeRatio=1.0, fauxLocation=0, fauxLocationRunID=0, fauxlocationTimeRatio=1.0, locationRecords=1, storeDisabled=0, speakDisabled=0, useHeartRateData=1, useBikeSpeedCadenceData=1, useStrideData=1, networkTrace=0, fauxMotion=0, fauxMotionRunID=0, motionRecords=0, headingRecords=0 WHERE key=1;

CREATE TABLE temperatureData(runID INTEGER, sequenceID INTEGER, timeOffset DOUBLE, temperature DOUBLE, PRIMARY KEY(runID, sequenceID));
CREATE INDEX idxTemperatureDataRunIDSequenceID ON temperatureData (runID, sequenceID);
CREATE INDEX idxTemperatureDataRunIDTimeOffset ON temperatureData (runID, timeOffset);

CREATE TABLE twitter(key INTEGER PRIMARY KEY, requestToken TEXT, requestTokenSecret TEXT, accessToken TEXT, accessTokenSecret TEXT, userID TEXT, screenName TEXT, twitterEnabled BOOL, tweetOnStart BOOL, tweetOnStartItems TEXT, tweetOnStop BOOL, tweetOnStopItems TEXT, tweetOnContinue BOOL, tweetOnContinueItems TEXT, tweetOnDone BOOL, tweetOnDoneItems TEXT, tweetAtTimeInterval INTEGER, tweetAtTimeIntervalItems TEXT, tweetAtDistanceInterval INTEGER, tweetAtDistanceIntervalItems TEXT, twitterAnnouncementsType INTEGER, userWhiteList TEXT, promptOnDone BOOLEAN, tweetEndSplit BOOLEAN, tweetEndSplitItems TEXT, tweetEndInterval BOOLEAN, tweetEndIntervalItems TEXT, announceAllowMe BOOLEAN);
INSERT INTO twitter (key) VALUES (1);
UPDATE twitter SET requestToken='', requestTokenSecret='', accessToken='', accessTokenSecret='', userID='', screenName='', twitterEnabled=1, tweetOnStart=1, tweetOnStartItems='-1', tweetOnStop=0, tweetOnStopItems='-1', tweetOnContinue=0, tweetOnContinueItems='-1', tweetOnDone=1, tweetOnDoneItems='-1', tweetAtTimeInterval=0, tweetAtTimeIntervalItems='-1', tweetAtDistanceInterval=0, tweetAtDistanceIntervalItems='-1', twitterAnnouncementsType=1, userWhiteList='', promptOnDone=1, tweetEndSplit=0, tweetEndSplitItems='-1', tweetEndInterval=0, tweetEndIntervalItems='-1', announceAllowMe=0 WHERE key=1;

CREATE TABLE voice(productIDSuffix TEXT PRIMARY KEY, voiceID TEXT, voiceLocale TEXT, voiceFileName TEXT, voiceSampleFileName TEXT, nameDict TEXT, descriptionDict TEXT, free BOOLEAN);
