您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds new features and builds fare purchase links for ITA Matrix
当前为
// ==UserScript== // @name ITA Matrix Powertools // @namespace https://github.com/adamhwang/ita-matrix-powertools // @description Adds new features and builds fare purchase links for ITA Matrix // @version 0.48.3 // @icon https://raw.githubusercontent.com/adamhwang/ita-matrix-powertools/master/icons/icon32.png // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @grant GM.getValue // @grant GM_setValue // @grant GM.setValue // @grant GM_setValue // @include http*://matrix.itasoftware.com/* // @license GPL-2.0-only // ==/UserScript== /* Written by paul21, Steppo & Adam Hwang (IAkH) of FlyerTalk.com http://www.flyertalk.com/forum/members/paul21.html Includes contriutions by https://github.com/adamhwang/ita-matrix-powertools/blob/master/AUTHORS GNU General Public License v2.0 */ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool: // `npm run build` // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 50); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentSegs; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return currentItin; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return readItinerary; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // initialize local storage for current itin /** @type {{ cur?: string; price?: number; basefares?: number; taxes?: number; surcharges?: number; dist?: number; numPax?: number; carriers?: string[]; farebases?: string[]; itin?: { orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; offset?: string; }; seg?: { carrier: string; orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; fnr: string; duration: number; aircraft: string; cabin: number; bookingclass: string; codeshare: number; layoverduration: number; airportchange: number; farebase: string; farecarrier: string; }[]}[]}} */ let currentItin = new Object(); const matrixCurrencies = [ { p: /US\$/, c: "USD" }, { p: /\€/, c: "EUR" }, { p: /\£/, c: "GBP" }, { p: /CA\$/, c: "CAD" }, { p: /RS\./, c: "INR" } ]; function readItinerary() { // the magical part! :-) var itin = new Array(), carrieruarray = new Array(), farebases = new Array(), dirtyFare = new Array(); var itinCur = ""; var html = document.getElementById("contentwrapper").innerHTML; var re = /colspan\=\"5\"[^\(]+\(([\w]{3})[^\(]+\(([\w]{3})/g; var legs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // Got our outer legs now: for (i = 0; i < legs.length; i += 2) { var legobj = {}; // prepare all elements but fill later legobj.arr = {}; legobj.dep = {}; legobj.orig = legs[i]; legobj.dest = legs[i + 1]; legobj.seg = new Array(); itin.push(legobj); } // extract basefares var re = /Carrier\s([\w]{2})\s([\w]+).*?Covers\s([\w\(\)\s\-,]+)/g; var bfs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); var bf = { c: "", f: "", l: new Array() }; for (i = 0; i < bfs.length; i += 3) { bf.c = bfs[i]; bf.f = bfs[i + 1]; farebases.push(bf.f); bf.l = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(bfs[i + 2], /(\w\w\w\-\w\w\w)/g); for (j = 0; j < bf.l.length; j++) { dirtyFare.push(bf.l[j] + "-" + bf.f + "-" + bf.c); } } var segs = new Array(); var re = /35px\/(\w{2}).png[^\(]+\(([A-Z]{3})[^\(]+\(([A-Z]{3})[^\,]*\,\s*([a-zA-Z]{3})\s*([0-9]{1,2}).*?gwt-Label.*?([0-9]*)\<.*?Dep:[^0-9]+(.*?)\<.*?Arr:[^0-9]+(.*?)\<.*?([0-9]{1,2})h\s([0-9]{1,2})m.*?gwt-Label.*?\>(.*?)\<.*?gwt-Label\"\>(\w).*?\((\w)\).*?\<.*?tr(.*?)(table|airline_logos)/g; segs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // used massive regex to get all our segment-info in one extraction var legnr = 0; var segnr = 0; for (i = 0; i < segs.length; i += 15) { const dep12 = return12htime(segs[i + 6]); const dep24 = (dep12.length == 4 ? "0" : "") + dep12; const arr12 = return12htime(segs[i + 7]); const arr24 = (arr12.length == 4 ? "0" : "") + arr12; const addinformations = parseAddInfo(segs[i + 13]); const day = parseInt(segs[i + 4]); const month = monthnameToNumber(segs[i + 3]); const year = getFlightYear(day, month); let seg = { carrier: segs[i], orig: segs[i + 1], dest: segs[i + 2], dep: { day, month, year, timeDisplay: segs[i + 6], time: dep12, time24: dep24 }, arr: { day: addinformations.arrDate ? addinformations.arrDate.day : day, month: addinformations.arrDate ? addinformations.arrDate.month : month, year: addinformations.arrDate ? addinformations.arrDate.year : year, timeDisplay: segs[i + 7], time: arr12, time24: arr24 }, fnr: segs[i + 5], duration: parseInt(segs[i + 8]) * 60 + parseInt(segs[i + 9]), aircraft: segs[i + 10], cabin: getcabincode(segs[i + 11]), bookingclass: segs[i + 12], codeshare: addinformations.codeshare, layoverduration: addinformations.layoverduration, airportchange: addinformations.airportchange, farebase: "", farecarrier: "" }; // find farecode for leg for (var j = 0; j < dirtyFare.length; j++) { if (dirtyFare[j].indexOf(seg.orig + "-" + seg.dest + "-") != -1) { //found farebase of this segment var tmp = dirtyFare[j].split("-"); seg.farebase = tmp[2]; seg.farecarrier = tmp[3]; dirtyFare[j] = seg.farebase; // avoid reuse j = dirtyFare.length; } } if (itin[legnr] === undefined) itin[legnr] = new Object(); if (itin[legnr].seg === undefined) itin[legnr].seg = new Array(); itin[legnr].seg.push(seg); // push carrier if (!carrieruarray.some(cxr => cxr === seg.carrier)) { carrieruarray.push(seg.carrier); } // push dates and times into leg-array if (segnr == 0) { if (itin[legnr].dep === undefined) itin[legnr].dep = new Object(); itin[legnr].dep.day = seg.dep.day; itin[legnr].dep.month = seg.dep.month; itin[legnr].dep.year = seg.dep.year; itin[legnr].dep.time = seg.dep.time; } if (itin[legnr].arr === undefined) itin[legnr].arr = new Object(); itin[legnr].arr.day = seg.arr.day; itin[legnr].arr.month = seg.arr.month; itin[legnr].arr.year = seg.arr.year; itin[legnr].arr.time = seg.arr.time; segnr++; // check for legchange if (segs[i + 14] == "table") { legnr++; segnr = 0; } } // We need to apply remaining fares (Not nonstop - but direct flights) for (var i = 0; i < dirtyFare.length; i++) { var curfare = dirtyFare[i].split("-"); if (curfare.length > 1) { var l = 0; //currently unused so walk through itin to find flights for (var legnr = 0; legnr < itin.length; legnr++) { for (var segnr = 0; segnr < itin[legnr].seg.length; segnr++) { if ( itin[legnr].seg[segnr].orig == curfare[0] && itin[legnr].seg[segnr].dest == curfare[1] && itin[legnr].seg[segnr].farebase == "" ) { // found seg for fare itin[legnr].seg[segnr].farebase = curfare[2]; itin[legnr].seg[segnr].farecarrier = curfare[3]; dirtyFare[i] = curfare[2]; segnr = itin[legnr].seg.length; l = 1; } else if ( itin[legnr].seg[segnr].orig == curfare[0] && itin[legnr].seg[segnr].dest != curfare[1] && itin[legnr].seg[segnr].farebase == "" ) { // found start but multiple segs -> find end for (var j = segnr + 1; j < itin[legnr].seg.length; j++) { if ( itin[legnr].seg[j].dest == curfare[1] && itin[legnr].seg[j].farebase == "" ) { //found end attach fares for (var k = segnr; k <= j; k++) { itin[legnr].seg[k].farebase = curfare[2]; itin[legnr].seg[k].farecarrier = curfare[3]; dirtyFare[i] = curfare[2]; } j = itin[legnr].seg.length; segnr = itin[legnr].seg.length; l = 1; } else if (itin[legnr].seg[segnr + j].farebase != "") { //farebase attached - skip j = itin[legnr].seg.length; } } } } if (l == 1) { legnr = itin.length; } } if (l == 0) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Unused fare:" + dirtyFare[i]); } } } // Combine technical stops into a single segment itin.forEach(itin => { if (itin.seg) itin.seg = combineTechnicalStops(itin.seg); }); // extract mileage paxcount and total price var milepaxprice = new Array(); var re = /Mileage.*?([0-9,]+)\stotal\smiles.*?Total\scost\sfor\s([0-9])\spassenger.*?<div.*?>(.*?([1-9][0-9,.]+)[^\<]*)/g; milepaxprice = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // detect currency for (i = 0; i < matrixCurrencies.length; i++) { if (matrixCurrencies[i].p.test(milepaxprice[2]) === true) { itinCur = matrixCurrencies[i].c; i = matrixCurrencies.length; } } currentItin = { itin: itin, price: Number(milepaxprice[3].replace(/\,/, "")), numPax: Number(milepaxprice[1]), carriers: carrieruarray, cur: itinCur, farebases: farebases, dist: Number(milepaxprice[0].replace(/\,/, "")) }; console.log("parsed itinerary: ", currentItin); } function parseAddInfo(info) { var ret = { codeshare: 0, layoverduration: 0, airportchange: 0, arrDate: null }; var re = /contains\s*airport\s*changes/g; if (re.test(info) === true) { ret.airportchange = 1; } var re = /OPERATED\s*BY/g; if (re.test(info) === true) { ret.codeshare = 1; } var temp = new Array(); var re = /\,\s*([a-zA-Z]{3})\s*([0-9]{1,2})/g; temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re); if (temp.length == 2) { // Got datechange const month = monthnameToNumber(temp[0]); const day = parseInt(temp[1]); ret.arrDate = { month, day, year: getFlightYear(day, month) }; } var temp = new Array(); var re = /([0-9]{1,2})h\s([0-9]{1,2})m/g; temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re); if (temp.length == 2) { // Got layover ret.layoverduration = parseInt(temp[0]) * 60 + parseInt(temp[1]); } return ret; } function getCurrentSegs() { return currentItin.itin .map(function(p) { return p.seg; }) .reduce(function(a, b) { return a.concat(b); }, []); } function combineTechnicalStops(allSegs) { if (allSegs.length <= 1) return allSegs; const segs = []; for (let i = 0; i < allSegs.length; i++) { const currSeg = allSegs[i]; const nextSeg = allSegs[i + 1]; if ( nextSeg && nextSeg.fnr === currSeg.fnr && nextSeg.orig === currSeg.dest ) { segs.push({ ...currSeg, dest: nextSeg.dest, arr: nextSeg.arr }); i++; } else { segs.push(currSeg); } } return segs; } /**************************************** General Functions *****************************************/ function getcabincode(cabin) { switch (cabin) { case "E": cabin = 0; break; case "P": cabin = 1; break; case "B": cabin = 2; break; case "F": cabin = 3; break; default: cabin = 0; } return cabin; } function monthnameToNumber(month) { var monthnames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; return monthnames.indexOf(month.toUpperCase()) + 1; } function getFlightYear(day, month) { //Do date magic var d = new Date(); var cmonth = d.getMonth(); var cday = d.getDate(); var cyear = d.getFullYear(); // make sure to handle the 0-11 issue of getMonth() if (cmonth > month - 1 || (cmonth == month - 1 && day < cday)) { cyear += 1; // The flight is next year } return cyear; } function return12htime(match) { var regex = /([01]?\d)(:\d{2})(AM|PM|am|pm| AM| PM| am| pm)/g; match = regex.exec(match); var offset = 0; match[3] = trimStr(match[3]); if ((match[3] == "AM" || match[3] == "am") && match[1] == "12") { offset = -12; } else if ((match[3] == "PM" || match[3] == "pm") && match[1] != "12") { offset = 12; } return +match[1] + offset + match[2]; } function trimStr(x) { return x.replace(/^\s+|\s+$/gm, ""); } /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return findtarget; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findtargets; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return toggleVis; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return clearNotification; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return printNotification; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return exRE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return to2digits; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return to4digits; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return to4digitTime; }); /* unused harmony export uuidv4 */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return monthnumberToName; }); function findtarget(tclass, nth) { var elems = document.getElementsByTagName("*"), i; let j = 0; for (i in elems) { if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) { j++; if (j == nth) { return elems[i]; break; } } } } function findtargets(tclass) { var elems = document.getElementsByTagName("*"), i; var ret = new Array(); for (i in elems) { if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) { ret.push(elems[i]); } } return ret; } function hasClass(element, cls) { return (" " + element.className + " ").indexOf(" " + cls + " ") > -1; } function toggleVis(target, blockType = "block") { if (hasClass(target, "vis")) { target.setAttribute("class", "invis"); target.style.display = "none"; } else { target.setAttribute("class", "vis"); target.style.display = blockType; } } function clearNotification() { var target = document.getElementById("mtpNotification"); target.innerHTML = ""; } function printNotification(text) { // log the text to the browser's developer console: console.log(text); // display for user: var target = document.getElementById("mtpNotification"); if (target === null) { //alert("mtp Error: Notification container not Found"); console.log("mtp Error: Notification container not Found"); } else { //possibility to print multiple notifications var temp = document.createElement("div"); temp.appendChild(document.createTextNode(text)); target.appendChild(temp); } } //Parses all of the outputs of regexp matches into an array function exRE(str, re) { var ret = new Array(); var m; var i = 0; while ((m = re.exec(str)) != null) { if (m.index === re.lastIndex) { re.lastIndex++; } for (let k = 1; k < m.length; k++) { ret[i++] = m[k]; } } return ret; } function to2digits(str) { return ("00" + str).slice(-2); } function to4digits(str) { return ("0000" + str).slice(-4); } function to4digitTime(time) { return to4digits(time.replace(":", "")); } function uuidv4() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { var r = (Math.random() * 16) | 0, v = c == "x" ? r : (r & 0x3) | 0x8; return v.toString(16); }); } function monthnumberToName(month) { var monthnames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; return monthnames[month - 1]; } /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return registeredSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerSetting; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return saveUserSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return loadUserSettings; }); /* harmony import */ var _appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); const defaultSettings = { timeformat: "12h", // replaces times on resultpage - valid: 12h / 24h language: "en", // replaces several items on resultpage - valid: en / de linkFontsize: 100, // fontsize of links - valid: 50-200 showAllAirlines: 0, // shows all airline links regardless of search results // booleans to toggle specific settings: enableDeviders: 1, // Print deviders in links after group (airlines/otas/other stuff) - valid: 0 / 1 enableInlineMode: 1, // enables inline mode - valid: 0 / 1 enableEditormode: 0, // prevents the script from automatically parsing the itinerary - valid: 0 / 1 enableIMGautoload: 0, // enables images to auto load - valid: 0 / 1 enableFarerules: 1, // enables fare rule opening in new window - valid: 0 / 1 enablePricebreakdown: 1, // enables price breakdown - valid: 0 / 1 enableDarkmode: 0, // enables dark mode - valid: 0 / 1 enablePlanefinder: 1, // enables Planefinder - click on flight numbers to open Planefinder for this flight - valid: 0 / 1 enableSeatguru: 1, // enables Seatguru - click on plane type to open Seatguru for this flight - valid: 0 / 1 enableWheretocredit: 1, // enables Wheretocredit - click on booking class to open wheretocredit for this flight - valid: 0 / 1 enableAffiliates: 1 }; const registeredSettings = {}; /** * Registers a link * @param {string} name * @param {string} id * @param {{ name: string, value: string }[]} values * @param {string} defaultValue */ function registerSetting(name, id, values, defaultValue) { registeredSettings[id] = { name, values }; defaultSettings[id] = defaultValue; } async function saveUserSettings(settings = defaultSettings) { switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) { case 0: localStorage.setItem("mptUserSettings", JSON.stringify(settings)); break; case 1: await GM.setValue("mptUserSettings", JSON.stringify(settings)); break; } } async function loadUserSettings() { let gmSavedUserSettings; switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) { case 0: gmSavedUserSettings = localStorage.getItem("mptUserSettings"); break; case 1: gmSavedUserSettings = await GM.getValue("mptUserSettings"); break; } console.log("mptSavedUserSettings: " + gmSavedUserSettings); if (!gmSavedUserSettings || typeof gmSavedUserSettings !== "string") return; /** @type typeof defaultSettings */ const savedUserSettings = JSON.parse(gmSavedUserSettings); if (!savedUserSettings) return; Object.assign(defaultSettings, savedUserSettings); } /* harmony default export */ __webpack_exports__["a"] = (defaultSettings); /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "register", function() { return register; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "allCarriers", function() { return allCarriers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anyCarriers", function() { return anyCarriers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validatePax", function() { return validatePax; }); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const req = __webpack_require__(11); req.keys().forEach(req); /** * Registers a link * @param {() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string }} factory */ function register(type, factory) { Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "b"])(type, factory); } function allCarriers() { const args = Array.from(arguments); return ( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.every(cxr => args.some(arg => cxr === arg)) ); } function anyCarriers() { const args = Array.from(arguments); return ( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.some(cxr => args.some(arg => cxr === arg)) ); } function validatePax(config) { //{maxPaxcount:7, countInf:false, childAsAdult:12, sepInfSeat:false, childMinAge:2} var tmpChildren = new Array(); // push cur children for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].cAges.length; i++) { tmpChildren.push(_settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].cAges[i]); } var ret = { adults: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].adults, children: new Array(), infLap: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsLap, infSeat: 0 }; if (config.sepInfSeat === true) { ret.infSeat = _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsSeat; } else { for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsSeat; i++) { tmpChildren.push(config.childMinAge); } } // process children for (var i = 0; i < tmpChildren.length; i++) { if (tmpChildren[i] < config.childAsAdult) { ret.children.push(tmpChildren[i]); } else { ret.adults++; } } // check Pax-Count if ( config.maxPaxcount <= ret.adults + (config.countInf && ret.infLap) + ret.infSeat + ret.children.length ) { console.log("Too many passengers"); return; } if (0 === ret.adults + ret.infSeat + ret.children.length) { console.log("No passengers"); return; } return ret; } /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return reset; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCabin; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getForcedCabin; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // General settings const appSettings = { scriptEngine: typeof GM === "undefined" || typeof GM.info === "undefined" ? 0 : 1, // 0 - console mode, 1 - tamper or grease mode itaLanguage: "en", version: "0.48.3", retrycount: 1, laststatus: "", scriptrunning: 1, cabin: "Auto" }; function reset() { // reset Notification due to pagechange Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* clearNotification */ "a"])(); // reset Editor Mode document.getElementById("mptStartparse").setAttribute("class", "invis"); document.getElementById("mptStartparse").style.display = "none"; appSettings.itaLanguage = "en"; appSettings.retrycount = 1; } function getCabin(autoCabin) { return appSettings.cabin === "Auto" ? autoCabin : getForcedCabin(); } function getForcedCabin() { switch (appSettings.cabin) { case "Y": return 0; case "Y+": return 1; case "C": return 2; case "F": return 3; default: return 0; } } /* harmony default export */ __webpack_exports__["a"] = (appSettings); /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findTargetSetVersion; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // ITA Matrix CSS class definitions: const itaSettings = [ { startpage: { maindiv: "KIR33AB-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice }, resultpage: { itin: "KIR33AB-v-d", //Container with headline: "Itinerary" itinRow: "KIR33AB-j-i", // TR in itin with Orig, Dest and date milagecontainer: "KIR33AB-v-e", // TD-Container on the right rulescontainer: "KIR33AB-k-d", // First container before rulelinks (the one with Fare X:) htbContainer: "KIR33AB-k-k", // full "how to buy"-container inner div (td=>div=>div) htbLeft: "KIR33AB-k-g", // Left column in the "how to buy"-container htbRight: "KIR33AB-k-f", // Class for normal right column htbGreyBorder: "KIR33AB-k-l", // Class for right cell with light grey border (used for subtotal of passenger) //inline mcDiv: "KIR33AB-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info) mcHeader: "KIR33AB-y-b", // Right menu header class ("Mileage", etc.) mcLinkList: "KIR33AB-y-c" // Right menu ul list class (immediately following header) } }, { startpage: { maindiv: "IR6M2QD-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice }, resultpage: { itin: "IR6M2QD-v-d", //Container with headline: "Itinerary" itinRow: "IR6M2QD-j-i", // TR in itin with Orig, Dest and date milagecontainer: "IR6M2QD-v-e", // TD-Container on the right rulescontainer: "IR6M2QD-k-d", // First container before rulelinks (the one with Fare X:) htbContainer: "IR6M2QD-k-k", // full "how to buy"-container inner div (td=>div=>div) htbLeft: "IR6M2QD-k-g", // Left column in the "how to buy"-container htbRight: "IR6M2QD-k-f", // Class for normal right column htbGreyBorder: "IR6M2QD-k-l", // Class for right cell with light grey border (used for subtotal of passenger) //inline mcDiv: "IR6M2QD-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info) mcHeader: "IR6M2QD-y-b", // Right menu header class ("Mileage", etc.) mcLinkList: "IR6M2QD-y-c" // Right menu ul list class (immediately following header) } } ]; const classSettings = itaSettings[0]; function findTargetSetVersion(classSelector, nth) { for (let setting of itaSettings) { const className = classSelector(setting); const target = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* findtarget */ "c"])(className, nth); if (target) { console.log(`ITA Version detected: ${className}`); Object.assign(classSettings, setting); return target; } } } /* harmony default export */ __webpack_exports__["a"] = (classSettings); /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // initialize local storage for passenger details /* harmony default export */ __webpack_exports__["a"] = ({ adults: 1, infantsLap: 0, infantsSeat: 0, cAges: new Array() }); /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAmadeusUrl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getAmadeusPax; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAmadeusTriptype; }); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); // **** START AMADEUS **** function getAmadeusUrl(config) { config = config || { sepcabin: 1, detailed: 0, inctimes: 1, enablesegskip: 1, allowpremium: 1 }; config.sepcabin = config.sepcabin === undefined ? 1 : config.sepcabin; config.detailed = config.detailed === undefined ? 0 : config.detailed; config.inctimes = config.inctimes === undefined ? 1 : config.inctimes; config.enablesegskip = config.enablesegskip === undefined ? 1 : config.enablesegskip; config.allowpremium = config.allowpremium === undefined ? 1 : config.allowpremium; var curleg = 0; var lastcabin = 0; var curseg = 0; var lastdest = ""; var maxcabin = 0; var url = ""; var lastarrtime = ""; var cabins = ["E", "N", "B", "F"]; cabins[1] = config.allowpremium != 1 ? cabins[0] : cabins[1]; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) { curseg = 3; // need to toggle segskip on first leg lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[0].cabin; // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 || config.enablesegskip == 0 ) break; k++; } curseg++; if ( curseg > 3 || (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin != lastcabin && config.sepcabin == 1) ) { if (lastdest != "") { //close prior flight url += "&E_LOCATION_" + curleg + "=" + lastdest; url += "&E_DATE_" + curleg + "=" + lastarrtime; } curseg = 1; curleg++; url += "&B_LOCATION_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_ANY_TIME_" + curleg + "=FALSE"; url += "&B_DATE_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "") ).slice(-4) : "0000"); url += "&CABIN_" + curleg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin]; url += "&ALLOW_ALTERNATE_AVAILABILITY_" + curleg + "=FALSE"; url += "&DATE_RANGE_VALUE_" + curleg + "=0"; } lastarrtime = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "") ).slice(-4) : "0000"); if (config.detailed === 1) { url += "&B_LOCATION_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_LOCATION_CITY_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_DATE_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "") ).slice(-4) : "0000"); url += "&E_LOCATION_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&E_LOCATION_CITY_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&E_DATE_" + curleg + "_" + curseg + "=" + lastarrtime; } url += "&AIRLINE_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&FLIGHT_NUMBER_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&RBD_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&FARE_CLASS_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].farebase; lastdest = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin > maxcabin) maxcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; j += k; } } url += "&E_LOCATION_" + curleg + "=" + lastdest; // push final dest url += "&E_DATE_" + curleg + "=" + lastarrtime; // push arr time url += "&CABIN=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? maxcabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] + ""; // push cabin return url; } function getAmadeusPax(pax, config) { config = config || { allowinf: 1, youthage: 0 }; config.allowinf = config.allowinf === undefined ? 1 : config.allowinf; config.youthage = config.sepyouth === undefined ? 0 : config.sepyouth; var tmpPax = { c: 0, y: 0 }; var curPax = 1; var url = "&IS_PRIMARY_TRAVELLER_1=True"; for (let i = 0; i < pax.children.length; i++) { if (pax.children[i] >= config.youthage && config.youthage > 0) { tmpPax.y++; } else if (pax.children[i] >= 12) { pax.adults++; } else { tmpPax.c++; } } for (let i = 0; i < pax.adults; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=ADT"; url += "&HAS_INFANT_" + curPax + "=" + (i < pax.infLap && config.allowinf == 1 ? "True" : "False"); url += "&IS_YOUTH_" + curPax + "=False"; curPax++; } for (let i = 0; i < tmpPax.y; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=ADT"; url += "&HAS_INFANT_" + curPax + "=False"; url += "&IS_YOUTH_" + curPax + "=True"; curPax++; } for (let i = 0; i < tmpPax.c; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=CHD"; url += "&HAS_INFANT_" + curPax + "=False"; url += "&IS_YOUTH_" + curPax + "=False"; curPax++; } return { url: url, adults: pax.adults, youth: tmpPax.y, children: tmpPax.c, infants: pax.infLap }; } function getAmadeusTriptype() { return _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 1 ? _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig ? "R" : "M" : "O"; } // **** END AMADEUS **** /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // Supported translations for the PowerTools interface: const de = { use: "Öffne ", resultpage: { "Dep:": "Abflug:", "Arr:": "Ankunft:", "Layover in": "Umst. in", " to ": " nach ", "Mon,": "Mo.,", "Tue,": "Di.,", "Wed,": "Mi.,", "Thu,": "Do.,", "Fri,": "Fr.,", "Sat,": "Sa.,", "Sun,": "So.,", " Jan ": " Januar ", " Feb ": " Februar ", " Mar ": " Mä,rz ", " Apr ": " April ", " May ": " Mai ", " Jun ": " Juni ", " Jul ": " Juli ", " Aug ": " August ", " Sep ": " September ", " Oct ": " Oktober ", " Nov ": " November ", " Dec ": " Dezember ", "OPERATED BY ": "Durchgefü,hrt von " } }; /* harmony default export */ __webpack_exports__["a"] = ({ de }); /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return registerLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return printLinksContainer; }); /* unused harmony export printImage */ /* unused harmony export getSidebarContainer */ /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); /** @type {{ [key: string]: (() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string })[]}} */ const links = {}; __webpack_require__(3); var skimlinks = document.createElement("script"); skimlinks.setAttribute( "src", "https://s.skimresources.com/js/122783X1611548.skimlinks.js" ); /** * Registers a link * @param {() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string }} factory */ function registerLink(type, factory) { if (!links[type]) links[type] = []; links[type].push(factory); } function printLinksContainer() { // do nothing if editor mode is active if (Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtargets */ "d"])("editoritem").length > 0) { return false; } // empty outputcontainer const div = getSidebarContainer(); div.innerHTML = ""; // S&D powertool items const elems = Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtargets */ "d"])("powertoolsitem"); for (let i = elems.length - 1; i >= 1; i--) { elems[i].parentElement.removeChild(elems[i]); } const groups = Object.keys(links); groups.forEach((group, i) => { const groupLinks = links[group] .map(link => link()) .sort((a, b) => { return a.title.localeCompare(b.title); }); groupLinks.forEach(link => { if (!link) return; if (link.img) { printImage(link); } else if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { printUrlInline(link); } else { printUrl(link); } }); _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableDeviders == 1 && links[group].length && i != groups.length - 1 && printSeperator(); }); /*** attach JS events after building link container ***/ bindLinkClicks(); } function bindLinkClicks() { if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableAffiliates == 1) { skimlinks.parentNode && skimlinks.parentNode.removeChild(skimlinks); document.body.appendChild(skimlinks); } } // Inline Stuff function printUrlInline(link) { var item = `<li class="powertoolsitem">${printLink(link)}</li>`; const container = getSidebarContainer(); container.insertAdjacentHTML("beforeend", item); } function printImage(link) { const div = getSidebarContainer(); const imgLink = (link.url ? '<a href="' + link.url + '" target="_blank" class="powertoolsitem">' : "") + '<img src="' + link.img + '" style="margin-top:10px;"' + (!link.url ? ' class="powertoolsitem"' : "") + "/>" + (link.url ? "</a>" : ""); if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableIMGautoload == 1) { div.insertAdjacentHTML("beforeend", imgLink); } else { var id = Math.random().toString(); div.insertAdjacentHTML( "beforeend", `<div id="${id}" class="powertoolsitem powertoolsimage"><span>${link.title}</span></div>` ); document.getElementById(id).addEventListener("click", function() { this.outerHTML = imgLink; }); } } function getSidebarContainer() { return ( document.getElementById("powertoolslinkcontainer") || (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1 ? createUrlContainerInline() : createUrlContainer()) ); } function createUrlContainerInline() { var newdiv = document.createElement("div"); newdiv.classList.add(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv); newdiv.classList.add(`powertoolslinkinlinecontainer`); newdiv.innerHTML = '<div class="' + _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader + '">Powertools</div><ul id="powertoolslinkcontainer" class="' + _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcLinkList + '"></ul>'; Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv, 1).parentElement.appendChild( newdiv ); return document.getElementById("powertoolslinkcontainer"); } // Printing Stuff function printUrl(link) { var item = `<div class="powertoolsitem" style="margin:5px 0px 10px 0px">${printLink( link )}</div>`; const container = getSidebarContainer(); container.insertAdjacentHTML("beforeend", item); } function printLink(link) { let html = `<div><label style="font-size:${Number( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize )}%;font-weight:600"> <a href="${link.url}" target=${link.target || "_blank"}>${(_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][ _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language ] && _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"]) || "Use "} ${link.title}</a> </label>`; if (link.extra) html += link.extra; if (link.desc) html += `<br/><label style="font-size:${Number( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize ) - 15}%">${link.desc}</label>`; html += "</div"; return html; } function createUrlContainer() { var newdiv = document.createElement("div"); newdiv.setAttribute("id", "powertoolslinkcontainer"); newdiv.setAttribute("style", "margin:15px 0px 0px 10px"); return Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.milagecontainer, 1).appendChild( newdiv ); } function printSeperator() { var container = getSidebarContainer(); if (container) { container.insertAdjacentHTML( "beforeend", _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode ? '<hr class="powertoolsitem"/>' : "<hr/>" ); } } /***/ }), /* 10 */ /***/ (function(module) { module.exports = JSON.parse("{\"AAA\":\"Pacific/Tahiti\",\"AAB\":\"Australia/Brisbane\",\"AAC\":\"Africa/Cairo\",\"AAD\":\"Africa/Mogadishu\",\"AAE\":\"Africa/Algiers\",\"AAF\":\"America/New_York\",\"AAG\":\"America/Sao_Paulo\",\"AAH\":\"Europe/Berlin\",\"AAI\":\"America/Belem\",\"AAJ\":\"America/Paramaribo\",\"AAK\":\"Pacific/Tarawa\",\"AAL\":\"Europe/Copenhagen\",\"AAM\":\"Africa/Johannesburg\",\"AAN\":\"Asia/Dubai\",\"AAO\":\"America/Caracas\",\"AAP\":\"Asia/Makassar\",\"AAQ\":\"Europe/Moscow\",\"AAR\":\"Europe/Copenhagen\",\"AAS\":\"Asia/Jayapura\",\"AAT\":\"Asia/Shanghai\",\"AAU\":\"Pacific/Apia\",\"AAV\":\"Asia/Manila\",\"AAW\":\"Asia/Karachi\",\"AAX\":\"America/Sao_Paulo\",\"AAY\":\"Asia/Aden\",\"ABA\":\"Asia/Krasnoyarsk\",\"ABB\":\"Africa/Lagos\",\"ABC\":\"Europe/Madrid\",\"ABD\":\"Asia/Tehran\",\"ABE\":\"America/New_York\",\"ABF\":\"Pacific/Tarawa\",\"ABG\":\"Australia/Brisbane\",\"ABH\":\"Australia/Brisbane\",\"ABI\":\"America/Chicago\",\"ABJ\":\"Africa/Abidjan\",\"ABK\":\"Africa/Addis_Ababa\",\"ABL\":\"America/Anchorage\",\"ABM\":\"Australia/Brisbane\",\"ABN\":\"America/Paramaribo\",\"ABO\":\"Africa/Abidjan\",\"ABP\":\"Pacific/Port_Moresby\",\"ABQ\":\"America/Denver\",\"ABR\":\"America/Chicago\",\"ABS\":\"Africa/Cairo\",\"ABT\":\"Asia/Riyadh\",\"ABU\":\"Asia/Makassar\",\"ABV\":\"Africa/Lagos\",\"ABW\":\"Pacific/Port_Moresby\",\"ABX\":\"Australia/Sydney\",\"ABY\":\"America/New_York\",\"ABZ\":\"Europe/London\",\"ACA\":\"America/Mexico_City\",\"ACB\":\"America/New_York\",\"ACC\":\"Africa/Accra\",\"ACD\":\"America/Bogota\",\"ACE\":\"Atlantic/Canary\",\"ACH\":\"Europe/Zurich\",\"ACI\":\"Europe/London\",\"ACJ\":\"Asia/Colombo\",\"ACK\":\"America/New_York\",\"ACL\":\"America/Bogota\",\"ACM\":\"America/Bogota\",\"ACN\":\"America/Matamoros\",\"ACO\":\"Europe/Zurich\",\"ACP\":\"Asia/Tehran\",\"ACR\":\"America/Bogota\",\"ACS\":\"Asia/Krasnoyarsk\",\"ACT\":\"America/Chicago\",\"ACU\":\"America/Panama\",\"ACV\":\"America/Los_Angeles\",\"ACX\":\"Asia/Shanghai\",\"ACY\":\"America/New_York\",\"ACZ\":\"Asia/Tehran\",\"ADA\":\"Europe/Istanbul\",\"ADB\":\"Europe/Istanbul\",\"ADC\":\"Pacific/Port_Moresby\",\"ADD\":\"Africa/Addis_Ababa\",\"ADE\":\"Asia/Aden\",\"ADF\":\"Europe/Istanbul\",\"ADG\":\"America/New_York\",\"ADH\":\"Asia/Yakutsk\",\"ADI\":\"Africa/Windhoek\",\"ADJ\":\"Asia/Amman\",\"ADK\":\"America/Adak\",\"ADL\":\"Australia/Adelaide\",\"ADM\":\"America/Chicago\",\"ADN\":\"America/Bogota\",\"ADO\":\"Australia/Adelaide\",\"ADP\":\"Asia/Colombo\",\"ADQ\":\"America/Anchorage\",\"ADR\":\"America/New_York\",\"ADS\":\"America/Chicago\",\"ADT\":\"America/Chicago\",\"ADU\":\"Asia/Tehran\",\"ADV\":\"Africa/Khartoum\",\"ADW\":\"America/New_York\",\"ADX\":\"Europe/London\",\"ADY\":\"Africa/Johannesburg\",\"ADZ\":\"America/Bogota\",\"AEA\":\"Pacific/Tarawa\",\"AEB\":\"Asia/Shanghai\",\"AED\":\"America/Anchorage\",\"AEE\":\"Africa/Juba\",\"AEG\":\"Asia/Jakarta\",\"AEH\":\"Africa/Ndjamena\",\"AEI\":\"Europe/Madrid\",\"AEK\":\"Pacific/Port_Moresby\",\"AEL\":\"America/Chicago\",\"AEM\":\"Asia/Vladivostok\",\"AEO\":\"Africa/Nouakchott\",\"AEP\":\"America/Argentina/Buenos_Aires\",\"AEQ\":\"Asia/Shanghai\",\"AER\":\"Europe/Moscow\",\"AES\":\"Europe/Oslo\",\"AET\":\"America/Anchorage\",\"AEU\":\"Asia/Tehran\",\"AEX\":\"America/Chicago\",\"AEY\":\"Atlantic/Reykjavik\",\"AFA\":\"America/Argentina/Buenos_Aires\",\"AFD\":\"Africa/Johannesburg\",\"AFF\":\"America/Denver\",\"AFI\":\"America/Bogota\",\"AFL\":\"America/Campo_Grande\",\"AFN\":\"America/New_York\",\"AFO\":\"America/Denver\",\"AFR\":\"Pacific/Port_Moresby\",\"AFS\":\"Asia/Tashkent\",\"AFT\":\"Pacific/Guadalcanal\",\"AFW\":\"America/Chicago\",\"AFY\":\"Europe/Istanbul\",\"AFZ\":\"Asia/Tehran\",\"AGA\":\"Africa/Casablanca\",\"AGB\":\"Europe/Berlin\",\"AGC\":\"America/New_York\",\"AGD\":\"Asia/Jayapura\",\"AGE\":\"Europe/Berlin\",\"AGF\":\"Europe/Paris\",\"AGG\":\"Pacific/Port_Moresby\",\"AGH\":\"Europe/Stockholm\",\"AGI\":\"America/Paramaribo\",\"AGJ\":\"Asia/Tokyo\",\"AGK\":\"Pacific/Port_Moresby\",\"AGL\":\"Pacific/Port_Moresby\",\"AGM\":\"America/Godthab\",\"AGN\":\"America/Anchorage\",\"AGO\":\"America/Chicago\",\"AGP\":\"Europe/Madrid\",\"AGQ\":\"Europe/Athens\",\"AGR\":\"Asia/Kolkata\",\"AGS\":\"America/New_York\",\"AGT\":\"America/Asuncion\",\"AGU\":\"America/Mexico_City\",\"AGV\":\"America/Caracas\",\"AGW\":\"Australia/Brisbane\",\"AGX\":\"Asia/Kolkata\",\"AGY\":\"Australia/Perth\",\"AGZ\":\"Africa/Johannesburg\",\"AHA\":\"Asia/Tokyo\",\"AHB\":\"Asia/Riyadh\",\"AHC\":\"America/Los_Angeles\",\"AHD\":\"America/Chicago\",\"AHE\":\"Pacific/Tahiti\",\"AHF\":\"America/Chicago\",\"AHH\":\"America/Chicago\",\"AHI\":\"Asia/Jayapura\",\"AHJ\":\"Asia/Shanghai\",\"AHL\":\"America/Guyana\",\"AHN\":\"America/New_York\",\"AHO\":\"Europe/Rome\",\"AHS\":\"America/Tegucigalpa\",\"AHT\":\"America/Adak\",\"AHU\":\"Africa/Casablanca\",\"AHY\":\"Indian/Antananarivo\",\"AHZ\":\"Europe/Paris\",\"AIA\":\"America/Denver\",\"AIB\":\"America/Anchorage\",\"AIC\":\"Pacific/Majuro\",\"AID\":\"America/Indiana/Indianapolis\",\"AIE\":\"Pacific/Port_Moresby\",\"AIF\":\"America/Sao_Paulo\",\"AIG\":\"Africa/Bangui\",\"AIH\":\"Pacific/Port_Moresby\",\"AII\":\"Africa/Djibouti\",\"AIK\":\"America/New_York\",\"AIL\":\"America/Panama\",\"AIM\":\"Pacific/Majuro\",\"AIN\":\"America/Anchorage\",\"AIO\":\"America/Chicago\",\"AIP\":\"Asia/Kolkata\",\"AIR\":\"America/Campo_Grande\",\"AIS\":\"Pacific/Tarawa\",\"AIT\":\"Pacific/Rarotonga\",\"AIU\":\"Pacific/Rarotonga\",\"AIV\":\"America/Chicago\",\"AIW\":\"Africa/Windhoek\",\"AIY\":\"America/New_York\",\"AIZ\":\"America/Chicago\",\"AJA\":\"Europe/Paris\",\"AJF\":\"Asia/Riyadh\",\"AJI\":\"Europe/Istanbul\",\"AJJ\":\"Africa/Nouakchott\",\"AJK\":\"Asia/Tehran\",\"AJL\":\"Asia/Kolkata\",\"AJN\":\"Indian/Comoro\",\"AJO\":\"Asia/Aden\",\"AJR\":\"Europe/Stockholm\",\"AJS\":\"America/Tijuana\",\"AJU\":\"America/Belem\",\"AJY\":\"Africa/Niamey\",\"AKA\":\"Asia/Shanghai\",\"AKB\":\"America/Adak\",\"AKC\":\"America/New_York\",\"AKD\":\"Asia/Kolkata\",\"AKE\":\"Africa/Libreville\",\"AKF\":\"Africa/Tripoli\",\"AKG\":\"Pacific/Port_Moresby\",\"AKH\":\"Asia/Riyadh\",\"AKI\":\"America/Anchorage\",\"AKJ\":\"Asia/Tokyo\",\"AKK\":\"America/Anchorage\",\"AKL\":\"Pacific/Auckland\",\"AKM\":\"Africa/Ndjamena\",\"AKN\":\"America/Anchorage\",\"AKO\":\"America/Denver\",\"AKP\":\"America/Anchorage\",\"AKQ\":\"Asia/Jakarta\",\"AKR\":\"Africa/Lagos\",\"AKS\":\"Pacific/Guadalcanal\",\"AKT\":\"Asia/Nicosia\",\"AKU\":\"Asia/Shanghai\",\"AKV\":\"America/Toronto\",\"AKW\":\"Asia/Tehran\",\"AKX\":\"Asia/Aqtobe\",\"AKY\":\"Asia/Yangon\",\"ALA\":\"Asia/Almaty\",\"ALB\":\"America/New_York\",\"ALC\":\"Europe/Madrid\",\"ALD\":\"America/Lima\",\"ALE\":\"America/Chicago\",\"ALF\":\"Europe/Oslo\",\"ALG\":\"Africa/Algiers\",\"ALH\":\"Australia/Perth\",\"ALI\":\"America/Chicago\",\"ALJ\":\"Africa/Johannesburg\",\"ALK\":\"Africa/Addis_Ababa\",\"ALL\":\"Europe/Rome\",\"ALM\":\"America/Denver\",\"ALN\":\"America/Chicago\",\"ALO\":\"America/Chicago\",\"ALP\":\"Asia/Damascus\",\"ALQ\":\"America/Sao_Paulo\",\"ALR\":\"Pacific/Auckland\",\"ALS\":\"America/Denver\",\"ALT\":\"America/Porto_Velho\",\"ALU\":\"Africa/Mogadishu\",\"ALV\":\"Europe/Andorra\",\"ALW\":\"America/Los_Angeles\",\"ALX\":\"America/Chicago\",\"ALY\":\"Africa/Cairo\",\"ALZ\":\"America/Anchorage\",\"AMA\":\"America/Chicago\",\"AMB\":\"Indian/Antananarivo\",\"AMC\":\"Africa/Ndjamena\",\"AMD\":\"Asia/Kolkata\",\"AME\":\"Africa/Maputo\",\"AMF\":\"Pacific/Port_Moresby\",\"AMG\":\"Pacific/Port_Moresby\",\"AMH\":\"Africa/Addis_Ababa\",\"AMI\":\"Asia/Makassar\",\"AMJ\":\"America/Sao_Paulo\",\"AMK\":\"America/Denver\",\"AML\":\"America/Panama\",\"AMM\":\"Asia/Amman\",\"AMN\":\"America/New_York\",\"AMO\":\"Africa/Ndjamena\",\"AMP\":\"Indian/Antananarivo\",\"AMQ\":\"Asia/Jayapura\",\"AMR\":\"Europe/Madrid\",\"AMS\":\"Europe/Amsterdam\",\"AMT\":\"Australia/Darwin\",\"AMU\":\"Pacific/Port_Moresby\",\"AMV\":\"Europe/Moscow\",\"AMW\":\"America/Chicago\",\"AMX\":\"Australia/Darwin\",\"AMY\":\"Indian/Antananarivo\",\"AMZ\":\"Pacific/Auckland\",\"ANA\":\"Africa/Nairobi\",\"ANB\":\"America/Chicago\",\"ANC\":\"America/Anchorage\",\"AND\":\"America/New_York\",\"ANE\":\"Europe/Paris\",\"ANF\":\"America/Santiago\",\"ANG\":\"Europe/Paris\",\"ANH\":\"Pacific/Guadalcanal\",\"ANI\":\"America/Anchorage\",\"ANJ\":\"Africa/Brazzaville\",\"ANK\":\"Europe/Istanbul\",\"ANL\":\"Africa/Luanda\",\"ANM\":\"Indian/Antananarivo\",\"ANN\":\"America/Anchorage\",\"ANO\":\"Africa/Maputo\",\"ANP\":\"America/New_York\",\"ANQ\":\"America/Indiana/Indianapolis\",\"ANR\":\"Europe/Brussels\",\"ANS\":\"America/Lima\",\"ANT\":\"Europe/Vienna\",\"ANU\":\"America/Antigua\",\"ANV\":\"America/Anchorage\",\"ANW\":\"America/Chicago\",\"ANX\":\"Europe/Oslo\",\"ANY\":\"America/Chicago\",\"ANZ\":\"Australia/Darwin\",\"AOA\":\"Pacific/Port_Moresby\",\"AOB\":\"Pacific/Port_Moresby\",\"AOC\":\"Europe/Berlin\",\"AOD\":\"Africa/Ndjamena\",\"AOE\":\"Europe/Istanbul\",\"AOG\":\"Asia/Shanghai\",\"AOH\":\"America/New_York\",\"AOI\":\"Europe/Rome\",\"AOJ\":\"Asia/Tokyo\",\"AOK\":\"Europe/Athens\",\"AOL\":\"America/Argentina/Buenos_Aires\",\"AOM\":\"Asia/Muscat\",\"AON\":\"Pacific/Port_Moresby\",\"AOO\":\"America/New_York\",\"AOP\":\"America/Lima\",\"AOQ\":\"America/Godthab\",\"AOR\":\"Asia/Kuala_Lumpur\",\"AOS\":\"America/Anchorage\",\"AOT\":\"Europe/Rome\",\"AOU\":\"Asia/Vientiane\",\"AOY\":\"Asia/Tehran\",\"APA\":\"America/Denver\",\"APB\":\"America/La_Paz\",\"APC\":\"America/Los_Angeles\",\"APE\":\"America/Lima\",\"APF\":\"America/New_York\",\"APG\":\"America/New_York\",\"APH\":\"America/New_York\",\"API\":\"America/Bogota\",\"APK\":\"Pacific/Tahiti\",\"APL\":\"Africa/Maputo\",\"APN\":\"America/New_York\",\"APO\":\"America/Bogota\",\"APP\":\"Pacific/Port_Moresby\",\"APQ\":\"America/Belem\",\"APR\":\"Pacific/Port_Moresby\",\"APS\":\"America/Sao_Paulo\",\"APT\":\"America/Chicago\",\"APU\":\"America/Sao_Paulo\",\"APV\":\"America/Los_Angeles\",\"APW\":\"Pacific/Apia\",\"APX\":\"America/Sao_Paulo\",\"APY\":\"America/Belem\",\"APZ\":\"America/Argentina/Buenos_Aires\",\"AQA\":\"America/Sao_Paulo\",\"AQG\":\"Asia/Shanghai\",\"AQI\":\"Asia/Riyadh\",\"AQJ\":\"Asia/Amman\",\"AQM\":\"America/Porto_Velho\",\"AQP\":\"America/Lima\",\"AQS\":\"Pacific/Fiji\",\"AQY\":\"America/Anchorage\",\"ARA\":\"America/Chicago\",\"ARB\":\"America/New_York\",\"ARC\":\"America/Anchorage\",\"ARD\":\"Asia/Makassar\",\"ARE\":\"America/Puerto_Rico\",\"ARF\":\"America/Bogota\",\"ARG\":\"America/Chicago\",\"ARH\":\"Europe/Moscow\",\"ARI\":\"America/Santiago\",\"ARJ\":\"Asia/Jayapura\",\"ARK\":\"Africa/Dar_es_Salaam\",\"ARL\":\"Africa/Ouagadougou\",\"ARM\":\"Australia/Sydney\",\"ARN\":\"Europe/Stockholm\",\"ARO\":\"America/Bogota\",\"ARP\":\"Pacific/Port_Moresby\",\"ARQ\":\"America/Bogota\",\"ARR\":\"America/Argentina/Buenos_Aires\",\"ARS\":\"America/Sao_Paulo\",\"ART\":\"America/New_York\",\"ARU\":\"America/Sao_Paulo\",\"ARV\":\"America/Chicago\",\"ARW\":\"Europe/Bucharest\",\"ARX\":\"America/Belem\",\"ARY\":\"Australia/Sydney\",\"ARZ\":\"Africa/Luanda\",\"ASA\":\"Africa/Asmara\",\"ASB\":\"Asia/Ashgabat\",\"ASC\":\"America/La_Paz\",\"ASD\":\"America/Nassau\",\"ASE\":\"America/Denver\",\"ASF\":\"Europe/Samara\",\"ASG\":\"Pacific/Auckland\",\"ASH\":\"America/New_York\",\"ASI\":\"Atlantic/St_Helena\",\"ASJ\":\"Asia/Tokyo\",\"ASK\":\"Africa/Abidjan\",\"ASL\":\"America/Chicago\",\"ASM\":\"Africa/Asmara\",\"ASN\":\"America/Chicago\",\"ASO\":\"Africa/Addis_Ababa\",\"ASP\":\"Australia/Darwin\",\"ASQ\":\"America/Los_Angeles\",\"ASR\":\"Europe/Istanbul\",\"ASS\":\"Africa/Johannesburg\",\"AST\":\"America/Los_Angeles\",\"ASU\":\"America/Asuncion\",\"ASV\":\"Africa/Nairobi\",\"ASW\":\"Africa/Cairo\",\"ASX\":\"America/Chicago\",\"ASY\":\"America/Chicago\",\"ASZ\":\"Pacific/Port_Moresby\",\"ATA\":\"America/Lima\",\"ATB\":\"Africa/Khartoum\",\"ATC\":\"America/Nassau\",\"ATD\":\"Pacific/Guadalcanal\",\"ATE\":\"America/Chicago\",\"ATF\":\"America/Guayaquil\",\"ATG\":\"Asia/Karachi\",\"ATH\":\"Europe/Athens\",\"ATI\":\"America/Montevideo\",\"ATJ\":\"Indian/Antananarivo\",\"ATK\":\"America/Anchorage\",\"ATL\":\"America/New_York\",\"ATM\":\"America/Belem\",\"ATN\":\"Pacific/Port_Moresby\",\"ATO\":\"America/New_York\",\"ATP\":\"Pacific/Port_Moresby\",\"ATQ\":\"Asia/Kolkata\",\"ATR\":\"Africa/Nouakchott\",\"ATS\":\"America/Denver\",\"ATT\":\"America/Anchorage\",\"ATU\":\"America/Adak\",\"ATV\":\"Africa/Ndjamena\",\"ATW\":\"America/Chicago\",\"ATX\":\"Asia/Almaty\",\"ATY\":\"America/Chicago\",\"ATZ\":\"Africa/Cairo\",\"AUA\":\"America/Aruba\",\"AUB\":\"America/Campo_Grande\",\"AUC\":\"America/Bogota\",\"AUD\":\"Australia/Brisbane\",\"AUE\":\"Africa/Cairo\",\"AUF\":\"Europe/Paris\",\"AUG\":\"America/New_York\",\"AUH\":\"Asia/Dubai\",\"AUI\":\"Pacific/Port_Moresby\",\"AUJ\":\"Pacific/Port_Moresby\",\"AUK\":\"America/Anchorage\",\"AUL\":\"Pacific/Majuro\",\"AUM\":\"America/Chicago\",\"AUN\":\"America/Los_Angeles\",\"AUO\":\"America/Chicago\",\"AUP\":\"Pacific/Port_Moresby\",\"AUQ\":\"Pacific/Marquesas\",\"AUR\":\"Europe/Paris\",\"AUS\":\"America/Chicago\",\"AUT\":\"Asia/Jayapura\",\"AUU\":\"Australia/Brisbane\",\"AUV\":\"Pacific/Port_Moresby\",\"AUW\":\"America/Chicago\",\"AUX\":\"America/Belem\",\"AUY\":\"Pacific/Efate\",\"AUZ\":\"America/Chicago\",\"AVA\":\"Asia/Shanghai\",\"AVB\":\"Europe/Rome\",\"AVF\":\"Europe/Paris\",\"AVG\":\"Australia/Darwin\",\"AVI\":\"America/Havana\",\"AVK\":\"Asia/Ulaanbaatar\",\"AVL\":\"America/New_York\",\"AVN\":\"Europe/Paris\",\"AVO\":\"America/New_York\",\"AVP\":\"America/New_York\",\"AVR\":\"Europe/Lisbon\",\"AVU\":\"Pacific/Guadalcanal\",\"AVV\":\"Australia/Sydney\",\"AVW\":\"America/Phoenix\",\"AVX\":\"America/Los_Angeles\",\"AWA\":\"Africa/Addis_Ababa\",\"AWB\":\"Pacific/Port_Moresby\",\"AWD\":\"Pacific/Efate\",\"AWE\":\"Africa/Libreville\",\"AWH\":\"Africa/Addis_Ababa\",\"AWK\":\"Pacific/Wake\",\"AWM\":\"America/Chicago\",\"AWN\":\"Australia/Adelaide\",\"AWP\":\"Australia/Darwin\",\"AWR\":\"Pacific/Port_Moresby\",\"AWT\":\"Asia/Kolkata\",\"AWZ\":\"Asia/Tehran\",\"AXA\":\"America/Anguilla\",\"AXB\":\"America/New_York\",\"AXC\":\"Australia/Brisbane\",\"AXD\":\"Europe/Athens\",\"AXE\":\"America/Sao_Paulo\",\"AXF\":\"Asia/Shanghai\",\"AXG\":\"America/Chicago\",\"AXJ\":\"Asia/Tokyo\",\"AXK\":\"Asia/Aden\",\"AXL\":\"Australia/Darwin\",\"AXM\":\"America/Bogota\",\"AXN\":\"America/Chicago\",\"AXP\":\"America/Nassau\",\"AXR\":\"Pacific/Tahiti\",\"AXS\":\"America/Chicago\",\"AXT\":\"Asia/Tokyo\",\"AXU\":\"Africa/Addis_Ababa\",\"AXV\":\"America/New_York\",\"AXX\":\"America/Denver\",\"AYA\":\"America/Bogota\",\"AYC\":\"America/Bogota\",\"AYD\":\"Australia/Darwin\",\"AYE\":\"America/New_York\",\"AYG\":\"America/Bogota\",\"AYH\":\"Europe/London\",\"AYI\":\"America/Bogota\",\"AYK\":\"Asia/Qostanay\",\"AYL\":\"Australia/Darwin\",\"AYN\":\"Asia/Shanghai\",\"AYO\":\"America/Asuncion\",\"AYP\":\"America/Lima\",\"AYQ\":\"Australia/Darwin\",\"AYR\":\"Australia/Brisbane\",\"AYS\":\"America/New_York\",\"AYT\":\"Europe/Istanbul\",\"AYU\":\"Pacific/Port_Moresby\",\"AYW\":\"Asia/Jayapura\",\"AYX\":\"America/Lima\",\"AYZ\":\"America/New_York\",\"AZA\":\"America/Phoenix\",\"AZB\":\"Pacific/Port_Moresby\",\"AZD\":\"Asia/Tehran\",\"AZG\":\"America/Mexico_City\",\"AZI\":\"Asia/Dubai\",\"AZN\":\"Asia/Tashkent\",\"AZO\":\"America/New_York\",\"AZP\":\"America/Mexico_City\",\"AZR\":\"Africa/Algiers\",\"AZS\":\"America/Santo_Domingo\",\"AZT\":\"America/Bogota\",\"AZZ\":\"Africa/Luanda\",\"BAA\":\"Pacific/Port_Moresby\",\"BAB\":\"America/Los_Angeles\",\"BAC\":\"America/Bogota\",\"BAD\":\"America/Chicago\",\"BAE\":\"Europe/Paris\",\"BAF\":\"America/New_York\",\"BAG\":\"Asia/Manila\",\"BAH\":\"Asia/Bahrain\",\"BAI\":\"America/Costa_Rica\",\"BAJ\":\"Pacific/Port_Moresby\",\"BAK\":\"Asia/Baku\",\"BAL\":\"Europe/Istanbul\",\"BAM\":\"America/Los_Angeles\",\"BAN\":\"Africa/Lubumbashi\",\"BAP\":\"Pacific/Port_Moresby\",\"BAQ\":\"America/Bogota\",\"BAR\":\"Asia/Shanghai\",\"BAS\":\"Pacific/Guadalcanal\",\"BAT\":\"America/Sao_Paulo\",\"BAV\":\"Asia/Shanghai\",\"BAW\":\"Africa/Libreville\",\"BAX\":\"Asia/Krasnoyarsk\",\"BAY\":\"Europe/Bucharest\",\"BAZ\":\"America/Porto_Velho\",\"BBA\":\"America/Santiago\",\"BBB\":\"America/Chicago\",\"BBC\":\"America/Chicago\",\"BBD\":\"America/Chicago\",\"BBE\":\"Australia/Perth\",\"BBF\":\"America/New_York\",\"BBG\":\"Pacific/Tarawa\",\"BBH\":\"Europe/Berlin\",\"BBI\":\"Asia/Kolkata\",\"BBJ\":\"Europe/Berlin\",\"BBK\":\"Africa/Gaborone\",\"BBL\":\"Australia/Brisbane\",\"BBM\":\"Asia/Phnom_Penh\",\"BBN\":\"Asia/Kuala_Lumpur\",\"BBO\":\"Africa/Mogadishu\",\"BBP\":\"Europe/London\",\"BBQ\":\"America/Antigua\",\"BBR\":\"America/Guadeloupe\",\"BBS\":\"Europe/London\",\"BBT\":\"Africa/Bangui\",\"BBU\":\"Europe/Bucharest\",\"BBV\":\"Africa/Abidjan\",\"BBW\":\"America/Chicago\",\"BBX\":\"America/New_York\",\"BBY\":\"Africa/Bangui\",\"BBZ\":\"Africa/Lusaka\",\"BCA\":\"America/Havana\",\"BCB\":\"America/New_York\",\"BCC\":\"America/Anchorage\",\"BCD\":\"Asia/Manila\",\"BCE\":\"America/Denver\",\"BCF\":\"Africa/Bangui\",\"BCG\":\"America/Guyana\",\"BCH\":\"Asia/Jayapura\",\"BCI\":\"Australia/Brisbane\",\"BCJ\":\"America/Denver\",\"BCK\":\"Australia/Brisbane\",\"BCL\":\"America/Costa_Rica\",\"BCM\":\"Europe/Bucharest\",\"BCN\":\"Europe/Madrid\",\"BCO\":\"Africa/Addis_Ababa\",\"BCP\":\"Pacific/Port_Moresby\",\"BCQ\":\"Africa/Tripoli\",\"BCR\":\"America/Porto_Velho\",\"BCS\":\"America/Chicago\",\"BCT\":\"America/New_York\",\"BCU\":\"Africa/Lagos\",\"BCV\":\"America/Belize\",\"BCW\":\"Africa/Maputo\",\"BCX\":\"Asia/Yekaterinburg\",\"BCY\":\"Africa/Addis_Ababa\",\"BCZ\":\"Australia/Darwin\",\"BDA\":\"Atlantic/Bermuda\",\"BDB\":\"Australia/Brisbane\",\"BDC\":\"America/Belem\",\"BDD\":\"Australia/Brisbane\",\"BDE\":\"America/Chicago\",\"BDF\":\"America/Chicago\",\"BDG\":\"America/Denver\",\"BDH\":\"Asia/Tehran\",\"BDI\":\"Indian/Mahe\",\"BDJ\":\"Asia/Makassar\",\"BDK\":\"Africa/Abidjan\",\"BDL\":\"America/New_York\",\"BDM\":\"Europe/Istanbul\",\"BDN\":\"Asia/Karachi\",\"BDO\":\"Asia/Jakarta\",\"BDP\":\"Asia/Kathmandu\",\"BDQ\":\"Asia/Kolkata\",\"BDR\":\"America/New_York\",\"BDS\":\"Europe/Rome\",\"BDT\":\"Africa/Kinshasa\",\"BDU\":\"Europe/Oslo\",\"BDV\":\"Africa/Lubumbashi\",\"BDW\":\"Australia/Perth\",\"BDX\":\"America/Denver\",\"BDY\":\"America/Los_Angeles\",\"BDZ\":\"Pacific/Port_Moresby\",\"BEA\":\"Pacific/Port_Moresby\",\"BEB\":\"Europe/London\",\"BEC\":\"America/Chicago\",\"BED\":\"America/New_York\",\"BEE\":\"Australia/Perth\",\"BEF\":\"America/Managua\",\"BEG\":\"Europe/Belgrade\",\"BEH\":\"America/New_York\",\"BEI\":\"Africa/Addis_Ababa\",\"BEJ\":\"Asia/Makassar\",\"BEK\":\"Asia/Kolkata\",\"BEL\":\"America/Belem\",\"BEM\":\"Africa/Casablanca\",\"BEN\":\"Africa/Tripoli\",\"BEO\":\"Australia/Sydney\",\"BEP\":\"Asia/Kolkata\",\"BEQ\":\"Europe/London\",\"BES\":\"Europe/Paris\",\"BET\":\"America/Anchorage\",\"BEU\":\"Australia/Brisbane\",\"BEV\":\"Asia/Jerusalem\",\"BEW\":\"Africa/Maputo\",\"BEX\":\"Europe/London\",\"BEY\":\"Asia/Beirut\",\"BEZ\":\"Pacific/Tarawa\",\"BFA\":\"America/Asuncion\",\"BFB\":\"America/Anchorage\",\"BFC\":\"Australia/Brisbane\",\"BFD\":\"America/New_York\",\"BFE\":\"Europe/Berlin\",\"BFF\":\"America/Denver\",\"BFG\":\"America/Denver\",\"BFH\":\"America/Sao_Paulo\",\"BFI\":\"America/Los_Angeles\",\"BFJ\":\"Asia/Shanghai\",\"BFK\":\"America/Denver\",\"BFL\":\"America/Los_Angeles\",\"BFM\":\"America/Chicago\",\"BFN\":\"Africa/Johannesburg\",\"BFO\":\"Africa/Harare\",\"BFP\":\"America/New_York\",\"BFQ\":\"America/Panama\",\"BFR\":\"America/Indiana/Indianapolis\",\"BFS\":\"Europe/London\",\"BFT\":\"America/New_York\",\"BFU\":\"Asia/Shanghai\",\"BFV\":\"Asia/Bangkok\",\"BFW\":\"Africa/Algiers\",\"BFX\":\"Africa/Douala\",\"BGA\":\"America/Bogota\",\"BGB\":\"Africa/Libreville\",\"BGC\":\"Europe/Lisbon\",\"BGD\":\"America/Chicago\",\"BGE\":\"America/New_York\",\"BGF\":\"Africa/Bangui\",\"BGG\":\"Europe/Istanbul\",\"BGH\":\"Africa/Nouakchott\",\"BGI\":\"America/Barbados\",\"BGJ\":\"Atlantic/Reykjavik\",\"BGK\":\"America/Belize\",\"BGL\":\"Asia/Kathmandu\",\"BGM\":\"America/New_York\",\"BGN\":\"Asia/Magadan\",\"BGO\":\"Europe/Oslo\",\"BGP\":\"Africa/Libreville\",\"BGQ\":\"America/Anchorage\",\"BGR\":\"America/New_York\",\"BGS\":\"America/Chicago\",\"BGT\":\"America/Phoenix\",\"BGU\":\"Africa/Bangui\",\"BGV\":\"America/Sao_Paulo\",\"BGW\":\"Asia/Baghdad\",\"BGX\":\"America/Sao_Paulo\",\"BGY\":\"Europe/Rome\",\"BGZ\":\"Europe/Lisbon\",\"BHA\":\"America/Guayaquil\",\"BHB\":\"America/New_York\",\"BHC\":\"Asia/Karachi\",\"BHD\":\"Europe/London\",\"BHE\":\"Pacific/Auckland\",\"BHF\":\"America/Bogota\",\"BHG\":\"America/Tegucigalpa\",\"BHH\":\"Asia/Riyadh\",\"BHI\":\"America/Argentina/Buenos_Aires\",\"BHJ\":\"Asia/Kolkata\",\"BHK\":\"Asia/Tashkent\",\"BHL\":\"America/Tijuana\",\"BHM\":\"America/Chicago\",\"BHN\":\"Asia/Aden\",\"BHO\":\"Asia/Kolkata\",\"BHP\":\"Asia/Kathmandu\",\"BHQ\":\"Australia/Adelaide\",\"BHR\":\"Asia/Kathmandu\",\"BHS\":\"Australia/Sydney\",\"BHT\":\"Australia/Brisbane\",\"BHU\":\"Asia/Kolkata\",\"BHV\":\"Asia/Karachi\",\"BHW\":\"Asia/Karachi\",\"BHX\":\"Europe/London\",\"BHY\":\"Asia/Shanghai\",\"BIA\":\"Europe/Paris\",\"BIB\":\"Africa/Mogadishu\",\"BIC\":\"America/Anchorage\",\"BID\":\"America/New_York\",\"BIE\":\"America/Chicago\",\"BIF\":\"America/Denver\",\"BIG\":\"America/Anchorage\",\"BIH\":\"America/Los_Angeles\",\"BII\":\"Pacific/Majuro\",\"BIJ\":\"Pacific/Port_Moresby\",\"BIK\":\"Asia/Jayapura\",\"BIL\":\"America/Denver\",\"BIM\":\"America/Nassau\",\"BIN\":\"Asia/Kabul\",\"BIO\":\"Europe/Madrid\",\"BIP\":\"Australia/Brisbane\",\"BIQ\":\"Europe/Paris\",\"BIR\":\"Asia/Kathmandu\",\"BIS\":\"America/Chicago\",\"BIT\":\"Asia/Kathmandu\",\"BIU\":\"Atlantic/Reykjavik\",\"BIV\":\"Africa/Bangui\",\"BIW\":\"Australia/Perth\",\"BIX\":\"America/Chicago\",\"BIY\":\"Africa/Johannesburg\",\"BIZ\":\"Pacific/Port_Moresby\",\"BJA\":\"Africa/Algiers\",\"BJB\":\"Asia/Tehran\",\"BJC\":\"America/Denver\",\"BJD\":\"Atlantic/Reykjavik\",\"BJE\":\"Africa/Khartoum\",\"BJF\":\"Europe/Oslo\",\"BJG\":\"Asia/Makassar\",\"BJH\":\"Asia/Kathmandu\",\"BJI\":\"America/Chicago\",\"BJJ\":\"America/New_York\",\"BJK\":\"Asia/Jayapura\",\"BJL\":\"Africa/Banjul\",\"BJM\":\"Africa/Bujumbura\",\"BJN\":\"Africa/Maputo\",\"BJO\":\"America/La_Paz\",\"BJP\":\"America/Sao_Paulo\",\"BJQ\":\"Asia/Muscat\",\"BJR\":\"Africa/Addis_Ababa\",\"BJT\":\"Asia/Colombo\",\"BJU\":\"Asia/Kathmandu\",\"BJV\":\"Europe/Istanbul\",\"BJW\":\"Asia/Makassar\",\"BJX\":\"America/Mexico_City\",\"BJY\":\"Europe/Belgrade\",\"BJZ\":\"Europe/Madrid\",\"BKB\":\"Asia/Kolkata\",\"BKC\":\"America/Anchorage\",\"BKD\":\"America/Chicago\",\"BKE\":\"America/Los_Angeles\",\"BKF\":\"America/Anchorage\",\"BKG\":\"America/Chicago\",\"BKH\":\"Pacific/Honolulu\",\"BKI\":\"Asia/Kuala_Lumpur\",\"BKJ\":\"Africa/Conakry\",\"BKK\":\"Asia/Bangkok\",\"BKL\":\"America/New_York\",\"BKM\":\"Asia/Kuala_Lumpur\",\"BKN\":\"Asia/Ashgabat\",\"BKO\":\"Africa/Bamako\",\"BKP\":\"Australia/Brisbane\",\"BKQ\":\"Australia/Brisbane\",\"BKR\":\"Africa/Ndjamena\",\"BKS\":\"Asia/Jakarta\",\"BKT\":\"America/New_York\",\"BKU\":\"Indian/Antananarivo\",\"BKV\":\"Asia/Shanghai\",\"BKW\":\"America/New_York\",\"BKX\":\"America/Chicago\",\"BKY\":\"Africa/Lubumbashi\",\"BKZ\":\"Africa/Dar_es_Salaam\",\"BLA\":\"America/Caracas\",\"BLB\":\"America/Panama\",\"BLC\":\"Africa/Douala\",\"BLD\":\"America/Los_Angeles\",\"BLE\":\"Europe/Stockholm\",\"BLF\":\"America/New_York\",\"BLG\":\"Asia/Kuala_Lumpur\",\"BLH\":\"America/Los_Angeles\",\"BLI\":\"America/Los_Angeles\",\"BLJ\":\"Africa/Algiers\",\"BLK\":\"Europe/London\",\"BLL\":\"Europe/Copenhagen\",\"BLM\":\"America/New_York\",\"BLN\":\"Australia/Sydney\",\"BLO\":\"Atlantic/Reykjavik\",\"BLP\":\"America/Lima\",\"BLQ\":\"Europe/Rome\",\"BLR\":\"Asia/Kolkata\",\"BLS\":\"Australia/Brisbane\",\"BLT\":\"Australia/Brisbane\",\"BLU\":\"America/Los_Angeles\",\"BLV\":\"America/Chicago\",\"BLW\":\"Africa/Mogadishu\",\"BLX\":\"Europe/Rome\",\"BLY\":\"Europe/Dublin\",\"BLZ\":\"Africa/Blantyre\",\"BMA\":\"Europe/Stockholm\",\"BMB\":\"Africa/Kinshasa\",\"BMC\":\"America/Denver\",\"BMD\":\"Indian/Antananarivo\",\"BME\":\"Australia/Perth\",\"BMF\":\"Africa/Bangui\",\"BMG\":\"America/Indiana/Indianapolis\",\"BMH\":\"Pacific/Port_Moresby\",\"BMI\":\"America/Chicago\",\"BMJ\":\"America/Guyana\",\"BMK\":\"Europe/Berlin\",\"BML\":\"America/New_York\",\"BMM\":\"Africa/Libreville\",\"BMN\":\"Asia/Baghdad\",\"BMO\":\"Asia/Yangon\",\"BMP\":\"Australia/Brisbane\",\"BMQ\":\"Africa/Nairobi\",\"BMR\":\"Europe/Berlin\",\"BMS\":\"America/Belem\",\"BMT\":\"America/Chicago\",\"BMU\":\"Asia/Makassar\",\"BMV\":\"Asia/Ho_Chi_Minh\",\"BMW\":\"Africa/Algiers\",\"BMX\":\"America/Anchorage\",\"BMY\":\"Pacific/Noumea\",\"BMZ\":\"Pacific/Port_Moresby\",\"BNA\":\"America/Chicago\",\"BNB\":\"Africa/Kinshasa\",\"BNC\":\"Africa/Lubumbashi\",\"BND\":\"Asia/Tehran\",\"BNE\":\"Australia/Brisbane\",\"BNF\":\"America/Anchorage\",\"BNG\":\"America/Los_Angeles\",\"BNH\":\"America/New_York\",\"BNI\":\"Africa/Lagos\",\"BNK\":\"Australia/Sydney\",\"BNL\":\"America/New_York\",\"BNM\":\"Pacific/Port_Moresby\",\"BNN\":\"Europe/Oslo\",\"BNO\":\"America/Los_Angeles\",\"BNP\":\"Asia/Karachi\",\"BNQ\":\"Asia/Manila\",\"BNR\":\"Africa/Ouagadougou\",\"BNS\":\"America/Caracas\",\"BNT\":\"Pacific/Port_Moresby\",\"BNU\":\"America/Sao_Paulo\",\"BNV\":\"Pacific/Port_Moresby\",\"BNW\":\"America/Chicago\",\"BNX\":\"Europe/Sarajevo\",\"BNY\":\"Pacific/Guadalcanal\",\"BNZ\":\"Pacific/Port_Moresby\",\"BOA\":\"Africa/Kinshasa\",\"BOB\":\"Pacific/Tahiti\",\"BOC\":\"America/Panama\",\"BOD\":\"Europe/Paris\",\"BOE\":\"Africa/Brazzaville\",\"BOF\":\"America/New_York\",\"BOG\":\"America/Bogota\",\"BOH\":\"Europe/London\",\"BOI\":\"America/Denver\",\"BOJ\":\"Europe/Sofia\",\"BOK\":\"America/Los_Angeles\",\"BOL\":\"Europe/London\",\"BOM\":\"Asia/Kolkata\",\"BON\":\"America/Curacao\",\"BOO\":\"Europe/Oslo\",\"BOP\":\"Africa/Bangui\",\"BOQ\":\"Pacific/Port_Moresby\",\"BOR\":\"Europe/Paris\",\"BOS\":\"America/New_York\",\"BOT\":\"Pacific/Port_Moresby\",\"BOU\":\"Europe/Paris\",\"BOV\":\"Pacific/Port_Moresby\",\"BOW\":\"America/New_York\",\"BOX\":\"Australia/Darwin\",\"BOY\":\"Africa/Ouagadougou\",\"BOZ\":\"Africa/Bangui\",\"BPA\":\"America/New_York\",\"BPB\":\"Pacific/Port_Moresby\",\"BPC\":\"Africa/Douala\",\"BPD\":\"Pacific/Port_Moresby\",\"BPE\":\"Asia/Shanghai\",\"BPF\":\"Pacific/Guadalcanal\",\"BPG\":\"America/Campo_Grande\",\"BPH\":\"Asia/Manila\",\"BPI\":\"America/Denver\",\"BPK\":\"Pacific/Port_Moresby\",\"BPL\":\"Asia/Shanghai\",\"BPN\":\"Asia/Makassar\",\"BPS\":\"America/Belem\",\"BPT\":\"America/Chicago\",\"BPU\":\"Asia/Tokyo\",\"BPX\":\"Asia/Shanghai\",\"BPY\":\"Indian/Antananarivo\",\"BQA\":\"Asia/Manila\",\"BQB\":\"Australia/Perth\",\"BQE\":\"Africa/Bissau\",\"BQG\":\"Asia/Vladivostok\",\"BQH\":\"Europe/London\",\"BQI\":\"Africa/Windhoek\",\"BQJ\":\"Asia/Vladivostok\",\"BQK\":\"America/New_York\",\"BQL\":\"Australia/Brisbane\",\"BQN\":\"America/Puerto_Rico\",\"BQO\":\"Africa/Abidjan\",\"BQQ\":\"America/Belem\",\"BQS\":\"Asia/Yakutsk\",\"BQT\":\"Europe/Minsk\",\"BQU\":\"America/St_Vincent\",\"BQV\":\"America/Anchorage\",\"BQW\":\"Australia/Perth\",\"BRA\":\"America/Belem\",\"BRB\":\"America/Belem\",\"BRC\":\"America/Argentina/Buenos_Aires\",\"BRD\":\"America/Chicago\",\"BRE\":\"Europe/Berlin\",\"BRG\":\"America/New_York\",\"BRH\":\"Pacific/Port_Moresby\",\"BRI\":\"Europe/Rome\",\"BRJ\":\"Australia/Sydney\",\"BRK\":\"Australia/Sydney\",\"BRL\":\"America/Chicago\",\"BRM\":\"America/Caracas\",\"BRN\":\"Europe/Zurich\",\"BRO\":\"America/Chicago\",\"BRP\":\"Pacific/Port_Moresby\",\"BRQ\":\"Europe/Prague\",\"BRR\":\"Europe/London\",\"BRS\":\"Europe/London\",\"BRT\":\"Australia/Darwin\",\"BRU\":\"Europe/Brussels\",\"BRV\":\"Europe/Berlin\",\"BRW\":\"America/Anchorage\",\"BRX\":\"America/Santo_Domingo\",\"BRY\":\"America/New_York\",\"BSA\":\"Africa/Mogadishu\",\"BSB\":\"America/Sao_Paulo\",\"BSC\":\"America/Bogota\",\"BSD\":\"Asia/Shanghai\",\"BSE\":\"Asia/Kuala_Lumpur\",\"BSF\":\"Pacific/Honolulu\",\"BSG\":\"Africa/Malabo\",\"BSH\":\"Europe/London\",\"BSI\":\"Asia/Manila\",\"BSJ\":\"Australia/Sydney\",\"BSK\":\"Africa/Algiers\",\"BSL\":\"Europe/Paris\",\"BSM\":\"Asia/Tehran\",\"BSN\":\"Africa/Bangui\",\"BSO\":\"Asia/Manila\",\"BSP\":\"Pacific/Port_Moresby\",\"BSQ\":\"America/Phoenix\",\"BSR\":\"Asia/Baghdad\",\"BSS\":\"America/Belem\",\"BST\":\"Asia/Kabul\",\"BSU\":\"Africa/Kinshasa\",\"BSV\":\"Indian/Antananarivo\",\"BSW\":\"America/Anchorage\",\"BSX\":\"Asia/Yangon\",\"BSY\":\"Africa/Mogadishu\",\"BSZ\":\"America/Anchorage\",\"BTA\":\"Africa/Douala\",\"BTB\":\"Africa/Brazzaville\",\"BTC\":\"Asia/Colombo\",\"BTD\":\"Australia/Darwin\",\"BTE\":\"Africa/Freetown\",\"BTF\":\"America/Denver\",\"BTG\":\"Africa/Bangui\",\"BTH\":\"Asia/Jakarta\",\"BTI\":\"America/Anchorage\",\"BTJ\":\"Asia/Jakarta\",\"BTK\":\"Asia/Irkutsk\",\"BTL\":\"America/New_York\",\"BTM\":\"America/Denver\",\"BTN\":\"America/New_York\",\"BTO\":\"America/Paramaribo\",\"BTP\":\"America/New_York\",\"BTQ\":\"Africa/Kigali\",\"BTR\":\"America/Chicago\",\"BTS\":\"Europe/Bratislava\",\"BTT\":\"America/Anchorage\",\"BTU\":\"Asia/Kuala_Lumpur\",\"BTV\":\"America/New_York\",\"BTW\":\"Asia/Makassar\",\"BTX\":\"Australia/Brisbane\",\"BTY\":\"America/Los_Angeles\",\"BUA\":\"Pacific/Bougainville\",\"BUB\":\"America/Chicago\",\"BUC\":\"Australia/Brisbane\",\"BUD\":\"Europe/Budapest\",\"BUF\":\"America/New_York\",\"BUG\":\"Africa/Luanda\",\"BUI\":\"Asia/Jayapura\",\"BUJ\":\"Africa/Algiers\",\"BUK\":\"Asia/Aden\",\"BUL\":\"Pacific/Port_Moresby\",\"BUM\":\"America/Chicago\",\"BUN\":\"America/Bogota\",\"BUO\":\"Africa/Mogadishu\",\"BUP\":\"Asia/Kolkata\",\"BUQ\":\"Africa/Harare\",\"BUR\":\"America/Los_Angeles\",\"BUS\":\"Asia/Tbilisi\",\"BUT\":\"Asia/Thimphu\",\"BUU\":\"Asia/Jakarta\",\"BUV\":\"America/Montevideo\",\"BUW\":\"Asia/Makassar\",\"BUX\":\"Africa/Lubumbashi\",\"BUY\":\"Australia/Perth\",\"BUZ\":\"Asia/Tehran\",\"BVA\":\"Europe/Paris\",\"BVB\":\"America/Porto_Velho\",\"BVC\":\"Atlantic/Cape_Verde\",\"BVD\":\"America/Anchorage\",\"BVE\":\"Europe/Paris\",\"BVF\":\"Pacific/Fiji\",\"BVG\":\"Europe/Oslo\",\"BVH\":\"America/Porto_Velho\",\"BVI\":\"Australia/Brisbane\",\"BVJ\":\"Asia/Yekaterinburg\",\"BVK\":\"America/La_Paz\",\"BVL\":\"America/La_Paz\",\"BVM\":\"America/Belem\",\"BVO\":\"America/Chicago\",\"BVP\":\"Pacific/Port_Moresby\",\"BVR\":\"Atlantic/Cape_Verde\",\"BVS\":\"America/Belem\",\"BVU\":\"America/Anchorage\",\"BVV\":\"Asia/Magadan\",\"BVW\":\"Australia/Brisbane\",\"BVX\":\"America/Chicago\",\"BVY\":\"America/New_York\",\"BVZ\":\"Australia/Perth\",\"BWA\":\"Asia/Kathmandu\",\"BWB\":\"Australia/Perth\",\"BWC\":\"America/Los_Angeles\",\"BWD\":\"America/Chicago\",\"BWE\":\"Europe/Berlin\",\"BWF\":\"Europe/London\",\"BWG\":\"America/Chicago\",\"BWH\":\"Asia/Kuala_Lumpur\",\"BWI\":\"America/New_York\",\"BWJ\":\"Pacific/Port_Moresby\",\"BWK\":\"Europe/Zagreb\",\"BWL\":\"America/Chicago\",\"BWM\":\"America/Denver\",\"BWN\":\"Asia/Brunei\",\"BWO\":\"Europe/Saratov\",\"BWP\":\"Pacific/Port_Moresby\",\"BWQ\":\"Australia/Sydney\",\"BWS\":\"America/Los_Angeles\",\"BWT\":\"Australia/Hobart\",\"BWU\":\"Australia/Sydney\",\"BWX\":\"Asia/Jakarta\",\"BWY\":\"Europe/London\",\"BXA\":\"America/Chicago\",\"BXB\":\"Asia/Jayapura\",\"BXC\":\"America/New_York\",\"BXD\":\"Asia/Jayapura\",\"BXE\":\"Africa/Dakar\",\"BXF\":\"Australia/Perth\",\"BXG\":\"Australia/Sydney\",\"BXH\":\"Asia/Almaty\",\"BXI\":\"Africa/Abidjan\",\"BXJ\":\"Asia/Almaty\",\"BXK\":\"America/Phoenix\",\"BXL\":\"Pacific/Fiji\",\"BXM\":\"Asia/Jayapura\",\"BXN\":\"Europe/Istanbul\",\"BXO\":\"Europe/Zurich\",\"BXR\":\"Asia/Tehran\",\"BXS\":\"America/Los_Angeles\",\"BXT\":\"Asia/Makassar\",\"BXU\":\"Asia/Manila\",\"BXV\":\"Atlantic/Reykjavik\",\"BXX\":\"Africa/Mogadishu\",\"BXY\":\"Asia/Qyzylorda\",\"BXZ\":\"Pacific/Port_Moresby\",\"BYA\":\"America/Anchorage\",\"BYB\":\"Asia/Muscat\",\"BYC\":\"America/La_Paz\",\"BYD\":\"Asia/Aden\",\"BYF\":\"Europe/Paris\",\"BYG\":\"America/Denver\",\"BYH\":\"America/Chicago\",\"BYI\":\"America/Denver\",\"BYJ\":\"Europe/Lisbon\",\"BYK\":\"Africa/Abidjan\",\"BYL\":\"Africa/Monrovia\",\"BYM\":\"America/Havana\",\"BYN\":\"Asia/Ulaanbaatar\",\"BYO\":\"America/Campo_Grande\",\"BYP\":\"Australia/Perth\",\"BYQ\":\"Asia/Makassar\",\"BYR\":\"Europe/Copenhagen\",\"BYS\":\"America/Los_Angeles\",\"BYT\":\"Europe/Dublin\",\"BYU\":\"Europe/Berlin\",\"BYW\":\"America/Los_Angeles\",\"BYX\":\"Australia/Darwin\",\"BZA\":\"America/Managua\",\"BZB\":\"Africa/Maputo\",\"BZC\":\"America/Sao_Paulo\",\"BZD\":\"Australia/Sydney\",\"BZE\":\"America/Belize\",\"BZF\":\"America/Los_Angeles\",\"BZG\":\"Europe/Warsaw\",\"BZH\":\"Africa/Harare\",\"BZI\":\"Europe/Istanbul\",\"BZK\":\"Europe/Moscow\",\"BZL\":\"Asia/Dhaka\",\"BZM\":\"Indian/Antananarivo\",\"BZN\":\"America/Denver\",\"BZO\":\"Europe/Rome\",\"BZP\":\"Australia/Brisbane\",\"BZR\":\"Europe/Paris\",\"BZS\":\"America/New_York\",\"BZT\":\"America/Chicago\",\"BZU\":\"Africa/Lubumbashi\",\"BZV\":\"Africa/Brazzaville\",\"BZX\":\"Asia/Shanghai\",\"BZY\":\"Europe/Chisinau\",\"BZZ\":\"Europe/London\",\"CAA\":\"America/Tegucigalpa\",\"CAB\":\"Africa/Luanda\",\"CAC\":\"America/Sao_Paulo\",\"CAD\":\"America/New_York\",\"CAE\":\"America/New_York\",\"CAF\":\"America/Porto_Velho\",\"CAG\":\"Europe/Rome\",\"CAH\":\"Asia/Ho_Chi_Minh\",\"CAI\":\"Africa/Cairo\",\"CAJ\":\"America/Caracas\",\"CAK\":\"America/New_York\",\"CAL\":\"Europe/London\",\"CAM\":\"America/La_Paz\",\"CAN\":\"Asia/Shanghai\",\"CAO\":\"America/Denver\",\"CAP\":\"America/Port-au-Prince\",\"CAQ\":\"America/Bogota\",\"CAR\":\"America/New_York\",\"CAS\":\"Africa/Casablanca\",\"CAT\":\"Europe/Lisbon\",\"CAU\":\"America/Belem\",\"CAV\":\"Africa/Luanda\",\"CAW\":\"America/Sao_Paulo\",\"CAX\":\"Europe/London\",\"CAY\":\"America/Cayenne\",\"CAZ\":\"Australia/Sydney\",\"CBA\":\"America/Anchorage\",\"CBB\":\"America/La_Paz\",\"CBC\":\"Australia/Perth\",\"CBD\":\"Asia/Kolkata\",\"CBE\":\"America/New_York\",\"CBF\":\"America/Chicago\",\"CBG\":\"Europe/London\",\"CBH\":\"Africa/Algiers\",\"CBI\":\"Australia/Hobart\",\"CBJ\":\"America/Santo_Domingo\",\"CBK\":\"America/Chicago\",\"CBL\":\"America/Caracas\",\"CBM\":\"America/Chicago\",\"CBN\":\"Asia/Jakarta\",\"CBO\":\"Asia/Manila\",\"CBP\":\"Europe/Lisbon\",\"CBQ\":\"Africa/Lagos\",\"CBR\":\"Australia/Sydney\",\"CBS\":\"America/Caracas\",\"CBT\":\"Africa/Luanda\",\"CBU\":\"Europe/Berlin\",\"CBV\":\"America/Guatemala\",\"CBW\":\"America/Sao_Paulo\",\"CBX\":\"Australia/Sydney\",\"CBY\":\"Australia/Brisbane\",\"CBZ\":\"America/Anchorage\",\"CCA\":\"America/La_Paz\",\"CCB\":\"America/Los_Angeles\",\"CCC\":\"America/Havana\",\"CCD\":\"America/Los_Angeles\",\"CCE\":\"Africa/Cairo\",\"CCF\":\"Europe/Paris\",\"CCG\":\"America/Chicago\",\"CCH\":\"America/Santiago\",\"CCI\":\"America/Sao_Paulo\",\"CCJ\":\"Asia/Kolkata\",\"CCK\":\"Indian/Cocos\",\"CCL\":\"Australia/Brisbane\",\"CCM\":\"America/Sao_Paulo\",\"CCN\":\"Asia/Kabul\",\"CCO\":\"America/Bogota\",\"CCP\":\"America/Santiago\",\"CCQ\":\"America/Belem\",\"CCR\":\"America/Los_Angeles\",\"CCS\":\"America/Caracas\",\"CCT\":\"America/Argentina/Buenos_Aires\",\"CCU\":\"Asia/Kolkata\",\"CCV\":\"Pacific/Efate\",\"CCW\":\"Australia/Adelaide\",\"CCX\":\"America/Campo_Grande\",\"CCY\":\"America/Chicago\",\"CCZ\":\"America/Nassau\",\"CDA\":\"Australia/Darwin\",\"CDB\":\"America/Anchorage\",\"CDC\":\"America/Denver\",\"CDD\":\"America/Tegucigalpa\",\"CDE\":\"Asia/Shanghai\",\"CDF\":\"Europe/Rome\",\"CDG\":\"Europe/Paris\",\"CDH\":\"America/Chicago\",\"CDI\":\"America/Sao_Paulo\",\"CDJ\":\"America/Belem\",\"CDK\":\"America/New_York\",\"CDL\":\"America/Anchorage\",\"CDN\":\"America/New_York\",\"CDO\":\"Africa/Johannesburg\",\"CDP\":\"Asia/Kolkata\",\"CDQ\":\"Australia/Brisbane\",\"CDR\":\"America/Denver\",\"CDS\":\"America/Chicago\",\"CDT\":\"Europe/Madrid\",\"CDU\":\"Australia/Sydney\",\"CDV\":\"America/Anchorage\",\"CDW\":\"America/New_York\",\"CDY\":\"Asia/Manila\",\"CDZ\":\"Europe/Madrid\",\"CEA\":\"America/Chicago\",\"CEB\":\"Asia/Manila\",\"CEC\":\"America/Los_Angeles\",\"CED\":\"Australia/Adelaide\",\"CEE\":\"Europe/Moscow\",\"CEF\":\"America/New_York\",\"CEG\":\"Europe/London\",\"CEH\":\"Africa/Blantyre\",\"CEI\":\"Asia/Bangkok\",\"CEK\":\"Asia/Yekaterinburg\",\"CEM\":\"America/Anchorage\",\"CEN\":\"America/Hermosillo\",\"CEO\":\"Africa/Luanda\",\"CEP\":\"America/La_Paz\",\"CEQ\":\"Europe/Paris\",\"CER\":\"Europe/Paris\",\"CES\":\"Australia/Sydney\",\"CET\":\"Europe/Paris\",\"CEU\":\"America/New_York\",\"CEV\":\"America/Indiana/Indianapolis\",\"CEW\":\"America/New_York\",\"CEX\":\"America/Anchorage\",\"CEY\":\"America/Chicago\",\"CEZ\":\"America/Denver\",\"CFA\":\"America/Anchorage\",\"CFB\":\"America/Sao_Paulo\",\"CFC\":\"America/Sao_Paulo\",\"CFD\":\"America/Chicago\",\"CFE\":\"Europe/Paris\",\"CFF\":\"Africa/Luanda\",\"CFG\":\"America/Havana\",\"CFH\":\"Australia/Adelaide\",\"CFI\":\"Australia/Darwin\",\"CFK\":\"Africa/Algiers\",\"CFM\":\"America/Edmonton\",\"CFN\":\"Europe/Dublin\",\"CFO\":\"America/Campo_Grande\",\"CFP\":\"Australia/Brisbane\",\"CFQ\":\"America/Vancouver\",\"CFR\":\"Europe/Paris\",\"CFS\":\"Australia/Sydney\",\"CFT\":\"America/Phoenix\",\"CFU\":\"Europe/Athens\",\"CFV\":\"America/Chicago\",\"CGA\":\"America/Anchorage\",\"CGB\":\"America/Campo_Grande\",\"CGC\":\"Pacific/Port_Moresby\",\"CGD\":\"Asia/Shanghai\",\"CGE\":\"America/New_York\",\"CGF\":\"America/New_York\",\"CGG\":\"Asia/Manila\",\"CGH\":\"America/Sao_Paulo\",\"CGI\":\"America/Chicago\",\"CGJ\":\"Africa/Lusaka\",\"CGK\":\"Asia/Jakarta\",\"CGM\":\"Asia/Manila\",\"CGN\":\"Europe/Berlin\",\"CGO\":\"Asia/Shanghai\",\"CGP\":\"Asia/Dhaka\",\"CGQ\":\"Asia/Shanghai\",\"CGR\":\"America/Campo_Grande\",\"CGS\":\"America/New_York\",\"CGT\":\"Africa/Nouakchott\",\"CGV\":\"Australia/Perth\",\"CGY\":\"Asia/Manila\",\"CGZ\":\"America/Phoenix\",\"CHA\":\"America/New_York\",\"CHB\":\"Asia/Karachi\",\"CHC\":\"Pacific/Auckland\",\"CHE\":\"Europe/Tallinn\",\"CHF\":\"Asia/Seoul\",\"CHG\":\"Asia/Shanghai\",\"CHH\":\"America/Lima\",\"CHJ\":\"Africa/Harare\",\"CHK\":\"America/Chicago\",\"CHL\":\"America/Denver\",\"CHM\":\"America/Lima\",\"CHN\":\"Asia/Seoul\",\"CHO\":\"America/New_York\",\"CHP\":\"America/Anchorage\",\"CHQ\":\"Europe/Athens\",\"CHR\":\"Europe/Paris\",\"CHS\":\"America/New_York\",\"CHT\":\"Pacific/Chatham\",\"CHU\":\"America/Anchorage\",\"CHV\":\"Europe/Lisbon\",\"CHX\":\"America/Panama\",\"CHY\":\"Pacific/Guadalcanal\",\"CHZ\":\"America/Los_Angeles\",\"CIA\":\"Europe/Rome\",\"CIC\":\"America/Los_Angeles\",\"CID\":\"America/Chicago\",\"CIE\":\"Australia/Perth\",\"CIF\":\"Asia/Shanghai\",\"CIG\":\"America/Denver\",\"CIH\":\"Asia/Shanghai\",\"CIJ\":\"America/La_Paz\",\"CIK\":\"America/Anchorage\",\"CIL\":\"America/Anchorage\",\"CIM\":\"America/Bogota\",\"CIN\":\"America/Chicago\",\"CIO\":\"America/Asuncion\",\"CIP\":\"Africa/Lusaka\",\"CIQ\":\"America/Guatemala\",\"CIR\":\"America/Chicago\",\"CIS\":\"Pacific/Enderbury\",\"CIT\":\"Asia/Almaty\",\"CIU\":\"America/New_York\",\"CIV\":\"America/Anchorage\",\"CIW\":\"America/St_Vincent\",\"CIX\":\"America/Lima\",\"CIY\":\"Europe/Rome\",\"CIZ\":\"America/Porto_Velho\",\"CJA\":\"America/Lima\",\"CJB\":\"Asia/Kolkata\",\"CJC\":\"America/Santiago\",\"CJD\":\"America/Bogota\",\"CJF\":\"Australia/Perth\",\"CJH\":\"America/Vancouver\",\"CJJ\":\"Asia/Seoul\",\"CJL\":\"Asia/Karachi\",\"CJM\":\"Asia/Bangkok\",\"CJN\":\"Asia/Jakarta\",\"CJS\":\"America/Ojinaga\",\"CJT\":\"America/Mexico_City\",\"CJU\":\"Asia/Seoul\",\"CKA\":\"America/Chicago\",\"CKB\":\"America/New_York\",\"CKC\":\"Europe/Kiev\",\"CKD\":\"America/Anchorage\",\"CKE\":\"America/Los_Angeles\",\"CKG\":\"Asia/Shanghai\",\"CKH\":\"Asia/Magadan\",\"CKI\":\"Australia/Darwin\",\"CKK\":\"America/Chicago\",\"CKL\":\"Europe/Moscow\",\"CKM\":\"America/Chicago\",\"CKN\":\"America/Chicago\",\"CKO\":\"America/Sao_Paulo\",\"CKR\":\"America/Los_Angeles\",\"CKS\":\"America/Belem\",\"CKT\":\"Asia/Tehran\",\"CKU\":\"America/Anchorage\",\"CKV\":\"America/Chicago\",\"CKW\":\"Australia/Perth\",\"CKX\":\"America/Anchorage\",\"CKY\":\"Africa/Conakry\",\"CKZ\":\"Europe/Istanbul\",\"CLA\":\"Asia/Dhaka\",\"CLD\":\"America/Los_Angeles\",\"CLE\":\"America/New_York\",\"CLF\":\"Europe/London\",\"CLG\":\"America/Los_Angeles\",\"CLH\":\"Australia/Sydney\",\"CLI\":\"America/Chicago\",\"CLJ\":\"Europe/Bucharest\",\"CLK\":\"America/Chicago\",\"CLL\":\"America/Chicago\",\"CLM\":\"America/Los_Angeles\",\"CLN\":\"America/Belem\",\"CLO\":\"America/Bogota\",\"CLP\":\"America/Anchorage\",\"CLQ\":\"America/Mexico_City\",\"CLR\":\"America/Los_Angeles\",\"CLS\":\"America/Los_Angeles\",\"CLT\":\"America/New_York\",\"CLU\":\"America/Indiana/Indianapolis\",\"CLV\":\"America/Sao_Paulo\",\"CLW\":\"America/New_York\",\"CLX\":\"America/Argentina/Buenos_Aires\",\"CLY\":\"Europe/Paris\",\"CLZ\":\"America/Caracas\",\"CMA\":\"Australia/Brisbane\",\"CMB\":\"Asia/Colombo\",\"CMC\":\"America/Belem\",\"CMD\":\"Australia/Sydney\",\"CME\":\"America/Mexico_City\",\"CMF\":\"Europe/Paris\",\"CMG\":\"America/Campo_Grande\",\"CMH\":\"America/New_York\",\"CMI\":\"America/Chicago\",\"CMJ\":\"Asia/Taipei\",\"CMK\":\"Africa/Blantyre\",\"CML\":\"Australia/Brisbane\",\"CMM\":\"America/Guatemala\",\"CMN\":\"Africa/Casablanca\",\"CMO\":\"Africa/Mogadishu\",\"CMP\":\"America/Belem\",\"CMQ\":\"Australia/Brisbane\",\"CMR\":\"Europe/Paris\",\"CMS\":\"Africa/Mogadishu\",\"CMT\":\"America/Belem\",\"CMU\":\"Pacific/Port_Moresby\",\"CMV\":\"Pacific/Auckland\",\"CMW\":\"America/Havana\",\"CMX\":\"America/New_York\",\"CMY\":\"America/Chicago\",\"CMZ\":\"Africa/Maputo\",\"CNA\":\"America/Hermosillo\",\"CNB\":\"Australia/Sydney\",\"CNC\":\"Australia/Brisbane\",\"CND\":\"Europe/Bucharest\",\"CNE\":\"America/Denver\",\"CNF\":\"America/Sao_Paulo\",\"CNG\":\"Europe/Paris\",\"CNH\":\"America/New_York\",\"CNI\":\"Asia/Shanghai\",\"CNJ\":\"Australia/Brisbane\",\"CNK\":\"America/Chicago\",\"CNL\":\"Europe/Copenhagen\",\"CNM\":\"America/Denver\",\"CNN\":\"Asia/Kolkata\",\"CNO\":\"America/Los_Angeles\",\"CNP\":\"America/Scoresbysund\",\"CNQ\":\"America/Argentina/Buenos_Aires\",\"CNR\":\"America/Santiago\",\"CNS\":\"Australia/Brisbane\",\"CNT\":\"America/Argentina/Buenos_Aires\",\"CNU\":\"America/Chicago\",\"CNV\":\"America/Belem\",\"CNW\":\"America/Chicago\",\"CNX\":\"Asia/Bangkok\",\"CNY\":\"America/Denver\",\"CNZ\":\"Africa/Luanda\",\"COA\":\"America/Los_Angeles\",\"COB\":\"Australia/Darwin\",\"COC\":\"America/Argentina/Buenos_Aires\",\"COD\":\"America/Denver\",\"COE\":\"America/Los_Angeles\",\"COF\":\"America/New_York\",\"COG\":\"America/Bogota\",\"COH\":\"Asia/Kolkata\",\"COI\":\"America/New_York\",\"COJ\":\"Australia/Sydney\",\"COK\":\"Asia/Kolkata\",\"COL\":\"Europe/London\",\"COM\":\"America/Chicago\",\"CON\":\"America/New_York\",\"COO\":\"Africa/Porto-Novo\",\"COP\":\"America/New_York\",\"COQ\":\"Asia/Ulaanbaatar\",\"COR\":\"America/Argentina/Buenos_Aires\",\"COS\":\"America/Denver\",\"COT\":\"America/Chicago\",\"COU\":\"America/Chicago\",\"COV\":\"Europe/Lisbon\",\"COW\":\"America/Santiago\",\"COY\":\"Australia/Perth\",\"COZ\":\"America/Santo_Domingo\",\"CPA\":\"Africa/Monrovia\",\"CPB\":\"America/Bogota\",\"CPC\":\"America/Argentina/Buenos_Aires\",\"CPD\":\"Australia/Adelaide\",\"CPE\":\"America/Mexico_City\",\"CPF\":\"Asia/Jakarta\",\"CPG\":\"America/Argentina/Buenos_Aires\",\"CPH\":\"Europe/Copenhagen\",\"CPI\":\"Pacific/Port_Moresby\",\"CPL\":\"America/Bogota\",\"CPM\":\"America/Los_Angeles\",\"CPN\":\"Pacific/Port_Moresby\",\"CPO\":\"America/Santiago\",\"CPP\":\"America/Santiago\",\"CPQ\":\"America/Sao_Paulo\",\"CPR\":\"America/Denver\",\"CPS\":\"America/Chicago\",\"CPT\":\"Africa/Johannesburg\",\"CPU\":\"America/Belem\",\"CPV\":\"America/Belem\",\"CPX\":\"America/Puerto_Rico\",\"CQA\":\"America/Campo_Grande\",\"CQD\":\"Asia/Tehran\",\"CQF\":\"Europe/Paris\",\"CQP\":\"Australia/Brisbane\",\"CQS\":\"America/Porto_Velho\",\"CQT\":\"America/Bogota\",\"CQW\":\"Asia/Shanghai\",\"CRA\":\"Europe/Bucharest\",\"CRB\":\"Australia/Sydney\",\"CRC\":\"America/Bogota\",\"CRD\":\"America/Argentina/Buenos_Aires\",\"CRE\":\"America/New_York\",\"CRF\":\"Africa/Bangui\",\"CRG\":\"America/New_York\",\"CRH\":\"Australia/Brisbane\",\"CRI\":\"America/Nassau\",\"CRJ\":\"Australia/Adelaide\",\"CRK\":\"Asia/Manila\",\"CRL\":\"Europe/Brussels\",\"CRM\":\"Asia/Manila\",\"CRO\":\"America/Los_Angeles\",\"CRP\":\"America/Chicago\",\"CRQ\":\"America/Belem\",\"CRR\":\"America/Argentina/Buenos_Aires\",\"CRS\":\"America/Chicago\",\"CRT\":\"America/Chicago\",\"CRU\":\"America/Grenada\",\"CRV\":\"Europe/Rome\",\"CRW\":\"America/New_York\",\"CRX\":\"America/Chicago\",\"CRY\":\"Australia/Perth\",\"CRZ\":\"Asia/Ashgabat\",\"CSA\":\"Europe/London\",\"CSB\":\"Europe/Bucharest\",\"CSC\":\"America/Costa_Rica\",\"CSD\":\"Australia/Darwin\",\"CSE\":\"America/Denver\",\"CSF\":\"Europe/Paris\",\"CSG\":\"America/New_York\",\"CSH\":\"Europe/Moscow\",\"CSI\":\"Australia/Sydney\",\"CSJ\":\"Asia/Ho_Chi_Minh\",\"CSK\":\"Africa/Dakar\",\"CSM\":\"America/Chicago\",\"CSN\":\"America/Los_Angeles\",\"CSO\":\"Europe/Berlin\",\"CSP\":\"America/Anchorage\",\"CSQ\":\"America/Chicago\",\"CSR\":\"America/Bogota\",\"CSS\":\"America/Campo_Grande\",\"CST\":\"Pacific/Fiji\",\"CSU\":\"America/Sao_Paulo\",\"CSV\":\"America/Chicago\",\"CSW\":\"America/Porto_Velho\",\"CSX\":\"Asia/Shanghai\",\"CSY\":\"Europe/Moscow\",\"CSZ\":\"America/Argentina/Buenos_Aires\",\"CTA\":\"Europe/Rome\",\"CTB\":\"America/Denver\",\"CTC\":\"America/Argentina/Buenos_Aires\",\"CTD\":\"America/Panama\",\"CTE\":\"America/Panama\",\"CTF\":\"America/Guatemala\",\"CTG\":\"America/Bogota\",\"CTH\":\"America/New_York\",\"CTI\":\"Africa/Luanda\",\"CTK\":\"America/Chicago\",\"CTL\":\"Australia/Brisbane\",\"CTM\":\"America/Cancun\",\"CTN\":\"Australia/Brisbane\",\"CTO\":\"America/New_York\",\"CTP\":\"America/Belem\",\"CTQ\":\"America/Sao_Paulo\",\"CTR\":\"Australia/Darwin\",\"CTS\":\"Asia/Tokyo\",\"CTT\":\"Europe/Paris\",\"CTU\":\"Asia/Shanghai\",\"CTW\":\"America/Phoenix\",\"CTX\":\"America/New_York\",\"CTY\":\"America/New_York\",\"CTZ\":\"America/New_York\",\"CUA\":\"America/Mazatlan\",\"CUB\":\"America/New_York\",\"CUC\":\"America/Bogota\",\"CUD\":\"Australia/Brisbane\",\"CUE\":\"America/Guayaquil\",\"CUF\":\"Europe/Rome\",\"CUG\":\"Australia/Sydney\",\"CUH\":\"America/Chicago\",\"CUI\":\"America/Bogota\",\"CUJ\":\"Asia/Manila\",\"CUK\":\"America/Belize\",\"CUL\":\"America/Mazatlan\",\"CUM\":\"America/Caracas\",\"CUN\":\"America/Cancun\",\"CUO\":\"America/Bogota\",\"CUP\":\"America/Caracas\",\"CUQ\":\"Australia/Brisbane\",\"CUR\":\"America/Curacao\",\"CUS\":\"America/Denver\",\"CUT\":\"America/Argentina/Buenos_Aires\",\"CUU\":\"America/Mazatlan\",\"CUV\":\"America/Caracas\",\"CUW\":\"America/Anchorage\",\"CUX\":\"America/Chicago\",\"CUY\":\"Australia/Perth\",\"CUZ\":\"America/Lima\",\"CVA\":\"America/New_York\",\"CVB\":\"Pacific/Port_Moresby\",\"CVC\":\"Australia/Adelaide\",\"CVE\":\"America/Bogota\",\"CVF\":\"Europe/Paris\",\"CVG\":\"America/New_York\",\"CVH\":\"America/Argentina/Buenos_Aires\",\"CVI\":\"America/Argentina/Buenos_Aires\",\"CVJ\":\"America/Mexico_City\",\"CVL\":\"Pacific/Port_Moresby\",\"CVM\":\"America/Mexico_City\",\"CVN\":\"America/Denver\",\"CVO\":\"America/Los_Angeles\",\"CVQ\":\"Australia/Perth\",\"CVR\":\"America/Los_Angeles\",\"CVS\":\"America/Denver\",\"CVT\":\"Europe/London\",\"CVU\":\"Atlantic/Azores\",\"CWA\":\"America/Chicago\",\"CWB\":\"America/Sao_Paulo\",\"CWC\":\"Europe/Kiev\",\"CWF\":\"America/Chicago\",\"CWG\":\"America/New_York\",\"CWI\":\"America/Chicago\",\"CWJ\":\"Asia/Shanghai\",\"CWL\":\"Europe/London\",\"CWO\":\"America/Chicago\",\"CWP\":\"Asia/Karachi\",\"CWR\":\"Australia/Adelaide\",\"CWS\":\"America/Los_Angeles\",\"CWT\":\"Australia/Sydney\",\"CWW\":\"Australia/Sydney\",\"CXA\":\"America/Caracas\",\"CXB\":\"Asia/Dhaka\",\"CXC\":\"America/Anchorage\",\"CXF\":\"America/Anchorage\",\"CXH\":\"America/Vancouver\",\"CXI\":\"Pacific/Kiritimati\",\"CXJ\":\"America/Sao_Paulo\",\"CXL\":\"America/Los_Angeles\",\"CXN\":\"Africa/Mogadishu\",\"CXO\":\"America/Chicago\",\"CXP\":\"Asia/Jakarta\",\"CXQ\":\"Australia/Perth\",\"CXR\":\"Asia/Ho_Chi_Minh\",\"CXT\":\"Australia/Brisbane\",\"CXY\":\"America/Nassau\",\"CYA\":\"America/Port-au-Prince\",\"CYB\":\"America/Cayman\",\"CYC\":\"America/Belize\",\"CYD\":\"America/Belize\",\"CYE\":\"America/New_York\",\"CYF\":\"America/Anchorage\",\"CYG\":\"Australia/Sydney\",\"CYI\":\"Asia/Taipei\",\"CYL\":\"America/Tegucigalpa\",\"CYM\":\"America/Anchorage\",\"CYO\":\"America/Havana\",\"CYP\":\"Asia/Manila\",\"CYR\":\"America/Montevideo\",\"CYS\":\"America/Denver\",\"CYT\":\"America/Anchorage\",\"CYU\":\"Asia/Manila\",\"CYW\":\"America/Mexico_City\",\"CYX\":\"Asia/Magadan\",\"CYZ\":\"Asia/Manila\",\"CZA\":\"America/Mexico_City\",\"CZB\":\"America/Sao_Paulo\",\"CZC\":\"America/Anchorage\",\"CZE\":\"America/Caracas\",\"CZF\":\"America/Anchorage\",\"CZH\":\"America/Belize\",\"CZJ\":\"America/Panama\",\"CZK\":\"America/Los_Angeles\",\"CZL\":\"Africa/Algiers\",\"CZM\":\"America/Cancun\",\"CZN\":\"America/Anchorage\",\"CZO\":\"America/Anchorage\",\"CZP\":\"America/Anchorage\",\"CZS\":\"America/Rio_Branco\",\"CZT\":\"America/Chicago\",\"CZU\":\"America/Bogota\",\"CZW\":\"Europe/Warsaw\",\"CZX\":\"Asia/Shanghai\",\"CZY\":\"Australia/Brisbane\",\"CZZ\":\"America/Los_Angeles\",\"DAA\":\"America/New_York\",\"DAB\":\"America/New_York\",\"DAC\":\"Asia/Dhaka\",\"DAD\":\"Asia/Ho_Chi_Minh\",\"DAE\":\"Asia/Kolkata\",\"DAF\":\"Pacific/Port_Moresby\",\"DAG\":\"America/Los_Angeles\",\"DAH\":\"Asia/Aden\",\"DAI\":\"Asia/Kolkata\",\"DAJ\":\"Australia/Brisbane\",\"DAK\":\"Africa/Cairo\",\"DAL\":\"America/Chicago\",\"DAM\":\"Asia/Damascus\",\"DAN\":\"America/New_York\",\"DAO\":\"Pacific/Port_Moresby\",\"DAP\":\"Asia/Kathmandu\",\"DAR\":\"Africa/Dar_es_Salaam\",\"DAS\":\"America/Edmonton\",\"DAT\":\"Asia/Shanghai\",\"DAU\":\"Pacific/Port_Moresby\",\"DAV\":\"America/Panama\",\"DAX\":\"Asia/Shanghai\",\"DAY\":\"America/New_York\",\"DAZ\":\"Asia/Kabul\",\"DBA\":\"Asia/Karachi\",\"DBB\":\"Africa/Cairo\",\"DBC\":\"Asia/Shanghai\",\"DBD\":\"Asia/Kolkata\",\"DBM\":\"Africa/Addis_Ababa\",\"DBN\":\"America/New_York\",\"DBO\":\"Australia/Sydney\",\"DBP\":\"Pacific/Port_Moresby\",\"DBQ\":\"America/Chicago\",\"DBS\":\"America/Denver\",\"DBT\":\"Africa/Addis_Ababa\",\"DBU\":\"Asia/Colombo\",\"DBV\":\"Europe/Zagreb\",\"DBY\":\"Australia/Brisbane\",\"DCA\":\"America/New_York\",\"DCF\":\"America/Dominica\",\"DCI\":\"Europe/Rome\",\"DCK\":\"America/Anchorage\",\"DCM\":\"Europe/Paris\",\"DCN\":\"Australia/Perth\",\"DCR\":\"America/Indiana/Indianapolis\",\"DCT\":\"America/Nassau\",\"DCU\":\"America/Chicago\",\"DCY\":\"Asia/Shanghai\",\"DDC\":\"America/Chicago\",\"DDD\":\"Indian/Maldives\",\"DDG\":\"Asia/Shanghai\",\"DDI\":\"Australia/Brisbane\",\"DDM\":\"Pacific/Port_Moresby\",\"DDN\":\"Australia/Brisbane\",\"DDU\":\"Asia/Karachi\",\"DEA\":\"Asia/Karachi\",\"DEB\":\"Europe/Budapest\",\"DEC\":\"America/Chicago\",\"DED\":\"Asia/Kolkata\",\"DEE\":\"Asia/Magadan\",\"DEF\":\"Asia/Tehran\",\"DEH\":\"America/Chicago\",\"DEI\":\"Indian/Mahe\",\"DEL\":\"Asia/Kolkata\",\"DEM\":\"Africa/Addis_Ababa\",\"DEN\":\"America/Denver\",\"DEO\":\"America/New_York\",\"DEP\":\"Asia/Kolkata\",\"DEQ\":\"Asia/Shanghai\",\"DER\":\"Pacific/Port_Moresby\",\"DES\":\"Indian/Mahe\",\"DET\":\"America/New_York\",\"DEX\":\"Asia/Jayapura\",\"DEZ\":\"Asia/Damascus\",\"DFI\":\"America/New_York\",\"DFP\":\"Australia/Brisbane\",\"DFW\":\"America/Chicago\",\"DGA\":\"America/Belize\",\"DGB\":\"America/Anchorage\",\"DGC\":\"Africa/Addis_Ababa\",\"DGD\":\"Australia/Perth\",\"DGE\":\"Australia/Sydney\",\"DGF\":\"America/Vancouver\",\"DGL\":\"America/Phoenix\",\"DGM\":\"Asia/Colombo\",\"DGN\":\"America/New_York\",\"DGO\":\"America/Mexico_City\",\"DGP\":\"Europe/Riga\",\"DGR\":\"Pacific/Auckland\",\"DGT\":\"Asia/Manila\",\"DGU\":\"Africa/Ouagadougou\",\"DGW\":\"America/Denver\",\"DHA\":\"Asia/Riyadh\",\"DHB\":\"America/Los_Angeles\",\"DHD\":\"Australia/Brisbane\",\"DHF\":\"Asia/Dubai\",\"DHG\":\"Asia/Vladivostok\",\"DHI\":\"Asia/Kathmandu\",\"DHL\":\"Asia/Aden\",\"DHM\":\"Asia/Kolkata\",\"DHN\":\"America/Chicago\",\"DHR\":\"Europe/Amsterdam\",\"DHT\":\"America/Chicago\",\"DIB\":\"Asia/Kolkata\",\"DIC\":\"Africa/Lubumbashi\",\"DIE\":\"Indian/Antananarivo\",\"DIG\":\"Asia/Shanghai\",\"DIJ\":\"Europe/Paris\",\"DIK\":\"America/Denver\",\"DIL\":\"Asia/Dili\",\"DIM\":\"Africa/Abidjan\",\"DIN\":\"Asia/Ho_Chi_Minh\",\"DIO\":\"America/Anchorage\",\"DIP\":\"Africa/Ouagadougou\",\"DIQ\":\"America/Sao_Paulo\",\"DIR\":\"Africa/Addis_Ababa\",\"DIS\":\"Africa/Brazzaville\",\"DIU\":\"Asia/Kolkata\",\"DIV\":\"Africa/Abidjan\",\"DIW\":\"Asia/Colombo\",\"DIY\":\"Europe/Istanbul\",\"DJA\":\"Africa/Porto-Novo\",\"DJB\":\"Asia/Jakarta\",\"DJE\":\"Africa/Tunis\",\"DJG\":\"Africa/Algiers\",\"DJJ\":\"Asia/Jayapura\",\"DJM\":\"Africa/Brazzaville\",\"DJN\":\"America/Anchorage\",\"DJO\":\"Africa/Abidjan\",\"DJU\":\"Atlantic/Reykjavik\",\"DKA\":\"Africa/Lagos\",\"DKI\":\"Australia/Brisbane\",\"DKK\":\"America/New_York\",\"DKR\":\"Africa/Dakar\",\"DKS\":\"Asia/Krasnoyarsk\",\"DKV\":\"Australia/Darwin\",\"DLA\":\"Africa/Douala\",\"DLC\":\"Asia/Shanghai\",\"DLD\":\"Europe/Oslo\",\"DLE\":\"Europe/Paris\",\"DLF\":\"America/Chicago\",\"DLG\":\"America/Anchorage\",\"DLH\":\"America/Chicago\",\"DLI\":\"Asia/Ho_Chi_Minh\",\"DLK\":\"Australia/Adelaide\",\"DLL\":\"America/New_York\",\"DLM\":\"Europe/Istanbul\",\"DLN\":\"America/Denver\",\"DLO\":\"America/Anchorage\",\"DLP\":\"Europe/Paris\",\"DLR\":\"Asia/Vladivostok\",\"DLS\":\"America/Los_Angeles\",\"DLU\":\"Asia/Shanghai\",\"DLV\":\"Australia/Darwin\",\"DLY\":\"Pacific/Efate\",\"DLZ\":\"Asia/Ulaanbaatar\",\"DMA\":\"America/Phoenix\",\"DMB\":\"Asia/Almaty\",\"DMD\":\"Australia/Brisbane\",\"DME\":\"Europe/Moscow\",\"DMK\":\"Asia/Bangkok\",\"DMM\":\"Asia/Riyadh\",\"DMN\":\"America/Denver\",\"DMO\":\"America/Chicago\",\"DMR\":\"Asia/Aden\",\"DMT\":\"America/Campo_Grande\",\"DMU\":\"Asia/Kolkata\",\"DNA\":\"Asia/Tokyo\",\"DNB\":\"Australia/Brisbane\",\"DNC\":\"Africa/Abidjan\",\"DND\":\"Europe/London\",\"DNF\":\"Africa/Tripoli\",\"DNG\":\"Australia/Perth\",\"DNH\":\"Asia/Shanghai\",\"DNI\":\"Africa/Khartoum\",\"DNK\":\"Europe/Kiev\",\"DNL\":\"America/New_York\",\"DNM\":\"Australia/Perth\",\"DNN\":\"America/New_York\",\"DNO\":\"America/Belem\",\"DNP\":\"Asia/Kathmandu\",\"DNQ\":\"Australia/Sydney\",\"DNR\":\"Europe/Paris\",\"DNS\":\"America/Chicago\",\"DNU\":\"Pacific/Port_Moresby\",\"DNV\":\"America/Chicago\",\"DNX\":\"Africa/Khartoum\",\"DNZ\":\"Europe/Istanbul\",\"DOA\":\"Indian/Antananarivo\",\"DOB\":\"Asia/Jayapura\",\"DOC\":\"Europe/London\",\"DOD\":\"Africa/Dar_es_Salaam\",\"DOE\":\"America/Paramaribo\",\"DOF\":\"America/Anchorage\",\"DOG\":\"Africa/Khartoum\",\"DOH\":\"Asia/Qatar\",\"DOI\":\"Pacific/Port_Moresby\",\"DOL\":\"Europe/Paris\",\"DOM\":\"America/Dominica\",\"DON\":\"America/Guatemala\",\"DOO\":\"Pacific/Port_Moresby\",\"DOP\":\"Asia/Kathmandu\",\"DOR\":\"Africa/Ouagadougou\",\"DOS\":\"Pacific/Bougainville\",\"DOU\":\"America/Campo_Grande\",\"DOV\":\"America/New_York\",\"DOX\":\"Australia/Perth\",\"DOY\":\"Asia/Shanghai\",\"DPA\":\"America/Chicago\",\"DPB\":\"America/Argentina/Salta\",\"DPE\":\"Europe/Paris\",\"DPG\":\"America/Denver\",\"DPK\":\"America/New_York\",\"DPL\":\"Asia/Manila\",\"DPO\":\"Australia/Hobart\",\"DPS\":\"Asia/Makassar\",\"DPT\":\"Asia/Vladivostok\",\"DPU\":\"Pacific/Port_Moresby\",\"DQA\":\"Asia/Shanghai\",\"DQM\":\"Asia/Muscat\",\"DQO\":\"America/Chicago\",\"DRA\":\"America/Los_Angeles\",\"DRB\":\"Australia/Perth\",\"DRC\":\"Africa/Luanda\",\"DRD\":\"Australia/Brisbane\",\"DRE\":\"America/New_York\",\"DRF\":\"America/Anchorage\",\"DRG\":\"America/Anchorage\",\"DRH\":\"Asia/Jayapura\",\"DRI\":\"America/Chicago\",\"DRJ\":\"America/Paramaribo\",\"DRK\":\"America/Costa_Rica\",\"DRM\":\"Europe/Athens\",\"DRN\":\"Australia/Brisbane\",\"DRO\":\"America/Denver\",\"DRR\":\"Australia/Brisbane\",\"DRS\":\"Europe/Berlin\",\"DRT\":\"America/Chicago\",\"DRU\":\"America/Denver\",\"DRV\":\"Indian/Maldives\",\"DRW\":\"Australia/Darwin\",\"DRY\":\"Australia/Perth\",\"DSA\":\"Europe/London\",\"DSC\":\"Africa/Douala\",\"DSD\":\"America/Guadeloupe\",\"DSE\":\"Africa/Addis_Ababa\",\"DSG\":\"Asia/Manila\",\"DSI\":\"America/Chicago\",\"DSK\":\"Asia/Karachi\",\"DSL\":\"Africa/Freetown\",\"DSM\":\"America/Chicago\",\"DSN\":\"Asia/Shanghai\",\"DSS\":\"Africa/Dakar\",\"DSV\":\"America/New_York\",\"DSX\":\"Asia/Taipei\",\"DTA\":\"America/Denver\",\"DTB\":\"Asia/Jakarta\",\"DTD\":\"Asia/Makassar\",\"DTE\":\"Asia/Manila\",\"DTH\":\"America/Los_Angeles\",\"DTI\":\"America/Sao_Paulo\",\"DTL\":\"America/Chicago\",\"DTM\":\"Europe/Berlin\",\"DTN\":\"America/Chicago\",\"DTR\":\"America/Los_Angeles\",\"DTU\":\"Asia/Shanghai\",\"DTW\":\"America/New_York\",\"DUA\":\"America/Chicago\",\"DUB\":\"Europe/Dublin\",\"DUC\":\"America/Chicago\",\"DUD\":\"Pacific/Auckland\",\"DUE\":\"Africa/Luanda\",\"DUF\":\"America/New_York\",\"DUG\":\"America/Phoenix\",\"DUH\":\"Europe/Tirane\",\"DUJ\":\"America/New_York\",\"DUK\":\"Africa/Johannesburg\",\"DUM\":\"Asia/Jakarta\",\"DUN\":\"America/Godthab\",\"DUQ\":\"America/Vancouver\",\"DUR\":\"Africa/Johannesburg\",\"DUS\":\"Europe/Berlin\",\"DUT\":\"America/Anchorage\",\"DVA\":\"Europe/Bucharest\",\"DVD\":\"Indian/Antananarivo\",\"DVK\":\"America/Edmonton\",\"DVL\":\"America/Chicago\",\"DVN\":\"America/Chicago\",\"DVO\":\"Asia/Manila\",\"DVP\":\"Australia/Brisbane\",\"DVR\":\"Australia/Darwin\",\"DVT\":\"America/Phoenix\",\"DWA\":\"Africa/Blantyre\",\"DWB\":\"Indian/Antananarivo\",\"DWC\":\"Asia/Dubai\",\"DWD\":\"Asia/Riyadh\",\"DWF\":\"America/New_York\",\"DWH\":\"America/Chicago\",\"DWN\":\"America/Chicago\",\"DWO\":\"Asia/Colombo\",\"DWR\":\"Asia/Kabul\",\"DWS\":\"America/New_York\",\"DXA\":\"Europe/Paris\",\"DXB\":\"Asia/Dubai\",\"DXD\":\"Australia/Brisbane\",\"DXE\":\"America/Chicago\",\"DXR\":\"America/New_York\",\"DYA\":\"Australia/Brisbane\",\"DYG\":\"Asia/Shanghai\",\"DYL\":\"America/New_York\",\"DYM\":\"Australia/Brisbane\",\"DYR\":\"Asia/Anadyr\",\"DYS\":\"America/Chicago\",\"DYU\":\"Asia/Dushanbe\",\"DYW\":\"Australia/Darwin\",\"DZA\":\"Indian/Mayotte\",\"DZI\":\"America/Bogota\",\"DZN\":\"Asia/Almaty\",\"DZO\":\"America/Montevideo\",\"DZU\":\"Asia/Shanghai\",\"EAA\":\"America/Anchorage\",\"EAB\":\"Asia/Aden\",\"EAE\":\"Pacific/Efate\",\"EAL\":\"Pacific/Majuro\",\"EAM\":\"Asia/Riyadh\",\"EAN\":\"America/Denver\",\"EAR\":\"America/Chicago\",\"EAS\":\"Europe/Madrid\",\"EAT\":\"America/Los_Angeles\",\"EAU\":\"America/Chicago\",\"EBA\":\"Europe/Rome\",\"EBB\":\"Africa/Kampala\",\"EBD\":\"Africa/Khartoum\",\"EBG\":\"America/Bogota\",\"EBH\":\"Africa/Algiers\",\"EBJ\":\"Europe/Copenhagen\",\"EBL\":\"Asia/Baghdad\",\"EBM\":\"Africa/Tunis\",\"EBN\":\"Pacific/Majuro\",\"EBO\":\"Pacific/Majuro\",\"EBR\":\"America/Chicago\",\"EBS\":\"America/Chicago\",\"EBU\":\"Europe/Paris\",\"EBW\":\"Africa/Douala\",\"ECA\":\"America/New_York\",\"ECG\":\"America/New_York\",\"ECH\":\"Australia/Sydney\",\"ECI\":\"America/Managua\",\"ECN\":\"Asia/Famagusta\",\"ECO\":\"America/Bogota\",\"ECP\":\"America/Chicago\",\"ECR\":\"America/Bogota\",\"ECS\":\"America/Denver\",\"EDA\":\"America/Anchorage\",\"EDB\":\"Africa/Khartoum\",\"EDC\":\"America/Chicago\",\"EDD\":\"Australia/Darwin\",\"EDE\":\"America/New_York\",\"EDF\":\"America/Anchorage\",\"EDG\":\"America/New_York\",\"EDI\":\"Europe/London\",\"EDK\":\"America/Chicago\",\"EDL\":\"Africa/Nairobi\",\"EDM\":\"Europe/Paris\",\"EDN\":\"Asia/Vladivostok\",\"EDO\":\"Europe/Istanbul\",\"EDQ\":\"America/Tegucigalpa\",\"EDR\":\"Australia/Brisbane\",\"EDW\":\"America/Los_Angeles\",\"EED\":\"America/Los_Angeles\",\"EEK\":\"America/Anchorage\",\"EEN\":\"America/New_York\",\"EFB\":\"America/Anchorage\",\"EFD\":\"America/Chicago\",\"EFG\":\"Pacific/Port_Moresby\",\"EFK\":\"America/New_York\",\"EFL\":\"Europe/Athens\",\"EFW\":\"America/Chicago\",\"EGA\":\"Pacific/Port_Moresby\",\"EGC\":\"Europe/Paris\",\"EGE\":\"America/Denver\",\"EGI\":\"America/Chicago\",\"EGL\":\"Africa/Addis_Ababa\",\"EGM\":\"Pacific/Guadalcanal\",\"EGN\":\"Africa/Khartoum\",\"EGO\":\"Europe/Moscow\",\"EGP\":\"America/Chicago\",\"EGS\":\"Atlantic/Reykjavik\",\"EGV\":\"America/Chicago\",\"EGX\":\"America/Anchorage\",\"EHL\":\"America/Argentina/Buenos_Aires\",\"EHM\":\"America/Anchorage\",\"EIA\":\"Pacific/Port_Moresby\",\"EIB\":\"Europe/Berlin\",\"EIE\":\"Asia/Krasnoyarsk\",\"EIH\":\"Australia/Brisbane\",\"EIL\":\"America/Anchorage\",\"EIN\":\"Europe/Amsterdam\",\"EIS\":\"America/Tortola\",\"EIY\":\"Asia/Jerusalem\",\"EJA\":\"America/Bogota\",\"EJH\":\"Asia/Riyadh\",\"EJN\":\"Asia/Shanghai\",\"EJT\":\"Pacific/Majuro\",\"EKA\":\"America/Los_Angeles\",\"EKB\":\"Asia/Almaty\",\"EKD\":\"Australia/Darwin\",\"EKE\":\"America/Guyana\",\"EKI\":\"America/Indiana/Indianapolis\",\"EKN\":\"America/New_York\",\"EKO\":\"America/Los_Angeles\",\"EKS\":\"Asia/Magadan\",\"EKT\":\"Europe/Stockholm\",\"EKX\":\"America/New_York\",\"ELA\":\"America/Chicago\",\"ELB\":\"America/Bogota\",\"ELC\":\"Australia/Darwin\",\"ELD\":\"America/Chicago\",\"ELE\":\"America/Panama\",\"ELF\":\"Africa/Khartoum\",\"ELG\":\"Africa/Algiers\",\"ELH\":\"America/Nassau\",\"ELI\":\"America/Anchorage\",\"ELJ\":\"America/Bogota\",\"ELK\":\"America/Chicago\",\"ELL\":\"Africa/Johannesburg\",\"ELM\":\"America/New_York\",\"ELN\":\"America/Los_Angeles\",\"ELO\":\"America/Argentina/Buenos_Aires\",\"ELP\":\"America/Denver\",\"ELQ\":\"Asia/Riyadh\",\"ELR\":\"Asia/Jayapura\",\"ELS\":\"Africa/Johannesburg\",\"ELT\":\"Africa/Cairo\",\"ELU\":\"Africa/Algiers\",\"ELV\":\"America/Anchorage\",\"ELW\":\"America/Anchorage\",\"ELX\":\"America/Caracas\",\"ELY\":\"America/Los_Angeles\",\"ELZ\":\"America/New_York\",\"EMA\":\"Europe/London\",\"EMB\":\"America/Los_Angeles\",\"EMD\":\"Australia/Brisbane\",\"EME\":\"Europe/Berlin\",\"EMG\":\"Africa/Johannesburg\",\"EMI\":\"Pacific/Port_Moresby\",\"EMK\":\"America/Anchorage\",\"EML\":\"Europe/Zurich\",\"EMM\":\"America/Denver\",\"EMN\":\"Africa/Nouakchott\",\"EMO\":\"Pacific/Port_Moresby\",\"EMP\":\"America/Chicago\",\"EMR\":\"America/Guatemala\",\"EMS\":\"Pacific/Port_Moresby\",\"EMT\":\"America/Los_Angeles\",\"EMX\":\"America/Argentina/Buenos_Aires\",\"EMY\":\"Africa/Cairo\",\"ENA\":\"America/Anchorage\",\"ENB\":\"Australia/Perth\",\"ENC\":\"Europe/Paris\",\"END\":\"America/Chicago\",\"ENE\":\"Asia/Makassar\",\"ENF\":\"Europe/Helsinki\",\"ENH\":\"Asia/Shanghai\",\"ENI\":\"Asia/Manila\",\"ENJ\":\"America/Guatemala\",\"ENK\":\"Europe/London\",\"ENL\":\"America/Chicago\",\"ENN\":\"America/Anchorage\",\"ENO\":\"America/Asuncion\",\"ENQ\":\"America/Tegucigalpa\",\"ENS\":\"Europe/Amsterdam\",\"ENT\":\"Pacific/Majuro\",\"ENU\":\"Africa/Lagos\",\"ENV\":\"America/Denver\",\"ENW\":\"America/Chicago\",\"ENY\":\"Asia/Shanghai\",\"EOH\":\"America/Bogota\",\"EOI\":\"Europe/London\",\"EOK\":\"America/Chicago\",\"EOR\":\"America/Caracas\",\"EOS\":\"America/Chicago\",\"EOZ\":\"America/Caracas\",\"EPA\":\"America/Argentina/Buenos_Aires\",\"EPG\":\"America/Chicago\",\"EPH\":\"America/Los_Angeles\",\"EPI\":\"Pacific/Efate\",\"EPK\":\"Asia/Nicosia\",\"EPL\":\"Europe/Paris\",\"EPN\":\"Africa/Brazzaville\",\"EPR\":\"Australia/Perth\",\"EPS\":\"America/Santo_Domingo\",\"EPT\":\"Pacific/Port_Moresby\",\"EPU\":\"Europe/Tallinn\",\"EQS\":\"America/Argentina/Buenos_Aires\",\"ERA\":\"Africa/Mogadishu\",\"ERB\":\"Australia/Adelaide\",\"ERC\":\"Europe/Istanbul\",\"ERD\":\"Europe/Kiev\",\"ERE\":\"Pacific/Port_Moresby\",\"ERF\":\"Europe/Berlin\",\"ERG\":\"Asia/Irkutsk\",\"ERH\":\"Africa/Casablanca\",\"ERI\":\"America/New_York\",\"ERL\":\"Asia/Shanghai\",\"ERM\":\"America/Sao_Paulo\",\"ERN\":\"America/Eirunepe\",\"ERO\":\"America/Anchorage\",\"ERQ\":\"Australia/Brisbane\",\"ERR\":\"America/New_York\",\"ERS\":\"Africa/Windhoek\",\"ERT\":\"Asia/Ulaanbaatar\",\"ERU\":\"Pacific/Port_Moresby\",\"ERV\":\"America/Chicago\",\"ERZ\":\"Europe/Istanbul\",\"ESA\":\"Pacific/Port_Moresby\",\"ESB\":\"Europe/Istanbul\",\"ESC\":\"America/New_York\",\"ESD\":\"America/Los_Angeles\",\"ESE\":\"America/Tijuana\",\"ESF\":\"America/Chicago\",\"ESG\":\"America/Asuncion\",\"ESH\":\"Europe/London\",\"ESI\":\"America/Sao_Paulo\",\"ESK\":\"Europe/Istanbul\",\"ESL\":\"Europe/Moscow\",\"ESM\":\"America/Guayaquil\",\"ESN\":\"America/New_York\",\"ESO\":\"America/Denver\",\"ESP\":\"America/New_York\",\"ESR\":\"America/Santiago\",\"ESS\":\"Europe/Berlin\",\"EST\":\"America/Chicago\",\"ESU\":\"Africa/Casablanca\",\"ESW\":\"America/Los_Angeles\",\"ETB\":\"America/Chicago\",\"ETD\":\"Australia/Adelaide\",\"ETE\":\"Africa/Addis_Ababa\",\"ETH\":\"Asia/Jerusalem\",\"ETL\":\"Asia/Vladivostok\",\"ETM\":\"Asia/Jerusalem\",\"ETN\":\"America/Chicago\",\"ETR\":\"America/Guayaquil\",\"ETS\":\"America/Chicago\",\"ETZ\":\"Europe/Paris\",\"EUA\":\"Pacific/Tongatapu\",\"EUC\":\"Australia/Perth\",\"EUE\":\"America/Los_Angeles\",\"EUF\":\"America/Chicago\",\"EUG\":\"America/Los_Angeles\",\"EUM\":\"Europe/Berlin\",\"EUN\":\"Africa/Casablanca\",\"EUQ\":\"Asia/Manila\",\"EUX\":\"America/Curacao\",\"EVA\":\"America/Chicago\",\"EVD\":\"Australia/Darwin\",\"EVE\":\"Europe/Oslo\",\"EVG\":\"Europe/Stockholm\",\"EVH\":\"Australia/Sydney\",\"EVM\":\"America/Chicago\",\"EVN\":\"Asia/Yerevan\",\"EVV\":\"America/Chicago\",\"EVW\":\"America/Denver\",\"EVX\":\"Europe/Paris\",\"EWB\":\"America/New_York\",\"EWD\":\"America/Anchorage\",\"EWE\":\"Asia/Jayapura\",\"EWI\":\"Asia/Jayapura\",\"EWK\":\"America/Chicago\",\"EWN\":\"America/New_York\",\"EWO\":\"Africa/Brazzaville\",\"EWR\":\"America/New_York\",\"EWY\":\"Europe/London\",\"EXI\":\"America/Anchorage\",\"EXM\":\"Australia/Perth\",\"EXT\":\"Europe/London\",\"EYK\":\"Asia/Yekaterinburg\",\"EYL\":\"Africa/Bamako\",\"EYP\":\"America/Bogota\",\"EYR\":\"America/Los_Angeles\",\"EYS\":\"Africa/Nairobi\",\"EYW\":\"America/New_York\",\"EZE\":\"America/Argentina/Buenos_Aires\",\"EZS\":\"Europe/Istanbul\",\"EZV\":\"Asia/Yekaterinburg\",\"FAA\":\"Africa/Conakry\",\"FAB\":\"Europe/London\",\"FAC\":\"Pacific/Tahiti\",\"FAE\":\"Atlantic/Faroe\",\"FAF\":\"America/New_York\",\"FAG\":\"Atlantic/Reykjavik\",\"FAH\":\"Asia/Kabul\",\"FAI\":\"America/Anchorage\",\"FAJ\":\"America/Puerto_Rico\",\"FAK\":\"America/Anchorage\",\"FAL\":\"America/Chicago\",\"FAM\":\"America/Chicago\",\"FAN\":\"Europe/Oslo\",\"FAO\":\"Europe/Lisbon\",\"FAQ\":\"Pacific/Port_Moresby\",\"FAR\":\"America/Chicago\",\"FAS\":\"Atlantic/Reykjavik\",\"FAT\":\"America/Los_Angeles\",\"FAU\":\"Asia/Muscat\",\"FAV\":\"Pacific/Tahiti\",\"FAY\":\"America/New_York\",\"FAZ\":\"Asia/Tehran\",\"FBA\":\"America/Porto_Velho\",\"FBD\":\"Asia/Kabul\",\"FBE\":\"America/Sao_Paulo\",\"FBG\":\"America/New_York\",\"FBK\":\"America/Anchorage\",\"FBL\":\"America/Chicago\",\"FBM\":\"Africa/Lubumbashi\",\"FBR\":\"America/Denver\",\"FBS\":\"America/Los_Angeles\",\"FBY\":\"America/Chicago\",\"FCA\":\"America/Denver\",\"FCB\":\"Africa/Johannesburg\",\"FCH\":\"America/Los_Angeles\",\"FCM\":\"America/Chicago\",\"FCN\":\"Europe/Berlin\",\"FCO\":\"Europe/Rome\",\"FCS\":\"America/Denver\",\"FCT\":\"America/Los_Angeles\",\"FCY\":\"America/Chicago\",\"FDB\":\"America/Campo_Grande\",\"FDE\":\"Europe/Oslo\",\"FDF\":\"America/Martinique\",\"FDH\":\"Europe/Berlin\",\"FDK\":\"America/New_York\",\"FDR\":\"America/Chicago\",\"FDU\":\"Africa/Kinshasa\",\"FDY\":\"America/New_York\",\"FEA\":\"Europe/London\",\"FEB\":\"Asia/Kathmandu\",\"FEC\":\"America/Belem\",\"FEG\":\"Asia/Tashkent\",\"FEJ\":\"America/Rio_Branco\",\"FEK\":\"Africa/Abidjan\",\"FEL\":\"Europe/Berlin\",\"FEN\":\"America/Noronha\",\"FEP\":\"America/Chicago\",\"FES\":\"Europe/Madrid\",\"FET\":\"America/Chicago\",\"FEW\":\"America/Denver\",\"FEZ\":\"Africa/Casablanca\",\"FFA\":\"America/New_York\",\"FFD\":\"Europe/London\",\"FFL\":\"America/Chicago\",\"FFM\":\"America/Chicago\",\"FFO\":\"America/New_York\",\"FFT\":\"America/New_York\",\"FFU\":\"America/Santiago\",\"FGD\":\"Africa/Nouakchott\",\"FGI\":\"Pacific/Apia\",\"FGL\":\"Pacific/Auckland\",\"FGR\":\"Europe/Madrid\",\"FGU\":\"Pacific/Tahiti\",\"FHU\":\"America/Phoenix\",\"FHZ\":\"Pacific/Tahiti\",\"FIC\":\"America/Anchorage\",\"FID\":\"America/New_York\",\"FIE\":\"Europe/London\",\"FIG\":\"Africa/Conakry\",\"FIH\":\"Africa/Kinshasa\",\"FIK\":\"Australia/Darwin\",\"FIL\":\"America/Denver\",\"FIN\":\"Pacific/Port_Moresby\",\"FIV\":\"America/Anchorage\",\"FIZ\":\"Australia/Perth\",\"FJR\":\"Asia/Dubai\",\"FKB\":\"Europe/Berlin\",\"FKH\":\"Europe/London\",\"FKI\":\"Africa/Lubumbashi\",\"FKJ\":\"Asia/Tokyo\",\"FKL\":\"America/New_York\",\"FKN\":\"America/New_York\",\"FKQ\":\"Asia/Jayapura\",\"FKS\":\"Asia/Tokyo\",\"FLA\":\"America/Bogota\",\"FLB\":\"America/Belem\",\"FLC\":\"Australia/Sydney\",\"FLD\":\"America/Chicago\",\"FLF\":\"Europe/Berlin\",\"FLG\":\"America/Phoenix\",\"FLH\":\"Europe/London\",\"FLI\":\"Atlantic/Reykjavik\",\"FLJ\":\"America/Anchorage\",\"FLL\":\"America/New_York\",\"FLM\":\"America/Asuncion\",\"FLN\":\"America/Sao_Paulo\",\"FLO\":\"America/New_York\",\"FLP\":\"America/Chicago\",\"FLR\":\"Europe/Rome\",\"FLS\":\"Australia/Hobart\",\"FLT\":\"America/Anchorage\",\"FLV\":\"America/Chicago\",\"FLW\":\"Atlantic/Azores\",\"FLX\":\"America/Los_Angeles\",\"FLY\":\"Australia/Sydney\",\"FLZ\":\"Asia/Jakarta\",\"FMA\":\"America/Argentina/Buenos_Aires\",\"FMC\":\"America/Anchorage\",\"FME\":\"America/New_York\",\"FMG\":\"America/Costa_Rica\",\"FMH\":\"America/New_York\",\"FMI\":\"Africa/Lubumbashi\",\"FMM\":\"Europe/Berlin\",\"FMN\":\"America/Denver\",\"FMO\":\"Europe/Berlin\",\"FMS\":\"America/Chicago\",\"FMU\":\"America/Los_Angeles\",\"FMY\":\"America/New_York\",\"FNA\":\"Africa/Freetown\",\"FNB\":\"Europe/Berlin\",\"FNC\":\"Europe/Lisbon\",\"FND\":\"Indian/Maldives\",\"FNE\":\"Pacific/Port_Moresby\",\"FNG\":\"Africa/Ouagadougou\",\"FNH\":\"Africa/Addis_Ababa\",\"FNI\":\"Europe/Paris\",\"FNJ\":\"Asia/Pyongyang\",\"FNK\":\"America/Anchorage\",\"FNL\":\"America/Denver\",\"FNR\":\"America/Anchorage\",\"FNT\":\"America/New_York\",\"FOA\":\"Europe/London\",\"FOB\":\"America/Los_Angeles\",\"FOC\":\"Asia/Shanghai\",\"FOD\":\"America/Chicago\",\"FOE\":\"America/Chicago\",\"FOG\":\"Europe/Rome\",\"FOK\":\"America/New_York\",\"FOM\":\"Africa/Douala\",\"FON\":\"America/Costa_Rica\",\"FOO\":\"Asia/Jayapura\",\"FOP\":\"America/New_York\",\"FOR\":\"America/Belem\",\"FOS\":\"Australia/Perth\",\"FOT\":\"Australia/Sydney\",\"FOU\":\"Africa/Libreville\",\"FOX\":\"America/Anchorage\",\"FOY\":\"Africa/Monrovia\",\"FPO\":\"America/Nassau\",\"FPR\":\"America/New_York\",\"FPY\":\"America/New_York\",\"FRA\":\"Europe/Berlin\",\"FRB\":\"Australia/Sydney\",\"FRC\":\"America/Sao_Paulo\",\"FRD\":\"America/Los_Angeles\",\"FRE\":\"Pacific/Guadalcanal\",\"FRG\":\"America/New_York\",\"FRH\":\"America/Indiana/Indianapolis\",\"FRI\":\"America/Chicago\",\"FRJ\":\"Europe/Paris\",\"FRK\":\"Indian/Mahe\",\"FRL\":\"Europe/Rome\",\"FRM\":\"America/Chicago\",\"FRN\":\"America/Anchorage\",\"FRO\":\"Europe/Oslo\",\"FRP\":\"America/Anchorage\",\"FRQ\":\"Pacific/Port_Moresby\",\"FRR\":\"America/New_York\",\"FRS\":\"America/Guatemala\",\"FRT\":\"America/Santiago\",\"FRU\":\"Asia/Bishkek\",\"FRW\":\"Africa/Gaborone\",\"FRY\":\"America/New_York\",\"FRZ\":\"Europe/Berlin\",\"FSC\":\"Europe/Paris\",\"FSD\":\"America/Chicago\",\"FSI\":\"America/Chicago\",\"FSK\":\"America/Chicago\",\"FSL\":\"Australia/Perth\",\"FSM\":\"America/Chicago\",\"FSN\":\"America/Chicago\",\"FSP\":\"America/Miquelon\",\"FSS\":\"Europe/London\",\"FST\":\"America/Chicago\",\"FSU\":\"America/Denver\",\"FSZ\":\"Asia/Tokyo\",\"FTA\":\"Pacific/Efate\",\"FTE\":\"America/Argentina/Buenos_Aires\",\"FTI\":\"Pacific/Pago_Pago\",\"FTK\":\"America/Chicago\",\"FTL\":\"America/Anchorage\",\"FTU\":\"Indian/Antananarivo\",\"FTW\":\"America/Chicago\",\"FTX\":\"Africa/Brazzaville\",\"FTY\":\"America/New_York\",\"FUB\":\"Pacific/Port_Moresby\",\"FUD\":\"Asia/Shanghai\",\"FUE\":\"Atlantic/Canary\",\"FUG\":\"Asia/Shanghai\",\"FUJ\":\"Asia/Tokyo\",\"FUK\":\"Asia/Tokyo\",\"FUL\":\"America/Los_Angeles\",\"FUM\":\"Pacific/Port_Moresby\",\"FUN\":\"Pacific/Funafuti\",\"FUO\":\"Asia/Shanghai\",\"FUP\":\"Europe/Stockholm\",\"FUT\":\"Pacific/Wallis\",\"FVL\":\"Australia/Perth\",\"FVM\":\"Indian/Maldives\",\"FVR\":\"Australia/Perth\",\"FWA\":\"America/Indiana/Indianapolis\",\"FWH\":\"America/Chicago\",\"FWL\":\"America/Anchorage\",\"FWM\":\"Europe/London\",\"FXE\":\"America/New_York\",\"FXM\":\"America/Anchorage\",\"FXO\":\"Africa/Maputo\",\"FXY\":\"America/Chicago\",\"FYJ\":\"Asia/Shanghai\",\"FYM\":\"America/Chicago\",\"FYN\":\"Asia/Shanghai\",\"FYT\":\"Africa/Ndjamena\",\"FYU\":\"America/Anchorage\",\"FYV\":\"America/Chicago\",\"FZO\":\"Europe/London\",\"GAA\":\"America/Bogota\",\"GAB\":\"America/Los_Angeles\",\"GAC\":\"America/Tegucigalpa\",\"GAD\":\"America/Chicago\",\"GAE\":\"Africa/Tunis\",\"GAF\":\"Africa/Tunis\",\"GAG\":\"America/Chicago\",\"GAH\":\"Australia/Brisbane\",\"GAI\":\"America/New_York\",\"GAJ\":\"Asia/Tokyo\",\"GAK\":\"America/Anchorage\",\"GAL\":\"America/Anchorage\",\"GAM\":\"America/Anchorage\",\"GAN\":\"Indian/Maldives\",\"GAO\":\"America/Havana\",\"GAP\":\"Pacific/Port_Moresby\",\"GAQ\":\"Africa/Bamako\",\"GAR\":\"Pacific/Port_Moresby\",\"GAS\":\"Africa/Nairobi\",\"GAT\":\"Europe/Paris\",\"GAU\":\"Asia/Kolkata\",\"GAV\":\"Asia/Jayapura\",\"GAW\":\"Asia/Yangon\",\"GAX\":\"Africa/Libreville\",\"GAY\":\"Asia/Kolkata\",\"GAZ\":\"Pacific/Port_Moresby\",\"GBA\":\"Pacific/Efate\",\"GBB\":\"Asia/Baku\",\"GBC\":\"Pacific/Port_Moresby\",\"GBD\":\"America/Chicago\",\"GBE\":\"Africa/Gaborone\",\"GBF\":\"Pacific/Port_Moresby\",\"GBG\":\"America/Chicago\",\"GBH\":\"America/Anchorage\",\"GBI\":\"Asia/Kolkata\",\"GBJ\":\"America/Guadeloupe\",\"GBK\":\"Africa/Freetown\",\"GBL\":\"Australia/Darwin\",\"GBM\":\"Africa/Mogadishu\",\"GBO\":\"America/New_York\",\"GBP\":\"Australia/Brisbane\",\"GBR\":\"America/New_York\",\"GBS\":\"Pacific/Auckland\",\"GBT\":\"Asia/Tehran\",\"GBU\":\"Africa/Khartoum\",\"GBV\":\"Australia/Perth\",\"GBW\":\"Australia/Perth\",\"GBZ\":\"Pacific/Auckland\",\"GCA\":\"America/Bogota\",\"GCC\":\"America/Denver\",\"GCH\":\"Asia/Tehran\",\"GCI\":\"Europe/London\",\"GCJ\":\"Africa/Johannesburg\",\"GCK\":\"America/Chicago\",\"GCM\":\"America/Cayman\",\"GCN\":\"America/Phoenix\",\"GCT\":\"America/Phoenix\",\"GCV\":\"America/Sao_Paulo\",\"GCW\":\"America/Phoenix\",\"GCY\":\"America/Chicago\",\"GDA\":\"Africa/Bangui\",\"GDC\":\"America/New_York\",\"GDD\":\"Australia/Perth\",\"GDE\":\"Africa/Addis_Ababa\",\"GDG\":\"Asia/Yakutsk\",\"GDH\":\"America/Anchorage\",\"GDI\":\"Africa/Bangui\",\"GDJ\":\"Africa/Kinshasa\",\"GDL\":\"America/Mexico_City\",\"GDM\":\"America/New_York\",\"GDN\":\"Europe/Warsaw\",\"GDO\":\"America/Caracas\",\"GDP\":\"America/Belem\",\"GDQ\":\"Africa/Addis_Ababa\",\"GDT\":\"America/Grand_Turk\",\"GDV\":\"America/Denver\",\"GDW\":\"America/New_York\",\"GDX\":\"Asia/Magadan\",\"GDZ\":\"Europe/Moscow\",\"GEA\":\"Pacific/Noumea\",\"GEB\":\"Asia/Jayapura\",\"GEC\":\"Asia/Famagusta\",\"GED\":\"America/New_York\",\"GEE\":\"Australia/Hobart\",\"GEF\":\"Pacific/Guadalcanal\",\"GEG\":\"America/Los_Angeles\",\"GEI\":\"Pacific/Bougainville\",\"GEK\":\"America/Anchorage\",\"GEL\":\"America/Sao_Paulo\",\"GEM\":\"Africa/Lagos\",\"GEN\":\"Europe/Madrid\",\"GEO\":\"America/Guyana\",\"GER\":\"America/Havana\",\"GES\":\"Asia/Manila\",\"GET\":\"Australia/Perth\",\"GEV\":\"Europe/Stockholm\",\"GEW\":\"Pacific/Port_Moresby\",\"GEX\":\"Australia/Sydney\",\"GEY\":\"America/Denver\",\"GFA\":\"America/Denver\",\"GFB\":\"America/Anchorage\",\"GFD\":\"America/Indiana/Indianapolis\",\"GFE\":\"Australia/Sydney\",\"GFF\":\"Australia/Sydney\",\"GFK\":\"America/Chicago\",\"GFL\":\"America/New_York\",\"GFN\":\"Australia/Sydney\",\"GFO\":\"America/Guyana\",\"GFR\":\"Europe/Paris\",\"GFY\":\"Africa/Windhoek\",\"GGB\":\"America/Cuiaba\",\"GGC\":\"Africa/Luanda\",\"GGD\":\"Australia/Brisbane\",\"GGE\":\"America/New_York\",\"GGF\":\"America/Santarem\",\"GGG\":\"America/Chicago\",\"GGH\":\"America/Campo_Grande\",\"GGJ\":\"America/Sao_Paulo\",\"GGL\":\"America/Bogota\",\"GGM\":\"Africa/Nairobi\",\"GGN\":\"Africa/Abidjan\",\"GGO\":\"Africa/Abidjan\",\"GGR\":\"Africa/Mogadishu\",\"GGS\":\"America/Argentina/Buenos_Aires\",\"GGT\":\"America/Nassau\",\"GGW\":\"America/Denver\",\"GHA\":\"Africa/Algiers\",\"GHB\":\"America/Nassau\",\"GHC\":\"America/Nassau\",\"GHD\":\"Africa/Addis_Ababa\",\"GHE\":\"America/Panama\",\"GHF\":\"Europe/Berlin\",\"GHK\":\"Asia/Jerusalem\",\"GHM\":\"America/Chicago\",\"GHN\":\"Asia/Shanghai\",\"GHS\":\"Asia/Makassar\",\"GHT\":\"Africa/Tripoli\",\"GHU\":\"America/Argentina/Buenos_Aires\",\"GIB\":\"Europe/Gibraltar\",\"GIC\":\"Australia/Brisbane\",\"GID\":\"Africa/Bujumbura\",\"GIF\":\"America/New_York\",\"GIG\":\"America/Sao_Paulo\",\"GII\":\"Africa/Conakry\",\"GIL\":\"Asia/Karachi\",\"GIM\":\"Africa/Libreville\",\"GIR\":\"America/Bogota\",\"GIS\":\"Pacific/Auckland\",\"GIT\":\"Africa/Dar_es_Salaam\",\"GIU\":\"Asia/Colombo\",\"GIY\":\"Africa/Johannesburg\",\"GIZ\":\"Asia/Riyadh\",\"GJA\":\"America/Tegucigalpa\",\"GJL\":\"Africa/Algiers\",\"GJM\":\"America/Porto_Velho\",\"GJR\":\"Atlantic/Reykjavik\",\"GJT\":\"America/Denver\",\"GKA\":\"Pacific/Port_Moresby\",\"GKE\":\"Europe/Berlin\",\"GKH\":\"Asia/Kathmandu\",\"GKK\":\"Indian/Maldives\",\"GKL\":\"Australia/Brisbane\",\"GKN\":\"America/Anchorage\",\"GKO\":\"Africa/Libreville\",\"GKT\":\"America/New_York\",\"GLA\":\"Europe/London\",\"GLC\":\"Africa/Addis_Ababa\",\"GLD\":\"America/Denver\",\"GLE\":\"America/Chicago\",\"GLF\":\"America/Costa_Rica\",\"GLG\":\"Australia/Brisbane\",\"GLH\":\"America/Chicago\",\"GLI\":\"Australia/Sydney\",\"GLK\":\"Africa/Mogadishu\",\"GLL\":\"Europe/Oslo\",\"GLM\":\"Australia/Brisbane\",\"GLN\":\"Africa/Casablanca\",\"GLO\":\"Europe/London\",\"GLP\":\"Pacific/Port_Moresby\",\"GLQ\":\"America/Anchorage\",\"GLR\":\"America/New_York\",\"GLS\":\"America/Chicago\",\"GLT\":\"Australia/Brisbane\",\"GLU\":\"Asia/Thimphu\",\"GLV\":\"America/Anchorage\",\"GLW\":\"America/Chicago\",\"GLX\":\"Asia/Jayapura\",\"GLY\":\"Australia/Perth\",\"GLZ\":\"Europe/Amsterdam\",\"GMA\":\"Africa/Kinshasa\",\"GMB\":\"Africa/Addis_Ababa\",\"GMC\":\"America/Bogota\",\"GMD\":\"Africa/Casablanca\",\"GME\":\"Europe/Minsk\",\"GMI\":\"Pacific/Port_Moresby\",\"GMM\":\"Africa/Brazzaville\",\"GMN\":\"Pacific/Auckland\",\"GMO\":\"Africa/Lagos\",\"GMP\":\"Asia/Seoul\",\"GMQ\":\"Asia/Shanghai\",\"GMR\":\"Pacific/Gambier\",\"GMS\":\"America/Belem\",\"GMT\":\"America/Anchorage\",\"GMU\":\"America/New_York\",\"GMV\":\"America/Denver\",\"GMY\":\"Europe/Berlin\",\"GMZ\":\"Atlantic/Canary\",\"GNA\":\"Europe/Minsk\",\"GNB\":\"Europe/Paris\",\"GND\":\"America/Grenada\",\"GNE\":\"Europe/Brussels\",\"GNF\":\"America/Los_Angeles\",\"GNG\":\"America/Denver\",\"GNI\":\"Asia/Taipei\",\"GNM\":\"America/Belem\",\"GNN\":\"Africa/Addis_Ababa\",\"GNR\":\"America/Argentina/Buenos_Aires\",\"GNS\":\"Asia/Jakarta\",\"GNT\":\"America/Denver\",\"GNU\":\"America/Anchorage\",\"GNV\":\"America/New_York\",\"GNY\":\"Europe/Istanbul\",\"GNZ\":\"Africa/Gaborone\",\"GOA\":\"Europe/Rome\",\"GOB\":\"Africa/Addis_Ababa\",\"GOC\":\"Pacific/Port_Moresby\",\"GOE\":\"Pacific/Port_Moresby\",\"GOF\":\"America/Chicago\",\"GOG\":\"Africa/Windhoek\",\"GOH\":\"America/Godthab\",\"GOI\":\"Asia/Kolkata\",\"GOJ\":\"Europe/Moscow\",\"GOK\":\"America/Chicago\",\"GOL\":\"America/Los_Angeles\",\"GOM\":\"Africa/Lubumbashi\",\"GON\":\"America/New_York\",\"GOO\":\"Australia/Brisbane\",\"GOP\":\"Asia/Kolkata\",\"GOQ\":\"Asia/Shanghai\",\"GOR\":\"Africa/Addis_Ababa\",\"GOS\":\"Australia/Sydney\",\"GOT\":\"Europe/Stockholm\",\"GOU\":\"Africa/Douala\",\"GOV\":\"Australia/Darwin\",\"GOZ\":\"Europe/Sofia\",\"GPA\":\"Europe/Athens\",\"GPB\":\"America/Sao_Paulo\",\"GPD\":\"Australia/Brisbane\",\"GPI\":\"America/Bogota\",\"GPL\":\"America/Costa_Rica\",\"GPN\":\"Australia/Darwin\",\"GPO\":\"America/Argentina/Buenos_Aires\",\"GPS\":\"Pacific/Galapagos\",\"GPT\":\"America/Chicago\",\"GPZ\":\"America/Chicago\",\"GQJ\":\"Europe/London\",\"GQQ\":\"America/New_York\",\"GRA\":\"America/Bogota\",\"GRB\":\"America/Chicago\",\"GRC\":\"Africa/Monrovia\",\"GRD\":\"America/New_York\",\"GRE\":\"America/Chicago\",\"GRF\":\"America/Los_Angeles\",\"GRG\":\"Asia/Kabul\",\"GRH\":\"Pacific/Port_Moresby\",\"GRI\":\"America/Chicago\",\"GRJ\":\"Africa/Johannesburg\",\"GRK\":\"America/Chicago\",\"GRL\":\"Pacific/Port_Moresby\",\"GRM\":\"America/Chicago\",\"GRN\":\"America/Denver\",\"GRO\":\"Europe/Madrid\",\"GRP\":\"America/Belem\",\"GRQ\":\"Europe/Amsterdam\",\"GRR\":\"America/New_York\",\"GRS\":\"Europe/Rome\",\"GRT\":\"Asia/Karachi\",\"GRU\":\"America/Sao_Paulo\",\"GRV\":\"Europe/Moscow\",\"GRW\":\"Atlantic/Azores\",\"GRX\":\"Europe/Madrid\",\"GRY\":\"Atlantic/Reykjavik\",\"GRZ\":\"Europe/Vienna\",\"GSA\":\"Asia/Kuala_Lumpur\",\"GSB\":\"America/New_York\",\"GSC\":\"Australia/Perth\",\"GSE\":\"Europe/Stockholm\",\"GSH\":\"America/Indiana/Indianapolis\",\"GSI\":\"Pacific/Guadalcanal\",\"GSJ\":\"America/Guatemala\",\"GSL\":\"America/Edmonton\",\"GSM\":\"Asia/Tehran\",\"GSN\":\"Australia/Adelaide\",\"GSO\":\"America/New_York\",\"GSP\":\"America/New_York\",\"GSQ\":\"Africa/Cairo\",\"GSR\":\"Africa/Mogadishu\",\"GSS\":\"Africa/Johannesburg\",\"GST\":\"America/Anchorage\",\"GSU\":\"Africa/Khartoum\",\"GSV\":\"Europe/Saratov\",\"GSY\":\"Europe/London\",\"GTA\":\"Pacific/Guadalcanal\",\"GTB\":\"Asia/Kuala_Lumpur\",\"GTC\":\"America/Nassau\",\"GTE\":\"Australia/Darwin\",\"GTF\":\"America/Denver\",\"GTG\":\"America/Chicago\",\"GTI\":\"Europe/Berlin\",\"GTK\":\"Asia/Kuala_Lumpur\",\"GTN\":\"Pacific/Auckland\",\"GTO\":\"Asia/Makassar\",\"GTP\":\"America/Los_Angeles\",\"GTR\":\"America/Chicago\",\"GTS\":\"Australia/Darwin\",\"GTT\":\"Australia/Brisbane\",\"GTW\":\"Europe/Prague\",\"GTY\":\"America/New_York\",\"GTZ\":\"Africa/Dar_es_Salaam\",\"GUA\":\"America/Guatemala\",\"GUB\":\"America/Mazatlan\",\"GUC\":\"America/Denver\",\"GUD\":\"Africa/Bamako\",\"GUE\":\"Pacific/Port_Moresby\",\"GUF\":\"America/Chicago\",\"GUG\":\"Pacific/Port_Moresby\",\"GUH\":\"Australia/Sydney\",\"GUI\":\"America/Caracas\",\"GUJ\":\"America/Sao_Paulo\",\"GUL\":\"Australia/Sydney\",\"GUM\":\"Pacific/Guam\",\"GUO\":\"Africa/Mogadishu\",\"GUP\":\"America/Denver\",\"GUQ\":\"America/Caracas\",\"GUR\":\"Pacific/Port_Moresby\",\"GUS\":\"America/Indiana/Indianapolis\",\"GUT\":\"Europe/Berlin\",\"GUU\":\"Atlantic/Reykjavik\",\"GUV\":\"Pacific/Port_Moresby\",\"GUW\":\"Asia/Atyrau\",\"GUX\":\"Asia/Kolkata\",\"GUY\":\"America/Chicago\",\"GUZ\":\"America/Sao_Paulo\",\"GVA\":\"Europe/Zurich\",\"GVE\":\"America/New_York\",\"GVI\":\"Pacific/Port_Moresby\",\"GVL\":\"America/New_York\",\"GVP\":\"Australia/Brisbane\",\"GVR\":\"America/Sao_Paulo\",\"GVT\":\"America/Chicago\",\"GVW\":\"America/Chicago\",\"GVX\":\"Europe/Stockholm\",\"GWA\":\"Asia/Yangon\",\"GWD\":\"Asia/Karachi\",\"GWE\":\"Africa/Harare\",\"GWL\":\"Asia/Kolkata\",\"GWN\":\"Pacific/Port_Moresby\",\"GWO\":\"America/Chicago\",\"GWS\":\"America/Denver\",\"GWT\":\"Europe/Berlin\",\"GWV\":\"America/New_York\",\"GWW\":\"Europe/Berlin\",\"GWY\":\"Europe/Dublin\",\"GXA\":\"Asia/Jakarta\",\"GXF\":\"Asia/Aden\",\"GXG\":\"Africa/Luanda\",\"GXH\":\"Asia/Shanghai\",\"GXQ\":\"America/Santiago\",\"GXX\":\"Africa/Douala\",\"GXY\":\"America/Denver\",\"GYA\":\"America/La_Paz\",\"GYB\":\"Australia/Perth\",\"GYD\":\"Asia/Baku\",\"GYE\":\"America/Guayaquil\",\"GYG\":\"Asia/Yakutsk\",\"GYI\":\"Africa/Kigali\",\"GYL\":\"Australia/Perth\",\"GYM\":\"America/Hermosillo\",\"GYN\":\"America/Sao_Paulo\",\"GYP\":\"Australia/Brisbane\",\"GYR\":\"America/Phoenix\",\"GYS\":\"Asia/Shanghai\",\"GYU\":\"Asia/Shanghai\",\"GYZ\":\"Australia/Perth\",\"GZA\":\"Asia/Gaza\",\"GZG\":\"Asia/Shanghai\",\"GZI\":\"Asia/Kabul\",\"GZM\":\"Europe/Malta\",\"GZO\":\"Pacific/Guadalcanal\",\"GZP\":\"Europe/Istanbul\",\"GZT\":\"Europe/Istanbul\",\"GZW\":\"Asia/Tehran\",\"HAA\":\"Europe/Oslo\",\"HAB\":\"America/Chicago\",\"HAC\":\"Asia/Tokyo\",\"HAD\":\"Europe/Stockholm\",\"HAE\":\"America/Phoenix\",\"HAF\":\"America/Los_Angeles\",\"HAH\":\"Indian/Comoro\",\"HAI\":\"America/New_York\",\"HAJ\":\"Europe/Berlin\",\"HAK\":\"Asia/Shanghai\",\"HAL\":\"Africa/Windhoek\",\"HAM\":\"Europe/Berlin\",\"HAN\":\"Asia/Ho_Chi_Minh\",\"HAO\":\"America/New_York\",\"HAP\":\"Australia/Brisbane\",\"HAQ\":\"Indian/Maldives\",\"HAR\":\"America/New_York\",\"HAS\":\"Asia/Riyadh\",\"HAT\":\"Australia/Brisbane\",\"HAU\":\"Europe/Oslo\",\"HAV\":\"America/Havana\",\"HAW\":\"Europe/London\",\"HAX\":\"America/Chicago\",\"HAY\":\"America/Anchorage\",\"HAZ\":\"Pacific/Port_Moresby\",\"HBA\":\"Australia/Hobart\",\"HBB\":\"America/Denver\",\"HBC\":\"America/Anchorage\",\"HBD\":\"Pacific/Port_Moresby\",\"HBE\":\"Africa/Cairo\",\"HBG\":\"America/Chicago\",\"HBH\":\"America/Anchorage\",\"HBI\":\"America/Nassau\",\"HBK\":\"America/Phoenix\",\"HBN\":\"Asia/Ho_Chi_Minh\",\"HBO\":\"America/Chicago\",\"HBQ\":\"Asia/Shanghai\",\"HBR\":\"America/Chicago\",\"HBT\":\"Asia/Colombo\",\"HBU\":\"Asia/Ulaanbaatar\",\"HBX\":\"Asia/Kolkata\",\"HCA\":\"America/Chicago\",\"HCB\":\"America/Anchorage\",\"HCC\":\"America/New_York\",\"HCJ\":\"Asia/Shanghai\",\"HCM\":\"Africa/Mogadishu\",\"HCN\":\"Asia/Taipei\",\"HCQ\":\"Australia/Perth\",\"HCR\":\"America/Anchorage\",\"HCW\":\"America/New_York\",\"HDA\":\"America/Anchorage\",\"HDB\":\"Europe/Berlin\",\"HDD\":\"Asia/Karachi\",\"HDE\":\"America/Chicago\",\"HDF\":\"Europe/Berlin\",\"HDG\":\"Asia/Shanghai\",\"HDH\":\"Pacific/Honolulu\",\"HDK\":\"Indian/Maldives\",\"HDM\":\"Asia/Tehran\",\"HDN\":\"America/Denver\",\"HDR\":\"Asia/Tehran\",\"HDS\":\"Africa/Johannesburg\",\"HDY\":\"Asia/Bangkok\",\"HEA\":\"Asia/Kabul\",\"HEB\":\"Asia/Yangon\",\"HED\":\"America/Anchorage\",\"HEE\":\"America/Chicago\",\"HEH\":\"Asia/Yangon\",\"HEI\":\"Europe/Berlin\",\"HEK\":\"Asia/Shanghai\",\"HEL\":\"Europe/Helsinki\",\"HEM\":\"Europe/Helsinki\",\"HEO\":\"Pacific/Port_Moresby\",\"HER\":\"Europe/Athens\",\"HES\":\"America/Los_Angeles\",\"HET\":\"Asia/Shanghai\",\"HEV\":\"Europe/Madrid\",\"HEW\":\"Asia/Shanghai\",\"HEX\":\"America/Santo_Domingo\",\"HEY\":\"America/Chicago\",\"HEZ\":\"America/Chicago\",\"HFA\":\"Asia/Jerusalem\",\"HFD\":\"America/New_York\",\"HFE\":\"Asia/Shanghai\",\"HFF\":\"America/New_York\",\"HFN\":\"Atlantic/Reykjavik\",\"HFS\":\"Europe/Stockholm\",\"HFT\":\"Europe/Oslo\",\"HGA\":\"Africa/Mogadishu\",\"HGD\":\"Australia/Brisbane\",\"HGE\":\"America/Caracas\",\"HGH\":\"Asia/Shanghai\",\"HGL\":\"Europe/Berlin\",\"HGN\":\"Asia/Bangkok\",\"HGO\":\"Africa/Abidjan\",\"HGR\":\"America/New_York\",\"HGS\":\"Africa/Freetown\",\"HGT\":\"America/Los_Angeles\",\"HGU\":\"Pacific/Port_Moresby\",\"HGZ\":\"America/Anchorage\",\"HHE\":\"Asia/Tokyo\",\"HHH\":\"America/New_York\",\"HHI\":\"Pacific/Honolulu\",\"HHN\":\"Europe/Berlin\",\"HHP\":\"Asia/Hong_Kong\",\"HHQ\":\"Asia/Bangkok\",\"HHR\":\"America/Los_Angeles\",\"HHZ\":\"Pacific/Tahiti\",\"HIA\":\"Asia/Shanghai\",\"HIB\":\"America/Chicago\",\"HID\":\"Australia/Brisbane\",\"HIE\":\"America/New_York\",\"HIF\":\"America/Denver\",\"HIG\":\"Australia/Brisbane\",\"HIH\":\"Australia/Brisbane\",\"HII\":\"America/Phoenix\",\"HIJ\":\"Asia/Tokyo\",\"HIK\":\"Pacific/Honolulu\",\"HIL\":\"Africa/Addis_Ababa\",\"HIM\":\"Asia/Colombo\",\"HIN\":\"Asia/Seoul\",\"HIO\":\"America/Los_Angeles\",\"HIP\":\"Australia/Brisbane\",\"HIR\":\"Pacific/Guadalcanal\",\"HIS\":\"Australia/Brisbane\",\"HIT\":\"Pacific/Port_Moresby\",\"HIW\":\"Asia/Tokyo\",\"HJJ\":\"Asia/Shanghai\",\"HJR\":\"Asia/Kolkata\",\"HJT\":\"Asia/Ulaanbaatar\",\"HKA\":\"America/Chicago\",\"HKB\":\"America/Anchorage\",\"HKD\":\"Asia/Tokyo\",\"HKG\":\"Asia/Hong_Kong\",\"HKK\":\"Pacific/Auckland\",\"HKN\":\"Pacific/Port_Moresby\",\"HKR\":\"Africa/Nairobi\",\"HKS\":\"America/Chicago\",\"HKT\":\"Asia/Bangkok\",\"HKV\":\"Europe/Sofia\",\"HKY\":\"America/New_York\",\"HLA\":\"Africa/Johannesburg\",\"HLB\":\"America/Indiana/Indianapolis\",\"HLC\":\"America/Chicago\",\"HLD\":\"Asia/Shanghai\",\"HLE\":\"Atlantic/St_Helena\",\"HLF\":\"Europe/Stockholm\",\"HLG\":\"America/New_York\",\"HLH\":\"Asia/Shanghai\",\"HLI\":\"America/Los_Angeles\",\"HLL\":\"Australia/Perth\",\"HLM\":\"America/New_York\",\"HLN\":\"America/Denver\",\"HLP\":\"Asia/Jakarta\",\"HLR\":\"America/Chicago\",\"HLS\":\"Australia/Hobart\",\"HLT\":\"Australia/Sydney\",\"HLU\":\"Pacific/Noumea\",\"HLV\":\"Australia/Brisbane\",\"HLW\":\"Africa/Johannesburg\",\"HLY\":\"Europe/London\",\"HLZ\":\"Pacific/Auckland\",\"HMA\":\"Asia/Yekaterinburg\",\"HMB\":\"Africa/Cairo\",\"HME\":\"Africa/Algiers\",\"HMG\":\"Australia/Darwin\",\"HMI\":\"Asia/Shanghai\",\"HMJ\":\"Europe/Kiev\",\"HMN\":\"America/Denver\",\"HMO\":\"America/Hermosillo\",\"HMR\":\"Europe/Oslo\",\"HMS\":\"America/Anchorage\",\"HMT\":\"America/Los_Angeles\",\"HMV\":\"Europe/Stockholm\",\"HMY\":\"Asia/Seoul\",\"HNA\":\"Asia/Tokyo\",\"HNB\":\"America/Indiana/Indianapolis\",\"HNC\":\"America/New_York\",\"HND\":\"Asia/Tokyo\",\"HNE\":\"America/Anchorage\",\"HNG\":\"Pacific/Noumea\",\"HNH\":\"America/Anchorage\",\"HNI\":\"Pacific/Port_Moresby\",\"HNK\":\"Australia/Brisbane\",\"HNL\":\"Pacific/Honolulu\",\"HNM\":\"Pacific/Honolulu\",\"HNN\":\"Pacific/Port_Moresby\",\"HNS\":\"America/Anchorage\",\"HNX\":\"America/Denver\",\"HNY\":\"Asia/Shanghai\",\"HOA\":\"Africa/Nairobi\",\"HOB\":\"America/Denver\",\"HOC\":\"Pacific/Port_Moresby\",\"HOD\":\"Asia/Aden\",\"HOE\":\"Asia/Vientiane\",\"HOF\":\"Asia/Riyadh\",\"HOG\":\"America/Havana\",\"HOH\":\"Europe/Vienna\",\"HOI\":\"Pacific/Tahiti\",\"HOK\":\"Australia/Darwin\",\"HOL\":\"America/Anchorage\",\"HOM\":\"America/Anchorage\",\"HON\":\"America/Chicago\",\"HOO\":\"Asia/Ho_Chi_Minh\",\"HOP\":\"America/Chicago\",\"HOQ\":\"Europe/Berlin\",\"HOR\":\"Atlantic/Azores\",\"HOS\":\"America/Argentina/Buenos_Aires\",\"HOT\":\"America/Chicago\",\"HOU\":\"America/Chicago\",\"HOV\":\"Europe/Oslo\",\"HOX\":\"Asia/Yangon\",\"HOY\":\"Europe/London\",\"HPA\":\"Pacific/Tongatapu\",\"HPB\":\"America/Anchorage\",\"HPE\":\"Australia/Brisbane\",\"HPG\":\"Asia/Shanghai\",\"HPH\":\"Asia/Ho_Chi_Minh\",\"HPN\":\"America/New_York\",\"HPT\":\"America/Chicago\",\"HPV\":\"Pacific/Honolulu\",\"HPY\":\"America/Chicago\",\"HQM\":\"America/Los_Angeles\",\"HRA\":\"Asia/Karachi\",\"HRB\":\"Asia/Shanghai\",\"HRC\":\"Asia/Almaty\",\"HRE\":\"Africa/Harare\",\"HRG\":\"Africa/Cairo\",\"HRI\":\"Asia/Colombo\",\"HRK\":\"Europe/Kiev\",\"HRL\":\"America/Chicago\",\"HRM\":\"Africa/Algiers\",\"HRN\":\"Australia/Brisbane\",\"HRO\":\"America/Chicago\",\"HRR\":\"America/Bogota\",\"HRS\":\"Africa/Johannesburg\",\"HRT\":\"Europe/London\",\"HRY\":\"Australia/Darwin\",\"HRZ\":\"America/Sao_Paulo\",\"HSB\":\"America/Chicago\",\"HSC\":\"Asia/Shanghai\",\"HSG\":\"Asia/Tokyo\",\"HSH\":\"America/Los_Angeles\",\"HSI\":\"America/Chicago\",\"HSK\":\"Europe/Madrid\",\"HSL\":\"America/Anchorage\",\"HSM\":\"Australia/Sydney\",\"HSN\":\"Asia/Shanghai\",\"HSP\":\"America/New_York\",\"HSS\":\"Asia/Kolkata\",\"HST\":\"America/New_York\",\"HSV\":\"America/Chicago\",\"HSZ\":\"Asia/Taipei\",\"HTA\":\"Asia/Yakutsk\",\"HTB\":\"America/Guadeloupe\",\"HTF\":\"Europe/London\",\"HTG\":\"Asia/Krasnoyarsk\",\"HTH\":\"America/Los_Angeles\",\"HTI\":\"Australia/Brisbane\",\"HTL\":\"America/New_York\",\"HTM\":\"Asia/Ulaanbaatar\",\"HTN\":\"Asia/Shanghai\",\"HTO\":\"America/New_York\",\"HTR\":\"Asia/Tokyo\",\"HTS\":\"America/New_York\",\"HTT\":\"Asia/Shanghai\",\"HTU\":\"Australia/Sydney\",\"HTV\":\"America/Chicago\",\"HTW\":\"America/New_York\",\"HTY\":\"Europe/Istanbul\",\"HTZ\":\"America/Bogota\",\"HUA\":\"America/Chicago\",\"HUB\":\"Australia/Darwin\",\"HUC\":\"America/Puerto_Rico\",\"HUD\":\"America/Chicago\",\"HUE\":\"Africa/Addis_Ababa\",\"HUF\":\"America/Indiana/Indianapolis\",\"HUG\":\"America/Guatemala\",\"HUH\":\"Pacific/Tahiti\",\"HUI\":\"Asia/Ho_Chi_Minh\",\"HUJ\":\"America/Chicago\",\"HUK\":\"Africa/Gaborone\",\"HUL\":\"America/New_York\",\"HUM\":\"America/Chicago\",\"HUN\":\"Asia/Taipei\",\"HUO\":\"Asia/Shanghai\",\"HUQ\":\"Africa/Tripoli\",\"HUS\":\"America/Anchorage\",\"HUT\":\"America/Chicago\",\"HUU\":\"America/Lima\",\"HUV\":\"Europe/Stockholm\",\"HUW\":\"America/Porto_Velho\",\"HUX\":\"America/Mexico_City\",\"HUY\":\"Europe/London\",\"HUZ\":\"Asia/Shanghai\",\"HVA\":\"Indian/Antananarivo\",\"HVB\":\"Australia/Brisbane\",\"HVD\":\"Asia/Ulaanbaatar\",\"HVE\":\"America/Denver\",\"HVG\":\"Europe/Oslo\",\"HVK\":\"Atlantic/Reykjavik\",\"HVM\":\"Atlantic/Reykjavik\",\"HVN\":\"America/New_York\",\"HVR\":\"America/Denver\",\"HVS\":\"America/New_York\",\"HWA\":\"Pacific/Port_Moresby\",\"HWD\":\"America/Los_Angeles\",\"HWI\":\"America/Anchorage\",\"HWK\":\"Australia/Adelaide\",\"HWN\":\"Africa/Harare\",\"HWO\":\"America/New_York\",\"HXD\":\"Asia/Shanghai\",\"HXX\":\"Australia/Sydney\",\"HYA\":\"America/New_York\",\"HYC\":\"Europe/London\",\"HYD\":\"Asia/Kolkata\",\"HYF\":\"Pacific/Port_Moresby\",\"HYG\":\"America/Anchorage\",\"HYL\":\"America/Anchorage\",\"HYN\":\"Asia/Shanghai\",\"HYR\":\"America/Chicago\",\"HYS\":\"America/Chicago\",\"HYV\":\"Europe/Helsinki\",\"HZB\":\"Europe/Paris\",\"HZG\":\"Asia/Shanghai\",\"HZH\":\"Asia/Shanghai\",\"HZK\":\"Atlantic/Reykjavik\",\"HZL\":\"America/New_York\",\"HZP\":\"America/Edmonton\",\"HZV\":\"Africa/Johannesburg\",\"IAA\":\"Asia/Krasnoyarsk\",\"IAB\":\"America/Chicago\",\"IAD\":\"America/New_York\",\"IAG\":\"America/New_York\",\"IAH\":\"America/Chicago\",\"IAM\":\"Africa/Algiers\",\"IAN\":\"America/Anchorage\",\"IAO\":\"Asia/Manila\",\"IAQ\":\"Asia/Tehran\",\"IAR\":\"Europe/Moscow\",\"IAS\":\"Europe/Bucharest\",\"IAU\":\"Pacific/Port_Moresby\",\"IBA\":\"Africa/Lagos\",\"IBE\":\"America/Bogota\",\"IBI\":\"Pacific/Port_Moresby\",\"IBO\":\"Africa/Maputo\",\"IBP\":\"America/Lima\",\"IBR\":\"Asia/Tokyo\",\"IBZ\":\"Europe/Madrid\",\"ICA\":\"America/Caracas\",\"ICI\":\"Pacific/Fiji\",\"ICK\":\"America/Paramaribo\",\"ICL\":\"America/Chicago\",\"ICN\":\"Asia/Seoul\",\"ICO\":\"Asia/Manila\",\"ICR\":\"America/Havana\",\"ICT\":\"America/Chicago\",\"ICY\":\"America/Anchorage\",\"IDA\":\"America/Denver\",\"IDB\":\"Europe/Stockholm\",\"IDF\":\"Africa/Kinshasa\",\"IDG\":\"America/Chicago\",\"IDI\":\"America/New_York\",\"IDK\":\"Australia/Adelaide\",\"IDN\":\"Pacific/Port_Moresby\",\"IDO\":\"America/Belem\",\"IDP\":\"America/Chicago\",\"IDR\":\"Asia/Kolkata\",\"IDY\":\"Europe/Paris\",\"IEG\":\"Europe/Warsaw\",\"IEJ\":\"Asia/Tokyo\",\"IES\":\"Europe/Berlin\",\"IEV\":\"Europe/Kiev\",\"IFA\":\"America/Chicago\",\"IFF\":\"Australia/Brisbane\",\"IFH\":\"Asia/Tehran\",\"IFJ\":\"Atlantic/Reykjavik\",\"IFL\":\"Australia/Brisbane\",\"IFN\":\"Asia/Tehran\",\"IFO\":\"Europe/Kiev\",\"IFP\":\"America/Phoenix\",\"IFU\":\"Indian/Maldives\",\"IGA\":\"America/Nassau\",\"IGB\":\"America/Argentina/Buenos_Aires\",\"IGD\":\"Europe/Istanbul\",\"IGE\":\"Africa/Libreville\",\"IGG\":\"America/Anchorage\",\"IGH\":\"Australia/Brisbane\",\"IGL\":\"Europe/Istanbul\",\"IGM\":\"America/Phoenix\",\"IGN\":\"Asia/Manila\",\"IGO\":\"America/Bogota\",\"IGR\":\"America/Argentina/Buenos_Aires\",\"IGS\":\"Europe/Berlin\",\"IGT\":\"Europe/Moscow\",\"IGU\":\"America/Sao_Paulo\",\"IHA\":\"Asia/Tokyo\",\"IHC\":\"Africa/Maputo\",\"IHN\":\"Asia/Aden\",\"IHO\":\"Indian/Antananarivo\",\"IHR\":\"Asia/Tehran\",\"IHU\":\"Pacific/Port_Moresby\",\"IIA\":\"Europe/Dublin\",\"IIL\":\"Asia/Tehran\",\"IIN\":\"Asia/Tokyo\",\"IIS\":\"Pacific/Bougainville\",\"IJK\":\"Europe/Samara\",\"IJU\":\"America/Sao_Paulo\",\"IJX\":\"America/Chicago\",\"IKA\":\"Asia/Tehran\",\"IKB\":\"America/New_York\",\"IKE\":\"America/Godthab\",\"IKI\":\"Asia/Tokyo\",\"IKK\":\"America/Chicago\",\"IKL\":\"Africa/Kinshasa\",\"IKO\":\"America/Anchorage\",\"IKP\":\"Australia/Brisbane\",\"IKS\":\"Asia/Yakutsk\",\"IKT\":\"Asia/Irkutsk\",\"IKU\":\"Asia/Bishkek\",\"ILA\":\"Asia/Jayapura\",\"ILB\":\"America/Campo_Grande\",\"ILD\":\"Europe/Madrid\",\"ILE\":\"America/Chicago\",\"ILF\":\"America/Winnipeg\",\"ILG\":\"America/New_York\",\"ILH\":\"Europe/Berlin\",\"ILI\":\"America/Anchorage\",\"ILK\":\"Indian/Antananarivo\",\"ILL\":\"America/Chicago\",\"ILM\":\"America/New_York\",\"ILN\":\"America/New_York\",\"ILO\":\"Asia/Manila\",\"ILP\":\"Pacific/Noumea\",\"ILQ\":\"America/Lima\",\"ILR\":\"Africa/Lagos\",\"ILS\":\"America/El_Salvador\",\"ILU\":\"Africa/Nairobi\",\"ILY\":\"Europe/London\",\"ILZ\":\"Europe/Bratislava\",\"IMA\":\"Pacific/Port_Moresby\",\"IMB\":\"America/Guyana\",\"IMD\":\"Pacific/Port_Moresby\",\"IMF\":\"Asia/Kolkata\",\"IMG\":\"Africa/Maputo\",\"IMI\":\"Pacific/Majuro\",\"IMK\":\"Asia/Kathmandu\",\"IML\":\"America/Denver\",\"IMM\":\"America/New_York\",\"IMN\":\"Pacific/Port_Moresby\",\"IMO\":\"Africa/Bangui\",\"IMP\":\"America/Belem\",\"IMT\":\"America/Chicago\",\"IMZ\":\"Asia/Kabul\",\"INA\":\"Europe/Moscow\",\"INB\":\"America/Belize\",\"INC\":\"Asia/Shanghai\",\"IND\":\"America/Indiana/Indianapolis\",\"INE\":\"Africa/Maputo\",\"INF\":\"Africa/Algiers\",\"ING\":\"America/Argentina/Buenos_Aires\",\"INH\":\"Africa/Maputo\",\"INI\":\"Europe/Belgrade\",\"INJ\":\"Australia/Brisbane\",\"INK\":\"America/Chicago\",\"INL\":\"America/Chicago\",\"INM\":\"Australia/Adelaide\",\"INN\":\"Europe/Vienna\",\"INO\":\"Africa/Kinshasa\",\"INQ\":\"Europe/Dublin\",\"INS\":\"America/Los_Angeles\",\"INT\":\"America/New_York\",\"INU\":\"Pacific/Nauru\",\"INV\":\"Europe/London\",\"INW\":\"America/Phoenix\",\"INX\":\"Asia/Jayapura\",\"INY\":\"Africa/Johannesburg\",\"INZ\":\"Africa/Algiers\",\"IOA\":\"Europe/Athens\",\"IOK\":\"Pacific/Port_Moresby\",\"IOM\":\"Europe/London\",\"ION\":\"Africa/Brazzaville\",\"IOP\":\"Pacific/Port_Moresby\",\"IOQ\":\"America/Godthab\",\"IOR\":\"Europe/Dublin\",\"IOS\":\"America/Belem\",\"IOT\":\"America/Godthab\",\"IOU\":\"Pacific/Noumea\",\"IOW\":\"America/Chicago\",\"IPA\":\"Pacific/Efate\",\"IPC\":\"Pacific/Easter\",\"IPE\":\"Asia/Manila\",\"IPG\":\"America/Porto_Velho\",\"IPH\":\"Asia/Kuala_Lumpur\",\"IPI\":\"America/Bogota\",\"IPL\":\"America/Los_Angeles\",\"IPN\":\"America/Sao_Paulo\",\"IPT\":\"America/New_York\",\"IPU\":\"America/Belem\",\"IPW\":\"Europe/London\",\"IQA\":\"Asia/Baghdad\",\"IQM\":\"Asia/Shanghai\",\"IQN\":\"Asia/Shanghai\",\"IQQ\":\"America/Santiago\",\"IQT\":\"America/Lima\",\"IRA\":\"Pacific/Guadalcanal\",\"IRB\":\"America/Chicago\",\"IRC\":\"America/Anchorage\",\"IRD\":\"Asia/Dhaka\",\"IRE\":\"America/Belem\",\"IRG\":\"Australia/Brisbane\",\"IRI\":\"Africa/Dar_es_Salaam\",\"IRJ\":\"America/Argentina/Buenos_Aires\",\"IRK\":\"America/Chicago\",\"IRM\":\"Asia/Yekaterinburg\",\"IRN\":\"America/Tegucigalpa\",\"IRO\":\"Africa/Bangui\",\"IRP\":\"Africa/Lubumbashi\",\"IRS\":\"America/New_York\",\"IRZ\":\"America/Porto_Velho\",\"ISA\":\"Australia/Brisbane\",\"ISB\":\"Asia/Karachi\",\"ISC\":\"Europe/London\",\"ISD\":\"America/Bogota\",\"ISE\":\"Europe/Istanbul\",\"ISG\":\"Asia/Tokyo\",\"ISH\":\"Europe/Rome\",\"ISI\":\"Australia/Brisbane\",\"ISJ\":\"America/Mexico_City\",\"ISK\":\"Asia/Kolkata\",\"ISL\":\"Europe/Istanbul\",\"ISM\":\"America/New_York\",\"ISN\":\"America/Chicago\",\"ISO\":\"America/New_York\",\"ISP\":\"America/New_York\",\"ISQ\":\"America/New_York\",\"ISS\":\"America/New_York\",\"IST\":\"Europe/Istanbul\",\"ISU\":\"Asia/Baghdad\",\"ISW\":\"America/Chicago\",\"ITA\":\"America/Porto_Velho\",\"ITB\":\"America/Belem\",\"ITE\":\"America/Belem\",\"ITH\":\"America/New_York\",\"ITI\":\"America/Sao_Paulo\",\"ITK\":\"Pacific/Port_Moresby\",\"ITM\":\"Asia/Tokyo\",\"ITN\":\"America/Belem\",\"ITO\":\"Pacific/Honolulu\",\"ITP\":\"America/Sao_Paulo\",\"ITQ\":\"America/Sao_Paulo\",\"ITR\":\"America/Sao_Paulo\",\"ITU\":\"Asia/Magadan\",\"IUE\":\"Pacific/Niue\",\"IUI\":\"America/Godthab\",\"IUL\":\"Asia/Jayapura\",\"IUM\":\"America/Vancouver\",\"IUS\":\"Pacific/Bougainville\",\"IVA\":\"Indian/Antananarivo\",\"IVC\":\"Pacific/Auckland\",\"IVG\":\"Europe/Podgorica\",\"IVH\":\"America/Anchorage\",\"IVL\":\"Europe/Helsinki\",\"IVO\":\"America/Bogota\",\"IVR\":\"Australia/Sydney\",\"IVW\":\"Australia/Darwin\",\"IWA\":\"Europe/Moscow\",\"IWD\":\"America/Chicago\",\"IWJ\":\"Asia/Tokyo\",\"IWK\":\"Asia/Tokyo\",\"IWO\":\"Asia/Tokyo\",\"IWS\":\"America/Chicago\",\"IXA\":\"Asia/Kolkata\",\"IXB\":\"Asia/Kolkata\",\"IXC\":\"Asia/Kolkata\",\"IXD\":\"Asia/Kolkata\",\"IXE\":\"Asia/Kolkata\",\"IXG\":\"Asia/Kolkata\",\"IXH\":\"Asia/Kolkata\",\"IXI\":\"Asia/Kolkata\",\"IXJ\":\"Asia/Kolkata\",\"IXK\":\"Asia/Kolkata\",\"IXL\":\"Asia/Kolkata\",\"IXM\":\"Asia/Kolkata\",\"IXN\":\"Asia/Kolkata\",\"IXP\":\"Asia/Kolkata\",\"IXQ\":\"Asia/Kolkata\",\"IXR\":\"Asia/Kolkata\",\"IXS\":\"Asia/Kolkata\",\"IXT\":\"Asia/Kolkata\",\"IXU\":\"Asia/Kolkata\",\"IXV\":\"Asia/Kolkata\",\"IXW\":\"Asia/Kolkata\",\"IXY\":\"Asia/Kolkata\",\"IXZ\":\"Asia/Kolkata\",\"IYK\":\"America/Los_Angeles\",\"IZA\":\"America/Sao_Paulo\",\"IZO\":\"Asia/Tokyo\",\"IZT\":\"America/Mexico_City\",\"JAA\":\"Asia/Kabul\",\"JAB\":\"Australia/Darwin\",\"JAC\":\"America/Denver\",\"JAD\":\"Australia/Perth\",\"JAE\":\"America/Lima\",\"JAF\":\"Asia/Colombo\",\"JAG\":\"Asia/Karachi\",\"JAH\":\"Europe/Paris\",\"JAI\":\"Asia/Kolkata\",\"JAJ\":\"America/New_York\",\"JAK\":\"America/Port-au-Prince\",\"JAL\":\"America/Mexico_City\",\"JAM\":\"Europe/Sofia\",\"JAN\":\"America/Chicago\",\"JAO\":\"America/New_York\",\"JAP\":\"America/Costa_Rica\",\"JAQ\":\"Pacific/Port_Moresby\",\"JAR\":\"Asia/Tehran\",\"JAS\":\"America/Chicago\",\"JAT\":\"Pacific/Majuro\",\"JAU\":\"America/Lima\",\"JAV\":\"America/Godthab\",\"JAX\":\"America/New_York\",\"JBB\":\"Asia/Jakarta\",\"JBC\":\"America/New_York\",\"JBP\":\"America/Los_Angeles\",\"JBQ\":\"America/Santo_Domingo\",\"JBR\":\"America/Chicago\",\"JBS\":\"America/Sao_Paulo\",\"JBT\":\"America/Anchorage\",\"JCA\":\"Europe/Paris\",\"JCB\":\"America/Sao_Paulo\",\"JCC\":\"America/Los_Angeles\",\"JCD\":\"America/St_Thomas\",\"JCE\":\"America/Los_Angeles\",\"JCH\":\"America/Godthab\",\"JCI\":\"America/Chicago\",\"JCJ\":\"Asia/Seoul\",\"JCK\":\"Australia/Brisbane\",\"JCM\":\"America/Belem\",\"JCN\":\"Asia/Seoul\",\"JCO\":\"Europe/Malta\",\"JCR\":\"America/Porto_Velho\",\"JCT\":\"America/Chicago\",\"JCU\":\"Africa/Ceuta\",\"JCY\":\"America/Chicago\",\"JDA\":\"America/Los_Angeles\",\"JDB\":\"America/Chicago\",\"JDF\":\"America/Sao_Paulo\",\"JDH\":\"Asia/Kolkata\",\"JDM\":\"America/New_York\",\"JDN\":\"America/Denver\",\"JDO\":\"America/Belem\",\"JDP\":\"Europe/Paris\",\"JDR\":\"America/Sao_Paulo\",\"JDT\":\"America/Chicago\",\"JDX\":\"America/Chicago\",\"JDY\":\"America/Los_Angeles\",\"JDZ\":\"Asia/Shanghai\",\"JED\":\"Asia/Riyadh\",\"JEE\":\"America/Port-au-Prince\",\"JEF\":\"America/Chicago\",\"JEG\":\"America/Godthab\",\"JEJ\":\"Pacific/Majuro\",\"JEK\":\"Africa/Lusaka\",\"JEM\":\"America/Los_Angeles\",\"JEQ\":\"America/Belem\",\"JER\":\"Europe/London\",\"JEV\":\"Europe/Paris\",\"JFK\":\"America/New_York\",\"JFM\":\"Australia/Perth\",\"JFN\":\"America/New_York\",\"JFR\":\"America/Godthab\",\"JGA\":\"Asia/Kolkata\",\"JGB\":\"Asia/Kolkata\",\"JGC\":\"America/Phoenix\",\"JGD\":\"Asia/Shanghai\",\"JGE\":\"Asia/Seoul\",\"JGL\":\"America/New_York\",\"JGN\":\"Asia/Shanghai\",\"JGO\":\"America/Godthab\",\"JGP\":\"America/Chicago\",\"JGQ\":\"America/Chicago\",\"JGR\":\"America/Godthab\",\"JGS\":\"Asia/Shanghai\",\"JGX\":\"America/Los_Angeles\",\"JHB\":\"Asia/Kuala_Lumpur\",\"JHC\":\"America/New_York\",\"JHE\":\"Europe/Stockholm\",\"JHG\":\"Asia/Shanghai\",\"JHL\":\"America/Edmonton\",\"JHM\":\"Pacific/Honolulu\",\"JHQ\":\"Australia/Brisbane\",\"JHS\":\"America/Godthab\",\"JHW\":\"America/New_York\",\"JIA\":\"America/Campo_Grande\",\"JIB\":\"Africa/Djibouti\",\"JIC\":\"Asia/Shanghai\",\"JID\":\"America/Los_Angeles\",\"JIJ\":\"Africa/Addis_Ababa\",\"JIK\":\"Europe/Athens\",\"JIL\":\"Asia/Shanghai\",\"JIM\":\"Africa/Addis_Ababa\",\"JIN\":\"Africa/Kampala\",\"JIO\":\"Asia/Jayapura\",\"JIP\":\"America/Guayaquil\",\"JIQ\":\"Asia/Shanghai\",\"JIR\":\"Asia/Kathmandu\",\"JIU\":\"Asia/Shanghai\",\"JIW\":\"Asia/Karachi\",\"JJA\":\"Pacific/Guadalcanal\",\"JJD\":\"America/Belem\",\"JJG\":\"America/Sao_Paulo\",\"JJI\":\"America/Lima\",\"JJM\":\"Africa/Nairobi\",\"JJN\":\"Asia/Shanghai\",\"JJU\":\"America/Godthab\",\"JKG\":\"Europe/Stockholm\",\"JKH\":\"Europe/Athens\",\"JKL\":\"Europe/Athens\",\"JKR\":\"Asia/Kathmandu\",\"JKV\":\"America/Chicago\",\"JLA\":\"America/Anchorage\",\"JLB\":\"America/Los_Angeles\",\"JLD\":\"Europe/Stockholm\",\"JLH\":\"America/Chicago\",\"JLN\":\"America/Chicago\",\"JLO\":\"Europe/Rome\",\"JLP\":\"Europe/Paris\",\"JLR\":\"Asia/Kolkata\",\"JLS\":\"America/Sao_Paulo\",\"JLX\":\"America/Los_Angeles\",\"JMA\":\"America/Chicago\",\"JMB\":\"Africa/Luanda\",\"JMC\":\"America/Los_Angeles\",\"JMD\":\"America/Chicago\",\"JMH\":\"America/Chicago\",\"JMJ\":\"Asia/Shanghai\",\"JMK\":\"Europe/Athens\",\"JMM\":\"Europe/Stockholm\",\"JMN\":\"America/Chicago\",\"JMO\":\"Asia/Kathmandu\",\"JMS\":\"America/Chicago\",\"JMU\":\"Asia/Shanghai\",\"JMY\":\"Africa/Freetown\",\"JNA\":\"America/Sao_Paulo\",\"JNB\":\"Africa/Johannesburg\",\"JNG\":\"Asia/Shanghai\",\"JNH\":\"America/Chicago\",\"JNI\":\"America/Argentina/Buenos_Aires\",\"JNJ\":\"Asia/Muscat\",\"JNN\":\"America/Godthab\",\"JNP\":\"America/Los_Angeles\",\"JNS\":\"America/Godthab\",\"JNU\":\"America/Anchorage\",\"JNX\":\"Europe/Athens\",\"JNZ\":\"Asia/Shanghai\",\"JOC\":\"America/Los_Angeles\",\"JOE\":\"Europe/Helsinki\",\"JOG\":\"Asia/Jakarta\",\"JOH\":\"Africa/Johannesburg\",\"JOI\":\"America/Sao_Paulo\",\"JOK\":\"Europe/Moscow\",\"JOL\":\"Asia/Manila\",\"JOM\":\"Africa/Dar_es_Salaam\",\"JON\":\"Pacific/Honolulu\",\"JOP\":\"Pacific/Port_Moresby\",\"JOR\":\"America/Los_Angeles\",\"JOS\":\"Africa/Lagos\",\"JOT\":\"America/Chicago\",\"JPA\":\"America/Belem\",\"JPD\":\"America/Los_Angeles\",\"JPN\":\"America/New_York\",\"JPR\":\"America/Porto_Velho\",\"JPT\":\"America/Chicago\",\"JPU\":\"Europe/Paris\",\"JQA\":\"America/Godthab\",\"JQE\":\"America/Panama\",\"JRC\":\"America/Chicago\",\"JRD\":\"America/Los_Angeles\",\"JRE\":\"America/New_York\",\"JRF\":\"Pacific/Honolulu\",\"JRG\":\"Asia/Kolkata\",\"JRH\":\"Asia/Kolkata\",\"JRK\":\"America/Godthab\",\"JRN\":\"America/Campo_Grande\",\"JRO\":\"Africa/Dar_es_Salaam\",\"JRS\":\"Asia/Jerusalem\",\"JSA\":\"Asia/Kolkata\",\"JSD\":\"America/New_York\",\"JSG\":\"America/Los_Angeles\",\"JSH\":\"Europe/Athens\",\"JSI\":\"Europe/Athens\",\"JSJ\":\"Asia/Shanghai\",\"JSK\":\"Asia/Tehran\",\"JSL\":\"America/New_York\",\"JSM\":\"America/Argentina/Buenos_Aires\",\"JSN\":\"America/Los_Angeles\",\"JSO\":\"Europe/Stockholm\",\"JSP\":\"Asia/Seoul\",\"JSR\":\"Asia/Dhaka\",\"JSS\":\"Europe/Athens\",\"JST\":\"America/New_York\",\"JSU\":\"America/Godthab\",\"JSY\":\"Europe/Athens\",\"JTC\":\"America/Sao_Paulo\",\"JTI\":\"America/Sao_Paulo\",\"JTO\":\"America/Los_Angeles\",\"JTR\":\"Europe/Athens\",\"JTY\":\"Europe/Athens\",\"JUA\":\"America/Campo_Grande\",\"JUB\":\"Africa/Juba\",\"JUC\":\"America/Los_Angeles\",\"JUH\":\"Asia/Shanghai\",\"JUI\":\"Europe/Berlin\",\"JUJ\":\"America/Argentina/Buenos_Aires\",\"JUK\":\"America/Godthab\",\"JUL\":\"America/Lima\",\"JUM\":\"Asia/Kathmandu\",\"JUN\":\"Australia/Brisbane\",\"JUO\":\"America/Bogota\",\"JUP\":\"America/Los_Angeles\",\"JUR\":\"Australia/Perth\",\"JUT\":\"America/Tegucigalpa\",\"JUU\":\"America/Godthab\",\"JUV\":\"America/Godthab\",\"JUZ\":\"Asia/Shanghai\",\"JVA\":\"Indian/Antananarivo\",\"JVI\":\"America/New_York\",\"JVL\":\"America/Chicago\",\"JWA\":\"Africa/Gaborone\",\"JWC\":\"America/Los_Angeles\",\"JWH\":\"America/Chicago\",\"JWL\":\"America/Chicago\",\"JWN\":\"Asia/Tehran\",\"JXA\":\"Asia/Shanghai\",\"JXN\":\"America/New_York\",\"JYR\":\"Asia/Tehran\",\"JYV\":\"Europe/Helsinki\",\"JZH\":\"Asia/Shanghai\",\"KAA\":\"Africa/Lusaka\",\"KAB\":\"Africa/Harare\",\"KAC\":\"Asia/Damascus\",\"KAD\":\"Africa/Lagos\",\"KAE\":\"America/Anchorage\",\"KAF\":\"Pacific/Bougainville\",\"KAG\":\"Asia/Seoul\",\"KAH\":\"Australia/Sydney\",\"KAI\":\"America/Guyana\",\"KAJ\":\"Europe/Helsinki\",\"KAK\":\"Pacific/Port_Moresby\",\"KAL\":\"America/Anchorage\",\"KAM\":\"Asia/Aden\",\"KAN\":\"Africa/Lagos\",\"KAO\":\"Europe/Helsinki\",\"KAP\":\"Africa/Lubumbashi\",\"KAQ\":\"Pacific/Port_Moresby\",\"KAR\":\"America/Guyana\",\"KAS\":\"Africa/Windhoek\",\"KAT\":\"Pacific/Auckland\",\"KAU\":\"Europe/Helsinki\",\"KAV\":\"America/Caracas\",\"KAW\":\"Asia/Yangon\",\"KAX\":\"Australia/Perth\",\"KAY\":\"Pacific/Fiji\",\"KAZ\":\"Asia/Jayapura\",\"KBA\":\"Africa/Freetown\",\"KBB\":\"Australia/Darwin\",\"KBC\":\"America/Anchorage\",\"KBD\":\"Australia/Perth\",\"KBE\":\"America/Anchorage\",\"KBF\":\"Asia/Jayapura\",\"KBG\":\"Africa/Kampala\",\"KBH\":\"Africa/Dar_es_Salaam\",\"KBI\":\"Africa/Douala\",\"KBJ\":\"Australia/Darwin\",\"KBK\":\"America/Anchorage\",\"KBL\":\"Asia/Kabul\",\"KBM\":\"Pacific/Port_Moresby\",\"KBN\":\"Africa/Lubumbashi\",\"KBO\":\"Africa/Lubumbashi\",\"KBP\":\"Europe/Kiev\",\"KBQ\":\"Africa/Blantyre\",\"KBR\":\"Asia/Kuala_Lumpur\",\"KBS\":\"Africa/Freetown\",\"KBT\":\"Pacific/Majuro\",\"KBU\":\"Asia/Makassar\",\"KBV\":\"Asia/Bangkok\",\"KBW\":\"America/Anchorage\",\"KBX\":\"Asia/Jayapura\",\"KBY\":\"Australia/Adelaide\",\"KBZ\":\"Pacific/Auckland\",\"KCA\":\"Asia/Shanghai\",\"KCB\":\"America/Paramaribo\",\"KCC\":\"America/Anchorage\",\"KCD\":\"Asia/Jayapura\",\"KCE\":\"Australia/Brisbane\",\"KCF\":\"Asia/Karachi\",\"KCG\":\"America/Anchorage\",\"KCH\":\"Asia/Kuala_Lumpur\",\"KCI\":\"Asia/Jayapura\",\"KCJ\":\"Pacific/Port_Moresby\",\"KCK\":\"Asia/Irkutsk\",\"KCL\":\"America/Anchorage\",\"KCM\":\"Europe/Istanbul\",\"KCN\":\"America/Anchorage\",\"KCO\":\"Europe/Istanbul\",\"KCP\":\"Europe/Kiev\",\"KCQ\":\"America/Anchorage\",\"KCS\":\"Australia/Darwin\",\"KCT\":\"Asia/Colombo\",\"KCU\":\"Africa/Kampala\",\"KCZ\":\"Asia/Tokyo\",\"KDA\":\"Africa/Dakar\",\"KDB\":\"Australia/Perth\",\"KDC\":\"Africa/Porto-Novo\",\"KDD\":\"Asia/Karachi\",\"KDE\":\"Pacific/Port_Moresby\",\"KDF\":\"Africa/Algiers\",\"KDH\":\"Asia/Kabul\",\"KDI\":\"Asia/Makassar\",\"KDJ\":\"Africa/Libreville\",\"KDK\":\"America/Anchorage\",\"KDL\":\"Europe/Tallinn\",\"KDM\":\"Indian/Maldives\",\"KDN\":\"Africa/Libreville\",\"KDO\":\"Indian/Maldives\",\"KDP\":\"Pacific/Port_Moresby\",\"KDQ\":\"Pacific/Port_Moresby\",\"KDR\":\"Pacific/Port_Moresby\",\"KDS\":\"Australia/Brisbane\",\"KDT\":\"Asia/Bangkok\",\"KDU\":\"Asia/Karachi\",\"KDV\":\"Pacific/Fiji\",\"KDW\":\"Asia/Colombo\",\"KDX\":\"Africa/Khartoum\",\"KDY\":\"Asia/Yakutsk\",\"KDZ\":\"Asia/Colombo\",\"KEA\":\"Asia/Jayapura\",\"KEB\":\"America/Anchorage\",\"KEC\":\"Africa/Lubumbashi\",\"KED\":\"Africa/Nouakchott\",\"KEE\":\"Africa/Brazzaville\",\"KEF\":\"Atlantic/Reykjavik\",\"KEG\":\"Pacific/Port_Moresby\",\"KEH\":\"America/Los_Angeles\",\"KEI\":\"Asia/Jayapura\",\"KEJ\":\"Asia/Novokuznetsk\",\"KEK\":\"America/Anchorage\",\"KEL\":\"Europe/Berlin\",\"KEM\":\"Europe/Helsinki\",\"KEN\":\"Africa/Freetown\",\"KEO\":\"Africa/Abidjan\",\"KEP\":\"Asia/Kathmandu\",\"KEQ\":\"Asia/Jayapura\",\"KER\":\"Asia/Tehran\",\"KES\":\"America/Winnipeg\",\"KET\":\"Asia/Yangon\",\"KEU\":\"Africa/Nairobi\",\"KEV\":\"Europe/Helsinki\",\"KEW\":\"America/Winnipeg\",\"KEX\":\"Pacific/Port_Moresby\",\"KEY\":\"Africa/Nairobi\",\"KEZ\":\"Asia/Colombo\",\"KFA\":\"Africa/Nouakchott\",\"KFE\":\"Australia/Perth\",\"KFG\":\"Australia/Darwin\",\"KFM\":\"America/Edmonton\",\"KFP\":\"America/Anchorage\",\"KFS\":\"Europe/Istanbul\",\"KGA\":\"Africa/Lubumbashi\",\"KGB\":\"Pacific/Port_Moresby\",\"KGC\":\"Australia/Adelaide\",\"KGD\":\"Europe/Kaliningrad\",\"KGE\":\"Pacific/Guadalcanal\",\"KGF\":\"Asia/Almaty\",\"KGG\":\"Africa/Dakar\",\"KGH\":\"Pacific/Port_Moresby\",\"KGI\":\"Australia/Perth\",\"KGJ\":\"Africa/Blantyre\",\"KGK\":\"America/Anchorage\",\"KGL\":\"Africa/Kigali\",\"KGN\":\"Africa/Kinshasa\",\"KGO\":\"Europe/Kiev\",\"KGP\":\"Asia/Yekaterinburg\",\"KGQ\":\"America/Godthab\",\"KGR\":\"Australia/Darwin\",\"KGS\":\"Europe/Athens\",\"KGT\":\"Asia/Shanghai\",\"KGU\":\"Asia/Kuala_Lumpur\",\"KGW\":\"Pacific/Port_Moresby\",\"KGX\":\"America/Anchorage\",\"KGY\":\"Australia/Brisbane\",\"KGZ\":\"America/Anchorage\",\"KHA\":\"Asia/Tehran\",\"KHC\":\"Europe/Simferopol\",\"KHD\":\"Asia/Tehran\",\"KHE\":\"Europe/Kiev\",\"KHG\":\"Asia/Shanghai\",\"KHH\":\"Asia/Taipei\",\"KHI\":\"Asia/Karachi\",\"KHJ\":\"Europe/Helsinki\",\"KHK\":\"Asia/Tehran\",\"KHL\":\"Asia/Dhaka\",\"KHM\":\"Asia/Yangon\",\"KHN\":\"Asia/Shanghai\",\"KHO\":\"Africa/Johannesburg\",\"KHQ\":\"America/Godthab\",\"KHR\":\"Asia/Ulaanbaatar\",\"KHS\":\"Asia/Muscat\",\"KHT\":\"Asia/Kabul\",\"KHU\":\"Europe/Kiev\",\"KHV\":\"Asia/Vladivostok\",\"KHW\":\"Africa/Gaborone\",\"KHX\":\"Africa/Kampala\",\"KHY\":\"Asia/Tehran\",\"KHZ\":\"Pacific/Tahiti\",\"KIA\":\"Pacific/Port_Moresby\",\"KIB\":\"America/Anchorage\",\"KIC\":\"America/Los_Angeles\",\"KID\":\"Europe/Stockholm\",\"KIE\":\"Pacific/Bougainville\",\"KIF\":\"America/Winnipeg\",\"KIG\":\"Africa/Johannesburg\",\"KIH\":\"Asia/Tehran\",\"KII\":\"Pacific/Port_Moresby\",\"KIJ\":\"Asia/Tokyo\",\"KIK\":\"Asia/Baghdad\",\"KIL\":\"Africa/Kinshasa\",\"KIM\":\"Africa/Johannesburg\",\"KIN\":\"America/Jamaica\",\"KIO\":\"Pacific/Majuro\",\"KIP\":\"America/Chicago\",\"KIQ\":\"Pacific/Port_Moresby\",\"KIR\":\"Europe/Dublin\",\"KIS\":\"Africa/Nairobi\",\"KIT\":\"Europe/Athens\",\"KIU\":\"Africa/Nairobi\",\"KIV\":\"Europe/Chisinau\",\"KIW\":\"Africa/Lusaka\",\"KIX\":\"Asia/Tokyo\",\"KIY\":\"Africa/Dar_es_Salaam\",\"KIZ\":\"Pacific/Port_Moresby\",\"KJA\":\"Asia/Krasnoyarsk\",\"KJH\":\"Asia/Shanghai\",\"KJI\":\"Asia/Shanghai\",\"KJK\":\"Europe/Brussels\",\"KJP\":\"Asia/Tokyo\",\"KJT\":\"Asia/Jakarta\",\"KJU\":\"Pacific/Port_Moresby\",\"KKA\":\"America/Anchorage\",\"KKB\":\"America/Anchorage\",\"KKC\":\"Asia/Bangkok\",\"KKD\":\"Pacific/Port_Moresby\",\"KKE\":\"Pacific/Auckland\",\"KKF\":\"America/Anchorage\",\"KKG\":\"America/Guyana\",\"KKH\":\"America/Anchorage\",\"KKI\":\"America/Anchorage\",\"KKJ\":\"Asia/Tokyo\",\"KKK\":\"America/Anchorage\",\"KKL\":\"America/Anchorage\",\"KKM\":\"Asia/Bangkok\",\"KKN\":\"Europe/Oslo\",\"KKO\":\"Pacific/Auckland\",\"KKP\":\"Australia/Brisbane\",\"KKQ\":\"Asia/Yekaterinburg\",\"KKR\":\"Pacific/Tahiti\",\"KKS\":\"Asia/Tehran\",\"KKT\":\"America/Chicago\",\"KKU\":\"America/Anchorage\",\"KKW\":\"Africa/Kinshasa\",\"KKX\":\"Asia/Tokyo\",\"KKY\":\"Europe/Dublin\",\"KKZ\":\"Asia/Phnom_Penh\",\"KLB\":\"Africa/Lusaka\",\"KLC\":\"Africa/Dakar\",\"KLD\":\"Europe/Moscow\",\"KLE\":\"Africa/Douala\",\"KLF\":\"Europe/Moscow\",\"KLG\":\"America/Anchorage\",\"KLH\":\"Asia/Kolkata\",\"KLI\":\"Africa/Kinshasa\",\"KLJ\":\"Europe/Vilnius\",\"KLK\":\"Africa/Nairobi\",\"KLL\":\"America/Anchorage\",\"KLM\":\"Asia/Tehran\",\"KLN\":\"America/Anchorage\",\"KLO\":\"Asia/Manila\",\"KLP\":\"America/Anchorage\",\"KLQ\":\"Asia/Jakarta\",\"KLR\":\"Europe/Stockholm\",\"KLS\":\"America/Los_Angeles\",\"KLT\":\"Europe/Berlin\",\"KLU\":\"Europe/Vienna\",\"KLV\":\"Europe/Prague\",\"KLW\":\"America/Anchorage\",\"KLX\":\"Europe/Athens\",\"KLY\":\"Africa/Lubumbashi\",\"KLZ\":\"Africa/Johannesburg\",\"KMA\":\"Pacific/Port_Moresby\",\"KMB\":\"Pacific/Port_Moresby\",\"KMC\":\"Asia/Riyadh\",\"KMD\":\"Africa/Libreville\",\"KME\":\"Africa/Kigali\",\"KMF\":\"Pacific/Port_Moresby\",\"KMG\":\"Asia/Shanghai\",\"KMH\":\"Africa/Johannesburg\",\"KMI\":\"Asia/Tokyo\",\"KMJ\":\"Asia/Tokyo\",\"KMK\":\"Africa/Brazzaville\",\"KML\":\"Australia/Brisbane\",\"KMM\":\"Asia/Jayapura\",\"KMN\":\"Africa/Lubumbashi\",\"KMO\":\"America/Anchorage\",\"KMP\":\"Africa/Windhoek\",\"KMQ\":\"Asia/Tokyo\",\"KMR\":\"Pacific/Port_Moresby\",\"KMS\":\"Africa/Accra\",\"KMT\":\"Asia/Phnom_Penh\",\"KMU\":\"Africa/Mogadishu\",\"KMV\":\"Asia/Yangon\",\"KMW\":\"Europe/Moscow\",\"KMX\":\"Asia/Riyadh\",\"KMY\":\"America/Anchorage\",\"KMZ\":\"Africa/Lusaka\",\"KNA\":\"America/Santiago\",\"KNB\":\"America/Denver\",\"KNC\":\"Asia/Shanghai\",\"KND\":\"Africa/Lubumbashi\",\"KNE\":\"Pacific/Port_Moresby\",\"KNF\":\"Europe/London\",\"KNG\":\"Asia/Jayapura\",\"KNH\":\"Asia/Taipei\",\"KNI\":\"Australia/Perth\",\"KNJ\":\"Africa/Brazzaville\",\"KNK\":\"America/Anchorage\",\"KNL\":\"Pacific/Port_Moresby\",\"KNM\":\"Africa/Lubumbashi\",\"KNN\":\"Africa/Conakry\",\"KNO\":\"Asia/Jakarta\",\"KNP\":\"Africa/Luanda\",\"KNQ\":\"Pacific/Noumea\",\"KNR\":\"Asia/Tehran\",\"KNS\":\"Australia/Hobart\",\"KNT\":\"America/Chicago\",\"KNU\":\"Asia/Kolkata\",\"KNV\":\"America/Vancouver\",\"KNW\":\"America/Anchorage\",\"KNX\":\"Australia/Perth\",\"KNY\":\"America/Regina\",\"KNZ\":\"Africa/Bamako\",\"KOA\":\"Pacific/Honolulu\",\"KOB\":\"Africa/Douala\",\"KOC\":\"Pacific/Noumea\",\"KOD\":\"Asia/Makassar\",\"KOE\":\"Asia/Makassar\",\"KOF\":\"Africa/Johannesburg\",\"KOG\":\"Asia/Vientiane\",\"KOH\":\"Australia/Brisbane\",\"KOI\":\"Europe/London\",\"KOJ\":\"Asia/Tokyo\",\"KOK\":\"Europe/Helsinki\",\"KOL\":\"Africa/Bangui\",\"KOM\":\"Pacific/Port_Moresby\",\"KON\":\"Asia/Ho_Chi_Minh\",\"KOO\":\"Africa/Lubumbashi\",\"KOP\":\"Asia/Bangkok\",\"KOQ\":\"Europe/Berlin\",\"KOR\":\"Pacific/Port_Moresby\",\"KOS\":\"Asia/Phnom_Penh\",\"KOT\":\"America/Anchorage\",\"KOU\":\"Africa/Libreville\",\"KOV\":\"Asia/Almaty\",\"KOW\":\"Asia/Shanghai\",\"KOX\":\"Asia/Jayapura\",\"KOY\":\"America/Anchorage\",\"KOZ\":\"America/Anchorage\",\"KPA\":\"Pacific/Port_Moresby\",\"KPB\":\"America/Anchorage\",\"KPC\":\"America/Anchorage\",\"KPE\":\"Pacific/Port_Moresby\",\"KPF\":\"Pacific/Port_Moresby\",\"KPG\":\"America/Guyana\",\"KPH\":\"America/Anchorage\",\"KPI\":\"Asia/Kuala_Lumpur\",\"KPK\":\"America/Anchorage\",\"KPL\":\"Pacific/Port_Moresby\",\"KPM\":\"Pacific/Port_Moresby\",\"KPN\":\"America/Anchorage\",\"KPO\":\"Asia/Seoul\",\"KPP\":\"Australia/Brisbane\",\"KPR\":\"America/Anchorage\",\"KPS\":\"Australia/Sydney\",\"KPT\":\"America/Los_Angeles\",\"KPV\":\"America/Anchorage\",\"KPW\":\"Asia/Kamchatka\",\"KPY\":\"America/Anchorage\",\"KQA\":\"America/Anchorage\",\"KQB\":\"Australia/Adelaide\",\"KQH\":\"Asia/Kolkata\",\"KQL\":\"Pacific/Port_Moresby\",\"KQT\":\"Asia/Dushanbe\",\"KRA\":\"Australia/Sydney\",\"KRB\":\"Australia/Brisbane\",\"KRC\":\"Asia/Jakarta\",\"KRD\":\"Australia/Darwin\",\"KRE\":\"Africa/Bujumbura\",\"KRF\":\"Europe/Stockholm\",\"KRG\":\"America/Guyana\",\"KRH\":\"Europe/London\",\"KRI\":\"Pacific/Port_Moresby\",\"KRJ\":\"Pacific/Port_Moresby\",\"KRK\":\"Europe/Warsaw\",\"KRL\":\"Asia/Shanghai\",\"KRM\":\"America/Guyana\",\"KRN\":\"Europe/Stockholm\",\"KRO\":\"Asia/Yekaterinburg\",\"KRP\":\"Europe/Copenhagen\",\"KRQ\":\"Europe/Kiev\",\"KRR\":\"Europe/Moscow\",\"KRS\":\"Europe/Oslo\",\"KRT\":\"Africa/Khartoum\",\"KRU\":\"Pacific/Port_Moresby\",\"KRV\":\"Africa/Nairobi\",\"KRW\":\"Asia/Ashgabat\",\"KRX\":\"Pacific/Port_Moresby\",\"KRY\":\"Asia/Shanghai\",\"KRZ\":\"Africa/Kinshasa\",\"KSA\":\"Pacific/Pohnpei\",\"KSB\":\"Pacific/Port_Moresby\",\"KSC\":\"Europe/Bratislava\",\"KSD\":\"Europe/Stockholm\",\"KSE\":\"Africa/Kampala\",\"KSF\":\"Europe/Berlin\",\"KSG\":\"Pacific/Port_Moresby\",\"KSH\":\"Asia/Tehran\",\"KSI\":\"Africa/Conakry\",\"KSJ\":\"Europe/Athens\",\"KSK\":\"Europe/Stockholm\",\"KSL\":\"Africa/Khartoum\",\"KSM\":\"America/Anchorage\",\"KSN\":\"Asia/Qostanay\",\"KSO\":\"Europe/Athens\",\"KSP\":\"Pacific/Port_Moresby\",\"KSQ\":\"Asia/Tashkent\",\"KSR\":\"Asia/Makassar\",\"KSS\":\"Africa/Bamako\",\"KST\":\"Africa/Khartoum\",\"KSU\":\"Europe/Oslo\",\"KSV\":\"Australia/Brisbane\",\"KSW\":\"Asia/Jerusalem\",\"KSX\":\"Pacific/Port_Moresby\",\"KSY\":\"Europe/Istanbul\",\"KSZ\":\"Europe/Moscow\",\"KTA\":\"Australia/Perth\",\"KTB\":\"America/Anchorage\",\"KTC\":\"Africa/Abidjan\",\"KTD\":\"Asia/Tokyo\",\"KTE\":\"Asia/Kuala_Lumpur\",\"KTF\":\"Pacific/Auckland\",\"KTG\":\"Asia/Jakarta\",\"KTH\":\"America/Anchorage\",\"KTI\":\"Asia/Phnom_Penh\",\"KTJ\":\"Africa/Nairobi\",\"KTK\":\"Pacific/Bougainville\",\"KTL\":\"Africa/Nairobi\",\"KTM\":\"Asia/Kathmandu\",\"KTN\":\"America/Anchorage\",\"KTO\":\"America/Guyana\",\"KTP\":\"America/Jamaica\",\"KTQ\":\"Europe/Helsinki\",\"KTR\":\"Australia/Darwin\",\"KTS\":\"America/Anchorage\",\"KTT\":\"Europe/Helsinki\",\"KTU\":\"Asia/Kolkata\",\"KTV\":\"America/Caracas\",\"KTW\":\"Europe/Warsaw\",\"KTX\":\"Africa/Bamako\",\"KUA\":\"Asia/Kuala_Lumpur\",\"KUC\":\"Pacific/Tarawa\",\"KUD\":\"Asia/Kuala_Lumpur\",\"KUE\":\"Pacific/Guadalcanal\",\"KUF\":\"Europe/Samara\",\"KUG\":\"Australia/Brisbane\",\"KUH\":\"Asia/Tokyo\",\"KUI\":\"Pacific/Auckland\",\"KUJ\":\"Asia/Tokyo\",\"KUK\":\"America/Anchorage\",\"KUL\":\"Asia/Kuala_Lumpur\",\"KUM\":\"Asia/Tokyo\",\"KUN\":\"Europe/Vilnius\",\"KUO\":\"Europe/Helsinki\",\"KUP\":\"Pacific/Port_Moresby\",\"KUQ\":\"Pacific/Port_Moresby\",\"KUR\":\"Asia/Kabul\",\"KUS\":\"America/Godthab\",\"KUT\":\"Asia/Tbilisi\",\"KUU\":\"Asia/Kolkata\",\"KUV\":\"Asia/Seoul\",\"KUW\":\"America/Anchorage\",\"KUX\":\"Pacific/Port_Moresby\",\"KUY\":\"Pacific/Port_Moresby\",\"KUZ\":\"America/Godthab\",\"KVA\":\"Europe/Athens\",\"KVB\":\"Europe/Stockholm\",\"KVC\":\"America/Anchorage\",\"KVD\":\"Asia/Baku\",\"KVE\":\"Pacific/Port_Moresby\",\"KVG\":\"Pacific/Port_Moresby\",\"KVK\":\"Europe/Moscow\",\"KVL\":\"America/Anchorage\",\"KVO\":\"Europe/Belgrade\",\"KVR\":\"Asia/Vladivostok\",\"KVU\":\"Pacific/Fiji\",\"KVX\":\"Europe/Moscow\",\"KWA\":\"Pacific/Majuro\",\"KWB\":\"Asia/Jakarta\",\"KWE\":\"Asia/Shanghai\",\"KWF\":\"America/Anchorage\",\"KWG\":\"Europe/Kiev\",\"KWH\":\"Asia/Kabul\",\"KWI\":\"Asia/Kuwait\",\"KWJ\":\"Asia/Seoul\",\"KWK\":\"America/Anchorage\",\"KWL\":\"Asia/Shanghai\",\"KWM\":\"Australia/Brisbane\",\"KWN\":\"America/Anchorage\",\"KWO\":\"Pacific/Port_Moresby\",\"KWP\":\"America/Anchorage\",\"KWR\":\"Pacific/Guadalcanal\",\"KWS\":\"Pacific/Guadalcanal\",\"KWT\":\"America/Anchorage\",\"KWV\":\"Pacific/Bougainville\",\"KWX\":\"Pacific/Port_Moresby\",\"KWY\":\"Africa/Nairobi\",\"KWZ\":\"Africa/Lubumbashi\",\"KXA\":\"America/Anchorage\",\"KXE\":\"Africa/Johannesburg\",\"KXF\":\"Pacific/Fiji\",\"KXK\":\"Asia/Vladivostok\",\"KXR\":\"Pacific/Bougainville\",\"KXU\":\"Pacific/Tahiti\",\"KYA\":\"Europe/Istanbul\",\"KYD\":\"Asia/Taipei\",\"KYE\":\"Asia/Beirut\",\"KYF\":\"Australia/Perth\",\"KYI\":\"Australia/Adelaide\",\"KYK\":\"America/Anchorage\",\"KYL\":\"America/New_York\",\"KYN\":\"Europe/London\",\"KYO\":\"America/New_York\",\"KYP\":\"Asia/Yangon\",\"KYS\":\"Africa/Bamako\",\"KYT\":\"Asia/Yangon\",\"KYU\":\"America/Anchorage\",\"KYX\":\"Pacific/Port_Moresby\",\"KYZ\":\"Asia/Krasnoyarsk\",\"KZB\":\"America/Anchorage\",\"KZC\":\"Asia/Phnom_Penh\",\"KZD\":\"Asia/Phnom_Penh\",\"KZF\":\"Pacific/Port_Moresby\",\"KZG\":\"Europe/Berlin\",\"KZH\":\"America/Anchorage\",\"KZI\":\"Europe/Athens\",\"KZK\":\"Asia/Phnom_Penh\",\"KZN\":\"Europe/Moscow\",\"KZO\":\"Asia/Qyzylorda\",\"KZR\":\"Europe/Istanbul\",\"KZS\":\"Europe/Athens\",\"LAA\":\"America/Denver\",\"LAB\":\"Pacific/Port_Moresby\",\"LAC\":\"Asia/Kuala_Lumpur\",\"LAD\":\"Africa/Luanda\",\"LAE\":\"Pacific/Port_Moresby\",\"LAF\":\"America/Indiana/Indianapolis\",\"LAG\":\"America/Caracas\",\"LAH\":\"Asia/Jayapura\",\"LAI\":\"Europe/Paris\",\"LAJ\":\"America/Sao_Paulo\",\"LAK\":\"America/Edmonton\",\"LAL\":\"America/New_York\",\"LAM\":\"America/Denver\",\"LAN\":\"America/New_York\",\"LAO\":\"Asia/Manila\",\"LAP\":\"America/Mazatlan\",\"LAQ\":\"Africa/Tripoli\",\"LAR\":\"America/Denver\",\"LAS\":\"America/Los_Angeles\",\"LAU\":\"Africa/Nairobi\",\"LAV\":\"Pacific/Apia\",\"LAW\":\"America/Chicago\",\"LAX\":\"America/Los_Angeles\",\"LAY\":\"Africa/Johannesburg\",\"LAZ\":\"America/Belem\",\"LBA\":\"Europe/London\",\"LBB\":\"America/Chicago\",\"LBC\":\"Europe/Berlin\",\"LBD\":\"Asia/Dushanbe\",\"LBE\":\"America/New_York\",\"LBF\":\"America/Chicago\",\"LBG\":\"Europe/Paris\",\"LBH\":\"Australia/Sydney\",\"LBI\":\"Europe/Paris\",\"LBJ\":\"Asia/Makassar\",\"LBK\":\"Africa/Nairobi\",\"LBL\":\"America/Chicago\",\"LBM\":\"Africa/Maputo\",\"LBN\":\"Africa/Nairobi\",\"LBO\":\"Africa/Lubumbashi\",\"LBP\":\"Asia/Kuala_Lumpur\",\"LBQ\":\"Africa/Libreville\",\"LBR\":\"America/Porto_Velho\",\"LBS\":\"Pacific/Fiji\",\"LBT\":\"America/New_York\",\"LBU\":\"Asia/Kuala_Lumpur\",\"LBV\":\"Africa/Libreville\",\"LBW\":\"Asia/Makassar\",\"LBX\":\"Asia/Manila\",\"LBY\":\"Europe/Paris\",\"LBZ\":\"Africa/Luanda\",\"LCA\":\"Asia/Nicosia\",\"LCB\":\"America/Campo_Grande\",\"LCC\":\"Europe/Rome\",\"LCD\":\"Africa/Johannesburg\",\"LCE\":\"America/Tegucigalpa\",\"LCF\":\"America/Guatemala\",\"LCG\":\"Europe/Madrid\",\"LCH\":\"America/Chicago\",\"LCI\":\"America/New_York\",\"LCJ\":\"Europe/Warsaw\",\"LCK\":\"America/New_York\",\"LCL\":\"America/Havana\",\"LCM\":\"America/Argentina/Buenos_Aires\",\"LCN\":\"Australia/Adelaide\",\"LCO\":\"Africa/Brazzaville\",\"LCP\":\"America/Argentina/Buenos_Aires\",\"LCQ\":\"America/New_York\",\"LCR\":\"America/Bogota\",\"LCS\":\"America/Costa_Rica\",\"LCV\":\"Europe/Rome\",\"LCX\":\"Asia/Shanghai\",\"LCY\":\"Europe/London\",\"LDA\":\"Asia/Kolkata\",\"LDB\":\"America/Sao_Paulo\",\"LDC\":\"Australia/Brisbane\",\"LDE\":\"Europe/Paris\",\"LDG\":\"Europe/Moscow\",\"LDH\":\"Australia/Sydney\",\"LDI\":\"Africa/Dar_es_Salaam\",\"LDJ\":\"America/New_York\",\"LDK\":\"Europe/Stockholm\",\"LDM\":\"America/New_York\",\"LDN\":\"Asia/Kathmandu\",\"LDO\":\"America/Paramaribo\",\"LDR\":\"Asia/Aden\",\"LDS\":\"Asia/Shanghai\",\"LDU\":\"Asia/Kuala_Lumpur\",\"LDV\":\"Europe/Paris\",\"LDW\":\"Australia/Perth\",\"LDX\":\"America/Cayenne\",\"LDY\":\"Europe/London\",\"LDZ\":\"Africa/Johannesburg\",\"LEA\":\"Australia/Perth\",\"LEB\":\"America/New_York\",\"LEC\":\"America/Belem\",\"LED\":\"Europe/Moscow\",\"LEE\":\"America/New_York\",\"LEF\":\"Africa/Maseru\",\"LEG\":\"Africa/Nouakchott\",\"LEH\":\"Europe/Paris\",\"LEI\":\"Europe/Madrid\",\"LEJ\":\"Europe/Berlin\",\"LEK\":\"Africa/Conakry\",\"LEL\":\"Australia/Darwin\",\"LEM\":\"America/Denver\",\"LEN\":\"Europe/Madrid\",\"LEO\":\"Africa/Libreville\",\"LEP\":\"America/Sao_Paulo\",\"LEQ\":\"Europe/London\",\"LER\":\"Australia/Perth\",\"LES\":\"Africa/Maseru\",\"LET\":\"America/Bogota\",\"LEU\":\"Europe/Madrid\",\"LEV\":\"Pacific/Fiji\",\"LEW\":\"America/New_York\",\"LEX\":\"America/New_York\",\"LEY\":\"Europe/Amsterdam\",\"LEZ\":\"America/Tegucigalpa\",\"LFB\":\"Africa/Maputo\",\"LFI\":\"America/New_York\",\"LFK\":\"America/Chicago\",\"LFM\":\"Asia/Tehran\",\"LFN\":\"America/New_York\",\"LFO\":\"Africa/Addis_Ababa\",\"LFP\":\"Australia/Brisbane\",\"LFQ\":\"Asia/Shanghai\",\"LFR\":\"America/Caracas\",\"LFT\":\"America/Chicago\",\"LFW\":\"Africa/Lome\",\"LGA\":\"America/New_York\",\"LGB\":\"America/Los_Angeles\",\"LGC\":\"America/New_York\",\"LGD\":\"America/Los_Angeles\",\"LGE\":\"Australia/Perth\",\"LGF\":\"America/Phoenix\",\"LGG\":\"Europe/Brussels\",\"LGH\":\"Australia/Adelaide\",\"LGI\":\"America/Nassau\",\"LGK\":\"Asia/Kuala_Lumpur\",\"LGL\":\"Asia/Kuala_Lumpur\",\"LGM\":\"Pacific/Port_Moresby\",\"LGN\":\"Pacific/Port_Moresby\",\"LGO\":\"Europe/Berlin\",\"LGP\":\"Asia/Manila\",\"LGQ\":\"America/Guayaquil\",\"LGR\":\"America/Santiago\",\"LGS\":\"America/Argentina/Buenos_Aires\",\"LGT\":\"America/Bogota\",\"LGU\":\"America/Denver\",\"LGW\":\"Europe/London\",\"LGX\":\"Africa/Mogadishu\",\"LGY\":\"America/Caracas\",\"LHA\":\"Europe/Berlin\",\"LHB\":\"America/Anchorage\",\"LHE\":\"Asia/Karachi\",\"LHG\":\"Australia/Sydney\",\"LHI\":\"Asia/Jayapura\",\"LHK\":\"Asia/Shanghai\",\"LHN\":\"Asia/Taipei\",\"LHP\":\"Pacific/Bougainville\",\"LHR\":\"Europe/London\",\"LHS\":\"America/Argentina/Buenos_Aires\",\"LHU\":\"Africa/Windhoek\",\"LHV\":\"America/New_York\",\"LHW\":\"Asia/Shanghai\",\"LIA\":\"Asia/Shanghai\",\"LIB\":\"Australia/Darwin\",\"LIC\":\"America/Denver\",\"LID\":\"Europe/Amsterdam\",\"LIE\":\"Africa/Kinshasa\",\"LIF\":\"Pacific/Noumea\",\"LIG\":\"Europe/Paris\",\"LIH\":\"Pacific/Honolulu\",\"LII\":\"Asia/Jayapura\",\"LIJ\":\"America/Anchorage\",\"LIK\":\"Pacific/Majuro\",\"LIL\":\"Europe/Paris\",\"LIM\":\"America/Lima\",\"LIN\":\"Europe/Rome\",\"LIO\":\"America/Costa_Rica\",\"LIP\":\"America/Sao_Paulo\",\"LIQ\":\"Africa/Kinshasa\",\"LIR\":\"America/Costa_Rica\",\"LIS\":\"Europe/Lisbon\",\"LIT\":\"America/Chicago\",\"LIU\":\"Europe/Rome\",\"LIV\":\"America/Anchorage\",\"LIW\":\"Asia/Yangon\",\"LIX\":\"Africa/Blantyre\",\"LIY\":\"America/New_York\",\"LIZ\":\"America/New_York\",\"LJA\":\"Africa/Lubumbashi\",\"LJC\":\"America/New_York\",\"LJG\":\"Asia/Shanghai\",\"LJN\":\"America/Chicago\",\"LJU\":\"Europe/Ljubljana\",\"LKA\":\"Asia/Makassar\",\"LKB\":\"Pacific/Fiji\",\"LKC\":\"Africa/Brazzaville\",\"LKD\":\"Australia/Brisbane\",\"LKE\":\"America/Los_Angeles\",\"LKG\":\"Africa/Nairobi\",\"LKH\":\"Asia/Kuala_Lumpur\",\"LKI\":\"America/Chicago\",\"LKK\":\"America/Anchorage\",\"LKL\":\"Europe/Oslo\",\"LKN\":\"Europe/Oslo\",\"LKO\":\"Asia/Kolkata\",\"LKP\":\"America/New_York\",\"LKR\":\"Africa/Mogadishu\",\"LKS\":\"America/Chicago\",\"LKT\":\"Africa/Abidjan\",\"LKU\":\"Africa/Nairobi\",\"LKV\":\"America/Los_Angeles\",\"LKY\":\"Africa/Dar_es_Salaam\",\"LKZ\":\"Europe/London\",\"LLA\":\"Europe/Stockholm\",\"LLB\":\"Asia/Shanghai\",\"LLC\":\"Asia/Manila\",\"LLE\":\"Africa/Johannesburg\",\"LLF\":\"Asia/Shanghai\",\"LLG\":\"Australia/Brisbane\",\"LLH\":\"America/Tegucigalpa\",\"LLI\":\"Africa/Addis_Ababa\",\"LLJ\":\"Asia/Makassar\",\"LLK\":\"Asia/Baku\",\"LLL\":\"Australia/Perth\",\"LLM\":\"Pacific/Guadalcanal\",\"LLN\":\"Asia/Jayapura\",\"LLO\":\"Asia/Makassar\",\"LLP\":\"Australia/Brisbane\",\"LLS\":\"America/Argentina/Buenos_Aires\",\"LLU\":\"America/Godthab\",\"LLV\":\"Asia/Shanghai\",\"LLW\":\"Africa/Blantyre\",\"LLX\":\"America/New_York\",\"LLY\":\"America/New_York\",\"LMA\":\"America/Anchorage\",\"LMB\":\"Africa/Blantyre\",\"LMC\":\"America/Bogota\",\"LMD\":\"America/Argentina/Buenos_Aires\",\"LME\":\"Europe/Paris\",\"LMG\":\"Pacific/Port_Moresby\",\"LMH\":\"America/Tegucigalpa\",\"LMI\":\"Pacific/Port_Moresby\",\"LML\":\"Pacific/Majuro\",\"LMM\":\"America/Mazatlan\",\"LMN\":\"Asia/Kuala_Lumpur\",\"LMO\":\"Europe/London\",\"LMP\":\"Europe/Rome\",\"LMQ\":\"Africa/Tripoli\",\"LMR\":\"Africa/Johannesburg\",\"LMS\":\"America/Chicago\",\"LMT\":\"America/Los_Angeles\",\"LMU\":\"Asia/Jakarta\",\"LMX\":\"America/Bogota\",\"LMY\":\"Pacific/Port_Moresby\",\"LMZ\":\"Africa/Maputo\",\"LNA\":\"America/New_York\",\"LNB\":\"Pacific/Efate\",\"LNC\":\"Pacific/Port_Moresby\",\"LND\":\"America/Denver\",\"LNE\":\"Pacific/Efate\",\"LNF\":\"Pacific/Port_Moresby\",\"LNG\":\"Pacific/Port_Moresby\",\"LNH\":\"Australia/Darwin\",\"LNI\":\"America/Anchorage\",\"LNJ\":\"Asia/Shanghai\",\"LNK\":\"America/Chicago\",\"LNL\":\"Asia/Shanghai\",\"LNM\":\"Pacific/Port_Moresby\",\"LNN\":\"America/New_York\",\"LNO\":\"Australia/Perth\",\"LNP\":\"America/New_York\",\"LNQ\":\"Pacific/Port_Moresby\",\"LNR\":\"America/Chicago\",\"LNS\":\"America/New_York\",\"LNU\":\"Asia/Makassar\",\"LNV\":\"Pacific/Port_Moresby\",\"LNX\":\"Europe/Moscow\",\"LNY\":\"Pacific/Honolulu\",\"LNZ\":\"Europe/Vienna\",\"LOA\":\"Australia/Brisbane\",\"LOB\":\"America/Santiago\",\"LOC\":\"Australia/Adelaide\",\"LOD\":\"Pacific/Efate\",\"LOE\":\"Asia/Bangkok\",\"LOF\":\"Pacific/Majuro\",\"LOG\":\"America/Los_Angeles\",\"LOH\":\"America/Guayaquil\",\"LOI\":\"America/Sao_Paulo\",\"LOK\":\"Africa/Nairobi\",\"LOL\":\"America/Los_Angeles\",\"LOM\":\"America/Mexico_City\",\"LOO\":\"Africa/Algiers\",\"LOP\":\"Asia/Makassar\",\"LOQ\":\"Africa/Gaborone\",\"LOR\":\"America/Chicago\",\"LOS\":\"Africa/Lagos\",\"LOT\":\"America/Chicago\",\"LOU\":\"America/New_York\",\"LOV\":\"America/Mexico_City\",\"LOW\":\"America/New_York\",\"LOY\":\"Africa/Nairobi\",\"LOZ\":\"America/New_York\",\"LPA\":\"Atlantic/Canary\",\"LPB\":\"America/La_Paz\",\"LPC\":\"America/Los_Angeles\",\"LPD\":\"America/Bogota\",\"LPE\":\"America/Bogota\",\"LPF\":\"Asia/Shanghai\",\"LPG\":\"America/Argentina/Buenos_Aires\",\"LPH\":\"Europe/London\",\"LPI\":\"Europe/Stockholm\",\"LPJ\":\"America/Caracas\",\"LPK\":\"Europe/Moscow\",\"LPL\":\"Europe/London\",\"LPM\":\"Pacific/Efate\",\"LPO\":\"America/Chicago\",\"LPP\":\"Europe/Helsinki\",\"LPQ\":\"Asia/Vientiane\",\"LPS\":\"America/Los_Angeles\",\"LPT\":\"Asia/Bangkok\",\"LPU\":\"Asia/Makassar\",\"LPW\":\"America/Anchorage\",\"LPX\":\"Europe/Riga\",\"LPY\":\"Europe/Paris\",\"LQK\":\"America/New_York\",\"LQM\":\"America/Bogota\",\"LQN\":\"Asia/Kabul\",\"LRA\":\"Europe/Athens\",\"LRB\":\"Africa/Maseru\",\"LRD\":\"America/Chicago\",\"LRE\":\"Australia/Brisbane\",\"LRF\":\"America/Chicago\",\"LRG\":\"Asia/Karachi\",\"LRH\":\"Europe/Paris\",\"LRI\":\"America/Bogota\",\"LRJ\":\"America/Chicago\",\"LRL\":\"Africa/Lome\",\"LRM\":\"America/Santo_Domingo\",\"LRN\":\"America/Los_Angeles\",\"LRO\":\"America/Los_Angeles\",\"LRQ\":\"America/Winnipeg\",\"LRR\":\"Asia/Tehran\",\"LRS\":\"Europe/Athens\",\"LRT\":\"Europe/Paris\",\"LRU\":\"America/Denver\",\"LRV\":\"America/Caracas\",\"LSA\":\"Pacific/Port_Moresby\",\"LSB\":\"America/Denver\",\"LSC\":\"America/Santiago\",\"LSE\":\"America/Chicago\",\"LSF\":\"America/New_York\",\"LSH\":\"Asia/Yangon\",\"LSI\":\"Europe/London\",\"LSJ\":\"Pacific/Port_Moresby\",\"LSK\":\"America/Denver\",\"LSL\":\"America/Costa_Rica\",\"LSM\":\"Asia/Kuala_Lumpur\",\"LSN\":\"America/Los_Angeles\",\"LSO\":\"Europe/Paris\",\"LSP\":\"America/Caracas\",\"LSQ\":\"America/Santiago\",\"LSR\":\"America/Anchorage\",\"LSS\":\"America/Guadeloupe\",\"LST\":\"Australia/Hobart\",\"LSU\":\"Asia/Kuala_Lumpur\",\"LSV\":\"America/Los_Angeles\",\"LSW\":\"Asia/Jakarta\",\"LSX\":\"Asia/Jakarta\",\"LSY\":\"Australia/Sydney\",\"LSZ\":\"Europe/Zagreb\",\"LTA\":\"Africa/Johannesburg\",\"LTB\":\"Australia/Hobart\",\"LTC\":\"Africa/Ndjamena\",\"LTD\":\"Africa/Tripoli\",\"LTF\":\"Pacific/Port_Moresby\",\"LTG\":\"Asia/Kathmandu\",\"LTH\":\"America/Los_Angeles\",\"LTI\":\"Asia/Ulaanbaatar\",\"LTK\":\"Asia/Damascus\",\"LTL\":\"Africa/Libreville\",\"LTM\":\"America/Guyana\",\"LTN\":\"Europe/London\",\"LTO\":\"America/Mazatlan\",\"LTP\":\"Australia/Brisbane\",\"LTQ\":\"Europe/Paris\",\"LTR\":\"Europe/Dublin\",\"LTS\":\"America/Chicago\",\"LTT\":\"Europe/Paris\",\"LTU\":\"Asia/Kolkata\",\"LTV\":\"Australia/Brisbane\",\"LTW\":\"America/New_York\",\"LTX\":\"America/Guayaquil\",\"LUA\":\"Asia/Kathmandu\",\"LUB\":\"America/Guyana\",\"LUC\":\"Pacific/Fiji\",\"LUD\":\"Africa/Windhoek\",\"LUE\":\"Europe/Bratislava\",\"LUF\":\"America/Phoenix\",\"LUG\":\"Europe/Zurich\",\"LUH\":\"Asia/Kolkata\",\"LUI\":\"America/Tegucigalpa\",\"LUJ\":\"Africa/Johannesburg\",\"LUK\":\"America/New_York\",\"LUL\":\"America/Chicago\",\"LUM\":\"Asia/Shanghai\",\"LUN\":\"Africa/Lusaka\",\"LUO\":\"Africa/Luanda\",\"LUP\":\"Pacific/Honolulu\",\"LUQ\":\"America/Argentina/Buenos_Aires\",\"LUR\":\"America/Anchorage\",\"LUS\":\"Africa/Kinshasa\",\"LUT\":\"Australia/Brisbane\",\"LUU\":\"Australia/Brisbane\",\"LUV\":\"Asia/Jayapura\",\"LUW\":\"Asia/Makassar\",\"LUX\":\"Europe/Luxembourg\",\"LUZ\":\"Europe/Warsaw\",\"LVA\":\"Europe/Paris\",\"LVB\":\"America/Sao_Paulo\",\"LVD\":\"America/Anchorage\",\"LVI\":\"Africa/Lusaka\",\"LVK\":\"America/Los_Angeles\",\"LVL\":\"America/New_York\",\"LVM\":\"America/Denver\",\"LVO\":\"Australia/Perth\",\"LVP\":\"Asia/Tehran\",\"LVS\":\"America/Denver\",\"LWA\":\"Asia/Manila\",\"LWB\":\"America/New_York\",\"LWC\":\"America/Chicago\",\"LWE\":\"Asia/Makassar\",\"LWH\":\"Australia/Brisbane\",\"LWI\":\"Pacific/Port_Moresby\",\"LWK\":\"Europe/London\",\"LWL\":\"America/Los_Angeles\",\"LWM\":\"America/New_York\",\"LWN\":\"Asia/Yerevan\",\"LWO\":\"Europe/Kiev\",\"LWR\":\"Europe/Amsterdam\",\"LWS\":\"America/Los_Angeles\",\"LWT\":\"America/Denver\",\"LWV\":\"America/Chicago\",\"LWY\":\"Asia/Kuala_Lumpur\",\"LXA\":\"Asia/Shanghai\",\"LXG\":\"Asia/Vientiane\",\"LXI\":\"Asia/Shanghai\",\"LXN\":\"America/Chicago\",\"LXR\":\"Africa/Cairo\",\"LXS\":\"Europe/Athens\",\"LXU\":\"Africa/Lusaka\",\"LXV\":\"America/Denver\",\"LYA\":\"Asia/Shanghai\",\"LYB\":\"America/Cayman\",\"LYC\":\"Europe/Stockholm\",\"LYE\":\"Europe/London\",\"LYG\":\"Asia/Shanghai\",\"LYH\":\"America/New_York\",\"LYI\":\"Asia/Shanghai\",\"LYK\":\"Asia/Makassar\",\"LYN\":\"Europe/Paris\",\"LYO\":\"America/Chicago\",\"LYP\":\"Asia/Karachi\",\"LYR\":\"Arctic/Longyearbyen\",\"LYS\":\"Europe/Paris\",\"LYT\":\"Australia/Brisbane\",\"LYU\":\"America/Chicago\",\"LYX\":\"Europe/London\",\"LZA\":\"Africa/Kinshasa\",\"LZC\":\"America/Mexico_City\",\"LZD\":\"Asia/Shanghai\",\"LZH\":\"Asia/Shanghai\",\"LZI\":\"Africa/Kinshasa\",\"LZM\":\"Africa/Luanda\",\"LZN\":\"Asia/Shanghai\",\"LZO\":\"Asia/Shanghai\",\"LZR\":\"Australia/Brisbane\",\"LZY\":\"Asia/Shanghai\",\"MAA\":\"Asia/Kolkata\",\"MAB\":\"America/Belem\",\"MAC\":\"America/New_York\",\"MAD\":\"Europe/Madrid\",\"MAE\":\"America/Los_Angeles\",\"MAF\":\"America/Chicago\",\"MAG\":\"Pacific/Port_Moresby\",\"MAH\":\"Europe/Madrid\",\"MAI\":\"Africa/Blantyre\",\"MAJ\":\"Pacific/Majuro\",\"MAK\":\"Africa/Juba\",\"MAL\":\"Asia/Jayapura\",\"MAM\":\"America/Matamoros\",\"MAN\":\"Europe/London\",\"MAO\":\"America/Porto_Velho\",\"MAP\":\"Pacific/Port_Moresby\",\"MAQ\":\"Asia/Bangkok\",\"MAR\":\"America/Caracas\",\"MAS\":\"Pacific/Port_Moresby\",\"MAT\":\"Africa/Kinshasa\",\"MAU\":\"Pacific/Tahiti\",\"MAV\":\"Pacific/Majuro\",\"MAW\":\"America/Chicago\",\"MAX\":\"Africa/Dakar\",\"MAY\":\"America/Nassau\",\"MAZ\":\"America/Puerto_Rico\",\"MBA\":\"Africa/Nairobi\",\"MBB\":\"Australia/Perth\",\"MBC\":\"Africa/Libreville\",\"MBD\":\"Africa/Johannesburg\",\"MBE\":\"Asia/Tokyo\",\"MBF\":\"Australia/Sydney\",\"MBG\":\"America/Chicago\",\"MBH\":\"Australia/Brisbane\",\"MBI\":\"Africa/Dar_es_Salaam\",\"MBJ\":\"America/Jamaica\",\"MBK\":\"America/Campo_Grande\",\"MBL\":\"America/New_York\",\"MBM\":\"Africa/Johannesburg\",\"MBN\":\"Australia/Perth\",\"MBO\":\"Asia/Manila\",\"MBP\":\"America/Lima\",\"MBQ\":\"Africa/Kampala\",\"MBR\":\"Africa/Nouakchott\",\"MBS\":\"America/New_York\",\"MBT\":\"Asia/Manila\",\"MBU\":\"Pacific/Guadalcanal\",\"MBV\":\"Pacific/Port_Moresby\",\"MBW\":\"Australia/Sydney\",\"MBX\":\"Europe/Ljubljana\",\"MBY\":\"America/Chicago\",\"MBZ\":\"America/Porto_Velho\",\"MCA\":\"Africa/Conakry\",\"MCB\":\"America/Chicago\",\"MCC\":\"America/Los_Angeles\",\"MCD\":\"America/New_York\",\"MCE\":\"America/Los_Angeles\",\"MCF\":\"America/New_York\",\"MCG\":\"America/Anchorage\",\"MCH\":\"America/Guayaquil\",\"MCI\":\"America/Chicago\",\"MCJ\":\"America/Bogota\",\"MCK\":\"America/Chicago\",\"MCL\":\"America/Anchorage\",\"MCM\":\"Europe/Monaco\",\"MCN\":\"America/New_York\",\"MCO\":\"America/New_York\",\"MCP\":\"America/Belem\",\"MCQ\":\"Europe/Budapest\",\"MCR\":\"America/Guatemala\",\"MCS\":\"America/Argentina/Buenos_Aires\",\"MCT\":\"Asia/Muscat\",\"MCU\":\"Europe/Paris\",\"MCV\":\"Australia/Darwin\",\"MCW\":\"America/Chicago\",\"MCX\":\"Europe/Moscow\",\"MCY\":\"Australia/Brisbane\",\"MCZ\":\"America/Belem\",\"MDA\":\"America/Chicago\",\"MDB\":\"America/Belize\",\"MDC\":\"Asia/Makassar\",\"MDD\":\"America/Chicago\",\"MDE\":\"America/Bogota\",\"MDF\":\"America/Chicago\",\"MDG\":\"Asia/Shanghai\",\"MDH\":\"America/Chicago\",\"MDI\":\"Africa/Lagos\",\"MDJ\":\"America/Los_Angeles\",\"MDK\":\"Africa/Kinshasa\",\"MDL\":\"Asia/Yangon\",\"MDM\":\"Pacific/Port_Moresby\",\"MDN\":\"America/Indiana/Indianapolis\",\"MDO\":\"America/Anchorage\",\"MDP\":\"Asia/Jayapura\",\"MDQ\":\"America/Argentina/Buenos_Aires\",\"MDR\":\"Africa/Nairobi\",\"MDS\":\"America/Grand_Turk\",\"MDT\":\"America/New_York\",\"MDU\":\"Pacific/Port_Moresby\",\"MDV\":\"Africa/Libreville\",\"MDW\":\"America/Chicago\",\"MDX\":\"America/Argentina/Buenos_Aires\",\"MDY\":\"Pacific/Midway\",\"MDZ\":\"America/Argentina/Buenos_Aires\",\"MEA\":\"America/Sao_Paulo\",\"MEB\":\"Australia/Sydney\",\"MEC\":\"America/Guayaquil\",\"MED\":\"Asia/Riyadh\",\"MEE\":\"Pacific/Noumea\",\"MEF\":\"Africa/Ndjamena\",\"MEG\":\"Africa/Luanda\",\"MEH\":\"Europe/Oslo\",\"MEI\":\"America/Chicago\",\"MEJ\":\"America/New_York\",\"MEK\":\"Africa/Casablanca\",\"MEL\":\"Australia/Sydney\",\"MEM\":\"America/Chicago\",\"MEN\":\"Europe/Paris\",\"MEO\":\"America/New_York\",\"MEP\":\"Asia/Kuala_Lumpur\",\"MEQ\":\"Asia/Jakarta\",\"MER\":\"America/Los_Angeles\",\"MES\":\"Asia/Jakarta\",\"MET\":\"Australia/Brisbane\",\"MEU\":\"America/Belem\",\"MEV\":\"America/Los_Angeles\",\"MEW\":\"Africa/Lubumbashi\",\"MEX\":\"America/Mexico_City\",\"MEY\":\"Asia/Kathmandu\",\"MEZ\":\"Africa/Johannesburg\",\"MFA\":\"Africa/Dar_es_Salaam\",\"MFB\":\"America/Bogota\",\"MFC\":\"Africa/Maseru\",\"MFD\":\"America/New_York\",\"MFE\":\"America/Chicago\",\"MFF\":\"Africa/Libreville\",\"MFG\":\"Asia/Karachi\",\"MFH\":\"America/Los_Angeles\",\"MFI\":\"America/Chicago\",\"MFJ\":\"Pacific/Fiji\",\"MFK\":\"Asia/Taipei\",\"MFL\":\"Australia/Brisbane\",\"MFM\":\"Asia/Macau\",\"MFN\":\"Pacific/Auckland\",\"MFO\":\"Pacific/Port_Moresby\",\"MFP\":\"Australia/Darwin\",\"MFQ\":\"Africa/Niamey\",\"MFR\":\"America/Los_Angeles\",\"MFS\":\"America/Bogota\",\"MFT\":\"America/Lima\",\"MFU\":\"Africa/Lusaka\",\"MFV\":\"America/New_York\",\"MFW\":\"Africa/Maputo\",\"MFX\":\"Europe/Paris\",\"MFY\":\"Asia/Aden\",\"MFZ\":\"Pacific/Port_Moresby\",\"MGA\":\"America/Managua\",\"MGB\":\"Australia/Adelaide\",\"MGC\":\"America/Chicago\",\"MGD\":\"America/La_Paz\",\"MGE\":\"America/New_York\",\"MGF\":\"America/Sao_Paulo\",\"MGG\":\"Pacific/Port_Moresby\",\"MGH\":\"Africa/Johannesburg\",\"MGI\":\"America/Chicago\",\"MGJ\":\"America/New_York\",\"MGK\":\"Asia/Yangon\",\"MGL\":\"Europe/Berlin\",\"MGM\":\"America/Chicago\",\"MGN\":\"America/Bogota\",\"MGO\":\"Africa/Libreville\",\"MGP\":\"Pacific/Port_Moresby\",\"MGQ\":\"Africa/Mogadishu\",\"MGR\":\"America/New_York\",\"MGS\":\"Pacific/Rarotonga\",\"MGT\":\"Australia/Darwin\",\"MGU\":\"Asia/Yangon\",\"MGV\":\"Australia/Perth\",\"MGW\":\"America/New_York\",\"MGX\":\"Africa/Libreville\",\"MGY\":\"America/New_York\",\"MGZ\":\"Asia/Yangon\",\"MHA\":\"America/Guyana\",\"MHB\":\"Pacific/Auckland\",\"MHC\":\"America/Santiago\",\"MHD\":\"Asia/Tehran\",\"MHE\":\"America/Chicago\",\"MHF\":\"America/Bogota\",\"MHG\":\"Europe/Berlin\",\"MHH\":\"America/Nassau\",\"MHI\":\"Africa/Djibouti\",\"MHK\":\"America/Chicago\",\"MHL\":\"America/Chicago\",\"MHM\":\"Pacific/Guadalcanal\",\"MHN\":\"America/Denver\",\"MHO\":\"Australia/Perth\",\"MHP\":\"Europe/Minsk\",\"MHQ\":\"Europe/Helsinki\",\"MHR\":\"America/Los_Angeles\",\"MHS\":\"America/Los_Angeles\",\"MHT\":\"America/New_York\",\"MHU\":\"Australia/Sydney\",\"MHV\":\"America/Los_Angeles\",\"MHW\":\"America/La_Paz\",\"MHX\":\"Pacific/Rarotonga\",\"MHY\":\"Pacific/Port_Moresby\",\"MHZ\":\"Europe/London\",\"MIA\":\"America/New_York\",\"MIB\":\"America/Chicago\",\"MIC\":\"America/Chicago\",\"MID\":\"America/Mexico_City\",\"MIE\":\"America/Indiana/Indianapolis\",\"MIF\":\"America/Chicago\",\"MIG\":\"Asia/Shanghai\",\"MIH\":\"Australia/Perth\",\"MII\":\"America/Sao_Paulo\",\"MIJ\":\"Pacific/Majuro\",\"MIK\":\"Europe/Helsinki\",\"MIM\":\"Australia/Sydney\",\"MIN\":\"Australia/Adelaide\",\"MIO\":\"America/Chicago\",\"MIP\":\"Asia/Jerusalem\",\"MIQ\":\"America/Chicago\",\"MIR\":\"Africa/Tunis\",\"MIS\":\"Pacific/Port_Moresby\",\"MIT\":\"America/Los_Angeles\",\"MIU\":\"Africa/Lagos\",\"MIV\":\"America/New_York\",\"MIW\":\"America/Chicago\",\"MIX\":\"America/Bogota\",\"MIZ\":\"Australia/Darwin\",\"MJA\":\"Indian/Antananarivo\",\"MJB\":\"Pacific/Majuro\",\"MJC\":\"Africa/Abidjan\",\"MJD\":\"Asia/Karachi\",\"MJE\":\"Pacific/Majuro\",\"MJF\":\"Europe/Oslo\",\"MJG\":\"America/Havana\",\"MJH\":\"Asia/Riyadh\",\"MJI\":\"Africa/Tripoli\",\"MJJ\":\"Pacific/Port_Moresby\",\"MJK\":\"Australia/Perth\",\"MJL\":\"Africa/Libreville\",\"MJM\":\"Africa/Lubumbashi\",\"MJN\":\"Indian/Antananarivo\",\"MJO\":\"Africa/Windhoek\",\"MJP\":\"Australia/Perth\",\"MJQ\":\"America/Chicago\",\"MJR\":\"America/Argentina/Buenos_Aires\",\"MJT\":\"Europe/Athens\",\"MJU\":\"Asia/Makassar\",\"MJV\":\"Europe/Madrid\",\"MJW\":\"Africa/Harare\",\"MJX\":\"America/New_York\",\"MJY\":\"Asia/Jakarta\",\"MJZ\":\"Asia/Yakutsk\",\"MKA\":\"Europe/Prague\",\"MKB\":\"Africa/Libreville\",\"MKC\":\"America/Chicago\",\"MKD\":\"Africa/Addis_Ababa\",\"MKE\":\"America/Chicago\",\"MKF\":\"America/New_York\",\"MKG\":\"America/New_York\",\"MKH\":\"Africa/Maseru\",\"MKI\":\"Africa/Bangui\",\"MKJ\":\"Africa/Brazzaville\",\"MKK\":\"Pacific/Honolulu\",\"MKL\":\"America/Chicago\",\"MKM\":\"Asia/Kuala_Lumpur\",\"MKN\":\"Pacific/Port_Moresby\",\"MKO\":\"America/Chicago\",\"MKP\":\"Pacific/Tahiti\",\"MKQ\":\"Asia/Jayapura\",\"MKR\":\"Australia/Perth\",\"MKS\":\"Africa/Addis_Ababa\",\"MKT\":\"America/Chicago\",\"MKU\":\"Africa/Libreville\",\"MKV\":\"Australia/Darwin\",\"MKW\":\"Asia/Jayapura\",\"MKX\":\"Asia/Aden\",\"MKY\":\"Australia/Brisbane\",\"MKZ\":\"Asia/Kuala_Lumpur\",\"MLA\":\"Europe/Malta\",\"MLB\":\"America/New_York\",\"MLC\":\"America/Chicago\",\"MLD\":\"America/Denver\",\"MLE\":\"Indian/Maldives\",\"MLF\":\"America/Denver\",\"MLG\":\"Asia/Jakarta\",\"MLH\":\"Europe/Zurich\",\"MLI\":\"America/Chicago\",\"MLJ\":\"America/New_York\",\"MLK\":\"America/Denver\",\"MLL\":\"America/Anchorage\",\"MLM\":\"America/Mexico_City\",\"MLN\":\"Europe/Madrid\",\"MLO\":\"Europe/Athens\",\"MLP\":\"Asia/Manila\",\"MLQ\":\"Pacific/Port_Moresby\",\"MLR\":\"Australia/Adelaide\",\"MLS\":\"America/Denver\",\"MLT\":\"America/New_York\",\"MLU\":\"America/Chicago\",\"MLV\":\"Australia/Brisbane\",\"MLW\":\"Africa/Monrovia\",\"MLX\":\"Europe/Istanbul\",\"MLY\":\"America/Anchorage\",\"MLZ\":\"America/Montevideo\",\"MMB\":\"Asia/Tokyo\",\"MMC\":\"America/Mexico_City\",\"MMD\":\"Asia/Tokyo\",\"MME\":\"Europe/London\",\"MMF\":\"Africa/Douala\",\"MMG\":\"Australia/Perth\",\"MMH\":\"America/Los_Angeles\",\"MMI\":\"America/New_York\",\"MMJ\":\"Asia/Tokyo\",\"MMK\":\"Europe/Moscow\",\"MML\":\"America/Chicago\",\"MMM\":\"Australia/Brisbane\",\"MMN\":\"America/New_York\",\"MMO\":\"Atlantic/Cape_Verde\",\"MMP\":\"America/Bogota\",\"MMQ\":\"Africa/Lusaka\",\"MMR\":\"America/Chicago\",\"MMS\":\"America/Chicago\",\"MMT\":\"America/New_York\",\"MMU\":\"America/New_York\",\"MMW\":\"Africa/Maputo\",\"MMX\":\"Europe/Stockholm\",\"MMY\":\"Asia/Tokyo\",\"MMZ\":\"Asia/Kabul\",\"MNA\":\"Asia/Makassar\",\"MNB\":\"Africa/Kinshasa\",\"MNC\":\"Africa/Maputo\",\"MND\":\"America/Bogota\",\"MNE\":\"Australia/Adelaide\",\"MNF\":\"Pacific/Fiji\",\"MNG\":\"Australia/Darwin\",\"MNH\":\"Asia/Muscat\",\"MNI\":\"America/Montserrat\",\"MNJ\":\"Indian/Antananarivo\",\"MNK\":\"Pacific/Tarawa\",\"MNL\":\"Asia/Manila\",\"MNM\":\"America/Chicago\",\"MNN\":\"America/New_York\",\"MNO\":\"Africa/Lubumbashi\",\"MNQ\":\"Australia/Brisbane\",\"MNR\":\"Africa/Lusaka\",\"MNS\":\"Africa/Lusaka\",\"MNT\":\"America/Anchorage\",\"MNU\":\"Asia/Yangon\",\"MNV\":\"Australia/Darwin\",\"MNW\":\"Australia/Darwin\",\"MNX\":\"America/Porto_Velho\",\"MNY\":\"Pacific/Guadalcanal\",\"MNZ\":\"America/New_York\",\"MOA\":\"America/Havana\",\"MOB\":\"America/Chicago\",\"MOC\":\"America/Sao_Paulo\",\"MOD\":\"America/Los_Angeles\",\"MOE\":\"Asia/Yangon\",\"MOF\":\"Asia/Makassar\",\"MOG\":\"Asia/Yangon\",\"MOH\":\"Asia/Makassar\",\"MOI\":\"Pacific/Rarotonga\",\"MOJ\":\"America/Paramaribo\",\"MOK\":\"Africa/Abidjan\",\"MOL\":\"Europe/Oslo\",\"MOM\":\"Africa/Nouakchott\",\"MON\":\"Pacific/Auckland\",\"MOO\":\"Australia/Adelaide\",\"MOP\":\"America/New_York\",\"MOQ\":\"Indian/Antananarivo\",\"MOR\":\"America/New_York\",\"MOS\":\"America/Anchorage\",\"MOT\":\"America/Chicago\",\"MOU\":\"America/Anchorage\",\"MOV\":\"Australia/Brisbane\",\"MOX\":\"America/Chicago\",\"MOY\":\"America/Bogota\",\"MOZ\":\"Pacific/Tahiti\",\"MPA\":\"Africa/Windhoek\",\"MPB\":\"America/New_York\",\"MPC\":\"Asia/Jakarta\",\"MPD\":\"Asia/Karachi\",\"MPE\":\"America/New_York\",\"MPF\":\"Pacific/Port_Moresby\",\"MPG\":\"Pacific/Port_Moresby\",\"MPH\":\"Asia/Manila\",\"MPI\":\"America/Panama\",\"MPJ\":\"America/Chicago\",\"MPK\":\"Asia/Seoul\",\"MPL\":\"Europe/Paris\",\"MPM\":\"Africa/Maputo\",\"MPN\":\"Atlantic/Stanley\",\"MPO\":\"America/New_York\",\"MPP\":\"America/Panama\",\"MPQ\":\"Asia/Amman\",\"MPR\":\"America/Chicago\",\"MPS\":\"America/Chicago\",\"MPT\":\"Asia/Jayapura\",\"MPU\":\"Pacific/Port_Moresby\",\"MPV\":\"America/New_York\",\"MPX\":\"Pacific/Port_Moresby\",\"MPY\":\"America/Cayenne\",\"MPZ\":\"America/Chicago\",\"MQA\":\"Australia/Perth\",\"MQB\":\"America/Chicago\",\"MQC\":\"America/Miquelon\",\"MQD\":\"America/Argentina/Buenos_Aires\",\"MQE\":\"Australia/Darwin\",\"MQF\":\"Asia/Yekaterinburg\",\"MQG\":\"Africa/Windhoek\",\"MQH\":\"America/Sao_Paulo\",\"MQI\":\"America/New_York\",\"MQJ\":\"Asia/Magadan\",\"MQK\":\"America/La_Paz\",\"MQL\":\"Australia/Sydney\",\"MQM\":\"Europe/Istanbul\",\"MQN\":\"Europe/Oslo\",\"MQO\":\"Pacific/Port_Moresby\",\"MQP\":\"Africa/Johannesburg\",\"MQQ\":\"Africa/Ndjamena\",\"MQR\":\"America/Bogota\",\"MQS\":\"America/St_Vincent\",\"MQT\":\"America/New_York\",\"MQU\":\"America/Bogota\",\"MQV\":\"Africa/Algiers\",\"MQW\":\"America/New_York\",\"MQX\":\"Africa/Addis_Ababa\",\"MQY\":\"America/Chicago\",\"MQZ\":\"Australia/Perth\",\"MRA\":\"Africa/Tripoli\",\"MRB\":\"America/New_York\",\"MRC\":\"America/Chicago\",\"MRD\":\"America/Caracas\",\"MRE\":\"Africa/Nairobi\",\"MRF\":\"America/Chicago\",\"MRG\":\"Australia/Brisbane\",\"MRH\":\"Pacific/Port_Moresby\",\"MRI\":\"America/Anchorage\",\"MRJ\":\"America/Tegucigalpa\",\"MRK\":\"America/New_York\",\"MRL\":\"Australia/Brisbane\",\"MRM\":\"Pacific/Port_Moresby\",\"MRN\":\"America/New_York\",\"MRO\":\"Pacific/Auckland\",\"MRP\":\"Australia/Adelaide\",\"MRQ\":\"Asia/Manila\",\"MRR\":\"America/Guayaquil\",\"MRS\":\"Europe/Paris\",\"MRT\":\"Australia/Darwin\",\"MRU\":\"Indian/Mauritius\",\"MRV\":\"Europe/Moscow\",\"MRW\":\"Europe/Copenhagen\",\"MRX\":\"Asia/Tehran\",\"MRY\":\"America/Los_Angeles\",\"MRZ\":\"Australia/Sydney\",\"MSA\":\"America/Winnipeg\",\"MSC\":\"America/Phoenix\",\"MSD\":\"America/Denver\",\"MSE\":\"Europe/London\",\"MSF\":\"Australia/Darwin\",\"MSG\":\"Africa/Maseru\",\"MSH\":\"Asia/Muscat\",\"MSI\":\"Asia/Jakarta\",\"MSJ\":\"Asia/Tokyo\",\"MSK\":\"America/Nassau\",\"MSL\":\"America/Chicago\",\"MSM\":\"Africa/Kinshasa\",\"MSN\":\"America/Chicago\",\"MSO\":\"America/Denver\",\"MSP\":\"America/Chicago\",\"MSQ\":\"Europe/Minsk\",\"MSR\":\"Europe/Istanbul\",\"MSS\":\"America/New_York\",\"MST\":\"Europe/Amsterdam\",\"MSU\":\"Africa/Maseru\",\"MSV\":\"America/New_York\",\"MSW\":\"Africa/Asmara\",\"MSX\":\"Africa/Brazzaville\",\"MSY\":\"America/Chicago\",\"MSZ\":\"Africa/Luanda\",\"MTA\":\"Pacific/Auckland\",\"MTB\":\"America/Bogota\",\"MTC\":\"America/New_York\",\"MTD\":\"Australia/Darwin\",\"MTE\":\"America/Porto_Velho\",\"MTF\":\"Africa/Addis_Ababa\",\"MTG\":\"America/Campo_Grande\",\"MTH\":\"America/New_York\",\"MTI\":\"Atlantic/Cape_Verde\",\"MTJ\":\"America/Denver\",\"MTK\":\"Pacific/Tarawa\",\"MTL\":\"Australia/Sydney\",\"MTM\":\"America/Anchorage\",\"MTN\":\"America/New_York\",\"MTO\":\"America/Chicago\",\"MTP\":\"America/New_York\",\"MTQ\":\"Australia/Brisbane\",\"MTR\":\"America/Bogota\",\"MTS\":\"Africa/Mbabane\",\"MTT\":\"America/Mexico_City\",\"MTU\":\"Africa/Maputo\",\"MTV\":\"Pacific/Efate\",\"MTW\":\"America/Chicago\",\"MTX\":\"America/Anchorage\",\"MTY\":\"America/Mexico_City\",\"MTZ\":\"Asia/Jerusalem\",\"MUA\":\"Pacific/Guadalcanal\",\"MUB\":\"Africa/Gaborone\",\"MUC\":\"Europe/Berlin\",\"MUD\":\"Africa/Maputo\",\"MUE\":\"Pacific/Honolulu\",\"MUF\":\"Asia/Jayapura\",\"MUG\":\"America/Mazatlan\",\"MUH\":\"Africa/Cairo\",\"MUI\":\"America/New_York\",\"MUJ\":\"Africa/Addis_Ababa\",\"MUK\":\"Pacific/Rarotonga\",\"MUL\":\"America/New_York\",\"MUM\":\"Africa/Nairobi\",\"MUN\":\"America/Caracas\",\"MUO\":\"America/Denver\",\"MUP\":\"Australia/Darwin\",\"MUQ\":\"Australia/Perth\",\"MUR\":\"Asia/Kuala_Lumpur\",\"MUT\":\"America/Chicago\",\"MUU\":\"America/New_York\",\"MUV\":\"America/New_York\",\"MUW\":\"Africa/Algiers\",\"MUX\":\"Asia/Karachi\",\"MUY\":\"Africa/Brazzaville\",\"MUZ\":\"Africa/Dar_es_Salaam\",\"MVA\":\"Atlantic/Reykjavik\",\"MVB\":\"Africa/Libreville\",\"MVC\":\"America/Chicago\",\"MVD\":\"America/Montevideo\",\"MVE\":\"America/Chicago\",\"MVF\":\"America/Belem\",\"MVG\":\"Africa/Libreville\",\"MVH\":\"Australia/Sydney\",\"MVI\":\"Pacific/Bougainville\",\"MVJ\":\"America/Jamaica\",\"MVK\":\"Australia/Adelaide\",\"MVL\":\"America/New_York\",\"MVM\":\"America/Phoenix\",\"MVN\":\"America/Chicago\",\"MVO\":\"Africa/Ndjamena\",\"MVP\":\"America/Bogota\",\"MVQ\":\"Europe/Minsk\",\"MVR\":\"Africa/Douala\",\"MVS\":\"America/Belem\",\"MVT\":\"Pacific/Tahiti\",\"MVU\":\"Australia/Brisbane\",\"MVV\":\"Europe/Paris\",\"MVW\":\"America/Los_Angeles\",\"MVX\":\"Africa/Libreville\",\"MVY\":\"America/New_York\",\"MVZ\":\"Africa/Harare\",\"MWA\":\"America/Chicago\",\"MWB\":\"Australia/Perth\",\"MWC\":\"America/Chicago\",\"MWD\":\"Asia/Karachi\",\"MWE\":\"Africa/Khartoum\",\"MWF\":\"Pacific/Efate\",\"MWG\":\"Pacific/Port_Moresby\",\"MWH\":\"America/Los_Angeles\",\"MWI\":\"Pacific/Port_Moresby\",\"MWJ\":\"America/Guyana\",\"MWK\":\"Asia/Jakarta\",\"MWL\":\"America/Chicago\",\"MWM\":\"America/Chicago\",\"MWN\":\"Africa/Dar_es_Salaam\",\"MWO\":\"America/New_York\",\"MWP\":\"Asia/Kathmandu\",\"MWQ\":\"Asia/Yangon\",\"MWS\":\"America/Los_Angeles\",\"MWT\":\"Australia/Adelaide\",\"MWU\":\"Pacific/Port_Moresby\",\"MWV\":\"Asia/Phnom_Penh\",\"MWW\":\"Europe/Brussels\",\"MWX\":\"Asia/Seoul\",\"MWY\":\"Australia/Brisbane\",\"MWZ\":\"Africa/Dar_es_Salaam\",\"MXA\":\"America/Chicago\",\"MXB\":\"Asia/Jayapura\",\"MXC\":\"America/Denver\",\"MXD\":\"Australia/Brisbane\",\"MXE\":\"America/New_York\",\"MXF\":\"America/Chicago\",\"MXG\":\"America/New_York\",\"MXH\":\"Pacific/Port_Moresby\",\"MXI\":\"Asia/Manila\",\"MXJ\":\"Africa/Lagos\",\"MXK\":\"Pacific/Port_Moresby\",\"MXL\":\"America/Tijuana\",\"MXM\":\"Indian/Antananarivo\",\"MXN\":\"Europe/Paris\",\"MXO\":\"America/Chicago\",\"MXP\":\"Europe/Rome\",\"MXQ\":\"Australia/Brisbane\",\"MXR\":\"Europe/Kiev\",\"MXS\":\"Pacific/Apia\",\"MXT\":\"Indian/Antananarivo\",\"MXU\":\"Australia/Perth\",\"MXV\":\"Asia/Ulaanbaatar\",\"MXW\":\"Asia/Ulaanbaatar\",\"MXX\":\"Europe/Stockholm\",\"MXY\":\"America/Anchorage\",\"MXZ\":\"Asia/Shanghai\",\"MYA\":\"Australia/Sydney\",\"MYB\":\"Africa/Libreville\",\"MYC\":\"America/Caracas\",\"MYD\":\"Africa/Nairobi\",\"MYE\":\"Asia/Tokyo\",\"MYF\":\"America/Los_Angeles\",\"MYG\":\"America/Nassau\",\"MYH\":\"America/Phoenix\",\"MYI\":\"Australia/Brisbane\",\"MYJ\":\"Asia/Tokyo\",\"MYK\":\"America/Anchorage\",\"MYL\":\"America/Denver\",\"MYM\":\"America/Guyana\",\"MYN\":\"Asia/Aden\",\"MYO\":\"Australia/Perth\",\"MYP\":\"Asia/Ashgabat\",\"MYQ\":\"Asia/Kolkata\",\"MYR\":\"America/New_York\",\"MYS\":\"Africa/Addis_Ababa\",\"MYT\":\"Asia/Yangon\",\"MYU\":\"America/Anchorage\",\"MYV\":\"America/Los_Angeles\",\"MYW\":\"Africa/Dar_es_Salaam\",\"MYX\":\"Pacific/Port_Moresby\",\"MYY\":\"Asia/Kuala_Lumpur\",\"MYZ\":\"Africa/Blantyre\",\"MZA\":\"America/Lima\",\"MZB\":\"Africa/Maputo\",\"MZC\":\"Africa/Libreville\",\"MZD\":\"America/Guayaquil\",\"MZE\":\"America/Belize\",\"MZF\":\"Africa/Johannesburg\",\"MZG\":\"Asia/Taipei\",\"MZH\":\"Europe/Istanbul\",\"MZI\":\"Africa/Bamako\",\"MZJ\":\"America/Phoenix\",\"MZK\":\"Pacific/Tarawa\",\"MZL\":\"America/Bogota\",\"MZM\":\"Europe/Paris\",\"MZN\":\"Pacific/Port_Moresby\",\"MZO\":\"America/Havana\",\"MZP\":\"Pacific/Auckland\",\"MZQ\":\"Africa/Johannesburg\",\"MZR\":\"Asia/Kabul\",\"MZS\":\"Asia/Kuala_Lumpur\",\"MZT\":\"America/Mazatlan\",\"MZU\":\"Asia/Kolkata\",\"MZV\":\"Asia/Kuala_Lumpur\",\"MZW\":\"Africa/Algiers\",\"MZX\":\"Africa/Addis_Ababa\",\"MZY\":\"Africa/Johannesburg\",\"MZZ\":\"America/Indiana/Indianapolis\",\"NAA\":\"Australia/Sydney\",\"NAB\":\"America/New_York\",\"NAC\":\"Australia/Adelaide\",\"NAD\":\"America/Bogota\",\"NAE\":\"Africa/Porto-Novo\",\"NAF\":\"Asia/Makassar\",\"NAG\":\"Asia/Kolkata\",\"NAH\":\"Asia/Makassar\",\"NAI\":\"America/Guyana\",\"NAJ\":\"Asia/Baku\",\"NAK\":\"Asia/Bangkok\",\"NAL\":\"Europe/Moscow\",\"NAM\":\"Asia/Jayapura\",\"NAN\":\"Pacific/Fiji\",\"NAO\":\"Asia/Shanghai\",\"NAP\":\"Europe/Rome\",\"NAQ\":\"America/Godthab\",\"NAR\":\"America/Bogota\",\"NAS\":\"America/Nassau\",\"NAT\":\"America/Belem\",\"NAU\":\"Pacific/Tahiti\",\"NAV\":\"Europe/Istanbul\",\"NAW\":\"Asia/Bangkok\",\"NBA\":\"Pacific/Port_Moresby\",\"NBB\":\"America/Bogota\",\"NBC\":\"Europe/Moscow\",\"NBE\":\"Africa/Tunis\",\"NBG\":\"America/Chicago\",\"NBH\":\"Australia/Sydney\",\"NBL\":\"America/Panama\",\"NBN\":\"Africa/Lagos\",\"NBO\":\"Africa/Nairobi\",\"NBP\":\"America/New_York\",\"NBR\":\"Australia/Brisbane\",\"NBS\":\"Asia/Shanghai\",\"NBV\":\"America/Sao_Paulo\",\"NBW\":\"America/Havana\",\"NBX\":\"Asia/Jayapura\",\"NCA\":\"America/Grand_Turk\",\"NCE\":\"Europe/Paris\",\"NCG\":\"America/Mexico_City\",\"NCH\":\"Africa/Dar_es_Salaam\",\"NCI\":\"America/Bogota\",\"NCJ\":\"America/Argentina/Cordoba\",\"NCL\":\"Europe/London\",\"NCN\":\"America/Anchorage\",\"NCO\":\"America/New_York\",\"NCP\":\"Asia/Manila\",\"NCQ\":\"America/New_York\",\"NCR\":\"America/Managua\",\"NCS\":\"Africa/Johannesburg\",\"NCT\":\"America/Costa_Rica\",\"NCU\":\"Asia/Tashkent\",\"NCY\":\"Europe/Paris\",\"NDA\":\"Asia/Jayapura\",\"NDB\":\"Africa/Nouakchott\",\"NDC\":\"Asia/Kolkata\",\"NDD\":\"Africa/Luanda\",\"NDE\":\"Africa/Nairobi\",\"NDF\":\"Africa/Luanda\",\"NDG\":\"Asia/Shanghai\",\"NDI\":\"Pacific/Port_Moresby\",\"NDJ\":\"Africa/Ndjamena\",\"NDK\":\"Pacific/Majuro\",\"NDL\":\"Africa/Bangui\",\"NDM\":\"Africa/Addis_Ababa\",\"NDN\":\"Pacific/Port_Moresby\",\"NDO\":\"Europe/Madrid\",\"NDR\":\"Africa/Casablanca\",\"NDS\":\"Australia/Perth\",\"NDU\":\"Africa/Windhoek\",\"NDV\":\"America/New_York\",\"NDY\":\"Europe/London\",\"NDZ\":\"Europe/Berlin\",\"NEA\":\"America/New_York\",\"NEC\":\"America/Argentina/Buenos_Aires\",\"NEF\":\"Asia/Yekaterinburg\",\"NEG\":\"America/Jamaica\",\"NEI\":\"Asia/Vladivostok\",\"NEJ\":\"Africa/Addis_Ababa\",\"NEK\":\"Africa/Addis_Ababa\",\"NEL\":\"America/New_York\",\"NEN\":\"America/New_York\",\"NER\":\"Asia/Yakutsk\",\"NES\":\"America/New_York\",\"NEU\":\"Asia/Vientiane\",\"NEV\":\"America/St_Kitts\",\"NEW\":\"America/Chicago\",\"NFB\":\"America/New_York\",\"NFG\":\"Asia/Yekaterinburg\",\"NFL\":\"America/Los_Angeles\",\"NFO\":\"Pacific/Tongatapu\",\"NFR\":\"Africa/Tripoli\",\"NGA\":\"Australia/Sydney\",\"NGB\":\"Asia/Shanghai\",\"NGC\":\"America/Phoenix\",\"NGD\":\"America/Tortola\",\"NGE\":\"Africa/Douala\",\"NGF\":\"Pacific/Honolulu\",\"NGI\":\"Pacific/Fiji\",\"NGK\":\"Asia/Magadan\",\"NGL\":\"Africa/Johannesburg\",\"NGM\":\"Pacific/Guam\",\"NGN\":\"America/Panama\",\"NGO\":\"Asia/Tokyo\",\"NGP\":\"America/Chicago\",\"NGQ\":\"Asia/Shanghai\",\"NGR\":\"Pacific/Port_Moresby\",\"NGS\":\"Asia/Tokyo\",\"NGU\":\"America/New_York\",\"NGW\":\"America/Chicago\",\"NGX\":\"Asia/Kathmandu\",\"NGZ\":\"America/Los_Angeles\",\"NHA\":\"Asia/Ho_Chi_Minh\",\"NHD\":\"Asia/Dubai\",\"NHF\":\"Africa/Khartoum\",\"NHK\":\"America/New_York\",\"NHS\":\"Asia/Karachi\",\"NHT\":\"Europe/London\",\"NHV\":\"Pacific/Marquesas\",\"NHX\":\"America/Chicago\",\"NHZ\":\"America/New_York\",\"NIA\":\"Africa/Monrovia\",\"NIB\":\"America/Anchorage\",\"NIE\":\"America/Anchorage\",\"NIF\":\"Australia/Perth\",\"NIG\":\"Pacific/Tarawa\",\"NIK\":\"Africa/Dakar\",\"NIM\":\"Africa/Niamey\",\"NIN\":\"America/Anchorage\",\"NIO\":\"Africa/Kinshasa\",\"NIP\":\"America/New_York\",\"NIQ\":\"America/Godthab\",\"NIR\":\"America/Chicago\",\"NIS\":\"Pacific/Port_Moresby\",\"NIT\":\"Europe/Paris\",\"NIU\":\"Pacific/Tahiti\",\"NIX\":\"Africa/Bamako\",\"NJA\":\"Asia/Tokyo\",\"NJC\":\"Asia/Yekaterinburg\",\"NJF\":\"Asia/Baghdad\",\"NJJ\":\"Asia/Shanghai\",\"NJK\":\"America/Los_Angeles\",\"NKA\":\"Africa/Libreville\",\"NKB\":\"Australia/Perth\",\"NKC\":\"Africa/Nouakchott\",\"NKD\":\"Asia/Jayapura\",\"NKG\":\"Asia/Shanghai\",\"NKI\":\"America/Anchorage\",\"NKL\":\"Africa/Lubumbashi\",\"NKM\":\"Asia/Tokyo\",\"NKN\":\"Pacific/Port_Moresby\",\"NKO\":\"Indian/Antananarivo\",\"NKS\":\"Africa/Douala\",\"NKT\":\"Europe/Istanbul\",\"NKU\":\"Africa/Maseru\",\"NKX\":\"America/Los_Angeles\",\"NKY\":\"Africa/Brazzaville\",\"NLA\":\"Africa/Lusaka\",\"NLC\":\"America/Los_Angeles\",\"NLD\":\"America/Matamoros\",\"NLE\":\"America/New_York\",\"NLF\":\"Australia/Brisbane\",\"NLG\":\"America/Anchorage\",\"NLH\":\"Asia/Shanghai\",\"NLI\":\"Asia/Vladivostok\",\"NLK\":\"Pacific/Norfolk\",\"NLL\":\"Australia/Perth\",\"NLO\":\"Africa/Kinshasa\",\"NLP\":\"Africa/Johannesburg\",\"NLS\":\"Australia/Perth\",\"NLT\":\"Asia/Shanghai\",\"NLU\":\"America/Mexico_City\",\"NLV\":\"Europe/Kiev\",\"NMA\":\"Asia/Tashkent\",\"NMB\":\"Asia/Kolkata\",\"NMC\":\"America/Nassau\",\"NME\":\"America/Anchorage\",\"NMF\":\"Indian/Maldives\",\"NMG\":\"America/Panama\",\"NMN\":\"Pacific/Port_Moresby\",\"NMP\":\"Australia/Brisbane\",\"NMR\":\"Australia/Brisbane\",\"NMS\":\"Asia/Yangon\",\"NMT\":\"Asia/Yangon\",\"NMU\":\"Pacific/Majuro\",\"NNA\":\"Africa/Casablanca\",\"NNB\":\"Pacific/Guadalcanal\",\"NND\":\"Africa/Maputo\",\"NNG\":\"Asia/Shanghai\",\"NNI\":\"Africa/Windhoek\",\"NNK\":\"America/Anchorage\",\"NNL\":\"America/Anchorage\",\"NNM\":\"Europe/Moscow\",\"NNR\":\"Europe/Dublin\",\"NNT\":\"Asia/Bangkok\",\"NNU\":\"America/Sao_Paulo\",\"NNX\":\"Asia/Makassar\",\"NNY\":\"Asia/Shanghai\",\"NOA\":\"Australia/Sydney\",\"NOB\":\"America/Costa_Rica\",\"NOC\":\"Europe/Dublin\",\"NOD\":\"Europe/Berlin\",\"NOE\":\"Europe/Berlin\",\"NOG\":\"America/Hermosillo\",\"NOH\":\"America/Chicago\",\"NOI\":\"Europe/Moscow\",\"NOJ\":\"Asia/Yekaterinburg\",\"NOK\":\"America/Campo_Grande\",\"NOL\":\"America/Anchorage\",\"NOM\":\"Pacific/Port_Moresby\",\"NON\":\"Pacific/Tarawa\",\"NOO\":\"Pacific/Port_Moresby\",\"NOP\":\"Europe/Istanbul\",\"NOR\":\"Atlantic/Reykjavik\",\"NOS\":\"Indian/Antananarivo\",\"NOT\":\"America/Los_Angeles\",\"NOU\":\"Pacific/Noumea\",\"NOV\":\"Africa/Luanda\",\"NOZ\":\"Asia/Novokuznetsk\",\"NPA\":\"America/Chicago\",\"NPE\":\"Pacific/Auckland\",\"NPG\":\"Pacific/Port_Moresby\",\"NPH\":\"America/Denver\",\"NPL\":\"Pacific/Auckland\",\"NPO\":\"Asia/Makassar\",\"NPP\":\"Australia/Darwin\",\"NPT\":\"America/New_York\",\"NPU\":\"America/Bogota\",\"NPY\":\"Africa/Dar_es_Salaam\",\"NQA\":\"America/Chicago\",\"NQI\":\"America/Chicago\",\"NQL\":\"America/Sao_Paulo\",\"NQN\":\"America/Argentina/Buenos_Aires\",\"NQT\":\"Europe/London\",\"NQU\":\"America/Bogota\",\"NQX\":\"America/New_York\",\"NQY\":\"Europe/London\",\"NRA\":\"Australia/Sydney\",\"NRB\":\"America/New_York\",\"NRC\":\"America/Los_Angeles\",\"NRD\":\"Europe/Berlin\",\"NRE\":\"Asia/Jayapura\",\"NRG\":\"Australia/Perth\",\"NRI\":\"America/Chicago\",\"NRK\":\"Europe/Stockholm\",\"NRL\":\"Europe/London\",\"NRM\":\"Africa/Bamako\",\"NRN\":\"Europe/Berlin\",\"NRR\":\"America/Puerto_Rico\",\"NRS\":\"America/Los_Angeles\",\"NRT\":\"Asia/Tokyo\",\"NRV\":\"Pacific/Guam\",\"NRY\":\"Australia/Darwin\",\"NSB\":\"America/Nassau\",\"NSE\":\"America/New_York\",\"NSF\":\"America/New_York\",\"NSH\":\"Asia/Tehran\",\"NSI\":\"Africa/Douala\",\"NSK\":\"Asia/Krasnoyarsk\",\"NSL\":\"America/Chicago\",\"NSM\":\"Australia/Perth\",\"NSN\":\"Pacific/Auckland\",\"NSO\":\"Australia/Sydney\",\"NSQ\":\"America/Godthab\",\"NST\":\"Asia/Bangkok\",\"NSV\":\"Australia/Brisbane\",\"NSX\":\"America/Tortola\",\"NSY\":\"Europe/Rome\",\"NTA\":\"Pacific/Fiji\",\"NTB\":\"Europe/Oslo\",\"NTD\":\"America/Los_Angeles\",\"NTE\":\"Europe/Paris\",\"NTG\":\"Asia/Shanghai\",\"NTI\":\"Asia/Jayapura\",\"NTJ\":\"America/Denver\",\"NTL\":\"Australia/Sydney\",\"NTM\":\"America/Belem\",\"NTN\":\"Australia/Brisbane\",\"NTO\":\"Atlantic/Cape_Verde\",\"NTQ\":\"Asia/Tokyo\",\"NTR\":\"America/Mexico_City\",\"NTT\":\"Pacific/Tongatapu\",\"NTU\":\"America/New_York\",\"NTX\":\"Asia/Jakarta\",\"NTY\":\"Africa/Johannesburg\",\"NUA\":\"Asia/Colombo\",\"NUB\":\"Australia/Darwin\",\"NUD\":\"Africa/Khartoum\",\"NUE\":\"Europe/Berlin\",\"NUF\":\"Asia/Colombo\",\"NUG\":\"Pacific/Port_Moresby\",\"NUH\":\"America/Bogota\",\"NUI\":\"America/Anchorage\",\"NUJ\":\"Asia/Tehran\",\"NUK\":\"Pacific/Tahiti\",\"NUL\":\"America/Anchorage\",\"NUM\":\"Asia/Riyadh\",\"NUN\":\"America/Chicago\",\"NUP\":\"America/Anchorage\",\"NUQ\":\"America/Los_Angeles\",\"NUR\":\"Australia/Adelaide\",\"NUS\":\"Pacific/Efate\",\"NUT\":\"Pacific/Port_Moresby\",\"NUU\":\"Africa/Nairobi\",\"NUW\":\"America/Los_Angeles\",\"NUX\":\"Asia/Yekaterinburg\",\"NVA\":\"America/Bogota\",\"NVD\":\"America/Chicago\",\"NVG\":\"America/Managua\",\"NVI\":\"Asia/Tashkent\",\"NVK\":\"Europe/Oslo\",\"NVP\":\"America/Porto_Velho\",\"NVR\":\"Europe/Moscow\",\"NVS\":\"Europe/Paris\",\"NVT\":\"America/Sao_Paulo\",\"NVY\":\"Asia/Kolkata\",\"NWA\":\"Indian/Comoro\",\"NWH\":\"America/New_York\",\"NWI\":\"Europe/London\",\"NWP\":\"America/St_Johns\",\"NWS\":\"America/New_York\",\"NWT\":\"Pacific/Port_Moresby\",\"NWU\":\"Atlantic/Bermuda\",\"NXX\":\"America/New_York\",\"NYA\":\"Asia/Yekaterinburg\",\"NYE\":\"Africa/Nairobi\",\"NYG\":\"America/New_York\",\"NYI\":\"Africa/Accra\",\"NYK\":\"Africa/Nairobi\",\"NYM\":\"Asia/Yekaterinburg\",\"NYN\":\"Australia/Sydney\",\"NYO\":\"Europe/Stockholm\",\"NYR\":\"Asia/Yakutsk\",\"NYS\":\"America/New_York\",\"NYT\":\"Asia/Yangon\",\"NYU\":\"Asia/Yangon\",\"NYW\":\"Asia/Yangon\",\"NZA\":\"Africa/Luanda\",\"NZC\":\"America/Lima\",\"NZE\":\"Africa/Conakry\",\"NZH\":\"Asia/Shanghai\",\"NZL\":\"Asia/Shanghai\",\"NZO\":\"Africa/Nairobi\",\"NZW\":\"America/New_York\",\"NZY\":\"America/Los_Angeles\",\"OAA\":\"Asia/Kabul\",\"OAG\":\"Australia/Sydney\",\"OAH\":\"Asia/Kabul\",\"OAI\":\"Asia/Kabul\",\"OAJ\":\"America/New_York\",\"OAK\":\"America/Los_Angeles\",\"OAL\":\"America/Porto_Velho\",\"OAM\":\"Pacific/Auckland\",\"OAN\":\"America/Tegucigalpa\",\"OAR\":\"America/Los_Angeles\",\"OAS\":\"Asia/Kabul\",\"OAX\":\"America/Mexico_City\",\"OAZ\":\"Asia/Kabul\",\"OBA\":\"Australia/Brisbane\",\"OBC\":\"Africa/Djibouti\",\"OBD\":\"Asia/Jayapura\",\"OBE\":\"America/New_York\",\"OBF\":\"Europe/Berlin\",\"OBI\":\"America/Porto_Velho\",\"OBK\":\"America/Chicago\",\"OBL\":\"Europe/Brussels\",\"OBM\":\"Pacific/Port_Moresby\",\"OBN\":\"Europe/London\",\"OBO\":\"Asia/Tokyo\",\"OBS\":\"Europe/Paris\",\"OBU\":\"America/Anchorage\",\"OBX\":\"Pacific/Port_Moresby\",\"OBY\":\"America/Scoresbysund\",\"OCA\":\"America/New_York\",\"OCC\":\"America/Guayaquil\",\"OCE\":\"America/New_York\",\"OCF\":\"America/New_York\",\"OCH\":\"America/Chicago\",\"OCI\":\"America/Anchorage\",\"OCJ\":\"America/Jamaica\",\"OCM\":\"Australia/Perth\",\"OCN\":\"America/Los_Angeles\",\"OCV\":\"America/Bogota\",\"OCW\":\"America/New_York\",\"ODA\":\"Africa/Bangui\",\"ODB\":\"Europe/Madrid\",\"ODD\":\"Australia/Adelaide\",\"ODE\":\"Europe/Copenhagen\",\"ODH\":\"Europe/London\",\"ODJ\":\"Africa/Bangui\",\"ODL\":\"Australia/Adelaide\",\"ODM\":\"America/New_York\",\"ODN\":\"Asia/Kuala_Lumpur\",\"ODO\":\"Asia/Irkutsk\",\"ODR\":\"Australia/Perth\",\"ODS\":\"Europe/Kiev\",\"ODW\":\"America/Los_Angeles\",\"ODY\":\"Asia/Vientiane\",\"OEA\":\"America/Indiana/Indianapolis\",\"OEC\":\"Asia/Jayapura\",\"OEL\":\"Europe/Moscow\",\"OEM\":\"America/Paramaribo\",\"OEO\":\"America/Chicago\",\"OER\":\"Europe/Stockholm\",\"OES\":\"America/Argentina/Buenos_Aires\",\"OFF\":\"America/Chicago\",\"OFI\":\"Africa/Abidjan\",\"OFJ\":\"Atlantic/Reykjavik\",\"OFK\":\"America/Chicago\",\"OFU\":\"Pacific/Pago_Pago\",\"OGA\":\"America/Denver\",\"OGB\":\"America/New_York\",\"OGD\":\"America/Denver\",\"OGE\":\"Pacific/Port_Moresby\",\"OGG\":\"Pacific/Honolulu\",\"OGL\":\"America/Guyana\",\"OGM\":\"America/Panama\",\"OGN\":\"Asia/Tokyo\",\"OGO\":\"Africa/Abidjan\",\"OGR\":\"Africa/Ndjamena\",\"OGS\":\"America/New_York\",\"OGU\":\"Europe/Istanbul\",\"OGX\":\"Africa/Algiers\",\"OGZ\":\"Europe/Moscow\",\"OHA\":\"Pacific/Auckland\",\"OHC\":\"America/Anchorage\",\"OHD\":\"Europe/Skopje\",\"OHE\":\"Asia/Shanghai\",\"OHH\":\"Asia/Magadan\",\"OHI\":\"Africa/Windhoek\",\"OHO\":\"Asia/Vladivostok\",\"OHP\":\"Europe/London\",\"OHR\":\"Europe/Berlin\",\"OHS\":\"Asia/Muscat\",\"OHT\":\"Asia/Karachi\",\"OIA\":\"America/Belem\",\"OIC\":\"America/New_York\",\"OIL\":\"America/New_York\",\"OIM\":\"Asia/Tokyo\",\"OIR\":\"Asia/Tokyo\",\"OIT\":\"Asia/Tokyo\",\"OJC\":\"America/Chicago\",\"OJU\":\"Asia/Makassar\",\"OKA\":\"Asia/Tokyo\",\"OKB\":\"Australia/Brisbane\",\"OKC\":\"America/Chicago\",\"OKD\":\"Asia/Tokyo\",\"OKE\":\"Asia/Tokyo\",\"OKF\":\"Africa/Windhoek\",\"OKG\":\"Africa/Brazzaville\",\"OKH\":\"Europe/London\",\"OKI\":\"Asia/Tokyo\",\"OKJ\":\"Asia/Tokyo\",\"OKK\":\"America/Indiana/Indianapolis\",\"OKL\":\"Asia/Jayapura\",\"OKM\":\"America/Chicago\",\"OKN\":\"Africa/Libreville\",\"OKO\":\"Asia/Tokyo\",\"OKP\":\"Pacific/Port_Moresby\",\"OKQ\":\"Asia/Jayapura\",\"OKR\":\"Australia/Brisbane\",\"OKS\":\"America/Chicago\",\"OKT\":\"Asia/Yekaterinburg\",\"OKU\":\"Africa/Windhoek\",\"OKV\":\"Pacific/Port_Moresby\",\"OKY\":\"Australia/Brisbane\",\"OLA\":\"Europe/Oslo\",\"OLB\":\"Europe/Rome\",\"OLC\":\"America/Porto_Velho\",\"OLD\":\"America/New_York\",\"OLE\":\"America/New_York\",\"OLF\":\"America/Denver\",\"OLG\":\"Africa/Nairobi\",\"OLH\":\"America/Anchorage\",\"OLI\":\"Atlantic/Reykjavik\",\"OLJ\":\"Pacific/Efate\",\"OLK\":\"America/Asuncion\",\"OLL\":\"Africa/Brazzaville\",\"OLM\":\"America/Los_Angeles\",\"OLO\":\"Europe/Prague\",\"OLP\":\"Australia/Adelaide\",\"OLQ\":\"Pacific/Port_Moresby\",\"OLR\":\"Asia/Kabul\",\"OLS\":\"America/Phoenix\",\"OLU\":\"America/Chicago\",\"OLV\":\"America/Chicago\",\"OLX\":\"Africa/Nairobi\",\"OLY\":\"America/Chicago\",\"OLZ\":\"Asia/Yakutsk\",\"OMA\":\"America/Chicago\",\"OMB\":\"Africa/Libreville\",\"OMC\":\"Asia/Manila\",\"OMD\":\"Africa/Windhoek\",\"OME\":\"America/Anchorage\",\"OMF\":\"Asia/Amman\",\"OMG\":\"Africa/Windhoek\",\"OMH\":\"Asia/Tehran\",\"OMI\":\"Asia/Tehran\",\"OMJ\":\"Asia/Tokyo\",\"OMK\":\"America/Los_Angeles\",\"OML\":\"Pacific/Port_Moresby\",\"OMM\":\"Asia/Muscat\",\"OMN\":\"Asia/Kolkata\",\"OMO\":\"Europe/Sarajevo\",\"OMR\":\"Europe/Bucharest\",\"OMS\":\"Asia/Omsk\",\"OMY\":\"Asia/Phnom_Penh\",\"ONA\":\"America/Chicago\",\"ONB\":\"Pacific/Port_Moresby\",\"OND\":\"Africa/Windhoek\",\"ONE\":\"Pacific/Guadalcanal\",\"ONG\":\"Australia/Brisbane\",\"ONH\":\"America/New_York\",\"ONI\":\"Asia/Jayapura\",\"ONJ\":\"Asia/Tokyo\",\"ONK\":\"Asia/Yakutsk\",\"ONL\":\"America/Chicago\",\"ONM\":\"America/Denver\",\"ONN\":\"America/Anchorage\",\"ONO\":\"America/Los_Angeles\",\"ONP\":\"America/Los_Angeles\",\"ONQ\":\"Europe/Istanbul\",\"ONR\":\"Australia/Brisbane\",\"ONS\":\"Australia/Perth\",\"ONT\":\"America/Los_Angeles\",\"ONU\":\"Pacific/Fiji\",\"ONX\":\"America/Panama\",\"ONY\":\"America/Chicago\",\"OOA\":\"America/Chicago\",\"OOK\":\"America/Anchorage\",\"OOL\":\"Australia/Brisbane\",\"OOM\":\"Australia/Sydney\",\"OOR\":\"Australia/Brisbane\",\"OOT\":\"Pacific/Tarawa\",\"OPA\":\"Atlantic/Reykjavik\",\"OPB\":\"Pacific/Port_Moresby\",\"OPF\":\"America/New_York\",\"OPI\":\"Australia/Darwin\",\"OPL\":\"America/Chicago\",\"OPO\":\"Europe/Lisbon\",\"OPS\":\"America/Campo_Grande\",\"OPU\":\"Pacific/Port_Moresby\",\"OPW\":\"Africa/Windhoek\",\"ORA\":\"America/Argentina/Buenos_Aires\",\"ORB\":\"Europe/Stockholm\",\"ORC\":\"America/Bogota\",\"ORD\":\"America/Chicago\",\"ORE\":\"Europe/Paris\",\"ORF\":\"America/New_York\",\"ORG\":\"America/Paramaribo\",\"ORH\":\"America/New_York\",\"ORI\":\"America/Anchorage\",\"ORJ\":\"America/Guyana\",\"ORK\":\"Europe/Dublin\",\"ORL\":\"America/New_York\",\"ORM\":\"Europe/London\",\"ORN\":\"Africa/Algiers\",\"ORO\":\"America/Tegucigalpa\",\"ORP\":\"Africa/Gaborone\",\"ORQ\":\"America/New_York\",\"ORR\":\"Australia/Adelaide\",\"ORS\":\"Australia/Brisbane\",\"ORT\":\"America/Anchorage\",\"ORU\":\"America/La_Paz\",\"ORV\":\"America/Anchorage\",\"ORW\":\"Asia/Karachi\",\"ORX\":\"America/Porto_Velho\",\"ORY\":\"Europe/Paris\",\"ORZ\":\"America/Belize\",\"OSB\":\"America/Chicago\",\"OSC\":\"America/New_York\",\"OSD\":\"Europe/Stockholm\",\"OSE\":\"Pacific/Port_Moresby\",\"OSF\":\"Europe/Moscow\",\"OSG\":\"Pacific/Port_Moresby\",\"OSH\":\"America/Chicago\",\"OSI\":\"Europe/Zagreb\",\"OSJ\":\"Africa/Nairobi\",\"OSK\":\"Europe/Stockholm\",\"OSL\":\"Europe/Oslo\",\"OSM\":\"Asia/Baghdad\",\"OSN\":\"Asia/Seoul\",\"OSO\":\"Australia/Brisbane\",\"OSP\":\"Europe/Warsaw\",\"OSR\":\"Europe/Prague\",\"OSS\":\"Asia/Bishkek\",\"OST\":\"Europe/Brussels\",\"OSU\":\"America/New_York\",\"OSW\":\"Asia/Yekaterinburg\",\"OSX\":\"America/Chicago\",\"OSY\":\"Europe/Oslo\",\"OSZ\":\"Europe/Warsaw\",\"OTA\":\"Africa/Addis_Ababa\",\"OTC\":\"Africa/Ndjamena\",\"OTD\":\"America/Panama\",\"OTG\":\"America/Chicago\",\"OTH\":\"America/Los_Angeles\",\"OTI\":\"Asia/Jayapura\",\"OTJ\":\"Africa/Windhoek\",\"OTK\":\"America/Los_Angeles\",\"OTL\":\"Africa/Nouakchott\",\"OTM\":\"America/Chicago\",\"OTN\":\"America/Indiana/Indianapolis\",\"OTO\":\"America/Denver\",\"OTP\":\"Europe/Bucharest\",\"OTR\":\"America/Costa_Rica\",\"OTS\":\"America/Los_Angeles\",\"OTT\":\"America/Campo_Grande\",\"OTU\":\"America/Bogota\",\"OTV\":\"Pacific/Guadalcanal\",\"OTY\":\"Pacific/Bougainville\",\"OTZ\":\"America/Anchorage\",\"OUA\":\"Africa/Ouagadougou\",\"OUD\":\"Africa/Casablanca\",\"OUE\":\"Africa/Brazzaville\",\"OUG\":\"Africa/Ouagadougou\",\"OUH\":\"Africa/Johannesburg\",\"OUK\":\"Europe/London\",\"OUL\":\"Europe/Helsinki\",\"OUM\":\"Africa/Ndjamena\",\"OUN\":\"America/Chicago\",\"OUR\":\"Africa/Douala\",\"OUS\":\"America/Sao_Paulo\",\"OUT\":\"Africa/Ndjamena\",\"OUU\":\"Africa/Libreville\",\"OUZ\":\"Africa/Nouakchott\",\"OVA\":\"Indian/Antananarivo\",\"OVB\":\"Asia/Novosibirsk\",\"OVD\":\"Europe/Madrid\",\"OVE\":\"America/Los_Angeles\",\"OVG\":\"Africa/Johannesburg\",\"OVL\":\"America/Santiago\",\"OVR\":\"America/Argentina/Buenos_Aires\",\"OVS\":\"Asia/Yekaterinburg\",\"OWA\":\"America/Chicago\",\"OWB\":\"America/Chicago\",\"OWD\":\"America/New_York\",\"OWE\":\"Africa/Libreville\",\"OWK\":\"America/New_York\",\"OXB\":\"Africa/Bissau\",\"OXC\":\"America/New_York\",\"OXD\":\"America/New_York\",\"OXF\":\"Europe/London\",\"OXO\":\"Australia/Brisbane\",\"OXR\":\"America/Los_Angeles\",\"OXY\":\"Australia/Brisbane\",\"OYA\":\"America/Argentina/Buenos_Aires\",\"OYE\":\"Africa/Libreville\",\"OYG\":\"Africa/Kampala\",\"OYK\":\"America/Belem\",\"OYL\":\"Africa/Nairobi\",\"OYN\":\"Australia/Sydney\",\"OYO\":\"America/Argentina/Buenos_Aires\",\"OYP\":\"America/Cayenne\",\"OYS\":\"America/Los_Angeles\",\"OZA\":\"America/Chicago\",\"OZC\":\"Asia/Manila\",\"OZG\":\"Africa/Casablanca\",\"OZH\":\"Europe/Kiev\",\"OZI\":\"Europe/Madrid\",\"OZP\":\"Europe/Madrid\",\"OZR\":\"America/Chicago\",\"OZU\":\"Europe/Madrid\",\"OZZ\":\"Africa/Casablanca\",\"PAA\":\"Asia/Yangon\",\"PAB\":\"Asia/Kolkata\",\"PAC\":\"America/Panama\",\"PAD\":\"Europe/Berlin\",\"PAE\":\"America/Los_Angeles\",\"PAF\":\"Africa/Kampala\",\"PAG\":\"Asia/Manila\",\"PAH\":\"America/Chicago\",\"PAI\":\"Asia/Phnom_Penh\",\"PAJ\":\"Asia/Karachi\",\"PAK\":\"Pacific/Honolulu\",\"PAL\":\"America/Bogota\",\"PAM\":\"America/Chicago\",\"PAN\":\"Asia/Bangkok\",\"PAO\":\"America/Los_Angeles\",\"PAP\":\"America/Port-au-Prince\",\"PAQ\":\"America/Anchorage\",\"PAR\":\"Europe/Paris\",\"PAS\":\"Europe/Athens\",\"PAT\":\"Asia/Kolkata\",\"PAU\":\"Asia/Yangon\",\"PAV\":\"America/Belem\",\"PAW\":\"Pacific/Port_Moresby\",\"PAX\":\"America/Port-au-Prince\",\"PAY\":\"Asia/Kuala_Lumpur\",\"PAZ\":\"America/Mexico_City\",\"PBA\":\"America/Anchorage\",\"PBB\":\"America/Campo_Grande\",\"PBC\":\"America/Mexico_City\",\"PBD\":\"Asia/Kolkata\",\"PBE\":\"America/Bogota\",\"PBF\":\"America/Chicago\",\"PBG\":\"America/New_York\",\"PBH\":\"Asia/Thimphu\",\"PBI\":\"America/New_York\",\"PBJ\":\"Pacific/Efate\",\"PBK\":\"America/Anchorage\",\"PBL\":\"America/Caracas\",\"PBM\":\"America/Paramaribo\",\"PBN\":\"Africa/Luanda\",\"PBO\":\"Australia/Perth\",\"PBP\":\"America/Costa_Rica\",\"PBQ\":\"America/Porto_Velho\",\"PBR\":\"America/Guatemala\",\"PBS\":\"Asia/Bangkok\",\"PBT\":\"America/Asuncion\",\"PBU\":\"Asia/Yangon\",\"PBV\":\"America/Campo_Grande\",\"PBX\":\"America/Campo_Grande\",\"PBY\":\"Australia/Brisbane\",\"PBZ\":\"Africa/Johannesburg\",\"PCA\":\"America/Anchorage\",\"PCB\":\"Asia/Jakarta\",\"PCC\":\"America/Bogota\",\"PCD\":\"America/Chicago\",\"PCE\":\"America/Anchorage\",\"PCG\":\"America/Guatemala\",\"PCH\":\"America/Tegucigalpa\",\"PCJ\":\"America/Asuncion\",\"PCK\":\"America/Anchorage\",\"PCL\":\"America/Lima\",\"PCM\":\"America/Mexico_City\",\"PCN\":\"Pacific/Auckland\",\"PCO\":\"America/Mazatlan\",\"PCP\":\"Africa/Sao_Tome\",\"PCQ\":\"Asia/Vientiane\",\"PCR\":\"America/Bogota\",\"PCS\":\"America/Belem\",\"PCT\":\"America/New_York\",\"PCU\":\"America/Chicago\",\"PCV\":\"America/Tijuana\",\"PDA\":\"America/Bogota\",\"PDB\":\"America/Anchorage\",\"PDC\":\"Pacific/Noumea\",\"PDD\":\"Africa/Maputo\",\"PDE\":\"Australia/Adelaide\",\"PDF\":\"America/Belem\",\"PDG\":\"Asia/Jakarta\",\"PDI\":\"Pacific/Port_Moresby\",\"PDK\":\"America/New_York\",\"PDL\":\"Atlantic/Azores\",\"PDM\":\"America/Panama\",\"PDN\":\"Australia/Adelaide\",\"PDO\":\"Asia/Jakarta\",\"PDP\":\"America/Montevideo\",\"PDR\":\"America/Belem\",\"PDS\":\"America/Matamoros\",\"PDT\":\"America/Los_Angeles\",\"PDU\":\"America/Montevideo\",\"PDV\":\"Europe/Sofia\",\"PDX\":\"America/Los_Angeles\",\"PDZ\":\"America/Caracas\",\"PEA\":\"Australia/Adelaide\",\"PEB\":\"Africa/Maputo\",\"PEC\":\"America/Anchorage\",\"PED\":\"Europe/Prague\",\"PEE\":\"Asia/Yekaterinburg\",\"PEF\":\"Europe/Berlin\",\"PEG\":\"Europe/Rome\",\"PEH\":\"America/Argentina/Buenos_Aires\",\"PEI\":\"America/Bogota\",\"PEK\":\"Asia/Shanghai\",\"PEL\":\"Africa/Maseru\",\"PEM\":\"America/Lima\",\"PEN\":\"Asia/Kuala_Lumpur\",\"PEP\":\"Australia/Darwin\",\"PEQ\":\"America/Chicago\",\"PER\":\"Australia/Perth\",\"PES\":\"Europe/Moscow\",\"PET\":\"America/Sao_Paulo\",\"PEU\":\"America/Tegucigalpa\",\"PEV\":\"Europe/Budapest\",\"PEW\":\"Asia/Karachi\",\"PEX\":\"Europe/Moscow\",\"PEY\":\"Australia/Adelaide\",\"PEZ\":\"Europe/Moscow\",\"PFA\":\"America/Anchorage\",\"PFB\":\"America/Sao_Paulo\",\"PFC\":\"America/Los_Angeles\",\"PFD\":\"America/Anchorage\",\"PFJ\":\"Atlantic/Reykjavik\",\"PFO\":\"Asia/Nicosia\",\"PFQ\":\"Asia/Tehran\",\"PFR\":\"Africa/Lubumbashi\",\"PGA\":\"America/Phoenix\",\"PGB\":\"Pacific/Port_Moresby\",\"PGC\":\"America/New_York\",\"PGD\":\"America/New_York\",\"PGE\":\"Pacific/Port_Moresby\",\"PGF\":\"Europe/Paris\",\"PGG\":\"America/Belem\",\"PGH\":\"Asia/Kolkata\",\"PGI\":\"Africa/Luanda\",\"PGK\":\"Asia/Jakarta\",\"PGL\":\"America/Chicago\",\"PGM\":\"America/Anchorage\",\"PGN\":\"Pacific/Port_Moresby\",\"PGO\":\"America/Denver\",\"PGP\":\"Africa/Sao_Tome\",\"PGQ\":\"Asia/Makassar\",\"PGR\":\"America/Chicago\",\"PGS\":\"America/Phoenix\",\"PGU\":\"Asia/Tehran\",\"PGV\":\"America/New_York\",\"PGX\":\"Europe/Paris\",\"PGZ\":\"America/Sao_Paulo\",\"PHA\":\"Asia/Ho_Chi_Minh\",\"PHB\":\"America/Belem\",\"PHC\":\"Africa/Lagos\",\"PHD\":\"America/New_York\",\"PHE\":\"Australia/Perth\",\"PHF\":\"America/New_York\",\"PHG\":\"Africa/Lagos\",\"PHH\":\"Asia/Ho_Chi_Minh\",\"PHI\":\"America/Belem\",\"PHJ\":\"Australia/Sydney\",\"PHK\":\"America/New_York\",\"PHL\":\"America/New_York\",\"PHM\":\"Europe/Berlin\",\"PHN\":\"America/New_York\",\"PHO\":\"America/Anchorage\",\"PHP\":\"America/Chicago\",\"PHQ\":\"Australia/Brisbane\",\"PHR\":\"Pacific/Fiji\",\"PHS\":\"Asia/Bangkok\",\"PHT\":\"America/Chicago\",\"PHU\":\"Asia/Ho_Chi_Minh\",\"PHW\":\"Africa/Johannesburg\",\"PHX\":\"America/Phoenix\",\"PHY\":\"Asia/Bangkok\",\"PHZ\":\"Asia/Bangkok\",\"PIA\":\"America/Chicago\",\"PIB\":\"America/Chicago\",\"PIC\":\"America/Grand_Turk\",\"PID\":\"America/Nassau\",\"PIE\":\"America/New_York\",\"PIF\":\"Asia/Taipei\",\"PIG\":\"America/Porto_Velho\",\"PIH\":\"America/Denver\",\"PIK\":\"Europe/London\",\"PIL\":\"America/Asuncion\",\"PIM\":\"America/New_York\",\"PIN\":\"America/Porto_Velho\",\"PIO\":\"America/Lima\",\"PIP\":\"America/Anchorage\",\"PIQ\":\"America/Guyana\",\"PIR\":\"America/Chicago\",\"PIS\":\"Europe/Paris\",\"PIT\":\"America/New_York\",\"PIU\":\"America/Lima\",\"PIV\":\"America/Sao_Paulo\",\"PIW\":\"America/Winnipeg\",\"PIX\":\"Atlantic/Azores\",\"PIZ\":\"America/Anchorage\",\"PJA\":\"Europe/Stockholm\",\"PJB\":\"America/Phoenix\",\"PJC\":\"America/Asuncion\",\"PJG\":\"Asia/Karachi\",\"PJM\":\"America/Costa_Rica\",\"PJS\":\"America/Anchorage\",\"PKA\":\"America/Anchorage\",\"PKB\":\"America/New_York\",\"PKC\":\"Asia/Kamchatka\",\"PKD\":\"America/Chicago\",\"PKE\":\"Australia/Sydney\",\"PKF\":\"America/Chicago\",\"PKG\":\"Asia/Kuala_Lumpur\",\"PKH\":\"Europe/Athens\",\"PKJ\":\"America/Guatemala\",\"PKK\":\"Asia/Yangon\",\"PKL\":\"Pacific/Auckland\",\"PKM\":\"America/Guyana\",\"PKN\":\"Asia/Jakarta\",\"PKO\":\"Africa/Porto-Novo\",\"PKP\":\"Pacific/Tahiti\",\"PKR\":\"Asia/Kathmandu\",\"PKS\":\"Asia/Vientiane\",\"PKT\":\"Australia/Darwin\",\"PKU\":\"Asia/Jakarta\",\"PKV\":\"Europe/Moscow\",\"PKW\":\"Africa/Gaborone\",\"PKX\":\"Asia/Shanghai\",\"PKY\":\"Asia/Jakarta\",\"PKZ\":\"Asia/Vientiane\",\"PLA\":\"America/Bogota\",\"PLB\":\"America/New_York\",\"PLC\":\"America/Bogota\",\"PLD\":\"America/Costa_Rica\",\"PLE\":\"Pacific/Port_Moresby\",\"PLF\":\"Africa/Ndjamena\",\"PLH\":\"Europe/London\",\"PLI\":\"America/St_Vincent\",\"PLJ\":\"America/Belize\",\"PLK\":\"America/Chicago\",\"PLL\":\"America/Porto_Velho\",\"PLM\":\"Asia/Jakarta\",\"PLN\":\"America/New_York\",\"PLO\":\"Australia/Adelaide\",\"PLP\":\"America/Panama\",\"PLQ\":\"Europe/Vilnius\",\"PLR\":\"America/Chicago\",\"PLS\":\"America/Grand_Turk\",\"PLT\":\"America/Bogota\",\"PLU\":\"America/Sao_Paulo\",\"PLV\":\"Europe/Kiev\",\"PLW\":\"Asia/Makassar\",\"PLX\":\"Asia/Almaty\",\"PLY\":\"America/Indiana/Indianapolis\",\"PLZ\":\"Africa/Johannesburg\",\"PMA\":\"Africa/Dar_es_Salaam\",\"PMB\":\"America/Chicago\",\"PMC\":\"America/Santiago\",\"PMD\":\"America/Los_Angeles\",\"PME\":\"Europe/London\",\"PMF\":\"Europe/Rome\",\"PMG\":\"America/Campo_Grande\",\"PMH\":\"America/New_York\",\"PMI\":\"Europe/Madrid\",\"PMK\":\"Australia/Brisbane\",\"PML\":\"America/Anchorage\",\"PMM\":\"Asia/Bangkok\",\"PMN\":\"Pacific/Port_Moresby\",\"PMO\":\"Europe/Rome\",\"PMP\":\"Pacific/Port_Moresby\",\"PMQ\":\"America/Argentina/Buenos_Aires\",\"PMR\":\"Pacific/Auckland\",\"PMS\":\"Asia/Damascus\",\"PMT\":\"America/Guyana\",\"PMU\":\"America/Anchorage\",\"PMV\":\"America/Caracas\",\"PMW\":\"America/Belem\",\"PMX\":\"America/New_York\",\"PMY\":\"America/Argentina/Buenos_Aires\",\"PMZ\":\"America/Costa_Rica\",\"PNA\":\"Europe/Madrid\",\"PNB\":\"America/Belem\",\"PNC\":\"America/Chicago\",\"PND\":\"America/Belize\",\"PNE\":\"America/New_York\",\"PNF\":\"America/Anchorage\",\"PNG\":\"America/Sao_Paulo\",\"PNH\":\"Asia/Phnom_Penh\",\"PNI\":\"Pacific/Pohnpei\",\"PNJ\":\"Asia/Shanghai\",\"PNK\":\"Asia/Jakarta\",\"PNL\":\"Europe/Rome\",\"PNN\":\"America/New_York\",\"PNO\":\"America/Mexico_City\",\"PNP\":\"Pacific/Port_Moresby\",\"PNQ\":\"Asia/Kolkata\",\"PNR\":\"Africa/Brazzaville\",\"PNS\":\"America/Chicago\",\"PNT\":\"America/Santiago\",\"PNU\":\"America/Denver\",\"PNV\":\"Europe/Vilnius\",\"PNX\":\"America/Chicago\",\"PNY\":\"Asia/Kolkata\",\"PNZ\":\"America/Belem\",\"POA\":\"America/Sao_Paulo\",\"POB\":\"America/New_York\",\"POC\":\"America/Los_Angeles\",\"POD\":\"Africa/Dakar\",\"POE\":\"America/Chicago\",\"POF\":\"America/Chicago\",\"POG\":\"Africa/Libreville\",\"POH\":\"America/Chicago\",\"POI\":\"America/La_Paz\",\"POJ\":\"America/Sao_Paulo\",\"POL\":\"Africa/Maputo\",\"POM\":\"Pacific/Port_Moresby\",\"PON\":\"America/Guatemala\",\"POO\":\"America/Sao_Paulo\",\"POP\":\"America/Santo_Domingo\",\"POR\":\"Europe/Helsinki\",\"POS\":\"America/Port_of_Spain\",\"POT\":\"America/Jamaica\",\"POU\":\"America/New_York\",\"POV\":\"Europe/Bratislava\",\"POW\":\"Europe/Ljubljana\",\"POX\":\"Europe/Paris\",\"POY\":\"America/Denver\",\"POZ\":\"Europe/Warsaw\",\"PPA\":\"America/Chicago\",\"PPB\":\"America/Sao_Paulo\",\"PPC\":\"America/Anchorage\",\"PPD\":\"America/Puerto_Rico\",\"PPE\":\"America/Hermosillo\",\"PPF\":\"America/Chicago\",\"PPG\":\"Pacific/Pago_Pago\",\"PPH\":\"America/Caracas\",\"PPI\":\"Australia/Adelaide\",\"PPJ\":\"Asia/Jakarta\",\"PPK\":\"Asia/Almaty\",\"PPL\":\"Asia/Kathmandu\",\"PPM\":\"America/New_York\",\"PPN\":\"America/Bogota\",\"PPO\":\"America/Nassau\",\"PPP\":\"Australia/Brisbane\",\"PPQ\":\"Pacific/Auckland\",\"PPR\":\"Asia/Jakarta\",\"PPS\":\"Asia/Manila\",\"PPT\":\"Pacific/Tahiti\",\"PPU\":\"Asia/Yangon\",\"PPV\":\"America/Anchorage\",\"PPW\":\"Europe/London\",\"PPX\":\"Pacific/Port_Moresby\",\"PPY\":\"America/Sao_Paulo\",\"PPZ\":\"America/Caracas\",\"PQC\":\"Asia/Ho_Chi_Minh\",\"PQI\":\"America/New_York\",\"PQM\":\"America/Mexico_City\",\"PQQ\":\"Australia/Sydney\",\"PQS\":\"America/Anchorage\",\"PQT\":\"America/Godthab\",\"PRA\":\"America/Argentina/Buenos_Aires\",\"PRB\":\"America/Los_Angeles\",\"PRC\":\"America/Phoenix\",\"PRD\":\"Australia/Perth\",\"PRE\":\"America/Bogota\",\"PRF\":\"America/Anchorage\",\"PRG\":\"Europe/Prague\",\"PRH\":\"Asia/Bangkok\",\"PRI\":\"Indian/Mahe\",\"PRJ\":\"Europe/Rome\",\"PRK\":\"Africa/Johannesburg\",\"PRL\":\"America/Anchorage\",\"PRM\":\"Europe/Lisbon\",\"PRN\":\"Europe/Belgrade\",\"PRO\":\"America/Chicago\",\"PRP\":\"Europe/Paris\",\"PRQ\":\"America/Argentina/Buenos_Aires\",\"PRR\":\"America/Guyana\",\"PRS\":\"Pacific/Guadalcanal\",\"PRU\":\"Asia/Yangon\",\"PRV\":\"Europe/Prague\",\"PRW\":\"America/Chicago\",\"PRX\":\"America/Chicago\",\"PRY\":\"Africa/Johannesburg\",\"PRZ\":\"America/Los_Angeles\",\"PSA\":\"Europe/Rome\",\"PSB\":\"America/New_York\",\"PSC\":\"America/Los_Angeles\",\"PSD\":\"Africa/Cairo\",\"PSE\":\"America/Puerto_Rico\",\"PSF\":\"America/New_York\",\"PSG\":\"America/Anchorage\",\"PSH\":\"Europe/Berlin\",\"PSI\":\"Asia/Karachi\",\"PSJ\":\"Asia/Makassar\",\"PSK\":\"America/New_York\",\"PSL\":\"Europe/London\",\"PSM\":\"America/New_York\",\"PSN\":\"America/Chicago\",\"PSO\":\"America/Bogota\",\"PSP\":\"America/Los_Angeles\",\"PSQ\":\"America/New_York\",\"PSR\":\"Europe/Rome\",\"PSS\":\"America/Argentina/Buenos_Aires\",\"PST\":\"America/Havana\",\"PSU\":\"Asia/Jakarta\",\"PSV\":\"Europe/London\",\"PSW\":\"America/Sao_Paulo\",\"PSX\":\"America/Chicago\",\"PSY\":\"Atlantic/Stanley\",\"PSZ\":\"America/La_Paz\",\"PTA\":\"America/Anchorage\",\"PTB\":\"America/New_York\",\"PTC\":\"America/Anchorage\",\"PTD\":\"America/Anchorage\",\"PTF\":\"Pacific/Fiji\",\"PTG\":\"Africa/Johannesburg\",\"PTH\":\"America/Anchorage\",\"PTI\":\"Australia/Brisbane\",\"PTJ\":\"Australia/Sydney\",\"PTK\":\"America/New_York\",\"PTL\":\"America/Anchorage\",\"PTM\":\"America/Caracas\",\"PTN\":\"America/Chicago\",\"PTO\":\"America/Sao_Paulo\",\"PTP\":\"America/Guadeloupe\",\"PTQ\":\"America/Belem\",\"PTR\":\"America/Anchorage\",\"PTS\":\"America/Chicago\",\"PTT\":\"America/Chicago\",\"PTU\":\"America/Anchorage\",\"PTV\":\"America/Los_Angeles\",\"PTW\":\"America/New_York\",\"PTX\":\"America/Bogota\",\"PTY\":\"America/Panama\",\"PTZ\":\"America/Guayaquil\",\"PUA\":\"Pacific/Port_Moresby\",\"PUB\":\"America/Denver\",\"PUC\":\"America/Denver\",\"PUD\":\"America/Argentina/Buenos_Aires\",\"PUE\":\"America/Panama\",\"PUF\":\"Europe/Paris\",\"PUG\":\"Australia/Adelaide\",\"PUH\":\"America/Mexico_City\",\"PUI\":\"Pacific/Port_Moresby\",\"PUJ\":\"America/Santo_Domingo\",\"PUK\":\"Pacific/Tahiti\",\"PUL\":\"America/Los_Angeles\",\"PUM\":\"Asia/Makassar\",\"PUN\":\"Africa/Lubumbashi\",\"PUO\":\"America/Anchorage\",\"PUP\":\"Africa/Ouagadougou\",\"PUQ\":\"America/Santiago\",\"PUR\":\"America/La_Paz\",\"PUS\":\"Asia/Seoul\",\"PUT\":\"Asia/Kolkata\",\"PUU\":\"America/Bogota\",\"PUV\":\"Pacific/Noumea\",\"PUW\":\"America/Los_Angeles\",\"PUX\":\"America/Santiago\",\"PUY\":\"Europe/Zagreb\",\"PUZ\":\"America/Managua\",\"PVA\":\"America/Bogota\",\"PVC\":\"America/New_York\",\"PVD\":\"America/New_York\",\"PVE\":\"America/Panama\",\"PVF\":\"America/Los_Angeles\",\"PVG\":\"Asia/Shanghai\",\"PVH\":\"America/Porto_Velho\",\"PVI\":\"America/Sao_Paulo\",\"PVK\":\"Europe/Athens\",\"PVL\":\"America/New_York\",\"PVN\":\"Europe/Sofia\",\"PVO\":\"America/Guayaquil\",\"PVR\":\"America/Mexico_City\",\"PVS\":\"Asia/Kamchatka\",\"PVU\":\"America/Denver\",\"PVW\":\"America/Chicago\",\"PVY\":\"America/Anchorage\",\"PVZ\":\"America/New_York\",\"PWA\":\"America/Chicago\",\"PWD\":\"America/Denver\",\"PWE\":\"Asia/Anadyr\",\"PWI\":\"Africa/Addis_Ababa\",\"PWK\":\"America/Chicago\",\"PWL\":\"Asia/Jakarta\",\"PWM\":\"America/New_York\",\"PWN\":\"America/Nassau\",\"PWO\":\"Africa/Lubumbashi\",\"PWQ\":\"Asia/Almaty\",\"PWR\":\"America/Anchorage\",\"PWT\":\"America/Los_Angeles\",\"PWY\":\"America/Denver\",\"PXA\":\"Asia/Jakarta\",\"PXH\":\"Australia/Adelaide\",\"PXL\":\"America/Phoenix\",\"PXM\":\"America/Mexico_City\",\"PXO\":\"Europe/Lisbon\",\"PXR\":\"Asia/Bangkok\",\"PXS\":\"Europe/Madrid\",\"PXU\":\"Asia/Ho_Chi_Minh\",\"PYA\":\"America/Bogota\",\"PYB\":\"Asia/Kolkata\",\"PYC\":\"America/Panama\",\"PYE\":\"Pacific/Rarotonga\",\"PYG\":\"Asia/Kolkata\",\"PYH\":\"America/Caracas\",\"PYJ\":\"Asia/Yakutsk\",\"PYL\":\"America/Anchorage\",\"PYM\":\"America/New_York\",\"PYN\":\"America/Bogota\",\"PYO\":\"America/Guayaquil\",\"PYR\":\"Europe/Athens\",\"PYS\":\"America/Los_Angeles\",\"PYV\":\"America/Panama\",\"PYX\":\"Asia/Bangkok\",\"PYY\":\"Asia/Bangkok\",\"PZA\":\"America/Bogota\",\"PZB\":\"Africa/Johannesburg\",\"PZE\":\"Europe/London\",\"PZH\":\"Asia/Karachi\",\"PZI\":\"Asia/Shanghai\",\"PZK\":\"Pacific/Rarotonga\",\"PZL\":\"Africa/Johannesburg\",\"PZO\":\"America/Caracas\",\"PZU\":\"Africa/Khartoum\",\"PZY\":\"Europe/Bratislava\",\"QAC\":\"America/Sao_Paulo\",\"QAK\":\"America/Sao_Paulo\",\"QBC\":\"America/Vancouver\",\"QBX\":\"America/Belem\",\"QCJ\":\"America/Sao_Paulo\",\"QCN\":\"America/Sao_Paulo\",\"QCP\":\"America/Belem\",\"QCR\":\"America/Sao_Paulo\",\"QCU\":\"America/Godthab\",\"QDB\":\"America/Campo_Grande\",\"QDC\":\"America/Sao_Paulo\",\"QDF\":\"America/Sao_Paulo\",\"QDP\":\"America/Campo_Grande\",\"QDV\":\"America/Sao_Paulo\",\"QET\":\"Asia/Seoul\",\"QFG\":\"America/Godthab\",\"QFI\":\"America/Godthab\",\"QFK\":\"Europe/Oslo\",\"QFN\":\"America/Godthab\",\"QFQ\":\"Europe/Oslo\",\"QFT\":\"America/Godthab\",\"QFX\":\"America/Godthab\",\"QGC\":\"America/Sao_Paulo\",\"QGF\":\"America/Sao_Paulo\",\"QGP\":\"America/Sao_Paulo\",\"QGQ\":\"America/Godthab\",\"QGU\":\"Asia/Tokyo\",\"QHB\":\"America/Sao_Paulo\",\"QHN\":\"America/Sao_Paulo\",\"QHV\":\"America/Sao_Paulo\",\"QID\":\"America/Sao_Paulo\",\"QIG\":\"America/Belem\",\"QIQ\":\"America/Sao_Paulo\",\"QIT\":\"America/Sao_Paulo\",\"QJE\":\"America/Godthab\",\"QJH\":\"America/Godthab\",\"QJI\":\"America/Godthab\",\"QLA\":\"Europe/London\",\"QLR\":\"Europe/Lisbon\",\"QLX\":\"Europe/Vienna\",\"QMF\":\"America/Sao_Paulo\",\"QMK\":\"America/Godthab\",\"QMM\":\"Europe/Rome\",\"QMQ\":\"Africa/Tripoli\",\"QMV\":\"America/New_York\",\"QNS\":\"America/Sao_Paulo\",\"QNV\":\"America/Sao_Paulo\",\"QOA\":\"America/Sao_Paulo\",\"QOQ\":\"America/Godthab\",\"QOW\":\"Africa/Lagos\",\"QPG\":\"Asia/Singapore\",\"QPK\":\"Europe/Berlin\",\"QPW\":\"America/Godthab\",\"QRA\":\"Africa/Johannesburg\",\"QRC\":\"Pacific/Easter\",\"QRE\":\"America/Campo_Grande\",\"QRF\":\"America/Argentina/Buenos_Aires\",\"QRH\":\"Europe/Amsterdam\",\"QRM\":\"Australia/Brisbane\",\"QRO\":\"America/Mexico_City\",\"QRR\":\"Australia/Brisbane\",\"QRW\":\"Africa/Lagos\",\"QRY\":\"America/Godthab\",\"QSC\":\"America/Sao_Paulo\",\"QSF\":\"Africa/Algiers\",\"QSM\":\"Europe/Berlin\",\"QSR\":\"Europe/Rome\",\"QSZ\":\"Asia/Shanghai\",\"QTL\":\"America/Sao_Paulo\",\"QUB\":\"Africa/Tripoli\",\"QUF\":\"Europe/Tallinn\",\"QUG\":\"Europe/London\",\"QUN\":\"Asia/Seoul\",\"QUO\":\"Africa/Lagos\",\"QUP\":\"America/Godthab\",\"QUT\":\"Asia/Tokyo\",\"QUV\":\"America/Godthab\",\"QUW\":\"America/Godthab\",\"QVP\":\"America/Sao_Paulo\",\"QWG\":\"America/New_York\",\"QXC\":\"America/Belem\",\"QXD\":\"America/Sao_Paulo\",\"QYI\":\"Europe/Amsterdam\",\"QZN\":\"Africa/Algiers\",\"RAA\":\"Pacific/Port_Moresby\",\"RAB\":\"Pacific/Port_Moresby\",\"RAC\":\"America/Chicago\",\"RAD\":\"America/Tortola\",\"RAE\":\"Asia/Riyadh\",\"RAF\":\"Africa/Cairo\",\"RAG\":\"Pacific/Auckland\",\"RAH\":\"Asia/Riyadh\",\"RAI\":\"Atlantic/Cape_Verde\",\"RAJ\":\"Asia/Kolkata\",\"RAK\":\"Africa/Casablanca\",\"RAL\":\"America/Los_Angeles\",\"RAM\":\"Australia/Darwin\",\"RAN\":\"Europe/Rome\",\"RAO\":\"America/Sao_Paulo\",\"RAP\":\"America/Denver\",\"RAQ\":\"Asia/Makassar\",\"RAR\":\"Pacific/Rarotonga\",\"RAS\":\"Asia/Tehran\",\"RAT\":\"Asia/Yekaterinburg\",\"RAU\":\"Asia/Dhaka\",\"RAV\":\"America/Bogota\",\"RAW\":\"Pacific/Bougainville\",\"RAX\":\"Pacific/Port_Moresby\",\"RAY\":\"Europe/London\",\"RAZ\":\"Asia/Karachi\",\"RBA\":\"Africa/Casablanca\",\"RBB\":\"America/Porto_Velho\",\"RBC\":\"Australia/Sydney\",\"RBD\":\"America/Chicago\",\"RBE\":\"Asia/Phnom_Penh\",\"RBF\":\"America/Los_Angeles\",\"RBG\":\"America/Los_Angeles\",\"RBH\":\"America/Anchorage\",\"RBI\":\"Pacific/Fiji\",\"RBJ\":\"Asia/Tokyo\",\"RBK\":\"America/Los_Angeles\",\"RBL\":\"America/Los_Angeles\",\"RBM\":\"Europe/Berlin\",\"RBN\":\"America/New_York\",\"RBO\":\"America/La_Paz\",\"RBP\":\"Pacific/Port_Moresby\",\"RBQ\":\"America/La_Paz\",\"RBR\":\"America/Rio_Branco\",\"RBS\":\"Australia/Sydney\",\"RBT\":\"Africa/Nairobi\",\"RBU\":\"Australia/Perth\",\"RBV\":\"Pacific/Guadalcanal\",\"RBW\":\"America/New_York\",\"RBX\":\"Africa/Juba\",\"RBY\":\"America/Anchorage\",\"RCA\":\"America/Denver\",\"RCB\":\"Africa/Johannesburg\",\"RCE\":\"America/Los_Angeles\",\"RCH\":\"America/Bogota\",\"RCK\":\"America/Chicago\",\"RCL\":\"Pacific/Efate\",\"RCM\":\"Australia/Brisbane\",\"RCN\":\"Australia/Adelaide\",\"RCO\":\"Europe/Paris\",\"RCP\":\"America/Anchorage\",\"RCQ\":\"America/Argentina/Buenos_Aires\",\"RCR\":\"America/Indiana/Indianapolis\",\"RCS\":\"Europe/London\",\"RCT\":\"America/New_York\",\"RCU\":\"America/Argentina/Buenos_Aires\",\"RCY\":\"America/Nassau\",\"RDA\":\"Australia/Darwin\",\"RDB\":\"America/Anchorage\",\"RDC\":\"America/Belem\",\"RDD\":\"America/Los_Angeles\",\"RDE\":\"Asia/Jayapura\",\"RDG\":\"America/New_York\",\"RDM\":\"America/Los_Angeles\",\"RDN\":\"Asia/Kuala_Lumpur\",\"RDO\":\"Europe/Warsaw\",\"RDP\":\"Asia/Kolkata\",\"RDR\":\"America/Chicago\",\"RDS\":\"America/Argentina/Buenos_Aires\",\"RDT\":\"Africa/Dakar\",\"RDU\":\"America/New_York\",\"RDV\":\"America/Anchorage\",\"RDZ\":\"Europe/Paris\",\"REA\":\"Pacific/Tahiti\",\"REB\":\"Europe/Berlin\",\"REC\":\"America/Belem\",\"RED\":\"America/New_York\",\"REE\":\"America/Chicago\",\"REG\":\"Europe/Rome\",\"REH\":\"America/New_York\",\"REI\":\"America/Cayenne\",\"REL\":\"America/Argentina/Buenos_Aires\",\"REN\":\"Asia/Yekaterinburg\",\"REO\":\"America/Los_Angeles\",\"REP\":\"Asia/Phnom_Penh\",\"RER\":\"America/Guatemala\",\"RES\":\"America/Argentina/Buenos_Aires\",\"RET\":\"Europe/Oslo\",\"REU\":\"Europe/Madrid\",\"REW\":\"Asia/Kolkata\",\"REX\":\"America/Matamoros\",\"REY\":\"America/La_Paz\",\"REZ\":\"America/Sao_Paulo\",\"RFA\":\"Africa/Bangui\",\"RFD\":\"America/Chicago\",\"RFG\":\"America/Chicago\",\"RFK\":\"America/Chicago\",\"RFN\":\"Atlantic/Reykjavik\",\"RFP\":\"Pacific/Tahiti\",\"RFR\":\"America/Costa_Rica\",\"RFS\":\"America/Managua\",\"RGA\":\"America/Argentina/Buenos_Aires\",\"RGE\":\"Pacific/Port_Moresby\",\"RGH\":\"Asia/Kolkata\",\"RGI\":\"Pacific/Tahiti\",\"RGK\":\"Asia/Krasnoyarsk\",\"RGL\":\"America/Argentina/Buenos_Aires\",\"RGN\":\"Asia/Yangon\",\"RGR\":\"America/Chicago\",\"RGS\":\"Europe/Madrid\",\"RGT\":\"Asia/Jakarta\",\"RHA\":\"Atlantic/Reykjavik\",\"RHD\":\"America/Argentina/Buenos_Aires\",\"RHE\":\"Europe/Paris\",\"RHG\":\"Africa/Kigali\",\"RHI\":\"America/Chicago\",\"RHL\":\"Australia/Perth\",\"RHN\":\"Africa/Windhoek\",\"RHO\":\"Europe/Athens\",\"RHP\":\"Asia/Kathmandu\",\"RHT\":\"Asia/Shanghai\",\"RHV\":\"America/Los_Angeles\",\"RIA\":\"America/Sao_Paulo\",\"RIB\":\"America/La_Paz\",\"RIC\":\"America/New_York\",\"RID\":\"America/Indiana/Indianapolis\",\"RIE\":\"America/Chicago\",\"RIF\":\"America/Denver\",\"RIG\":\"America/Sao_Paulo\",\"RIH\":\"America/Panama\",\"RIJ\":\"America/Lima\",\"RIL\":\"America/Denver\",\"RIM\":\"America/Lima\",\"RIN\":\"Pacific/Guadalcanal\",\"RIR\":\"America/Los_Angeles\",\"RIS\":\"Asia/Tokyo\",\"RIT\":\"America/Panama\",\"RIV\":\"America/Los_Angeles\",\"RIW\":\"America/Denver\",\"RIX\":\"Europe/Riga\",\"RIY\":\"Asia/Aden\",\"RIZ\":\"Asia/Shanghai\",\"RJA\":\"Asia/Kolkata\",\"RJB\":\"Asia/Kathmandu\",\"RJH\":\"Asia/Dhaka\",\"RJI\":\"Asia/Kolkata\",\"RJK\":\"Europe/Zagreb\",\"RJL\":\"Europe/Madrid\",\"RJM\":\"Asia/Jayapura\",\"RJN\":\"Asia/Tehran\",\"RKA\":\"Pacific/Tahiti\",\"RKC\":\"America/Los_Angeles\",\"RKD\":\"America/New_York\",\"RKE\":\"Europe/Copenhagen\",\"RKH\":\"America/New_York\",\"RKI\":\"Asia/Jakarta\",\"RKO\":\"Asia/Jakarta\",\"RKP\":\"America/Chicago\",\"RKR\":\"America/Chicago\",\"RKS\":\"America/Denver\",\"RKT\":\"Asia/Dubai\",\"RKU\":\"Pacific/Port_Moresby\",\"RKV\":\"Atlantic/Reykjavik\",\"RKW\":\"America/New_York\",\"RKY\":\"Australia/Brisbane\",\"RKZ\":\"Asia/Shanghai\",\"RLA\":\"America/Chicago\",\"RLD\":\"America/Los_Angeles\",\"RLG\":\"Europe/Berlin\",\"RLI\":\"America/Chicago\",\"RLK\":\"Asia/Shanghai\",\"RLO\":\"America/Argentina/Buenos_Aires\",\"RLP\":\"Australia/Brisbane\",\"RLR\":\"Indian/Antananarivo\",\"RLT\":\"Africa/Niamey\",\"RLU\":\"America/Anchorage\",\"RMA\":\"Australia/Brisbane\",\"RMB\":\"Asia/Muscat\",\"RMC\":\"America/Chicago\",\"RMD\":\"Asia/Kolkata\",\"RME\":\"America/New_York\",\"RMF\":\"Africa/Cairo\",\"RMG\":\"America/New_York\",\"RMI\":\"Europe/Rome\",\"RMK\":\"Australia/Adelaide\",\"RML\":\"Asia/Colombo\",\"RMN\":\"Pacific/Port_Moresby\",\"RMP\":\"America/Anchorage\",\"RMQ\":\"Asia/Taipei\",\"RMS\":\"Europe/Berlin\",\"RMT\":\"Pacific/Gambier\",\"RMU\":\"Europe/Madrid\",\"RMY\":\"America/Los_Angeles\",\"RNA\":\"Pacific/Guadalcanal\",\"RNB\":\"Europe/Stockholm\",\"RNC\":\"America/Chicago\",\"RND\":\"America/Chicago\",\"RNE\":\"Europe/Paris\",\"RNG\":\"America/Denver\",\"RNH\":\"America/Chicago\",\"RNI\":\"America/Managua\",\"RNJ\":\"Asia/Tokyo\",\"RNL\":\"Pacific/Guadalcanal\",\"RNM\":\"Asia/Muscat\",\"RNN\":\"Europe/Copenhagen\",\"RNO\":\"America/Los_Angeles\",\"RNP\":\"Pacific/Majuro\",\"RNR\":\"Pacific/Port_Moresby\",\"RNS\":\"Europe/Paris\",\"RNT\":\"America/Los_Angeles\",\"RNU\":\"Asia/Kuala_Lumpur\",\"RNZ\":\"America/Indiana/Indianapolis\",\"ROA\":\"America/New_York\",\"ROB\":\"Africa/Monrovia\",\"ROC\":\"America/New_York\",\"ROD\":\"Africa/Johannesburg\",\"ROF\":\"America/Los_Angeles\",\"ROG\":\"America/Chicago\",\"ROH\":\"Australia/Brisbane\",\"ROI\":\"Asia/Bangkok\",\"ROK\":\"Australia/Brisbane\",\"ROL\":\"America/Denver\",\"RON\":\"America/Bogota\",\"ROO\":\"America/Campo_Grande\",\"ROP\":\"Pacific/Saipan\",\"ROR\":\"Pacific/Palau\",\"ROS\":\"America/Argentina/Buenos_Aires\",\"ROT\":\"Pacific/Auckland\",\"ROU\":\"Europe/Sofia\",\"ROV\":\"Europe/Moscow\",\"ROW\":\"America/Denver\",\"ROX\":\"America/Chicago\",\"ROY\":\"America/Argentina/Buenos_Aires\",\"ROZ\":\"Europe/Madrid\",\"RPA\":\"Asia/Kathmandu\",\"RPB\":\"Australia/Darwin\",\"RPM\":\"Australia/Darwin\",\"RPN\":\"Asia/Jerusalem\",\"RPR\":\"Asia/Kolkata\",\"RPV\":\"Australia/Darwin\",\"RPX\":\"America/Denver\",\"RQA\":\"Asia/Shanghai\",\"RRA\":\"Europe/Madrid\",\"RRE\":\"Australia/Adelaide\",\"RRG\":\"Indian/Mauritius\",\"RRI\":\"Pacific/Guadalcanal\",\"RRJ\":\"America/Sao_Paulo\",\"RRK\":\"Asia/Kolkata\",\"RRL\":\"America/Chicago\",\"RRM\":\"Africa/Maputo\",\"RRN\":\"America/Belem\",\"RRO\":\"Europe/Rome\",\"RRR\":\"Pacific/Tahiti\",\"RRS\":\"Europe/Oslo\",\"RRT\":\"America/Chicago\",\"RRV\":\"Australia/Darwin\",\"RSA\":\"America/Argentina/Buenos_Aires\",\"RSB\":\"Australia/Brisbane\",\"RSD\":\"America/Nassau\",\"RSE\":\"Australia/Sydney\",\"RSG\":\"America/Belem\",\"RSH\":\"America/Anchorage\",\"RSI\":\"America/Panama\",\"RSJ\":\"America/Los_Angeles\",\"RSK\":\"Asia/Jayapura\",\"RSL\":\"America/Chicago\",\"RSN\":\"America/Chicago\",\"RSP\":\"America/Anchorage\",\"RSS\":\"Africa/Khartoum\",\"RST\":\"America/Chicago\",\"RSU\":\"Asia/Seoul\",\"RSW\":\"America/New_York\",\"RSX\":\"America/New_York\",\"RTA\":\"Pacific/Fiji\",\"RTB\":\"America/Tegucigalpa\",\"RTC\":\"Asia/Kolkata\",\"RTD\":\"America/New_York\",\"RTE\":\"America/Anchorage\",\"RTG\":\"Asia/Makassar\",\"RTI\":\"Asia/Makassar\",\"RTL\":\"America/Chicago\",\"RTM\":\"Europe/Amsterdam\",\"RTN\":\"America/Denver\",\"RTP\":\"Australia/Brisbane\",\"RTS\":\"Australia/Perth\",\"RTW\":\"Europe/Saratov\",\"RTY\":\"Australia/Adelaide\",\"RUA\":\"Africa/Kampala\",\"RUD\":\"Asia/Tehran\",\"RUF\":\"Asia/Jayapura\",\"RUG\":\"Asia/Shanghai\",\"RUH\":\"Asia/Riyadh\",\"RUI\":\"America/Denver\",\"RUK\":\"Asia/Kathmandu\",\"RUL\":\"Indian/Maldives\",\"RUM\":\"Asia/Kathmandu\",\"RUN\":\"Indian/Reunion\",\"RUP\":\"Asia/Kolkata\",\"RUR\":\"Pacific/Tahiti\",\"RUS\":\"Pacific/Guadalcanal\",\"RUT\":\"America/New_York\",\"RUU\":\"Pacific/Port_Moresby\",\"RUV\":\"America/Guatemala\",\"RUY\":\"America/Tegucigalpa\",\"RVA\":\"Indian/Antananarivo\",\"RVC\":\"Africa/Monrovia\",\"RVD\":\"America/Sao_Paulo\",\"RVE\":\"America/Bogota\",\"RVH\":\"Europe/Moscow\",\"RVI\":\"Europe/Moscow\",\"RVK\":\"Europe/Oslo\",\"RVN\":\"Europe/Helsinki\",\"RVO\":\"Africa/Johannesburg\",\"RVR\":\"America/Denver\",\"RVS\":\"America/Chicago\",\"RVT\":\"Australia/Perth\",\"RVV\":\"Pacific/Tahiti\",\"RVY\":\"America/Montevideo\",\"RWB\":\"America/Anchorage\",\"RWF\":\"America/Chicago\",\"RWI\":\"America/New_York\",\"RWL\":\"America/Denver\",\"RWN\":\"Europe/Kiev\",\"RWS\":\"America/Sao_Paulo\",\"RXA\":\"Asia/Aden\",\"RXE\":\"America/Denver\",\"RXS\":\"Asia/Manila\",\"RYB\":\"Europe/Moscow\",\"RYG\":\"Europe/Oslo\",\"RYK\":\"Asia/Karachi\",\"RYL\":\"Africa/Lusaka\",\"RYN\":\"Europe/Paris\",\"RYO\":\"America/Argentina/Buenos_Aires\",\"RZA\":\"America/Argentina/Buenos_Aires\",\"RZE\":\"Europe/Warsaw\",\"RZH\":\"Asia/Vladivostok\",\"RZN\":\"Europe/Moscow\",\"RZP\":\"Asia/Manila\",\"RZR\":\"Asia/Tehran\",\"RZS\":\"Asia/Karachi\",\"RZZ\":\"America/New_York\",\"SAA\":\"America/Denver\",\"SAB\":\"America/Curacao\",\"SAC\":\"America/Los_Angeles\",\"SAD\":\"America/Phoenix\",\"SAE\":\"America/Godthab\",\"SAF\":\"America/Denver\",\"SAG\":\"Asia/Kolkata\",\"SAH\":\"Asia/Aden\",\"SAI\":\"Europe/San_Marino\",\"SAK\":\"Atlantic/Reykjavik\",\"SAL\":\"America/El_Salvador\",\"SAM\":\"Pacific/Port_Moresby\",\"SAN\":\"America/Los_Angeles\",\"SAP\":\"America/Tegucigalpa\",\"SAQ\":\"America/Nassau\",\"SAR\":\"America/Chicago\",\"SAS\":\"America/Los_Angeles\",\"SAT\":\"America/Chicago\",\"SAU\":\"Asia/Makassar\",\"SAV\":\"America/New_York\",\"SAW\":\"Europe/Istanbul\",\"SAX\":\"America/Panama\",\"SAY\":\"Europe/Rome\",\"SAZ\":\"Africa/Monrovia\",\"SBA\":\"America/Los_Angeles\",\"SBB\":\"America/Caracas\",\"SBC\":\"Pacific/Port_Moresby\",\"SBD\":\"America/Los_Angeles\",\"SBE\":\"Pacific/Port_Moresby\",\"SBF\":\"Asia/Kabul\",\"SBG\":\"Asia/Jakarta\",\"SBH\":\"America/Guadeloupe\",\"SBI\":\"Africa/Conakry\",\"SBJ\":\"America/Sao_Paulo\",\"SBK\":\"Europe/Paris\",\"SBL\":\"America/La_Paz\",\"SBM\":\"America/Chicago\",\"SBN\":\"America/Indiana/Indianapolis\",\"SBO\":\"America/Denver\",\"SBP\":\"America/Los_Angeles\",\"SBQ\":\"Asia/Karachi\",\"SBR\":\"Australia/Brisbane\",\"SBS\":\"America/Denver\",\"SBT\":\"Asia/Yekaterinburg\",\"SBU\":\"Africa/Johannesburg\",\"SBV\":\"Pacific/Bougainville\",\"SBW\":\"Asia/Kuala_Lumpur\",\"SBX\":\"America/Denver\",\"SBY\":\"America/New_York\",\"SBZ\":\"Europe/Bucharest\",\"SCA\":\"America/Bogota\",\"SCB\":\"America/Chicago\",\"SCC\":\"America/Anchorage\",\"SCD\":\"America/Tegucigalpa\",\"SCE\":\"America/New_York\",\"SCF\":\"America/Phoenix\",\"SCG\":\"Australia/Brisbane\",\"SCH\":\"America/New_York\",\"SCI\":\"America/Caracas\",\"SCJ\":\"America/Anchorage\",\"SCK\":\"America/Los_Angeles\",\"SCL\":\"America/Santiago\",\"SCM\":\"America/Anchorage\",\"SCN\":\"Europe/Berlin\",\"SCO\":\"Asia/Aqtau\",\"SCP\":\"Europe/Paris\",\"SCQ\":\"Europe/Madrid\",\"SCR\":\"Europe/Stockholm\",\"SCS\":\"Europe/London\",\"SCT\":\"Asia/Aden\",\"SCU\":\"America/Havana\",\"SCV\":\"Europe/Bucharest\",\"SCW\":\"Europe/Moscow\",\"SCX\":\"America/Mexico_City\",\"SCY\":\"Pacific/Galapagos\",\"SCZ\":\"Pacific/Guadalcanal\",\"SDB\":\"Africa/Johannesburg\",\"SDC\":\"America/Guyana\",\"SDD\":\"Africa/Luanda\",\"SDE\":\"America/Argentina/Buenos_Aires\",\"SDF\":\"America/New_York\",\"SDG\":\"Asia/Tehran\",\"SDH\":\"America/Tegucigalpa\",\"SDI\":\"Pacific/Port_Moresby\",\"SDJ\":\"Asia/Tokyo\",\"SDK\":\"Asia/Kuala_Lumpur\",\"SDL\":\"Europe/Stockholm\",\"SDM\":\"America/Los_Angeles\",\"SDN\":\"Europe/Oslo\",\"SDO\":\"Asia/Tokyo\",\"SDP\":\"America/Anchorage\",\"SDQ\":\"America/Santo_Domingo\",\"SDR\":\"Europe/Madrid\",\"SDS\":\"Asia/Tokyo\",\"SDT\":\"Asia/Karachi\",\"SDU\":\"America/Sao_Paulo\",\"SDV\":\"Asia/Jerusalem\",\"SDW\":\"Asia/Dhaka\",\"SDX\":\"America/Phoenix\",\"SDY\":\"America/Denver\",\"SEA\":\"America/Los_Angeles\",\"SEB\":\"Africa/Tripoli\",\"SEC\":\"Europe/Paris\",\"SED\":\"Asia/Jerusalem\",\"SEE\":\"America/Los_Angeles\",\"SEF\":\"America/New_York\",\"SEG\":\"America/New_York\",\"SEH\":\"Asia/Jayapura\",\"SEK\":\"Asia/Magadan\",\"SEM\":\"America/Chicago\",\"SEN\":\"Europe/London\",\"SEO\":\"Africa/Abidjan\",\"SEP\":\"America/Chicago\",\"SEQ\":\"Asia/Jakarta\",\"SER\":\"America/Indiana/Indianapolis\",\"SES\":\"America/Chicago\",\"SET\":\"America/Belem\",\"SEU\":\"Africa/Dar_es_Salaam\",\"SEV\":\"Europe/Kiev\",\"SEW\":\"Africa/Cairo\",\"SEX\":\"Europe/Berlin\",\"SEY\":\"Africa/Nouakchott\",\"SEZ\":\"Indian/Mahe\",\"SFA\":\"Africa/Tunis\",\"SFB\":\"America/New_York\",\"SFC\":\"America/Guadeloupe\",\"SFD\":\"America/Caracas\",\"SFE\":\"Asia/Manila\",\"SFF\":\"America/Los_Angeles\",\"SFG\":\"America/Marigot\",\"SFH\":\"America/Tijuana\",\"SFI\":\"Africa/Casablanca\",\"SFJ\":\"America/Godthab\",\"SFK\":\"America/Belem\",\"SFL\":\"Atlantic/Cape_Verde\",\"SFM\":\"America/New_York\",\"SFN\":\"America/Argentina/Buenos_Aires\",\"SFO\":\"America/Los_Angeles\",\"SFP\":\"Australia/Brisbane\",\"SFR\":\"America/Los_Angeles\",\"SFS\":\"Asia/Manila\",\"SFT\":\"Europe/Stockholm\",\"SFU\":\"Pacific/Port_Moresby\",\"SFV\":\"America/Sao_Paulo\",\"SFW\":\"America/Panama\",\"SFX\":\"America/Caracas\",\"SFZ\":\"America/New_York\",\"SGA\":\"Asia/Kabul\",\"SGB\":\"Pacific/Port_Moresby\",\"SGC\":\"Asia/Yekaterinburg\",\"SGD\":\"Europe/Copenhagen\",\"SGE\":\"Europe/Berlin\",\"SGF\":\"America/Chicago\",\"SGG\":\"America/Godthab\",\"SGH\":\"America/New_York\",\"SGI\":\"Asia/Karachi\",\"SGJ\":\"Pacific/Port_Moresby\",\"SGK\":\"Pacific/Port_Moresby\",\"SGL\":\"Asia/Manila\",\"SGM\":\"America/Mazatlan\",\"SGN\":\"Asia/Ho_Chi_Minh\",\"SGO\":\"Australia/Brisbane\",\"SGP\":\"Australia/Perth\",\"SGQ\":\"Asia/Makassar\",\"SGR\":\"America/Chicago\",\"SGT\":\"America/Chicago\",\"SGU\":\"America/Denver\",\"SGV\":\"America/Argentina/Buenos_Aires\",\"SGW\":\"America/Anchorage\",\"SGX\":\"Africa/Dar_es_Salaam\",\"SGY\":\"America/Anchorage\",\"SGZ\":\"Asia/Bangkok\",\"SHA\":\"Asia/Shanghai\",\"SHB\":\"Asia/Tokyo\",\"SHC\":\"Africa/Addis_Ababa\",\"SHD\":\"America/New_York\",\"SHE\":\"Asia/Shanghai\",\"SHF\":\"Asia/Shanghai\",\"SHG\":\"America/Anchorage\",\"SHH\":\"America/Anchorage\",\"SHI\":\"Asia/Tokyo\",\"SHJ\":\"Asia/Dubai\",\"SHK\":\"Africa/Maseru\",\"SHL\":\"Asia/Kolkata\",\"SHM\":\"Asia/Tokyo\",\"SHN\":\"America/Los_Angeles\",\"SHO\":\"Africa/Mbabane\",\"SHP\":\"Asia/Shanghai\",\"SHQ\":\"Australia/Brisbane\",\"SHR\":\"America/Denver\",\"SHS\":\"Asia/Shanghai\",\"SHT\":\"Australia/Sydney\",\"SHU\":\"Australia/Darwin\",\"SHV\":\"America/Chicago\",\"SHW\":\"Asia/Riyadh\",\"SHX\":\"America/Anchorage\",\"SHY\":\"Africa/Dar_es_Salaam\",\"SHZ\":\"Africa/Maseru\",\"SIA\":\"Asia/Shanghai\",\"SIB\":\"Africa/Brazzaville\",\"SIC\":\"America/Panama\",\"SID\":\"Atlantic/Cape_Verde\",\"SIE\":\"Europe/Lisbon\",\"SIF\":\"Asia/Kathmandu\",\"SIG\":\"America/Puerto_Rico\",\"SIH\":\"Asia/Kathmandu\",\"SII\":\"Africa/Casablanca\",\"SIJ\":\"Atlantic/Reykjavik\",\"SIK\":\"America/Chicago\",\"SIL\":\"Pacific/Port_Moresby\",\"SIM\":\"Pacific/Port_Moresby\",\"SIN\":\"Asia/Singapore\",\"SIO\":\"Australia/Hobart\",\"SIP\":\"Europe/Simferopol\",\"SIQ\":\"Asia/Jakarta\",\"SIR\":\"Europe/Zurich\",\"SIS\":\"Africa/Johannesburg\",\"SIT\":\"America/Anchorage\",\"SIU\":\"America/Managua\",\"SIV\":\"America/Indiana/Indianapolis\",\"SIX\":\"Australia/Sydney\",\"SIY\":\"America/Los_Angeles\",\"SIZ\":\"Pacific/Port_Moresby\",\"SJA\":\"America/Lima\",\"SJB\":\"America/La_Paz\",\"SJC\":\"America/Los_Angeles\",\"SJD\":\"America/Mazatlan\",\"SJE\":\"America/Bogota\",\"SJF\":\"America/St_Thomas\",\"SJG\":\"America/Bogota\",\"SJH\":\"America/Bogota\",\"SJI\":\"Asia/Manila\",\"SJJ\":\"Europe/Sarajevo\",\"SJK\":\"America/Sao_Paulo\",\"SJL\":\"America/Porto_Velho\",\"SJM\":\"America/Santo_Domingo\",\"SJN\":\"America/Phoenix\",\"SJO\":\"America/Costa_Rica\",\"SJP\":\"America/Sao_Paulo\",\"SJQ\":\"Africa/Lusaka\",\"SJR\":\"America/Bogota\",\"SJS\":\"America/La_Paz\",\"SJT\":\"America/Chicago\",\"SJU\":\"America/Puerto_Rico\",\"SJV\":\"America/La_Paz\",\"SJW\":\"Asia/Shanghai\",\"SJX\":\"America/Belize\",\"SJY\":\"Europe/Helsinki\",\"SJZ\":\"Atlantic/Azores\",\"SKA\":\"America/Los_Angeles\",\"SKB\":\"America/St_Kitts\",\"SKC\":\"Pacific/Port_Moresby\",\"SKD\":\"Asia/Tashkent\",\"SKE\":\"Europe/Oslo\",\"SKF\":\"America/Chicago\",\"SKG\":\"Europe/Athens\",\"SKH\":\"Asia/Kathmandu\",\"SKI\":\"Africa/Algiers\",\"SKJ\":\"America/Anchorage\",\"SKK\":\"America/Anchorage\",\"SKL\":\"Europe/London\",\"SKM\":\"America/Guyana\",\"SKN\":\"Europe/Oslo\",\"SKO\":\"Africa/Lagos\",\"SKP\":\"Europe/Skopje\",\"SKQ\":\"Africa/Maseru\",\"SKR\":\"Africa/Addis_Ababa\",\"SKS\":\"Europe/Copenhagen\",\"SKT\":\"Asia/Karachi\",\"SKU\":\"Europe/Athens\",\"SKV\":\"Africa/Cairo\",\"SKW\":\"America/Anchorage\",\"SKX\":\"Europe/Moscow\",\"SKY\":\"America/New_York\",\"SKZ\":\"Asia/Karachi\",\"SLA\":\"America/Argentina/Buenos_Aires\",\"SLB\":\"America/Chicago\",\"SLC\":\"America/Denver\",\"SLD\":\"Europe/Bratislava\",\"SLE\":\"America/Los_Angeles\",\"SLF\":\"Asia/Riyadh\",\"SLG\":\"America/Chicago\",\"SLH\":\"Pacific/Efate\",\"SLI\":\"Africa/Lusaka\",\"SLJ\":\"Australia/Perth\",\"SLK\":\"America/New_York\",\"SLL\":\"Asia/Muscat\",\"SLM\":\"Europe/Madrid\",\"SLN\":\"America/Chicago\",\"SLO\":\"America/Chicago\",\"SLP\":\"America/Mexico_City\",\"SLQ\":\"America/Anchorage\",\"SLR\":\"America/Chicago\",\"SLS\":\"Europe/Sofia\",\"SLT\":\"America/Denver\",\"SLU\":\"America/St_Lucia\",\"SLV\":\"Asia/Kolkata\",\"SLW\":\"America/Mexico_City\",\"SLX\":\"America/Grand_Turk\",\"SLY\":\"Asia/Yekaterinburg\",\"SLZ\":\"America/Belem\",\"SMA\":\"Atlantic/Azores\",\"SMB\":\"America/Santiago\",\"SMC\":\"America/Bogota\",\"SMD\":\"America/Indiana/Indianapolis\",\"SME\":\"America/New_York\",\"SMF\":\"America/Los_Angeles\",\"SMG\":\"America/Lima\",\"SMH\":\"Pacific/Port_Moresby\",\"SMI\":\"Europe/Athens\",\"SMJ\":\"Pacific/Port_Moresby\",\"SMK\":\"America/Anchorage\",\"SML\":\"America/Nassau\",\"SMM\":\"Asia/Kuala_Lumpur\",\"SMN\":\"America/Denver\",\"SMO\":\"America/Los_Angeles\",\"SMP\":\"Pacific/Port_Moresby\",\"SMQ\":\"Asia/Jakarta\",\"SMR\":\"America/Bogota\",\"SMS\":\"Indian/Antananarivo\",\"SMT\":\"America/Campo_Grande\",\"SMU\":\"America/Anchorage\",\"SMV\":\"Europe/Zurich\",\"SMW\":\"Africa/Casablanca\",\"SMX\":\"America/Los_Angeles\",\"SMY\":\"Africa/Dakar\",\"SMZ\":\"America/Paramaribo\",\"SNA\":\"America/Los_Angeles\",\"SNB\":\"Australia/Darwin\",\"SNC\":\"America/Guayaquil\",\"SND\":\"Asia/Vientiane\",\"SNE\":\"Atlantic/Cape_Verde\",\"SNF\":\"America/Caracas\",\"SNG\":\"America/La_Paz\",\"SNH\":\"Australia/Brisbane\",\"SNI\":\"Africa/Monrovia\",\"SNJ\":\"America/Havana\",\"SNK\":\"America/Chicago\",\"SNL\":\"America/Chicago\",\"SNM\":\"America/La_Paz\",\"SNN\":\"Europe/Dublin\",\"SNO\":\"Asia/Bangkok\",\"SNP\":\"America/Anchorage\",\"SNQ\":\"America/Tijuana\",\"SNR\":\"Europe/Paris\",\"SNS\":\"America/Los_Angeles\",\"SNT\":\"America/Bogota\",\"SNU\":\"America/Havana\",\"SNV\":\"America/Caracas\",\"SNW\":\"Asia/Yangon\",\"SNX\":\"Asia/Tehran\",\"SNY\":\"America/Denver\",\"SNZ\":\"America/Belem\",\"SOA\":\"Asia/Ho_Chi_Minh\",\"SOB\":\"Europe/Budapest\",\"SOC\":\"Asia/Jakarta\",\"SOD\":\"America/Sao_Paulo\",\"SOE\":\"Africa/Brazzaville\",\"SOF\":\"Europe/Sofia\",\"SOG\":\"Europe/Oslo\",\"SOH\":\"America/Bogota\",\"SOI\":\"Australia/Brisbane\",\"SOJ\":\"Europe/Oslo\",\"SOK\":\"Africa/Maseru\",\"SOL\":\"America/Anchorage\",\"SOM\":\"America/Caracas\",\"SON\":\"Pacific/Efate\",\"SOO\":\"Europe/Stockholm\",\"SOP\":\"America/New_York\",\"SOQ\":\"Asia/Jayapura\",\"SOR\":\"Asia/Damascus\",\"SOT\":\"Europe/Helsinki\",\"SOU\":\"Europe/London\",\"SOV\":\"America/Anchorage\",\"SOW\":\"America/Phoenix\",\"SOX\":\"America/Bogota\",\"SOY\":\"Europe/London\",\"SOZ\":\"Europe/Paris\",\"SPA\":\"America/New_York\",\"SPB\":\"America/St_Thomas\",\"SPC\":\"Atlantic/Canary\",\"SPD\":\"Asia/Dhaka\",\"SPE\":\"Asia/Kuala_Lumpur\",\"SPF\":\"America/Denver\",\"SPG\":\"America/New_York\",\"SPH\":\"Pacific/Port_Moresby\",\"SPI\":\"America/Chicago\",\"SPJ\":\"Europe/Athens\",\"SPM\":\"Europe/Berlin\",\"SPN\":\"Pacific/Saipan\",\"SPO\":\"Europe/Madrid\",\"SPP\":\"Africa/Luanda\",\"SPQ\":\"America/Los_Angeles\",\"SPR\":\"America/Belize\",\"SPS\":\"America/Chicago\",\"SPT\":\"Asia/Kuala_Lumpur\",\"SPU\":\"Europe/Zagreb\",\"SPV\":\"Pacific/Port_Moresby\",\"SPW\":\"America/Chicago\",\"SPX\":\"Africa/Cairo\",\"SPY\":\"Africa/Abidjan\",\"SPZ\":\"America/Chicago\",\"SQA\":\"America/Los_Angeles\",\"SQB\":\"America/Bogota\",\"SQC\":\"Australia/Perth\",\"SQD\":\"Asia/Shanghai\",\"SQE\":\"America/Bogota\",\"SQF\":\"America/Bogota\",\"SQG\":\"Asia/Jakarta\",\"SQH\":\"Asia/Ho_Chi_Minh\",\"SQI\":\"America/Chicago\",\"SQJ\":\"Asia/Shanghai\",\"SQK\":\"Africa/Cairo\",\"SQL\":\"America/Los_Angeles\",\"SQM\":\"America/Sao_Paulo\",\"SQN\":\"Asia/Jayapura\",\"SQO\":\"Europe/Stockholm\",\"SQP\":\"Australia/Brisbane\",\"SQQ\":\"Europe/Vilnius\",\"SQR\":\"Asia/Jayapura\",\"SQS\":\"America/Belize\",\"SQT\":\"Pacific/Port_Moresby\",\"SQU\":\"America/Lima\",\"SQV\":\"America/Los_Angeles\",\"SQW\":\"Europe/Copenhagen\",\"SQX\":\"America/Sao_Paulo\",\"SQY\":\"America/Sao_Paulo\",\"SQZ\":\"Europe/London\",\"SRA\":\"America/Sao_Paulo\",\"SRB\":\"America/La_Paz\",\"SRC\":\"America/Chicago\",\"SRD\":\"America/La_Paz\",\"SRE\":\"America/La_Paz\",\"SRF\":\"America/Los_Angeles\",\"SRG\":\"Asia/Jakarta\",\"SRH\":\"Africa/Ndjamena\",\"SRI\":\"Asia/Makassar\",\"SRJ\":\"America/La_Paz\",\"SRK\":\"America/Thule\",\"SRL\":\"America/Mazatlan\",\"SRM\":\"Australia/Brisbane\",\"SRN\":\"Australia/Hobart\",\"SRO\":\"America/Bogota\",\"SRP\":\"Europe/Oslo\",\"SRQ\":\"America/New_York\",\"SRS\":\"America/Bogota\",\"SRT\":\"Africa/Kampala\",\"SRU\":\"America/Los_Angeles\",\"SRV\":\"America/Anchorage\",\"SRW\":\"America/New_York\",\"SRX\":\"Africa/Tripoli\",\"SRY\":\"Asia/Tehran\",\"SRZ\":\"America/La_Paz\",\"SSA\":\"America/Belem\",\"SSB\":\"America/St_Thomas\",\"SSC\":\"America/New_York\",\"SSD\":\"America/Bogota\",\"SSE\":\"Asia/Kolkata\",\"SSF\":\"America/Chicago\",\"SSG\":\"Africa/Malabo\",\"SSH\":\"Africa/Cairo\",\"SSI\":\"America/New_York\",\"SSJ\":\"Europe/Oslo\",\"SSK\":\"Australia/Perth\",\"SSL\":\"America/Bogota\",\"SSM\":\"America/New_York\",\"SSN\":\"Asia/Seoul\",\"SSO\":\"America/Sao_Paulo\",\"SSP\":\"Australia/Brisbane\",\"SSQ\":\"America/Toronto\",\"SSR\":\"Pacific/Efate\",\"SSS\":\"Pacific/Port_Moresby\",\"SST\":\"America/Argentina/Buenos_Aires\",\"SSU\":\"America/New_York\",\"SSV\":\"Asia/Manila\",\"SSW\":\"America/Los_Angeles\",\"SSX\":\"Africa/Johannesburg\",\"SSY\":\"Africa/Luanda\",\"SSZ\":\"America/Sao_Paulo\",\"STA\":\"Europe/Copenhagen\",\"STB\":\"America/Caracas\",\"STC\":\"America/Chicago\",\"STD\":\"America/Caracas\",\"STE\":\"America/Chicago\",\"STF\":\"Australia/Brisbane\",\"STG\":\"America/Anchorage\",\"STH\":\"Australia/Brisbane\",\"STI\":\"America/Santo_Domingo\",\"STJ\":\"America/Chicago\",\"STK\":\"America/Denver\",\"STL\":\"America/Chicago\",\"STM\":\"America/Belem\",\"STN\":\"Europe/London\",\"STP\":\"America/Chicago\",\"STQ\":\"America/New_York\",\"STR\":\"Europe/Berlin\",\"STS\":\"America/Los_Angeles\",\"STT\":\"America/St_Thomas\",\"STV\":\"Asia/Kolkata\",\"STW\":\"Europe/Moscow\",\"STX\":\"America/St_Thomas\",\"STY\":\"America/Montevideo\",\"STZ\":\"America/Campo_Grande\",\"SUA\":\"America/New_York\",\"SUB\":\"Asia/Jakarta\",\"SUC\":\"America/Denver\",\"SUD\":\"America/Chicago\",\"SUE\":\"America/Chicago\",\"SUF\":\"Europe/Rome\",\"SUG\":\"Asia/Manila\",\"SUH\":\"Asia/Muscat\",\"SUI\":\"Asia/Tbilisi\",\"SUJ\":\"Europe/Bucharest\",\"SUK\":\"Asia/Vladivostok\",\"SUL\":\"Asia/Karachi\",\"SUM\":\"America/New_York\",\"SUN\":\"America/Denver\",\"SUO\":\"America/Los_Angeles\",\"SUP\":\"Asia/Jakarta\",\"SUQ\":\"America/Guayaquil\",\"SUR\":\"America/Toronto\",\"SUS\":\"America/Chicago\",\"SUT\":\"Africa/Dar_es_Salaam\",\"SUU\":\"America/Los_Angeles\",\"SUV\":\"Pacific/Fiji\",\"SUW\":\"America/Chicago\",\"SUX\":\"America/Chicago\",\"SUY\":\"Asia/Yakutsk\",\"SUZ\":\"Pacific/Port_Moresby\",\"SVA\":\"America/Anchorage\",\"SVB\":\"Indian/Antananarivo\",\"SVC\":\"America/Denver\",\"SVD\":\"America/St_Vincent\",\"SVE\":\"America/Los_Angeles\",\"SVF\":\"Africa/Porto-Novo\",\"SVG\":\"Europe/Oslo\",\"SVH\":\"America/New_York\",\"SVI\":\"America/Bogota\",\"SVJ\":\"Europe/Oslo\",\"SVK\":\"America/Belize\",\"SVL\":\"Europe/Helsinki\",\"SVM\":\"Australia/Brisbane\",\"SVN\":\"America/New_York\",\"SVO\":\"Europe/Moscow\",\"SVP\":\"Africa/Luanda\",\"SVQ\":\"Europe/Madrid\",\"SVR\":\"America/Thule\",\"SVS\":\"America/Anchorage\",\"SVT\":\"Africa/Gaborone\",\"SVU\":\"Pacific/Fiji\",\"SVV\":\"America/Caracas\",\"SVW\":\"America/Anchorage\",\"SVX\":\"Asia/Yekaterinburg\",\"SVY\":\"Pacific/Guadalcanal\",\"SVZ\":\"America/Caracas\",\"SWA\":\"Asia/Shanghai\",\"SWB\":\"Australia/Perth\",\"SWC\":\"Australia/Sydney\",\"SWD\":\"America/Anchorage\",\"SWE\":\"Pacific/Port_Moresby\",\"SWF\":\"America/New_York\",\"SWG\":\"Pacific/Port_Moresby\",\"SWH\":\"Australia/Sydney\",\"SWI\":\"Europe/London\",\"SWJ\":\"Pacific/Efate\",\"SWL\":\"Asia/Manila\",\"SWM\":\"America/Campo_Grande\",\"SWN\":\"Asia/Karachi\",\"SWO\":\"America/Chicago\",\"SWP\":\"Africa/Windhoek\",\"SWQ\":\"Asia/Makassar\",\"SWR\":\"Pacific/Port_Moresby\",\"SWS\":\"Europe/London\",\"SWT\":\"Asia/Omsk\",\"SWU\":\"Asia/Seoul\",\"SWV\":\"Asia/Magadan\",\"SWW\":\"America/Chicago\",\"SWX\":\"Africa/Gaborone\",\"SWY\":\"Asia/Kuala_Lumpur\",\"SWZ\":\"Australia/Sydney\",\"SXA\":\"Pacific/Port_Moresby\",\"SXB\":\"Europe/Paris\",\"SXD\":\"Europe/Paris\",\"SXE\":\"Australia/Sydney\",\"SXF\":\"Europe/Berlin\",\"SXG\":\"Africa/Lusaka\",\"SXH\":\"Pacific/Port_Moresby\",\"SXI\":\"Asia/Tehran\",\"SXJ\":\"Asia/Shanghai\",\"SXK\":\"Asia/Jayapura\",\"SXL\":\"Europe/Dublin\",\"SXM\":\"America/Curacao\",\"SXN\":\"Africa/Gaborone\",\"SXO\":\"America/Campo_Grande\",\"SXP\":\"America/Anchorage\",\"SXQ\":\"America/Anchorage\",\"SXR\":\"Asia/Kolkata\",\"SXS\":\"Asia/Kuala_Lumpur\",\"SXT\":\"Asia/Kuala_Lumpur\",\"SXU\":\"Africa/Addis_Ababa\",\"SXV\":\"Asia/Kolkata\",\"SXW\":\"Pacific/Port_Moresby\",\"SXX\":\"America/Belem\",\"SXY\":\"America/New_York\",\"SXZ\":\"Europe/Istanbul\",\"SYA\":\"America/Adak\",\"SYB\":\"America/Anchorage\",\"SYC\":\"America/Lima\",\"SYD\":\"Australia/Sydney\",\"SYE\":\"Asia/Aden\",\"SYF\":\"America/Vancouver\",\"SYG\":\"Europe/Oslo\",\"SYI\":\"America/Chicago\",\"SYJ\":\"Asia/Tehran\",\"SYK\":\"Atlantic/Reykjavik\",\"SYL\":\"America/Los_Angeles\",\"SYM\":\"Asia/Shanghai\",\"SYN\":\"America/Chicago\",\"SYO\":\"Asia/Tokyo\",\"SYP\":\"America/Panama\",\"SYQ\":\"America/Costa_Rica\",\"SYR\":\"America/New_York\",\"SYS\":\"Asia/Yakutsk\",\"SYT\":\"Europe/Paris\",\"SYU\":\"Australia/Brisbane\",\"SYV\":\"America/New_York\",\"SYW\":\"Asia/Karachi\",\"SYX\":\"Asia/Shanghai\",\"SYY\":\"Europe/London\",\"SYZ\":\"Asia/Tehran\",\"SZA\":\"Africa/Luanda\",\"SZB\":\"Asia/Kuala_Lumpur\",\"SZC\":\"America/Costa_Rica\",\"SZD\":\"Europe/London\",\"SZE\":\"Africa/Addis_Ababa\",\"SZF\":\"Europe/Istanbul\",\"SZG\":\"Europe/Vienna\",\"SZH\":\"Asia/Makassar\",\"SZI\":\"Asia/Almaty\",\"SZJ\":\"America/Havana\",\"SZK\":\"Africa/Johannesburg\",\"SZL\":\"America/Chicago\",\"SZM\":\"Africa/Windhoek\",\"SZN\":\"America/Los_Angeles\",\"SZO\":\"Asia/Shanghai\",\"SZP\":\"America/Los_Angeles\",\"SZQ\":\"America/Argentina/Buenos_Aires\",\"SZR\":\"Europe/Sofia\",\"SZS\":\"Pacific/Auckland\",\"SZT\":\"America/Mexico_City\",\"SZU\":\"Africa/Bamako\",\"SZV\":\"Asia/Shanghai\",\"SZW\":\"Europe/Berlin\",\"SZX\":\"Asia/Shanghai\",\"SZY\":\"Europe/Warsaw\",\"SZZ\":\"Europe/Warsaw\",\"TAA\":\"Pacific/Guadalcanal\",\"TAB\":\"America/Port_of_Spain\",\"TAC\":\"Asia/Manila\",\"TAD\":\"America/Denver\",\"TAE\":\"Asia/Seoul\",\"TAF\":\"Africa/Algiers\",\"TAG\":\"Asia/Manila\",\"TAH\":\"Pacific/Efate\",\"TAI\":\"Asia/Aden\",\"TAJ\":\"Pacific/Port_Moresby\",\"TAK\":\"Asia/Tokyo\",\"TAL\":\"America/Anchorage\",\"TAM\":\"America/Mexico_City\",\"TAN\":\"Australia/Brisbane\",\"TAO\":\"Asia/Shanghai\",\"TAP\":\"America/Mexico_City\",\"TAQ\":\"Australia/Adelaide\",\"TAR\":\"Europe/Rome\",\"TAS\":\"Asia/Tashkent\",\"TAT\":\"Europe/Bratislava\",\"TAU\":\"America/Bogota\",\"TAV\":\"Pacific/Pago_Pago\",\"TAW\":\"America/Montevideo\",\"TAX\":\"Asia/Jayapura\",\"TAY\":\"Europe/Tallinn\",\"TAZ\":\"Asia/Ashgabat\",\"TBA\":\"Pacific/Port_Moresby\",\"TBB\":\"Asia/Ho_Chi_Minh\",\"TBC\":\"America/Phoenix\",\"TBD\":\"America/Bogota\",\"TBE\":\"Pacific/Port_Moresby\",\"TBF\":\"Pacific/Tarawa\",\"TBG\":\"Pacific/Port_Moresby\",\"TBH\":\"Asia/Manila\",\"TBI\":\"America/Nassau\",\"TBJ\":\"Africa/Tunis\",\"TBK\":\"Australia/Darwin\",\"TBL\":\"Australia/Perth\",\"TBM\":\"Asia/Pontianak\",\"TBN\":\"America/Chicago\",\"TBO\":\"Africa/Dar_es_Salaam\",\"TBP\":\"America/Lima\",\"TBR\":\"America/New_York\",\"TBS\":\"Asia/Tbilisi\",\"TBT\":\"America/Rio_Branco\",\"TBU\":\"Pacific/Tongatapu\",\"TBV\":\"Pacific/Majuro\",\"TBW\":\"Europe/Moscow\",\"TBY\":\"Africa/Gaborone\",\"TBZ\":\"Asia/Tehran\",\"TCA\":\"Australia/Darwin\",\"TCB\":\"America/Nassau\",\"TCC\":\"America/Denver\",\"TCD\":\"America/Bogota\",\"TCE\":\"Europe/Bucharest\",\"TCF\":\"America/Tegucigalpa\",\"TCG\":\"Asia/Shanghai\",\"TCH\":\"Africa/Libreville\",\"TCJ\":\"Pacific/Port_Moresby\",\"TCK\":\"Pacific/Port_Moresby\",\"TCL\":\"America/Chicago\",\"TCM\":\"America/Los_Angeles\",\"TCN\":\"America/Mexico_City\",\"TCO\":\"America/Bogota\",\"TCP\":\"Africa/Cairo\",\"TCQ\":\"America/Lima\",\"TCR\":\"Asia/Kolkata\",\"TCS\":\"America/Denver\",\"TCT\":\"America/Anchorage\",\"TCU\":\"Africa/Johannesburg\",\"TCV\":\"Africa/Maputo\",\"TCW\":\"Australia/Sydney\",\"TCX\":\"Asia/Tehran\",\"TCY\":\"Africa/Windhoek\",\"TCZ\":\"Asia/Shanghai\",\"TDA\":\"America/Bogota\",\"TDB\":\"Pacific/Port_Moresby\",\"TDD\":\"America/La_Paz\",\"TDG\":\"Asia/Manila\",\"TDJ\":\"Africa/Djibouti\",\"TDK\":\"Asia/Almaty\",\"TDL\":\"America/Argentina/Buenos_Aires\",\"TDN\":\"Australia/Perth\",\"TDO\":\"America/Los_Angeles\",\"TDR\":\"Australia/Brisbane\",\"TDT\":\"Africa/Johannesburg\",\"TDV\":\"Indian/Antananarivo\",\"TDW\":\"America/Chicago\",\"TDX\":\"Asia/Bangkok\",\"TDZ\":\"America/New_York\",\"TEA\":\"America/Tegucigalpa\",\"TEB\":\"America/New_York\",\"TEC\":\"America/Sao_Paulo\",\"TED\":\"Europe/Copenhagen\",\"TEE\":\"Africa/Algiers\",\"TEF\":\"Australia/Perth\",\"TEG\":\"Africa/Ouagadougou\",\"TEH\":\"America/Anchorage\",\"TEI\":\"Asia/Kolkata\",\"TEK\":\"America/Anchorage\",\"TEL\":\"Asia/Kuala_Lumpur\",\"TEM\":\"Australia/Sydney\",\"TEN\":\"Asia/Shanghai\",\"TEO\":\"Pacific/Port_Moresby\",\"TEP\":\"Pacific/Port_Moresby\",\"TEQ\":\"Europe/Istanbul\",\"TER\":\"Atlantic/Azores\",\"TES\":\"Africa/Asmara\",\"TET\":\"Africa/Maputo\",\"TEU\":\"Pacific/Auckland\",\"TEV\":\"Europe/Madrid\",\"TEX\":\"America/Denver\",\"TEY\":\"Atlantic/Reykjavik\",\"TEZ\":\"Asia/Kolkata\",\"TFB\":\"Pacific/Port_Moresby\",\"TFF\":\"America/Porto_Velho\",\"TFI\":\"Pacific/Port_Moresby\",\"TFL\":\"America/Sao_Paulo\",\"TFM\":\"Pacific/Port_Moresby\",\"TFN\":\"Atlantic/Canary\",\"TFR\":\"Africa/Cairo\",\"TFS\":\"Atlantic/Canary\",\"TFT\":\"Asia/Karachi\",\"TFU\":\"Asia/Shanghai\",\"TFY\":\"Africa/Casablanca\",\"TGA\":\"Asia/Singapore\",\"TGB\":\"Asia/Manila\",\"TGC\":\"Asia/Kuala_Lumpur\",\"TGD\":\"Europe/Podgorica\",\"TGE\":\"America/Chicago\",\"TGF\":\"Europe/Paris\",\"TGG\":\"Asia/Kuala_Lumpur\",\"TGH\":\"Pacific/Efate\",\"TGI\":\"America/Lima\",\"TGJ\":\"Pacific/Noumea\",\"TGK\":\"Europe/Moscow\",\"TGL\":\"Pacific/Port_Moresby\",\"TGM\":\"Europe/Bucharest\",\"TGN\":\"Australia/Sydney\",\"TGO\":\"Asia/Shanghai\",\"TGP\":\"Asia/Krasnoyarsk\",\"TGQ\":\"America/Campo_Grande\",\"TGR\":\"Africa/Algiers\",\"TGS\":\"Africa/Maputo\",\"TGT\":\"Africa/Dar_es_Salaam\",\"TGU\":\"America/Tegucigalpa\",\"TGV\":\"Europe/Sofia\",\"TGZ\":\"America/Mexico_City\",\"THA\":\"America/Chicago\",\"THB\":\"Africa/Maseru\",\"THC\":\"Africa/Monrovia\",\"THD\":\"Asia/Ho_Chi_Minh\",\"THE\":\"America/Belem\",\"THG\":\"Australia/Brisbane\",\"THH\":\"Pacific/Auckland\",\"THI\":\"Africa/Nouakchott\",\"THK\":\"Asia/Vientiane\",\"THL\":\"Asia/Yangon\",\"THM\":\"America/Chicago\",\"THN\":\"Europe/Stockholm\",\"THO\":\"Atlantic/Reykjavik\",\"THP\":\"America/Denver\",\"THQ\":\"Asia/Shanghai\",\"THR\":\"Asia/Tehran\",\"THS\":\"Asia/Bangkok\",\"THT\":\"Africa/Nouakchott\",\"THU\":\"America/Thule\",\"THV\":\"America/New_York\",\"THW\":\"Asia/Colombo\",\"THX\":\"Asia/Krasnoyarsk\",\"THY\":\"Africa/Johannesburg\",\"THZ\":\"Africa/Niamey\",\"TIA\":\"Europe/Tirane\",\"TIB\":\"America/Bogota\",\"TIC\":\"Pacific/Majuro\",\"TID\":\"Africa/Algiers\",\"TIE\":\"Africa/Addis_Ababa\",\"TIF\":\"Asia/Riyadh\",\"TIG\":\"Pacific/Port_Moresby\",\"TIH\":\"Pacific/Tahiti\",\"TII\":\"Asia/Kabul\",\"TIJ\":\"America/Tijuana\",\"TIK\":\"America/Chicago\",\"TIM\":\"Asia/Jayapura\",\"TIN\":\"Africa/Algiers\",\"TIO\":\"Asia/Yangon\",\"TIP\":\"Africa/Tripoli\",\"TIQ\":\"Pacific/Saipan\",\"TIR\":\"Asia/Kolkata\",\"TIS\":\"Australia/Brisbane\",\"TIU\":\"Pacific/Auckland\",\"TIV\":\"Europe/Podgorica\",\"TIW\":\"America/Los_Angeles\",\"TIX\":\"America/New_York\",\"TIY\":\"Africa/Nouakchott\",\"TIZ\":\"Pacific/Port_Moresby\",\"TJA\":\"America/La_Paz\",\"TJB\":\"Asia/Jakarta\",\"TJC\":\"America/Panama\",\"TJG\":\"Asia/Makassar\",\"TJH\":\"Asia/Tokyo\",\"TJI\":\"America/Tegucigalpa\",\"TJK\":\"Europe/Istanbul\",\"TJL\":\"America/Campo_Grande\",\"TJM\":\"Asia/Yekaterinburg\",\"TJN\":\"Pacific/Tahiti\",\"TJQ\":\"Asia/Jakarta\",\"TJS\":\"Asia/Makassar\",\"TJU\":\"Asia/Dushanbe\",\"TJV\":\"Asia/Kolkata\",\"TKA\":\"America/Anchorage\",\"TKB\":\"Pacific/Port_Moresby\",\"TKC\":\"Africa/Douala\",\"TKD\":\"Africa/Accra\",\"TKE\":\"America/Anchorage\",\"TKF\":\"America/Los_Angeles\",\"TKG\":\"Asia/Jakarta\",\"TKH\":\"Asia/Bangkok\",\"TKI\":\"America/Anchorage\",\"TKJ\":\"America/Anchorage\",\"TKK\":\"Pacific/Chuuk\",\"TKL\":\"America/Anchorage\",\"TKM\":\"America/Guatemala\",\"TKN\":\"Asia/Tokyo\",\"TKO\":\"Africa/Maseru\",\"TKP\":\"Pacific/Tahiti\",\"TKQ\":\"Africa/Dar_es_Salaam\",\"TKR\":\"Asia/Dhaka\",\"TKS\":\"Asia/Tokyo\",\"TKT\":\"Asia/Bangkok\",\"TKU\":\"Europe/Helsinki\",\"TKV\":\"Pacific/Tahiti\",\"TKW\":\"Pacific/Port_Moresby\",\"TKX\":\"Pacific/Tahiti\",\"TKY\":\"Australia/Perth\",\"TKZ\":\"Pacific/Auckland\",\"TLA\":\"America/Anchorage\",\"TLB\":\"Asia/Karachi\",\"TLC\":\"America/Mexico_City\",\"TLD\":\"Africa/Gaborone\",\"TLE\":\"Indian/Antananarivo\",\"TLF\":\"America/Anchorage\",\"TLG\":\"Pacific/Guadalcanal\",\"TLH\":\"America/New_York\",\"TLI\":\"Asia/Makassar\",\"TLJ\":\"America/Anchorage\",\"TLK\":\"Asia/Yakutsk\",\"TLL\":\"Europe/Tallinn\",\"TLM\":\"Africa/Algiers\",\"TLN\":\"Europe/Paris\",\"TLO\":\"Pacific/Port_Moresby\",\"TLP\":\"Pacific/Port_Moresby\",\"TLQ\":\"Asia/Shanghai\",\"TLR\":\"America/Los_Angeles\",\"TLS\":\"Europe/Paris\",\"TLT\":\"America/Anchorage\",\"TLU\":\"America/Bogota\",\"TLV\":\"Asia/Jerusalem\",\"TLW\":\"Pacific/Port_Moresby\",\"TLX\":\"America/Santiago\",\"TLY\":\"Asia/Vladivostok\",\"TLZ\":\"America/Sao_Paulo\",\"TMA\":\"America/New_York\",\"TMB\":\"America/New_York\",\"TMC\":\"Asia/Makassar\",\"TMD\":\"Africa/Nouakchott\",\"TME\":\"America/Bogota\",\"TMF\":\"Indian/Maldives\",\"TMG\":\"Asia/Kuala_Lumpur\",\"TMH\":\"Asia/Jayapura\",\"TMI\":\"Asia/Kathmandu\",\"TMJ\":\"Asia/Tashkent\",\"TML\":\"Africa/Accra\",\"TMM\":\"Indian/Antananarivo\",\"TMN\":\"Pacific/Tarawa\",\"TMO\":\"America/Caracas\",\"TMP\":\"Europe/Helsinki\",\"TMQ\":\"Africa/Ouagadougou\",\"TMR\":\"Africa/Algiers\",\"TMS\":\"Africa/Sao_Tome\",\"TMT\":\"America/Belem\",\"TMU\":\"America/Costa_Rica\",\"TMW\":\"Australia/Sydney\",\"TMX\":\"Africa/Algiers\",\"TMY\":\"Asia/Jayapura\",\"TMZ\":\"Pacific/Auckland\",\"TNA\":\"Asia/Shanghai\",\"TNB\":\"Asia/Makassar\",\"TNC\":\"America/Anchorage\",\"TND\":\"America/Havana\",\"TNE\":\"Asia/Tokyo\",\"TNF\":\"Europe/Paris\",\"TNG\":\"Africa/Casablanca\",\"TNH\":\"Asia/Shanghai\",\"TNI\":\"Asia/Kolkata\",\"TNJ\":\"Asia/Jakarta\",\"TNK\":\"America/Anchorage\",\"TNL\":\"Europe/Kiev\",\"TNM\":\"Antarctica/Palmer\",\"TNN\":\"Asia/Taipei\",\"TNO\":\"America/Costa_Rica\",\"TNP\":\"America/Los_Angeles\",\"TNQ\":\"Pacific/Kiritimati\",\"TNR\":\"Indian/Antananarivo\",\"TNS\":\"America/Edmonton\",\"TNT\":\"America/New_York\",\"TNU\":\"America/Chicago\",\"TNV\":\"Pacific/Kiritimati\",\"TNW\":\"America/Guayaquil\",\"TNX\":\"Asia/Phnom_Penh\",\"TNZ\":\"Asia/Ulaanbaatar\",\"TOA\":\"America/Los_Angeles\",\"TOB\":\"Africa/Tripoli\",\"TOC\":\"America/New_York\",\"TOD\":\"Asia/Kuala_Lumpur\",\"TOE\":\"Africa/Tunis\",\"TOF\":\"Asia/Tomsk\",\"TOG\":\"America/Anchorage\",\"TOH\":\"Pacific/Efate\",\"TOI\":\"America/Chicago\",\"TOJ\":\"Europe/Madrid\",\"TOK\":\"Pacific/Bougainville\",\"TOL\":\"America/New_York\",\"TOM\":\"Africa/Bamako\",\"TON\":\"Pacific/Bougainville\",\"TOO\":\"America/Costa_Rica\",\"TOP\":\"America/Chicago\",\"TOQ\":\"America/Santiago\",\"TOR\":\"America/Denver\",\"TOS\":\"Europe/Oslo\",\"TOT\":\"America/Paramaribo\",\"TOU\":\"Pacific/Noumea\",\"TOV\":\"America/Tortola\",\"TOW\":\"America/Sao_Paulo\",\"TOX\":\"Asia/Yekaterinburg\",\"TOY\":\"Asia/Tokyo\",\"TOZ\":\"Africa/Abidjan\",\"TPA\":\"America/New_York\",\"TPC\":\"America/Guayaquil\",\"TPE\":\"Asia/Taipei\",\"TPF\":\"America/New_York\",\"TPG\":\"Asia/Kuala_Lumpur\",\"TPH\":\"America/Los_Angeles\",\"TPI\":\"Pacific/Port_Moresby\",\"TPJ\":\"Asia/Kathmandu\",\"TPK\":\"Asia/Jakarta\",\"TPL\":\"America/Chicago\",\"TPN\":\"America/Guayaquil\",\"TPO\":\"America/Anchorage\",\"TPP\":\"America/Lima\",\"TPQ\":\"America/Mazatlan\",\"TPR\":\"Australia/Perth\",\"TPS\":\"Europe/Rome\",\"TPT\":\"Africa/Monrovia\",\"TPU\":\"Asia/Kathmandu\",\"TPX\":\"Pacific/Tahiti\",\"TQA\":\"America/Godthab\",\"TQD\":\"Asia/Baghdad\",\"TQI\":\"America/Godthab\",\"TQL\":\"Asia/Yekaterinburg\",\"TQN\":\"Asia/Kabul\",\"TQP\":\"Australia/Brisbane\",\"TQQ\":\"Asia/Makassar\",\"TQR\":\"Europe/Rome\",\"TQS\":\"America/Bogota\",\"TRA\":\"Asia/Tokyo\",\"TRB\":\"America/Bogota\",\"TRC\":\"America/Mexico_City\",\"TRD\":\"Europe/Oslo\",\"TRE\":\"Europe/London\",\"TRF\":\"Europe/Oslo\",\"TRG\":\"Pacific/Auckland\",\"TRH\":\"America/Los_Angeles\",\"TRI\":\"America/New_York\",\"TRJ\":\"Pacific/Port_Moresby\",\"TRK\":\"Asia/Makassar\",\"TRL\":\"America/Chicago\",\"TRM\":\"America/Los_Angeles\",\"TRN\":\"Europe/Rome\",\"TRO\":\"Australia/Sydney\",\"TRQ\":\"America/Rio_Branco\",\"TRR\":\"Asia/Colombo\",\"TRS\":\"Europe/Rome\",\"TRT\":\"America/Denver\",\"TRU\":\"America/Lima\",\"TRV\":\"Asia/Kolkata\",\"TRW\":\"Pacific/Tarawa\",\"TRX\":\"America/Chicago\",\"TRY\":\"Africa/Kampala\",\"TRZ\":\"Asia/Kolkata\",\"TSA\":\"Asia/Taipei\",\"TSB\":\"Africa/Windhoek\",\"TSC\":\"America/Guayaquil\",\"TSD\":\"Africa/Johannesburg\",\"TSE\":\"Asia/Almaty\",\"TSF\":\"Europe/Rome\",\"TSG\":\"America/Anchorage\",\"TSH\":\"Africa/Lubumbashi\",\"TSI\":\"Pacific/Port_Moresby\",\"TSJ\":\"Asia/Tokyo\",\"TSK\":\"Pacific/Port_Moresby\",\"TSL\":\"America/Mexico_City\",\"TSM\":\"America/Denver\",\"TSN\":\"Asia/Shanghai\",\"TSO\":\"Europe/London\",\"TSP\":\"America/Los_Angeles\",\"TSQ\":\"America/Sao_Paulo\",\"TSR\":\"Europe/Bucharest\",\"TSS\":\"America/New_York\",\"TST\":\"Asia/Bangkok\",\"TSU\":\"Pacific/Tarawa\",\"TSV\":\"Australia/Brisbane\",\"TSW\":\"Pacific/Port_Moresby\",\"TSX\":\"Asia/Makassar\",\"TSY\":\"Asia/Jakarta\",\"TSZ\":\"Asia/Ulaanbaatar\",\"TTA\":\"Africa/Casablanca\",\"TTB\":\"Europe/Rome\",\"TTC\":\"America/Santiago\",\"TTD\":\"America/Los_Angeles\",\"TTE\":\"Asia/Jayapura\",\"TTG\":\"America/Argentina/Buenos_Aires\",\"TTH\":\"Asia/Muscat\",\"TTI\":\"Pacific/Tahiti\",\"TTJ\":\"Asia/Tokyo\",\"TTK\":\"Europe/London\",\"TTL\":\"Pacific/Fiji\",\"TTM\":\"America/Bogota\",\"TTN\":\"America/New_York\",\"TTO\":\"America/Chicago\",\"TTQ\":\"America/Costa_Rica\",\"TTR\":\"Asia/Makassar\",\"TTS\":\"Indian/Antananarivo\",\"TTT\":\"Asia/Taipei\",\"TTU\":\"Africa/Casablanca\",\"TUA\":\"America/Guayaquil\",\"TUB\":\"Pacific/Tahiti\",\"TUC\":\"America/Argentina/Buenos_Aires\",\"TUD\":\"Africa/Dakar\",\"TUE\":\"America/Panama\",\"TUF\":\"Europe/Paris\",\"TUG\":\"Asia/Manila\",\"TUH\":\"America/Chicago\",\"TUI\":\"Asia/Riyadh\",\"TUK\":\"Asia/Karachi\",\"TUL\":\"America/Chicago\",\"TUM\":\"Australia/Sydney\",\"TUN\":\"Africa/Tunis\",\"TUO\":\"Pacific/Auckland\",\"TUP\":\"America/Chicago\",\"TUQ\":\"Africa/Ouagadougou\",\"TUR\":\"America/Belem\",\"TUS\":\"America/Phoenix\",\"TUT\":\"Pacific/Port_Moresby\",\"TUU\":\"Asia/Riyadh\",\"TUV\":\"America/Caracas\",\"TUW\":\"America/Panama\",\"TUX\":\"America/Vancouver\",\"TUY\":\"America/Mexico_City\",\"TUZ\":\"America/Belem\",\"TVA\":\"Indian/Antananarivo\",\"TVC\":\"America/New_York\",\"TVF\":\"America/Chicago\",\"TVI\":\"America/New_York\",\"TVL\":\"America/Los_Angeles\",\"TVS\":\"Asia/Shanghai\",\"TVU\":\"Pacific/Fiji\",\"TVY\":\"Asia/Yangon\",\"TWA\":\"America/Anchorage\",\"TWB\":\"Australia/Brisbane\",\"TWC\":\"Asia/Shanghai\",\"TWD\":\"America/Los_Angeles\",\"TWE\":\"America/Anchorage\",\"TWF\":\"America/Denver\",\"TWH\":\"America/Los_Angeles\",\"TWN\":\"Australia/Brisbane\",\"TWP\":\"Australia/Brisbane\",\"TWT\":\"Asia/Manila\",\"TWU\":\"Asia/Kuala_Lumpur\",\"TWY\":\"Pacific/Port_Moresby\",\"TWZ\":\"Pacific/Auckland\",\"TXE\":\"Asia/Jakarta\",\"TXF\":\"America/Belem\",\"TXK\":\"America/Chicago\",\"TXL\":\"Europe/Berlin\",\"TXM\":\"Asia/Jayapura\",\"TXN\":\"Asia/Shanghai\",\"TXR\":\"Australia/Brisbane\",\"TXU\":\"Africa/Abidjan\",\"TYA\":\"Europe/Moscow\",\"TYB\":\"Australia/Sydney\",\"TYD\":\"Asia/Yakutsk\",\"TYE\":\"America/Anchorage\",\"TYF\":\"Europe/Stockholm\",\"TYG\":\"Australia/Brisbane\",\"TYL\":\"America/Lima\",\"TYM\":\"America/Nassau\",\"TYN\":\"Asia/Shanghai\",\"TYP\":\"Australia/Darwin\",\"TYR\":\"America/Chicago\",\"TYS\":\"America/New_York\",\"TYT\":\"America/Montevideo\",\"TYZ\":\"America/Phoenix\",\"TZA\":\"America/Belize\",\"TZL\":\"Europe/Sarajevo\",\"TZM\":\"America/Mexico_City\",\"TZN\":\"America/Nassau\",\"TZX\":\"Europe/Istanbul\",\"UAB\":\"Europe/Istanbul\",\"UAC\":\"America/Hermosillo\",\"UAE\":\"Pacific/Port_Moresby\",\"UAH\":\"Pacific/Marquesas\",\"UAI\":\"Asia/Dili\",\"UAK\":\"America/Godthab\",\"UAL\":\"Africa/Luanda\",\"UAM\":\"Pacific/Guam\",\"UAP\":\"Pacific/Marquesas\",\"UAQ\":\"America/Argentina/Buenos_Aires\",\"UAR\":\"Africa/Casablanca\",\"UAS\":\"Africa/Nairobi\",\"UAX\":\"America/Guatemala\",\"UBA\":\"America/Sao_Paulo\",\"UBB\":\"Australia/Brisbane\",\"UBI\":\"Pacific/Bougainville\",\"UBJ\":\"Asia/Tokyo\",\"UBN\":\"Asia/Ulaanbaatar\",\"UBP\":\"Asia/Bangkok\",\"UBR\":\"Asia/Jayapura\",\"UBS\":\"America/Chicago\",\"UBT\":\"America/Sao_Paulo\",\"UBU\":\"Australia/Perth\",\"UCA\":\"America/New_York\",\"UCB\":\"Asia/Shanghai\",\"UCC\":\"America/Los_Angeles\",\"UCE\":\"America/Chicago\",\"UCK\":\"Europe/Kiev\",\"UCN\":\"Africa/Monrovia\",\"UCT\":\"Europe/Moscow\",\"UCY\":\"America/Chicago\",\"UDA\":\"Australia/Brisbane\",\"UDD\":\"America/Los_Angeles\",\"UDE\":\"Europe/Amsterdam\",\"UDI\":\"America/Sao_Paulo\",\"UDJ\":\"Europe/Kiev\",\"UDN\":\"Europe/Rome\",\"UDO\":\"Asia/Vientiane\",\"UDR\":\"Asia/Kolkata\",\"UEE\":\"Australia/Hobart\",\"UEL\":\"Africa/Maputo\",\"UEO\":\"Asia/Tokyo\",\"UER\":\"Europe/Madrid\",\"UES\":\"America/Chicago\",\"UET\":\"Asia/Karachi\",\"UFA\":\"Asia/Yekaterinburg\",\"UGA\":\"Asia/Ulaanbaatar\",\"UGB\":\"America/Anchorage\",\"UGC\":\"Asia/Tashkent\",\"UGI\":\"America/Anchorage\",\"UGL\":\"Antarctica/Palmer\",\"UGN\":\"America/Chicago\",\"UGO\":\"Africa/Luanda\",\"UGS\":\"America/Anchorage\",\"UGT\":\"Asia/Ulaanbaatar\",\"UGU\":\"Asia/Jayapura\",\"UHE\":\"Europe/Prague\",\"UHF\":\"Europe/London\",\"UIB\":\"America/Bogota\",\"UIH\":\"Asia/Ho_Chi_Minh\",\"UII\":\"America/Tegucigalpa\",\"UIK\":\"Asia/Irkutsk\",\"UIL\":\"America/Los_Angeles\",\"UIN\":\"America/Chicago\",\"UIO\":\"America/Guayaquil\",\"UIP\":\"Europe/Paris\",\"UIQ\":\"Pacific/Efate\",\"UIR\":\"Australia/Sydney\",\"UIT\":\"Pacific/Majuro\",\"UIZ\":\"America/New_York\",\"UJE\":\"Pacific/Majuro\",\"UKA\":\"Africa/Nairobi\",\"UKB\":\"Asia/Tokyo\",\"UKG\":\"Asia/Vladivostok\",\"UKH\":\"Asia/Muscat\",\"UKI\":\"America/Los_Angeles\",\"UKK\":\"Asia/Almaty\",\"UKN\":\"America/Chicago\",\"UKR\":\"Asia/Aden\",\"UKS\":\"Europe/Simferopol\",\"UKT\":\"America/New_York\",\"UKU\":\"Pacific/Port_Moresby\",\"UKX\":\"Asia/Irkutsk\",\"ULA\":\"America/Argentina/Buenos_Aires\",\"ULB\":\"Pacific/Efate\",\"ULC\":\"America/Santiago\",\"ULD\":\"Africa/Johannesburg\",\"ULE\":\"Pacific/Port_Moresby\",\"ULG\":\"Asia/Ulaanbaatar\",\"ULH\":\"Asia/Riyadh\",\"ULI\":\"Pacific/Chuuk\",\"ULK\":\"Asia/Yakutsk\",\"ULL\":\"Europe/London\",\"ULM\":\"America/Chicago\",\"ULN\":\"Asia/Ulaanbaatar\",\"ULO\":\"Asia/Ulaanbaatar\",\"ULP\":\"Australia/Brisbane\",\"ULQ\":\"America/Bogota\",\"ULS\":\"America/Bogota\",\"ULU\":\"Africa/Kampala\",\"ULV\":\"Europe/Samara\",\"ULX\":\"Africa/Johannesburg\",\"ULY\":\"Europe/Samara\",\"ULZ\":\"Asia/Ulaanbaatar\",\"UMB\":\"America/Anchorage\",\"UMC\":\"Pacific/Port_Moresby\",\"UMD\":\"America/Godthab\",\"UME\":\"Europe/Stockholm\",\"UMI\":\"America/Lima\",\"UMM\":\"America/Anchorage\",\"UMR\":\"Australia/Adelaide\",\"UMS\":\"Asia/Yakutsk\",\"UMT\":\"America/Anchorage\",\"UMU\":\"America/Sao_Paulo\",\"UMY\":\"Europe/Kiev\",\"UMZ\":\"America/Chicago\",\"UNA\":\"America/Belem\",\"UNC\":\"America/Bogota\",\"UND\":\"Asia/Kabul\",\"UNE\":\"Africa/Maseru\",\"UNG\":\"Pacific/Port_Moresby\",\"UNI\":\"America/St_Vincent\",\"UNK\":\"America/Anchorage\",\"UNN\":\"Asia/Bangkok\",\"UNR\":\"Asia/Ulaanbaatar\",\"UNS\":\"America/Anchorage\",\"UNT\":\"Europe/London\",\"UNU\":\"America/Chicago\",\"UOL\":\"Asia/Makassar\",\"UON\":\"Asia/Vientiane\",\"UOS\":\"America/Chicago\",\"UOX\":\"America/Chicago\",\"UPA\":\"America/Havana\",\"UPB\":\"America/Havana\",\"UPC\":\"America/Caracas\",\"UPF\":\"Europe/Berlin\",\"UPG\":\"Asia/Makassar\",\"UPK\":\"America/Godthab\",\"UPL\":\"America/Costa_Rica\",\"UPN\":\"America/Mexico_City\",\"UPP\":\"Pacific/Honolulu\",\"UPR\":\"Pacific/Port_Moresby\",\"UPV\":\"Europe/London\",\"UQE\":\"America/Anchorage\",\"URA\":\"Asia/Oral\",\"URB\":\"America/Sao_Paulo\",\"URC\":\"Asia/Shanghai\",\"URD\":\"Europe/Berlin\",\"URE\":\"Europe/Tallinn\",\"URG\":\"America/Sao_Paulo\",\"URI\":\"America/Bogota\",\"URJ\":\"Asia/Yekaterinburg\",\"URM\":\"America/Caracas\",\"URN\":\"Asia/Kabul\",\"URO\":\"Europe/Paris\",\"URR\":\"America/Bogota\",\"URS\":\"Europe/Moscow\",\"URT\":\"Asia/Bangkok\",\"URU\":\"Pacific/Port_Moresby\",\"URY\":\"Asia/Riyadh\",\"URZ\":\"Asia/Kabul\",\"USA\":\"America/New_York\",\"USH\":\"America/Argentina/Buenos_Aires\",\"USI\":\"America/Guyana\",\"USJ\":\"Asia/Almaty\",\"USK\":\"Europe/Moscow\",\"USL\":\"Australia/Perth\",\"USM\":\"Asia/Bangkok\",\"USN\":\"Asia/Seoul\",\"USO\":\"Pacific/Port_Moresby\",\"USQ\":\"Europe/Istanbul\",\"USR\":\"Asia/Vladivostok\",\"USS\":\"America/Havana\",\"UST\":\"America/New_York\",\"USU\":\"Asia/Manila\",\"UTA\":\"Africa/Harare\",\"UTB\":\"Australia/Brisbane\",\"UTC\":\"Europe/Amsterdam\",\"UTD\":\"Australia/Darwin\",\"UTE\":\"Africa/Johannesburg\",\"UTG\":\"Africa/Maseru\",\"UTH\":\"Asia/Bangkok\",\"UTI\":\"Europe/Helsinki\",\"UTK\":\"Pacific/Majuro\",\"UTM\":\"America/Chicago\",\"UTN\":\"Africa/Johannesburg\",\"UTO\":\"America/Anchorage\",\"UTP\":\"Asia/Bangkok\",\"UTR\":\"Asia/Bangkok\",\"UTS\":\"Europe/Moscow\",\"UTT\":\"Africa/Johannesburg\",\"UTU\":\"America/Panama\",\"UTW\":\"Africa/Johannesburg\",\"UUA\":\"Europe/Moscow\",\"UUD\":\"Asia/Irkutsk\",\"UUK\":\"America/Anchorage\",\"UUN\":\"Asia/Ulaanbaatar\",\"UUS\":\"Asia/Sakhalin\",\"UUU\":\"Pacific/Port_Moresby\",\"UVA\":\"America/Chicago\",\"UVE\":\"Pacific/Noumea\",\"UVF\":\"America/St_Lucia\",\"UVI\":\"America/Sao_Paulo\",\"UVL\":\"Africa/Cairo\",\"UVO\":\"Pacific/Port_Moresby\",\"UWA\":\"America/New_York\",\"UYL\":\"Africa/Khartoum\",\"UYN\":\"Asia/Shanghai\",\"UYU\":\"America/La_Paz\",\"UZC\":\"Europe/Belgrade\",\"UZH\":\"Asia/Riyadh\",\"UZR\":\"Asia/Almaty\",\"UZU\":\"America/Argentina/Buenos_Aires\",\"VAA\":\"Europe/Helsinki\",\"VAB\":\"America/Bogota\",\"VAC\":\"Europe/Berlin\",\"VAD\":\"America/New_York\",\"VAF\":\"Europe/Paris\",\"VAG\":\"America/Sao_Paulo\",\"VAH\":\"America/La_Paz\",\"VAI\":\"Pacific/Port_Moresby\",\"VAK\":\"America/Anchorage\",\"VAL\":\"America/Belem\",\"VAM\":\"Indian/Maldives\",\"VAN\":\"Europe/Istanbul\",\"VAO\":\"Pacific/Guadalcanal\",\"VAP\":\"America/Santiago\",\"VAR\":\"Europe/Sofia\",\"VAS\":\"Europe/Istanbul\",\"VAT\":\"Indian/Antananarivo\",\"VAU\":\"Pacific/Fiji\",\"VAV\":\"Pacific/Tongatapu\",\"VAW\":\"Europe/Oslo\",\"VAZ\":\"Europe/Paris\",\"VBA\":\"Asia/Yangon\",\"VBC\":\"Asia/Yangon\",\"VBG\":\"America/Los_Angeles\",\"VBM\":\"America/Anchorage\",\"VBP\":\"Asia/Yangon\",\"VBS\":\"Europe/Rome\",\"VBV\":\"Pacific/Fiji\",\"VBY\":\"Europe/Stockholm\",\"VCA\":\"Asia/Ho_Chi_Minh\",\"VCB\":\"America/Anchorage\",\"VCC\":\"Africa/Douala\",\"VCD\":\"Australia/Darwin\",\"VCE\":\"Europe/Rome\",\"VCF\":\"America/Argentina/Buenos_Aires\",\"VCH\":\"America/Montevideo\",\"VCL\":\"Asia/Ho_Chi_Minh\",\"VCP\":\"America/Sao_Paulo\",\"VCR\":\"America/Caracas\",\"VCS\":\"Asia/Ho_Chi_Minh\",\"VCT\":\"America/Chicago\",\"VCV\":\"America/Los_Angeles\",\"VDA\":\"Asia/Jerusalem\",\"VDB\":\"Europe/Oslo\",\"VDC\":\"America/Belem\",\"VDE\":\"Atlantic/Canary\",\"VDF\":\"America/New_York\",\"VDH\":\"Asia/Ho_Chi_Minh\",\"VDI\":\"America/New_York\",\"VDM\":\"America/Argentina/Buenos_Aires\",\"VDO\":\"Asia/Ho_Chi_Minh\",\"VDP\":\"America/Caracas\",\"VDR\":\"America/Argentina/Buenos_Aires\",\"VDS\":\"Europe/Oslo\",\"VDU\":\"America/Chicago\",\"VDY\":\"Asia/Kolkata\",\"VDZ\":\"America/Anchorage\",\"VEE\":\"America/Anchorage\",\"VEG\":\"America/Guyana\",\"VEJ\":\"Europe/Copenhagen\",\"VEL\":\"America/Denver\",\"VER\":\"America/Mexico_City\",\"VEV\":\"Pacific/Guadalcanal\",\"VEX\":\"America/Chicago\",\"VEY\":\"Atlantic/Reykjavik\",\"VFA\":\"Africa/Harare\",\"VGA\":\"Asia/Kolkata\",\"VGD\":\"Europe/Moscow\",\"VGO\":\"Europe/Madrid\",\"VGS\":\"America/Argentina/Buenos_Aires\",\"VGT\":\"America/Los_Angeles\",\"VGZ\":\"America/Bogota\",\"VHC\":\"Africa/Luanda\",\"VHM\":\"Europe/Stockholm\",\"VHN\":\"America/Chicago\",\"VHO\":\"Africa/Maputo\",\"VHV\":\"Asia/Yakutsk\",\"VHY\":\"Europe/Paris\",\"VHZ\":\"Pacific/Tahiti\",\"VIA\":\"America/Sao_Paulo\",\"VIB\":\"America/Mazatlan\",\"VIC\":\"Europe/Rome\",\"VID\":\"Europe/Sofia\",\"VIE\":\"Europe/Vienna\",\"VIF\":\"Europe/Rome\",\"VIG\":\"America/Caracas\",\"VIH\":\"America/Chicago\",\"VII\":\"Asia/Ho_Chi_Minh\",\"VIJ\":\"America/Tortola\",\"VIL\":\"Africa/Casablanca\",\"VIN\":\"Europe/Kiev\",\"VIQ\":\"Asia/Jayapura\",\"VIR\":\"Africa/Johannesburg\",\"VIS\":\"America/Los_Angeles\",\"VIT\":\"Europe/Madrid\",\"VIU\":\"Pacific/Guadalcanal\",\"VIV\":\"Pacific/Port_Moresby\",\"VIX\":\"America/Sao_Paulo\",\"VIY\":\"Europe/Paris\",\"VJB\":\"Africa/Maputo\",\"VJI\":\"America/New_York\",\"VJQ\":\"Africa/Maputo\",\"VKG\":\"Asia/Ho_Chi_Minh\",\"VKO\":\"Europe/Moscow\",\"VKS\":\"America/Chicago\",\"VKT\":\"Europe/Moscow\",\"VKW\":\"America/Anchorage\",\"VLA\":\"America/Chicago\",\"VLC\":\"Europe/Madrid\",\"VLD\":\"America/New_York\",\"VLE\":\"America/Phoenix\",\"VLG\":\"America/Argentina/Buenos_Aires\",\"VLI\":\"Pacific/Efate\",\"VLK\":\"Europe/Moscow\",\"VLL\":\"Europe/Madrid\",\"VLM\":\"America/La_Paz\",\"VLN\":\"America/Caracas\",\"VLO\":\"America/Los_Angeles\",\"VLP\":\"America/Campo_Grande\",\"VLR\":\"America/Santiago\",\"VLS\":\"Pacific/Efate\",\"VLU\":\"Europe/Moscow\",\"VLV\":\"America/Caracas\",\"VLY\":\"Europe/London\",\"VME\":\"America/Argentina/Buenos_Aires\",\"VMI\":\"America/Asuncion\",\"VMU\":\"Pacific/Port_Moresby\",\"VNA\":\"Asia/Vientiane\",\"VNC\":\"America/New_York\",\"VND\":\"Indian/Antananarivo\",\"VNE\":\"Europe/Paris\",\"VNG\":\"Asia/Vientiane\",\"VNO\":\"Europe/Vilnius\",\"VNR\":\"Australia/Brisbane\",\"VNS\":\"Asia/Kolkata\",\"VNX\":\"Africa/Maputo\",\"VNY\":\"America/Los_Angeles\",\"VOG\":\"Europe/Samara\",\"VOH\":\"Indian/Antananarivo\",\"VOI\":\"Africa/Monrovia\",\"VOK\":\"America/Chicago\",\"VOL\":\"Europe/Athens\",\"VOT\":\"America/Sao_Paulo\",\"VOZ\":\"Europe/Moscow\",\"VPE\":\"Africa/Luanda\",\"VPG\":\"Africa/Nairobi\",\"VPN\":\"Atlantic/Reykjavik\",\"VPS\":\"America/Chicago\",\"VPY\":\"Africa/Maputo\",\"VPZ\":\"America/Chicago\",\"VQQ\":\"America/New_York\",\"VQS\":\"America/Puerto_Rico\",\"VRA\":\"America/Havana\",\"VRB\":\"America/New_York\",\"VRC\":\"Asia/Manila\",\"VRE\":\"Africa/Johannesburg\",\"VRK\":\"Europe/Helsinki\",\"VRL\":\"Europe/Lisbon\",\"VRN\":\"Europe/Rome\",\"VRO\":\"America/Havana\",\"VRS\":\"America/Chicago\",\"VRU\":\"Africa/Johannesburg\",\"VRY\":\"Europe/Oslo\",\"VSA\":\"America/Mexico_City\",\"VSE\":\"Europe/Lisbon\",\"VSF\":\"America/New_York\",\"VSO\":\"Asia/Ho_Chi_Minh\",\"VST\":\"Europe/Stockholm\",\"VTA\":\"America/Tegucigalpa\",\"VTB\":\"Europe/Minsk\",\"VTE\":\"Asia/Vientiane\",\"VTF\":\"Pacific/Fiji\",\"VTG\":\"Asia/Ho_Chi_Minh\",\"VTL\":\"Europe/Paris\",\"VTM\":\"Asia/Jerusalem\",\"VTN\":\"America/Chicago\",\"VTU\":\"America/Havana\",\"VTZ\":\"Asia/Kolkata\",\"VUP\":\"America/Bogota\",\"VUS\":\"Europe/Moscow\",\"VUU\":\"Africa/Blantyre\",\"VVB\":\"Indian/Antananarivo\",\"VVC\":\"America/Bogota\",\"VVI\":\"America/La_Paz\",\"VVK\":\"Europe/Stockholm\",\"VVN\":\"America/Lima\",\"VVO\":\"Asia/Vladivostok\",\"VVZ\":\"Africa/Algiers\",\"VXC\":\"Africa/Maputo\",\"VXE\":\"Atlantic/Cape_Verde\",\"VXO\":\"Europe/Stockholm\",\"VYD\":\"Africa/Johannesburg\",\"VYI\":\"Asia/Yakutsk\",\"VYS\":\"America/Chicago\",\"WAA\":\"America/Anchorage\",\"WAB\":\"Pacific/Port_Moresby\",\"WAC\":\"Africa/Addis_Ababa\",\"WAD\":\"Indian/Antananarivo\",\"WAE\":\"Asia/Riyadh\",\"WAF\":\"Asia/Karachi\",\"WAG\":\"Pacific/Auckland\",\"WAH\":\"America/Chicago\",\"WAI\":\"Indian/Antananarivo\",\"WAJ\":\"Pacific/Port_Moresby\",\"WAK\":\"Indian/Antananarivo\",\"WAL\":\"America/New_York\",\"WAM\":\"Indian/Antananarivo\",\"WAN\":\"Australia/Brisbane\",\"WAO\":\"Pacific/Port_Moresby\",\"WAP\":\"America/Santiago\",\"WAQ\":\"Indian/Antananarivo\",\"WAR\":\"Asia/Jayapura\",\"WAT\":\"Europe/Dublin\",\"WAU\":\"Australia/Sydney\",\"WAV\":\"Australia/Darwin\",\"WAW\":\"Europe/Warsaw\",\"WAX\":\"Africa/Tripoli\",\"WAY\":\"America/New_York\",\"WAZ\":\"Australia/Brisbane\",\"WBA\":\"Asia/Jayapura\",\"WBB\":\"America/Anchorage\",\"WBC\":\"Pacific/Port_Moresby\",\"WBD\":\"Indian/Antananarivo\",\"WBE\":\"Indian/Antananarivo\",\"WBG\":\"Europe/Berlin\",\"WBI\":\"America/Denver\",\"WBM\":\"Pacific/Port_Moresby\",\"WBN\":\"America/New_York\",\"WBO\":\"Indian/Antananarivo\",\"WBQ\":\"America/Anchorage\",\"WBR\":\"America/New_York\",\"WBU\":\"America/Denver\",\"WBW\":\"America/New_York\",\"WCA\":\"America/Santiago\",\"WCD\":\"Australia/Perth\",\"WCH\":\"America/Santiago\",\"WCR\":\"America/Anchorage\",\"WDA\":\"Asia/Aden\",\"WDB\":\"America/Anchorage\",\"WDG\":\"America/Chicago\",\"WDH\":\"Africa/Windhoek\",\"WDI\":\"Australia/Brisbane\",\"WDN\":\"America/Los_Angeles\",\"WDR\":\"America/New_York\",\"WDS\":\"Asia/Shanghai\",\"WDY\":\"America/Anchorage\",\"WEA\":\"America/Chicago\",\"WED\":\"Pacific/Port_Moresby\",\"WEF\":\"Asia/Shanghai\",\"WEH\":\"Asia/Shanghai\",\"WEI\":\"Australia/Brisbane\",\"WEL\":\"Africa/Johannesburg\",\"WEM\":\"Europe/London\",\"WEP\":\"Pacific/Port_Moresby\",\"WES\":\"Africa/Monrovia\",\"WET\":\"Asia/Jayapura\",\"WEW\":\"Australia/Sydney\",\"WEX\":\"Europe/Dublin\",\"WFB\":\"America/Anchorage\",\"WFD\":\"Europe/London\",\"WFI\":\"Indian/Antananarivo\",\"WFK\":\"America/New_York\",\"WGA\":\"Australia/Sydney\",\"WGB\":\"Asia/Karachi\",\"WGC\":\"Asia/Kolkata\",\"WGE\":\"Australia/Sydney\",\"WGL\":\"America/Guayaquil\",\"WGN\":\"Asia/Shanghai\",\"WGO\":\"America/New_York\",\"WGP\":\"Asia/Makassar\",\"WGT\":\"Australia/Sydney\",\"WGU\":\"Pacific/Port_Moresby\",\"WGY\":\"Africa/Libreville\",\"WHD\":\"America/Anchorage\",\"WHF\":\"Africa/Khartoum\",\"WHK\":\"Pacific/Auckland\",\"WHL\":\"Australia/Sydney\",\"WHO\":\"Pacific/Auckland\",\"WHP\":\"America/Los_Angeles\",\"WHS\":\"Europe/London\",\"WHT\":\"America/Chicago\",\"WHU\":\"Asia/Shanghai\",\"WIC\":\"Europe/London\",\"WID\":\"Europe/Berlin\",\"WIE\":\"Europe/Berlin\",\"WIK\":\"Pacific/Auckland\",\"WIL\":\"Africa/Nairobi\",\"WIN\":\"Australia/Brisbane\",\"WIO\":\"Australia/Sydney\",\"WIR\":\"Pacific/Auckland\",\"WIT\":\"Australia/Perth\",\"WIU\":\"Pacific/Port_Moresby\",\"WJA\":\"Pacific/Majuro\",\"WJF\":\"America/Los_Angeles\",\"WJR\":\"Africa/Nairobi\",\"WJU\":\"Asia/Seoul\",\"WKA\":\"Pacific/Auckland\",\"WKB\":\"Australia/Sydney\",\"WKF\":\"Africa/Johannesburg\",\"WKI\":\"Africa/Harare\",\"WKJ\":\"Asia/Tokyo\",\"WKK\":\"America/Anchorage\",\"WKL\":\"Pacific/Honolulu\",\"WKN\":\"Pacific/Bougainville\",\"WKR\":\"America/Nassau\",\"WLA\":\"Australia/Perth\",\"WLB\":\"America/Anchorage\",\"WLC\":\"Australia/Sydney\",\"WLD\":\"America/Chicago\",\"WLE\":\"Australia/Brisbane\",\"WLG\":\"Pacific/Auckland\",\"WLH\":\"Pacific/Efate\",\"WLK\":\"America/Anchorage\",\"WLL\":\"Australia/Brisbane\",\"WLM\":\"America/New_York\",\"WLN\":\"America/Anchorage\",\"WLO\":\"Australia/Darwin\",\"WLP\":\"Australia/Perth\",\"WLR\":\"America/Anchorage\",\"WLS\":\"Pacific/Wallis\",\"WLW\":\"America/Los_Angeles\",\"WMA\":\"Indian/Antananarivo\",\"WMB\":\"Australia/Sydney\",\"WMC\":\"America/Los_Angeles\",\"WMD\":\"Indian/Antananarivo\",\"WME\":\"Australia/Perth\",\"WMH\":\"America/Chicago\",\"WMI\":\"Europe/Warsaw\",\"WMK\":\"America/Anchorage\",\"WML\":\"Indian/Antananarivo\",\"WMN\":\"Indian/Antananarivo\",\"WMO\":\"America/Anchorage\",\"WMP\":\"Indian/Antananarivo\",\"WMR\":\"Indian/Antananarivo\",\"WMT\":\"Asia/Shanghai\",\"WMV\":\"Indian/Antananarivo\",\"WMX\":\"Asia/Jayapura\",\"WNA\":\"America/Anchorage\",\"WND\":\"Australia/Perth\",\"WNE\":\"Africa/Accra\",\"WNH\":\"Asia/Shanghai\",\"WNI\":\"Asia/Makassar\",\"WNN\":\"America/Winnipeg\",\"WNP\":\"Asia/Manila\",\"WNR\":\"Australia/Brisbane\",\"WNS\":\"Asia/Karachi\",\"WNU\":\"Pacific/Port_Moresby\",\"WNZ\":\"Asia/Shanghai\",\"WOA\":\"Pacific/Port_Moresby\",\"WOB\":\"Europe/London\",\"WOD\":\"America/Anchorage\",\"WOE\":\"Europe/Amsterdam\",\"WOG\":\"Australia/Darwin\",\"WOI\":\"Africa/Monrovia\",\"WOK\":\"America/Caracas\",\"WOL\":\"Australia/Sydney\",\"WON\":\"Australia/Brisbane\",\"WOO\":\"America/Anchorage\",\"WOR\":\"Indian/Antananarivo\",\"WOT\":\"Asia/Taipei\",\"WOW\":\"America/Anchorage\",\"WPA\":\"America/Santiago\",\"WPB\":\"Indian/Antananarivo\",\"WPC\":\"America/Edmonton\",\"WPK\":\"Australia/Brisbane\",\"WPL\":\"America/Vancouver\",\"WPM\":\"Pacific/Port_Moresby\",\"WPO\":\"America/Denver\",\"WPR\":\"America/Santiago\",\"WPU\":\"America/Santiago\",\"WRA\":\"Africa/Addis_Ababa\",\"WRB\":\"America/New_York\",\"WRE\":\"Pacific/Auckland\",\"WRG\":\"America/Anchorage\",\"WRH\":\"America/Anchorage\",\"WRI\":\"America/New_York\",\"WRL\":\"America/Denver\",\"WRN\":\"Australia/Perth\",\"WRO\":\"Europe/Warsaw\",\"WRW\":\"Australia/Perth\",\"WRY\":\"Europe/London\",\"WRZ\":\"Asia/Colombo\",\"WSA\":\"Pacific/Port_Moresby\",\"WSB\":\"America/Anchorage\",\"WSD\":\"America/Denver\",\"WSF\":\"America/Anchorage\",\"WSG\":\"America/New_York\",\"WSH\":\"America/New_York\",\"WSK\":\"Asia/Shanghai\",\"WSM\":\"America/Anchorage\",\"WSN\":\"America/Anchorage\",\"WSO\":\"America/Paramaribo\",\"WSP\":\"America/Managua\",\"WSR\":\"Asia/Jayapura\",\"WST\":\"America/New_York\",\"WSU\":\"Pacific/Port_Moresby\",\"WSX\":\"America/Los_Angeles\",\"WSY\":\"Australia/Brisbane\",\"WSZ\":\"Pacific/Auckland\",\"WTA\":\"Indian/Antananarivo\",\"WTB\":\"Australia/Brisbane\",\"WTD\":\"America/Nassau\",\"WTE\":\"Pacific/Majuro\",\"WTK\":\"America/Anchorage\",\"WTL\":\"America/Anchorage\",\"WTN\":\"Europe/London\",\"WTO\":\"Pacific/Majuro\",\"WTP\":\"Pacific/Port_Moresby\",\"WTR\":\"America/Phoenix\",\"WTS\":\"Indian/Antananarivo\",\"WTT\":\"Pacific/Port_Moresby\",\"WTZ\":\"Pacific/Auckland\",\"WUA\":\"Asia/Shanghai\",\"WUD\":\"Australia/Adelaide\",\"WUG\":\"Pacific/Port_Moresby\",\"WUH\":\"Asia/Shanghai\",\"WUI\":\"Australia/Perth\",\"WUM\":\"Pacific/Port_Moresby\",\"WUN\":\"Australia/Perth\",\"WUS\":\"Asia/Shanghai\",\"WUT\":\"Asia/Shanghai\",\"WUU\":\"Africa/Juba\",\"WUV\":\"Pacific/Port_Moresby\",\"WUX\":\"Asia/Shanghai\",\"WUZ\":\"Asia/Shanghai\",\"WVB\":\"Africa/Windhoek\",\"WVI\":\"America/Los_Angeles\",\"WVK\":\"Indian/Antananarivo\",\"WVL\":\"America/New_York\",\"WVN\":\"Europe/Berlin\",\"WWA\":\"America/Anchorage\",\"WWD\":\"America/New_York\",\"WWI\":\"Australia/Perth\",\"WWK\":\"Pacific/Port_Moresby\",\"WWP\":\"America/Anchorage\",\"WWR\":\"America/Chicago\",\"WWT\":\"America/Anchorage\",\"WWY\":\"Australia/Sydney\",\"WXN\":\"Asia/Shanghai\",\"WYA\":\"Australia/Adelaide\",\"WYB\":\"America/Anchorage\",\"WYE\":\"Africa/Freetown\",\"WYN\":\"Australia/Perth\",\"WYS\":\"America/Denver\",\"WZA\":\"Africa/Accra\",\"WZQ\":\"Asia/Shanghai\",\"WZY\":\"America/Nassau\",\"XAI\":\"Asia/Shanghai\",\"XAL\":\"America/Hermosillo\",\"XAP\":\"America/Sao_Paulo\",\"XAR\":\"Africa/Ouagadougou\",\"XAU\":\"America/Cayenne\",\"XAY\":\"Asia/Vientiane\",\"XBB\":\"America/Vancouver\",\"XBE\":\"America/Winnipeg\",\"XBG\":\"Africa/Ouagadougou\",\"XBJ\":\"Asia/Tehran\",\"XBL\":\"Africa/Addis_Ababa\",\"XBN\":\"Pacific/Port_Moresby\",\"XBO\":\"Africa/Ouagadougou\",\"XBR\":\"America/Toronto\",\"XCH\":\"Indian/Christmas\",\"XCL\":\"America/Regina\",\"XCM\":\"America/Toronto\",\"XCN\":\"Asia/Manila\",\"XCO\":\"Australia/Sydney\",\"XCR\":\"Europe/Paris\",\"XDE\":\"Africa/Ouagadougou\",\"XDJ\":\"Africa/Ouagadougou\",\"XEN\":\"Asia/Shanghai\",\"XEO\":\"America/Godthab\",\"XEQ\":\"America/Godthab\",\"XES\":\"America/Chicago\",\"XEX\":\"Europe/Paris\",\"XFN\":\"Asia/Shanghai\",\"XFW\":\"Europe/Berlin\",\"XGA\":\"Africa/Ouagadougou\",\"XGB\":\"Europe/Paris\",\"XGG\":\"Africa/Ouagadougou\",\"XGL\":\"America/Winnipeg\",\"XGN\":\"Africa/Luanda\",\"XGR\":\"America/Toronto\",\"XIC\":\"Asia/Shanghai\",\"XIE\":\"Asia/Vientiane\",\"XIG\":\"America/Belem\",\"XIJ\":\"Asia/Kuwait\",\"XIL\":\"Asia/Shanghai\",\"XIN\":\"Asia/Shanghai\",\"XIQ\":\"America/Godthab\",\"XIY\":\"Asia/Shanghai\",\"XJD\":\"Asia/Qatar\",\"XKA\":\"Africa/Ouagadougou\",\"XKH\":\"Asia/Vientiane\",\"XKO\":\"America/Vancouver\",\"XKS\":\"America/Winnipeg\",\"XKY\":\"Africa/Ouagadougou\",\"XLB\":\"America/Winnipeg\",\"XLF\":\"America/Toronto\",\"XLO\":\"Asia/Ho_Chi_Minh\",\"XLS\":\"Africa/Dakar\",\"XLU\":\"Africa/Ouagadougou\",\"XLW\":\"Europe/Berlin\",\"XMA\":\"Asia/Manila\",\"XMC\":\"Australia/Sydney\",\"XMD\":\"America/Chicago\",\"XMG\":\"Asia/Kathmandu\",\"XMH\":\"Pacific/Tahiti\",\"XMI\":\"Africa/Dar_es_Salaam\",\"XML\":\"Australia/Adelaide\",\"XMN\":\"Asia/Shanghai\",\"XMP\":\"America/Vancouver\",\"XMS\":\"America/Guayaquil\",\"XMY\":\"Australia/Brisbane\",\"XNA\":\"America/Chicago\",\"XNG\":\"Asia/Ho_Chi_Minh\",\"XNH\":\"Asia/Baghdad\",\"XNN\":\"Asia/Shanghai\",\"XNT\":\"Asia/Shanghai\",\"XNU\":\"Africa/Ouagadougou\",\"XPA\":\"Africa/Ouagadougou\",\"XPD\":\"America/Argentina/Buenos_Aires\",\"XPK\":\"America/Winnipeg\",\"XPL\":\"America/Tegucigalpa\",\"XPP\":\"America/Winnipeg\",\"XPR\":\"America/Denver\",\"XPU\":\"America/Anchorage\",\"XQC\":\"Asia/Baghdad\",\"XQP\":\"America/Costa_Rica\",\"XQU\":\"America/Vancouver\",\"XRH\":\"Australia/Sydney\",\"XRR\":\"America/Vancouver\",\"XRY\":\"Europe/Madrid\",\"XSB\":\"Asia/Dubai\",\"XSC\":\"America/Grand_Turk\",\"XSD\":\"America/Los_Angeles\",\"XSE\":\"Africa/Ouagadougou\",\"XSI\":\"America/Winnipeg\",\"XSM\":\"America/New_York\",\"XSO\":\"Asia/Manila\",\"XSP\":\"Asia/Singapore\",\"XTG\":\"Australia/Brisbane\",\"XTL\":\"America/Winnipeg\",\"XTO\":\"Australia/Brisbane\",\"XTR\":\"Australia/Brisbane\",\"XUZ\":\"Asia/Shanghai\",\"XVL\":\"Asia/Ho_Chi_Minh\",\"XWA\":\"America/Chicago\",\"XYA\":\"Pacific/Guadalcanal\",\"XYE\":\"Asia/Yangon\",\"XYR\":\"Pacific/Port_Moresby\",\"XYT\":\"Europe/Paris\",\"XZA\":\"Africa/Ouagadougou\",\"XZD\":\"Europe/Oslo\",\"YAA\":\"America/Vancouver\",\"YAB\":\"America/Iqaluit\",\"YAC\":\"America/Winnipeg\",\"YAD\":\"America/Winnipeg\",\"YAE\":\"America/Vancouver\",\"YAF\":\"America/Toronto\",\"YAG\":\"America/Winnipeg\",\"YAH\":\"America/Toronto\",\"YAI\":\"America/Santiago\",\"YAJ\":\"America/Vancouver\",\"YAK\":\"America/Anchorage\",\"YAL\":\"America/Vancouver\",\"YAM\":\"America/Toronto\",\"YAN\":\"Africa/Lubumbashi\",\"YAO\":\"Africa/Douala\",\"YAP\":\"Pacific/Chuuk\",\"YAQ\":\"America/Vancouver\",\"YAR\":\"America/Toronto\",\"YAS\":\"Pacific/Fiji\",\"YAT\":\"America/Toronto\",\"YAU\":\"America/Toronto\",\"YAV\":\"America/Vancouver\",\"YAW\":\"America/Halifax\",\"YAX\":\"America/Winnipeg\",\"YAY\":\"America/St_Johns\",\"YAZ\":\"America/Vancouver\",\"YBA\":\"America/Edmonton\",\"YBB\":\"America/Edmonton\",\"YBC\":\"America/Toronto\",\"YBD\":\"America/Vancouver\",\"YBE\":\"America/Regina\",\"YBF\":\"America/Vancouver\",\"YBG\":\"America/Toronto\",\"YBH\":\"America/Vancouver\",\"YBI\":\"America/Halifax\",\"YBJ\":\"America/Toronto\",\"YBK\":\"America/Winnipeg\",\"YBL\":\"America/Vancouver\",\"YBM\":\"America/Vancouver\",\"YBN\":\"America/Toronto\",\"YBO\":\"America/Vancouver\",\"YBP\":\"Asia/Shanghai\",\"YBQ\":\"America/Vancouver\",\"YBR\":\"America/Winnipeg\",\"YBS\":\"America/Toronto\",\"YBT\":\"America/Winnipeg\",\"YBV\":\"America/Winnipeg\",\"YBW\":\"America/Vancouver\",\"YBX\":\"America/Blanc-Sablon\",\"YBY\":\"America/Edmonton\",\"YCA\":\"America/Vancouver\",\"YCB\":\"America/Edmonton\",\"YCC\":\"America/Toronto\",\"YCD\":\"America/Vancouver\",\"YCE\":\"America/Toronto\",\"YCF\":\"America/Vancouver\",\"YCG\":\"America/Vancouver\",\"YCH\":\"America/Halifax\",\"YCI\":\"America/Toronto\",\"YCJ\":\"America/Vancouver\",\"YCK\":\"America/Edmonton\",\"YCL\":\"America/Halifax\",\"YCM\":\"America/Toronto\",\"YCN\":\"America/Toronto\",\"YCO\":\"America/Edmonton\",\"YCQ\":\"America/Dawson_Creek\",\"YCR\":\"America/Winnipeg\",\"YCS\":\"America/Winnipeg\",\"YCT\":\"America/Edmonton\",\"YCU\":\"Asia/Shanghai\",\"YCW\":\"America/Vancouver\",\"YCX\":\"America/Halifax\",\"YCY\":\"America/Toronto\",\"YCZ\":\"America/Edmonton\",\"YDA\":\"America/Vancouver\",\"YDB\":\"America/Vancouver\",\"YDC\":\"America/Edmonton\",\"YDE\":\"America/Halifax\",\"YDF\":\"America/St_Johns\",\"YDG\":\"America/Halifax\",\"YDH\":\"America/St_Johns\",\"YDI\":\"America/Halifax\",\"YDJ\":\"America/Regina\",\"YDK\":\"America/Toronto\",\"YDL\":\"America/Vancouver\",\"YDN\":\"America/Winnipeg\",\"YDO\":\"America/Toronto\",\"YDP\":\"America/Halifax\",\"YDQ\":\"America/Dawson_Creek\",\"YDR\":\"America/Regina\",\"YDS\":\"America/Vancouver\",\"YDT\":\"America/Vancouver\",\"YDU\":\"America/Winnipeg\",\"YDV\":\"America/Winnipeg\",\"YDW\":\"America/Winnipeg\",\"YDX\":\"America/Vancouver\",\"YEC\":\"Asia/Seoul\",\"YED\":\"America/Edmonton\",\"YEG\":\"America/Edmonton\",\"YEI\":\"Europe/Istanbul\",\"YEK\":\"America/Winnipeg\",\"YEL\":\"America/Toronto\",\"YEM\":\"America/Toronto\",\"YEN\":\"America/Regina\",\"YEO\":\"Europe/London\",\"YEP\":\"America/Vancouver\",\"YEQ\":\"Pacific/Port_Moresby\",\"YER\":\"America/Toronto\",\"YES\":\"Asia/Tehran\",\"YET\":\"America/Edmonton\",\"YEU\":\"America/Winnipeg\",\"YEV\":\"America/Edmonton\",\"YEY\":\"America/Toronto\",\"YFA\":\"America/Toronto\",\"YFB\":\"America/Toronto\",\"YFC\":\"America/Halifax\",\"YFE\":\"America/Toronto\",\"YFG\":\"America/Toronto\",\"YFH\":\"America/Toronto\",\"YFI\":\"America/Edmonton\",\"YFJ\":\"America/Edmonton\",\"YFL\":\"America/Vancouver\",\"YFO\":\"America/Winnipeg\",\"YFR\":\"America/Edmonton\",\"YFS\":\"America/Edmonton\",\"YFX\":\"America/St_Johns\",\"YGA\":\"America/Toronto\",\"YGB\":\"America/Vancouver\",\"YGC\":\"America/Edmonton\",\"YGE\":\"America/Vancouver\",\"YGG\":\"America/Vancouver\",\"YGH\":\"America/Edmonton\",\"YGJ\":\"Asia/Tokyo\",\"YGK\":\"America/Toronto\",\"YGL\":\"America/Toronto\",\"YGM\":\"America/Winnipeg\",\"YGN\":\"America/Vancouver\",\"YGO\":\"America/Winnipeg\",\"YGP\":\"America/Toronto\",\"YGQ\":\"America/Toronto\",\"YGR\":\"America/Halifax\",\"YGS\":\"America/Vancouver\",\"YGT\":\"America/Toronto\",\"YGV\":\"America/Toronto\",\"YGW\":\"America/Toronto\",\"YGX\":\"America/Winnipeg\",\"YGY\":\"America/Toronto\",\"YGZ\":\"America/Toronto\",\"YHA\":\"America/St_Johns\",\"YHB\":\"America/Regina\",\"YHC\":\"America/Vancouver\",\"YHD\":\"America/Winnipeg\",\"YHE\":\"America/Vancouver\",\"YHF\":\"America/Toronto\",\"YHG\":\"America/St_Johns\",\"YHH\":\"America/Vancouver\",\"YHI\":\"America/Edmonton\",\"YHK\":\"America/Edmonton\",\"YHM\":\"America/Toronto\",\"YHN\":\"America/Toronto\",\"YHO\":\"America/Halifax\",\"YHP\":\"America/Winnipeg\",\"YHR\":\"America/Blanc-Sablon\",\"YHS\":\"America/Vancouver\",\"YHT\":\"America/Vancouver\",\"YHU\":\"America/Toronto\",\"YHY\":\"America/Edmonton\",\"YHZ\":\"America/Halifax\",\"YIA\":\"Asia/Jakarta\",\"YIB\":\"America/Atikokan\",\"YIC\":\"Asia/Shanghai\",\"YIE\":\"Asia/Shanghai\",\"YIF\":\"America/Blanc-Sablon\",\"YIG\":\"America/Vancouver\",\"YIH\":\"Asia/Shanghai\",\"YIK\":\"America/Toronto\",\"YIN\":\"Asia/Shanghai\",\"YIO\":\"America/Toronto\",\"YIP\":\"America/New_York\",\"YIV\":\"America/Winnipeg\",\"YIW\":\"Asia/Shanghai\",\"YJA\":\"America/Edmonton\",\"YJF\":\"America/Edmonton\",\"YJN\":\"America/Toronto\",\"YJO\":\"America/Vancouver\",\"YJP\":\"America/Edmonton\",\"YJT\":\"America/St_Johns\",\"YKA\":\"America/Vancouver\",\"YKC\":\"America/Regina\",\"YKD\":\"America/Toronto\",\"YKE\":\"America/Winnipeg\",\"YKF\":\"America/Toronto\",\"YKG\":\"America/Toronto\",\"YKH\":\"Asia/Shanghai\",\"YKJ\":\"America/Regina\",\"YKK\":\"America/Vancouver\",\"YKL\":\"America/Toronto\",\"YKM\":\"America/Los_Angeles\",\"YKN\":\"America/Chicago\",\"YKO\":\"Europe/Istanbul\",\"YKQ\":\"America/Toronto\",\"YKS\":\"Asia/Yakutsk\",\"YKT\":\"America/Vancouver\",\"YKU\":\"America/Toronto\",\"YKX\":\"America/Toronto\",\"YKY\":\"America/Regina\",\"YKZ\":\"America/Toronto\",\"YLA\":\"America/Vancouver\",\"YLB\":\"America/Edmonton\",\"YLC\":\"America/Toronto\",\"YLD\":\"America/Toronto\",\"YLE\":\"America/Edmonton\",\"YLF\":\"America/Toronto\",\"YLG\":\"Australia/Perth\",\"YLH\":\"America/Toronto\",\"YLI\":\"Europe/Helsinki\",\"YLJ\":\"America/Regina\",\"YLL\":\"America/Edmonton\",\"YLM\":\"America/Vancouver\",\"YLN\":\"Asia/Shanghai\",\"YLO\":\"America/Winnipeg\",\"YLP\":\"America/Toronto\",\"YLQ\":\"America/Toronto\",\"YLR\":\"America/Winnipeg\",\"YLS\":\"America/Toronto\",\"YLT\":\"America/Winnipeg\",\"YLW\":\"America/Vancouver\",\"YLX\":\"Asia/Shanghai\",\"YLY\":\"America/Vancouver\",\"YMA\":\"America/Vancouver\",\"YMB\":\"America/Vancouver\",\"YMC\":\"America/Toronto\",\"YMD\":\"America/Edmonton\",\"YME\":\"America/Toronto\",\"YMF\":\"America/Vancouver\",\"YMG\":\"America/Toronto\",\"YMH\":\"America/St_Johns\",\"YMI\":\"America/Winnipeg\",\"YMJ\":\"America/Regina\",\"YMK\":\"Asia/Yekaterinburg\",\"YML\":\"America/Toronto\",\"YMM\":\"America/Edmonton\",\"YMN\":\"America/Halifax\",\"YMO\":\"America/Toronto\",\"YMP\":\"America/Vancouver\",\"YMR\":\"America/Vancouver\",\"YMS\":\"America/Lima\",\"YMT\":\"America/Toronto\",\"YMU\":\"America/Vancouver\",\"YMV\":\"America/Iqaluit\",\"YMW\":\"America/Toronto\",\"YMX\":\"America/Toronto\",\"YNA\":\"America/Toronto\",\"YNB\":\"Asia/Riyadh\",\"YNC\":\"America/Toronto\",\"YND\":\"America/Toronto\",\"YNE\":\"America/Winnipeg\",\"YNG\":\"America/New_York\",\"YNH\":\"America/Edmonton\",\"YNI\":\"America/Toronto\",\"YNJ\":\"Asia/Shanghai\",\"YNK\":\"America/Vancouver\",\"YNL\":\"America/Regina\",\"YNM\":\"America/Toronto\",\"YNN\":\"Australia/Perth\",\"YNO\":\"America/Winnipeg\",\"YNP\":\"America/Halifax\",\"YNR\":\"America/Winnipeg\",\"YNS\":\"America/Toronto\",\"YNT\":\"Asia/Shanghai\",\"YNY\":\"Asia/Seoul\",\"YNZ\":\"Asia/Shanghai\",\"YOA\":\"America/Edmonton\",\"YOC\":\"America/Vancouver\",\"YOD\":\"America/Edmonton\",\"YOE\":\"America/Edmonton\",\"YOG\":\"America/Toronto\",\"YOH\":\"America/Winnipeg\",\"YOJ\":\"America/Edmonton\",\"YOK\":\"Asia/Tokyo\",\"YOL\":\"Africa/Lagos\",\"YON\":\"Asia/Thimphu\",\"YOO\":\"America/Toronto\",\"YOP\":\"America/Edmonton\",\"YOS\":\"America/Toronto\",\"YOT\":\"Asia/Jerusalem\",\"YOW\":\"America/Toronto\",\"YOY\":\"America/Toronto\",\"YPA\":\"America/Regina\",\"YPB\":\"America/Vancouver\",\"YPC\":\"America/Edmonton\",\"YPD\":\"America/Toronto\",\"YPE\":\"America/Edmonton\",\"YPF\":\"America/Vancouver\",\"YPG\":\"America/Winnipeg\",\"YPH\":\"America/Toronto\",\"YPI\":\"America/Vancouver\",\"YPJ\":\"America/Toronto\",\"YPL\":\"America/Atikokan\",\"YPM\":\"America/Winnipeg\",\"YPN\":\"America/Toronto\",\"YPO\":\"America/Toronto\",\"YPP\":\"America/Edmonton\",\"YPQ\":\"America/Toronto\",\"YPR\":\"America/Vancouver\",\"YPS\":\"America/Halifax\",\"YPT\":\"America/Vancouver\",\"YPW\":\"America/Vancouver\",\"YPX\":\"America/Toronto\",\"YPY\":\"America/Edmonton\",\"YPZ\":\"America/Vancouver\",\"YQA\":\"America/Toronto\",\"YQB\":\"America/Toronto\",\"YQC\":\"America/Toronto\",\"YQD\":\"America/Winnipeg\",\"YQE\":\"America/Vancouver\",\"YQF\":\"America/Edmonton\",\"YQG\":\"America/Toronto\",\"YQH\":\"America/Vancouver\",\"YQI\":\"America/Halifax\",\"YQJ\":\"America/Vancouver\",\"YQK\":\"America/Winnipeg\",\"YQL\":\"America/Edmonton\",\"YQM\":\"America/Halifax\",\"YQN\":\"America/Toronto\",\"YQQ\":\"America/Vancouver\",\"YQR\":\"America/Regina\",\"YQS\":\"America/Toronto\",\"YQT\":\"America/Toronto\",\"YQU\":\"America/Edmonton\",\"YQV\":\"America/Regina\",\"YQW\":\"America/Regina\",\"YQX\":\"America/St_Johns\",\"YQY\":\"America/Halifax\",\"YQZ\":\"America/Vancouver\",\"YR6\":\"America/Vancouver\",\"YRA\":\"America/Edmonton\",\"YRB\":\"America/Winnipeg\",\"YRC\":\"America/Vancouver\",\"YRD\":\"America/Vancouver\",\"YRE\":\"America/Winnipeg\",\"YRF\":\"America/Halifax\",\"YRG\":\"America/Halifax\",\"YRI\":\"America/Toronto\",\"YRJ\":\"America/Toronto\",\"YRL\":\"America/Winnipeg\",\"YRM\":\"America/Edmonton\",\"YRN\":\"America/Vancouver\",\"YRO\":\"America/Toronto\",\"YRQ\":\"America/Toronto\",\"YRR\":\"America/Vancouver\",\"YRS\":\"America/Winnipeg\",\"YRT\":\"America/Winnipeg\",\"YRV\":\"America/Vancouver\",\"YSA\":\"America/Halifax\",\"YSB\":\"America/Toronto\",\"YSC\":\"America/Toronto\",\"YSD\":\"America/Edmonton\",\"YSE\":\"America/Vancouver\",\"YSF\":\"America/Regina\",\"YSG\":\"America/Edmonton\",\"YSH\":\"America/Toronto\",\"YSI\":\"America/Toronto\",\"YSJ\":\"America/Halifax\",\"YSK\":\"America/Toronto\",\"YSL\":\"America/Halifax\",\"YSM\":\"America/Edmonton\",\"YSN\":\"America/Vancouver\",\"YSO\":\"America/Halifax\",\"YSP\":\"America/Toronto\",\"YSQ\":\"Asia/Shanghai\",\"YSR\":\"America/Toronto\",\"YST\":\"America/Winnipeg\",\"YSU\":\"America/Halifax\",\"YSV\":\"America/Halifax\",\"YSX\":\"America/Vancouver\",\"YSY\":\"America/Edmonton\",\"YSZ\":\"America/Vancouver\",\"YTA\":\"America/Toronto\",\"YTB\":\"America/Vancouver\",\"YTC\":\"America/Vancouver\",\"YTD\":\"America/Winnipeg\",\"YTE\":\"America/Toronto\",\"YTF\":\"America/Toronto\",\"YTG\":\"America/Vancouver\",\"YTH\":\"America/Winnipeg\",\"YTJ\":\"America/Toronto\",\"YTK\":\"America/Toronto\",\"YTL\":\"America/Winnipeg\",\"YTM\":\"America/Toronto\",\"YTN\":\"America/Toronto\",\"YTP\":\"America/Vancouver\",\"YTQ\":\"America/Toronto\",\"YTR\":\"America/Toronto\",\"YTS\":\"America/Toronto\",\"YTT\":\"America/Regina\",\"YTU\":\"America/Vancouver\",\"YTX\":\"America/Vancouver\",\"YTY\":\"Asia/Shanghai\",\"YTZ\":\"America/Toronto\",\"YUA\":\"Asia/Shanghai\",\"YUB\":\"America/Edmonton\",\"YUD\":\"America/Toronto\",\"YUE\":\"Australia/Darwin\",\"YUF\":\"America/Edmonton\",\"YUL\":\"America/Toronto\",\"YUM\":\"America/Phoenix\",\"YUS\":\"Asia/Shanghai\",\"YUT\":\"America/Winnipeg\",\"YUX\":\"America/Toronto\",\"YUY\":\"America/Toronto\",\"YVB\":\"America/Toronto\",\"YVC\":\"America/Regina\",\"YVD\":\"Pacific/Port_Moresby\",\"YVE\":\"America/Vancouver\",\"YVG\":\"America/Edmonton\",\"YVM\":\"America/Toronto\",\"YVO\":\"America/Toronto\",\"YVP\":\"America/Toronto\",\"YVQ\":\"America/Edmonton\",\"YVR\":\"America/Vancouver\",\"YVT\":\"America/Regina\",\"YVV\":\"America/Toronto\",\"YVZ\":\"America/Winnipeg\",\"YWA\":\"America/Toronto\",\"YWB\":\"America/Toronto\",\"YWF\":\"America/Halifax\",\"YWG\":\"America/Winnipeg\",\"YWH\":\"America/Vancouver\",\"YWJ\":\"America/Edmonton\",\"YWK\":\"America/Halifax\",\"YWL\":\"America/Vancouver\",\"YWM\":\"America/St_Johns\",\"YWN\":\"America/Toronto\",\"YWO\":\"America/Edmonton\",\"YWP\":\"America/Toronto\",\"YWQ\":\"America/Toronto\",\"YWR\":\"America/Toronto\",\"YWS\":\"America/Vancouver\",\"YWY\":\"America/Edmonton\",\"YXC\":\"America/Edmonton\",\"YXE\":\"America/Regina\",\"YXF\":\"America/Vancouver\",\"YXH\":\"America/Edmonton\",\"YXI\":\"America/Toronto\",\"YXJ\":\"America/Dawson_Creek\",\"YXK\":\"America/Toronto\",\"YXL\":\"America/Winnipeg\",\"YXN\":\"America/Winnipeg\",\"YXP\":\"America/Toronto\",\"YXQ\":\"America/Vancouver\",\"YXR\":\"America/Toronto\",\"YXS\":\"America/Vancouver\",\"YXT\":\"America/Vancouver\",\"YXU\":\"America/Toronto\",\"YXX\":\"America/Vancouver\",\"YXY\":\"America/Vancouver\",\"YXZ\":\"America/Toronto\",\"YYA\":\"Asia/Shanghai\",\"YYB\":\"America/Toronto\",\"YYC\":\"America/Edmonton\",\"YYD\":\"America/Vancouver\",\"YYE\":\"America/Dawson_Creek\",\"YYF\":\"America/Vancouver\",\"YYG\":\"America/Halifax\",\"YYH\":\"America/Edmonton\",\"YYI\":\"America/Winnipeg\",\"YYJ\":\"America/Vancouver\",\"YYL\":\"America/Winnipeg\",\"YYM\":\"America/Edmonton\",\"YYN\":\"America/Regina\",\"YYQ\":\"America/Winnipeg\",\"YYR\":\"America/Halifax\",\"YYT\":\"America/St_Johns\",\"YYU\":\"America/Toronto\",\"YYW\":\"America/Toronto\",\"YYY\":\"America/Toronto\",\"YYZ\":\"America/Toronto\",\"YZA\":\"America/Vancouver\",\"YZC\":\"America/Vancouver\",\"YZE\":\"America/Toronto\",\"YZF\":\"America/Edmonton\",\"YZG\":\"America/Toronto\",\"YZH\":\"America/Edmonton\",\"YZM\":\"America/St_Johns\",\"YZP\":\"America/Vancouver\",\"YZR\":\"America/Toronto\",\"YZS\":\"America/Atikokan\",\"YZT\":\"America/Vancouver\",\"YZU\":\"America/Edmonton\",\"YZV\":\"America/Toronto\",\"YZW\":\"America/Vancouver\",\"YZX\":\"America/Halifax\",\"YZY\":\"Asia/Shanghai\",\"YZZ\":\"America/Vancouver\",\"ZAA\":\"America/Vancouver\",\"ZAC\":\"America/Winnipeg\",\"ZAD\":\"Europe/Zagreb\",\"ZAG\":\"Europe/Zagreb\",\"ZAH\":\"Asia/Tehran\",\"ZAJ\":\"Asia/Kabul\",\"ZAL\":\"America/Santiago\",\"ZAM\":\"Asia/Manila\",\"ZAO\":\"Europe/Paris\",\"ZAR\":\"Africa/Lagos\",\"ZAT\":\"Asia/Shanghai\",\"ZAZ\":\"Europe/Madrid\",\"ZBE\":\"Europe/Prague\",\"ZBF\":\"America/Halifax\",\"ZBK\":\"Europe/Podgorica\",\"ZBL\":\"Australia/Brisbane\",\"ZBM\":\"America/Toronto\",\"ZBO\":\"Australia/Brisbane\",\"ZBR\":\"Asia/Tehran\",\"ZBY\":\"Asia/Vientiane\",\"ZCL\":\"America/Mexico_City\",\"ZCO\":\"America/Santiago\",\"ZDY\":\"Asia/Dubai\",\"ZEC\":\"Africa/Johannesburg\",\"ZEG\":\"Asia/Jayapura\",\"ZEL\":\"America/Vancouver\",\"ZEM\":\"America/Toronto\",\"ZEN\":\"Pacific/Port_Moresby\",\"ZER\":\"Asia/Kolkata\",\"ZFA\":\"America/Vancouver\",\"ZFB\":\"America/Halifax\",\"ZFD\":\"America/Regina\",\"ZFL\":\"America/Winnipeg\",\"ZFM\":\"America/Edmonton\",\"ZFN\":\"America/Edmonton\",\"ZFW\":\"America/Edmonton\",\"ZGF\":\"America/Vancouver\",\"ZGI\":\"America/Winnipeg\",\"ZGL\":\"Australia/Brisbane\",\"ZGM\":\"Africa/Lusaka\",\"ZGR\":\"America/Winnipeg\",\"ZGS\":\"America/Blanc-Sablon\",\"ZGU\":\"Pacific/Efate\",\"ZHA\":\"Asia/Shanghai\",\"ZHM\":\"Asia/Dhaka\",\"ZHP\":\"America/Edmonton\",\"ZHY\":\"Asia/Shanghai\",\"ZIA\":\"Europe/Moscow\",\"ZIC\":\"America/Santiago\",\"ZIG\":\"Africa/Dakar\",\"ZIH\":\"America/Mexico_City\",\"ZIS\":\"Africa/Tripoli\",\"ZIX\":\"Asia/Yakutsk\",\"ZIZ\":\"Asia/Karachi\",\"ZJG\":\"America/Winnipeg\",\"ZJN\":\"America/Winnipeg\",\"ZKB\":\"Africa/Lusaka\",\"ZKE\":\"America/Toronto\",\"ZKG\":\"America/Blanc-Sablon\",\"ZKL\":\"Asia/Shanghai\",\"ZKM\":\"Africa/Libreville\",\"ZKP\":\"Asia/Magadan\",\"ZLO\":\"America/Mexico_City\",\"ZLT\":\"America/Blanc-Sablon\",\"ZLX\":\"Africa/Khartoum\",\"ZMD\":\"America/Rio_Branco\",\"ZMH\":\"America/Vancouver\",\"ZMM\":\"America/Mexico_City\",\"ZMT\":\"America/Vancouver\",\"ZNA\":\"America/Vancouver\",\"ZNC\":\"America/Anchorage\",\"ZND\":\"Africa/Niamey\",\"ZNE\":\"Australia/Perth\",\"ZNU\":\"America/Vancouver\",\"ZNZ\":\"Africa/Dar_es_Salaam\",\"ZOF\":\"America/Vancouver\",\"ZOS\":\"America/Santiago\",\"ZPB\":\"America/Winnipeg\",\"ZPC\":\"America/Santiago\",\"ZPH\":\"America/New_York\",\"ZPO\":\"America/Winnipeg\",\"ZQN\":\"Pacific/Auckland\",\"ZQS\":\"America/Vancouver\",\"ZQW\":\"Europe/Berlin\",\"ZQZ\":\"Asia/Shanghai\",\"ZRH\":\"Europe/Zurich\",\"ZRI\":\"Asia/Jayapura\",\"ZRJ\":\"America/Winnipeg\",\"ZRM\":\"Asia/Jayapura\",\"ZSA\":\"America/Nassau\",\"ZSE\":\"Indian/Reunion\",\"ZSJ\":\"America/Winnipeg\",\"ZSP\":\"America/Toronto\",\"ZSS\":\"Africa/Abidjan\",\"ZST\":\"America/Vancouver\",\"ZSW\":\"America/Vancouver\",\"ZTA\":\"Pacific/Tahiti\",\"ZTB\":\"America/Blanc-Sablon\",\"ZTH\":\"Europe/Athens\",\"ZTM\":\"America/Winnipeg\",\"ZTR\":\"Europe/Kiev\",\"ZTS\":\"America/Vancouver\",\"ZTU\":\"Asia/Baku\",\"ZUC\":\"America/Winnipeg\",\"ZUD\":\"America/Santiago\",\"ZUE\":\"Africa/Abidjan\",\"ZUH\":\"Asia/Shanghai\",\"ZUL\":\"Asia/Riyadh\",\"ZUM\":\"America/Halifax\",\"ZVA\":\"Indian/Antananarivo\",\"ZVG\":\"Australia/Perth\",\"ZVK\":\"Asia/Vientiane\",\"ZWA\":\"Indian/Antananarivo\",\"ZWL\":\"America/Regina\",\"ZWN\":\"Europe/Berlin\",\"ZXQ\":\"Europe/Oslo\",\"ZXT\":\"Asia/Baku\",\"ZYI\":\"Asia/Shanghai\",\"ZYL\":\"Asia/Dhaka\",\"ZZO\":\"Asia/Vladivostok\",\"ZZU\":\"Africa/Blantyre\",\"ZZV\":\"America/New_York\"}"); /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./airlines/aa.js": 12, "./airlines/aaSabre.js": 49, "./airlines/ac.js": 13, "./airlines/af.js": 14, "./airlines/as.js": 15, "./airlines/az.js": 16, "./airlines/ba.js": 17, "./airlines/cz.js": 18, "./airlines/dl.js": 19, "./airlines/ek.js": 20, "./airlines/ey.js": 21, "./airlines/ib.js": 22, "./airlines/kl.js": 23, "./airlines/la.js": 24, "./airlines/lh.js": 25, "./airlines/lx.js": 26, "./airlines/oa.js": 27, "./airlines/ps.js": 28, "./airlines/qf.js": 29, "./airlines/qr.js": 30, "./airlines/tk.js": 31, "./index.js": 3, "./meta/googleFlights.js": 32, "./meta/jetcost.js": 33, "./meta/kayak.js": 34, "./meta/momondo.js": 35, "./meta/skyscanner.js": 36, "./meta/tripadvisor.js": 37, "./otas/cheapoair.js": 38, "./otas/edestinos.js": 39, "./otas/edreams.js": 40, "./otas/etraveli.js": 41, "./otas/expedia.js": 42, "./otas/flightnetwork.js": 43, "./otas/hop2.js": 44, "./otas/lucky2go.js": 45, "./otas/priceline.js": 46, "./other/gcm.js": 47, "./other/wheretocredit.js": 48 }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 11; /***/ }), /* 12 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const aaEditions = [ { value: "en_AU", name: "Australia" }, { value: "en_BE", name: "Belgium" }, { value: "en_CN", name: "China" }, { value: "en_DK", name: "Denmark" }, { value: "en_FI", name: "Finland" }, { value: "en_FR", name: "France / English" }, { value: "fr_FR", name: "France / French" }, { value: "en_DE", name: "Germany / English" }, { value: "de_DE", name: "Germany / Deutsch" }, { value: "en_GR", name: "Greece" }, { value: "en_HK", name: "Hong Kong" }, { value: "en_IN", name: "India" }, { value: "en_IE", name: "Ireland" }, { value: "en_IL", name: "Israel" }, { value: "en_IT", name: "Italy" }, { value: "en_JP", name: "Japan" }, { value: "en_KR", name: "Korea" }, { value: "en_NL", name: "Netherlands" }, { value: "en_NZ", name: "New Zealand" }, { value: "en_NO", name: "Norway" }, { value: "en_PT", name: "Portugal" }, { value: "en_RU", name: "Russia" }, { value: "en_ES", name: "Spain / English" }, { value: "es_ES", name: "Spain / Spanish" }, { value: "en_SE", name: "Sweden" }, { value: "en_CH", name: "Switzerland" } ]; function printAA() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("AA")) { return; } var createUrl = function(edition) { var url = "http://i11l-services.aa.com/xaa/mseGateway/entryPoint.php?PARAM="; var search = "1,,USD0.00," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + ","; var legs = new Array(); var leg = ""; var segs = new Array(); var seg = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg segs = new Array(); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } seg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time).slice(-5) + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset == "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset) + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset == "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset) + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; // NO , here! segs.push(seg); j += k; } search += segs.length + "," + segs.join() + ","; //build leg structure leg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + ","; leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + ",,"; leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + ","; // USE , here! legs.push(leg); } search += "DIRECT,"; search += edition[0].toUpperCase() + ","; // Language search += "3,"; // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 7, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAA"); return; } search += pax.adults + ","; // ADT search += pax.children.length + ","; // Child search += pax.infLap + ","; // Inf search += "0,"; // Senior search += edition[1].toUpperCase() + ","; // Country // push outer search search += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + "," + legs.join(); url += encodeURIComponent(search); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aaEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid AA-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += aaEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "American", desc: "Europe/Asia/Pacific", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])( "American (Europe/Asia/Pacific)", "aaEdition", aaEditions, "en_DE" ); /***/ }), /* 13 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7); const acEditions = [ { name: "Algeria", value: "dz" }, { name: "Antigua", value: "ag" }, { name: "Argentina", value: "ar" }, { name: "Australia", value: "au" }, { name: "Austria", value: "at" }, { name: "Bahamas", value: "bs" }, { name: "Bahrain", value: "bh" }, { name: "Barbados", value: "bb" }, { name: "Belgium", value: "be" }, { name: "Bermuda", value: "bm" }, { name: "Canada", value: "ca" }, { name: "Cayman Islands", value: "ky" }, { name: "Chile", value: "cl" }, { name: "China", value: "cn" }, { name: "Colombia", value: "co" }, { name: "Costa Rica", value: "cr" }, { name: "Croatia", value: "hr" }, { name: "Czech Republic", value: "cz" }, { name: "Denmark", value: "dk" }, { name: "Dominican Republic", value: "do" }, { name: "Egypt", value: "eg" }, { name: "Finland", value: "fi" }, { name: "France", value: "fr" }, { name: "Germany", value: "de" }, { name: "Greece", value: "gr" }, { name: "Haiti", value: "ht" }, { name: "Hong Kong SAR, China", value: "hk" }, { name: "Hungary", value: "hu" }, { name: "India", value: "in" }, { name: "Indonesia", value: "id" }, { name: "Ireland", value: "ie" }, { name: "Israel", value: "il" }, { name: "Italy", value: "it" }, { name: "Jamaica", value: "jm" }, { name: "Japan", value: "jp" }, { name: "Jordan", value: "jo" }, { name: "Kuwait", value: "kw" }, { name: "Malaysia", value: "my" }, { name: "Mexico", value: "mx" }, { name: "Morocco", value: "ma" }, { name: "Mozambique", value: "mz" }, { name: "Netherlands", value: "nl" }, { name: "New Zealand", value: "nz" }, { name: "Nigeria", value: "ng" }, { name: "Norway", value: "no" }, { name: "Panama", value: "pa" }, { name: "Peru", value: "pe" }, { name: "Poland", value: "pl" }, { name: "Portugal", value: "pt" }, { name: "Qatar", value: "qa" }, { name: "Russia", value: "ru" }, { name: "Romania", value: "ro" }, { name: "Saudi Arabia", value: "sa" }, { name: "Singapore", value: "sg" }, { name: "South Africa", value: "za" }, { name: "South Korea", value: "kr" }, { name: "Spain", value: "es" }, { name: "St. Lucia", value: "lc" }, { name: "Sweden", value: "se" }, { name: "Switzerland", value: "ch" }, { name: "Taiwan, China", value: "tw" }, { name: "Thailand", value: "th" }, { name: "Trinidad & Tobago", value: "tt" }, { name: "Turkey", value: "tr" }, { name: "Turks and Caicos Island", value: "tc" }, { name: "Ukraine", value: "ua" }, { name: "United Arab Emirates", value: "ae" }, { name: "United Kingdom", value: "gb" }, { name: "United States", value: "us" }, { name: "Venezuela", value: "ve" }, { name: "Vietnam", value: "vn" } ]; function printAC() { if (!Object(___WEBPACK_IMPORTED_MODULE_4__["anyCarriers"])("AC")) { return; } var createUrl = function(edition) { var acUrl = "https://book.aircanada.com/pl/AConline/en/RedirectionServlet?FareRequest=YES&PRICING_MODE=0&fromThirdParty=YES"; acUrl += "&country=" + edition + "&countryOfResidence=" + edition + (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].itaLanguage == "de" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? "&language=de" : "&language=en"); // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var pax = Object(___WEBPACK_IMPORTED_MODULE_4__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAC"); return; } var paxConfig = { allowinf: 0, youthage: 12 }; // AC does not allow booking of infants for int. flights var amadeusConfig = { sepcabin: 1, detailed: 1, allowpremium: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusPax */ "a"])(pax, paxConfig); acUrl += tmpPax.url; acUrl += "&numberOfAdults=" + tmpPax.adults; acUrl += "&numberOfInfants=" + tmpPax.infants; acUrl += "&numberOfYouth=" + tmpPax.youth; acUrl += "&numberOfChildren=" + tmpPax.children; acUrl += "&tripType=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusTriptype */ "b"])(); for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin.length; i++) { acUrl += "&departure" + (i + 1) + "=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + "/" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.year + "&org" + (i + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].orig + "&dest" + (i + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dest; } acUrl += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusUrl */ "c"])(amadeusConfig); return acUrl; }; var acUrl = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].acEdition.toUpperCase()); if (!acUrl) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += acEditions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value.toUpperCase()) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += '<br/><a href="javascript:addACPromo();">Add Promo Code</a>'; extra += "</span></span>"; extra += addACPromoControls(acUrl); return { url: acUrl, title: "Air Canada", extra }; } function addACPromoControls(url) { var script = document.createElement("script"); script.appendChild(document.createTextNode("(" + addACPromo + ")();")); (document.body || document.head || document.documentElement).appendChild( script ); var label = "Open"; if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language] !== undefined) { if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"] !== undefined) { label = _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"]; } } var extra = '<input type="input" id="ac-promo-input" size="8" style="display:none;margin:0 5px;"></input>'; extra += '<label style="font-size:' + Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].linkFontsize) + '%;">'; extra += '<a id="ac-promo-link" style="display:none" target="_blank" href="' + url + '">' + label + "</a></label>"; return extra; } function addACPromo() { window.addACPromo = function() { var input = document.getElementById("ac-promo-input"); input.style.display = "inline"; input.addEventListener("change", event => { var replacement = event.target.value != "" ? "&AUTHORIZATION_ID=" + event.target.value : ""; var link = document.getElementById("ac-promo-link"); var match = link.href.match(/(&AUTHORIZATION_ID=.*)/g); if (match == null) { link.href += replacement; } else { link.href = link.href.replace(match, replacement); } }); var link = document.getElementById("ac-promo-link"); link.style.display = "inline"; }; } Object(___WEBPACK_IMPORTED_MODULE_4__["register"])("airlines", printAC); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air Canada", "acEdition", acEditions, "us"); /***/ }), /* 14 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const editions = [ { name: "Brazil", value: "www.airfrance.com.br", country: "BR" }, { name: "Finland", value: "www.airfrance.fi", country: "FI" }, { name: "France", value: "www.airfrance.fr", country: "FR" }, { name: "Germany", value: "www.airfrance.de", country: "DE" }, { name: "Italy", value: "www.airfrance.it", country: "IT" }, { name: "Netherlands", value: "www.airfrance.nl", country: "NL" }, { name: "Spain", value: "www.airfrance.es", country: "ES" }, { name: "United Kingdom", value: "www.airfrance.co.uk", country: "GB" }, { name: "United States", value: "www.airfrance.us", country: "US" } ]; const cabins = ["ECONOMY", "W", "C", "F"]; function print() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("AF", "KL")) { return; } var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAF"); return; } const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])(); const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.max(...segs.map(seg => seg.cabin)))]; const createUrl = function(edition) { const country = editions.find(e => e.value === edition).country; return ( `https://${edition}/ams/exchange?language=${_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language}&country=${country}&target=` + encodeURIComponent( `/search/summary?deviationValue=5&connections=${segs .map( seg => `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])( seg.dep.month )}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(seg.dep.day)}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "i"])(seg.dep.time24)}:${ seg.carrier }${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "j"])(seg.fnr)}:${seg.bookingclass}:${seg.farebase}:${ cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(seg.cabin)] }>${seg.dest}` ) .join("-")}&cabinClass=${cabin}&pax=${pax.adults}:0:${ pax.children.length }:${pax.infLap}` ) ); }; var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].afEdition2); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Air France", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", print); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air France", "afEdition2", editions, "www.airfrance.us"); /***/ }), /* 15 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printAS() { if (!Object(___WEBPACK_IMPORTED_MODULE_1__["anyCarriers"])("AS")) { return; } // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var createUrl = function() { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 6, countInf: true, childAsAdult: 6, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAS"); return; } var url = "https://www.alaskaair.com/planbook/shoppingstart?"; url += "A=" + pax.adults + "&C=" + pax.children.length + "&FT="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 1) { url += "ow"; } else { url += "rt"; } var k = 0; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var itinseg = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dest; itinseg += "|" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "/" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); itinseg += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year; itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|"; itinseg += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin ? "f" : "c"; url += "&F" + ++k + "=" + encodeURIComponent(itinseg); } } url += "&DEST=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].seg[_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].seg.length - 1].dest; url += "&FARE=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].price + "&frm=cart&META=GOO_CS"; return url; }; var url = createUrl(); if (!url) { return; } return { url, title: "Alaska" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", printAS); /***/ }), /* 16 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const azEditions = [ { value: "de_de", name: "Germany / Deutsch" }, { value: "at_de", name: "Austria / Deutsch" }, { value: "ch_de", name: "Switzerland / Deutsch" }, { value: "fr_fr", name: "France / French" }, { value: "nl_nl", name: "Netherlands / Dutch" }, { value: "it_it", name: "Italy / Italian" }, { value: "ca_en", name: "Canada / Englisch" }, { value: "us_en", name: "US / Englisch" }, { value: "gb_en", name: "GB / Englisch" }, { value: "en_en", name: "International / Englisch" } ]; function printAZ() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("AZ")) { return; } var createUrl = function(edition) { var azUrl = "https://www.alitalia.com/" + edition + "/home-page.metasearch.json?SearchType=BrandMetasearch"; var cabins = ["Economy", "Economy", "Business", "First"]; var seg = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { azUrl += "&MetaSearchDestinations[" + seg + "].From=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; azUrl += "&MetaSearchDestinations[" + seg + "].To=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; azUrl += "&MetaSearchDestinations[" + seg + "].DepartureDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ":" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5); azUrl += "&MetaSearchDestinations[" + seg + "].ArrivalDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day).slice(-2) + ":" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.time).slice(-5); azUrl += "&MetaSearchDestinations[" + seg + "].Flight=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; azUrl += "&MetaSearchDestinations[" + seg + "].code=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase; azUrl += "&MetaSearchDestinations[" + seg + "].MseType="; azUrl += "&MetaSearchDestinations[" + seg + "].bookingClass=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; azUrl += "&MetaSearchDestinations[" + seg + "].cabinClass=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; azUrl += "&MetaSearchDestinations[" + seg + "].slices=" + i; seg++; } } var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 7, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAZ"); return false; } azUrl += "&children_number=" + pax.children.length + "&newborn_number=" + pax.infLap + "&adult_number=" + pax.adults; return azUrl; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].azEdition; var azUrl = createUrl(edition); if (!azUrl) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += azEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url: azUrl, title: "Alitalia", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAZ); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Alitalia", "azEdition", azEditions, "us_en"); /***/ }), /* 17 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const baEditions = [ { value: "AF", name: "Afghanistan" }, { value: "AL", name: "Albania" }, { value: "DZ", name: "Algeria" }, { value: "AS", name: "American Samoa" }, { value: "AD", name: "Andorra" }, { value: "AO", name: "Angola" }, { value: "AI", name: "Anguilla" }, { value: "AG", name: "Antigua" }, { value: "AR", name: "Argentina" }, { value: "AM", name: "Armenia" }, { value: "AW", name: "Aruba" }, { value: "AU", name: "Australia" }, { value: "AT", name: "Austria" }, { value: "AZ", name: "Azerbaijan" }, { value: "BS", name: "Bahamas" }, { value: "BH", name: "Bahrain" }, { value: "BD", name: "Bangladesh" }, { value: "BB", name: "Barbados" }, { value: "BY", name: "Belarus" }, { value: "BE", name: "Belgium" }, { value: "BZ", name: "Belize" }, { value: "BJ", name: "Benin Republic" }, { value: "BM", name: "Bermuda" }, { value: "BT", name: "Bhutan" }, { value: "BO", name: "Bolivia" }, { value: "BA", name: "Bosnia-Herzegovina" }, { value: "BW", name: "Botswana" }, { value: "BR", name: "Brazil" }, { value: "VG", name: "British Virgin Islands" }, { value: "BN", name: "Brunei" }, { value: "BG", name: "Bulgaria" }, { value: "BF", name: "Burkina Faso" }, { value: "BI", name: "Burundi" }, { value: "KH", name: "Cambodia" }, { value: "CA", name: "Canada" }, { value: "CV", name: "Cape Verde" }, { value: "KY", name: "Cayman Islands" }, { value: "CF", name: "Central African Rep" }, { value: "TD", name: "Chad" }, { value: "CL", name: "Chile" }, { value: "CN", name: "China" }, { value: "CX", name: "Christmas Island" }, { value: "CC", name: "Cocos Islands" }, { value: "CO", name: "Colombia" }, { value: "CG", name: "Congo" }, { value: "CK", name: "Cook Islands" }, { value: "CR", name: "Costa Rica" }, { value: "HR", name: "Croatia" }, { value: "CU", name: "Cuba" }, { value: "CY", name: "Cyprus" }, { value: "CZ", name: "Czech Republic" }, { value: "DK", name: "Denmark" }, { value: "DJ", name: "Djibouti" }, { value: "DM", name: "Dominica" }, { value: "DO", name: "Dominican Rep" }, { value: "EC", name: "Ecuador" }, { value: "EG", name: "Egypt" }, { value: "SV", name: "El Salvador" }, { value: "GQ", name: "Equatorial Guinea" }, { value: "ER", name: "Eritrea" }, { value: "EE", name: "Estonia" }, { value: "ET", name: "Ethiopia" }, { value: "FO", name: "Faeroe Is" }, { value: "FK", name: "Falkland Is" }, { value: "FJ", name: "Fiji" }, { value: "FI", name: "Finland" }, { value: "FR", name: "France" }, { value: "GF", name: "French Guyana" }, { value: "PF", name: "French Polynesia" }, { value: "GA", name: "Gabon" }, { value: "GM", name: "Gambia" }, { value: "GE", name: "Georgia" }, { value: "DE", name: "Germany" }, { value: "GH", name: "Ghana" }, { value: "GI", name: "Gibraltar (UK)" }, { value: "GR", name: "Greece" }, { value: "GL", name: "Greenland" }, { value: "GD", name: "Grenada" }, { value: "GP", name: "Guadeloupe" }, { value: "GU", name: "Guam" }, { value: "GT", name: "Guatemala" }, { value: "GN", name: "Guinea" }, { value: "GW", name: "Guinea Bissau" }, { value: "GY", name: "Guyana" }, { value: "HT", name: "Haiti" }, { value: "HN", name: "Honduras" }, { value: "HK", name: "Hong Kong" }, { value: "HU", name: "Hungary" }, { value: "IS", name: "Iceland" }, { value: "IN", name: "India" }, { value: "ID", name: "Indonesia" }, { value: "IR", name: "Iran" }, { value: "IQ", name: "Iraq" }, { value: "IE", name: "Ireland" }, { value: "IL", name: "Israel" }, { value: "IT", name: "Italy" }, { value: "CI", name: "Ivory Coast" }, { value: "JM", name: "Jamaica" }, { value: "JP", name: "Japan" }, { value: "JO", name: "Jordan" }, { value: "KZ", name: "Kazakhstan" }, { value: "KE", name: "Kenya" }, { value: "KI", name: "Kiribati" }, { value: "XK", name: "Kosovo" }, { value: "KW", name: "Kuwait" }, { value: "KG", name: "Kyrgyzstan" }, { value: "LA", name: "Laos" }, { value: "LV", name: "Latvia" }, { value: "LB", name: "Lebanon" }, { value: "LS", name: "Lesotho" }, { value: "LR", name: "Liberia" }, { value: "LY", name: "Libya" }, { value: "LI", name: "Liechtenstein" }, { value: "LT", name: "Lithuania" }, { value: "LU", name: "Luxembourg" }, { value: "MO", name: "Macau" }, { value: "MK", name: "Macedonia" }, { value: "MG", name: "Madagascar" }, { value: "MW", name: "Malawi" }, { value: "MY", name: "Malaysia" }, { value: "MV", name: "Maldives" }, { value: "ML", name: "Mali" }, { value: "MT", name: "Malta" }, { value: "MP", name: "Mariana Islands" }, { value: "MH", name: "Marshall Islands" }, { value: "MQ", name: "Martinique" }, { value: "MR", name: "Mauritania" }, { value: "MU", name: "Mauritius" }, { value: "MX", name: "Mexico" }, { value: "FM", name: "Micronesia" }, { value: "UM", name: "Minor Island" }, { value: "MD", name: "Moldova" }, { value: "MC", name: "Monaco" }, { value: "ME", name: "Montenegro" }, { value: "MS", name: "Montserrat" }, { value: "MA", name: "Morocco" }, { value: "MZ", name: "Mozambique" }, { value: "MM", name: "Myanmar" }, { value: "NA", name: "Namibia" }, { value: "NR", name: "Nauru" }, { value: "NP", name: "Nepal" }, { value: "AN", name: "Netherland Antilles" }, { value: "NL", name: "Netherlands" }, { value: "NC", name: "New Caledonia" }, { value: "NZ", name: "New Zealand" }, { value: "NI", name: "Nicaragua" }, { value: "NE", name: "Niger" }, { value: "NG", name: "Nigeria" }, { value: "NU", name: "Niue" }, { value: "NF", name: "Norfolk Island" }, { value: "NO", name: "Norway" }, { value: "OM", name: "Oman" }, { value: "PK", name: "Pakistan" }, { value: "PA", name: "Panama" }, { value: "PG", name: "Papua New Guinea" }, { value: "PY", name: "Paraguay" }, { value: "KP", name: "Peoples Rep Korea" }, { value: "PE", name: "Peru" }, { value: "PH", name: "Philippines" }, { value: "PL", name: "Poland" }, { value: "PT", name: "Portugal" }, { value: "PR", name: "Puerto Rico" }, { value: "QA", name: "Qatar" }, { value: "CM", name: "Republic Cameroon" }, { value: "RE", name: "Reunion" }, { value: "RO", name: "Romania" }, { value: "RU", name: "Russia" }, { value: "RW", name: "Rwanda" }, { value: "SM", name: "San Marino" }, { value: "SA", name: "Saudi Arabia" }, { value: "SN", name: "Senegal" }, { value: "RS", name: "Serbia" }, { value: "SC", name: "Seychelles" }, { value: "SL", name: "Sierra Leone" }, { value: "SG", name: "Singapore" }, { value: "SK", name: "Slovakia" }, { value: "SI", name: "Slovenia" }, { value: "SB", name: "Solomon Island" }, { value: "SO", name: "Somalia" }, { value: "ZA", name: "South Africa" }, { value: "KR", name: "South Korea" }, { value: "ES", name: "Spain" }, { value: "LK", name: "Sri Lanka" }, { value: "KN", name: "St Kitts and Nevis" }, { value: "LC", name: "St Lucia" }, { value: "VC", name: "St Vincent" }, { value: "SD", name: "Sudan" }, { value: "SR", name: "Suriname" }, { value: "SZ", name: "Swaziland" }, { value: "SE", name: "Sweden" }, { value: "CH", name: "Switzerland" }, { value: "SY", name: "Syria" }, { value: "TW", name: "Taiwan" }, { value: "TJ", name: "Tajikistan" }, { value: "TZ", name: "Tanzania" }, { value: "TH", name: "Thailand" }, { value: "TL", name: "Timor - Leste" }, { value: "TG", name: "Togo" }, { value: "TO", name: "Tonga" }, { value: "TT", name: "Trinidad and Tobago" }, { value: "TN", name: "Tunisia" }, { value: "TR", name: "Turkey" }, { value: "TM", name: "Turkmenistan" }, { value: "TC", name: "Turks Caicos" }, { value: "TV", name: "Tuvalu" }, { value: "VI", name: "US Virgin Islands" }, { value: "US", name: "USA" }, { value: "UG", name: "Uganda" }, { value: "UA", name: "Ukraine" }, { value: "AE", name: "United Arab Emirates" }, { value: "GB", name: "United Kingdom" }, { value: "UY", name: "Uruguay" }, { value: "UZ", name: "Uzbekistan" }, { value: "VU", name: "Vanuatu" }, { value: "VE", name: "Venezuela" }, { value: "VN", name: "Vietnam" }, { value: "WS", name: "Western Samoa" }, { value: "YE", name: "Yemen Republic" }, { value: "ZM", name: "Zambia" }, { value: "ZW", name: "Zimbabwe" } ]; function printBA() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("IB", "BA")) { return; } var createUrl = function(edition, language) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["M", "W", "C", "F"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printBA"); return false; } var tmpPax = { c: 0, y: 0 }; for (i = 0; i < pax.children.length; i++) { if (pax.children[i] > 11) { tmpPax.y++; } else { tmpPax.c++; } } var url = "https://www.britishairways.com/travel/fx/public/" + language + "_" + edition + "?eId=111054&data=F" + pax.adults + tmpPax.y + tmpPax.c + pax.infLap + "LF"; var mincabin = 3; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - fnr has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice( -4 ); url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); url += cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin]; url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].dest; if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && i == 1) { url += "F"; } else { url += "T"; } if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } } url += "&p=EUR6666.66&e=SL&c=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] + "&source=FareQuoteEmail&isEmailHBOFareQuote=false"; return url; }; // get edition var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += baEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "British Airways", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printBA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("British Airways", "baEdition", baEditions, "US"); /***/ }), /* 18 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); const czEditions = [ { value: "AR-GB", name: "Argentina / English" }, { value: "AU-GB", name: "Australia / English" }, { value: "AZ-GB", name: "Azerbaijan / English" }, { value: "BD-GB", name: "Bangladesh / English" }, { value: "BE-GB", name: "Belgium / English" }, { value: "BR-GB", name: "Brazil / English" }, { value: "KH-GB", name: "Cambodia / English" }, { value: "CA-GB", name: "Canada / English" }, { value: "CA-FR", name: "Canada / French" }, { value: "CN-GB", name: "China / English" }, { value: "DK-GB", name: "Denmark / English" }, { value: "FI-GB", name: "Finland / English" }, { value: "FR-GB", name: "France / English" }, { value: "FR-FR", name: "France / French" }, { value: "GE-GB", name: "Georgia / English" }, { value: "DE-GB", name: "Germany / English" }, { value: "DE-DE", name: "Germany / German" }, { value: "GR-GB", name: "Greece / English" }, { value: "HK-GB", name: "Hong Kong / English" }, { value: "IN-GB", name: "India / English" }, { value: "ID-GB", name: "Indonesia / English" }, { value: "IR-GB", name: "Iran / English" }, { value: "IE-GB", name: "Ireland / English" }, { value: "IT-GB", name: "Italy / English" }, { value: "JP-GB", name: "Japan / English" }, { value: "JO-GB", name: "Jordan / English" }, { value: "KZ-GB", name: "Kazakhstan / English" }, { value: "KE-GB", name: "Kenya / English" }, { value: "KG-GB", name: "Kyrgyzstan / English" }, { value: "MY-GB", name: "Malaysia / English" }, { value: "MV-GB", name: "Maldives / English" }, { value: "MO-GB", name: "Macau / English" }, { value: "MM-GB", name: "Myanmar / English" }, { value: "NP-GB", name: "Nepal / English" }, { value: "NL-GB", name: "Netherlands / English" }, { value: "NZ-GB", name: "New Zealand / English" }, { value: "NO-GB", name: "Norway / English" }, { value: "PK-GB", name: "Pakistan / English" }, { value: "PA-GB", name: "Panama / English" }, { value: "PE-GB", name: "Peru / English" }, { value: "PH-GB", name: "Philippines / English" }, { value: "PT-GB", name: "Portugal / English" }, { value: "RU-GB", name: "Russia / English" }, { value: "SA-GB", name: "Saudi Arabia / English" }, { value: "SG-GB", name: "Singapore / English" }, { value: "ZA-GB", name: "South Africa / English" }, { value: "KR-GB", name: "South Korea / English" }, { value: "ES-GB", name: "Spain / English" }, { value: "SE-GB", name: "Sweden / English" }, { value: "CH-GB", name: "Switzerland / English" }, { value: "TW-GB", name: "Taiwan / English" }, { value: "TJ-GB", name: "Tajikistan / English" }, { value: "TZ-GB", name: "Tanzania / English" }, { value: "TH-GB", name: "Thailand / English" }, { value: "TR-GB", name: "Turkey / English" }, { value: "TM-GB", name: "Turkmenistan / English" }, { value: "UA-GB", name: "Ukraine / English" }, { value: "GB-GB", name: "United Kingdom / English" }, { value: "AE-GB", name: "United Arab Emirates / English" }, { value: "UG-GB", name: "Uganda / English" }, { value: "US-GB", name: "United States / English" }, { value: "UZ-GB", name: "Uzbekistan / English" }, { value: "VE-GB", name: "Venezuela / English" }, { value: "VN-GB", name: "Vietnam / English" } ]; function printCZ() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("CZ")) { return; } var createUrl = function(edition) { var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printCZ"); return; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 0, inctimes: 0 }; var url = "http://global.csair.com/CZPortal/dyn/portal/doEnc?SITE=J00YJ00Y&BOOKING_FLOW=REVENUE&IS_FLEXIBLE=FALSE&LANGUAGE=" + edition[1] + "&PRICING_TYPE=O&COUNTRY_SITE=" + edition[0] + "&DISPLAY_TYPE=1"; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += tmpPax.url; url += "&NB_ADT=" + tmpPax.adults; url += "&NB_INF=" + tmpPax.infants; url += "&NB_CHD=" + tmpPax.children; url += "&TRIP_TYPE=M"; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].czEdition.split("-"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid CZ-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += czEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "China Southern", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printCZ); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("China Southern", "czEdition", czEditions, "US-GB"); /***/ }), /* 19 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const dlEditions = [ { value: "de_de", name: "Germany" }, { value: "www_us", name: "US" } ]; function printDL() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("DL")) { return; } /* Steppo: What about farebasis? * What about segmentskipping? */ var createUrl = function(edition) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First // Defaults for cabin identifiers for DL pricing engine; exceptions handled later var cabins = ["MAIN", "DPPS", "BU", "FIRST"]; var mincabin = 3; var farebases = new Array(); var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printDL"); return; } var deltaURL = "http://" + edition[0] + ".delta.com/air-shopping/priceTripAction.action?ftw_reroute=true&tripType=multiCity"; deltaURL += "¤cyCd=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].cur == "EUR" ? "EUR" : "USD"); deltaURL += "&exitCountry=" + edition[1]; var segcounter = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg deltaURL += "&itinSegment[" + segcounter.toString() + "]=" + i.toString() + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; deltaURL += ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr; deltaURL += ":" + Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* monthnumberToName */ "f"])(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month) + ":" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day < 10 ? "0" : "") + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ":0"; farebases.push(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].farebase); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } // Exceptions to cabin identifiers for pricing switch (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass) { // Basic Economy fares case "E": cabins[0] = "BASIC-ECONOMY"; break; // Comfort+ fares case "W": cabins[1] = "DCP"; break; default: } segcounter++; } } deltaURL += "&cabin=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; deltaURL += "&fareBasis=" + farebases.join(":"); //deltaURL += "&price=0"; deltaURL += "&numOfSegments=" + segcounter.toString() + "&paxCount=" + (pax.adults + pax.children.length + pax.infLap); deltaURL += "&vendorRedirectFlag=true&vendorID=Google"; return deltaURL; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].dlEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid Delta-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += dlEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Delta", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printDL); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Delta", "dlEdition", dlEditions, "www_us"); /***/ }), /* 20 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); const cabins = ["0", "0", "1", "2"]; const editions = [ { name: "Arabic (AE)", value: "/ae/arabic" }, { name: "Arabic (BH)", value: "/bh/arabic" }, { name: "Arabic (DZ)", value: "/dz/arabic" }, { name: "Arabic (EG)", value: "/eg/arabic" }, { name: "Arabic (IQ)", value: "/iq/arabic" }, { name: "Arabic (JO)", value: "/jo/arabic" }, { name: "Arabic (KW)", value: "/kw/arabic" }, { name: "Arabic (LB)", value: "/lb/arabic" }, { name: "Arabic (LY)", value: "/ly/arabic" }, { name: "Arabic (MA)", value: "/ma/arabic" }, { name: "Arabic (OM)", value: "/om/arabic" }, { name: "Arabic (QA)", value: "/qa/arabic" }, { name: "Arabic (SA)", value: "/sa/arabic" }, { name: "Arabic (SD)", value: "/sd/arabic" }, { name: "Arabic (SY)", value: "/sy/arabic" }, { name: "Arabic (YE)", value: "/ye/arabic" }, { name: "Chinese (CN)", value: "/cn/chinese" }, { name: "Chinese (HK)", value: "/hk/chinese" }, { name: "Chinese (TW)", value: "/tw/chinese" }, { name: "Czech (CZ)", value: "/cz/czech" }, { name: "Danish (DK)", value: "/dk/danish" }, { name: "Dutch (BE)", value: "/be/dutch" }, { name: "Dutch (NL)", value: "/nl/dutch" }, { name: "English (AF)", value: "/af/english" }, { name: "English (AU)", value: "/au/english" }, { name: "English (BD)", value: "/bd/english" }, { name: "English (BG)", value: "/bg/english" }, { name: "English (EE)", value: "/ee/english" }, { name: "English (ET)", value: "/et/english" }, { name: "English (FI)", value: "/fi/english" }, { name: "English (GH)", value: "/gh/english" }, { name: "English (Global)", value: "/global/english" }, { name: "English (HR)", value: "/hr/english" }, { name: "English (IE)", value: "/ie/english" }, { name: "English (IN)", value: "/in/english" }, { name: "English (IR)", value: "/ir/english" }, { name: "English (IS)", value: "/is/english" }, { name: "English (KE)", value: "/ke/english" }, { name: "English (KH)", value: "/kh/english" }, { name: "English (LK)", value: "/lk/english" }, { name: "English (LT)", value: "/lt/english" }, { name: "English (LV)", value: "/lv/english" }, { name: "English (MM)", value: "/mm/english" }, { name: "English (MT)", value: "/mt/english" }, { name: "English (MU)", value: "/mu/english" }, { name: "English (MV)", value: "/mv/english" }, { name: "English (MY)", value: "/my/english" }, { name: "English (NG)", value: "/ng/english" }, { name: "English (NZ)", value: "/nz/english" }, { name: "English (PH)", value: "/ph/english" }, { name: "English (PK)", value: "/pk/english" }, { name: "English (RO)", value: "/ro/english" }, { name: "English (SC)", value: "/sc/english" }, { name: "English (SG)", value: "/sg/english" }, { name: "English (TZ)", value: "/tz/english" }, { name: "English (UG)", value: "/ug/english" }, { name: "English (UK)", value: "/uk/english" }, { name: "English (US)", value: "/us/english" }, { name: "English (ZA)", value: "/za/english" }, { name: "English (ZM)", value: "/zm/english" }, { name: "English (ZW)", value: "/zw/english" }, { name: "French (CA)", value: "/ca/french" }, { name: "French (CI)", value: "/ci/french" }, { name: "French (FR)", value: "/fr/french" }, { name: "French (GN)", value: "/gn/french" }, { name: "French (SN)", value: "/sn/french" }, { name: "French (TN)", value: "/tn/french" }, { name: "German (AT)", value: "/at/german" }, { name: "German (DE)", value: "/de/german" }, { name: "Greek (CY)", value: "/cy/greek" }, { name: "Greek (GR)", value: "/gr/greek" }, { name: "Hungarian (HU)", value: "/hu/hungarian" }, { name: "Indonesian (ID)", value: "/id/indonesian" }, { name: "Italian (CH)", value: "/ch/italian" }, { name: "Italian (IT)", value: "/it/italian" }, { name: "Japanese (JP)", value: "/jp/japanese" }, { name: "Korean (KR)", value: "/kr/korean" }, { name: "Norwegian (NO)", value: "/no/norwegian" }, { name: "Polish (PL)", value: "/pl/polish" }, { name: "Portuguese (AO)", value: "/ao/portuguese" }, { name: "Portuguese (BR)", value: "/br/portuguese" }, { name: "Portuguese (PT)", value: "/pt/portuguese" }, { name: "Russian (RU)", value: "/ru/russian" }, { name: "Russian (UA)", value: "/ua/russian" }, { name: "Spanish (AR)", value: "/ar/spanish" }, { name: "Spanish (CL)", value: "/cl/spanish" }, { name: "Spanish (CO)", value: "/co/spanish" }, { name: "Spanish (EC)", value: "/ec/spanish" }, { name: "Spanish (ES)", value: "/es/spanish" }, { name: "Spanish (MX)", value: "/mx/spanish" }, { name: "Spanish (PA)", value: "/pa/spanish" }, { name: "Spanish (PE)", value: "/pe/spanish" }, { name: "Spanish (UY)", value: "/uy/spanish" }, { name: "Swedish (SE)", value: "/se/swedish" }, { name: "Thai (TH)", value: "/th/thai" }, { name: "Turkish (TR)", value: "/tr/turkish" }, { name: "Vietnamese (VN)", value: "/vn/vietnamese" } ]; function print() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("EK")) { return; } const pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEK"); return; } let desc = ""; const createUrl = function(edition) { let url = `https://www.emirates.com/sessionhandler.aspx?pageurl=/IBE.aspx&pub=${edition}&j=f§ion=IBE&j=t&seldcity1=${ _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig }&selacity1=${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest}&selddate1=${formatDate( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dep )}&seladults=${pax.adults}&selofw=0&selteenager=0&selchildren=${ pax.children.length }&selinfants=${pax.infLap}&selcabinclass=${ cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))] }&selcabinclass1=${ cabins[ Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(..._parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg.map(seg => seg.cabin))) ] }&showsearch=false&showTeenager=false&showOFW=false&chkFlexibleDates=false&resultby=0&multiCity=`; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += `&seladate1=&TID=OW`; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += `&seladate1=${formatDate(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dep)}&TID=SB`; } else { // open-jaw and multi-city for mobile only (TID=AS) url = `https://mobile.emirates.com${edition}/CAB/IBE/searchResults.xhtml?cugoDisabledCabinClass=true&flexiDate=false&searchType=MC&classTypeRadioMulti=0&bookingType=Revenue&originInterlineFlag=false&destInterlineFlag=false&totalAdults=${pax.adults}&totalTeens=0&totalChildren=${pax.children.length}&totalInfants=${pax.infLap}&` + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin .map( itin => `fromCity=${itin.orig}&toCity=${itin.dest}&classType=${ cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(...itin.seg.map(seg => seg.cabin)))] }&departDay=${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(itin.dep.day)}&departMonth=${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])( itin.dep.month )}&departYear=${ itin.dep.year }&returnDay=&returnMonth=&returnYear=` ) .join("&"); desc = "Mobile (or resize browser)"; } return url; }; const url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ekEdition); if (!url) { return; } let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Emirates", desc, extra }; } function formatDate(date) { return `${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.day)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* monthnumberToName */ "f"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])( date.year )}`; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", print); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Emirates", "ekEdition", editions, "/global/english"); /***/ }), /* 21 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); const cabins = ["ECONOMY", "ECONOMY", "BUSINESS", "FIRST"]; function printEY() { if (!Object(___WEBPACK_IMPORTED_MODULE_4__["anyCarriers"])("EY")) { return; } var createUrl = function() { var pax = Object(___WEBPACK_IMPORTED_MODULE_4__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEY"); return; } let url = "https://booking.etihad.com/SSW2010/EYEY/webqtrip.html?journeySpan=MC"; url += `&numAdults=${pax.adults}`; url += `&numChildren=${pax.children.length}`; url += `&numInfants=${pax.infLap}`; url += `&advertisedFare=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].price}`; url += `¤cy=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}`; let segnum = 0; _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.forEach((itin, legnum) => { itin.seg.forEach(seg => { url += `&ms[${segnum}].from=${seg.orig}`; url += `&ms[${segnum}].to=${seg.dest}`; url += `&ms[${segnum}].departure=${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(seg.dep.day)}T${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to4digitTime */ "i"])(seg.dep.time24)}`; url += `&ms[${segnum}].arrival=${seg.arr.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( seg.arr.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(seg.arr.day)}T${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to4digitTime */ "i"])(seg.arr.time24)}`; url += `&ms[${segnum}].leg=${legnum}`; url += `&ms[${segnum}].cbnClass=${cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(seg.cabin)]}`; segnum++; }); }); return url; }; var url = createUrl(); if (!url) { return; } return { url, title: "Etihad" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "b"])("airlines", printEY); /***/ }), /* 22 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const ibEditions = [ { value: "es-AO", name: "Angola - Español" }, { value: "pt-AO", name: "Angola - Português" }, { value: "es-DZ", name: "Argelia - Español" }, { value: "fr-DZ", name: "Algérie - Français" }, { value: "en-AR", name: "Argentina - English" }, { value: "es-AR", name: "Argentina - Español" }, { value: "en-BE", name: "Belgium - English" }, { value: "es-BE", name: "Bélgica - Español" }, { value: "fr-BE", name: "Belgique - Français" }, { value: "es-BR", name: "Brasil - Español" }, { value: "pt-BR", name: "Brasil - Português" }, { value: "en-CL", name: "Chile - English" }, { value: "es-CL", name: "Chile - Español" }, { value: "en-CO", name: "Colombia - English" }, { value: "es-CO", name: "Colombia - Español" }, { value: "en-CR", name: "Costa Rica - English" }, { value: "es-CR", name: "Costa Rica - Español" }, { value: "en-HR", name: "Croatia - English" }, { value: "es-HR", name: "Croacia - Español" }, { value: "it-HR", name: "Croazia - Italiano" }, { value: "en-CU", name: "Cuba - English" }, { value: "es-CU", name: "Cuba - Español" }, { value: "en-CZ", name: "Czech Republic - English" }, { value: "es-CZ", name: "República Checa - Español" }, { value: "en-DK", name: "Denmark - English" }, { value: "es-DK", name: "Dinamarca - Español" }, { value: "de-DE", name: "Deutschland - Deutsch" }, { value: "es-DE", name: "Alemania - Español" }, { value: "en-DO", name: "Dominican Republic - English" }, { value: "es-DO", name: "República Dominicana - Español" }, { value: "en-EC", name: "Ecuador - English" }, { value: "es-EC", name: "Ecuador - Español" }, { value: "en-SV", name: "El Salvador - English" }, { value: "es-SV", name: "El Salvador - Español" }, { value: "en-GQ", name: "Equatorial Guinea - English" }, { value: "es-GQ", name: "Guinea Ecuatorial - Español" }, { value: "ca-ES", name: "Espanya - Català" }, { value: "en-ES", name: "Spain - English" }, { value: "es-ES", name: "España - Español" }, { value: "es-FR", name: "Francia - Español" }, { value: "fr-FR", name: "France - Français" }, { value: "en-GH", name: "Ghana - English" }, { value: "es-GH", name: "Ghana - Español" }, { value: "en-GR", name: "Greece - English" }, { value: "es-GR", name: "Grecia - Español" }, { value: "en-GT", name: "Guatemala - English" }, { value: "es-GT", name: "Guatemala - Español" }, { value: "en-HN", name: "Honduras - English" }, { value: "es-HN", name: "Honduras - Español" }, { value: "en-IE", name: "Ireland - English" }, { value: "es-IE", name: "Irlanda - Español" }, { value: "en-IL", name: "Israel - English" }, { value: "es-IL", name: "Israel - Español" }, { value: "en-IT", name: "Italy - English" }, { value: "es-IT", name: "Italia - Español" }, { value: "it-IT", name: "Italia - Italiano" }, { value: "en-JP", name: "Japan - English" }, { value: "es-JP", name: "Japón - Español" }, { value: "ja-JP", name: "日本 - 日本語" }, { value: "en-MT", name: "Malta - English" }, { value: "es-MT", name: "Malta - Español" }, { value: "it-MT", name: "Malta - Italiano" }, { value: "es-MA", name: "Marruecos - Español" }, { value: "fr-MA", name: "Maroc - Français" }, { value: "es-MR", name: "Mauritania - Español" }, { value: "fr-MR", name: "Mauritanie - Français" }, { value: "en-MX", name: "Mexico - English" }, { value: "es-MX", name: "México - Español" }, { value: "en-NL", name: "Netherlands - English" }, { value: "es-NL", name: "Holanda - Español" }, { value: "nl-NL", name: "Nederland - Nederlands" }, { value: "en-NI", name: "Nicaragua - English" }, { value: "es-NI", name: "Nicaragua - Español" }, { value: "en-NG", name: "Nigeria - English" }, { value: "es-NG", name: "Nigeria - Español" }, { value: "en-PA", name: "Panama - English" }, { value: "es-PA", name: "Panamá - Español" }, { value: "en-PE", name: "Peru - English" }, { value: "es-PE", name: "Perú - Español" }, { value: "es-PT", name: "Portugal - Español" }, { value: "pt-PT", name: "Portugal - Português" }, { value: "en-PR", name: "Puerto Rico - English" }, { value: "es-PR", name: "Puerto Rico - Español" }, { value: "en-RU", name: "Russian Federation - English" }, { value: "es-RU", name: "Rusia - Español" }, { value: "ru-RU", name: "Rossiya - Русский" }, { value: "de-CH", name: "Schweiz - Deutsch" }, { value: "es-CH", name: "Suiza - Español" }, { value: "fr-CH", name: "Suisse - Français" }, { value: "es-SN", name: "Senegal - Español" }, { value: "fr-SN", name: "Sénégal - Français" }, { value: "en-ZA", name: "South Africa - English" }, { value: "es-ZA", name: "Sudáfrica - Español" }, { value: "en-SE", name: "Sweden - English" }, { value: "es-SE", name: "Suecia - Español" }, { value: "en-TR", name: "Turkey - English" }, { value: "es-TR", name: "Turquía - Español" }, { value: "en-US", name: "USA - English" }, { value: "es-US", name: "USA - Español" }, { value: "en-GB", name: "United Kingdom - English" }, { value: "es-GB", name: "Reino Unido - Español" }, { value: "en-UY", name: "Uruguay - English" }, { value: "es-UY", name: "Uruguay - Español" }, { value: "en-VE", name: "Venezuela - English" }, { value: "es-VE", name: "Venezuela - Español" } ]; function printIB() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("IB", "BA")) { return; } var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printIB"); return; } var url = "http://www.iberia.com/web/partnerLink.do?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=0&InfantLap=" + pax.infLap + "&PointOfSaleCountry=" + edition[1] + "&UserCurrency=" + currency + "&UserLanguage=" + edition[0] + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ibEdition.split("-"); var url = createUrl(edition, "USD"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += ibEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-"), "USD") + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Iberia", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printIB); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Iberia", "ibEdition", ibEditions, "en-US"); /***/ }), /* 23 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const klEditions = [ { value: "de_de", name: "Germany / Deutsch" }, { value: "de_en", name: "Germany / English" }, { value: "fr_en", name: "France / English" }, { value: "fr_fr", name: "France / French" }, { value: "nl_en", name: "Netherlands / English" }, { value: "gb_en", name: "United Kingdom / English" }, { value: "us_en", name: "US / English" } ]; const cabins = ["M", "W", "C", "F"]; function printKL() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("KL")) { return; } var createUrl = function(edition) { var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printKL"); return; } const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])(); let url = "https://www.klm.com/ams/search-web/api/metasearch?application=EBT7"; url += "&trip=" + segs .map( seg => `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])( seg.dep.day )}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "i"])(seg.dep.time)}:${seg.carrier}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "j"])( seg.fnr )}:${seg.bookingclass}>${seg.dest}` ) .join("-"); url += "&ref=MS,fb=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].farebases.join("."); url += "&numberOfAdults=" + pax.adults; url += "&numberOfChildren=" + pax.children.length; url += "&numberOfInfants=" + pax.infLap; url += "&cabinClass=" + cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...segs.map(seg => seg.cabin)))]; url += "&country=" + edition[0]; url += "&language=" + edition[1]; return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].klEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid KLM-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += klEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "KLM", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printKL); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("KLM", "klEdition", klEditions, "us_en"); /***/ }), /* 24 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const laEditions = [ { value: "es/ar", name: "Argentina / Spanish" }, { value: "pt/br", name: "Brasil / Portuguese" }, { value: "es/cl", name: "Chile / Spanish" }, { value: "es/co", name: "Colombia / Spanish" }, { value: "es/ec", name: "Ecuador / Spanish" }, { value: "es/pe", name: "Peru / Spanish" }, { value: "es/uy", name: "Uruguay / Spanish" }, { value: "en/us", name: "US / English" }, { value: "es/mx", name: "Mexico / Spanish" }, { value: "en/ca", name: "Canada / English" }, { value: "de/de", name: "Germany / German" }, { value: "es/es", name: "Spain / Spanish" }, { value: "fr/fr", name: "France / French" }, { value: "en/it", name: "Italy / English" }, { value: "en/uk", name: "UK / English" }, { value: "en/ue", name: "Rest of Europe / English" }, { value: "en/au", name: "Australia / English" }, { value: "en/nz", name: "New Zealand / English" }, { value: "es/un", name: "Other Countries / Spanish" }, { value: "en/un", name: "Other Countries / English" } ]; function printLA() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("LA")) { return; } // NOTE: currency will be determined by the locale; the deeplink does not support manually specifying the currency var createUrl = function(edition) { var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLA"); return; } const parameters = { passengers: { numberAdults: pax.adults.toString(), numberInfants: pax.infLap.toString(), numberChildren: pax.children.length.toString() }, trip: { flights: _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.map(itin => { return { amount: _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price, currency: _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD", segments: itin.seg.map(seg => { return { departure_airport: seg.orig, flight_number: seg.fnr, departure_date: formatDate(seg.dep), arrival_airport: seg.dest, farebasis: seg.farebase, marketing_airline: seg.carrier, class: seg.bookingclass, arrival_date: formatDate(seg.arr) }; }) }; }) } }; // The booking.lan.com url as of 2/27/2020 needs to be http instead of https. Fortunately, it does redirect you // to https://ssl.lan.com afterwards, but the booking link seems to be more successful than starting with ssl return ( `http://booking.lan.com/cgi-bin/compra/paso4.cgi?forced_home=${edition}&sessionParameters=` + encodeURIComponent(JSON.stringify(parameters)) ); }; var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].laEdition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += laEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "LATAM", extra }; } function formatDate(date) { return `${date.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.day)}`; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printLA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("LATAM", "laEdition", laEditions, "en/us"); /***/ }), /* 25 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); const lhEditions = [ { value: "AL-gb", name: "Albania / English" }, { value: "DZ-fr", name: "Algeria / Français" }, { value: "AO-gb", name: "Angola / English" }, { value: "AR-es", name: "Argentina / Español" }, { value: "AM-gb", name: "Armenia / English" }, { value: "AU-gb", name: "Australia / English" }, { value: "AT-de", name: "Austria / Deutsch" }, { value: "AT-gb", name: "Austria / English" }, { value: "AZ-gb", name: "Azerbaijan / English" }, { value: "BH-gb", name: "Bahrain / English" }, { value: "BY-gb", name: "Belarus / English" }, { value: "BE-gb", name: "Belgium / English" }, { value: "BA-gb", name: "Bosnia/Hercegovina / English" }, { value: "BR-pt", name: "Brazil / Português" }, { value: "BG-gb", name: "Bulgaria / English" }, { value: "CA-gb", name: "Canada / English" }, { value: "CA-fr", name: "Canada / Français" }, { value: "CL-es", name: "Chile / Español" }, { value: "CN-gb", name: "China / English" }, { value: "CO-es", name: "Colombia / Español" }, { value: "HR-gb", name: "Croatia / English" }, { value: "CY-gb", name: "Cyprus / English" }, { value: "CZ-gb", name: "Czech Republic / English" }, { value: "DK-gb", name: "Denmark / English" }, { value: "EG-gb", name: "Egypt / English" }, { value: "GQ-gb", name: "Equatorial Guinea / English" }, { value: "ER-gb", name: "Eritrea / English" }, { value: "EE-gb", name: "Estonia / English" }, { value: "ET-gb", name: "Ethiopia / English" }, { value: "FI-gb", name: "Finland / English" }, { value: "FR-gb", name: "France / English" }, { value: "FR-fr", name: "France / Français" }, { value: "GA-gb", name: "Gabon / English" }, { value: "GE-gb", name: "Georgia / English" }, { value: "DE-de", name: "Germany / Deutsch" }, { value: "DE-gb", name: "Germany / English" }, { value: "GH-gb", name: "Ghana / English" }, { value: "GR-gb", name: "Greece / English" }, { value: "HK-gb", name: "Hong Kong / English" }, { value: "HU-gb", name: "Hungary / English" }, { value: "IS-gb", name: "Iceland / English" }, { value: "IN-gb", name: "India / English" }, { value: "ID-gb", name: "Indonesia / English" }, { value: "IR-gb", name: "Iran / English" }, { value: "IQ-gb", name: "Iraq / English" }, { value: "IE-gb", name: "Ireland / English" }, { value: "IL-gb", name: "Israel / English" }, { value: "IT-it", name: "Italy / Italiano" }, { value: "IT-gb", name: "Italy / English" }, { value: "JP-gb", name: "Japan / English" }, { value: "JO-gb", name: "Jordan / English" }, { value: "KZ-gb", name: "Kazakhstan / English" }, { value: "KE-gb", name: "Kenya / English" }, { value: "KR-gb", name: "Republic of Korea / English" }, { value: "KW-gb", name: "Kuwait / English" }, { value: "LV-gb", name: "Latvia / English" }, { value: "LB-gb", name: "Lebanon / English" }, { value: "LY-gb", name: "Libya / English" }, { value: "LT-gb", name: "Lithuania / English" }, { value: "LU-gb", name: "Luxembourg / English" }, { value: "MY-gb", name: "Malaysia / English" }, { value: "MV-gb", name: "Maldives / English" }, { value: "MT-gb", name: "Malta / English" }, { value: "MU-gb", name: "Mauritius / English" }, { value: "MX-es", name: "Mexico / Español" }, { value: "MD-gb", name: "Moldova / English" }, { value: "MA-fr", name: "Morocco / Français" }, { value: "NL-gb", name: "Netherlands / English" }, { value: "NZ-gb", name: "New Zealand / English" }, { value: "NG-gb", name: "Nigeria / English" }, { value: "NO-gb", name: "Norway / English" }, { value: "OM-gb", name: "Oman / English" }, { value: "PK-gb", name: "Pakistan / English" }, { value: "PA-es", name: "Panama / Español" }, { value: "PH-gb", name: "Philippines / English" }, { value: "PL-gb", name: "Poland / English" }, { value: "PL-pl", name: "Poland / Polski" }, { value: "PT-gb", name: "Portugal / English" }, { value: "PT-pt", name: "Portugal / Português" }, { value: "QA-gb", name: "Qatar / English" }, { value: "CD-gb", name: "Republic of the Congo / English" }, { value: "RO-gb", name: "Romania / English" }, { value: "RU-gb", name: "Russia / English" }, { value: "RU-ru", name: "Russia / Русский" }, { value: "SA-gb", name: "Saudi Arabia / English" }, { value: "RS-gb", name: "Serbia / English" }, { value: "SG-gb", name: "Singapore / English" }, { value: "SK-gb", name: "Slovakia / English" }, { value: "SI-gb", name: "Slovenia / English" }, { value: "ZA-gb", name: "South Africa / English" }, { value: "ES-gb", name: "Spain / English" }, { value: "ES-es", name: "Spain / Español" }, { value: "SD-gb", name: "Sudan / English" }, { value: "SE-gb", name: "Sweden / English" }, { value: "CH-de", name: "Switzerland / Deutsch" }, { value: "CH-gb", name: "Switzerland / English" }, { value: "CH-fr", name: "Switzerland / Français" }, { value: "TW-gb", name: "Taiwan / English " }, { value: "TH-gb", name: "Thailand / English" }, { value: "TN-fr", name: "Tunisia / Français" }, { value: "TR-gb", name: "Turkey / English" }, { value: "TM-gb", name: "Turkmenistan / English" }, { value: "UA-gb", name: "Ukraine / English" }, { value: "AE-gb", name: "United Arab Emirates / English" }, { value: "UK-gb", name: "United Kingdom / English" }, { value: "US-gb", name: "United States / English" }, { value: "VE-es", name: "Venezuela / Español" }, { value: "VN-gb", name: "Vietnam / English" }, { value: "XX-gb", name: "Other countries / English" } ]; function printLH() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("LH", "OS")) { return; } var createUrl = function(edition) { var style = 0; // 0 is direct booking - 1 is pre selected var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLH"); return false; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 0 }; if (style == 0) { var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/availThenFare?"; url += "WDS_MSE_PRICE_CURRENCY=EUR&WDS_MSE_TOTAL_PRICE=1.00&"; } else { var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/viewFlights?"; } url += "PORTAL=LH&COUNTRY_SITE=" + edition[0].toUpperCase() + "&POS=" + edition[0].toUpperCase() + "&LANGUAGE=" + edition[1].toUpperCase() + "&SECURE=TRUE&SITE=LUFTLUFT&SO_SITE_LH_FRONTEND_URL=www.lufthansa.com&WDS_WR_CHANNEL=LHCOM"; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += tmpPax.url; url += "&NB_ADT=" + tmpPax.adults; url += "&NB_INF=" + tmpPax.infants; url += "&NB_CHD=" + tmpPax.children; url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])(); url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].lhEdition.split("-"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid Lufthansa-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += lhEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Lufthansa", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printLH); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Lufthansa", "lhEdition", lhEditions, "US-gb"); /***/ }), /* 26 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const lxEditions = [ { value: "de_de", name: "Germany" }, { value: "us_en", name: "US" } ]; function printLX() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("LX")) { return; } // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["", "", "/class-business", "/class-first"]; var mincabin = 3; var createUrl = function(edition) { var url = "https://www.swiss.com/" + edition[0] + "/" + edition[1] + "/Book/Combined"; var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLX"); return; } //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg url += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest + "/"; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr + "-"; if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } url = url.substring(0, url.length - 1); url += "/" + (i > 0 ? "to" : "from") + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); } url += "/adults-" + pax.adults + "/children-" + pax.children.length + "/infants-" + pax.infLap; url += cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].lxEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid Swiss-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += lxEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Swiss", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printLX); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Swiss", "lxEdition", lxEditions, "us_en"); /***/ }), /* 27 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); function printOA() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("OA", "A3")) { return; } var url = "https://e-ticket.olympicair.com/A3Responsive/dyn/air/booking/?BOOKING_FLOW=REVENUE&FLEXIBILITY=3&DISPLAY_TYPE=2&FORCE_OVERRIDE=TRUE&PRICING_TYPE=O"; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOA"); return; } var paxConfig = { allowinf: 1, youthage: 0 }; var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])(); url += tmpPax.url; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); url += "&SITE=E00KE00K&SKIN=skin_oa&SO_GL=%3CSO_GL%3E%09%3CGLOBAL_LIST%3E%09%09%3CNAME%3ESL_TRAVELLER_TYPE_LIST%3C%2FNAME%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EADT%3C%2FCODE%3E%3CLIST_VALUE%3EAdult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EADT%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EB15%3C%2FCODE%3E%3CLIST_VALUE%3EYoung+adult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EB15%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC07%3C%2FCODE%3E%3CLIST_VALUE%3EYouth%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC07%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC03%3C%2FCODE%3E%3CLIST_VALUE%3EChild%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC03%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EINF%3C%2FCODE%3E%3CLIST_VALUE%3EInfant%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EINF%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E++++++++%3CLIST_ELEMENT%3E%3CCODE%3EUNN%3C%2FCODE%3E%3CLIST_VALUE%3EUMNR%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EUNN%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E&SO_SITE_ETKT_Q_OFFICE_ID=ATHA308OA&SO_SITE_OFFICE_ID=ATHA308OA&SO_SITE_POINT_OF_SALE=ATH&SO_SITE_POINT_OF_TICKETING=ATH&SO_SITE_PREBOOK_DURATION=I180&SO_SITE_QUEUE_OFFICE_ID=ATHA308OA&SO_SITE_SP_QUEUE_OFFICE_ID=ATHA308OA"; url += "&LANGUAGE=" + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "oa" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de" ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase() : "GB"); url += "&WDS_ADD_BOOK_NOW_BUTTON_EMAF=TRUE&WDS_ADVERTISING_PANEL_CONF_ACTIVATED=true&WDS_AFFILIATE_STATUS=C&WDS_AMOP_DISPLAY_PRIORITY=PAYPAL:SOFORT:KLARNA:EPS:IDEAL:BANCONTACT:ENTERCASH:ALIPAY:CUP&WDS_AMOP_FEE=PAYPAL:0;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:0;CUP:0;&WDS_AMOP_FEE_APPLY=PER_TRANSACTION&WDS_AMOP_FEE_CALCULATION=PER&WDS_AMOP_LIST_ACTIVATED=PAYPAL;KLARNA;SOFORT;ENTERCASH;EPS;IDEAL;BANCONTACT;ALIPAY;CUP&WDS_AMOP_LIST_DEACTIVATED=&WDS_AMOP_TIME_LIMIT=PAYPAL:48;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:24;CUP:24;&WDS_ANCILLARY_IN_MILES_ENABLED=TRUE&WDS_ASSISTANCE_REQUEST_ACTIVATED=TRUE&WDS_ATCOM_TIMEOUT=2000&WDS_AVAIL_PRICE_DISPLAY_TYPE=PER_ADT_WITH_TAX_NO_FEE&WDS_BAG_PLACEHOLDER_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BAG_POLICY_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BOOKING_LISTENER_URL=https://en.aegeanair.com/BookingListener.axd&WDS_BOUND_INDEX_EXPANDED=1&WDS_BUSINESS_MEAL_FARE_FAMILIES=BUSINESS:BUSINESTES:BUSINESSI&WDS_BUSINESS_MEAL_FREQUENT_FLYER_LEVELS=GOLD:SILVER&WDS_BUSINESS_MEAL_SUPPORTED=true&WDS_BUSINESS_ON_BOARD_DISPLAY_IN_LOGIN_PANEL=TRUE&WDS_BUSINESS_ON_BOARD_ENABLED=TRUE&WDS_BUSINESS_ON_BOARD_PAX_TYPE=ADT&WDS_CABIN_CLASS_DISPLAY=TRUE&WDS_CALENDAR_TO_UPSELL_FLEXIBLE_ACTIVATED=3&[email protected]&WDS_CAR_ENABLED=FALSE&WDS_CAR_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_CC_FEE_CARD_TYPE=VI:0;CA:0;MA:0;AX:0;DC:0;TP:;&WDS_CC_FEE_NO_CARD=0&WDS_CC_FEE_ZERO_DISPLAYED=FALSE&WDS_CC_LIST=VI:CA:MA:AX:DC:TP&WDS_CFF_TOUSE=CFF01FEB14&WDS_CHANNEL=B2C&WDS_CLEAR_CONTENT_URL=https://en.aegeanair.com/PlainContent.axd&WDS_DEVICE_NAME=DESKTOP_UNKNOWN&WDS_DEVICE_OS=Windows_10&WDS_DEVICE_VIEWPORT=L&WDS_DISPLAY_EMAIL_IN_BROWSER_URL=https://en.aegeanair.com/ConfirmationEmail.axd&WDS_DISPLAY_FBA_AND_REFUNDABILITY_PER_BOUND_IN_SB=TRUE&WDS_DISPLAY_GREEK_RURAL_ID=FALSE&WDS_DISPLAY_RECEIPT=SHOW&WDS_DISPLAY_REGULATION_CONDITIONS_COUNTRY=FR&WDS_DISPLAY_REGULATION_CONDITIONS_LANG=FR&WDS_DONATION_PANEL_ACTIVATED=FALSE&WDS_DONATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_EMAF_BOOK_NOW_URL=https://en.aegeanair.com/PostHandler.axd&WDS_ENABLE_PARKING=FALSE&WDS_ENABLE_TOKEN=true&WDS_ENABLE_TOKEN_FOR_CAR=false&WDS_ENABLE_TOKEN_FOR_HOTEL=false&WDS_EPTS=unknown_call&WDS_EXTERNAL_CSS_URL=https://en.aegeanair.com/css/1A/responsive.css?v=10&WDS_EXTRAS_DEFAULT_PANEL_ORDER=BAGGAGE;MEALS;SPEQ;PETS;FASTTRACK;INSURANCE;PARKING;DONATION&WDS_FARE_COMPARISON_URL=https://en.aegeanair.com/FareFamilyComparison.axd&WDS_FARE_CONDITIONS_URL=https://en.aegeanair.com/ffc.axd&WDS_FASTTRACK_ELIGIBLE_AIRPORTS=LCA;ATH&WDS_FASTTRACK_ENABLED=TRUE&WDS_FASTTRACK_HANDLER_URL=https://en.aegeanair.com/FastTrackHandler.axd&WDS_FREQUENT_FLYER_PROGRAMS_OA_FLIGHTS=A3;AC;UA;MS;TK;NH;LH;SQ&WDS_GDPR_DISPLAY_PROMOS_CONFIRMATION_NO_CONSENT=FALSE&WDS_GDPR_HANDLER_URL=https://en.aegeanair.com/api/v1/members/checkgdpremailstatus&WDS_GO_TO_FINALIZE_URL=https://en.aegeanair.com/FinalizeRedirect.axd&WDS_GO_TO_MY_BOOKING_URL=https://en.aegeanair.com/MyBooking.axd&WDS_GO_TO_SEAT_SELECTION_URL=https://en.aegeanair.com/SeatRedirect.axd&WDS_HANDLE_SOS_AS_RM_FEE=TRUE&WDS_HOTEL_ENABLED=FALSE&WDS_HOTEL_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_HOTEL_POPUP_CONF_ACTIVATED=TRUE&WDS_HOTEL_POPUP_CONF_DELAY=10000&WDS_HOTEL_RECOMMENDATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_ACTIVATED=TRUE&WDS_INSURANCE_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_PRESELECT=NONE&WDS_LATE_LOGIN_ENABLED=TRUE&WDS_LATE_LOGIN_URL=https://en.aegeanair.com/api/v1/members/loyaltyauth&WDS_MEAL_FORBIDDEN_PAX_TYPE=INF&WDS_MEAL_HANDLER_URL=https://en.aegeanair.com/MealHandler.axd&WDS_MEAL_LIST_PROPOSED=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_MILES_EARNED_HANDLER_URL=https://en.aegeanair.com/AwardedMiles.axd&WDS_NEW_PROMOTION_TYPE=NONE&WDS_NEW_PROMOTION_WEBSERVICES_ENVIRONMENT=PRODUCTION&WDS_OBFEE_FROM_NEWPOLICY_ACTIVATED=TRUE&WDS_OLYMPIC_TRACKING=true&WDS_ONLY_DIRECT_REQUESTED=FALSE&WDS_PARKING_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PETS_ENABLED=TRUE&WDS_PHONE_PRESELECT_COUNTRY_CODE=US&WDS_PLUSGRADE_ENABLED=false&WDS_PLUSGRADE_HANDLER_URL=https://en.aegeanair.com/PlusgradeHandler.axd&WDS_PROMO_SLOT_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PROMOCODE_ROUTE_AUTHORIZED=FALSE&WDS_PROMOTION_RBD_LIST=P&WDS_REBOOKING_HIGHSEASON_DATE=&WDS_RESKIN=TRUE&WDS_SB_HOTEL_TIMEOUT=15000&WDS_SEAT_BANNER_URL=https://en.aegeanair.com/SeatBanner.axd&WDS_SEATMAP_ENABLED=TRUE&WDS_SMS_OPTION=SHOW&[email protected]&[email protected]&WDS_SPECIAL_MEAL_LIST=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_SPECIAL_MEAL_SUPPORTED=TRUE&WDS_SPEQ_ENABLED=TRUE&WDS_TAX_BREAKDOWN_REGULATION_ALLOW_LANG=FR&WDS_TEALEAF_ENABLED=TRUE&WDS_TTT_ENABLED=TRUE&WDS_TTT_PROMO_FARES_REG_EXP=^PR([0-9])+$&WDS_TTT_SELECTION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_UMNR_ENTRY_OVERRIDE=WDS_HOTEL_ENABLED:FALSE;WDS_CAR_ENABLED:FALSE;WDS_TTT_ENABLED:false;WDS_FASTTRACK_ENABLED:false;WDS_ANCILLARY_IN_MILES:false;WDS_ENABLE_PARKING:false;WDS_ASSISTANCE_REQUEST_ACTIVATED:false;WDS_LATE_LOGIN_ENABLED:false;WDS_BUSINESS_ON_BOARD_ENABLED:false&WDS_URL_FACADE_ERROR=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_FACADE_NEWSEARCH=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_WAITING_CONTENT=https://en.aegeanair.com/WaitingPage.axd&WDS_USE_A3_SOS_INSURANCE_PANEL=TRUE&WDS_USEFUL_LINKS_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_VOUCHER_BANNER_ACTIVATED=TRUE&WDS_VOUCHER_BANNER_URL=https://en.aegeanair.com/PromoSlots.axd"; return { url, title: "Olympic Air" }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printOA); /***/ }), /* 28 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printPS() { if (!Object(___WEBPACK_IMPORTED_MODULE_1__["anyCarriers"])("PS")) { return; } var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printPS"); return false; } var url = "https://bookapi.flyuia.com/flights/metaSearchQuery?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=" + pax.infLap + "&PointOfSaleCountry=" + edition[1] + "&UserCurrency=" + currency + "&UserLanguage=" + edition[0] + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; var url = createUrl(["EN", "US"], "USD"); if (!url) { return; } return { url, title: "UIA" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", printPS); /***/ }), /* 29 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const qfEditions = [ { value: "EN_AU", name: "Australia" }, { value: "EN_NZ", name: "New Zealand" }, { value: "EN_US", name: "United States" } ]; const qfCurrencies = [ { value: "AUD", name: "AUD" }, { value: "NZD", name: "NZD" }, { value: "USD", name: "USD" } ]; function printQF() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("QF", "JQ", "NZ")) { return; } /* Qantas partner deep-link */ var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var travelClass = ["ECO", "PRM", "BUS", "FIR"]; // Start the minimum cabin at highest possible (it will drop as we check each leg): var mincabin = 3; // Validate the passenger totals first: var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printQF"); return false; } var nbrChildren = pax.children.length; if (!nbrChildren || typeof nbrChildren === "undefined") { // default to 0 children if undefined: nbrChildren = 0; } // Build search based on legs: console.log("printQF: begin leg traversal..."); var url = ""; var prefixFltNbr = "sdcFlightNumber"; var prefixSegRbd = "sdcSegmentRbd"; var depAirports = "&depAirports="; var destAirports = "&destAirports="; var segDepAirports = "&depAirports="; var segDestAirports = "&destAirports="; var tmpTravelDates = ""; var finalDest = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].seg[0].dest; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each parent "leg" of the itinerary (a leg can have multiple flight segments) // Record the travel date for each leg: if (tmpTravelDates === "" || !tmpTravelDates) { tmpTravelDates += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() + "0000"; } else { tmpTravelDates += "%2C" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() + "0000"; } // Grab the origin airport of each leg: if (segDepAirports.length > 13) segDepAirports += "%2C"; segDepAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig.toString(); // Grab the destination airport of each leg: if (segDestAirports.length > 14) segDestAirports += "%2C"; segDestAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest.toString(); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { // walks each flight segment of the parent leg var k = 0; // Do we need to skip segments? fnr has to be the same and it must be just a layover: while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) { break; } k++; } // Construct URL for this leg: url += "&" + prefixFltNbr + (i + 1) + (j + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&" + prefixSegRbd + (i + 1) + (j + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; // record the departing and destination airports for this leg: // all departing airports: if (depAirports.length > 13) depAirports += "%2C"; depAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig.toString(); // all destination airports: if (destAirports.length > 14) destAirports += "%2C"; destAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest.toString(); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } } // Add airports: // url += depAirports + destAirports; url += segDepAirports + segDestAirports; // Add travel dates: url += "&travelDates=" + tmpTravelDates; // Add price info: url += "&sdcTripPriceAmount=0.00"; // Add device type: url += "&QFdeviceType=desktop"; // Begin final deeplink URL construction: var urlBase = "https://book.qantas.com/qf-booking/dyn/air/tripflow.redirect?APPLICATION_NAME=SDC"; // Add edition / locale: urlBase += "&USER_LANG=EN&USER_LOCALE=" + edition; // Add class(es) of service: urlBase += "&travelClass=" + travelClass[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; // Add passenger info: urlBase += "&numberOfAdults=" + pax.adults + "&numberOfChildren=" + nbrChildren.toString() + "&numberOfInfants=" + pax.infLap; // Add currency: urlBase += "&sdcPriceCurrency=" + currency; return urlBase + url; }; // get edition var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += qfEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Qantas", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printQF); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfEdition", qfEditions, "EN_US"); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfCurrency", qfCurrencies, "USD"); /***/ }), /* 30 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); var cabins = ["E", "E", "B", "F"]; function print() { if (!Object(___WEBPACK_IMPORTED_MODULE_1__["allCarriers"])("QR")) { return; } const pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printQR"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const tripType = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1 ? "M" : "O"; let url = `https://booking.qatarairways.com/nsp/views/showBooking.action?widget=MLC&selLang=${_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].itaLanguage}&tripType=${tripType}&bookingClass=${cabin}&adults=${pax.adults}&children=${pax.children.length}&infants=${pax.infLap}&isMetaSearch=true&`; url += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map((itin, i) => { let qs = `fromStation=${itin.orig}&toStation=${itin.dest}&departing=${ itin.dep.year }-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.day)}`; if (i <= 1) qs += `&${i === 0 ? "out" : "in"}boundFltNumber=${itin.seg .map(seg => seg.fnr) .join(",")}`; return qs; }) .join("&"); if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length <= 2) url += "&price=0"; return { url, title: "Qatar Airways" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", print); /***/ }), /* 31 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); function printTK() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("TK")) { return; } var url = "https://book.eu2.amadeus.com/plnext/turkishairlines/Override.action?"; var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printTK"); return; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += "TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])(); url += tmpPax.url; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); url += "&PORT_TSC=FALSE&SO_SITE_ALLOW_SERVICE_FEE=0&SO_SITE_SERVICE_FEE_MODE=AIR&SITE=BBAHBBAH"; url += "&LANGUAGE=" + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "tk" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de" ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase() : "GB"); url += "&EMBEDDED_TRANSACTION=AirComplexAvailability&TRIPFLOW=YES"; url += "SO_LANG_TRIPFLOW_ENTRY_ADDRE=online.turkishairlines.com%2Finternet-booking%2Famadeus.tk&ARRANGE_BY=N&DIRECT_NON_STOP=false&REFRESH=0&SO_SITE_TAX_BREAKDOWN_DISP=TRUE&SO_LANG_DISABLE_X_XSS_PROTEC=TRUE&SO_SITE_REDIRECT_MODE=AUTOMATIC&SO_LANG_URL_AIR_NFS_SRCH=http%3A%2F%2Fonline.turkishairlines.com%2Finternet-booking%2Fstart.tk"; return { url, title: "Turkish" }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printTK); /***/ }), /* 32 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const cabins = ["", "p", "b", "f"]; function print() { var pax = Object(___WEBPACK_IMPORTED_MODULE_0__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])( "Error: Failed to validate Passengers in printGoogleFlights" ); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const url = "https://www.google.com/flights/#flt=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin .map( itin => `${itin.orig}.${itin.dest}.${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])( itin.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(itin.dep.day)}.${itin.seg .map( (seg, j) => `${seg.orig}${seg.dest}${j}${seg.carrier}${seg.fnr}` ) .join("~")}` ) .join("*") + `;c:${_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].cur || "USD"};px:${pax.adults},${pax.children.length},${ pax.infLap },${pax.infSeat};sc:${cabin};tt:${ _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length === 1 ? "o" : "m" }`; return { url, title: "Google Flights" }; } Object(___WEBPACK_IMPORTED_MODULE_0__["register"])("meta", print); /***/ }), /* 33 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const editions = [ { name: "Argentina", host: "https://ar.jetcost.com/vuelos/busqueda" }, { name: "Australia", host: "https://www.jetcost.com.au/flights/search" }, { name: "Bolivia", host: "https://www.jetcost.com.bo/vuelos/busqueda" }, { name: "Brasil", host: "https://www.jetcost.com.br/voos/pesquisa" }, { name: "Canada (en)", host: "https://ca.jetcost.com/en/flights/search" }, { name: "Canada (fr)", host: "https://ca.jetcost.com/fr/vols/recherche" }, { name: "Chile", host: "https://www.jetcost.cl/vuelos/busqueda" }, { name: "Colombia", host: "https://www.jetcost.com.co/vuelos/busqueda" }, { name: "Danmark", host: "https://www.jetcost.dk/flyrejser/sogning" }, { name: "Deutschland", host: "https://www.jetcost.de/fluge/suche" }, { name: "España", host: "https://www.jetcost.es/vuelos/busqueda" }, { name: "Estados Unidos (es)", host: "https://us.jetcost.com/es/vuelos/busqueda" }, { name: "France", host: "https://www.jetcost.com/vols/recherche" }, { name: "Hong Kong", host: "https://www.jetcost.hk/en/flights/search" }, { name: "India", host: "https://www.jetcost.co.in/en/flights/search" }, { name: "Indonesia", host: "https://www.jetcost.co.id/en/flights/search" }, { name: "Ireland", host: "https://www.jetcost.ie/flights/search" }, { name: "Italia", host: "https://www.jetcost.it/voli/ricerca" }, { name: "Magyarország", host: "https://www.jetcost.hu/jaratok/kereses" }, { name: "Malaysia", host: "https://www.jetcost.com.my/en/flights/search" }, { name: "México", host: "https://www.jetcost.com.mx/vuelos/busqueda" }, { name: "Nederland", host: "https://www.jetcost.nl/vluchten/zoeken" }, { name: "New Zealand", host: "https://www.jetcost.co.nz/flights/search" }, { name: "Norge", host: "https://www.jetcost.no/flyvninger/sok" }, { name: "Österreich", host: "https://www.jetcost.at/fluge/suche" }, { name: "Perú", host: "https://www.jetcost.com.pe/vuelos/busqueda" }, { name: "Philippines", host: "https://www.jetcost.com.ph/en/flights/search" }, { name: "Polska", host: "https://www.jetcost.pl/loty/wyszukiwanie" }, { name: "Portugal", host: "https://www.jetcost.pt/voos/pesquisar" }, { name: "România", host: "https://www.jetcost.ro/zboruri/cautare" }, { name: "Россия", host: "https://www.jetcost.ru/reysy/poisk" }, { name: "Singapore", host: "https://www.jetcost.com.sg/en/flights/search" }, { name: "South Africa", host: "https://www.jetcost.co.za/en/flights/search" }, { name: "Suomi", host: "https://www.jetcost.fi/lennot/hae" }, { name: "Sverige", host: "https://www.jetcost.se/flighter/sokning" }, { name: "Thailand", host: "https://www.jetcost.co.th/en/flights/search" }, { name: "United Kingdom", host: "https://www.jetcost.co.uk/flights/search" }, { name: "United States (en)", host: "https://us.jetcost.com/en/flights/search" }, { name: "Uruguay", host: "https://www.jetcost.com.uy/vuelos/busqueda" }, { name: "Venezuela", host: "https://www.jetcost.co.ve/vuelos/busqueda" }, { name: "한국", host: "https://www.jetcost.co.kr/flights/search" } ]; const cabins = [0, 0, 1, 2]; function print() { if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments if ( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 && !( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig ) ) return; // no open jaws var pax = Object(___WEBPACK_IMPORTED_MODULE_0__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(host) { return `${host}?adults=${pax.adults}&children=${ pax.children.length }&infants=${pax.infLap}&cabin_class=${cabin}&${_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin .map( (seg, i) => `trips[${i}][date]=${formatDate(seg.dep)}&trips[${i}][from_iata]=${ seg.orig }&trips[${i}][to_iata]=${seg.dest}` ) .join("&")}`; }; var url = createUrl("https://us.jetcost.com/en/flights/search"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Jetcost", extra }; } function formatDate(date) { return `${date.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(date.day)}`; } Object(___WEBPACK_IMPORTED_MODULE_0__["register"])("meta", print); /***/ }), /* 34 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Kayak.ae", host: "www.kayak.ae" }, { name: "Kayak.ar", host: "www.kayak.com.ar" }, { name: "Kayak.at", host: "www.kayak.cat" }, { name: "Kayak.au", host: "www.kayak.com.au" }, { name: "Kayak.br", host: "www.kayak.com.br" }, { name: "Kayak.ca", host: "www.ca.kayak.com" }, { name: "Kayak.ch", host: "www.kayak.ch" }, { name: "Kayak.cl", host: "www.kayak.cl" }, { name: "Kayak.cn", host: "www.cn.kayak.com" }, { name: "Kayak.co", host: "www.kayak.com.co" }, { name: "Kayak.com", host: "www.kayak.com" }, { name: "Kayak.de", host: "www.kayak.de" }, { name: "Kayak.dk", host: "www.kayak.dk" }, { name: "Kayak.es", host: "www.es.kayak.com" }, { name: "Kayak.es", host: "www.kayak.es" }, { name: "Kayak.fi", host: "www.fi.kayak.com" }, { name: "Kayak.fr", host: "www.kayak.fr" }, { name: "Kayak.gr", host: "www.gr.kayak.com" }, { name: "Kayak.hk", host: "www.kayak.com.hk" }, { name: "Kayak.id", host: "www.kayak.co.id" }, { name: "Kayak.ie", host: "www.kayak.ie" }, { name: "Kayak.in", host: "www.kayak.co.in" }, { name: "Kayak.it", host: "www.kayak.it" }, { name: "Kayak.jp", host: "www.kayak.co.jp" }, { name: "Kayak.kr", host: "www.kayak.co.kr" }, { name: "Kayak.mx", host: "www.kayak.com.mx" }, { name: "Kayak.my", host: "www.kayak.com.my" }, { name: "Kayak.nl", host: "www.kayak.nl" }, { name: "Kayak.no", host: "www.kayak.no" }, { name: "Kayak.nz", host: "www.nz.kayak.com" }, { name: "Kayak.pe", host: "www.kayak.com.pe" }, { name: "Kayak.pl", host: "www.kayak.pl" }, { name: "Kayak.pt", host: "www.kayak.pt" }, { name: "Kayak.ru", host: "www.kayak.ru" }, { name: "Kayak.se", host: "www.kayak.se" }, { name: "Kayak.sg", host: "www.kayak.sg" }, { name: "Kayak.th", host: "www.kayak.co.th" }, { name: "Kayak.tr", host: "www.kayak.com.tr" }, { name: "Kayak.tw", host: "www.tw.kayak.com" }, { name: "Kayak.uk", host: "www.kayak.co.uk" }, { name: "Kayak.vn", host: "www.vn.kayak.com" }, { name: "Kayak.za", host: "www.za.kayak.com" } ]; const cabins = ["economy", "premium", "business", "first"]; function print(method) { //example https://www.Kayak.ru/flights/MOW-CPH...OW/2016-05-20/ // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const createUrl = function(host) { let url = `https://${host}/flights/` + segs .map( seg => `${seg.orig}-${seg.dest}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.day)}` ) .join("/"); if (pax.adults > 1 || pax.children.length || pax.infSeat || pax.infLap) { url += `/${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax}adults`; } if (pax.children.length || pax.infSeat || pax.infLap) { url += "/children"; for (let i = 0; i < pax.infSeat; i++) { url += "-1S"; } for (let i = 0; i < pax.infLap; i++) { url += "-1L"; } for (let i = 0; i < pax.children.length; i++) { url += "-11"; } } url += "/" + cabin; return url; }; var url = createUrl("kayak.com"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Kayak", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 35 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Momondo.ar", host: "www.momondo.com.ar" }, { name: "Momondo.at", host: "www.momondo.at" }, { name: "Momondo.au", host: "www.momondo.com.au" }, { name: "Momondo.be", host: "www.momondo.be" }, { name: "Momondo.br", host: "www.momondo.com.br" }, { name: "Momondo.by", host: "www.momondo.by" }, { name: "Momondo.ca", host: "www.momondo.ca" }, { name: "Momondo.ch", host: "www.momondo.ch" }, { name: "Momondo.cl", host: "www.momondo.cl" }, { name: "Momondo.cn", host: "www.cn.momondo.com" }, { name: "Momondo.co", host: "www.momondo.com.co" }, { name: "Momondo.cz", host: "www.momondo.cz" }, { name: "Momondo.de", host: "www.momondo.de" }, { name: "Momondo.dk", host: "www.momondo.dk" }, { name: "Momondo.ee", host: "www.momondo.ee" }, { name: "Momondo.es", host: "www.momondo.es" }, { name: "Momondo.fi", host: "www.momondo.fi" }, { name: "Momondo.fr", host: "www.momondo.fr" }, { name: "Momondo.hk", host: "www.momondo.hk" }, { name: "Momondo.ie", host: "www.momondo.ie" }, { name: "Momondo.in", host: "www.momondo.in" }, { name: "Momondo.it", host: "www.momondo.it" }, { name: "Momondo.kz", host: "www.momondo.kz" }, { name: "Momondo.mx", host: "www.momondo.mx" }, { name: "Momondo.nl", host: "www.momondo.nl" }, { name: "Momondo.no", host: "www.momondo.no" }, { name: "Momondo.nz", host: "www.momondo.co.nz" }, { name: "Momondo.om", host: "www.momondo.com" }, { name: "Momondo.pe", host: "www.momondo.com.pe" }, { name: "Momondo.pl", host: "www.momondo.pl" }, { name: "Momondo.pt", host: "www.momondo.pt" }, { name: "Momondo.ro", host: "www.momondo.ro" }, { name: "Momondo.ru", host: "www.momondo.ru" }, { name: "Momondo.se", host: "www.momondo.se" }, { name: "Momondo.tr", host: "www.momondo.com.tr" }, { name: "Momondo.tw", host: "www.momondo.tw" }, { name: "Momondo.ua", host: "www.momondo.ua" }, { name: "Momondo.uk", host: "www.momondo.co.uk" }, { name: "Momondo.za", host: "www.momondo.co.za" } ]; var cabins = ["economy", "premium", "business", "first"]; function print(method) { //example https://www.Momondo.ru/flightsearch/?...false&NA=false //pax # &AD=2&CA=0,8 – not working with children (total amount of adults + kids goes to adult) // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(host) { let url = `https://${host}/flight-search/` + segs .map( seg => `${seg.orig}-${seg.dest}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.day)}` ) .join("/"); if (pax.adults > 1 || pax.children.length || pax.infSeat || pax.infLap) { url += `/${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax}adults`; } if (pax.children.length || pax.infSeat || pax.infLap) { url += "/children"; for (let i = 0; i < pax.infSeat; i++) { url += "-1S"; } for (let i = 0; i < pax.infLap; i++) { url += "-1L"; } for (let i = 0; i < pax.children.length; i++) { url += "-11"; } } url += "/" + cabin; return url; }; var url = createUrl("www.momondo.com"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Momondo", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 36 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Skyscanner.com", market: "US" }, { name: "Skyscanner.de", market: "DE" }, { name: "Skyscanner.it", market: "IT" }, { name: "Skyscanner.es", market: "ES" }, { name: "Skyscanner.co.uk", market: "UK" }, { name: "Skyscanner.dk", market: "DK" }, { name: "Skyscanner.mx", market: "MX" }, { name: "Skyscanner.fi", market: "FI" }, { name: "Skyscanner.fr", market: "FR" }, { name: "Skyscanner.no", market: "NO" }, { name: "Skyscanner.nl", market: "NL" }, { name: "Skyscanner.pt", market: "PT" }, { name: "Skyscanner.se", market: "SE" }, { name: "Skyscanner.ru", market: "RU" } ]; var cabins = ["", "premiumeconomy", "business", "first"]; function print(method) { //example https://www.skyscanner.ru/transport/d/stoc/2017-09-02/akl/akl/2017-09-16/stoc/akl/2017-09-29/syd?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&ref=day-view#results // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 8, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(market) { var url = "http://www.skyscanner.com/transport/d/"; // Add the segments: url += segs .map( seg => `${seg.orig}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.day )}/${seg.dest}` ) .join("/"); // Add passenger info: url += "?adults=" + pax.adults + "adultsv2=" + pax.adults; if (pax.children.length || pax.infLap) url += "&childrenv2=" + Array.apply(null, { length: pax.infLap }) .map(o => 0) .concat(pax.children) .join("|"); if (pax.infLap) url += "&infants=" + pax.infLap; // Add cabin / class of service: url += "&cabinclass=" + cabin; // Add locale ("market"): url += "&ref=day-view&market=" + market; return url; }; var url = createUrl("US"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.market) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Skyscanner", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 37 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Arabic", host: "ar.tripadvisor.com" }, { name: "Argentina", host: "www.tripadvisor.com.ar" }, { name: "Australia", host: "www.tripadvisor.com.au" }, { name: "Austria", host: "www.tripadvisor.at" }, { name: "Belgium", host: "fr.tripadvisor.be" }, { name: "Belgium", host: "www.tripadvisor.be" }, { name: "Brazil", host: "www.tripadvisor.com.br" }, { name: "Canada (English)", host: "www.tripadvisor.ca" }, { name: "Canada (French)", host: "fr.tripadvisor.ca" }, { name: "Chile", host: "www.tripadvisor.cl" }, { name: "China", host: "www.tripadvisor.cn" }, { name: "Chinese International", host: "cn.tripadvisor.com" }, { name: "Colombia", host: "www.tripadvisor.co" }, { name: "Czech Republic", host: "www.tripadvisor.cz" }, { name: "Denmark", host: "www.tripadvisor.dk" }, { name: "Egypt", host: "www.tripadvisor.com.eg" }, { name: "Finland", host: "www.tripadvisor.fi" }, { name: "France", host: "www.tripadvisor.fr" }, { name: "Germany", host: "www.tripadvisor.de" }, { name: "Greece", host: "www.tripadvisor.com.gr" }, { name: "Hong Kong", host: "en.tripadvisor.com.hk" }, { name: "Hong Kong", host: "www.tripadvisor.com.hk" }, { name: "Hungary", host: "www.tripadvisor.co.hu" }, { name: "India", host: "www.tripadvisor.in" }, { name: "Indonesia", host: "www.tripadvisor.co.id" }, { name: "Ireland", host: "www.tripadvisor.ie" }, { name: "Israel", host: "www.tripadvisor.co.il" }, { name: "Italy", host: "www.tripadvisor.it" }, { name: "Japan", host: "www.tripadvisor.jp" }, { name: "Malaysia", host: "www.tripadvisor.com.my" }, { name: "Mexico", host: "www.tripadvisor.com.mx" }, { name: "New Zealand", host: "www.tripadvisor.co.nz" }, { name: "Norway", host: "no.tripadvisor.com" }, { name: "Peru", host: "www.tripadvisor.com.pe" }, { name: "Philippines", host: "www.tripadvisor.com.ph" }, { name: "Poland", host: "pl.tripadvisor.com" }, { name: "Portugal", host: "www.tripadvisor.pt" }, { name: "Russia", host: "www.tripadvisor.ru" }, { name: "Serbia", host: "www.tripadvisor.rs" }, { name: "Singapore", host: "www.tripadvisor.com.sg" }, { name: "Slovakia", host: "www.tripadvisor.sk" }, { name: "South Africa", host: "www.tripadvisor.co.za" }, { name: "South Korea", host: "www.tripadvisor.co.kr" }, { name: "Spain", host: "www.tripadvisor.es" }, { name: "Sweden", host: "www.tripadvisor.se" }, { name: "Switzerland", host: "www.tripadvisor.ch" }, { name: "Switzerland", host: "fr.tripadvisor.ch" }, { name: "Switzerland", host: "it.tripadvisor.ch" }, { name: "Taiwan", host: "www.tripadvisor.com.tw" }, { name: "Thailand", host: "th.tripadvisor.com" }, { name: "The Netherlands", host: "www.tripadvisor.nl" }, { name: "Turkey", host: "www.tripadvisor.com.tr" }, { name: "United Kingdom", host: "www.tripadvisor.co.uk" }, { name: "United States", host: "www.tripadvisor.com" }, { name: "Venezuela", host: "www.tripadvisor.com.ve" }, { name: "Vietnam", host: "www.tripadvisor.com.vn" } ]; const cabins = ["0", "3", "1", "2"]; function print(method) { // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; const pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 8, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const nonstop = method ? "yes" : "no"; const createUrl = function(host) { let url = `https://${host}/CheapFlightsSearchResults?&cos=${cabin}&nonstop=${nonstop}`; let paxNum = 0; const addPax = age => (url += `&pax${paxNum++}=${age}`); Array.apply(null, { length: pax.adults }).forEach(o => addPax("a")); Array.apply(null, { length: pax.infLap }).forEach(o => addPax(0)); pax.children.forEach(age => addPax(age)); url += "&" + segs .map( (seg, i) => `date${i * 2}=${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.day )}&airport${i * 2}=${seg.orig}&nearby${i * 2}=no&airport${i * 2 + 1}=${seg.dest}&nearby${i * 2 + 1}=no` ) .join("&"); return url; }; const url = createUrl("www.tripadvisor.com"); let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Tripadvisor", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 38 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); function printCheapOair() { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "PremiumEconomy", "Business", "First"]; var coaUrl = "http://www.cheapoair.com/default.aspx?tabid=1832&ulang=en"; var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printCheapOair"); return; } coaUrl += "&ad=" + pax.adults + "&ch=" + pax.children.length + "&sr=0&is=" + pax.infSeat + "&il=" + pax.infLap; coaUrl += "&pos=US"; coaUrl += "&dispr=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price; var seg = 0; var slices = {}; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { slices[i] = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; if (slices[i]) slices[i] += ","; slices[i] += seg; coaUrl += "&cbn" + seg + "=" + cabins[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; coaUrl += "&carr" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; coaUrl += "&dd" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); coaUrl += "&og" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; coaUrl += "&dt" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; coaUrl += "&fbc" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; coaUrl += "&fnum" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; } coaUrl += "&Slice" + (i + 1) + "=" + slices[i]; } if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { coaUrl += "&tt=OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { coaUrl += "&tt=RoundTrip"; } else { coaUrl += "&tt=MultiCity"; } return { url: coaUrl, title: "CheapOair" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printCheapOair); /***/ }), /* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); const editions = [ { name: "Brazil", value: "www2.secure.edestinos.com.br" }, { name: "Peru", value: "www2.secure.edestinos.com.pe" }, { name: "Colombia", value: "www2.secure.edestinos.com.co" }, { name: "Dominican Republic", value: "www2.secure.edestinos.com.do" }, { name: "El Salvador", value: "www2.secure.edestinos.com.sv" }, { name: "Panama", value: "www2.secure.edestinos.com.pa" }, { name: "Nicaragua", value: "www2.secure.edestinos.com.ni" }, { name: "Guatemala", value: "www2.secure.edestinos.com.gt" }, { name: "Honduras", value: "www2.secure.edestinos.com.hn" }, { name: "Paraguay", value: "www2.secure.edestinos.com.py" }, { name: "Puerto Rico", value: "www2.secure.edestinos.com.pr" }, { name: "Costa Rica", value: "www2.secure.edestinos.cr" }, { name: "Bolivia", value: "www2.secure.edestinos.com.bo" }, { name: "Argentina", value: "www2.secure.edestinos.com.ar" }, { name: "Mexico", value: "www2.secure.edestinos.com.mx" }, { name: "Chile", value: "www2.secure.edestinos.cl" }, { name: "Poland", value: "www2.secure.esky.pl" }, { name: "Romania", value: "www2.secure.esky.ro" }, { name: "Bulgaria", value: "www2.secure.esky.bg" }, { name: "Czech Republic", value: "www2.secure.esky.cz" }, { name: "Slovakia", value: "www2.secure.esky.sk" }, { name: "Hungary", value: "www2.secure.esky.hu" }, { name: "Moldova", value: "www2.secure.esky.md" }, { name: "Spain", value: "www2.secure.esky.es" }, { name: "Serbia", value: "www2.secure.esky.rs" }, { name: "Croatia", value: "www2.secure.esky.hr" }, { name: "Bosnia and Herzegovina", value: "www2.secure.esky.ba" }, { name: "Ireland", value: "www2.secure.esky.ie" }, { name: "United Kingdom", value: "www2.secure.esky.co.uk" }, { name: "Turkey", value: "www2.secure.esky.com.tr" }, { name: "France", value: "www2.secure.esky.fr" }, { name: "Portugal", value: "www2.secure.esky.pt" }, { name: "Greece", value: "www2.secure.esky.gr" }, { name: "Germany", value: "www2.secure.eskytravel.de" }, { name: "Italy", value: "www2.secure.eskytravel.it" }, { name: "Austria", value: "www2.secure.esky.at" }, { name: "Switzerland", value: "www2.secure.eskytravel.ch" }, { name: "Netherlands", value: "www2.secure.esky.nl" }, { name: "Belgium", value: "www2.secure.eskytravel.be" }, { name: "Finland", value: "www2.secure.esky.fi" }, { name: "Denmark", value: "www2.secure.eskytravel.dk" }, { name: "Sweden", value: "www2.secure.esky.se" }, { name: "Norway", value: "www2.secure.eskytravel.no" }, { name: "Belarus", value: "www2.secure.esky.by" }, { name: "South Africa", value: "www2.secure.eskytravel.co.za" }, { name: "Russia", value: "www2.secure.eskytravel.ru" }, { name: "New Zealand", value: "www2.secure.eskytravel.co.nz" }, { name: "eSky.eu", value: "www2.secure.esky.eu" }, { name: "eSky.com", value: "www2.secure.esky.com" }, { name: "eDestinos.com", value: "www2.secure.edestinos.com" } ]; const cabins = ["Economy", "PremiumEconomy", "Business", "First"]; function print() { var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in edestinos"); return; } var createUrl = function(host) { const cur = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD"; let url = `https://${host}/api?PointOfSaleCountry=&UserCurrency=${cur}&DisplayedPrice=${ _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price }&DisplayedPriceCurrency=${cur}&UserLanguage=${_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language || "en"}&TripType=`; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } url += "&UserLanguage=" + _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language || false; url += "&Adult=" + pax.adults; url += "&Child=" + pax.children.length; url += "&InfantLap=" + pax.infLap; let j = 0; _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.forEach((itin, i) => { const slices = []; itin.seg.forEach(seg => { j++; slices.push(j); url += `&Cabin${j}=` + cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(seg.cabin)]; url += `&Carrier${j}=` + seg.carrier; url += `&Origin${j}=` + seg.orig; url += `&Destination${j}=` + seg.dest; url += `&BookingCode${j}=` + seg.bookingclass; url += `&FlightNumber${j}=` + seg.fnr; url += `&DepartureDate${j}=${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(seg.dep.day)}`; }); url += `&Slice${i + 1}=` + slices.join(","); }); return url; }; var url = createUrl("www2.secure.edestinos.com.br"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "eDestinos", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", print); /***/ }), /* 40 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const eDreams = [ { name: "eDreams.com", domain: "www.edreams.com" }, { name: "eDreams.au", domain: "www.edreams.com.au" }, { name: "eDreams.br", domain: "www.edreams.com.br" }, { name: "eDreams.ca", domain: "ca.edreams.com" }, { name: "eDreams.ch", domain: "www.edreams.ch" }, { name: "eDreams.cl", domain: "cl.edreams.com" }, { name: "eDreams.cn", domain: "cn.edreams.com" }, { name: "eDreams.co", domain: "co.edreams.com" }, { name: "eDreams.co.uk", domain: "www.edreams.co.uk" }, { name: "eDreams.com.ar", domain: "www.edreams.com.ar" }, { name: "eDreams.com.mx", domain: "www.edreams.com.mx" }, { name: "eDreams.com.ru", domain: "www.edreams.com.ru" }, { name: "eDreams.com.tr", domain: "www.edreams.com.tr" }, { name: "eDreams.de", domain: "www.edreams.de" }, { name: "eDreams.es", domain: "www.edreams.es" }, { name: "eDreams.fr", domain: "www.edreams.fr" }, { name: "eDreams.gr", domain: "www.edreams.gr" }, { name: "eDreams.hk", domain: "www.edreams.hk" }, { name: "eDreams.id", domain: "id.edreams.com" }, { name: "eDreams.in", domain: "www.edreams.in" }, { name: "eDreams.it", domain: "www.edreams.it" }, { name: "eDreams.jp", domain: "www.edreams.jp" }, { name: "eDreams.ma", domain: "www.edreams.ma" }, { name: "eDreams.net", domain: "www.edreams.net" }, { name: "eDreams.nl", domain: "nl.edreams.com" }, { name: "eDreams.nz", domain: "nz.edreams.com" }, { name: "eDreams.pe", domain: "www.edreams.pe" }, { name: "eDreams.ph", domain: "www.edreams.ph" }, { name: "eDreams.pt", domain: "www.edreams.pt" }, { name: "eDreams.sg", domain: "sg.edreams.com" }, { name: "eDreams.th", domain: "th.edreams.com" }, { name: "eDreams.za", domain: "za.edreams.com" } ]; const opodo = [ { name: "Opodo.com", domain: "www.opodo.com" }, { name: "Opodo.at", domain: "www.opodo.at" }, { name: "Opodo.be", domain: "www.opodo.be" }, { name: "Opodo.ch", domain: "www.opodo.ch" }, { name: "Opodo.co.uk", domain: "www.opodo.co.uk" }, { name: "Opodo.com.au", domain: "www.opodo.com.au" }, { name: "Opodo.de", domain: "www.opodo.de" }, { name: "Opodo.dk", domain: "www.opodo.dk" }, { name: "Opodo.es", domain: "www.opodo.es" }, { name: "Opodo.fi", domain: "www.opodo.fi" }, { name: "Opodo.fr", domain: "www.opodo.fr" }, { name: "Opodo.it", domain: "www.opodo.it" }, { name: "Opodo.nl", domain: "www.opodo.nl" }, { name: "Opodo.no", domain: "www.opodo.no" }, { name: "Opodo.pl", domain: "www.opodo.pl" }, { name: "Opodo.pt", domain: "www.opodo.pt" }, { name: "Opodo.se", domain: "www.opodo.se" } ]; const travellink = [ { name: "Travellink.com", domain: "www.travellink.com" }, { name: "Travellink.de", domain: "www.travellink.de" }, { name: "Travellink.dk", domain: "www.travellink.dk" }, { name: "Travellink.fi", domain: "www.travellink.fi" }, { name: "Travellink.is", domain: "www.travellink.is" }, { name: "Travellink.no", domain: "www.travellink.no" }, { name: "Travellink.se", domain: "www.travellink.se" } ]; const cabins = ["TOURIST", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"]; function printEdreams(title, editions) { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEdreams"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(domain) { const deeplink = `/results/type=M;${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map( (itin, i) => `dep${i}=${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( itin.dep.day )};from${i}=${itin.orig};to${i}=${itin.dest}` ) .join(";")};class=${cabin};adults=${pax.adults};children=${ pax.children.length };infants=${ pax.infLap };collectionmethod=false;airlinescodes=false;internalSearch=true`; const segKeys = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map( (itin, i) => `segmentKey${i}=0,${itin.seg .map(seg => seg.carrier + seg.fnr) .join(",")}` ) .join("&"); return `https://${domain}/travel/?landingPageType=TEST_AB&searchId=${new Date().getTime()}&deeplink=${deeplink}&fareItineraryKey=0,1A&${segKeys}&searchMainProductTypeName=FLIGHT`; }; var url = createUrl(editions[0].domain); if (!url) return; var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.domain) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title, extra }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("eDreams", eDreams)); Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("Opodo", opodo)); Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("Travellink", travellink)); /***/ }), /* 41 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); const editions = [ { name: "Seat24.se", host: "www.seat24.se" }, { name: "Seat24.de", host: "www.seat24.de" }, { name: "Seat24.dk", host: "www.seat24.dk" }, { name: "Seat24.fi", host: "www.seat24.fi" }, { name: "Seat24.no", host: "www.seat24.no" }, { name: "Flygvaruhuset.se", host: "www.flygvaruhuset.se" }, { name: "Travelpartner.se", host: "www.travelpartner.se" }, { name: "Travelpartner.fi", host: "www.travelpartner.fi" }, { name: "Travelpartner.no", host: "www.travelpartner.no" }, { name: "Budjet.se", host: "www.budjet.se" }, { name: "Budjet.fi", host: "www.budjet.fi" }, { name: "Budjet.no", host: "www.budjet.no" }, { name: "Budjet.dk", host: "www.budjet.dk" }, { name: "Goleif.dk", host: "www.goleif.dk" }, { name: "Travelfinder.se", host: "www.travelfinder.se" }, { name: "Gotogate.no", host: "www.gotogate.no" }, { name: "Gotogate.at", host: "www.gotogate.at" }, { name: "Gotogate.be", host: "be.gotogate.com" }, { name: "Gotogate.bg", host: "bg.gotogate.com" }, { name: "Gotogate.ch", host: "www.gotogate.ch" }, { name: "Gotogate.cz", host: "cz.gotogate.com" }, { name: "Gotogate.es", host: "www.gotogate.es" }, { name: "Gotogate.fr", host: "www.gotogate.fr" }, { name: "Gotogate.gr", host: "www.gotogate.gr" }, { name: "Gotogate.hu", host: "hu.gotogate.com" }, { name: "Gotogate.ie", host: "ie.gotogate.com" }, { name: "Gotogate.it", host: "www.gotogate.it" }, { name: "Gotogate.pl", host: "www.gotogate.pl" }, { name: "Gotogate.pt", host: "www.gotogate.pt" }, { name: "Gotogate.ro", host: "ro.gotogate.com" }, { name: "Gotogate.sk", host: "www.gotogate.sk" }, { name: "Gotogate.tr", host: "tr.gotogate.com" }, { name: "Gotogate.com.ua", host: "www.gotogate.com.ua" }, { name: "Gotogate.co.uk", host: "www.gotogate.co.uk" }, { name: "Flybillet.dk", host: "www.flybillet.dk" }, { name: "Travelstart.se", host: "www.travelstart.se" }, { name: "Travelstart.de", host: "www.travelstart.de" }, { name: "Travelstart.dk", host: "www.travelstart.dk" }, { name: "Travelstart.fi", host: "www.travelstart.fi" }, { name: "Travelstart.no", host: "www.travelstart.no" }, { name: "Supersaver.se", host: "www.supersavertravel.se" }, { name: "Supersaver.dk", host: "www.supersaver.dk" }, { name: "Supersaver.fi", host: "www.supersaver.fi" }, { name: "Supersaver.nl", host: "www.supersaver.nl" }, { name: "Supersaver.no", host: "www.supersaver.no" }, { name: "Supersaver.ru", host: "www.supersaver.ru" } ]; function printEtraveli() { if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 && !( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig ) ) return; // no open jaws var convertDate = function(date, withYear) { return ( ("0" + date.day).slice(-2) + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* monthnumberToName */ "f"])(date.month) + (withYear ? date.year.toString().slice(-2) : "") ); }; var createUrl = function(host) { var ggUrl = "http://" + host + "/air/"; ggUrl += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest + convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dep, false); if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1) ggUrl += convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dep, false); ggUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax; ggUrl += "?selectionKey=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map(function(itin) { return itin.seg .map(function(seg) { return ( seg.carrier + seg.fnr + "-" + convertDate(seg.dep, true) + "-" + seg.bookingclass ); }) .join("_"); }) .join("_"); return ggUrl; }; // picked seat24 as main one, but could be any of them var ggUrl = createUrl("www.seat24.de"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url: ggUrl, title: "Seat24.de", extra }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printEtraveli); /***/ }), /* 42 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const editions = [ { name: "expedia.com", host: "expedia.com" }, { name: "orbitz.com", host: "orbitz.com" }, { name: "expedia.ca", host: "expedia.ca" }, { name: "expedia.de", host: "expedia.de" }, { name: "expedia.it", host: "expedia.it" }, { name: "expedia.es", host: "expedia.es" }, { name: "expedia.co.uk", host: "expedia.co.uk" }, { name: "expedia.dk", host: "expedia.dk" }, { name: "expedia.mx", host: "expedia.mx" }, { name: "expedia.fi", host: "expedia.fi" }, { name: "expedia.fr", host: "expedia.fr" }, { name: "expedia.no", host: "expedia.no" }, { name: "expedia.nl", host: "expedia.nl" }, { name: "expedia.ch", host: "expedia.ch" }, { name: "expedia.se", host: "expedia.se" }, { name: "expedia.at", host: "expedia.at" }, { name: "expedia.co.jp", host: "expedia.co.jp" } ]; function printExpedia() { var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printExpedia"); return; } let expediaClasses = ["coach", "premium", "business", "first"]; let minCabin = 3; let ExpediaCreateUrl = function(expediaBase) { let segUrl = ""; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { segUrl += "&legs%5B" + i + "%5D.departureAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig; segUrl += "&legs%5B" + i + "%5D.arrivalAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest; segUrl += "&legs%5B" + i + "%5D.departureDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].arr.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { segUrl += ( "&legs%5B" + i + "%5D.segments%5B" + j + "%5D=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "-" + expediaClasses[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ] + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr ).toLowerCase(); // check the min cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < minCabin) { minCabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } } // Build the URL: let baseUrl = "https://www." + expediaBase + "/Flight-Search-Details?action=dl&trip=MultipleDestination"; // Add travel class to URL: baseUrl += "&cabinClass=" + expediaClasses[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; // Add passenger info to URL: baseUrl += "&adults=" + pax.adults; return baseUrl + segUrl; }; var ExpediaUrl = ExpediaCreateUrl("expedia.com"); var container = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; container += editions .map(function(obj, i) { return ( '<a href="' + ExpediaCreateUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); container += "</span></span>"; return { url: ExpediaUrl, title: "Expedia", extra: container }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", printExpedia); /***/ }), /* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); const editions = [ { name: "English", url: "" }, { name: "Español", url: "es" }, { name: "Português", url: "pt" }, { name: "Deutsch", url: "de" }, { name: "Italiano", url: "it" }, { name: "Dansk", url: "da" }, { name: "Svenska", url: "sv" }, { name: "Norsk", url: "no" }, { name: "Nederlands", url: "nl" }, { name: "Finnish", url: "fi" }, { name: "Polish", url: "pl" }, { name: "Turkish", url: "tk" } ]; function printFN() { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printFN"); return; } const createUrl = function(edition) { const tty = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length === 2 ? 1 : 0; let search = `cref=fnbwmint&tty=${tty}&curr=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}&nativecurr=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}&cls=0&adt=${ pax.adults }&chd=${pax.children.length}&inf=${ pax.infLap }&tot=0.00&tax=0.00&chdtot=0.00&chdtax=0.00&inftot=0.00&inftax=0.00&`; let segCount = 0; search += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map((leg, i) => { const key = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length === 2 && i === 1 ? "ib" : "ob"; const legNum = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2 ? 0 : i; return leg.seg .map((seg, j) => { const segNum = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2 ? segCount++ : j; return `${key}${legNum + 1}${segNum ? segNum : ""}=${seg.carrier}${ seg.fnr }${seg.bookingclass}!${formatDate(seg.dep)}!${seg.orig}${ seg.dest }!${formatDate(seg.arr)}`; }) .join("&"); }) .join("&"); return `https://www.flightnetwork.com/${edition.url}${ edition.url ? "/" : "" }flights/showflight?enc=${btoa(search)}`; }; var url = createUrl(editions[0]); if (!url) return; let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "FlightNetwork", extra }; } function formatDate(date) { return ( "" + date.year + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(date.month) + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(date.day) + date.time24.replace(":", "") ); } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printFN); /***/ }), /* 44 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const editions = [ { title: "Ovago", host: "ovago.com" }, { title: "Wowfare", host: "wowfare.com" } ]; const cabins = ["Y", "S", "C", "F"]; function print() { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printHop2"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])(); const search = `OSKDCR*${cabin}${pax.adults}${pax.children.length}${ pax.infSeat }0/${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map( itin => itin.orig + itin.dest + `${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( itin.dep.day )}` ) .join("/")}*${segs[segs.length - 1].carrier}~#${segs .map(seg => seg.carrier + seg.fnr) .join("#")}`; const createUrl = function(host) { return `https://${host}/ms?key=1_${btoa(search)}`; }; var url = createUrl("hop2.com"); if (!url) return; let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.title + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Hop2", extra }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", print); /***/ }), /* 45 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const editions = [ { lang: "pl", country: "PL" }, { lang: "bg", country: "BG" }, { lang: "ro", country: "RO" }, { lang: "cs", country: "CZ" }, { lang: "hu", country: "HU" }, { lang: "sk", country: "SK" }, { lang: "pt", country: "PT" }, { lang: "es", country: "ES" }, { lang: "en", country: "GB" }, { lang: "en", country: "IE" }, { lang: "en", country: "US" }, { lang: "it", country: "IT" }, { lang: "de", country: "DE" }, { lang: "fr", country: "FR" }, { lang: "el", country: "GR" } ]; function printLucky2go() { var createUrl = function(edition) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])( "Error: Failed to validate Passengers in printLucky2go" ); return; } var url = "https://secure.lucky2go.com/flights/options/?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=0&InfantLap=" + pax.infLap + "&PointOfSaleCountry=" + edition.country + "&UserCurrency=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD") + "&DisplayedPrice=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + "&DisplayedPriceCurrency=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD") + "&UserLanguage=" + edition.lang + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; // get edition var url = createUrl({ lang: "en", country: "US" }); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map( edition => `<a href="${createUrl(edition)}" target="_blank">${ edition.lang }‑${edition.country}</a>` ) .join("<br/>"); extra += "</span></span>"; return { url, title: "lucky2go", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", printLucky2go); /***/ }), /* 46 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printPriceline() { var pricelineurl = "https://www.priceline.com/m/fly/search"; var searchparam = "~"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg searchparam = searchparam.substring(0, searchparam.length - 1) + "-"; pricelineurl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig; pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest; pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].arr.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig; searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(-4); searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest; searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")).slice( -4 ); searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr; searchparam += "~"; j += k; } } searchparam = searchparam.substring(1, searchparam.length - 1); var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printPriceline"); return; } pricelineurl += "/desktop/details/R_" + searchparam + "_" + (pax.adults + pax.children.length + pax.infLap) + "_USD0.00_1-1-1?num-adults=" + pax.adults + "&num-children=" + pax.children.length + "&num-infants=" + pax.infLap + "&num-youths=0"; return { url: pricelineurl, title: "Priceline" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printPriceline); /***/ }), /* 47 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); function printGCM() { let url = ""; // Build multi-city search based on segments // Keeping continous path as long as possible for (let i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin.length; i++) { for (let j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg.length; j++) { url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].orig + "-"; if (j + 1 < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg.length) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest != _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j + 1].orig ) { url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest + ";"; } } else { url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest + ";"; } } } return { img: "http://www.gcmap.com/map?MR=900&MX=182x182&PM=*&P=" + url, url: "http://www.gcmap.com/mapui?P=" + url, title: "GCM" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("other", printGCM); /***/ }), /* 48 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); function printWheretocredit() { return { url: "https://www.wheretocredit.com/calculator#" + Object(_parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentSegs */ "b"])() .map(seg => [seg.orig, seg.dest, seg.carrier, seg.bookingclass].join("-") ) .join("/"), title: "Where to Credit" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("other", printWheretocredit); /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/settings/userSettings.js var userSettings = __webpack_require__(2); // EXTERNAL MODULE: ./src/utils.js var utils = __webpack_require__(1); // EXTERNAL MODULE: ./src/links/index.js var links = __webpack_require__(3); // EXTERNAL MODULE: ./src/parse/itin.js var itin = __webpack_require__(0); // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/assign/index.js function assign_assign(target, dirtyObject) { if (target == null) { throw new TypeError('assign requires that input parameter not be null or undefined'); } dirtyObject = dirtyObject || {}; for (var property in dirtyObject) { if (dirtyObject.hasOwnProperty(property)) { target[property] = dirtyObject[property]; } } return target; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/cloneObject/index.js function cloneObject(dirtyObject) { return assign_assign({}, dirtyObject); } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/requiredArgs/index.js function requiredArgs(required, args) { if (args.length < required) { throw new TypeError(required + ' argument' + required > 1 ? 's' : '' + ' required, but only ' + args.length + ' present'); } } // CONCATENATED MODULE: ./node_modules/date-fns/esm/toDate/index.js /** * @name toDate * @category Common Helpers * @summary Convert the given argument to an instance of Date. * * @description * Convert the given argument to an instance of Date. * * If the argument is an instance of Date, the function returns its clone. * * If the argument is a number, it is treated as a timestamp. * * If the argument is none of the above, the function returns Invalid Date. * * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. * * @param {Date|Number} argument - the value to convert * @returns {Date} the parsed date in the local time zone * @throws {TypeError} 1 argument required * * @example * // Clone the date: * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) * //=> Tue Feb 11 2014 11:30:30 * * @example * // Convert the timestamp to date: * const result = toDate(1392098430000) * //=> Tue Feb 11 2014 11:30:30 */ function toDate(argument) { requiredArgs(1, arguments); var argStr = Object.prototype.toString.call(argument); // Clone the date if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') { // Prevent the date to lose the milliseconds when passed to new Date() in IE10 return new Date(argument.getTime()); } else if (typeof argument === 'number' || argStr === '[object Number]') { return new Date(argument); } else { if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { // eslint-disable-next-line no-console console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console console.warn(new Error().stack); } return new Date(NaN); } } // CONCATENATED MODULE: ./node_modules/date-fns/esm/isValid/index.js /** * @name isValid * @category Common Helpers * @summary Is the given date valid? * * @description * Returns false if argument is Invalid Date and true otherwise. * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate} * Invalid Date is a Date, whose time value is NaN. * * Time value of Date: http://es5.github.io/#x15.9.1.1 * * ### v2.0.0 breaking changes: * * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). * * - Now `isValid` doesn't throw an exception * if the first argument is not an instance of Date. * Instead, argument is converted beforehand using `toDate`. * * Examples: * * | `isValid` argument | Before v2.0.0 | v2.0.0 onward | * |---------------------------|---------------|---------------| * | `new Date()` | `true` | `true` | * | `new Date('2016-01-01')` | `true` | `true` | * | `new Date('')` | `false` | `false` | * | `new Date(1488370835081)` | `true` | `true` | * | `new Date(NaN)` | `false` | `false` | * | `'2016-01-01'` | `TypeError` | `false` | * | `''` | `TypeError` | `false` | * | `1488370835081` | `TypeError` | `true` | * | `NaN` | `TypeError` | `false` | * * We introduce this change to make *date-fns* consistent with ECMAScript behavior * that try to coerce arguments to the expected type * (which is also the case with other *date-fns* functions). * * @param {*} date - the date to check * @returns {Boolean} the date is valid * @throws {TypeError} 1 argument required * * @example * // For the valid date: * var result = isValid(new Date(2014, 1, 31)) * //=> true * * @example * // For the value, convertable into a date: * var result = isValid(1393804800000) * //=> true * * @example * // For the invalid date: * var result = isValid(new Date('')) * //=> false */ function isValid(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); return !isNaN(date); } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js var formatDistanceLocale = { lessThanXSeconds: { one: 'less than a second', other: 'less than {{count}} seconds' }, xSeconds: { one: '1 second', other: '{{count}} seconds' }, halfAMinute: 'half a minute', lessThanXMinutes: { one: 'less than a minute', other: 'less than {{count}} minutes' }, xMinutes: { one: '1 minute', other: '{{count}} minutes' }, aboutXHours: { one: 'about 1 hour', other: 'about {{count}} hours' }, xHours: { one: '1 hour', other: '{{count}} hours' }, xDays: { one: '1 day', other: '{{count}} days' }, aboutXMonths: { one: 'about 1 month', other: 'about {{count}} months' }, xMonths: { one: '1 month', other: '{{count}} months' }, aboutXYears: { one: 'about 1 year', other: 'about {{count}} years' }, xYears: { one: '1 year', other: '{{count}} years' }, overXYears: { one: 'over 1 year', other: 'over {{count}} years' }, almostXYears: { one: 'almost 1 year', other: 'almost {{count}} years' } }; function formatDistance(token, count, options) { options = options || {}; var result; if (typeof formatDistanceLocale[token] === 'string') { result = formatDistanceLocale[token]; } else if (count === 1) { result = formatDistanceLocale[token].one; } else { result = formatDistanceLocale[token].other.replace('{{count}}', count); } if (options.addSuffix) { if (options.comparison > 0) { return 'in ' + result; } else { return result + ' ago'; } } return result; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js function buildFormatLongFn(args) { return function (dirtyOptions) { var options = dirtyOptions || {}; var width = options.width ? String(options.width) : args.defaultWidth; var format = args.formats[width] || args.formats[args.defaultWidth]; return format; }; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js var dateFormats = { full: 'EEEE, MMMM do, y', long: 'MMMM do, y', medium: 'MMM d, y', short: 'MM/dd/yyyy' }; var timeFormats = { full: 'h:mm:ss a zzzz', long: 'h:mm:ss a z', medium: 'h:mm:ss a', short: 'h:mm a' }; var dateTimeFormats = { full: "{{date}} 'at' {{time}}", long: "{{date}} 'at' {{time}}", medium: '{{date}}, {{time}}', short: '{{date}}, {{time}}' }; var formatLong = { date: buildFormatLongFn({ formats: dateFormats, defaultWidth: 'full' }), time: buildFormatLongFn({ formats: timeFormats, defaultWidth: 'full' }), dateTime: buildFormatLongFn({ formats: dateTimeFormats, defaultWidth: 'full' }) }; /* harmony default export */ var _lib_formatLong = (formatLong); // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js var formatRelativeLocale = { lastWeek: "'last' eeee 'at' p", yesterday: "'yesterday at' p", today: "'today at' p", tomorrow: "'tomorrow at' p", nextWeek: "eeee 'at' p", other: 'P' }; function formatRelative(token, _date, _baseDate, _options) { return formatRelativeLocale[token]; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js function buildLocalizeFn(args) { return function (dirtyIndex, dirtyOptions) { var options = dirtyOptions || {}; var context = options.context ? String(options.context) : 'standalone'; var valuesArray; if (context === 'formatting' && args.formattingValues) { var defaultWidth = args.defaultFormattingWidth || args.defaultWidth; var width = options.width ? String(options.width) : defaultWidth; valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; } else { var _defaultWidth = args.defaultWidth; var _width = options.width ? String(options.width) : args.defaultWidth; valuesArray = args.values[_width] || args.values[_defaultWidth]; } var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; return valuesArray[index]; }; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js var eraValues = { narrow: ['B', 'A'], abbreviated: ['BC', 'AD'], wide: ['Before Christ', 'Anno Domini'] }; var quarterValues = { narrow: ['1', '2', '3', '4'], abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized. // If you are making a new locale based on this one, check if the same is true for the language you're working on. // Generally, formatted dates should look like they are in the middle of a sentence, // e.g. in Spanish language the weekdays and months should be in the lowercase. }; var monthValues = { narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }; var dayValues = { narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] }; var dayPeriodValues = { narrow: { am: 'a', pm: 'p', midnight: 'mi', noon: 'n', morning: 'morning', afternoon: 'afternoon', evening: 'evening', night: 'night' }, abbreviated: { am: 'AM', pm: 'PM', midnight: 'midnight', noon: 'noon', morning: 'morning', afternoon: 'afternoon', evening: 'evening', night: 'night' }, wide: { am: 'a.m.', pm: 'p.m.', midnight: 'midnight', noon: 'noon', morning: 'morning', afternoon: 'afternoon', evening: 'evening', night: 'night' } }; var formattingDayPeriodValues = { narrow: { am: 'a', pm: 'p', midnight: 'mi', noon: 'n', morning: 'in the morning', afternoon: 'in the afternoon', evening: 'in the evening', night: 'at night' }, abbreviated: { am: 'AM', pm: 'PM', midnight: 'midnight', noon: 'noon', morning: 'in the morning', afternoon: 'in the afternoon', evening: 'in the evening', night: 'at night' }, wide: { am: 'a.m.', pm: 'p.m.', midnight: 'midnight', noon: 'noon', morning: 'in the morning', afternoon: 'in the afternoon', evening: 'in the evening', night: 'at night' } }; function ordinalNumber(dirtyNumber, _dirtyOptions) { var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example, // if they are different for different grammatical genders, // use `options.unit`: // // var options = dirtyOptions || {} // var unit = String(options.unit) // // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', // 'day', 'hour', 'minute', 'second' var rem100 = number % 100; if (rem100 > 20 || rem100 < 10) { switch (rem100 % 10) { case 1: return number + 'st'; case 2: return number + 'nd'; case 3: return number + 'rd'; } } return number + 'th'; } var localize_localize = { ordinalNumber: ordinalNumber, era: buildLocalizeFn({ values: eraValues, defaultWidth: 'wide' }), quarter: buildLocalizeFn({ values: quarterValues, defaultWidth: 'wide', argumentCallback: function (quarter) { return Number(quarter) - 1; } }), month: buildLocalizeFn({ values: monthValues, defaultWidth: 'wide' }), day: buildLocalizeFn({ values: dayValues, defaultWidth: 'wide' }), dayPeriod: buildLocalizeFn({ values: dayPeriodValues, defaultWidth: 'wide', formattingValues: formattingDayPeriodValues, defaultFormattingWidth: 'wide' }) }; /* harmony default export */ var _lib_localize = (localize_localize); // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js function buildMatchPatternFn(args) { return function (dirtyString, dirtyOptions) { var string = String(dirtyString); var options = dirtyOptions || {}; var matchResult = string.match(args.matchPattern); if (!matchResult) { return null; } var matchedString = matchResult[0]; var parseResult = string.match(args.parsePattern); if (!parseResult) { return null; } var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; value = options.valueCallback ? options.valueCallback(value) : value; return { value: value, rest: string.slice(matchedString.length) }; }; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js function buildMatchFn(args) { return function (dirtyString, dirtyOptions) { var string = String(dirtyString); var options = dirtyOptions || {}; var width = options.width; var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; var matchResult = string.match(matchPattern); if (!matchResult) { return null; } var matchedString = matchResult[0]; var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; var value; if (Object.prototype.toString.call(parsePatterns) === '[object Array]') { value = findIndex(parsePatterns, function (pattern) { return pattern.test(string); }); } else { value = findKey(parsePatterns, function (pattern) { return pattern.test(string); }); } value = args.valueCallback ? args.valueCallback(value) : value; value = options.valueCallback ? options.valueCallback(value) : value; return { value: value, rest: string.slice(matchedString.length) }; }; } function findKey(object, predicate) { for (var key in object) { if (object.hasOwnProperty(key) && predicate(object[key])) { return key; } } } function findIndex(array, predicate) { for (var key = 0; key < array.length; key++) { if (predicate(array[key])) { return key; } } } // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; var parseOrdinalNumberPattern = /\d+/i; var matchEraPatterns = { narrow: /^(b|a)/i, abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, wide: /^(before christ|before common era|anno domini|common era)/i }; var parseEraPatterns = { any: [/^b/i, /^(a|c)/i] }; var matchQuarterPatterns = { narrow: /^[1234]/i, abbreviated: /^q[1234]/i, wide: /^[1234](th|st|nd|rd)? quarter/i }; var parseQuarterPatterns = { any: [/1/i, /2/i, /3/i, /4/i] }; var matchMonthPatterns = { narrow: /^[jfmasond]/i, abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i }; var parseMonthPatterns = { narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i], any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i] }; var matchDayPatterns = { narrow: /^[smtwf]/i, short: /^(su|mo|tu|we|th|fr|sa)/i, abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i }; var parseDayPatterns = { narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] }; var matchDayPeriodPatterns = { narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i }; var parseDayPeriodPatterns = { any: { am: /^a/i, pm: /^p/i, midnight: /^mi/i, noon: /^no/i, morning: /morning/i, afternoon: /afternoon/i, evening: /evening/i, night: /night/i } }; var match = { ordinalNumber: buildMatchPatternFn({ matchPattern: matchOrdinalNumberPattern, parsePattern: parseOrdinalNumberPattern, valueCallback: function (value) { return parseInt(value, 10); } }), era: buildMatchFn({ matchPatterns: matchEraPatterns, defaultMatchWidth: 'wide', parsePatterns: parseEraPatterns, defaultParseWidth: 'any' }), quarter: buildMatchFn({ matchPatterns: matchQuarterPatterns, defaultMatchWidth: 'wide', parsePatterns: parseQuarterPatterns, defaultParseWidth: 'any', valueCallback: function (index) { return index + 1; } }), month: buildMatchFn({ matchPatterns: matchMonthPatterns, defaultMatchWidth: 'wide', parsePatterns: parseMonthPatterns, defaultParseWidth: 'any' }), day: buildMatchFn({ matchPatterns: matchDayPatterns, defaultMatchWidth: 'wide', parsePatterns: parseDayPatterns, defaultParseWidth: 'any' }), dayPeriod: buildMatchFn({ matchPatterns: matchDayPeriodPatterns, defaultMatchWidth: 'any', parsePatterns: parseDayPeriodPatterns, defaultParseWidth: 'any' }) }; /* harmony default export */ var _lib_match = (match); // CONCATENATED MODULE: ./node_modules/date-fns/esm/locale/en-US/index.js /** * @type {Locale} * @category Locales * @summary English locale (United States). * @language English * @iso-639-2 eng * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp} * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss} */ var en_US_locale = { code: 'en-US', formatDistance: formatDistance, formatLong: _lib_formatLong, formatRelative: formatRelative, localize: _lib_localize, match: _lib_match, options: { weekStartsOn: 0 /* Sunday */ , firstWeekContainsDate: 1 } }; /* harmony default export */ var en_US = (en_US_locale); // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/toInteger/index.js function toInteger(dirtyNumber) { if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { return NaN; } var number = Number(dirtyNumber); if (isNaN(number)) { return number; } return number < 0 ? Math.ceil(number) : Math.floor(number); } // CONCATENATED MODULE: ./node_modules/date-fns/esm/addMilliseconds/index.js /** * @name addMilliseconds * @category Millisecond Helpers * @summary Add the specified number of milliseconds to the given date. * * @description * Add the specified number of milliseconds to the given date. * * ### v2.0.0 breaking changes: * * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). * * @param {Date|Number} date - the date to be changed * @param {Number} amount - the amount of milliseconds to be added * @returns {Date} the new date with the milliseconds added * @throws {TypeError} 2 arguments required * * @example * // Add 750 milliseconds to 10 July 2014 12:45:30.000: * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) * //=> Thu Jul 10 2014 12:45:30.750 */ function addMilliseconds(dirtyDate, dirtyAmount) { requiredArgs(2, arguments); var timestamp = toDate(dirtyDate).getTime(); var amount = toInteger(dirtyAmount); return new Date(timestamp + amount); } // CONCATENATED MODULE: ./node_modules/date-fns/esm/subMilliseconds/index.js /** * @name subMilliseconds * @category Millisecond Helpers * @summary Subtract the specified number of milliseconds from the given date. * * @description * Subtract the specified number of milliseconds from the given date. * * ### v2.0.0 breaking changes: * * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). * * @param {Date|Number} date - the date to be changed * @param {Number} amount - the amount of milliseconds to be subtracted * @returns {Date} the new date with the milliseconds subtracted * @throws {TypeError} 2 arguments required * * @example * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000: * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) * //=> Thu Jul 10 2014 12:45:29.250 */ function subMilliseconds(dirtyDate, dirtyAmount) { requiredArgs(2, arguments); var amount = toInteger(dirtyAmount); return addMilliseconds(dirtyDate, -amount); } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js function addLeadingZeros(number, targetLength) { var sign = number < 0 ? '-' : ''; var output = Math.abs(number).toString(); while (output.length < targetLength) { output = '0' + output; } return sign + output; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js /* * | | Unit | | Unit | * |-----|--------------------------------|-----|--------------------------------| * | a | AM, PM | A* | | * | d | Day of month | D | | * | h | Hour [1-12] | H | Hour [0-23] | * | m | Minute | M | Month | * | s | Second | S | Fraction of second | * | y | Year (abs) | Y | | * * Letters marked by * are not implemented but reserved by Unicode standard. */ var formatters = { // Year y: function (date, token) { // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens // | Year | y | yy | yyy | yyyy | yyyyy | // |----------|-------|----|-------|-------|-------| // | AD 1 | 1 | 01 | 001 | 0001 | 00001 | // | AD 12 | 12 | 12 | 012 | 0012 | 00012 | // | AD 123 | 123 | 23 | 123 | 0123 | 00123 | // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript) var year = signedYear > 0 ? signedYear : 1 - signedYear; return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length); }, // Month M: function (date, token) { var month = date.getUTCMonth(); return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2); }, // Day of the month d: function (date, token) { return addLeadingZeros(date.getUTCDate(), token.length); }, // AM or PM a: function (date, token) { var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am'; switch (token) { case 'a': case 'aa': case 'aaa': return dayPeriodEnumValue.toUpperCase(); case 'aaaaa': return dayPeriodEnumValue[0]; case 'aaaa': default: return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.'; } }, // Hour [1-12] h: function (date, token) { return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length); }, // Hour [0-23] H: function (date, token) { return addLeadingZeros(date.getUTCHours(), token.length); }, // Minute m: function (date, token) { return addLeadingZeros(date.getUTCMinutes(), token.length); }, // Second s: function (date, token) { return addLeadingZeros(date.getUTCSeconds(), token.length); }, // Fraction of second S: function (date, token) { var numberOfDigits = token.length; var milliseconds = date.getUTCMilliseconds(); var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3)); return addLeadingZeros(fractionalSeconds, token.length); } }; /* harmony default export */ var lightFormatters = (formatters); // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js var MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function getUTCDayOfYear(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var timestamp = date.getTime(); date.setUTCMonth(0, 1); date.setUTCHours(0, 0, 0, 0); var startOfYearTimestamp = date.getTime(); var difference = timestamp - startOfYearTimestamp; return Math.floor(difference / MILLISECONDS_IN_DAY) + 1; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function startOfUTCISOWeek(dirtyDate) { requiredArgs(1, arguments); var weekStartsOn = 1; var date = toDate(dirtyDate); var day = date.getUTCDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function getUTCISOWeekYear(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var year = date.getUTCFullYear(); var fourthOfJanuaryOfNextYear = new Date(0); fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4); fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0); var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear); var fourthOfJanuaryOfThisYear = new Date(0); fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4); fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0); var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear); if (date.getTime() >= startOfNextYear.getTime()) { return year + 1; } else if (date.getTime() >= startOfThisYear.getTime()) { return year; } else { return year - 1; } } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function startOfUTCISOWeekYear(dirtyDate) { requiredArgs(1, arguments); var year = getUTCISOWeekYear(dirtyDate); var fourthOfJanuary = new Date(0); fourthOfJanuary.setUTCFullYear(year, 0, 4); fourthOfJanuary.setUTCHours(0, 0, 0, 0); var date = startOfUTCISOWeek(fourthOfJanuary); return date; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js var MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function getUTCISOWeek(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer // because the number of milliseconds in a week is not constant // (e.g. it's different in the week of the daylight saving time clock shift) return Math.round(diff / MILLISECONDS_IN_WEEK) + 1; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function startOfUTCWeek(dirtyDate, dirtyOptions) { requiredArgs(1, arguments); var options = dirtyOptions || {}; var locale = options.locale; var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn; var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn); var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); } var date = toDate(dirtyDate); var day = date.getUTCDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function getUTCWeekYear(dirtyDate, dirtyOptions) { requiredArgs(1, arguments); var date = toDate(dirtyDate, dirtyOptions); var year = date.getUTCFullYear(); var options = dirtyOptions || {}; var locale = options.locale; var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate; var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate); var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); } var firstWeekOfNextYear = new Date(0); firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate); firstWeekOfNextYear.setUTCHours(0, 0, 0, 0); var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions); var firstWeekOfThisYear = new Date(0); firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate); firstWeekOfThisYear.setUTCHours(0, 0, 0, 0); var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions); if (date.getTime() >= startOfNextYear.getTime()) { return year + 1; } else if (date.getTime() >= startOfThisYear.getTime()) { return year; } else { return year - 1; } } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function startOfUTCWeekYear(dirtyDate, dirtyOptions) { requiredArgs(1, arguments); var options = dirtyOptions || {}; var locale = options.locale; var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate; var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate); var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); var year = getUTCWeekYear(dirtyDate, dirtyOptions); var firstWeek = new Date(0); firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate); firstWeek.setUTCHours(0, 0, 0, 0); var date = startOfUTCWeek(firstWeek, dirtyOptions); return date; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getUTCWeek/index.js var getUTCWeek_MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented. // See issue: https://github.com/date-fns/date-fns/issues/376 function getUTCWeek(dirtyDate, options) { requiredArgs(1, arguments); var date = toDate(dirtyDate); var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer // because the number of milliseconds in a week is not constant // (e.g. it's different in the week of the daylight saving time clock shift) return Math.round(diff / getUTCWeek_MILLISECONDS_IN_WEEK) + 1; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/format/formatters/index.js var dayPeriodEnum = { am: 'am', pm: 'pm', midnight: 'midnight', noon: 'noon', morning: 'morning', afternoon: 'afternoon', evening: 'evening', night: 'night' /* * | | Unit | | Unit | * |-----|--------------------------------|-----|--------------------------------| * | a | AM, PM | A* | Milliseconds in day | * | b | AM, PM, noon, midnight | B | Flexible day period | * | c | Stand-alone local day of week | C* | Localized hour w/ day period | * | d | Day of month | D | Day of year | * | e | Local day of week | E | Day of week | * | f | | F* | Day of week in month | * | g* | Modified Julian day | G | Era | * | h | Hour [1-12] | H | Hour [0-23] | * | i! | ISO day of week | I! | ISO week of year | * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | * | k | Hour [1-24] | K | Hour [0-11] | * | l* | (deprecated) | L | Stand-alone month | * | m | Minute | M | Month | * | n | | N | | * | o! | Ordinal number modifier | O | Timezone (GMT) | * | p! | Long localized time | P! | Long localized date | * | q | Stand-alone quarter | Q | Quarter | * | r* | Related Gregorian year | R! | ISO week-numbering year | * | s | Second | S | Fraction of second | * | t! | Seconds timestamp | T! | Milliseconds timestamp | * | u | Extended year | U* | Cyclic year | * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | * | w | Local week of year | W* | Week of month | * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | * | y | Year (abs) | Y | Local week-numbering year | * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) | * * Letters marked by * are not implemented but reserved by Unicode standard. * * Letters marked by ! are non-standard, but implemented by date-fns: * - `o` modifies the previous token to turn it into an ordinal (see `format` docs) * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, * i.e. 7 for Sunday, 1 for Monday, etc. * - `I` is ISO week of year, as opposed to `w` which is local week of year. * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. * `R` is supposed to be used in conjunction with `I` and `i` * for universal ISO week-numbering date, whereas * `Y` is supposed to be used in conjunction with `w` and `e` * for week-numbering date specific to the locale. * - `P` is long localized date format * - `p` is long localized time format */ }; var formatters_formatters = { // Era G: function (date, token, localize) { var era = date.getUTCFullYear() > 0 ? 1 : 0; switch (token) { // AD, BC case 'G': case 'GG': case 'GGG': return localize.era(era, { width: 'abbreviated' }); // A, B case 'GGGGG': return localize.era(era, { width: 'narrow' }); // Anno Domini, Before Christ case 'GGGG': default: return localize.era(era, { width: 'wide' }); } }, // Year y: function (date, token, localize) { // Ordinal number if (token === 'yo') { var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript) var year = signedYear > 0 ? signedYear : 1 - signedYear; return localize.ordinalNumber(year, { unit: 'year' }); } return lightFormatters.y(date, token); }, // Local week-numbering year Y: function (date, token, localize, options) { var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript) var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year if (token === 'YY') { var twoDigitYear = weekYear % 100; return addLeadingZeros(twoDigitYear, 2); } // Ordinal number if (token === 'Yo') { return localize.ordinalNumber(weekYear, { unit: 'year' }); } // Padding return addLeadingZeros(weekYear, token.length); }, // ISO week-numbering year R: function (date, token) { var isoWeekYear = getUTCISOWeekYear(date); // Padding return addLeadingZeros(isoWeekYear, token.length); }, // Extended year. This is a single number designating the year of this calendar system. // The main difference between `y` and `u` localizers are B.C. years: // | Year | `y` | `u` | // |------|-----|-----| // | AC 1 | 1 | 1 | // | BC 1 | 1 | 0 | // | BC 2 | 2 | -1 | // Also `yy` always returns the last two digits of a year, // while `uu` pads single digit years to 2 characters and returns other years unchanged. u: function (date, token) { var year = date.getUTCFullYear(); return addLeadingZeros(year, token.length); }, // Quarter Q: function (date, token, localize) { var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); switch (token) { // 1, 2, 3, 4 case 'Q': return String(quarter); // 01, 02, 03, 04 case 'QQ': return addLeadingZeros(quarter, 2); // 1st, 2nd, 3rd, 4th case 'Qo': return localize.ordinalNumber(quarter, { unit: 'quarter' }); // Q1, Q2, Q3, Q4 case 'QQQ': return localize.quarter(quarter, { width: 'abbreviated', context: 'formatting' }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) case 'QQQQQ': return localize.quarter(quarter, { width: 'narrow', context: 'formatting' }); // 1st quarter, 2nd quarter, ... case 'QQQQ': default: return localize.quarter(quarter, { width: 'wide', context: 'formatting' }); } }, // Stand-alone quarter q: function (date, token, localize) { var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); switch (token) { // 1, 2, 3, 4 case 'q': return String(quarter); // 01, 02, 03, 04 case 'qq': return addLeadingZeros(quarter, 2); // 1st, 2nd, 3rd, 4th case 'qo': return localize.ordinalNumber(quarter, { unit: 'quarter' }); // Q1, Q2, Q3, Q4 case 'qqq': return localize.quarter(quarter, { width: 'abbreviated', context: 'standalone' }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) case 'qqqqq': return localize.quarter(quarter, { width: 'narrow', context: 'standalone' }); // 1st quarter, 2nd quarter, ... case 'qqqq': default: return localize.quarter(quarter, { width: 'wide', context: 'standalone' }); } }, // Month M: function (date, token, localize) { var month = date.getUTCMonth(); switch (token) { case 'M': case 'MM': return lightFormatters.M(date, token); // 1st, 2nd, ..., 12th case 'Mo': return localize.ordinalNumber(month + 1, { unit: 'month' }); // Jan, Feb, ..., Dec case 'MMM': return localize.month(month, { width: 'abbreviated', context: 'formatting' }); // J, F, ..., D case 'MMMMM': return localize.month(month, { width: 'narrow', context: 'formatting' }); // January, February, ..., December case 'MMMM': default: return localize.month(month, { width: 'wide', context: 'formatting' }); } }, // Stand-alone month L: function (date, token, localize) { var month = date.getUTCMonth(); switch (token) { // 1, 2, ..., 12 case 'L': return String(month + 1); // 01, 02, ..., 12 case 'LL': return addLeadingZeros(month + 1, 2); // 1st, 2nd, ..., 12th case 'Lo': return localize.ordinalNumber(month + 1, { unit: 'month' }); // Jan, Feb, ..., Dec case 'LLL': return localize.month(month, { width: 'abbreviated', context: 'standalone' }); // J, F, ..., D case 'LLLLL': return localize.month(month, { width: 'narrow', context: 'standalone' }); // January, February, ..., December case 'LLLL': default: return localize.month(month, { width: 'wide', context: 'standalone' }); } }, // Local week of year w: function (date, token, localize, options) { var week = getUTCWeek(date, options); if (token === 'wo') { return localize.ordinalNumber(week, { unit: 'week' }); } return addLeadingZeros(week, token.length); }, // ISO week of year I: function (date, token, localize) { var isoWeek = getUTCISOWeek(date); if (token === 'Io') { return localize.ordinalNumber(isoWeek, { unit: 'week' }); } return addLeadingZeros(isoWeek, token.length); }, // Day of the month d: function (date, token, localize) { if (token === 'do') { return localize.ordinalNumber(date.getUTCDate(), { unit: 'date' }); } return lightFormatters.d(date, token); }, // Day of year D: function (date, token, localize) { var dayOfYear = getUTCDayOfYear(date); if (token === 'Do') { return localize.ordinalNumber(dayOfYear, { unit: 'dayOfYear' }); } return addLeadingZeros(dayOfYear, token.length); }, // Day of week E: function (date, token, localize) { var dayOfWeek = date.getUTCDay(); switch (token) { // Tue case 'E': case 'EE': case 'EEE': return localize.day(dayOfWeek, { width: 'abbreviated', context: 'formatting' }); // T case 'EEEEE': return localize.day(dayOfWeek, { width: 'narrow', context: 'formatting' }); // Tu case 'EEEEEE': return localize.day(dayOfWeek, { width: 'short', context: 'formatting' }); // Tuesday case 'EEEE': default: return localize.day(dayOfWeek, { width: 'wide', context: 'formatting' }); } }, // Local day of week e: function (date, token, localize, options) { var dayOfWeek = date.getUTCDay(); var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; switch (token) { // Numerical value (Nth day of week with current locale or weekStartsOn) case 'e': return String(localDayOfWeek); // Padded numerical value case 'ee': return addLeadingZeros(localDayOfWeek, 2); // 1st, 2nd, ..., 7th case 'eo': return localize.ordinalNumber(localDayOfWeek, { unit: 'day' }); case 'eee': return localize.day(dayOfWeek, { width: 'abbreviated', context: 'formatting' }); // T case 'eeeee': return localize.day(dayOfWeek, { width: 'narrow', context: 'formatting' }); // Tu case 'eeeeee': return localize.day(dayOfWeek, { width: 'short', context: 'formatting' }); // Tuesday case 'eeee': default: return localize.day(dayOfWeek, { width: 'wide', context: 'formatting' }); } }, // Stand-alone local day of week c: function (date, token, localize, options) { var dayOfWeek = date.getUTCDay(); var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; switch (token) { // Numerical value (same as in `e`) case 'c': return String(localDayOfWeek); // Padded numerical value case 'cc': return addLeadingZeros(localDayOfWeek, token.length); // 1st, 2nd, ..., 7th case 'co': return localize.ordinalNumber(localDayOfWeek, { unit: 'day' }); case 'ccc': return localize.day(dayOfWeek, { width: 'abbreviated', context: 'standalone' }); // T case 'ccccc': return localize.day(dayOfWeek, { width: 'narrow', context: 'standalone' }); // Tu case 'cccccc': return localize.day(dayOfWeek, { width: 'short', context: 'standalone' }); // Tuesday case 'cccc': default: return localize.day(dayOfWeek, { width: 'wide', context: 'standalone' }); } }, // ISO day of week i: function (date, token, localize) { var dayOfWeek = date.getUTCDay(); var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; switch (token) { // 2 case 'i': return String(isoDayOfWeek); // 02 case 'ii': return addLeadingZeros(isoDayOfWeek, token.length); // 2nd case 'io': return localize.ordinalNumber(isoDayOfWeek, { unit: 'day' }); // Tue case 'iii': return localize.day(dayOfWeek, { width: 'abbreviated', context: 'formatting' }); // T case 'iiiii': return localize.day(dayOfWeek, { width: 'narrow', context: 'formatting' }); // Tu case 'iiiiii': return localize.day(dayOfWeek, { width: 'short', context: 'formatting' }); // Tuesday case 'iiii': default: return localize.day(dayOfWeek, { width: 'wide', context: 'formatting' }); } }, // AM or PM a: function (date, token, localize) { var hours = date.getUTCHours(); var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; switch (token) { case 'a': case 'aa': case 'aaa': return localize.dayPeriod(dayPeriodEnumValue, { width: 'abbreviated', context: 'formatting' }); case 'aaaaa': return localize.dayPeriod(dayPeriodEnumValue, { width: 'narrow', context: 'formatting' }); case 'aaaa': default: return localize.dayPeriod(dayPeriodEnumValue, { width: 'wide', context: 'formatting' }); } }, // AM, PM, midnight, noon b: function (date, token, localize) { var hours = date.getUTCHours(); var dayPeriodEnumValue; if (hours === 12) { dayPeriodEnumValue = dayPeriodEnum.noon; } else if (hours === 0) { dayPeriodEnumValue = dayPeriodEnum.midnight; } else { dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; } switch (token) { case 'b': case 'bb': case 'bbb': return localize.dayPeriod(dayPeriodEnumValue, { width: 'abbreviated', context: 'formatting' }); case 'bbbbb': return localize.dayPeriod(dayPeriodEnumValue, { width: 'narrow', context: 'formatting' }); case 'bbbb': default: return localize.dayPeriod(dayPeriodEnumValue, { width: 'wide', context: 'formatting' }); } }, // in the morning, in the afternoon, in the evening, at night B: function (date, token, localize) { var hours = date.getUTCHours(); var dayPeriodEnumValue; if (hours >= 17) { dayPeriodEnumValue = dayPeriodEnum.evening; } else if (hours >= 12) { dayPeriodEnumValue = dayPeriodEnum.afternoon; } else if (hours >= 4) { dayPeriodEnumValue = dayPeriodEnum.morning; } else { dayPeriodEnumValue = dayPeriodEnum.night; } switch (token) { case 'B': case 'BB': case 'BBB': return localize.dayPeriod(dayPeriodEnumValue, { width: 'abbreviated', context: 'formatting' }); case 'BBBBB': return localize.dayPeriod(dayPeriodEnumValue, { width: 'narrow', context: 'formatting' }); case 'BBBB': default: return localize.dayPeriod(dayPeriodEnumValue, { width: 'wide', context: 'formatting' }); } }, // Hour [1-12] h: function (date, token, localize) { if (token === 'ho') { var hours = date.getUTCHours() % 12; if (hours === 0) hours = 12; return localize.ordinalNumber(hours, { unit: 'hour' }); } return lightFormatters.h(date, token); }, // Hour [0-23] H: function (date, token, localize) { if (token === 'Ho') { return localize.ordinalNumber(date.getUTCHours(), { unit: 'hour' }); } return lightFormatters.H(date, token); }, // Hour [0-11] K: function (date, token, localize) { var hours = date.getUTCHours() % 12; if (token === 'Ko') { return localize.ordinalNumber(hours, { unit: 'hour' }); } return addLeadingZeros(hours, token.length); }, // Hour [1-24] k: function (date, token, localize) { var hours = date.getUTCHours(); if (hours === 0) hours = 24; if (token === 'ko') { return localize.ordinalNumber(hours, { unit: 'hour' }); } return addLeadingZeros(hours, token.length); }, // Minute m: function (date, token, localize) { if (token === 'mo') { return localize.ordinalNumber(date.getUTCMinutes(), { unit: 'minute' }); } return lightFormatters.m(date, token); }, // Second s: function (date, token, localize) { if (token === 'so') { return localize.ordinalNumber(date.getUTCSeconds(), { unit: 'second' }); } return lightFormatters.s(date, token); }, // Fraction of second S: function (date, token) { return lightFormatters.S(date, token); }, // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) X: function (date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); if (timezoneOffset === 0) { return 'Z'; } switch (token) { // Hours and optional minutes case 'X': return formatTimezoneWithOptionalMinutes(timezoneOffset); // Hours, minutes and optional seconds without `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `XX` case 'XXXX': case 'XX': // Hours and minutes without `:` delimiter return formatTimezone(timezoneOffset); // Hours, minutes and optional seconds with `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `XXX` case 'XXXXX': case 'XXX': // Hours and minutes with `:` delimiter default: return formatTimezone(timezoneOffset, ':'); } }, // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) x: function (date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); switch (token) { // Hours and optional minutes case 'x': return formatTimezoneWithOptionalMinutes(timezoneOffset); // Hours, minutes and optional seconds without `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `xx` case 'xxxx': case 'xx': // Hours and minutes without `:` delimiter return formatTimezone(timezoneOffset); // Hours, minutes and optional seconds with `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `xxx` case 'xxxxx': case 'xxx': // Hours and minutes with `:` delimiter default: return formatTimezone(timezoneOffset, ':'); } }, // Timezone (GMT) O: function (date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); switch (token) { // Short case 'O': case 'OO': case 'OOO': return 'GMT' + formatTimezoneShort(timezoneOffset, ':'); // Long case 'OOOO': default: return 'GMT' + formatTimezone(timezoneOffset, ':'); } }, // Timezone (specific non-location) z: function (date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); switch (token) { // Short case 'z': case 'zz': case 'zzz': return 'GMT' + formatTimezoneShort(timezoneOffset, ':'); // Long case 'zzzz': default: return 'GMT' + formatTimezone(timezoneOffset, ':'); } }, // Seconds timestamp t: function (date, token, _localize, options) { var originalDate = options._originalDate || date; var timestamp = Math.floor(originalDate.getTime() / 1000); return addLeadingZeros(timestamp, token.length); }, // Milliseconds timestamp T: function (date, token, _localize, options) { var originalDate = options._originalDate || date; var timestamp = originalDate.getTime(); return addLeadingZeros(timestamp, token.length); } }; function formatTimezoneShort(offset, dirtyDelimiter) { var sign = offset > 0 ? '-' : '+'; var absOffset = Math.abs(offset); var hours = Math.floor(absOffset / 60); var minutes = absOffset % 60; if (minutes === 0) { return sign + String(hours); } var delimiter = dirtyDelimiter || ''; return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); } function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) { if (offset % 60 === 0) { var sign = offset > 0 ? '-' : '+'; return sign + addLeadingZeros(Math.abs(offset) / 60, 2); } return formatTimezone(offset, dirtyDelimiter); } function formatTimezone(offset, dirtyDelimiter) { var delimiter = dirtyDelimiter || ''; var sign = offset > 0 ? '-' : '+'; var absOffset = Math.abs(offset); var hours = addLeadingZeros(Math.floor(absOffset / 60), 2); var minutes = addLeadingZeros(absOffset % 60, 2); return sign + hours + delimiter + minutes; } /* harmony default export */ var format_formatters = (formatters_formatters); // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/format/longFormatters/index.js function dateLongFormatter(pattern, formatLong) { switch (pattern) { case 'P': return formatLong.date({ width: 'short' }); case 'PP': return formatLong.date({ width: 'medium' }); case 'PPP': return formatLong.date({ width: 'long' }); case 'PPPP': default: return formatLong.date({ width: 'full' }); } } function timeLongFormatter(pattern, formatLong) { switch (pattern) { case 'p': return formatLong.time({ width: 'short' }); case 'pp': return formatLong.time({ width: 'medium' }); case 'ppp': return formatLong.time({ width: 'long' }); case 'pppp': default: return formatLong.time({ width: 'full' }); } } function dateTimeLongFormatter(pattern, formatLong) { var matchResult = pattern.match(/(P+)(p+)?/); var datePattern = matchResult[1]; var timePattern = matchResult[2]; if (!timePattern) { return dateLongFormatter(pattern, formatLong); } var dateTimeFormat; switch (datePattern) { case 'P': dateTimeFormat = formatLong.dateTime({ width: 'short' }); break; case 'PP': dateTimeFormat = formatLong.dateTime({ width: 'medium' }); break; case 'PPP': dateTimeFormat = formatLong.dateTime({ width: 'long' }); break; case 'PPPP': default: dateTimeFormat = formatLong.dateTime({ width: 'full' }); break; } return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong)); } var longFormatters = { p: timeLongFormatter, P: dateTimeLongFormatter }; /* harmony default export */ var format_longFormatters = (longFormatters); // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js var MILLISECONDS_IN_MINUTE = 60000; /** * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. * They usually appear for dates that denote time before the timezones were introduced * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 * and GMT+01:00:00 after that date) * * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, * which would lead to incorrect calculations. * * This function returns the timezone offset in milliseconds that takes seconds in account. */ function getTimezoneOffsetInMilliseconds(dirtyDate) { var date = new Date(dirtyDate.getTime()); var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset()); date.setSeconds(0, 0); var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE; return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset; } // CONCATENATED MODULE: ./node_modules/date-fns/esm/_lib/protectedTokens/index.js var protectedDayOfYearTokens = ['D', 'DD']; var protectedWeekYearTokens = ['YY', 'YYYY']; function isProtectedDayOfYearToken(token) { return protectedDayOfYearTokens.indexOf(token) !== -1; } function isProtectedWeekYearToken(token) { return protectedWeekYearTokens.indexOf(token) !== -1; } function throwProtectedError(token) { if (token === 'YYYY') { throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr'); } else if (token === 'YY') { throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr'); } else if (token === 'D') { throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr'); } else if (token === 'DD') { throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr'); } } // CONCATENATED MODULE: ./node_modules/date-fns/esm/format/index.js // This RegExp consists of three parts separated by `|`: // - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token // (one of the certain letters followed by `o`) // - (\w)\1* matches any sequences of the same letter // - '' matches two quote characters in a row // - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), // except a single quote symbol, which ends the sequence. // Two quote characters do not end the sequence. // If there is no matching single quote // then the sequence will continue until the end of the string. // - . matches any single character unmatched by previous parts of the RegExps var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also // sequences of symbols P, p, and the combinations like `PPPPPPPppppp` var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; var escapedStringRegExp = /^'([^]*?)'?$/; var doubleQuoteRegExp = /''/g; var unescapedLatinCharacterRegExp = /[a-zA-Z]/; /** * @name format * @category Common Helpers * @summary Format the date. * * @description * Return the formatted date string in the given format. The result may vary by locale. * * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. * > See: https://git.io/fxCyr * * The characters wrapped between two single quotes characters (') are escaped. * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. * (see the last example) * * Format of the string is based on Unicode Technical Standard #35: * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table * with a few additions (see note 7 below the table). * * Accepted patterns: * | Unit | Pattern | Result examples | Notes | * |---------------------------------|---------|-----------------------------------|-------| * | Era | G..GGG | AD, BC | | * | | GGGG | Anno Domini, Before Christ | 2 | * | | GGGGG | A, B | | * | Calendar year | y | 44, 1, 1900, 2017 | 5 | * | | yo | 44th, 1st, 0th, 17th | 5,7 | * | | yy | 44, 01, 00, 17 | 5 | * | | yyy | 044, 001, 1900, 2017 | 5 | * | | yyyy | 0044, 0001, 1900, 2017 | 5 | * | | yyyyy | ... | 3,5 | * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 | * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 | * | | YY | 44, 01, 00, 17 | 5,8 | * | | YYY | 044, 001, 1900, 2017 | 5 | * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 | * | | YYYYY | ... | 3,5 | * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 | * | | RR | -43, 00, 01, 1900, 2017 | 5,7 | * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 | * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 | * | | RRRRR | ... | 3,5,7 | * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 | * | | uu | -43, 01, 1900, 2017 | 5 | * | | uuu | -043, 001, 1900, 2017 | 5 | * | | uuuu | -0043, 0001, 1900, 2017 | 5 | * | | uuuuu | ... | 3,5 | * | Quarter (formatting) | Q | 1, 2, 3, 4 | | * | | Qo | 1st, 2nd, 3rd, 4th | 7 | * | | QQ | 01, 02, 03, 04 | | * | | QQQ | Q1, Q2, Q3, Q4 | | * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | * | | QQQQQ | 1, 2, 3, 4 | 4 | * | Quarter (stand-alone) | q | 1, 2, 3, 4 | | * | | qo | 1st, 2nd, 3rd, 4th | 7 | * | | qq | 01, 02, 03, 04 | | * | | qqq | Q1, Q2, Q3, Q4 | | * | | qqqq | 1st quarter, 2nd quarter, ... | 2 | * | | qqqqq | 1, 2, 3, 4 | 4 | * | Month (formatting) | M | 1, 2, ..., 12 | | * | | Mo | 1st, 2nd, ..., 12th | 7 | * | | MM | 01, 02, ..., 12 | | * | | MMM | Jan, Feb, ..., Dec | | * | | MMMM | January, February, ..., December | 2 | * | | MMMMM | J, F, ..., D | | * | Month (stand-alone) | L | 1, 2, ..., 12 | | * | | Lo | 1st, 2nd, ..., 12th | 7 | * | | LL | 01, 02, ..., 12 | | * | | LLL | Jan, Feb, ..., Dec | | * | | LLLL | January, February, ..., December | 2 | * | | LLLLL | J, F, ..., D | | * | Local week of year | w | 1, 2, ..., 53 | | * | | wo | 1st, 2nd, ..., 53th | 7 | * | | ww | 01, 02, ..., 53 | | * | ISO week of year | I | 1, 2, ..., 53 | 7 | * | | Io | 1st, 2nd, ..., 53th | 7 | * | | II | 01, 02, ..., 53 | 7 | * | Day of month | d | 1, 2, ..., 31 | | * | | do | 1st, 2nd, ..., 31st | 7 | * | | dd | 01, 02, ..., 31 | | * | Day of year | D | 1, 2, ..., 365, 366 | 9 | * | | Do | 1st, 2nd, ..., 365th, 366th | 7 | * | | DD | 01, 02, ..., 365, 366 | 9 | * | | DDD | 001, 002, ..., 365, 366 | | * | | DDDD | ... | 3 | * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | | * | | EEEE | Monday, Tuesday, ..., Sunday | 2 | * | | EEEEE | M, T, W, T, F, S, S | | * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | | * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 | * | | io | 1st, 2nd, ..., 7th | 7 | * | | ii | 01, 02, ..., 07 | 7 | * | | iii | Mon, Tue, Wed, ..., Su | 7 | * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 | * | | iiiii | M, T, W, T, F, S, S | 7 | * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 | * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | | * | | eo | 2nd, 3rd, ..., 1st | 7 | * | | ee | 02, 03, ..., 01 | | * | | eee | Mon, Tue, Wed, ..., Su | | * | | eeee | Monday, Tuesday, ..., Sunday | 2 | * | | eeeee | M, T, W, T, F, S, S | | * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | | * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | | * | | co | 2nd, 3rd, ..., 1st | 7 | * | | cc | 02, 03, ..., 01 | | * | | ccc | Mon, Tue, Wed, ..., Su | | * | | cccc | Monday, Tuesday, ..., Sunday | 2 | * | | ccccc | M, T, W, T, F, S, S | | * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | | * | AM, PM | a..aaa | AM, PM | | * | | aaaa | a.m., p.m. | 2 | * | | aaaaa | a, p | | * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | | * | | bbbb | a.m., p.m., noon, midnight | 2 | * | | bbbbb | a, p, n, mi | | * | Flexible day period | B..BBB | at night, in the morning, ... | | * | | BBBB | at night, in the morning, ... | 2 | * | | BBBBB | at night, in the morning, ... | | * | Hour [1-12] | h | 1, 2, ..., 11, 12 | | * | | ho | 1st, 2nd, ..., 11th, 12th | 7 | * | | hh | 01, 02, ..., 11, 12 | | * | Hour [0-23] | H | 0, 1, 2, ..., 23 | | * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 | * | | HH | 00, 01, 02, ..., 23 | | * | Hour [0-11] | K | 1, 2, ..., 11, 0 | | * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 | * | | KK | 1, 2, ..., 11, 0 | | * | Hour [1-24] | k | 24, 1, 2, ..., 23 | | * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 | * | | kk | 24, 01, 02, ..., 23 | | * | Minute | m | 0, 1, ..., 59 | | * | | mo | 0th, 1st, ..., 59th | 7 | * | | mm | 00, 01, ..., 59 | | * | Second | s | 0, 1, ..., 59 | | * | | so | 0th, 1st, ..., 59th | 7 | * | | ss | 00, 01, ..., 59 | | * | Fraction of second | S | 0, 1, ..., 9 | | * | | SS | 00, 01, ..., 99 | | * | | SSS | 000, 0001, ..., 999 | | * | | SSSS | ... | 3 | * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | | * | | XX | -0800, +0530, Z | | * | | XXX | -08:00, +05:30, Z | | * | | XXXX | -0800, +0530, Z, +123456 | 2 | * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | | * | | xx | -0800, +0530, +0000 | | * | | xxx | -08:00, +05:30, +00:00 | 2 | * | | xxxx | -0800, +0530, +0000, +123456 | | * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | | * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 | * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 | * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 | * | Seconds timestamp | t | 512969520 | 7 | * | | tt | ... | 3,7 | * | Milliseconds timestamp | T | 512969520900 | 7 | * | | TT | ... | 3,7 | * | Long localized date | P | 05/29/1453 | 7 | * | | PP | May 29, 1453 | 7 | * | | PPP | May 29th, 1453 | 7 | * | | PPPP | Sunday, May 29th, 1453 | 2,7 | * | Long localized time | p | 12:00 AM | 7 | * | | pp | 12:00:00 AM | 7 | * | | ppp | 12:00:00 AM GMT+2 | 7 | * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 | * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 | * | | PPpp | May 29, 1453, 12:00:00 AM | 7 | * | | PPPppp | May 29th, 1453 at ... | 7 | * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 | * Notes: * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale * are the same as "stand-alone" units, but are different in some languages. * "Formatting" units are declined according to the rules of the language * in the context of a date. "Stand-alone" units are always nominative singular: * * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` * * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` * * 2. Any sequence of the identical letters is a pattern, unless it is escaped by * the single quote characters (see below). * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`) * the output will be the same as default pattern for this unit, usually * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units * are marked with "2" in the last column of the table. * * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'` * * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'` * * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'` * * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'` * * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'` * * 3. Some patterns could be unlimited length (such as `yyyyyyyy`). * The output will be padded with zeros to match the length of the pattern. * * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'` * * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. * These tokens represent the shortest form of the quarter. * * 5. The main difference between `y` and `u` patterns are B.C. years: * * | Year | `y` | `u` | * |------|-----|-----| * | AC 1 | 1 | 1 | * | BC 1 | 1 | 0 | * | BC 2 | 2 | -1 | * * Also `yy` always returns the last two digits of a year, * while `uu` pads single digit years to 2 characters and returns other years unchanged: * * | Year | `yy` | `uu` | * |------|------|------| * | 1 | 01 | 01 | * | 14 | 14 | 14 | * | 376 | 76 | 376 | * | 1453 | 53 | 1453 | * * The same difference is true for local and ISO week-numbering years (`Y` and `R`), * except local week-numbering years are dependent on `options.weekStartsOn` * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear} * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}). * * 6. Specific non-location timezones are currently unavailable in `date-fns`, * so right now these tokens fall back to GMT timezones. * * 7. These patterns are not in the Unicode Technical Standard #35: * - `i`: ISO day of week * - `I`: ISO week of year * - `R`: ISO week-numbering year * - `t`: seconds timestamp * - `T`: milliseconds timestamp * - `o`: ordinal number modifier * - `P`: long localized date * - `p`: long localized time * * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr * * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month. * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr * * ### v2.0.0 breaking changes: * * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). * * - The second argument is now required for the sake of explicitness. * * ```javascript * // Before v2.0.0 * format(new Date(2016, 0, 1)) * * // v2.0.0 onward * format(new Date(2016, 0, 1), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx") * ``` * * - New format string API for `format` function * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details. * * - Characters are now escaped using single quote symbols (`'`) instead of square brackets. * * @param {Date|Number} date - the original date * @param {String} format - the string of tokens * @param {Object} [options] - an object with options. * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale} * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday) * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`; * see: https://git.io/fxCyr * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`; * see: https://git.io/fxCyr * @returns {String} the formatted date string * @throws {TypeError} 2 arguments required * @throws {RangeError} `date` must not be Invalid Date * @throws {RangeError} `options.locale` must contain `localize` property * @throws {RangeError} `options.locale` must contain `formatLong` property * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6 * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7 * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr * @throws {RangeError} format string contains an unescaped latin alphabet character * * @example * // Represent 11 February 2014 in middle-endian format: * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy') * //=> '02/11/2014' * * @example * // Represent 2 July 2014 in Esperanto: * import { eoLocale } from 'date-fns/locale/eo' * var result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", { * locale: eoLocale * }) * //=> '2-a de julio 2014' * * @example * // Escape string by single quote characters: * var result = format(new Date(2014, 6, 2, 15), "h 'o''clock'") * //=> "3 o'clock" */ function format(dirtyDate, dirtyFormatStr, dirtyOptions) { requiredArgs(2, arguments); var formatStr = String(dirtyFormatStr); var options = dirtyOptions || {}; var locale = options.locale || en_US; var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate; var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate); var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); } var localeWeekStartsOn = locale.options && locale.options.weekStartsOn; var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn); var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); } if (!locale.localize) { throw new RangeError('locale must contain localize property'); } if (!locale.formatLong) { throw new RangeError('locale must contain formatLong property'); } var originalDate = toDate(dirtyDate); if (!isValid(originalDate)) { throw new RangeError('Invalid time value'); } // Convert the date in system timezone to the same date in UTC+00:00 timezone. // This ensures that when UTC functions will be implemented, locales will be compatible with them. // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376 var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate); var utcDate = subMilliseconds(originalDate, timezoneOffset); var formatterOptions = { firstWeekContainsDate: firstWeekContainsDate, weekStartsOn: weekStartsOn, locale: locale, _originalDate: originalDate }; var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) { var firstCharacter = substring[0]; if (firstCharacter === 'p' || firstCharacter === 'P') { var longFormatter = format_longFormatters[firstCharacter]; return longFormatter(substring, locale.formatLong, formatterOptions); } return substring; }).join('').match(formattingTokensRegExp).map(function (substring) { // Replace two single quote characters with one single quote character if (substring === "''") { return "'"; } var firstCharacter = substring[0]; if (firstCharacter === "'") { return cleanEscapedString(substring); } var formatter = format_formatters[firstCharacter]; if (formatter) { if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) { throwProtectedError(substring); } if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) { throwProtectedError(substring); } return formatter(utcDate, substring, locale.localize, formatterOptions); } if (firstCharacter.match(unescapedLatinCharacterRegExp)) { throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); } return substring; }).join(''); return result; } function cleanEscapedString(input) { return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'"); } // CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js /** * Returns the [year, month, day, hour, minute, seconds] tokens of the provided * `date` as it will be rendered in the `timeZone`. */ function tzTokenizeDate(date, timeZone) { var dtf = getDateTimeFormat(timeZone) return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date) } var typeToPos = { year: 0, month: 1, day: 2, hour: 3, minute: 4, second: 5 } function partsOffset(dtf, date) { var formatted = dtf.formatToParts(date) var filled = [] for (var i = 0; i < formatted.length; i++) { var pos = typeToPos[formatted[i].type] if (pos >= 0) { filled[pos] = parseInt(formatted[i].value, 10) } } return filled } function hackyOffset(dtf, date) { var formatted = dtf.format(date).replace(/\u200E/g, '') var parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted) // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed // return [fYear, fMonth, fDay, fHour, fMinute, fSecond] return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]] } // Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used // to get deterministic local date/time output according to the `en-US` locale which // can be used to extract local time parts as necessary. var dtfCache = {} function getDateTimeFormat(timeZone) { if (!dtfCache[timeZone]) { // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12` var testDateFormatted = new Intl.DateTimeFormat('en-US', { hour12: false, timeZone: 'America/New_York', year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }).format(new Date('2014-06-25T04:00:00.123Z')) var hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' || testDateFormatted === '06/25/2014 00:00:00' dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat('en-US', { hour12: false, timeZone: timeZone, year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }) : new Intl.DateTimeFormat('en-US', { hourCycle: 'h23', timeZone: timeZone, year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }) } return dtfCache[timeZone] } // CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/_lib/tzParseTimezone/index.js var MILLISECONDS_IN_HOUR = 3600000 var tzParseTimezone_MILLISECONDS_IN_MINUTE = 60000 var patterns = { timezone: /([Z+-].*)$/, timezoneZ: /^(Z)$/, timezoneHH: /^([+-])(\d{2})$/, timezoneHHMM: /^([+-])(\d{2}):?(\d{2})$/, timezoneIANA: /(UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/ } // Parse various time zone offset formats to an offset in milliseconds function tzParseTimezone(timezoneString, date) { var token var absoluteOffset // Z token = patterns.timezoneZ.exec(timezoneString) if (token) { return 0 } var hours // ±hh token = patterns.timezoneHH.exec(timezoneString) if (token) { hours = parseInt(token[2], 10) if (!validateTimezone(hours)) { return NaN } absoluteOffset = hours * MILLISECONDS_IN_HOUR return token[1] === '+' ? -absoluteOffset : absoluteOffset } // ±hh:mm or ±hhmm token = patterns.timezoneHHMM.exec(timezoneString) if (token) { hours = parseInt(token[2], 10) var minutes = parseInt(token[3], 10) if (!validateTimezone(hours, minutes)) { return NaN } absoluteOffset = hours * MILLISECONDS_IN_HOUR + minutes * tzParseTimezone_MILLISECONDS_IN_MINUTE return token[1] === '+' ? -absoluteOffset : absoluteOffset } // IANA time zone token = patterns.timezoneIANA.exec(timezoneString) if (token) { // var [fYear, fMonth, fDay, fHour, fMinute, fSecond] = tzTokenizeDate(date, timezoneString) var tokens = tzTokenizeDate(date, timezoneString) var asUTC = Date.UTC( tokens[0], tokens[1] - 1, tokens[2], tokens[3], tokens[4], tokens[5] ) var timestampWithMsZeroed = date.getTime() - (date.getTime() % 1000) return -(asUTC - timestampWithMsZeroed) } return 0 } function validateTimezone(hours, minutes) { if (minutes != null && (minutes < 0 || minutes > 59)) { return false } return true } // CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/toDate/index.js var toDate_MILLISECONDS_IN_HOUR = 3600000 var toDate_MILLISECONDS_IN_MINUTE = 60000 var DEFAULT_ADDITIONAL_DIGITS = 2 var toDate_patterns = { dateTimeDelimeter: /[T ]/, plainTime: /:/, timeZoneDelimeter: /[Z ]/i, // year tokens YY: /^(\d{2})$/, YYY: [ /^([+-]\d{2})$/, // 0 additional digits /^([+-]\d{3})$/, // 1 additional digit /^([+-]\d{4})$/ // 2 additional digits ], YYYY: /^(\d{4})/, YYYYY: [ /^([+-]\d{4})/, // 0 additional digits /^([+-]\d{5})/, // 1 additional digit /^([+-]\d{6})/ // 2 additional digits ], // date tokens MM: /^-(\d{2})$/, DDD: /^-?(\d{3})$/, MMDD: /^-?(\d{2})-?(\d{2})$/, Www: /^-?W(\d{2})$/, WwwD: /^-?W(\d{2})-?(\d{1})$/, HH: /^(\d{2}([.,]\d*)?)$/, HHMM: /^(\d{2}):?(\d{2}([.,]\d*)?)$/, HHMMSS: /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/, // timezone tokens (to identify the presence of a tz) timezone: /([Z+-].*| UTC|(?:[a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?))$/ } /** * @name toDate * @category Common Helpers * @summary Convert the given argument to an instance of Date. * * @description * Convert the given argument to an instance of Date. * * If the argument is an instance of Date, the function returns its clone. * * If the argument is a number, it is treated as a timestamp. * * If an argument is a string, the function tries to parse it. * Function accepts complete ISO 8601 formats as well as partial implementations. * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601 * If the function cannot parse the string or the values are invalid, it returns Invalid Date. * * If the argument is none of the above, the function returns Invalid Date. * * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined. * * @param {Date|String|Number} argument - the value to convert * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options} * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String. * @returns {Date} the parsed date in the local time zone * @throws {TypeError} 1 argument required * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2 * * @example * // Convert string '2014-02-11T11:30:30' to date: * var result = toDate('2014-02-11T11:30:30') * //=> Tue Feb 11 2014 11:30:30 * * @example * // Convert string '+02014101' to date, * // if the additional number of digits in the extended year format is 1: * var result = toDate('+02014101', {additionalDigits: 1}) * //=> Fri Apr 11 2014 00:00:00 */ function toDate_toDate(argument, dirtyOptions) { if (arguments.length < 1) { throw new TypeError( '1 argument required, but only ' + arguments.length + ' present' ) } if (argument === null) { return new Date(NaN) } var options = dirtyOptions || {} var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits) if ( additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0 ) { throw new RangeError('additionalDigits must be 0, 1 or 2') } // Clone the date if ( argument instanceof Date || (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]') ) { // Prevent the date to lose the milliseconds when passed to new Date() in IE10 return new Date(argument.getTime()) } else if ( typeof argument === 'number' || Object.prototype.toString.call(argument) === '[object Number]' ) { return new Date(argument) } else if ( !( typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]' ) ) { return new Date(NaN) } var dateStrings = splitDateString(argument) var parseYearResult = parseYear(dateStrings.date, additionalDigits) var year = parseYearResult.year var restDateString = parseYearResult.restDateString var date = parseDate(restDateString, year) if (isNaN(date)) { return new Date(NaN) } if (date) { var timestamp = date.getTime() var time = 0 var offset if (dateStrings.time) { time = parseTime(dateStrings.time) if (isNaN(time)) { return new Date(NaN) } } if (dateStrings.timezone || options.timeZone) { offset = tzParseTimezone( dateStrings.timezone || options.timeZone, new Date(timestamp + time) ) if (isNaN(offset)) { return new Date(NaN) } } else { // get offset accurate to hour in timezones that change offset offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time)) offset = getTimezoneOffsetInMilliseconds( new Date(timestamp + time + offset) ) } return new Date(timestamp + time + offset) } else { return new Date(NaN) } } function splitDateString(dateString) { var dateStrings = {} var array = dateString.split(toDate_patterns.dateTimeDelimeter) var timeString if (toDate_patterns.plainTime.test(array[0])) { dateStrings.date = null timeString = array[0] } else { dateStrings.date = array[0] timeString = array[1] dateStrings.timezone = array[2] if (toDate_patterns.timeZoneDelimeter.test(dateStrings.date)) { dateStrings.date = dateString.split(toDate_patterns.timeZoneDelimeter)[0] timeString = dateString.substr(dateStrings.date.length, dateString.length) } } if (timeString) { var token = toDate_patterns.timezone.exec(timeString) if (token) { dateStrings.time = timeString.replace(token[1], '') dateStrings.timezone = token[1] } else { dateStrings.time = timeString } } return dateStrings } function parseYear(dateString, additionalDigits) { var patternYYY = toDate_patterns.YYY[additionalDigits] var patternYYYYY = toDate_patterns.YYYYY[additionalDigits] var token // YYYY or ±YYYYY token = toDate_patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString) if (token) { var yearString = token[1] return { year: parseInt(yearString, 10), restDateString: dateString.slice(yearString.length) } } // YY or ±YYY token = toDate_patterns.YY.exec(dateString) || patternYYY.exec(dateString) if (token) { var centuryString = token[1] return { year: parseInt(centuryString, 10) * 100, restDateString: dateString.slice(centuryString.length) } } // Invalid ISO-formatted year return { year: null } } function parseDate(dateString, year) { // Invalid ISO-formatted year if (year === null) { return null } var token var date var month var week // YYYY if (dateString.length === 0) { date = new Date(0) date.setUTCFullYear(year) return date } // YYYY-MM token = toDate_patterns.MM.exec(dateString) if (token) { date = new Date(0) month = parseInt(token[1], 10) - 1 if (!validateDate(year, month)) { return new Date(NaN) } date.setUTCFullYear(year, month) return date } // YYYY-DDD or YYYYDDD token = toDate_patterns.DDD.exec(dateString) if (token) { date = new Date(0) var dayOfYear = parseInt(token[1], 10) if (!validateDayOfYearDate(year, dayOfYear)) { return new Date(NaN) } date.setUTCFullYear(year, 0, dayOfYear) return date } // yyyy-MM-dd or YYYYMMDD token = toDate_patterns.MMDD.exec(dateString) if (token) { date = new Date(0) month = parseInt(token[1], 10) - 1 var day = parseInt(token[2], 10) if (!validateDate(year, month, day)) { return new Date(NaN) } date.setUTCFullYear(year, month, day) return date } // YYYY-Www or YYYYWww token = toDate_patterns.Www.exec(dateString) if (token) { week = parseInt(token[1], 10) - 1 if (!validateWeekDate(year, week)) { return new Date(NaN) } return dayOfISOWeekYear(year, week) } // YYYY-Www-D or YYYYWwwD token = toDate_patterns.WwwD.exec(dateString) if (token) { week = parseInt(token[1], 10) - 1 var dayOfWeek = parseInt(token[2], 10) - 1 if (!validateWeekDate(year, week, dayOfWeek)) { return new Date(NaN) } return dayOfISOWeekYear(year, week, dayOfWeek) } // Invalid ISO-formatted date return null } function parseTime(timeString) { var token var hours var minutes // hh token = toDate_patterns.HH.exec(timeString) if (token) { hours = parseFloat(token[1].replace(',', '.')) if (!validateTime(hours)) { return NaN } return (hours % 24) * toDate_MILLISECONDS_IN_HOUR } // hh:mm or hhmm token = toDate_patterns.HHMM.exec(timeString) if (token) { hours = parseInt(token[1], 10) minutes = parseFloat(token[2].replace(',', '.')) if (!validateTime(hours, minutes)) { return NaN } return ( (hours % 24) * toDate_MILLISECONDS_IN_HOUR + minutes * toDate_MILLISECONDS_IN_MINUTE ) } // hh:mm:ss or hhmmss token = toDate_patterns.HHMMSS.exec(timeString) if (token) { hours = parseInt(token[1], 10) minutes = parseInt(token[2], 10) var seconds = parseFloat(token[3].replace(',', '.')) if (!validateTime(hours, minutes, seconds)) { return NaN } return ( (hours % 24) * toDate_MILLISECONDS_IN_HOUR + minutes * toDate_MILLISECONDS_IN_MINUTE + seconds * 1000 ) } // Invalid ISO-formatted time return null } function dayOfISOWeekYear(isoWeekYear, week, day) { week = week || 0 day = day || 0 var date = new Date(0) date.setUTCFullYear(isoWeekYear, 0, 4) var fourthOfJanuaryDay = date.getUTCDay() || 7 var diff = week * 7 + day + 1 - fourthOfJanuaryDay date.setUTCDate(date.getUTCDate() + diff) return date } // Validation functions var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] function isLeapYearIndex(year) { return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0) } function validateDate(year, month, date) { if (month < 0 || month > 11) { return false } if (date != null) { if (date < 1) { return false } var isLeapYear = isLeapYearIndex(year) if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) { return false } if (!isLeapYear && date > DAYS_IN_MONTH[month]) { return false } } return true } function validateDayOfYearDate(year, dayOfYear) { if (dayOfYear < 1) { return false } var isLeapYear = isLeapYearIndex(year) if (isLeapYear && dayOfYear > 366) { return false } if (!isLeapYear && dayOfYear > 365) { return false } return true } function validateWeekDate(year, week, day) { if (week < 0 || week > 52) { return false } if (day != null && (day < 0 || day > 6)) { return false } return true } function validateTime(hours, minutes, seconds) { if (hours != null && (hours < 0 || hours >= 25)) { return false } if (minutes != null && (minutes < 0 || minutes >= 60)) { return false } if (seconds != null && (seconds < 0 || seconds >= 60)) { return false } return true } // CONCATENATED MODULE: ./node_modules/date-fns-tz/esm/zonedTimeToUtc/index.js /** * @name zonedTimeToUtc * @category Time Zone Helpers * @summary Get the UTC date/time from a date representing local time in a given time zone * * @description * Returns a date instance with the UTC time of the provided date of which the values * represented the local time in the time zone specified. In other words, if the input * date represented local time in time time zone, the timestamp of the output date will * give the equivalent UTC of that local time regardless of the current system time zone. * * @param {Date|String|Number} date - the date with values representing the local time * @param {String} timeZone - the time zone of this local time, can be an offset or IANA time zone * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options} * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate} * @returns {Date} the new date with the equivalent time in the time zone * @throws {TypeError} 2 arguments required * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2 * * @example * // In June 10am in Los Angeles is 5pm UTC * const result = zonedTimeToUtc(new Date(2014, 5, 25, 10, 0, 0), 'America/Los_Angeles') * //=> 2014-06-25T17:00:00.000Z */ function zonedTimeToUtc(date, timeZone, options) { if (date instanceof Date) { date = format(date, "yyyy-MM-dd'T'HH:mm:ss.SSS") } var extendedOptions = cloneObject(options) extendedOptions.timeZone = timeZone return toDate_toDate(date, extendedOptions) } // EXTERNAL MODULE: ./src/json/timezones.json var timezones = __webpack_require__(10); // CONCATENATED MODULE: ./src/links/airlines/aaSabre.js const aaSabreEditions = [ { value: "BS", name: "Bahamas (USD)" }, { value: "VG", name: "British Virgin Islands (USD)" }, { value: "CA", name: "Canada (CAD)" }, { value: "PR", name: "Puerto Rico (USD)" }, { value: "GB", name: "United Kingdom (GBP)" }, { value: "US", name: "United States (USD)" } ]; function printAaSabre() { if (!Object(links["anyCarriers"])("AA")) { return; } let datetimeToEpoch = function(y, m, d, t, ap) { /** * This function converts a datetime from the local timezone of the * departing airport to its epoch value, while accounting for * daylight savings time (DST) differences in future months. * * This function accepts the IATA code for a given airport and * retrieves the timezone from a static array of known airport data * (sourced from https://www.flightstats.com, reduced to * airports with IATA code, and converted to keyed json format). * * @param y 4-digit year * @param m 2-digit month * @param d 2-digit day * @param t 24-hour formatted time (HH:MM) * @param y 4-digit year * @param ap IATA airport code * @returns Adjusted datetime string with offset in format YYYY-MM-DDTHH:MM:00+XX:00 */ let datetimeStr = y + "-" + ("0" + m).slice(-2) + "-" + ("0" + d).slice(-2) + "T" + t + ":00"; return zonedTimeToUtc(datetimeStr, timezones[ap]).getTime(); }; // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var createUrl = function(edition) { var pax = Object(links["validatePax"])({ maxPaxcount: 6, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(utils["g" /* printNotification */])("Error: Failed to validate Passengers in printAaSabre"); return false; } var url = "https://www.aa.com/goto/metasearch?ITEN=GOOGLE,0,"; url += (edition || "US") + ","; if (itin["a" /* currentItin */].itin.length === 1) { url += "oneWay"; } else { url += "multi"; } url += ",4,A" + pax.adults + "S0C" + pax.children.length + "I" + pax.infLap + "Y0L0,0,"; url += itin["a" /* currentItin */].itin[0].orig + ",0," + itin["a" /* currentItin */].itin[0].dest; url += ",0"; if (itin["a" /* currentItin */].itin.length > 1) { for (var i = 0; i < itin["a" /* currentItin */].itin.length; i++) { url += ",0,0"; } } else { url += ",0"; // for oneWay only } if (itin["a" /* currentItin */].itin.length == 2) { // insert additional parameter zeros for roundtrips or 2-leg multi-city: url += ",0,0"; } else if (itin["a" /* currentItin */].itin.length == 1) { // insert the departure time before the price for oneWay only: url += "," + datetimeToEpoch( itin["a" /* currentItin */].itin[0].seg[0].dep.year, itin["a" /* currentItin */].itin[0].seg[0].dep.month, itin["a" /* currentItin */].itin[0].seg[0].dep.day, itin["a" /* currentItin */].itin[0].seg[0].dep.time24, itin["a" /* currentItin */].itin[0].seg[0].orig ); } url += "," + itin["a" /* currentItin */].price + ",1,"; // this part for RT and multi-city only: if (itin["a" /* currentItin */].itin.length > 1) { var addon = ""; for (var i = 0; i < itin["a" /* currentItin */].itin.length; i++) { addon += "#" + itin["a" /* currentItin */].itin[i].orig + "|" + itin["a" /* currentItin */].itin[i].dest + "|0|0|"; addon += datetimeToEpoch( itin["a" /* currentItin */].itin[i].seg[0].dep.year, itin["a" /* currentItin */].itin[i].seg[0].dep.month, itin["a" /* currentItin */].itin[i].seg[0].dep.day, itin["a" /* currentItin */].itin[i].seg[0].dep.time24, itin["a" /* currentItin */].itin[i].seg[0].orig ); } url += encodeURIComponent(addon) + ","; } var itinsegs = new Array(); // Build multi-city search based on legs: for (var i = 0; i < itin["a" /* currentItin */].itin.length; i++) { // outer loop traverses each leg for (var j = 0; j < itin["a" /* currentItin */].itin[i].seg.length; j++) { // inner loop traverses each segment of the leg var k = 0; // skip this segment ONLY IF the flight number is the // same as the next segment and it is only a layover while (j + k < itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( itin["a" /* currentItin */].itin[i].seg[j + k].fnr !== itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } let itinseg = "#" + itin["a" /* currentItin */].itin[i].seg[j].carrier + "|" + itin["a" /* currentItin */].itin[i].seg[j].fnr + "|" + itin["a" /* currentItin */].itin[i].seg[j].bookingclass + "|" + itin["a" /* currentItin */].itin[i].seg[j].orig + "|" + itin["a" /* currentItin */].itin[i].seg[j + k].dest + "|" + datetimeToEpoch( itin["a" /* currentItin */].itin[i].seg[j].dep.year, itin["a" /* currentItin */].itin[i].seg[j].dep.month, itin["a" /* currentItin */].itin[i].seg[j].dep.day, itin["a" /* currentItin */].itin[i].seg[j].dep.time24, itin["a" /* currentItin */].itin[i].seg[j].orig ); itinseg += "|" + i; itinsegs.push(itinseg); j += k; } } url += encodeURIComponent(itinsegs.join("")); return url; }; var url = createUrl(userSettings["a" /* default */].aaSabreEdition.toUpperCase()); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += aaSabreEditions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value.toUpperCase()) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "American", desc: "America & UK", extra }; } Object(links["register"])("airlines", printAaSabre); Object(userSettings["c" /* registerSetting */])( "American (America & UK)", "aaSabreEdition", aaSabreEditions, "US" ); /***/ }), /* 50 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/settings/appSettings.js var appSettings = __webpack_require__(4); // EXTERNAL MODULE: ./src/settings/userSettings.js var userSettings = __webpack_require__(2); // EXTERNAL MODULE: ./src/settings/itaSettings.js var itaSettings = __webpack_require__(5); // EXTERNAL MODULE: ./src/utils.js var utils = __webpack_require__(1); // EXTERNAL MODULE: ./src/parse/itin.js var parse_itin = __webpack_require__(0); // EXTERNAL MODULE: ./src/settings/translations.js var translations = __webpack_require__(8); // EXTERNAL MODULE: ./src/print/links.js var links = __webpack_require__(9); // CONCATENATED MODULE: ./src/print/index.js function render() { // Editor mode? if ( userSettings["a" /* default */].enableEditormode == 1 && Object(utils["d" /* findtargets */])("editoritem").length === 0 ) { Object(utils["k" /* toggleVis */])(document.getElementById("mptStartparse"), "inline-block"); addEditor(); return; } else if (Object(utils["d" /* findtargets */])("editoritem").length > 0) { Object(utils["k" /* toggleVis */])(document.getElementById("mptStartparse")); removeEditor(); Object(parse_itin["c" /* readItinerary */])(); } bindPageLayout(); if (userSettings["a" /* default */].enableFarerules == 1) bindRulelinks(); if (userSettings["a" /* default */].timeformat == "24h") bind24HourTime(); if ( userSettings["a" /* default */].language !== "en" && translations["a" /* default */][userSettings["a" /* default */].language].resultpage !== undefined ) bindTranslations( "resultpage", userSettings["a" /* default */].language, Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1).nextElementSibling ); if (userSettings["a" /* default */].enablePricebreakdown == 1) bindPriceBreakdown(); if (userSettings["a" /* default */].enableInlineMode == 1) printCPM(); Object(links["a" /* printLinksContainer */])(); if (userSettings["a" /* default */].enableSeatguru == 1) bindSeatguru(); if (userSettings["a" /* default */].enablePlanefinder == 1) bindPlanefinder(); if (userSettings["a" /* default */].enableWheretocredit == 1) bindWheretocredit(); } function cleanUp() { // empty outputcontainer if (document.getElementById("powertoolslinkcontainer") != undefined) { var div = document.getElementById("powertoolslinkcontainer"); div.innerHTML = ""; } // S&D powertool items var elems = Object(utils["d" /* findtargets */])("powertoolsitem"); for (var i = elems.length - 1; i >= 0; i--) { elems[i].parentElement.removeChild(elems[i]); } // S&D price breakdown var pbd = Object(utils["c" /* findtarget */])("pricebreakdown", 1); if (pbd != undefined) pbd.parentElement.removeChild(pbd); } function addEditor() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild; var tmp = target.innerHTML; var bc = tmp.substr(tmp.length - 2, 1); var cabin = tmp.substr(0, tmp.length - 4); var cabins = [ ["Economy", "Y"], ["Premium Economy", "Y+"], ["Business", "C"], ["First", "F"] ]; var str = '<select style="width:40px" class="editoritem">'; for (var k = 0; k < cabins.length; k++) { str += '<option value="' + cabins[k][0] + '"' + (cabins[k][0] === cabin ? ' selected="selected"' : "") + ">" + cabins[k][1] + "</option>"; } str += "</select>"; str += ' (<input type="text" class="editoritem" value="' + bc + '" style="width:20px;text-align:center">)'; target.innerHTML = str; } } } function removeEditor() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild; var cabin = target.firstElementChild.options[target.firstElementChild.selectedIndex] .value; var bc = target.firstElementChild.nextElementSibling.value; var str = cabin + " (" + bc + ")"; target.innerHTML = str; } } } function bindPageLayout() { Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute( "rowspan", "10" ); const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1) .parentElement.parentElement; target.setAttribute("valign", "top"); target.setAttribute("height", "100%"); } function bind24HourTime() { // lets do the time-replacement const segs = Object(parse_itin["b" /* getCurrentSegs */])(); if (segs.length > 0) { const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1) .nextElementSibling; for (let i = 0; i < segs.length; i++) { target.innerHTML = target.innerHTML.replace( new RegExp(segs[i].dep.timeDisplay, "g"), segs[i].dep.time24 ); target.innerHTML = target.innerHTML.replace( new RegExp(segs[i].arr.timeDisplay, "g"), segs[i].arr.time24 ); } } } function bindRulelinks() { var i = 0; var j = 0; var t = 1; let target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t); if (target != undefined) { do { var current = Number( target.firstElementChild.innerHTML.replace(/[^\d]/gi, "") ); if (i > current) { j++; i = 0; } target = target.nextElementSibling.nextElementSibling.nextElementSibling; var targeturl = window.location.href.replace(/view-details/, "view-rules") + ";fare-key=" + j + "/" + i; var newlink = document.createElement("a"); newlink.setAttribute("class", "gwt-Anchor"); newlink.setAttribute("href", targeturl); newlink.setAttribute("target", "_blank"); var linkText = document.createTextNode("rules"); newlink.appendChild(linkText); target.parentElement.replaceChild(newlink, target); i++; t++; target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t); } while (target != undefined); } } function bindPriceBreakdown() { var basefares = 0; var taxes = 0; var surcharges = 0; var basefound = 0; var cur = ""; // define searchpattern to detect carrier imposed surcharges var searchpatt = new RegExp("((YQ|YR))"); var t = 1; var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t); if (userSettings["a" /* default */].enableInlineMode == 0) { var output = ""; var count = 0; } if (target != undefined) { do { var type = target.firstChild.firstChild.nodeType; if (type == 1) { basefound = 1; //it's a basefare var price = Number( target.nextElementSibling.firstElementChild.innerHTML.replace( /[^\d]/gi, "" ) ); if (cur == "") cur = target.nextElementSibling.firstElementChild.innerHTML.replace( /[\d,.]/g, "" ); basefares += price; } else if (basefound == 1 && type == 3) { //its a pricenode var name = target.firstElementChild.innerHTML; var price = Number( target.nextElementSibling.firstElementChild.innerHTML.replace( /[^\d]/gi, "" ) ); if ( Object(utils["e" /* hasClass */])( target.nextElementSibling, itaSettings["a" /* default */].resultpage.htbGreyBorder ) ) { //we are done for this container var sum = basefares + taxes + surcharges; if (userSettings["a" /* default */].enableInlineMode == 1) { var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Basefare per passenger (' + ((basefares / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbGreyBorder + '"><div class="gwt-Label">' + cur + (basefares / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Taxes per passenger (' + ((taxes / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbRight + '"><div class="gwt-Label">' + cur + (taxes / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Surcharges per passenger (' + ((surcharges / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbRight + '"><div class="gwt-Label">' + cur + (surcharges / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Basefare + Taxes per passenger (' + (((basefares + taxes) / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbGreyBorder + '"><div class="gwt-Label">' + cur + ((basefares + taxes) / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); } else { count++; output += '<table style="float:left; margin-right:15px;"><tbody>'; output += '<tr><td colspan=3 style="text-align:center;">Price breakdown ' + count + ": </td></tr>"; output += "<tr><td>" + cur + ' per mile</td><td colspan=2 style="text-align:center;">' + (sum / parse_itin["a" /* currentItin */].dist / 100).toFixed(4).toString() + "</td></tr>"; output += '<tr><td>Basefare</td><td style="padding:0px 3px;text-align:right;">' + ((basefares / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (basefares / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td>Tax</td><td style="padding:0px 3px;text-align:right;">' + ((taxes / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (taxes / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td>Surcharges</td><td style="padding:0px 3px;text-align:right;">' + ((surcharges / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (surcharges / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td style="border-top: 1px solid #878787;padding:2px 0">Bf+Tax</td><td style="border-top: 1px solid #878787;padding:2px 3px;text-align:right;">' + (((basefares + taxes) / sum) * 100).toFixed(1).toString() + '%</td><td style="border-top: 1px solid #878787;padding:2px 0; text-align:right;">' + cur + ((basefares + taxes) / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += "</tbody></table>"; } parse_itin["a" /* currentItin */].basefares = +(basefares / 100).toFixed(2); parse_itin["a" /* currentItin */].taxes = +(taxes / 100).toFixed(2); parse_itin["a" /* currentItin */].surcharges = +(surcharges / 100).toFixed(2); // reset var basefound = 0; basefares = 0; taxes = 0; surcharges = 0; } else { //Carrier surcharge? if (searchpatt.test(name) === true) { surcharges += price; } else { taxes += price; } } } t++; target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t); } while (target != undefined); } if (userSettings["a" /* default */].enableInlineMode == 0) { var printtarget = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1) .parentElement.parentElement.parentElement; var newtr = document.createElement("tr"); newtr.setAttribute("class", "pricebreakdown"); newtr.innerHTML = "<td><div>" + output + "</div></td>"; printtarget.parentElement.insertBefore(newtr, printtarget); } } function bindTranslations(page, lang, target) { if (translations["a" /* default */][lang] === undefined) { Object(utils["g" /* printNotification */])("Error: Translation " + lang + " not found"); return false; } if (translations["a" /* default */][lang][page] === undefined) { Object(utils["g" /* printNotification */])( "Error: Translation " + lang + " not found for page " + page ); return false; } for (let i in translations["a" /* default */][lang][page]) { const re = new RegExp(i, "g"); target.innerHTML = target.innerHTML.replace( re, translations["a" /* default */][lang][page][i] ); } } function printCPM() { document .querySelector(".KIR33AB-y-c:nth-of-type(1)") .insertAdjacentHTML( "beforeend", `<li class="powertoolsitem">${( Number(parse_itin["a" /* currentItin */].price) / Number(parse_itin["a" /* currentItin */].dist) ).toFixed(4)} cpm</li>` ); } function bindSeatguru() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr != parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } // build the search to identify flight: var target = findItinTarget(i + 1, j + 1, "plane"); if (!target) { Object(utils["g" /* printNotification */])("Error: Could not find target in bindSeatguru"); return false; } else { var url = "http://www.seatguru.com/findseatmap/findseatmap.php?carrier=" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier + "&flightno=" + parse_itin["a" /* currentItin */].itin[i].seg[j].fnr + "&date=" + ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.month).slice(-2) + "%2F" + ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.day).slice(-2) + "%2F" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.year + "&to=&from=" + parse_itin["a" /* currentItin */].itin[i].seg[j].orig; target.children[0].classList.add("pt-textlink"); target.children[0].innerHTML = '<a href="' + url + '" target="_blank">' + target.children[0].innerHTML + "</a>"; } j += k; } } } function bindPlanefinder() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr != parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } // build the search to identify flight: var target = findItinTarget(i + 1, j + 1, "flight"); if (!target) { Object(utils["g" /* printNotification */])("Error: Could not find target in bindPlanefinder"); return false; } else { var url = "http://www.planefinder.net/data/flight/" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier + parse_itin["a" /* currentItin */].itin[i].seg[j].fnr; target.children[0].classList.add("pt-textlink"); target.children[0].innerHTML = '<a href="' + url + '" target="_blank">' + target.children[0].innerHTML + "</a>"; } j += k; } } } function bindWheretocredit() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var target = findItinTarget(i + 1, j + 1, "cabin"); if (!target) { Object(utils["g" /* printNotification */])("Error: Could not find target in bindWheretocredit"); return false; } else { var url = "http://www.wheretocredit.com/" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier.toLowerCase() + "/" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass.toLowerCase(); target.children[0].classList.add("pt-textlink"); target.children[0].innerHTML = target.children[0].innerHTML .replace( /<a.*?\/a>/, "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")" ) .replace( "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")", '<a href="' + url + '" target="_blank">(' + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")</a>" ); } } } } function findItinTarget(leg, seg, tcell) { var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1); if (!target) { Object(utils["g" /* printNotification */])("Error: Itin not found in findItinTarget-function"); return; } // go to leg var targetLeg = target.nextElementSibling.children[leg - 1]; if (targetLeg === undefined) { Object(utils["g" /* printNotification */])("Error: Leg not found in findItinTarget-function"); return; } // go to segments of leg var targetSeg = targetLeg.children[1].children; if (targetSeg.length >= 2) { // go to desired segment var index = 0; var j = 0; let i = 0; for (i = 0; i < targetSeg.length; i++) { if (Object(utils["e" /* hasClass */])(targetSeg[i], itaSettings["a" /* default */].resultpage.itinRow)) { j++; if (j >= seg) { index = i; //special handling for one-seg-legs here if (targetSeg.length === 2 || targetSeg.length === 3) { // 1. Headline 2. Flight-details 3. arrival next day.. index--; } break; } } } // end-for if (i == targetSeg.length) { //target not found Object(utils["g" /* printNotification */])( "Error: Call to unreachable Segment in Leg " + leg + " in findItinTarget-function" ); return; } var rowoffset = 0; var columnoffset = 0; switch (tcell) { case "headline": // special case here allways first row... even in one-seg-legs rowoffset = index * -1; columnoffset = 1; break; case "logo": rowoffset = 0; columnoffset = 0; break; case "airportsdate": rowoffset = 0; columnoffset = 1; break; case "flight": rowoffset = 1; columnoffset = 0; break; case "deptime": rowoffset = 1; columnoffset = 1; break; case "arrtime": rowoffset = 1; columnoffset = 2; break; case "duration": rowoffset = 1; columnoffset = 2; break; case "plane": rowoffset = 1; columnoffset = 4; break; case "cabin": rowoffset = 1; columnoffset = 5; break; default: Object(utils["g" /* printNotification */])("Error: Unknown Target in findItinTarget-function"); return; } return targetSeg[index + rowoffset].children[columnoffset]; } else { Object(utils["g" /* printNotification */])("Error: Unknown error in findItinTarget-function"); return; } } // EXTERNAL MODULE: ./src/settings/paxSettings.js var paxSettings = __webpack_require__(6); // CONCATENATED MODULE: ./src/print/settings.js /**************************************** Settings Stuff *****************************************/ function createUsersettings() { var str = ""; var settingscontainer = document.createElement("div"); settingscontainer.setAttribute("id", "mptSettingsContainer"); settingscontainer.setAttribute("style", "border-bottom: 1px dashed grey;"); settingscontainer.innerHTML = '<div style="display:inline-block;float:left;cursor:pointer;" id="passengerVisToggler">Passengers (<label id="mtpPaxCount">1a</label>)</div><div id="mptStartparse" class="invis" style="margin-left:20px;display:none;cursor:pointer">Editor-Mode:Parse!</div><div id="mtpNotification" style="margin-left:50px;display:inline-block;"></div><div style="display:inline-block;float:right;"><div id="settingsVisToggler" style="display:inline-block;cursor:pointer;">Settings</div> (v' + appSettings["a" /* default */].version + ') <div id="mptCabintoggler" style="display:inline-block;">(Cabin: <label id="mptCabinMode" style="width:30px;text-align:center;cursor:pointer;display:inline-block">Auto</label>)</div></div><div id="mptSettings" class="invis" style="display:none;border-top: 1px dotted grey;"></div><div id="mptPassengers" class="invis" style="display:none;border-top: 1px dotted grey;"></div>'; var target = document.getElementById("contentwrapper"); target.parentElement.insertBefore(settingscontainer, target); document.getElementById("settingsVisToggler").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptSettings")); }; document.getElementById("passengerVisToggler").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers")); }; // Build settings target = document.getElementById("mptSettings"); str = '<div id="mptrestoredefault" style="text-align:right;font-weight:bold;text-decoration:underline;">Restore Defaults</div>'; str += '<div style="text-align:center;font-weight:bold">**** Display Settings: ****</div>'; str += '<div style="margin:5px 0;"><div style="float:left;width:33%">'; str += '<div id="mptenableDarkmode">Dark mode: <label style="cursor:pointer;">' + printSettingsvalue("enableDarkmode") + "</label></div>"; str += '<div id="mpttimeformat">Time Format: <label style="cursor:pointer;">' + printSettingsvalue("timeformat") + "</label></div>"; str += '<div id="mptlanguage">Language: <label style="cursor:pointer;">' + printSettingsvalue("language") + "</label></div>"; str += '<div id="mptenableFarerules">Open rules in new window: <label style="cursor:pointer;">' + printSettingsvalue("enableFarerules") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableInlineMode">Inline Mode: <label style="cursor:pointer;">' + printSettingsvalue("enableInlineMode") + "</label></div>"; str += '<div id="mptenableIMGautoload">Images autoload: <label style="cursor:pointer;">' + printSettingsvalue("enableIMGautoload") + "</label></div>"; str += '<div id="mptenablePricebreakdown">Price breakdown: <label style="cursor:pointer;">' + printSettingsvalue("enablePricebreakdown") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableDeviders">Enable link dividers: <label style="cursor:pointer;">' + printSettingsvalue("enableDeviders") + "</label></div>"; str += '<div id="mptlinkFontsize">Link font size: <label style="cursor:pointer;">' + printSettingsvalue("linkFontsize") + "</label>%</div>"; str += '<div id="mptshowAllAirlines">Show all airline links: <label style="cursor:pointer;">' + printSettingsvalue("showAllAirlines") + "</label></div>"; str += '</div><div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold">**** Feature Settings: ****</div>'; str += '<div style="margin:5px 0"><div style="float:left;width:33%">'; str += '<div id="mptenableEditormode">Editor mode: <label style="cursor:pointer;">' + printSettingsvalue("enableEditormode") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableAffiliates" title="Enables affiliate links to support the development of ITA Matrix Powertools">Support this tool: <label style="cursor:pointer;">' + printSettingsvalue("enableAffiliates") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableWheretocredit">Enable WhereToCredit: <label style="cursor:pointer;">' + printSettingsvalue("enableWheretocredit") + "</label></div>"; str += '<div id="mptenablePlanefinder">Enable Planefinder: <label style="cursor:pointer;">' + printSettingsvalue("enablePlanefinder") + "</label></div>"; str += '<div id="mptenableSeatguru">Enable Seatguru: <label style="cursor:pointer;">' + printSettingsvalue("enableSeatguru") + "</label></div>"; str += '</div><div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold">**** Link Settings: ****</div>'; str += '<div style="margin:5px 0">'; Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => { str += `<div id="mpt${setting}" style="width:33%;float:left;">${ userSettings["d" /* registeredSettings */][setting].name }: <label style="cursor:pointer;">${printSettingsvalue( setting )}</label></div>`; }); str += '<div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold"><label id="configcloser" style="cursor:pointer;text-decoration:underline;">Close</label><div>'; target.innerHTML = str; // these onClick event handlers need only be added once: document.getElementById("mptrestoredefault").onclick = function() { restoreDefaultSettings(); }; document.getElementById("mptenableDarkmode").onclick = function() { toggleSettings("enableDarkmode"); }; document.getElementById("mpttimeformat").onclick = function() { toggleSettings("timeformat"); }; document.getElementById("mptlanguage").onclick = function() { toggleSettings("language"); }; document.getElementById("mptenableDeviders").onclick = function() { toggleSettings("enableDeviders"); }; document.getElementById("mptenableInlineMode").onclick = function() { toggleSettings("enableInlineMode"); }; document.getElementById("mptenableEditormode").onclick = function() { toggleSettings("enableEditormode"); }; document.getElementById("mptenableIMGautoload").onclick = function() { toggleSettings("enableIMGautoload"); }; document.getElementById("mptenableFarerules").onclick = function() { toggleSettings("enableFarerules"); }; document.getElementById("mptenablePricebreakdown").onclick = function() { toggleSettings("enablePricebreakdown"); }; document.getElementById("mptlinkFontsize").onclick = function() { toggleSettings("linkFontsize"); }; document.getElementById("mptshowAllAirlines").onclick = function() { toggleSettings("showAllAirlines"); }; document.getElementById("mptenablePlanefinder").onclick = function() { toggleSettings("enablePlanefinder"); }; document.getElementById("mptenableSeatguru").onclick = function() { toggleSettings("enableSeatguru"); }; document.getElementById("mptenableWheretocredit").onclick = function() { toggleSettings("enableWheretocredit"); }; document.getElementById("mptenableAffiliates").onclick = function() { toggleSettings("enableAffiliates"); }; document.getElementById("mptCabintoggler").onclick = function() { toggleSettings("cabin"); }; document.getElementById("configcloser").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptSettings")); }; document.getElementById("mptStartparse").onclick = function() { setTimeout(function() { render(); }, 50); }; Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => { document.getElementById("mpt" + setting).onclick = function() { toggleSettings(setting); }; }); // Build passengers target = document.getElementById("mptPassengers"); str = '<div style="float:left;width:25%">'; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Adults: </label> <select name="numAdults" id="numAdults" style="width:50px">'; for (var i = 1; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Lap): </label> <select name="numInfantsLap" id="numInfantsLap" style="width:50px">'; for (var i = 0; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Seat): </label> <select name="numInfantsSeat" id="numInfantsSeat" style="width:50px">'; for (var i = 0; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '</div><div style="float:left;width:25%">'; for (var k = 1; k <= 3; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '</div><div style="float:left;width:25%">'; for (var k = 4; k <= 6; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '</div><div style="float:left;width:25%">'; for (var k = 7; k <= 8; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '<div style="width:150px;margin:2px 0"><div id="mtpConfirmPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Confirm</div><div id="mtpCancelPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Cancel</div></div>'; str += '</div><div style="clear:both;"></div>'; target.innerHTML = str; document.getElementById("mtpCancelPax").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers")); }; document.getElementById("mtpConfirmPax").onclick = function() { processPassengers(); }; } function restoreDefaultSettings() { // this function will remove any saved settings and restore default values if ( window.confirm( "Are you sure you want to reset any saved settings to the default values? The page will automatically reload to complete the reset." ) ) { (async () => { if (typeof GM === "undefined" || typeof GM.info != "undefined") { await Object(userSettings["e" /* saveUserSettings */])(null); } // Reload the current page: window.location.reload(); })(); // end async for GM4 } } function toggleSettings(target) { console.log("toggleSettings called. target=" + target); if (userSettings["d" /* registeredSettings */][target] && userSettings["d" /* registeredSettings */][target].values) { const pos = findPositionForValue( userSettings["a" /* default */][target], userSettings["d" /* registeredSettings */][target].values ); if (pos >= userSettings["d" /* registeredSettings */][target].values.length - 1 || pos === -1) { userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[0].value; } else { userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[pos + 1].value; } } else { switch (target) { case "timeformat": if (userSettings["a" /* default */].timeformat == "12h") { userSettings["a" /* default */].timeformat = "24h"; } else { userSettings["a" /* default */].timeformat = "12h"; } break; case "language": if (userSettings["a" /* default */].language == "de") { userSettings["a" /* default */].language = "en"; } else { userSettings["a" /* default */].language = "de"; } break; case "linkFontsize": if ( userSettings["a" /* default */].linkFontsize <= 190 && userSettings["a" /* default */].linkFontsize >= 50 ) { userSettings["a" /* default */].linkFontsize += 10; } else { userSettings["a" /* default */].linkFontsize = 50; } break; case "cabin": if (appSettings["a" /* default */].cabin === "Auto") { appSettings["a" /* default */].cabin = "Y"; } else if (appSettings["a" /* default */].cabin === "Y") { appSettings["a" /* default */].cabin = "Y+"; } else if (appSettings["a" /* default */].cabin === "Y+") { appSettings["a" /* default */].cabin = "C"; } else if (appSettings["a" /* default */].cabin === "C") { appSettings["a" /* default */].cabin = "F"; } else if (appSettings["a" /* default */].cabin === "F") { appSettings["a" /* default */].cabin = "Auto"; } document.getElementById("mptCabinMode").innerHTML = appSettings["a" /* default */].cabin; // refresh links Object(links["a" /* printLinksContainer */])(); break; default: if (userSettings["a" /* default */][target] == 1) { userSettings["a" /* default */][target] = 0; } else { userSettings["a" /* default */][target] = 1; } } } document.getElementById( "mpt" + target ).firstElementChild.innerHTML = printSettingsvalue(target); Object(userSettings["e" /* saveUserSettings */])(); } function processPassengers() { var paxText = ""; var e = document.getElementById("numAdults"); paxSettings["a" /* default */].adults = Number(e.options[e.selectedIndex].value); e = document.getElementById("numInfantsLap"); paxSettings["a" /* default */].infantsLap = Number(e.options[e.selectedIndex].value); e = document.getElementById("numInfantsSeat"); paxSettings["a" /* default */].infantsSeat = Number(e.options[e.selectedIndex].value); paxSettings["a" /* default */].cAges = new Array(); for (var i = 1; i <= 8; i++) { processChild("child" + i + "age"); } paxText = paxSettings["a" /* default */].adults + "a" + (paxSettings["a" /* default */].cAges.length > 0 ? " " + paxSettings["a" /* default */].cAges.length + "c" : "") + (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat > 0 ? " " + (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat) + "i" : ""); document.getElementById("mtpPaxCount").innerHTML = paxText; Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers")); // reload links Object(links["a" /* printLinksContainer */])(); } function processChild(target) { var e = document.getElementById(target); var tmp = 0; tmp = Number(e.options[e.selectedIndex].value); if (tmp >= 2) { paxSettings["a" /* default */].cAges.push(tmp); } } function printSettingsvalue(target) { if (userSettings["d" /* registeredSettings */][target]) { return findNameForValue( userSettings["a" /* default */][target], userSettings["d" /* registeredSettings */][target].values ); } switch (target) { case "timeformat": return userSettings["a" /* default */].timeformat; case "language": return userSettings["a" /* default */].language; case "linkFontsize": return userSettings["a" /* default */].linkFontsize.toString(); default: return boolToEnabled(userSettings["a" /* default */][target]); } } function findNameForValue(needle, haystack) { var ret = "Unknown"; for (var i in haystack) { if (haystack[i].value == needle) { return haystack[i].name; } } return ret; } function findPositionForValue(needle, haystack) { return haystack.findIndex(o => o.value == needle); } function boolToEnabled(value) { if (value == 1) { return "enabled"; } else { return "disabled"; } } // CONCATENATED MODULE: ./src/print/darkmode.js const tokens = { "#1e1e1e": "#f5f5f5", // dark gray text "#e2f2f9": "#1f1f1f", // light blue box background "#155fa9": "#85daff", // blue "#145EA9": "#85daff", // blue (tab text) "#0062AB": "#8ec6ec", // blue (visited link) "#3275b5": "#9ecbe6", // blue (box border) "#4e8bc1": "#9ecbe6", // blue (box border) "#185ea8": "#f8b85b", // blue (calendar) -> orange "#fff8bd": "#242424", // light yellow "#f0f0dc": "#242424", // light yellow "#ba0000": "#f39691", // red white: "#121212", // white "#ffffff": "#121212", // white "#fff": "#121212", // white "#121212-": "white-", // fix for "white-space", etc black: "#f5f5f5", // black "#000000": "#f5f5f5", // black "#000": "#f5f5f5", // black "#f7f7f7": "#232323", // light gray "#f0f0f0": "#232323", // light gray "rgba\\(255,255,255,0.6\\)": "#232323", // light gray "#c2e0ff": "rgba(194,224,255,.1)" // light blue }; let headObserver; function bindDarkmode() { if (userSettings["a" /* default */].enableDarkmode && window.MutationObserver) { document.body.classList.add("dark-mode"); if (!headObserver) { document.head.querySelectorAll("style").forEach(transformCss); headObserver = new window.MutationObserver((mutations, observer) => mutations.forEach(m => m.addedNodes.forEach(transformCss)) ); headObserver.observe(document.head, { childList: true }); } } } const transformCss = node => { if ( node.nodeName.toUpperCase() === "STYLE" && node.textContent.indexOf("dark-mode") === -1 ) { const old = node.textContent; node.textContent = Object.keys(tokens).reduce( (css, token) => css.replace(new RegExp(token, "gi"), tokens[token]), node.textContent ); if (old == node.textContent) alert("no changes"); } }; // CONCATENATED MODULE: ./src/index.js /**************************************** Start Script *****************************************/ // *** DO NOT CHANGE BELOW THIS LINE***/ (async () => { await Object(userSettings["b" /* loadUserSettings */])(); createUsersettings(); injectCss(); bindDarkmode(); if (window.top === window.self) { if (appSettings["a" /* default */].scriptEngine === 0) { startScript(); } else { // execute language detection and afterwards functions for current page if (typeof window.addEventListener !== "undefined") { window.addEventListener("load", () => startScript(), false); } else { window.onload = () => startScript(); } } } })(); // end async for GM4 function startScript() { if (window.location.href !== appSettings["a" /* default */].laststatus) { setTimeout(function() { Object(appSettings["d" /* reset */])(); cleanUp(); getPageLang(); }, 0); appSettings["a" /* default */].laststatus = window.location.href; } if (appSettings["a" /* default */].scriptrunning === 1) { setTimeout(function() { startScript(); }, 500); } } /**************************************** Get Language *****************************************/ function getPageLang() { if (window.location.href.indexOf("view-details") != -1) { setTimeout(function() { fePS(); }, 200); } else if ( window.location.href.indexOf("#search:") != -1 || window.location.href == "https://matrix.itasoftware.com/" || window.location.href == "https://matrix.itasoftware.com/" ) { setTimeout(function() { startPage(); }, 200); } } /********************************************* Start page *********************************************/ function startPage() { // try to get content if (!Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.startpage.maindiv, 1)) { Object(utils["g" /* printNotification */])("Error: Unable to find content on start page."); return false; } else { // apply style-fix const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].startpage.maindiv, 1); target.children[0].children[0].children[0].children[0].setAttribute( "valign", "top" ); } } /********************************************* Result page *********************************************/ //Primary function for extracting flight data from ITA/Matrix function fePS() { // try to get content const itin = Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.resultpage.itin, 1); if (!itin) { Object(utils["g" /* printNotification */])("Error: Unable to find Content on result page."); return false; } // retry if itin not loaded if (itin.parentElement.previousElementSibling.style.display != "none") { appSettings["a" /* default */].retrycount++; if (appSettings["a" /* default */].retrycount > 50) { Object(utils["g" /* printNotification */])( "Error: Timeout on result page. Content not found after 10s." ); return false; } setTimeout(function() { fePS(); }, 200); return false; } // do some self-testing to prevent crashing on class-changes for (let i in itaSettings["a" /* default */].resultpage) { if (Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage[i], 1) === undefined) { Object(utils["g" /* printNotification */])( "Error: Unable to find class " + itaSettings["a" /* default */].resultpage[i] + " for " + i + "." ); return false; } } Object(parse_itin["c" /* readItinerary */])(); render(); } function injectCss() { let css = "", head = document.head || document.getElementsByTagName("head")[0], style = document.createElement("style"); style.type = "text/css"; css += `body.dark-mode, body.dark-mode input[type='text'], body.dark-mode input[type='radio'], body.dark-mode textarea, body.dark-mode select, body.dark-mode button, body.dark-mode .powertoolsimage, body.dark-mode .pt-hover-menu { background-color: #121212; color: #f5f5f5; }`; css += `body.dark-mode .${itaSettings["a" /* default */].resultpage.mcDiv}.powertoolslinkinlinecontainer { background-color: #1f1f1f; }`; css += "body.dark-mode img.logo, body.dark-mode img[src^='data'] { filter: hue-rotate(180deg) brightness(.93) invert(1); }"; css += "body.dark-mode img[src^='http'] { opacity: 0.75 }"; css += "body.dark-mode a, body.dark-mode a:link, body.dark-mode a:hover, body.dark-mode a:active, body.dark-mode .linked { color: #85daff; }"; css += "body.dark-mode a:visited { color: #8ec6ec; }"; css += "body.dark-mode .pt-textlink a { text-decoration: none; color: #f5f5f5; }"; css += ".pt-hover-menu { position:absolute; padding: 8px; background-color: #FFF; border: 1px solid #808080; display:none; }"; css += ".pt-hover-container:hover .pt-hover-menu { display:inline; }"; css += ".pt-textlink a { text-decoration: none; color: black; }"; css += `.${itaSettings["a" /* default */].resultpage.mcDiv}.powertoolslinkinlinecontainer { background-color: #f2f2f2; }`; css += ".powertoolsimage { width: 184px; height: 100px; background-color: white; border: 1px solid #808080; cursor: pointer; text-align: center; margin-top: 10px; padding-top: 84px; }"; style.appendChild(document.createTextNode(css)); head.appendChild(style); } /***/ }) /******/ ]);