import { createCipheriv } from "crypto";

import { Device } from "./device";
import { NotificationSwitchMode, DeviceType, WifiSignalLevel } from "./types";

export const isGreaterEqualMinVersion = function(minimal_version: string, current_version: string): boolean {
    if (minimal_version === undefined)
        minimal_version = "";
    if (current_version === undefined)
        current_version = "";

    minimal_version = minimal_version.replace(/\D+/g, "");
    current_version = current_version.replace(/\D+/g, "");

    if (minimal_version === "")
        return false;
    if (current_version === "")
        return false;

    let min_version = 0;
    let curr_version = 0;

    try {
        min_version = Number.parseInt(minimal_version);
    } catch (error) {
    }
    try {
        curr_version = Number.parseInt(current_version);
    } catch (error) {
    }

    if (curr_version === 0 || min_version === 0 || curr_version < min_version) {
        return false;
    }
    return true;
}

export const pad = function(num: number): string {
    const norm = Math.floor(Math.abs(num));
    return (norm < 10 ? "0" : "") + norm;
};

export const getTimezoneGMTString = function(): string {
    const tzo = -new Date().getTimezoneOffset();
    const dif = tzo >= 0 ? "+" : "-";
    return `GMT${dif}${pad(tzo / 60)}:${pad(tzo % 60)}`
}

export const getAbsoluteFilePath = function(device_type:number, channel: number, filename: string): string {
    if (device_type === DeviceType.FLOODLIGHT) {
        return `/mnt/data/Camera${String(channel).padStart(2,"0")}/${filename}.dat`;
    }
    return `/media/mmcblk0p1/Camera${String(channel).padStart(2,"0")}/${filename}.dat`;
}

export const isNotificationSwitchMode = function(value: number, mode: NotificationSwitchMode): boolean {
    if (value === 1)
        value = 240;
    return (value & mode) !== 0;
}

export const switchNotificationMode = function(currentValue: number, mode: NotificationSwitchMode, enable: boolean): number {
    let result = 0;
    if (!enable && currentValue === 1 /* ALL */) {
        currentValue = 240;
    }
    if (enable) {
        result = mode | currentValue;
    } else {
        result = ~mode & currentValue;
    }
    if (isNotificationSwitchMode(result, NotificationSwitchMode.SCHEDULE) && isNotificationSwitchMode(result, NotificationSwitchMode.APP) && isNotificationSwitchMode(result, NotificationSwitchMode.GEOFENCE) && isNotificationSwitchMode(result, NotificationSwitchMode.KEYPAD)) {
        result = 1; /* ALL */
    }
    return result;
}

export const calculateWifiSignalLevel = function(device: Device, rssi: number): WifiSignalLevel {
    if (device.isWiredDoorbell()) {
        if (rssi >= -65) {
            return WifiSignalLevel.FULL;
        }
        if (rssi >= -75) {
            return WifiSignalLevel.STRONG;
        }
        return rssi >= -80 ? WifiSignalLevel.NORMAL : WifiSignalLevel.WEAK;
    } else if (device.isCamera2Product()) {
        if (rssi >= 0) {
            return WifiSignalLevel.NO_SIGNAL;
        }
        if (rssi >= -65) {
            return WifiSignalLevel.FULL;
        }
        if (rssi >= -75) {
            return WifiSignalLevel.STRONG;
        }
        return rssi >= -85 ? WifiSignalLevel.NORMAL : WifiSignalLevel.WEAK;

    } else if (device.isFloodLight()) {
        if (rssi >= 0) {
            return WifiSignalLevel.NO_SIGNAL;
        }
        if (rssi >= -60) {
            return WifiSignalLevel.FULL;
        }
        if (rssi >= -70) {
            return WifiSignalLevel.STRONG;
        }
        return rssi >= -80 ? WifiSignalLevel.NORMAL : WifiSignalLevel.WEAK;

    } else if (device.isBatteryDoorbell()) {
        if (rssi >= -65) {
            return WifiSignalLevel.FULL;
        }
        if (rssi >= -75) {
            return WifiSignalLevel.STRONG;
        }
        return rssi >= -85 ? WifiSignalLevel.NORMAL : WifiSignalLevel.WEAK;

    } else {
        if (rssi >= 0) {
            return WifiSignalLevel.NO_SIGNAL;
        }
        if (rssi >= -65) {
            return WifiSignalLevel.FULL;
        }
        if (rssi >= -75) {
            return WifiSignalLevel.STRONG;
        }
        return rssi >= -85 ? WifiSignalLevel.NORMAL : WifiSignalLevel.WEAK;
    }
}

export const encryptPassword = (password: string, key: Buffer): string => {
    const cipher = createCipheriv("aes-256-cbc", key, key.slice(0, 16));
    return (
        cipher.update(password, "utf8", "base64") +
        cipher.final("base64")
    );
}

export const getBlocklist = function(directions: Array<number>): Array<number> {
    const result = [];
    for (let distance = 1; distance <= 5; distance++) {
        let i = 0;
        let j = 0;
        let k = 1;
        for (const directionDistance of directions) {
            if (directionDistance >= distance) {
                j += k;
            }
            k <<= 1;
        }
        if (j == 0) {
            i = 65535;
        } else if (!(j == 255 || j == 65535)) {
            i = (j ^ 255) + 65280;
        }
        result.push(65535 & i);
    }
    return result;
}


export const getDistances = function(blocklist: Array<number>): Array<number> {
    const result = [3, 3, 3, 3, 3, 3, 3, 3];
    let calcDistance = 0;
    for (const blockElement of blocklist) {
        let valueOf = blockElement ^ 65535;
        calcDistance++;
        if (valueOf !== 0) {
            for (let i = 0; i < result.length; i++) {
                const intValue = valueOf & 1;
                if (intValue > 0) {
                    result[i] = calcDistance;
                }
                valueOf = valueOf >> 1;
            }
        }
    }
    return result;
}

export interface EufyTimezone {
    timeZoneName: string;
    timeId: string;
    timeSn: string;
    timeZoneGMT: string;
}

export const timeZoneData: Array<EufyTimezone> =
[
    {
        "timeZoneName": "Abidjan",
        "timeId": "Africa/Abidjan",
        "timeSn": "1000",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Accra",
        "timeId": "Africa/Accra",
        "timeSn": "1001",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Addis Ababa",
        "timeId": "Africa/Addis_Ababa",
        "timeSn": "1002",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Algiers",
        "timeId": "Africa/Algiers",
        "timeSn": "1003",
        "timeZoneGMT": "CET-1"
    },
    {
        "timeZoneName": "Asmara",
        "timeId": "Africa/Asmara",
        "timeSn": "1004",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Bamako",
        "timeId": "Africa/Bamako",
        "timeSn": "1005",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Bangui",
        "timeId": "Africa/Bangui",
        "timeSn": "1006",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Banjul",
        "timeId": "Africa/Banjul",
        "timeSn": "1007",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Bissau",
        "timeId": "Africa/Bissau",
        "timeSn": "1008",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Blantyre",
        "timeId": "Africa/Blantyre",
        "timeSn": "1009",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Brazzaville",
        "timeId": "Africa/Brazzaville",
        "timeSn": "1010",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Bujumbura",
        "timeId": "Africa/Bujumbura",
        "timeSn": "1011",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Cairo",
        "timeId": "Africa/Cairo",
        "timeSn": "1012",
        "timeZoneGMT": "EET-2"
    },
    {
        "timeZoneName": "Casablanca",
        "timeId": "Africa/Casablanca",
        "timeSn": "1013",
        "timeZoneGMT": "\u003c+01\u003e-1"
    },
    {
        "timeZoneName": "Ceuta",
        "timeId": "Africa/Ceuta",
        "timeSn": "1014",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Conakry",
        "timeId": "Africa/Conakry",
        "timeSn": "1015",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Dakar",
        "timeId": "Africa/Dakar",
        "timeSn": "1016",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Dar es Salaam",
        "timeId": "Africa/Dar_es_Salaam",
        "timeSn": "1017",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Djibouti",
        "timeId": "Africa/Djibouti",
        "timeSn": "1018",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Douala",
        "timeId": "Africa/Douala",
        "timeSn": "1019",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "El Aaiun",
        "timeId": "Africa/El_Aaiun",
        "timeSn": "1020",
        "timeZoneGMT": "\u003c+01\u003e-1"
    },
    {
        "timeZoneName": "Freetown",
        "timeId": "Africa/Freetown",
        "timeSn": "1021",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Gaborone",
        "timeId": "Africa/Gaborone",
        "timeSn": "1022",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Harare",
        "timeId": "Africa/Harare",
        "timeSn": "1023",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Johannesburg",
        "timeId": "Africa/Johannesburg",
        "timeSn": "1024",
        "timeZoneGMT": "SAST-2"
    },
    {
        "timeZoneName": "Juba",
        "timeId": "Africa/Juba",
        "timeSn": "1025",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Kampala",
        "timeId": "Africa/Kampala",
        "timeSn": "1026",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Khartoum",
        "timeId": "Africa/Khartoum",
        "timeSn": "1027",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Kigali",
        "timeId": "Africa/Kigali",
        "timeSn": "1028",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Kinshasa",
        "timeId": "Africa/Kinshasa",
        "timeSn": "1029",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Lagos",
        "timeId": "Africa/Lagos",
        "timeSn": "1030",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Libreville",
        "timeId": "Africa/Libreville",
        "timeSn": "1031",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Lome",
        "timeId": "Africa/Lome",
        "timeSn": "1032",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Luanda",
        "timeId": "Africa/Luanda",
        "timeSn": "1033",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Lubumbashi",
        "timeId": "Africa/Lubumbashi",
        "timeSn": "1034",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Lusaka",
        "timeId": "Africa/Lusaka",
        "timeSn": "1035",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Malabo",
        "timeId": "Africa/Malabo",
        "timeSn": "1036",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Maputo",
        "timeId": "Africa/Maputo",
        "timeSn": "1037",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Maseru",
        "timeId": "Africa/Maseru",
        "timeSn": "1038",
        "timeZoneGMT": "SAST-2"
    },
    {
        "timeZoneName": "Mbabane",
        "timeId": "Africa/Mbabane",
        "timeSn": "1039",
        "timeZoneGMT": "SAST-2"
    },
    {
        "timeZoneName": "Mogadishu",
        "timeId": "Africa/Mogadishu",
        "timeSn": "1040",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Monrovia",
        "timeId": "Africa/Monrovia",
        "timeSn": "1041",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Nairobi",
        "timeId": "Africa/Nairobi",
        "timeSn": "1042",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Ndjamena",
        "timeId": "Africa/Ndjamena",
        "timeSn": "1043",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Niamey",
        "timeId": "Africa/Niamey",
        "timeSn": "1044",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Nouakchott",
        "timeId": "Africa/Nouakchott",
        "timeSn": "1045",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Ouagadougou",
        "timeId": "Africa/Ouagadougou",
        "timeSn": "1046",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Porto-Novo",
        "timeId": "Africa/Porto-Novo",
        "timeSn": "1047",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Saint Thomas",
        "timeId": "Africa/Sao_Tome",
        "timeSn": "1048",
        "timeZoneGMT": "WAT-1"
    },
    {
        "timeZoneName": "Timbuktu",
        "timeId": "Africa/Timbuktu",
        "timeSn": "1049",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Tripoli",
        "timeId": "Africa/Tripoli",
        "timeSn": "1050",
        "timeZoneGMT": "EET-2"
    },
    {
        "timeZoneName": "Tunis",
        "timeId": "Africa/Tunis",
        "timeSn": "1051",
        "timeZoneGMT": "CET-1"
    },
    {
        "timeZoneName": "Windhoek",
        "timeId": "Africa/Windhoek",
        "timeSn": "1052",
        "timeZoneGMT": "CAT-2"
    },
    {
        "timeZoneName": "Adak",
        "timeId": "America/Adak",
        "timeSn": "1053",
        "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Anchorage",
        "timeId": "America/Anchorage",
        "timeSn": "1054",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Anguilla",
        "timeId": "America/Anguilla",
        "timeSn": "1055",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Antigua",
        "timeId": "America/Antigua",
        "timeSn": "1056",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Araguaina",
        "timeId": "America/Araguaina",
        "timeSn": "1057",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Buenos Aires",
        "timeId": "America/Argentina/Buenos_Aires",
        "timeSn": "1058",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Catamarca",
        "timeId": "America/Argentina/Catamarca",
        "timeSn": "1059",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "ComodRivadavia",
        "timeId": "America/Argentina/ComodRivadavia",
        "timeSn": "1060",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Cordoba",
        "timeId": "America/Argentina/Cordoba",
        "timeSn": "1061",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Jujuy",
        "timeId": "America/Argentina/Jujuy",
        "timeSn": "1062",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "La Rioja",
        "timeId": "America/Argentina/La_Rioja",
        "timeSn": "1063",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Mendoza",
        "timeId": "America/Argentina/Mendoza",
        "timeSn": "1064",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Rio Gallegos",
        "timeId": "America/Argentina/Rio_Gallegos",
        "timeSn": "1065",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Salta",
        "timeId": "America/Argentina/Salta",
        "timeSn": "1066",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "San Juan",
        "timeId": "America/Argentina/San_Juan",
        "timeSn": "1067",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "San Luis",
        "timeId": "America/Argentina/San_Luis",
        "timeSn": "1068",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Tucuman",
        "timeId": "America/Argentina/Tucuman",
        "timeSn": "1069",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Ushuaia",
        "timeId": "America/Argentina/Ushuaia",
        "timeSn": "1070",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Aruba",
        "timeId": "America/Aruba",
        "timeSn": "1071",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Asuncion",
        "timeId": "America/Asuncion",
        "timeSn": "1072",
        "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M10.1.0/0,M3.4.0/0"
    },
    {
        "timeZoneName": "Atikokan",
        "timeId": "America/Atikokan",
        "timeSn": "1073",
        "timeZoneGMT": "EST5"
    },
    {
        "timeZoneName": "Atka",
        "timeId": "America/Atka",
        "timeSn": "1074",
        "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Bahia",
        "timeId": "America/Bahia",
        "timeSn": "1075",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Bahia Banderas",
        "timeId": "America/Bahia_Banderas",
        "timeSn": "1076",
        "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Barbados",
        "timeId": "America/Barbados",
        "timeSn": "1077",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Belem",
        "timeId": "America/Belem",
        "timeSn": "1078",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Belize",
        "timeId": "America/Belize",
        "timeSn": "1079",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Blanc-Sablon",
        "timeId": "America/Blanc-Sablon",
        "timeSn": "1080",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Boa Vista",
        "timeId": "America/Boa_Vista",
        "timeSn": "1081",
        "timeZoneGMT": "\u003c-04\u003e4"
    },
    {
        "timeZoneName": "Bogota",
        "timeId": "America/Bogota",
        "timeSn": "1082",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "Boise",
        "timeId": "America/Boise",
        "timeSn": "1083",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Cambridge Bay",
        "timeId": "America/Cambridge_Bay",
        "timeSn": "1084",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Campo Grande",
        "timeId": "America/Campo_Grande",
        "timeSn": "1085",
        "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M11.1.0/0,M2.3.0/0"
    },
    {
        "timeZoneName": "Cancun",
        "timeId": "America/Cancun",
        "timeSn": "1086",
        "timeZoneGMT": "EST5"
    },
    {
        "timeZoneName": "Caracas",
        "timeId": "America/Caracas",
        "timeSn": "1087",
        "timeZoneGMT": "\u003c-04\u003e4"
    },
    {
        "timeZoneName": "Cayenne",
        "timeId": "America/Cayenne",
        "timeSn": "1088",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Cayman",
        "timeId": "America/Cayman",
        "timeSn": "1089",
        "timeZoneGMT": "EST5"
    },
    {
        "timeZoneName": "Chicago",
        "timeId": "America/Chicago",
        "timeSn": "1090",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Chihuahua",
        "timeId": "America/Chihuahua",
        "timeSn": "1091",
        "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Costa Rica",
        "timeId": "America/Costa_Rica",
        "timeSn": "1092",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Creston",
        "timeId": "America/Creston",
        "timeSn": "1093",
        "timeZoneGMT": "MST7"
    },
    {
        "timeZoneName": "Cuiaba",
        "timeId": "America/Cuiaba",
        "timeSn": "1094",
        "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M11.1.0/0,M2.3.0/0"
    },
    {
        "timeZoneName": "Curacao",
        "timeId": "America/Curacao",
        "timeSn": "1095",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Danmarkshavn",
        "timeId": "America/Danmarkshavn",
        "timeSn": "1096",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Dawson",
        "timeId": "America/Dawson",
        "timeSn": "1097",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Dawson Creek",
        "timeId": "America/Dawson_Creek",
        "timeSn": "1098",
        "timeZoneGMT": "MST7"
    },
    {
        "timeZoneName": "Denver",
        "timeId": "America/Denver",
        "timeSn": "1099",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Detroit",
        "timeId": "America/Detroit",
        "timeSn": "1100",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Dominica",
        "timeId": "America/Dominica",
        "timeSn": "1101",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Edmonton",
        "timeId": "America/Edmonton",
        "timeSn": "1102",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Eirunepe",
        "timeId": "America/Eirunepe",
        "timeSn": "1103",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "El Salvador",
        "timeId": "America/El_Salvador",
        "timeSn": "1104",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Ensenada",
        "timeId": "America/Ensenada",
        "timeSn": "1105",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Fort Nelson",
        "timeId": "America/Fort_Nelson",
        "timeSn": "1106",
        "timeZoneGMT": "MST7"
    },
    {
        "timeZoneName": "Fort Wayne",
        "timeId": "America/Fort_Wayne",
        "timeSn": "1107",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Fortaleza",
        "timeId": "America/Fortaleza",
        "timeSn": "1108",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Glace Bay",
        "timeId": "America/Glace_Bay",
        "timeSn": "1109",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Nuuk",
        "timeId": "America/Godthab",
        "timeSn": "1110",
        "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M3.5.0,M10.5.0"
    },
    {
        "timeZoneName": "Goose Bay",
        "timeId": "America/Goose_Bay",
        "timeSn": "1111",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Grand Turk",
        "timeId": "America/Grand_Turk",
        "timeSn": "1112",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Grenada",
        "timeId": "America/Grenada",
        "timeSn": "1113",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Guadeloupe",
        "timeId": "America/Guadeloupe",
        "timeSn": "1114",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Guatemala",
        "timeId": "America/Guatemala",
        "timeSn": "1115",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Guayaquil",
        "timeId": "America/Guayaquil",
        "timeSn": "1116",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "Guyana",
        "timeId": "America/Guyana",
        "timeSn": "1117",
        "timeZoneGMT": "\u003c-04\u003e4"
    },
    {
        "timeZoneName": "Halifax",
        "timeId": "America/Halifax",
        "timeSn": "1118",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Havana",
        "timeId": "America/Havana",
        "timeSn": "1119",
        "timeZoneGMT": "CST5CDT,M3.2.0/0,M11.1.0/1"
    },
    {
        "timeZoneName": "Hermosillo",
        "timeId": "America/Hermosillo",
        "timeSn": "1120",
        "timeZoneGMT": "MST7"
    },
    {
        "timeZoneName": "Indianapolis",
        "timeId": "America/Indiana/Indianapolis",
        "timeSn": "1121",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Knox, Indiana",
        "timeId": "America/Indiana/Knox",
        "timeSn": "1122",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Marengo, Indiana",
        "timeId": "America/Indiana/Marengo",
        "timeSn": "1123",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Petersburg, Indiana",
        "timeId": "America/Indiana/Petersburg",
        "timeSn": "1124",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Tell City, Indiana",
        "timeId": "America/Indiana/Tell_City",
        "timeSn": "1125",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Vevay, Indiana",
        "timeId": "America/Indiana/Vevay",
        "timeSn": "1126",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Vincennes, Indiana",
        "timeId": "America/Indiana/Vincennes",
        "timeSn": "1127",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Winamac, Indiana",
        "timeId": "America/Indiana/Winamac",
        "timeSn": "1128",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Inuvik",
        "timeId": "America/Inuvik",
        "timeSn": "1129",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Iqaluit",
        "timeId": "America/Iqaluit",
        "timeSn": "1130",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Jamaica",
        "timeId": "America/Jamaica",
        "timeSn": "1131",
        "timeZoneGMT": "EST5"
    },
    {
        "timeZoneName": "Juneau",
        "timeId": "America/Juneau",
        "timeSn": "1132",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Louisville",
        "timeId": "America/Kentucky/Louisville",
        "timeSn": "1133",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Monticello, Kentucky",
        "timeId": "America/Kentucky/Monticello",
        "timeSn": "1134",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Knox IN",
        "timeId": "America/Knox_IN",
        "timeSn": "1135",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Kralendijk",
        "timeId": "America/Kralendijk",
        "timeSn": "1136",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "La Paz",
        "timeId": "America/La_Paz",
        "timeSn": "1137",
        "timeZoneGMT": "\u003c-04\u003e4"
    },
    {
        "timeZoneName": "Lima",
        "timeId": "America/Lima",
        "timeSn": "1138",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "Los Angeles",
        "timeId": "America/Los_Angeles",
        "timeSn": "1139",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Lower Prince’s Quarter",
        "timeId": "America/Lower_Princes",
        "timeSn": "1140",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Maceio",
        "timeId": "America/Maceio",
        "timeSn": "1141",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Managua",
        "timeId": "America/Managua",
        "timeSn": "1142",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Manaus",
        "timeId": "America/Manaus",
        "timeSn": "1143",
        "timeZoneGMT": "\u003c-04\u003e4"
    },
    {
        "timeZoneName": "Marigot",
        "timeId": "America/Marigot",
        "timeSn": "1144",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Martinique",
        "timeId": "America/Martinique",
        "timeSn": "1145",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Matamoros",
        "timeId": "America/Matamoros",
        "timeSn": "1146",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Mazatlan",
        "timeId": "America/Mazatlan",
        "timeSn": "1147",
        "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Menominee",
        "timeId": "America/Menominee",
        "timeSn": "1148",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Merida",
        "timeId": "America/Merida",
        "timeSn": "1149",
        "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Metlakatla",
        "timeId": "America/Metlakatla",
        "timeSn": "1150",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Mexico City",
        "timeId": "America/Mexico_City",
        "timeSn": "1151",
        "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Miquelon",
        "timeId": "America/Miquelon",
        "timeSn": "1152",
        "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Moncton",
        "timeId": "America/Moncton",
        "timeSn": "1153",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Monterrey",
        "timeId": "America/Monterrey",
        "timeSn": "1154",
        "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Montevideo",
        "timeId": "America/Montevideo",
        "timeSn": "1155",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Montreal",
        "timeId": "America/Montreal",
        "timeSn": "1156",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Montserrat",
        "timeId": "America/Montserrat",
        "timeSn": "1157",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Nassau",
        "timeId": "America/Nassau",
        "timeSn": "1158",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "New York",
        "timeId": "America/New_York",
        "timeSn": "1159",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Nipigon",
        "timeId": "America/Nipigon",
        "timeSn": "1160",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Nome",
        "timeId": "America/Nome",
        "timeSn": "1161",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Noronha",
        "timeId": "America/Noronha",
        "timeSn": "1162",
        "timeZoneGMT": "\u003c-02\u003e2"
    },
    {
        "timeZoneName": "Beulah, North Dakota",
        "timeId": "America/North_Dakota/Beulah",
        "timeSn": "1163",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Center, North Dakota",
        "timeId": "America/North_Dakota/Center",
        "timeSn": "1164",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "New Salem, North Dakota",
        "timeId": "America/North_Dakota/New_Salem",
        "timeSn": "1165",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Ojinaga",
        "timeId": "America/Ojinaga",
        "timeSn": "1166",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Panama",
        "timeId": "America/Panama",
        "timeSn": "1167",
        "timeZoneGMT": "EST5"
    },
    {
        "timeZoneName": "Pangnirtung",
        "timeId": "America/Pangnirtung",
        "timeSn": "1168",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Paramaribo",
        "timeId": "America/Paramaribo",
        "timeSn": "1169",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Phoenix",
        "timeId": "America/Phoenix",
        "timeSn": "1170",
        "timeZoneGMT": "MST7"
    },
    {
        "timeZoneName": "Port-au-Prince",
        "timeId": "America/Port-au-Prince",
        "timeSn": "1171",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Port of Spain",
        "timeId": "America/Port_of_Spain",
        "timeSn": "1172",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Porto Acre",
        "timeId": "America/Porto_Acre",
        "timeSn": "1173",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "Porto Velho",
        "timeId": "America/Porto_Velho",
        "timeSn": "1174",
        "timeZoneGMT": "\u003c-04\u003e4"
    },
    {
        "timeZoneName": "Puerto Rico",
        "timeId": "America/Puerto_Rico",
        "timeSn": "1175",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Punta Arenas",
        "timeId": "America/Punta_Arenas",
        "timeSn": "1176",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Rainy River",
        "timeId": "America/Rainy_River",
        "timeSn": "1177",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Rankin Inlet",
        "timeId": "America/Rankin_Inlet",
        "timeSn": "1178",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Recife",
        "timeId": "America/Recife",
        "timeSn": "1179",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Regina",
        "timeId": "America/Regina",
        "timeSn": "1180",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Resolute",
        "timeId": "America/Resolute",
        "timeSn": "1181",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Rio Branco",
        "timeId": "America/Rio_Branco",
        "timeSn": "1182",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "Rosario",
        "timeId": "America/Rosario",
        "timeSn": "1183",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Santa Isabel",
        "timeId": "America/Santa_Isabel",
        "timeSn": "1184",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Santarem",
        "timeId": "America/Santarem",
        "timeSn": "1185",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Santiago",
        "timeId": "America/Santiago",
        "timeSn": "1186",
        "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M9.1.6/24,M4.1.6/24"
    },
    {
        "timeZoneName": "Santo Domingo",
        "timeId": "America/Santo_Domingo",
        "timeSn": "1187",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Sao Paulo",
        "timeId": "America/Sao_Paulo",
        "timeSn": "1188",
        "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M11.1.0/0,M2.3.0/0"
    },
    {
        "timeZoneName": "Ittoqqortoormiit",
        "timeId": "America/Scoresbysund",
        "timeSn": "1189",
        "timeZoneGMT": "\u003c-01\u003e1\u003c+00\u003e,M3.5.0/0,M10.5.0/1"
    },
    {
        "timeZoneName": "Shiprock",
        "timeId": "America/Shiprock",
        "timeSn": "1190",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Sitka",
        "timeId": "America/Sitka",
        "timeSn": "1191",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "St. Barthelemy",
        "timeId": "America/St_Barthelemy",
        "timeSn": "1192",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "St. John’s",
        "timeId": "America/St_Johns",
        "timeSn": "1193",
        "timeZoneGMT": "NST3:30NDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "St. Kitts",
        "timeId": "America/St_Kitts",
        "timeSn": "1194",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "St. Lucia",
        "timeId": "America/St_Lucia",
        "timeSn": "1195",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "St. Thomas",
        "timeId": "America/St_Thomas",
        "timeSn": "1196",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "St. Vincent",
        "timeId": "America/St_Vincent",
        "timeSn": "1197",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Swift Current",
        "timeId": "America/Swift_Current",
        "timeSn": "1198",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Tegucigalpa",
        "timeId": "America/Tegucigalpa",
        "timeSn": "1199",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Thule",
        "timeId": "America/Thule",
        "timeSn": "1200",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Thunder Bay",
        "timeId": "America/Thunder_Bay",
        "timeSn": "1201",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Tijuana",
        "timeId": "America/Tijuana",
        "timeSn": "1202",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Toronto",
        "timeId": "America/Toronto",
        "timeSn": "1203",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Tortola",
        "timeId": "America/Tortola",
        "timeSn": "1204",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Vancouver",
        "timeId": "America/Vancouver",
        "timeSn": "1205",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Virgin",
        "timeId": "America/Virgin",
        "timeSn": "1206",
        "timeZoneGMT": "AST4"
    },
    {
        "timeZoneName": "Whitehorse",
        "timeId": "America/Whitehorse",
        "timeSn": "1207",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Winnipeg",
        "timeId": "America/Winnipeg",
        "timeSn": "1208",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Yakutat",
        "timeId": "America/Yakutat",
        "timeSn": "1209",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Yellowknife",
        "timeId": "America/Yellowknife",
        "timeSn": "1210",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Casey",
        "timeId": "Antarctica/Casey",
        "timeSn": "1211",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Davis",
        "timeId": "Antarctica/Davis",
        "timeSn": "1212",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Dumont d’Urville",
        "timeId": "Antarctica/DumontDUrville",
        "timeSn": "1213",
        "timeZoneGMT": "\u003c+10\u003e-10"
    },
    {
        "timeZoneName": "Macquarie",
        "timeId": "Antarctica/Macquarie",
        "timeSn": "1214",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Mawson",
        "timeId": "Antarctica/Mawson",
        "timeSn": "1215",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "McMurdo",
        "timeId": "Antarctica/McMurdo",
        "timeSn": "1216",
        "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Palmer",
        "timeId": "Antarctica/Palmer",
        "timeSn": "1217",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "Rothera",
        "timeId": "Antarctica/Rothera",
        "timeSn": "1218",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "South Pole",
        "timeId": "Antarctica/South_Pole",
        "timeSn": "1219",
        "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Syowa",
        "timeId": "Antarctica/Syowa",
        "timeSn": "1220",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Troll",
        "timeId": "Antarctica/Troll",
        "timeSn": "1221",
        "timeZoneGMT": "\u003c+00\u003e0\u003c+02\u003e-2,M3.5.0/1,M10.5.0/3"
    },
    {
        "timeZoneName": "Vostok",
        "timeId": "Antarctica/Vostok",
        "timeSn": "1222",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Longyearbyen",
        "timeId": "Arctic/Longyearbyen",
        "timeSn": "1223",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Aden",
        "timeId": "Asia/Aden",
        "timeSn": "1224",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Almaty",
        "timeId": "Asia/Almaty",
        "timeSn": "1225",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Amman",
        "timeId": "Asia/Amman",
        "timeSn": "1226",
        "timeZoneGMT": "EET-2EEST,M3.5.4/24,M10.5.5/1"
    },
    {
        "timeZoneName": "Anadyr",
        "timeId": "Asia/Anadyr",
        "timeSn": "1227",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Aqtau",
        "timeId": "Asia/Aqtau",
        "timeSn": "1228",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Aqtobe",
        "timeId": "Asia/Aqtobe",
        "timeSn": "1229",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Ashgabat",
        "timeId": "Asia/Ashgabat",
        "timeSn": "1230",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Ashkhabad",
        "timeId": "Asia/Ashkhabad",
        "timeSn": "1231",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Atyrau",
        "timeId": "Asia/Atyrau",
        "timeSn": "1232",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Baghdad",
        "timeId": "Asia/Baghdad",
        "timeSn": "1233",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Bahrain",
        "timeId": "Asia/Bahrain",
        "timeSn": "1234",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Baku",
        "timeId": "Asia/Baku",
        "timeSn": "1235",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Bangkok",
        "timeId": "Asia/Bangkok",
        "timeSn": "1236",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Barnaul",
        "timeId": "Asia/Barnaul",
        "timeSn": "1237",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Beirut",
        "timeId": "Asia/Beirut",
        "timeSn": "1238",
        "timeZoneGMT": "EET-2EEST,M3.5.0/0,M10.5.0/0"
    },
    {
        "timeZoneName": "Bishkek",
        "timeId": "Asia/Bishkek",
        "timeSn": "1239",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Brunei",
        "timeId": "Asia/Brunei",
        "timeSn": "1240",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Kolkata",
        "timeId": "Asia/Calcutta",
        "timeSn": "1241",
        "timeZoneGMT": "IST-5:30"
    },
    {
        "timeZoneName": "Chita",
        "timeId": "Asia/Chita",
        "timeSn": "1242",
        "timeZoneGMT": "\u003c+09\u003e-9"
    },
    {
        "timeZoneName": "Choibalsan",
        "timeId": "Asia/Choibalsan",
        "timeSn": "1243",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Chongqing",
        "timeId": "Asia/Chongqing",
        "timeSn": "1244",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Chungking",
        "timeId": "Asia/Chungking",
        "timeSn": "1245",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Colombo",
        "timeId": "Asia/Colombo",
        "timeSn": "1246",
        "timeZoneGMT": "\u003c+0530\u003e-5:30"
    },
    {
        "timeZoneName": "Dacca",
        "timeId": "Asia/Dacca",
        "timeSn": "1247",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Damascus",
        "timeId": "Asia/Damascus",
        "timeSn": "1248",
        "timeZoneGMT": "EET-2EEST,M3.5.5/0,M10.5.5/0"
    },
    {
        "timeZoneName": "Dhaka",
        "timeId": "Asia/Dhaka",
        "timeSn": "1249",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Dili",
        "timeId": "Asia/Dili",
        "timeSn": "1250",
        "timeZoneGMT": "\u003c+09\u003e-9"
    },
    {
        "timeZoneName": "Dubai",
        "timeId": "Asia/Dubai",
        "timeSn": "1251",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Dushanbe",
        "timeId": "Asia/Dushanbe",
        "timeSn": "1252",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Famagusta",
        "timeId": "Asia/Famagusta",
        "timeSn": "1253",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Gaza",
        "timeId": "Asia/Gaza",
        "timeSn": "1254",
        "timeZoneGMT": "EET-2EEST,M3.4.6/1,M10.5.6/1"
    },
    {
        "timeZoneName": "Harbin",
        "timeId": "Asia/Harbin",
        "timeSn": "1255",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Hebron",
        "timeId": "Asia/Hebron",
        "timeSn": "1256",
        "timeZoneGMT": "EET-2EEST,M3.4.6/1,M10.5.6/1"
    },
    {
        "timeZoneName": "Ho Chi Minh",
        "timeId": "Asia/Ho_Chi_Minh",
        "timeSn": "1257",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Hong Kong",
        "timeId": "Asia/Hong_Kong",
        "timeSn": "1258",
        "timeZoneGMT": "HKT-8"
    },
    {
        "timeZoneName": "Hovd",
        "timeId": "Asia/Hovd",
        "timeSn": "1259",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Irkutsk",
        "timeId": "Asia/Irkutsk",
        "timeSn": "1260",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Istanbul",
        "timeId": "Asia/Istanbul",
        "timeSn": "1261",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Jakarta",
        "timeId": "Asia/Jakarta",
        "timeSn": "1262",
        "timeZoneGMT": "WIB-7"
    },
    {
        "timeZoneName": "Jayapura",
        "timeId": "Asia/Jayapura",
        "timeSn": "1263",
        "timeZoneGMT": "WIT-9"
    },
    {
        "timeZoneName": "Jerusalem",
        "timeId": "Asia/Jerusalem",
        "timeSn": "1264",
        "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0"
    },
    {
        "timeZoneName": "Kabul",
        "timeId": "Asia/Kabul",
        "timeSn": "1265",
        "timeZoneGMT": "\u003c+0430\u003e-4:30"
    },
    {
        "timeZoneName": "Kamchatka",
        "timeId": "Asia/Kamchatka",
        "timeSn": "1266",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Karachi",
        "timeId": "Asia/Karachi",
        "timeSn": "1267",
        "timeZoneGMT": "PKT-5"
    },
    {
        "timeZoneName": "Kashgar",
        "timeId": "Asia/Kashgar",
        "timeSn": "1268",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Kathmandu",
        "timeId": "Asia/Kathmandu",
        "timeSn": "1269",
        "timeZoneGMT": "\u003c+0545\u003e-5:45"
    },
    {
        "timeZoneName": "Khandyga",
        "timeId": "Asia/Khandyga",
        "timeSn": "1270",
        "timeZoneGMT": "\u003c+09\u003e-9"
    },
    {
        "timeZoneName": "Krasnoyarsk",
        "timeId": "Asia/Krasnoyarsk",
        "timeSn": "1271",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Kuala Lumpur",
        "timeId": "Asia/Kuala_Lumpur",
        "timeSn": "1272",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Kuching",
        "timeId": "Asia/Kuching",
        "timeSn": "1273",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Kuwait",
        "timeId": "Asia/Kuwait",
        "timeSn": "1274",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Macao",
        "timeId": "Asia/Macao",
        "timeSn": "1275",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Macau",
        "timeId": "Asia/Macau",
        "timeSn": "1276",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Magadan",
        "timeId": "Asia/Magadan",
        "timeSn": "1277",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Makassar",
        "timeId": "Asia/Makassar",
        "timeSn": "1278",
        "timeZoneGMT": "WITA-8"
    },
    {
        "timeZoneName": "Manila",
        "timeId": "Asia/Manila",
        "timeSn": "1279",
        "timeZoneGMT": "PST-8"
    },
    {
        "timeZoneName": "Muscat",
        "timeId": "Asia/Muscat",
        "timeSn": "1280",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Nicosia",
        "timeId": "Asia/Nicosia",
        "timeSn": "1281",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Novokuznetsk",
        "timeId": "Asia/Novokuznetsk",
        "timeSn": "1282",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Novosibirsk",
        "timeId": "Asia/Novosibirsk",
        "timeSn": "1283",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Omsk",
        "timeId": "Asia/Omsk",
        "timeSn": "1284",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Oral",
        "timeId": "Asia/Oral",
        "timeSn": "1285",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Phnom Penh",
        "timeId": "Asia/Phnom_Penh",
        "timeSn": "1286",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Pontianak",
        "timeId": "Asia/Pontianak",
        "timeSn": "1287",
        "timeZoneGMT": "WIB-7"
    },
    {
        "timeZoneName": "Pyongyang",
        "timeId": "Asia/Pyongyang",
        "timeSn": "1288",
        "timeZoneGMT": "KST-9"
    },
    {
        "timeZoneName": "Qatar",
        "timeId": "Asia/Qatar",
        "timeSn": "1289",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Qyzylorda",
        "timeId": "Asia/Qyzylorda",
        "timeSn": "1290",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Yangon",
        "timeId": "Asia/Rangoon",
        "timeSn": "1291",
        "timeZoneGMT": "\u003c+0630\u003e-6:30"
    },
    {
        "timeZoneName": "Riyadh",
        "timeId": "Asia/Riyadh",
        "timeSn": "1292",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Ho Chi Minh City",
        "timeId": "Asia/Saigon",
        "timeSn": "1293",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Sakhalin",
        "timeId": "Asia/Sakhalin",
        "timeSn": "1294",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Samarkand",
        "timeId": "Asia/Samarkand",
        "timeSn": "1295",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Seoul",
        "timeId": "Asia/Seoul",
        "timeSn": "1296",
        "timeZoneGMT": "KST-9"
    },
    {
        "timeZoneName": "Beijing",
        "timeId": "Asia/Shanghai",
        "timeSn": "1297",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Singapore",
        "timeId": "Asia/Singapore",
        "timeSn": "1298",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Srednekolymsk",
        "timeId": "Asia/Srednekolymsk",
        "timeSn": "1299",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Taipei",
        "timeId": "Asia/Taipei",
        "timeSn": "1300",
        "timeZoneGMT": "CST-8"
    },
    {
        "timeZoneName": "Tashkent",
        "timeId": "Asia/Tashkent",
        "timeSn": "1301",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Tbilisi",
        "timeId": "Asia/Tbilisi",
        "timeSn": "1302",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Tehran",
        "timeId": "Asia/Tehran",
        "timeSn": "1303",
        "timeZoneGMT": "\u003c+0330\u003e-3:30\u003c+0430\u003e,J80/0,J264/0"
    },
    {
        "timeZoneName": "Tel Aviv",
        "timeId": "Asia/Tel_Aviv",
        "timeSn": "1304",
        "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0"
    },
    {
        "timeZoneName": "Thimbu",
        "timeId": "Asia/Thimbu",
        "timeSn": "1305",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Thimphu",
        "timeId": "Asia/Thimphu",
        "timeSn": "1306",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Tokyo",
        "timeId": "Asia/Tokyo",
        "timeSn": "1307",
        "timeZoneGMT": "JST-9"
    },
    {
        "timeZoneName": "Tomsk",
        "timeId": "Asia/Tomsk",
        "timeSn": "1308",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Ujung Pandang",
        "timeId": "Asia/Ujung_Pandang",
        "timeSn": "1309",
        "timeZoneGMT": "WITA-8"
    },
    {
        "timeZoneName": "Ulaanbaatar",
        "timeId": "Asia/Ulaanbaatar",
        "timeSn": "1310",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Ulan Bator",
        "timeId": "Asia/Ulan_Bator",
        "timeSn": "1311",
        "timeZoneGMT": "\u003c+08\u003e-8"
    },
    {
        "timeZoneName": "Urumqi",
        "timeId": "Asia/Urumqi",
        "timeSn": "1312",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Ust-Nera",
        "timeId": "Asia/Ust-Nera",
        "timeSn": "1313",
        "timeZoneGMT": "\u003c+10\u003e-10"
    },
    {
        "timeZoneName": "Vientiane",
        "timeId": "Asia/Vientiane",
        "timeSn": "1314",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Vladivostok",
        "timeId": "Asia/Vladivostok",
        "timeSn": "1315",
        "timeZoneGMT": "\u003c+10\u003e-10"
    },
    {
        "timeZoneName": "Yakutsk",
        "timeId": "Asia/Yakutsk",
        "timeSn": "1316",
        "timeZoneGMT": "\u003c+09\u003e-9"
    },
    {
        "timeZoneName": "Yekaterinburg",
        "timeId": "Asia/Yekaterinburg",
        "timeSn": "1317",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Yerevan",
        "timeId": "Asia/Yerevan",
        "timeSn": "1318",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Azores",
        "timeId": "Atlantic/Azores",
        "timeSn": "1319",
        "timeZoneGMT": "\u003c-01\u003e1\u003c+00\u003e,M3.5.0/0,M10.5.0/1"
    },
    {
        "timeZoneName": "Bermuda",
        "timeId": "Atlantic/Bermuda",
        "timeSn": "1320",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Canary",
        "timeId": "Atlantic/Canary",
        "timeSn": "1321",
        "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Cape Verde",
        "timeId": "Atlantic/Cape_Verde",
        "timeSn": "1322",
        "timeZoneGMT": "\u003c-01\u003e1"
    },
    {
        "timeZoneName": "Faroe",
        "timeId": "Atlantic/Faeroe",
        "timeSn": "1323",
        "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Jan Mayen",
        "timeId": "Atlantic/Jan_Mayen",
        "timeSn": "1324",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Madeira",
        "timeId": "Atlantic/Madeira",
        "timeSn": "1325",
        "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Reykjavik",
        "timeId": "Atlantic/Reykjavik",
        "timeSn": "1326",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "South Georgia",
        "timeId": "Atlantic/South_Georgia",
        "timeSn": "1327",
        "timeZoneGMT": "\u003c-02\u003e2"
    },
    {
        "timeZoneName": "St. Helena",
        "timeId": "Atlantic/St_Helena",
        "timeSn": "1328",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Stanley",
        "timeId": "Atlantic/Stanley",
        "timeSn": "1329",
        "timeZoneGMT": "\u003c-03\u003e3"
    },
    {
        "timeZoneName": "ACT",
        "timeId": "Australia/ACT",
        "timeSn": "1330",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Adelaide",
        "timeId": "Australia/Adelaide",
        "timeSn": "1331",
        "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Brisbane",
        "timeId": "Australia/Brisbane",
        "timeSn": "1332",
        "timeZoneGMT": "AEST-10"
    },
    {
        "timeZoneName": "Broken Hill",
        "timeId": "Australia/Broken_Hill",
        "timeSn": "1333",
        "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Canberra",
        "timeId": "Australia/Canberra",
        "timeSn": "1334",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Currie",
        "timeId": "Australia/Currie",
        "timeSn": "1335",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Darwin",
        "timeId": "Australia/Darwin",
        "timeSn": "1336",
        "timeZoneGMT": "ACST-9:30"
    },
    {
        "timeZoneName": "Eucla",
        "timeId": "Australia/Eucla",
        "timeSn": "1337",
        "timeZoneGMT": "\u003c+0845\u003e-8:45"
    },
    {
        "timeZoneName": "Hobart",
        "timeId": "Australia/Hobart",
        "timeSn": "1338",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "LHI",
        "timeId": "Australia/LHI",
        "timeSn": "1339",
        "timeZoneGMT": "\u003c+1030\u003e-10:30\u003c+11\u003e-11,M10.1.0,M4.1.0"
    },
    {
        "timeZoneName": "Lindeman",
        "timeId": "Australia/Lindeman",
        "timeSn": "1340",
        "timeZoneGMT": "AEST-10"
    },
    {
        "timeZoneName": "Lord Howe",
        "timeId": "Australia/Lord_Howe",
        "timeSn": "1341",
        "timeZoneGMT": "\u003c+1030\u003e-10:30\u003c+11\u003e-11,M10.1.0,M4.1.0"
    },
    {
        "timeZoneName": "Melbourne",
        "timeId": "Australia/Melbourne",
        "timeSn": "1342",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "NSW",
        "timeId": "Australia/NSW",
        "timeSn": "1343",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "North",
        "timeId": "Australia/North",
        "timeSn": "1344",
        "timeZoneGMT": "ACST-9:30"
    },
    {
        "timeZoneName": "Perth",
        "timeId": "Australia/Perth",
        "timeSn": "1345",
        "timeZoneGMT": "AWST-8"
    },
    {
        "timeZoneName": "Queensland",
        "timeId": "Australia/Queensland",
        "timeSn": "1346",
        "timeZoneGMT": "AEST-10"
    },
    {
        "timeZoneName": "South",
        "timeId": "Australia/South",
        "timeSn": "1347",
        "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Sydney",
        "timeId": "Australia/Sydney",
        "timeSn": "1348",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Tasmania",
        "timeId": "Australia/Tasmania",
        "timeSn": "1349",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Victoria",
        "timeId": "Australia/Victoria",
        "timeSn": "1350",
        "timeZoneGMT": "AEST-10AEDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "West",
        "timeId": "Australia/West",
        "timeSn": "1351",
        "timeZoneGMT": "AWST-8"
    },
    {
        "timeZoneName": "Yancowinna",
        "timeId": "Australia/Yancowinna",
        "timeSn": "1352",
        "timeZoneGMT": "ACST-9:30ACDT,M10.1.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Acre",
        "timeId": "Brazil/Acre",
        "timeSn": "1353",
        "timeZoneGMT": "\u003c-05\u003e5"
    },
    {
        "timeZoneName": "DeNoronha",
        "timeId": "Brazil/DeNoronha",
        "timeSn": "1354",
        "timeZoneGMT": "\u003c-02\u003e2"
    },
    {
        "timeZoneName": "East",
        "timeId": "Brazil/East",
        "timeSn": "1355",
        "timeZoneGMT": "\u003c-03\u003e3\u003c-02\u003e,M11.1.0/0,M2.3.0/0"
    },
    {
        "timeZoneName": "Atlantic",
        "timeId": "Canada/Atlantic",
        "timeSn": "1356",
        "timeZoneGMT": "AST4ADT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Central",
        "timeId": "Canada/Central",
        "timeSn": "1357",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Eastern",
        "timeId": "Canada/Eastern",
        "timeSn": "1358",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Mountain",
        "timeId": "Canada/Mountain",
        "timeSn": "1359",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Newfoundland",
        "timeId": "Canada/Newfoundland",
        "timeSn": "1360",
        "timeZoneGMT": "NST3:30NDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Pacific",
        "timeId": "Canada/Pacific",
        "timeSn": "1361",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Saskatchewan",
        "timeId": "Canada/Saskatchewan",
        "timeSn": "1362",
        "timeZoneGMT": "CST6"
    },
    {
        "timeZoneName": "Yukon",
        "timeId": "Canada/Yukon",
        "timeSn": "1363",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Continental",
        "timeId": "Chile/Continental",
        "timeSn": "1364",
        "timeZoneGMT": "\u003c-04\u003e4\u003c-03\u003e,M9.1.6/24,M4.1.6/24"
    },
    {
        "timeZoneName": "EasterIsland",
        "timeId": "Chile/EasterIsland",
        "timeSn": "1365",
        "timeZoneGMT": "\u003c-06\u003e6\u003c-05\u003e,M9.1.6/22,M4.1.6/22"
    },
    {
        "timeZoneName": "Cuba",
        "timeId": "Cuba",
        "timeSn": "1366",
        "timeZoneGMT": "CST5CDT,M3.2.0/0,M11.1.0/1"
    },
    {
        "timeZoneName": "Egypt",
        "timeId": "Egypt",
        "timeSn": "1367",
        "timeZoneGMT": "EET-2"
    },
    {
        "timeZoneName": "Eire",
        "timeId": "Eire",
        "timeSn": "1368",
        "timeZoneGMT": "IST-1GMT0,M10.5.0,M3.5.0/1"
    },
    {
        "timeZoneName": "Amsterdam",
        "timeId": "Europe/Amsterdam",
        "timeSn": "1369",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Andorra",
        "timeId": "Europe/Andorra",
        "timeSn": "1370",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Astrakhan",
        "timeId": "Europe/Astrakhan",
        "timeSn": "1371",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Athens",
        "timeId": "Europe/Athens",
        "timeSn": "1372",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Belfast",
        "timeId": "Europe/Belfast",
        "timeSn": "1373",
        "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Belgrade",
        "timeId": "Europe/Belgrade",
        "timeSn": "1374",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Berlin",
        "timeId": "Europe/Berlin",
        "timeSn": "1375",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Bratislava",
        "timeId": "Europe/Bratislava",
        "timeSn": "1376",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Brussels",
        "timeId": "Europe/Brussels",
        "timeSn": "1377",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Bucharest",
        "timeId": "Europe/Bucharest",
        "timeSn": "1378",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Budapest",
        "timeId": "Europe/Budapest",
        "timeSn": "1379",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Busingen",
        "timeId": "Europe/Busingen",
        "timeSn": "1380",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Chisinau",
        "timeId": "Europe/Chisinau",
        "timeSn": "1381",
        "timeZoneGMT": "EET-2EEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Copenhagen",
        "timeId": "Europe/Copenhagen",
        "timeSn": "1382",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Dublin",
        "timeId": "Europe/Dublin",
        "timeSn": "1383",
        "timeZoneGMT": "GMT0IST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Gibraltar",
        "timeId": "Europe/Gibraltar",
        "timeSn": "1384",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Guernsey",
        "timeId": "Europe/Guernsey",
        "timeSn": "1385",
        "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Helsinki",
        "timeId": "Europe/Helsinki",
        "timeSn": "1386",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Isle of Man",
        "timeId": "Europe/Isle_of_Man",
        "timeSn": "1387",
        "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Jersey",
        "timeId": "Europe/Jersey",
        "timeSn": "1388",
        "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Kaliningrad",
        "timeId": "Europe/Kaliningrad",
        "timeSn": "1389",
        "timeZoneGMT": "EET-2"
    },
    {
        "timeZoneName": "Kiev",
        "timeId": "Europe/Kiev",
        "timeSn": "1390",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Kirov",
        "timeId": "Europe/Kirov",
        "timeSn": "1391",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Lisbon",
        "timeId": "Europe/Lisbon",
        "timeSn": "1392",
        "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Ljubljana",
        "timeId": "Europe/Ljubljana",
        "timeSn": "1393",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "London",
        "timeId": "Europe/London",
        "timeSn": "1394",
        "timeZoneGMT": "GMT0BST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Luxembourg",
        "timeId": "Europe/Luxembourg",
        "timeSn": "1395",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Madrid",
        "timeId": "Europe/Madrid",
        "timeSn": "1396",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Malta",
        "timeId": "Europe/Malta",
        "timeSn": "1397",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Mariehamn",
        "timeId": "Europe/Mariehamn",
        "timeSn": "1398",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Minsk",
        "timeId": "Europe/Minsk",
        "timeSn": "1399",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Monaco",
        "timeId": "Europe/Monaco",
        "timeSn": "1400",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Moscow",
        "timeId": "Europe/Moscow",
        "timeSn": "1401",
        "timeZoneGMT": "MSK-3"
    },
    {
        "timeZoneName": "Oslo",
        "timeId": "Europe/Oslo",
        "timeSn": "1402",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Paris",
        "timeId": "Europe/Paris",
        "timeSn": "1403",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Podgorica",
        "timeId": "Europe/Podgorica",
        "timeSn": "1404",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Prague",
        "timeId": "Europe/Prague",
        "timeSn": "1405",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Riga",
        "timeId": "Europe/Riga",
        "timeSn": "1406",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Rome",
        "timeId": "Europe/Rome",
        "timeSn": "1407",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Samara",
        "timeId": "Europe/Samara",
        "timeSn": "1408",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "San Marino",
        "timeId": "Europe/San_Marino",
        "timeSn": "1409",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Sarajevo",
        "timeId": "Europe/Sarajevo",
        "timeSn": "1410",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Saratov",
        "timeId": "Europe/Saratov",
        "timeSn": "1411",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Simferopol",
        "timeId": "Europe/Simferopol",
        "timeSn": "1412",
        "timeZoneGMT": "MSK-3"
    },
    {
        "timeZoneName": "Skopje",
        "timeId": "Europe/Skopje",
        "timeSn": "1413",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Sofia",
        "timeId": "Europe/Sofia",
        "timeSn": "1414",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Stockholm",
        "timeId": "Europe/Stockholm",
        "timeSn": "1415",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Tallinn",
        "timeId": "Europe/Tallinn",
        "timeSn": "1416",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Tirane",
        "timeId": "Europe/Tirane",
        "timeSn": "1417",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Tiraspol",
        "timeId": "Europe/Tiraspol",
        "timeSn": "1418",
        "timeZoneGMT": "EET-2EEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Ulyanovsk",
        "timeId": "Europe/Ulyanovsk",
        "timeSn": "1419",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Uzhhorod",
        "timeId": "Europe/Uzhgorod",
        "timeSn": "1420",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Vaduz",
        "timeId": "Europe/Vaduz",
        "timeSn": "1421",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Vatican",
        "timeId": "Europe/Vatican",
        "timeSn": "1422",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Vienna",
        "timeId": "Europe/Vienna",
        "timeSn": "1423",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Vilnius",
        "timeId": "Europe/Vilnius",
        "timeSn": "1424",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Volgograd",
        "timeId": "Europe/Volgograd",
        "timeSn": "1425",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Warsaw",
        "timeId": "Europe/Warsaw",
        "timeSn": "1426",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Zagreb",
        "timeId": "Europe/Zagreb",
        "timeSn": "1427",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Zaporozhye",
        "timeId": "Europe/Zaporozhye",
        "timeSn": "1428",
        "timeZoneGMT": "EET-2EEST,M3.5.0/3,M10.5.0/4"
    },
    {
        "timeZoneName": "Zurich",
        "timeId": "Europe/Zurich",
        "timeSn": "1429",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Greenwich",
        "timeId": "Greenwich",
        "timeSn": "1430",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Iceland",
        "timeId": "Iceland",
        "timeSn": "1431",
        "timeZoneGMT": "GMT0"
    },
    {
        "timeZoneName": "Antananarivo",
        "timeId": "Indian/Antananarivo",
        "timeSn": "1432",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Chagos",
        "timeId": "Indian/Chagos",
        "timeSn": "1433",
        "timeZoneGMT": "\u003c+06\u003e-6"
    },
    {
        "timeZoneName": "Christmas",
        "timeId": "Indian/Christmas",
        "timeSn": "1434",
        "timeZoneGMT": "\u003c+07\u003e-7"
    },
    {
        "timeZoneName": "Cocos",
        "timeId": "Indian/Cocos",
        "timeSn": "1435",
        "timeZoneGMT": "\u003c+0630\u003e-6:30"
    },
    {
        "timeZoneName": "Comoro",
        "timeId": "Indian/Comoro",
        "timeSn": "1436",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Kerguelen",
        "timeId": "Indian/Kerguelen",
        "timeSn": "1437",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Mahe",
        "timeId": "Indian/Mahe",
        "timeSn": "1438",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Maldives",
        "timeId": "Indian/Maldives",
        "timeSn": "1439",
        "timeZoneGMT": "\u003c+05\u003e-5"
    },
    {
        "timeZoneName": "Mauritius",
        "timeId": "Indian/Mauritius",
        "timeSn": "1440",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Mayotte",
        "timeId": "Indian/Mayotte",
        "timeSn": "1441",
        "timeZoneGMT": "EAT-3"
    },
    {
        "timeZoneName": "Reunion",
        "timeId": "Indian/Reunion",
        "timeSn": "1442",
        "timeZoneGMT": "\u003c+04\u003e-4"
    },
    {
        "timeZoneName": "Iran",
        "timeId": "Iran",
        "timeSn": "1443",
        "timeZoneGMT": "\u003c+0330\u003e-3:30\u003c+0430\u003e,J80/0,J264/0"
    },
    {
        "timeZoneName": "Israel",
        "timeId": "Israel",
        "timeSn": "1444",
        "timeZoneGMT": "IST-2IDT,M3.5.0,M10.5.0"
    },
    {
        "timeZoneName": "Japan",
        "timeId": "Japan",
        "timeSn": "1445",
        "timeZoneGMT": "JST-9"
    },
    {
        "timeZoneName": "Libya",
        "timeId": "Libya",
        "timeSn": "1446",
        "timeZoneGMT": "EET-2"
    },
    {
        "timeZoneName": "BajaNorte",
        "timeId": "Mexico/BajaNorte",
        "timeSn": "1447",
        "timeZoneGMT": "PST8PDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "BajaSur",
        "timeId": "Mexico/BajaSur",
        "timeSn": "1448",
        "timeZoneGMT": "MST7MDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "General",
        "timeId": "Mexico/General",
        "timeSn": "1449",
        "timeZoneGMT": "CST6CDT,M4.1.0,M10.5.0"
    },
    {
        "timeZoneName": "Navajo",
        "timeId": "Navajo",
        "timeSn": "1450",
        "timeZoneGMT": "MST7MDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Apia",
        "timeId": "Pacific/Apia",
        "timeSn": "1451",
        "timeZoneGMT": "\u003c+13\u003e-13\u003c+14\u003e,M9.5.0/3,M4.1.0/4"
    },
    {
        "timeZoneName": "Auckland",
        "timeId": "Pacific/Auckland",
        "timeSn": "1452",
        "timeZoneGMT": "NZST-12NZDT,M9.5.0,M4.1.0/3"
    },
    {
        "timeZoneName": "Bougainville",
        "timeId": "Pacific/Bougainville",
        "timeSn": "1453",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Chatham",
        "timeId": "Pacific/Chatham",
        "timeSn": "1454",
        "timeZoneGMT": "\u003c+1245\u003e-12:45\u003c+1345\u003e,M9.5.0/2:45,M4.1.0/3:45"
    },
    {
        "timeZoneName": "Chuuk",
        "timeId": "Pacific/Chuuk",
        "timeSn": "1455",
        "timeZoneGMT": "\u003c+10\u003e-10"
    },
    {
        "timeZoneName": "Easter",
        "timeId": "Pacific/Easter",
        "timeSn": "1456",
        "timeZoneGMT": "\u003c-06\u003e6\u003c-05\u003e,M9.1.6/22,M4.1.6/22"
    },
    {
        "timeZoneName": "Efate",
        "timeId": "Pacific/Efate",
        "timeSn": "1457",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Enderbury",
        "timeId": "Pacific/Enderbury",
        "timeSn": "1458",
        "timeZoneGMT": "\u003c+13\u003e-13"
    },
    {
        "timeZoneName": "Fakaofo",
        "timeId": "Pacific/Fakaofo",
        "timeSn": "1459",
        "timeZoneGMT": "\u003c+13\u003e-13"
    },
    {
        "timeZoneName": "Fiji",
        "timeId": "Pacific/Fiji",
        "timeSn": "1460",
        "timeZoneGMT": "\u003c+12\u003e-12\u003c+13\u003e,M11.1.0,M1.3.0/3"
    },
    {
        "timeZoneName": "Funafuti",
        "timeId": "Pacific/Funafuti",
        "timeSn": "1461",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Galapagos",
        "timeId": "Pacific/Galapagos",
        "timeSn": "1462",
        "timeZoneGMT": "\u003c-06\u003e6"
    },
    {
        "timeZoneName": "Gambier",
        "timeId": "Pacific/Gambier",
        "timeSn": "1463",
        "timeZoneGMT": "\u003c-09\u003e9"
    },
    {
        "timeZoneName": "Guadalcanal",
        "timeId": "Pacific/Guadalcanal",
        "timeSn": "1464",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Guam",
        "timeId": "Pacific/Guam",
        "timeSn": "1465",
        "timeZoneGMT": "ChST-10"
    },
    {
        "timeZoneName": "Honolulu",
        "timeId": "Pacific/Honolulu",
        "timeSn": "1466",
        "timeZoneGMT": "HST10"
    },
    {
        "timeZoneName": "Johnston",
        "timeId": "Pacific/Johnston",
        "timeSn": "1467",
        "timeZoneGMT": "HST10"
    },
    {
        "timeZoneName": "Kiritimati",
        "timeId": "Pacific/Kiritimati",
        "timeSn": "1468",
        "timeZoneGMT": "\u003c+14\u003e-14"
    },
    {
        "timeZoneName": "Kosrae",
        "timeId": "Pacific/Kosrae",
        "timeSn": "1469",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Kwajalein",
        "timeId": "Pacific/Kwajalein",
        "timeSn": "1470",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Majuro",
        "timeId": "Pacific/Majuro",
        "timeSn": "1471",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Marquesas",
        "timeId": "Pacific/Marquesas",
        "timeSn": "1472",
        "timeZoneGMT": "\u003c-0930\u003e9:30"
    },
    {
        "timeZoneName": "Midway",
        "timeId": "Pacific/Midway",
        "timeSn": "1473",
        "timeZoneGMT": "SST11"
    },
    {
        "timeZoneName": "Nauru",
        "timeId": "Pacific/Nauru",
        "timeSn": "1474",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Niue",
        "timeId": "Pacific/Niue",
        "timeSn": "1475",
        "timeZoneGMT": "\u003c-11\u003e11"
    },
    {
        "timeZoneName": "Norfolk",
        "timeId": "Pacific/Norfolk",
        "timeSn": "1476",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Noumea",
        "timeId": "Pacific/Noumea",
        "timeSn": "1477",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Pago Pago",
        "timeId": "Pacific/Pago_Pago",
        "timeSn": "1478",
        "timeZoneGMT": "SST11"
    },
    {
        "timeZoneName": "Palau",
        "timeId": "Pacific/Palau",
        "timeSn": "1479",
        "timeZoneGMT": "\u003c+09\u003e-9"
    },
    {
        "timeZoneName": "Pitcairn",
        "timeId": "Pacific/Pitcairn",
        "timeSn": "1480",
        "timeZoneGMT": "\u003c-08\u003e8"
    },
    {
        "timeZoneName": "Pohnpei",
        "timeId": "Pacific/Pohnpei",
        "timeSn": "1481",
        "timeZoneGMT": "\u003c+11\u003e-11"
    },
    {
        "timeZoneName": "Port Moresby",
        "timeId": "Pacific/Port_Moresby",
        "timeSn": "1482",
        "timeZoneGMT": "\u003c+10\u003e-10"
    },
    {
        "timeZoneName": "Rarotonga",
        "timeId": "Pacific/Rarotonga",
        "timeSn": "1483",
        "timeZoneGMT": "\u003c-10\u003e10"
    },
    {
        "timeZoneName": "Saipan",
        "timeId": "Pacific/Saipan",
        "timeSn": "1484",
        "timeZoneGMT": "ChST-10"
    },
    {
        "timeZoneName": "Samoa",
        "timeId": "Pacific/Samoa",
        "timeSn": "1485",
        "timeZoneGMT": "SST11"
    },
    {
        "timeZoneName": "Tahiti",
        "timeId": "Pacific/Tahiti",
        "timeSn": "1486",
        "timeZoneGMT": "\u003c-10\u003e10"
    },
    {
        "timeZoneName": "Tarawa",
        "timeId": "Pacific/Tarawa",
        "timeSn": "1487",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Tongatapu",
        "timeId": "Pacific/Tongatapu",
        "timeSn": "1488",
        "timeZoneGMT": "\u003c+13\u003e-13"
    },
    {
        "timeZoneName": "Wake",
        "timeId": "Pacific/Wake",
        "timeSn": "1489",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Wallis",
        "timeId": "Pacific/Wallis",
        "timeSn": "1490",
        "timeZoneGMT": "\u003c+12\u003e-12"
    },
    {
        "timeZoneName": "Yap",
        "timeId": "Pacific/Yap",
        "timeSn": "1491",
        "timeZoneGMT": "\u003c+10\u003e-10"
    },
    {
        "timeZoneName": "Poland",
        "timeId": "Poland",
        "timeSn": "1492",
        "timeZoneGMT": "CET-1CEST,M3.5.0,M10.5.0/3"
    },
    {
        "timeZoneName": "Portugal",
        "timeId": "Portugal",
        "timeSn": "1493",
        "timeZoneGMT": "WET0WEST,M3.5.0/1,M10.5.0"
    },
    {
        "timeZoneName": "Turkey",
        "timeId": "Turkey",
        "timeSn": "1494",
        "timeZoneGMT": "\u003c+03\u003e-3"
    },
    {
        "timeZoneName": "Alaska",
        "timeId": "US/Alaska",
        "timeSn": "1495",
        "timeZoneGMT": "AKST9AKDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Aleutian",
        "timeId": "US/Aleutian",
        "timeSn": "1496",
        "timeZoneGMT": "HST10HDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Arizona",
        "timeId": "US/Arizona",
        "timeSn": "1497",
        "timeZoneGMT": "MST7"
    },
    {
        "timeZoneName": "East-Indiana",
        "timeId": "US/East-Indiana",
        "timeSn": "1498",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Hawaii",
        "timeId": "US/Hawaii",
        "timeSn": "1499",
        "timeZoneGMT": "HST10"
    },
    {
        "timeZoneName": "Indiana-Starke",
        "timeId": "US/Indiana-Starke",
        "timeSn": "1500",
        "timeZoneGMT": "CST6CDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Michigan",
        "timeId": "US/Michigan",
        "timeSn": "1501",
        "timeZoneGMT": "EST5EDT,M3.2.0,M11.1.0"
    },
    {
        "timeZoneName": "Zulu",
        "timeId": "Zulu",
        "timeSn": "1502",
        "timeZoneGMT": "UTC0"
    }
];

export const getEufyTimezone = function(): EufyTimezone | undefined {
    for (const timezone of timeZoneData) {
        if (timezone.timeId === Intl.DateTimeFormat().resolvedOptions().timeZone) {
            return timezone
        }
    }
    return undefined;
};

export const getAdvancedLockTimezone = function(stationSN: string): string {
    const timezone = getEufyTimezone();
    if (timezone !== undefined) {
        if (stationSN.startsWith("T8520") && isGreaterEqualMinVersion("1.2.8.6", stationSN))
            return `${timezone.timeZoneGMT}|1.${timezone.timeSn}`
        else
            return timezone.timeZoneGMT;
    }
    return "";
};