{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/platform/platform.js","webpack:///(webpack)/buildin/global.js","webpack:///./source/pages/instruction-picker.ts","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/uuid/v4.js","webpack:///./source/pages/help.ts","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js"],"names":["root","factory","exports","module","define","amd","window","e","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","default","object","property","prototype","hasOwnProperty","p","s","1","global","__WEBPACK_AMD_DEFINE_RESULT__","objectTypes","function","this","freeExports","freeModule","nodeType","freeGlobal","self","maxSafeInteger","Math","pow","reOpera","objectProto","toString","capitalize","string","String","charAt","toUpperCase","slice","format","trim","test","forOwn","callback","getClassOf","qualify","replace","reduce","array","accumulator","index","length","platform","parse","ua","context","isCustomContext","nav","navigator","userAgent","data","isSpecialCasedOS","likeChrome","airRuntimeClass","enviroClass","javaClass","java","phantomClass","rhino","environment","alpha","beta","doc","document","opera","operamini","operaClass","arch","description","prerelease","useFeatures","version","layout","label","pattern","result","guess","RegExp","exec","product","getProduct","manufacturer","Apple","iPad","iPhone","iPod","Archos","Amazon","Kindle","Kindle Fire","Asus","Transformer","Barnes & Noble","Nook","BlackBerry","PlayBook","Google","Google TV","Nexus","HP","TouchPad","HTC","LG","Microsoft","Xbox","Xbox One","Motorola","Xoom","Nintendo","Wii U","Wii","Nokia","Lumia","Samsung","Galaxy S","Galaxy S2","Galaxy S3","Galaxy S4","Sony","PlayStation","PlayStation Vita","os","10.0","6.4","6.3","6.2","6.1","6.0","5.2","5.1","5.01","5.0","4.0","4.90","split","guesses","push","unshift","indexOf","parseFloat","type","lang","System","getProperty","require","join","system","process","browser","versions","electron","node","nw","runtime","flash","Capabilities","phantom","major","minor","patch","documentMode","toFixed","appMinorVersion","external","parseInt","architecture","family","cpuClass","g","Function","eval","__webpack_exports__","initInstructionPicker","platform__WEBPACK_IMPORTED_MODULE_0__","platform__WEBPACK_IMPORTED_MODULE_0___default","deviceInfo","Windows","id","OS X","Linux","iOS","Android","Router","ref","querySelector","$el","instructionPicker","instructionChoices","Array","querySelectorAll","deviceLabel","setupSection","chooseInstructions","platformId","device","forEach","choice","classList","toggle","dataset","entry","textContent","assign","addEventListener","a","webpackPolyfill","deprecate","paths","children","rng","bytesToUuid","options","buf","offset","rnds","random","ii","_instruction_picker__WEBPACK_IMPORTED_MODULE_1__","uuid_v4__WEBPACK_IMPORTED_MODULE_2__","uuid","console","log","btoa","shareData","getRefElement","CSS","escape","setRef","element","add","location","href","JSON","stringify","resolverTests","isCf","isDot","isDoh","resolverIp-1.1.1.1","resolverIp-1.0.0.1","resolverIp-2606:4700:4700::1111","resolverIp-2606:4700:4700::1001","async","init","onclick","select","execCommand","setTimeout","getSelection","removeAllRanges","hash","json","atob","obj","resolverTestResults","keys","[object Object]","host","entries","res","fetch","ok","error","traceInfo","traceEnd","traceStart","Date","now","traceResponse","text","filter","isPresent","map","line","pair","colo","warp","resolverInfo","resolverResponse","isp","asn","getElementById","toLowerCase","remove","debugURLSection","readyState","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","byteToHex","substr","bth"],"mappings":"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","file":"help-aa686e0e9e4d122550f8.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"help-aa686e0e9e4d122550f8\"] = factory();\n\telse\n\t\troot[\"help-aa686e0e9e4d122550f8\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 54);\n","/*!\n * Platform.js <https://mths.be/platform>\n * Copyright 2014-2018 Benjamin Tan <https://bnjmnt4n.now.sh/>\n * Copyright 2011-2013 John-David Dalton <http://allyoucanleet.com/>\n * Available under MIT license <https://mths.be/mit>\n */\n;(function() {\n  'use strict';\n\n  /** Used to determine if values are of the language type `Object`. */\n  var objectTypes = {\n    'function': true,\n    'object': true\n  };\n\n  /** Used as a reference to the global object. */\n  var root = (objectTypes[typeof window] && window) || this;\n\n  /** Backup possible global object. */\n  var oldRoot = root;\n\n  /** Detect free variable `exports`. */\n  var freeExports = objectTypes[typeof exports] && exports;\n\n  /** Detect free variable `module`. */\n  var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\n  /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n  var freeGlobal = freeExports && freeModule && typeof global == 'object' && global;\n  if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n    root = freeGlobal;\n  }\n\n  /**\n   * Used as the maximum length of an array-like object.\n   * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n   * for more details.\n   */\n  var maxSafeInteger = Math.pow(2, 53) - 1;\n\n  /** Regular expression to detect Opera. */\n  var reOpera = /\\bOpera/;\n\n  /** Possible global object. */\n  var thisBinding = this;\n\n  /** Used for native method references. */\n  var objectProto = Object.prototype;\n\n  /** Used to check for own properties of an object. */\n  var hasOwnProperty = objectProto.hasOwnProperty;\n\n  /** Used to resolve the internal `[[Class]]` of values. */\n  var toString = objectProto.toString;\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * Capitalizes a string value.\n   *\n   * @private\n   * @param {string} string The string to capitalize.\n   * @returns {string} The capitalized string.\n   */\n  function capitalize(string) {\n    string = String(string);\n    return string.charAt(0).toUpperCase() + string.slice(1);\n  }\n\n  /**\n   * A utility function to clean up the OS name.\n   *\n   * @private\n   * @param {string} os The OS name to clean up.\n   * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n   * @param {string} [label] A label for the OS.\n   */\n  function cleanupOS(os, pattern, label) {\n    // Platform tokens are defined at:\n    // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n    // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n    var data = {\n      '10.0': '10',\n      '6.4':  '10 Technical Preview',\n      '6.3':  '8.1',\n      '6.2':  '8',\n      '6.1':  'Server 2008 R2 / 7',\n      '6.0':  'Server 2008 / Vista',\n      '5.2':  'Server 2003 / XP 64-bit',\n      '5.1':  'XP',\n      '5.01': '2000 SP1',\n      '5.0':  '2000',\n      '4.0':  'NT',\n      '4.90': 'ME'\n    };\n    // Detect Windows version from platform tokens.\n    if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n        (data = data[/[\\d.]+$/.exec(os)])) {\n      os = 'Windows ' + data;\n    }\n    // Correct character case and cleanup string.\n    os = String(os);\n\n    if (pattern && label) {\n      os = os.replace(RegExp(pattern, 'i'), label);\n    }\n\n    os = format(\n      os.replace(/ ce$/i, ' CE')\n        .replace(/\\bhpw/i, 'web')\n        .replace(/\\bMacintosh\\b/, 'Mac OS')\n        .replace(/_PowerPC\\b/i, ' OS')\n        .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n        .replace(/\\bMac (OS X)\\b/, '$1')\n        .replace(/\\/(\\d)/, ' $1')\n        .replace(/_/g, '.')\n        .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n        .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n        .replace(/\\b(Windows Phone) OS\\b/, '$1')\n        .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n        .split(' on ')[0]\n    );\n\n    return os;\n  }\n\n  /**\n   * An iteration utility for arrays and objects.\n   *\n   * @private\n   * @param {Array|Object} object The object to iterate over.\n   * @param {Function} callback The function called per iteration.\n   */\n  function each(object, callback) {\n    var index = -1,\n        length = object ? object.length : 0;\n\n    if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n      while (++index < length) {\n        callback(object[index], index, object);\n      }\n    } else {\n      forOwn(object, callback);\n    }\n  }\n\n  /**\n   * Trim and conditionally capitalize string values.\n   *\n   * @private\n   * @param {string} string The string to format.\n   * @returns {string} The formatted string.\n   */\n  function format(string) {\n    string = trim(string);\n    return /^(?:webOS|i(?:OS|P))/.test(string)\n      ? string\n      : capitalize(string);\n  }\n\n  /**\n   * Iterates over an object's own properties, executing the `callback` for each.\n   *\n   * @private\n   * @param {Object} object The object to iterate over.\n   * @param {Function} callback The function executed per own property.\n   */\n  function forOwn(object, callback) {\n    for (var key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        callback(object[key], key, object);\n      }\n    }\n  }\n\n  /**\n   * Gets the internal `[[Class]]` of a value.\n   *\n   * @private\n   * @param {*} value The value.\n   * @returns {string} The `[[Class]]`.\n   */\n  function getClassOf(value) {\n    return value == null\n      ? capitalize(value)\n      : toString.call(value).slice(8, -1);\n  }\n\n  /**\n   * Host objects can return type values that are different from their actual\n   * data type. The objects we are concerned with usually return non-primitive\n   * types of \"object\", \"function\", or \"unknown\".\n   *\n   * @private\n   * @param {*} object The owner of the property.\n   * @param {string} property The property to check.\n   * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n   */\n  function isHostType(object, property) {\n    var type = object != null ? typeof object[property] : 'number';\n    return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n      (type == 'object' ? !!object[property] : true);\n  }\n\n  /**\n   * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n   *\n   * @private\n   * @param {string} string The string to qualify.\n   * @returns {string} The qualified string.\n   */\n  function qualify(string) {\n    return String(string).replace(/([ -])(?!$)/g, '$1?');\n  }\n\n  /**\n   * A bare-bones `Array#reduce` like utility function.\n   *\n   * @private\n   * @param {Array} array The array to iterate over.\n   * @param {Function} callback The function called per iteration.\n   * @returns {*} The accumulated result.\n   */\n  function reduce(array, callback) {\n    var accumulator = null;\n    each(array, function(value, index) {\n      accumulator = callback(accumulator, value, index, array);\n    });\n    return accumulator;\n  }\n\n  /**\n   * Removes leading and trailing whitespace from a string.\n   *\n   * @private\n   * @param {string} string The string to trim.\n   * @returns {string} The trimmed string.\n   */\n  function trim(string) {\n    return String(string).replace(/^ +| +$/g, '');\n  }\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * Creates a new platform object.\n   *\n   * @memberOf platform\n   * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n   *  context object.\n   * @returns {Object} A platform object.\n   */\n  function parse(ua) {\n\n    /** The environment context object. */\n    var context = root;\n\n    /** Used to flag when a custom context is provided. */\n    var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n    // Juggle arguments.\n    if (isCustomContext) {\n      context = ua;\n      ua = null;\n    }\n\n    /** Browser navigator object. */\n    var nav = context.navigator || {};\n\n    /** Browser user agent string. */\n    var userAgent = nav.userAgent || '';\n\n    ua || (ua = userAgent);\n\n    /** Used to flag when `thisBinding` is the [ModuleScope]. */\n    var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n    /** Used to detect if browser is like Chrome. */\n    var likeChrome = isCustomContext\n      ? !!nav.likeChrome\n      : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n    /** Internal `[[Class]]` value shortcuts. */\n    var objectClass = 'Object',\n        airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n        enviroClass = isCustomContext ? objectClass : 'Environment',\n        javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n        phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n    /** Detect Java environments. */\n    var java = /\\bJava/.test(javaClass) && context.java;\n\n    /** Detect Rhino. */\n    var rhino = java && getClassOf(context.environment) == enviroClass;\n\n    /** A character to represent alpha. */\n    var alpha = java ? 'a' : '\\u03b1';\n\n    /** A character to represent beta. */\n    var beta = java ? 'b' : '\\u03b2';\n\n    /** Browser document object. */\n    var doc = context.document || {};\n\n    /**\n     * Detect Opera browser (Presto-based).\n     * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n     * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n     */\n    var opera = context.operamini || context.opera;\n\n    /** Opera `[[Class]]`. */\n    var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n      ? operaClass\n      : (opera = null);\n\n    /*------------------------------------------------------------------------*/\n\n    /** Temporary variable used over the script's lifetime. */\n    var data;\n\n    /** The CPU architecture. */\n    var arch = ua;\n\n    /** Platform description array. */\n    var description = [];\n\n    /** Platform alpha/beta indicator. */\n    var prerelease = null;\n\n    /** A flag to indicate that environment features should be used to resolve the platform. */\n    var useFeatures = ua == userAgent;\n\n    /** The browser/environment version. */\n    var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n    /** A flag to indicate if the OS ends with \"/ Version\" */\n    var isSpecialCasedOS;\n\n    /* Detectable layout engines (order is important). */\n    var layout = getLayout([\n      { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n      'Trident',\n      { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n      'iCab',\n      'Presto',\n      'NetFront',\n      'Tasman',\n      'KHTML',\n      'Gecko'\n    ]);\n\n    /* Detectable browser names (order is important). */\n    var name = getName([\n      'Adobe AIR',\n      'Arora',\n      'Avant Browser',\n      'Breach',\n      'Camino',\n      'Electron',\n      'Epiphany',\n      'Fennec',\n      'Flock',\n      'Galeon',\n      'GreenBrowser',\n      'iCab',\n      'Iceweasel',\n      'K-Meleon',\n      'Konqueror',\n      'Lunascape',\n      'Maxthon',\n      { 'label': 'Microsoft Edge', 'pattern': 'Edge' },\n      'Midori',\n      'Nook Browser',\n      'PaleMoon',\n      'PhantomJS',\n      'Raven',\n      'Rekonq',\n      'RockMelt',\n      { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n      'SeaMonkey',\n      { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n      'Sleipnir',\n      'SlimBrowser',\n      { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n      'Sunrise',\n      'Swiftfox',\n      'Waterfox',\n      'WebPositive',\n      'Opera Mini',\n      { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n      'Opera',\n      { 'label': 'Opera', 'pattern': 'OPR' },\n      'Chrome',\n      { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n      { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n      { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n      { 'label': 'IE', 'pattern': 'IEMobile' },\n      { 'label': 'IE', 'pattern': 'MSIE' },\n      'Safari'\n    ]);\n\n    /* Detectable products (order is important). */\n    var product = getProduct([\n      { 'label': 'BlackBerry', 'pattern': 'BB10' },\n      'BlackBerry',\n      { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n      { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n      { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n      { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n      { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n      { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n      { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n      { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n      { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n      'Google TV',\n      'Lumia',\n      'iPad',\n      'iPod',\n      'iPhone',\n      'Kindle',\n      { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n      'Nexus',\n      'Nook',\n      'PlayBook',\n      'PlayStation Vita',\n      'PlayStation',\n      'TouchPad',\n      'Transformer',\n      { 'label': 'Wii U', 'pattern': 'WiiU' },\n      'Wii',\n      'Xbox One',\n      { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n      'Xoom'\n    ]);\n\n    /* Detectable manufacturers. */\n    var manufacturer = getManufacturer({\n      'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n      'Archos': {},\n      'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n      'Asus': { 'Transformer': 1 },\n      'Barnes & Noble': { 'Nook': 1 },\n      'BlackBerry': { 'PlayBook': 1 },\n      'Google': { 'Google TV': 1, 'Nexus': 1 },\n      'HP': { 'TouchPad': 1 },\n      'HTC': {},\n      'LG': {},\n      'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n      'Motorola': { 'Xoom': 1 },\n      'Nintendo': { 'Wii U': 1,  'Wii': 1 },\n      'Nokia': { 'Lumia': 1 },\n      'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n      'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 }\n    });\n\n    /* Detectable operating systems (order is important). */\n    var os = getOS([\n      'Windows Phone',\n      'Android',\n      'CentOS',\n      { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n      'Debian',\n      'Fedora',\n      'FreeBSD',\n      'Gentoo',\n      'Haiku',\n      'Kubuntu',\n      'Linux Mint',\n      'OpenBSD',\n      'Red Hat',\n      'SuSE',\n      'Ubuntu',\n      'Xubuntu',\n      'Cygwin',\n      'Symbian OS',\n      'hpwOS',\n      'webOS ',\n      'webOS',\n      'Tablet OS',\n      'Tizen',\n      'Linux',\n      'Mac OS X',\n      'Macintosh',\n      'Mac',\n      'Windows 98;',\n      'Windows '\n    ]);\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Picks the layout engine from an array of guesses.\n     *\n     * @private\n     * @param {Array} guesses An array of guesses.\n     * @returns {null|string} The detected layout engine.\n     */\n    function getLayout(guesses) {\n      return reduce(guesses, function(result, guess) {\n        return result || RegExp('\\\\b' + (\n          guess.pattern || qualify(guess)\n        ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n      });\n    }\n\n    /**\n     * Picks the manufacturer from an array of guesses.\n     *\n     * @private\n     * @param {Array} guesses An object of guesses.\n     * @returns {null|string} The detected manufacturer.\n     */\n    function getManufacturer(guesses) {\n      return reduce(guesses, function(result, value, key) {\n        // Lookup the manufacturer by product or scan the UA for the manufacturer.\n        return result || (\n          value[product] ||\n          value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n          RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n        ) && key;\n      });\n    }\n\n    /**\n     * Picks the browser name from an array of guesses.\n     *\n     * @private\n     * @param {Array} guesses An array of guesses.\n     * @returns {null|string} The detected browser name.\n     */\n    function getName(guesses) {\n      return reduce(guesses, function(result, guess) {\n        return result || RegExp('\\\\b' + (\n          guess.pattern || qualify(guess)\n        ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n      });\n    }\n\n    /**\n     * Picks the OS name from an array of guesses.\n     *\n     * @private\n     * @param {Array} guesses An array of guesses.\n     * @returns {null|string} The detected OS name.\n     */\n    function getOS(guesses) {\n      return reduce(guesses, function(result, guess) {\n        var pattern = guess.pattern || qualify(guess);\n        if (!result && (result =\n              RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n            )) {\n          result = cleanupOS(result, pattern, guess.label || guess);\n        }\n        return result;\n      });\n    }\n\n    /**\n     * Picks the product name from an array of guesses.\n     *\n     * @private\n     * @param {Array} guesses An array of guesses.\n     * @returns {null|string} The detected product name.\n     */\n    function getProduct(guesses) {\n      return reduce(guesses, function(result, guess) {\n        var pattern = guess.pattern || qualify(guess);\n        if (!result && (result =\n              RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n              RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n              RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n            )) {\n          // Split by forward slash and append product version if needed.\n          if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n            result[0] += ' ' + result[1];\n          }\n          // Correct character case and cleanup string.\n          guess = guess.label || guess;\n          result = format(result[0]\n            .replace(RegExp(pattern, 'i'), guess)\n            .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n            .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n        }\n        return result;\n      });\n    }\n\n    /**\n     * Resolves the version using an array of UA patterns.\n     *\n     * @private\n     * @param {Array} patterns An array of UA patterns.\n     * @returns {null|string} The detected version.\n     */\n    function getVersion(patterns) {\n      return reduce(patterns, function(result, pattern) {\n        return result || (RegExp(pattern +\n          '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n      });\n    }\n\n    /**\n     * Returns `platform.description` when the platform object is coerced to a string.\n     *\n     * @name toString\n     * @memberOf platform\n     * @returns {string} Returns `platform.description` if available, else an empty string.\n     */\n    function toStringPlatform() {\n      return this.description || '';\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    // Convert layout to an array so we can add extra details.\n    layout && (layout = [layout]);\n\n    // Detect product names that contain their manufacturer's name.\n    if (manufacturer && !product) {\n      product = getProduct([manufacturer]);\n    }\n    // Clean up Google TV.\n    if ((data = /\\bGoogle TV\\b/.exec(product))) {\n      product = data[0];\n    }\n    // Detect simulators.\n    if (/\\bSimulator\\b/i.test(ua)) {\n      product = (product ? product + ' ' : '') + 'Simulator';\n    }\n    // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n    if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n      description.push('running in Turbo/Uncompressed mode');\n    }\n    // Detect IE Mobile 11.\n    if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n      data = parse(ua.replace(/like iPhone OS/, ''));\n      manufacturer = data.manufacturer;\n      product = data.product;\n    }\n    // Detect iOS.\n    else if (/^iP/.test(product)) {\n      name || (name = 'Safari');\n      os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n        ? ' ' + data[1].replace(/_/g, '.')\n        : '');\n    }\n    // Detect Kubuntu.\n    else if (name == 'Konqueror' && !/buntu/i.test(os)) {\n      os = 'Kubuntu';\n    }\n    // Detect Android browsers.\n    else if ((manufacturer && manufacturer != 'Google' &&\n        ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n        (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n      name = 'Android Browser';\n      os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n    }\n    // Detect Silk desktop/accelerated modes.\n    else if (name == 'Silk') {\n      if (!/\\bMobi/i.test(ua)) {\n        os = 'Android';\n        description.unshift('desktop mode');\n      }\n      if (/Accelerated *= *true/i.test(ua)) {\n        description.unshift('accelerated');\n      }\n    }\n    // Detect PaleMoon identifying as Firefox.\n    else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n      description.push('identifying as Firefox ' + data[1]);\n    }\n    // Detect Firefox OS and products running Firefox.\n    else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n      os || (os = 'Firefox OS');\n      product || (product = data[1]);\n    }\n    // Detect false positives for Firefox/Safari.\n    else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n      // Escape the `/` for Firefox 1.\n      if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n        // Clear name of false positives.\n        name = null;\n      }\n      // Reassign a generic name.\n      if ((data = product || manufacturer || os) &&\n          (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n        name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n      }\n    }\n    // Add Chrome version to description for Electron.\n    else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n      description.push('Chromium ' + data);\n    }\n    // Detect non-Opera (Presto-based) versions (order is important).\n    if (!version) {\n      version = getVersion([\n        '(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$))',\n        'Version',\n        qualify(name),\n        '(?:Firefox|Minefield|NetFront)'\n      ]);\n    }\n    // Detect stubborn layout engines.\n    if ((data =\n          layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n          /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n          /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n          !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n          layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n        )) {\n      layout = [data];\n    }\n    // Detect Windows Phone 7 desktop mode.\n    if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n      name += ' Mobile';\n      os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n      description.unshift('desktop mode');\n    }\n    // Detect Windows Phone 8.x desktop mode.\n    else if (/\\bWPDesktop\\b/i.test(ua)) {\n      name = 'IE Mobile';\n      os = 'Windows Phone 8.x';\n      description.unshift('desktop mode');\n      version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n    }\n    // Detect IE 11 identifying as other browsers.\n    else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n      if (name) {\n        description.push('identifying as ' + name + (version ? ' ' + version : ''));\n      }\n      name = 'IE';\n      version = data[1];\n    }\n    // Leverage environment features.\n    if (useFeatures) {\n      // Detect server-side environments.\n      // Rhino has a global function while others have a global object.\n      if (isHostType(context, 'global')) {\n        if (java) {\n          data = java.lang.System;\n          arch = data.getProperty('os.arch');\n          os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n        }\n        if (rhino) {\n          try {\n            version = context.require('ringo/engine').version.join('.');\n            name = 'RingoJS';\n          } catch(e) {\n            if ((data = context.system) && data.global.system == context.system) {\n              name = 'Narwhal';\n              os || (os = data[0].os || null);\n            }\n          }\n          if (!name) {\n            name = 'Rhino';\n          }\n        }\n        else if (\n          typeof context.process == 'object' && !context.process.browser &&\n          (data = context.process)\n        ) {\n          if (typeof data.versions == 'object') {\n            if (typeof data.versions.electron == 'string') {\n              description.push('Node ' + data.versions.node);\n              name = 'Electron';\n              version = data.versions.electron;\n            } else if (typeof data.versions.nw == 'string') {\n              description.push('Chromium ' + version, 'Node ' + data.versions.node);\n              name = 'NW.js';\n              version = data.versions.nw;\n            }\n          }\n          if (!name) {\n            name = 'Node.js';\n            arch = data.arch;\n            os = data.platform;\n            version = /[\\d.]+/.exec(data.version);\n            version = version ? version[0] : null;\n          }\n        }\n      }\n      // Detect Adobe AIR.\n      else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n        name = 'Adobe AIR';\n        os = data.flash.system.Capabilities.os;\n      }\n      // Detect PhantomJS.\n      else if (getClassOf((data = context.phantom)) == phantomClass) {\n        name = 'PhantomJS';\n        version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n      }\n      // Detect IE compatibility modes.\n      else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n        // We're in compatibility mode when the Trident version + 4 doesn't\n        // equal the document mode.\n        version = [version, doc.documentMode];\n        if ((data = +data[1] + 4) != version[1]) {\n          description.push('IE ' + version[1] + ' mode');\n          layout && (layout[1] = '');\n          version[1] = data;\n        }\n        version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n      }\n      // Detect IE 11 masking as other browsers.\n      else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n        description.push('masking as ' + name + ' ' + version);\n        name = 'IE';\n        version = '11.0';\n        layout = ['Trident'];\n        os = 'Windows';\n      }\n      os = os && format(os);\n    }\n    // Detect prerelease phases.\n    if (version && (data =\n          /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n          /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n          /\\bMinefield\\b/i.test(ua) && 'a'\n        )) {\n      prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n      version = version.replace(RegExp(data + '\\\\+?$'), '') +\n        (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n    }\n    // Detect Firefox Mobile.\n    if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS)\\b/.test(os)) {\n      name = 'Firefox Mobile';\n    }\n    // Obscure Maxthon's unreliable version.\n    else if (name == 'Maxthon' && version) {\n      version = version.replace(/\\.[\\d.]+/, '.x');\n    }\n    // Detect Xbox 360 and Xbox One.\n    else if (/\\bXbox\\b/i.test(product)) {\n      if (product == 'Xbox 360') {\n        os = null;\n      }\n      if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n        description.unshift('mobile mode');\n      }\n    }\n    // Add mobile postfix.\n    else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n        (os == 'Windows CE' || /Mobi/i.test(ua))) {\n      name += ' Mobile';\n    }\n    // Detect IE platform preview.\n    else if (name == 'IE' && useFeatures) {\n      try {\n        if (context.external === null) {\n          description.unshift('platform preview');\n        }\n      } catch(e) {\n        description.unshift('embedded');\n      }\n    }\n    // Detect BlackBerry OS version.\n    // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n    else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n          (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n          version\n        )) {\n      data = [data, /BB10/.test(ua)];\n      os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n      version = null;\n    }\n    // Detect Opera identifying/masking itself as another browser.\n    // http://www.opera.com/support/kb/view/843/\n    else if (this != forOwn && product != 'Wii' && (\n          (useFeatures && opera) ||\n          (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n          (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n          (name == 'IE' && (\n            (os && !/^Win/.test(os) && version > 5.5) ||\n            /\\bWindows XP\\b/.test(os) && version > 8 ||\n            version == 8 && !/\\bTrident\\b/.test(ua)\n          ))\n        ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n      // When \"identifying\", the UA contains both Opera and the other browser's name.\n      data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n      if (reOpera.test(name)) {\n        if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n          os = null;\n        }\n        data = 'identify' + data;\n      }\n      // When \"masking\", the UA contains only the other browser's name.\n      else {\n        data = 'mask' + data;\n        if (operaClass) {\n          name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n        } else {\n          name = 'Opera';\n        }\n        if (/\\bIE\\b/.test(data)) {\n          os = null;\n        }\n        if (!useFeatures) {\n          version = null;\n        }\n      }\n      layout = ['Presto'];\n      description.push(data);\n    }\n    // Detect WebKit Nightly and approximate Chrome/Safari versions.\n    if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n      // Correct build number for numeric comparison.\n      // (e.g. \"532.5\" becomes \"532.05\")\n      data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n      // Nightly builds are postfixed with a \"+\".\n      if (name == 'Safari' && data[1].slice(-1) == '+') {\n        name = 'WebKit Nightly';\n        prerelease = 'alpha';\n        version = data[1].slice(0, -1);\n      }\n      // Clear incorrect browser versions.\n      else if (version == data[1] ||\n          version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n        version = null;\n      }\n      // Use the full Chrome version when available.\n      data[1] = (/\\bChrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n      // Detect Blink layout engine.\n      if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n        layout = ['Blink'];\n      }\n      // Detect JavaScriptCore.\n      // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n      if (!useFeatures || (!likeChrome && !data[1])) {\n        layout && (layout[1] = 'like Safari');\n        data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : '8');\n      } else {\n        layout && (layout[1] = 'like Chrome');\n        data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n      }\n      // Add the postfix of \".x\" or \"+\" for approximate versions.\n      layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n      // Obscure version for some Safari 1-2 releases.\n      if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n        version = data;\n      }\n    }\n    // Detect Opera desktop modes.\n    if (name == 'Opera' &&  (data = /\\bzbov|zvav$/.exec(os))) {\n      name += ' ';\n      description.unshift('desktop mode');\n      if (data == 'zvav') {\n        name += 'Mini';\n        version = null;\n      } else {\n        name += 'Mobile';\n      }\n      os = os.replace(RegExp(' *' + data + '$'), '');\n    }\n    // Detect Chrome desktop mode.\n    else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n      description.unshift('desktop mode');\n      name = 'Chrome Mobile';\n      version = null;\n\n      if (/\\bOS X\\b/.test(os)) {\n        manufacturer = 'Apple';\n        os = 'iOS 4.3+';\n      } else {\n        os = null;\n      }\n    }\n    // Strip incorrect OS versions.\n    if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n        ua.indexOf('/' + data + '-') > -1) {\n      os = trim(os.replace(data, ''));\n    }\n    // Add layout engine.\n    if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n        /Browser|Lunascape|Maxthon/.test(name) ||\n        name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n        /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|Web)/.test(name) && layout[1])) {\n      // Don't add layout details to description if they are falsey.\n      (data = layout[layout.length - 1]) && description.push(data);\n    }\n    // Combine contextual information.\n    if (description.length) {\n      description = ['(' + description.join('; ') + ')'];\n    }\n    // Append manufacturer to description.\n    if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n      description.push('on ' + manufacturer);\n    }\n    // Append product to description.\n    if (product) {\n      description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n    }\n    // Parse the OS into an object.\n    if (os) {\n      data = / ([\\d.+]+)$/.exec(os);\n      isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n      os = {\n        'architecture': 32,\n        'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n        'version': data ? data[1] : null,\n        'toString': function() {\n          var version = this.version;\n          return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n        }\n      };\n    }\n    // Add browser/OS architecture.\n    if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n      if (os) {\n        os.architecture = 64;\n        os.family = os.family.replace(RegExp(' *' + data), '');\n      }\n      if (\n          name && (/\\bWOW64\\b/i.test(ua) ||\n          (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n      ) {\n        description.unshift('32-bit');\n      }\n    }\n    // Chrome 39 and above on OS X is always 64-bit.\n    else if (\n        os && /^OS X/.test(os.family) &&\n        name == 'Chrome' && parseFloat(version) >= 39\n    ) {\n      os.architecture = 64;\n    }\n\n    ua || (ua = null);\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * The platform object.\n     *\n     * @name platform\n     * @type Object\n     */\n    var platform = {};\n\n    /**\n     * The platform description.\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.description = ua;\n\n    /**\n     * The name of the browser's layout engine.\n     *\n     * The list of common layout engines include:\n     * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.layout = layout && layout[0];\n\n    /**\n     * The name of the product's manufacturer.\n     *\n     * The list of manufacturers include:\n     * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n     * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n     * \"Nokia\", \"Samsung\" and \"Sony\"\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.manufacturer = manufacturer;\n\n    /**\n     * The name of the browser/environment.\n     *\n     * The list of common browser names include:\n     * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n     * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n     * \"Opera Mini\" and \"Opera\"\n     *\n     * Mobile versions of some browsers have \"Mobile\" appended to their name:\n     * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.name = name;\n\n    /**\n     * The alpha/beta release indicator.\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.prerelease = prerelease;\n\n    /**\n     * The name of the product hosting the browser.\n     *\n     * The list of common products include:\n     *\n     * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n     * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.product = product;\n\n    /**\n     * The browser's user agent string.\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.ua = ua;\n\n    /**\n     * The browser/environment version.\n     *\n     * @memberOf platform\n     * @type string|null\n     */\n    platform.version = name && version;\n\n    /**\n     * The name of the operating system.\n     *\n     * @memberOf platform\n     * @type Object\n     */\n    platform.os = os || {\n\n      /**\n       * The CPU architecture the OS is built for.\n       *\n       * @memberOf platform.os\n       * @type number|null\n       */\n      'architecture': null,\n\n      /**\n       * The family of the OS.\n       *\n       * Common values include:\n       * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n       * \"Windows XP\", \"OS X\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\", \"SuSE\",\n       * \"Android\", \"iOS\" and \"Windows Phone\"\n       *\n       * @memberOf platform.os\n       * @type string|null\n       */\n      'family': null,\n\n      /**\n       * The version of the OS.\n       *\n       * @memberOf platform.os\n       * @type string|null\n       */\n      'version': null,\n\n      /**\n       * Returns the OS string.\n       *\n       * @memberOf platform.os\n       * @returns {string} The OS string.\n       */\n      'toString': function() { return 'null'; }\n    };\n\n    platform.parse = parse;\n    platform.toString = toStringPlatform;\n\n    if (platform.version) {\n      description.unshift(version);\n    }\n    if (platform.name) {\n      description.unshift(name);\n    }\n    if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n      description.push(product ? '(' + os + ')' : 'on ' + os);\n    }\n    if (description.length) {\n      platform.description = description.join(' ');\n    }\n    return platform;\n  }\n\n  /*--------------------------------------------------------------------------*/\n\n  // Export platform.\n  var platform = parse();\n\n  // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n    // Expose platform on the global object to prevent errors when platform is\n    // loaded by a script tag in the presence of an AMD loader.\n    // See http://requirejs.org/docs/errors.html#mismatch for more details.\n    root.platform = platform;\n\n    // Define as an anonymous module so platform can be aliased through path mapping.\n    define(function() {\n      return platform;\n    });\n  }\n  // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n  else if (freeExports && freeModule) {\n    // Export for CommonJS support.\n    forOwn(platform, function(value, key) {\n      freeExports[key] = value;\n    });\n  }\n  else {\n    // Export to the global object.\n    root.platform = platform;\n  }\n}.call(this));\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import platform from 'platform'\n\ninterface DeviceInfo {\n  id: string\n  label: string\n}\n\nconst deviceInfo: { [index: string]: DeviceInfo } = {\n  'Windows': {\n    label: 'PC',\n    id: 'windows'\n  },\n  'OS X': {\n    label: 'Mac',\n    id: 'mac-os'\n  },\n  'Linux': {\n    label: 'Linux',\n    id: 'linux'\n  },\n  'iOS': {\n    label: 'iOS',\n    id: 'iphone'\n  },\n  'Android': {\n    label: 'Android',\n    id: 'android'\n  },\n  'Router': {\n    label: 'a router',\n    id: 'router'\n  }\n}\n\nfunction ref(ref: string): HTMLElement {\n  return <HTMLElement>document.querySelector(`[data-ref=\"${ref}\"]`)!\n}\n\nexport default function initInstructionPicker () {\n  const $el = {\n    instructionPicker: ref('instructionPicker'),\n    instructionChoices: Array.prototype.slice.call(ref('instructionPicker').querySelectorAll('.choice')),\n    deviceLabel: ref('deviceLabel'),\n    setupSection: ref('setup')\n  }\n\n  function chooseInstructions (platformId: string) {\n    $el.instructionChoices.forEach((choice: HTMLElement) => {\n      choice.classList.toggle('selected', choice.dataset.platform === platformId)\n    })\n\n    let device: DeviceInfo\n\n    for (let key in deviceInfo) {\n      const entry = deviceInfo[key]\n      if (platformId === entry.id) {\n        device = deviceInfo[key]\n        break\n      }\n    }\n\n    if (!device!) return\n\n    $el.setupSection.dataset.platform = platformId\n    $el.deviceLabel.textContent = $el.deviceLabel.dataset.label!.replace('{{device}}', device!.label)\n  }\n\n  Object.assign(window, {chooseInstructions})\n\n  $el.instructionChoices.forEach((choice: HTMLElement) => {\n    choice.addEventListener('click', chooseInstructions.bind(null, choice.dataset.platform))\n  })\n\n  let device: DeviceInfo = deviceInfo['OS X']\n\n  if (platform.os && platform.os.family && deviceInfo.hasOwnProperty(platform.os.family)) {\n    device = deviceInfo[platform.os.family]\n  }\n  chooseInstructions(device.id)\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n  var i = buf && offset || 0;\n\n  if (typeof(options) == 'string') {\n    buf = options === 'binary' ? new Array(16) : null;\n    options = null;\n  }\n  options = options || {};\n\n  var rnds = options.random || (options.rng || rng)();\n\n  // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n  rnds[6] = (rnds[6] & 0x0f) | 0x40;\n  rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n  // Copy bytes to buffer, if provided\n  if (buf) {\n    for (var ii = 0; ii < 16; ++ii) {\n      buf[i + ii] = rnds[ii];\n    }\n  }\n\n  return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","import '../styles/base.styl'\n\nimport initInstructionPicker from './instruction-picker'\n\nimport uuidv4 from 'uuid/v4'\n\nconst uuid = uuidv4();\n\nconsole.log(window.btoa('Join us and help build a better Internet https://cloudflare.com/careers?utm=1.1.1.1-DNS'))\n\ninterface ShareData {\n  [key: string]: string\n  myIPAddress: string\n  datacenterConnectionSpeed: string\n  datacenterLocation: string\n  dnsResolverIP: string\n  supportsDNSSEC: string\n  supportsIPv6: string\n}\n\nconst shareData = {} as ShareData\n\ninterface TraceInfo {\n  [index: string]: string | undefined\n  fl: string\n  h: string\n  ip: string\n  ts: string\n  visit_scheme: string\n  uag: string\n  colo: string\n  spdy: string\n  http: string\n  loc: string\n  warp?: 'off' | 'on' | 'plus'\n}\n\ninterface ResolverInfo {\n  ip: string\n  ip_version: number\n  protocol: string\n  dnssec: boolean\n  edns: number\n  client_subnet: number\n  qname_minimization: boolean\n  isp: {\n    asn: number\n    name: string\n  }\n}\n\nfunction getRefElement (ref: string) {\n  return <HTMLElement> document.querySelector(`[data-ref=\"${CSS.escape(ref)}\"]`)!\n}\n\nfunction setRef (ref: string, value: any) {\n  const element = getRefElement(ref)\n\n  switch (typeof value) {\n    case 'undefined':\n      element.textContent = '❌ Unable to check...'\n      break\n    case 'boolean':\n      element.textContent = value ? 'Yes' : 'No'\n      break\n    default:\n      element.textContent = value.toString()\n  }\n  element.classList.add('resolved')\n  writeToShareData(ref, value)\n}\n\nfunction writeToShareData(ref: string, value: any) {\n  switch (typeof value) {\n    case 'boolean':\n      shareData[ref] = value ? 'Yes' : 'No'\n      break\n    default:\n      shareData[ref] = value.toString()\n  }\n  const element = getRefElement('shareUrl')\n  element.textContent = window.location.href + '#' + btoa(JSON.stringify(shareData))\n}\n\nfunction readFromShareData() {\n  const json = atob(window.location.hash.replace('#', ''))\n  const obj = JSON.parse(json)\n\n  for (let key in obj) {\n    setRef(key, obj[key])\n  }\n}\n\nconst resolverTests = {\n  isCf: `${uuid}.is-cf.help.every1dns.net`,\n  isDot: `${uuid}.is-dot.help.every1dns.net`,\n  isDoh: `${uuid}.is-doh.help.every1dns.net`,\n  'resolverIp-1.1.1.1': '1.1.1.1',\n  'resolverIp-1.0.0.1': '1.0.0.1',\n  'resolverIp-2606:4700:4700::1111': 'ipv6b.cloudflare-dns.com',\n  'resolverIp-2606:4700:4700::1001': 'ipv6a.cloudflare-dns.com',\n}\n\nasync function init () {\n  initInstructionPicker()\n\n  // click to copy url\n  getRefElement('shareUrl').onclick = function () {\n    (this as HTMLInputElement).select()\n    document.execCommand('copy')\n    setTimeout(() => window.getSelection().removeAllRanges(), 100) // Flash selection\n\n    getRefElement('shareUrlMessage').textContent = 'Copied URL to clipboard'\n  }\n\n  if (window.location.hash.length > 1) {\n    readFromShareData()\n    return\n  }\n\n  const resolverTestResults: { [K in keyof typeof resolverTests]: boolean } = Object\n    .keys(resolverTests)\n    .reduce((resolverTestResults, key) => Object.assign(resolverTestResults, { [key]: false }), {} as any)\n\n  for (const [ref, host] of Object.entries(resolverTests)) {\n    try {\n      const res = await fetch(`https://${host}/cdn-cgi/trace`)\n      resolverTestResults[ref as keyof typeof resolverTests] = res.ok\n      setRef(ref, res.ok)\n    } catch (error) {\n      resolverTestResults[ref as keyof typeof resolverTests] = false\n      setRef(ref, false)\n    }\n  }\n\n  const traceInfo = {} as TraceInfo\n  let traceEnd: number\n  const traceStart = Date.now()\n\n  try {\n    const traceResponse = await fetch('/cdn-cgi/trace')\n    traceEnd = Date.now() - traceStart\n    const traceContent = await traceResponse.text()\n\n    traceContent\n      .split('\\n')\n      .filter(isPresent => isPresent)\n      .map(line => line.split('='))\n      .forEach(pair => traceInfo[pair[0]] = pair[1])\n  } catch (error) {\n    traceEnd = Date.now() - traceStart\n    console.log('Trace error:', error)\n  }\n\n  setRef('datacenterLocation', traceInfo.colo)\n  setRef(\n    'isWarp',\n    (traceInfo.warp === 'on' || traceInfo.warp === 'plus') &&\n    !(resolverTestResults.isDoh || resolverTestResults.isDot)\n  )\n\n  let resolverInfo = {} as ResolverInfo\n\n  try {\n    const resolverResponse = await fetch(`https://${uuid}.map.help.every1dns.net`)\n    resolverInfo = await resolverResponse.json()\n  } catch (error) {\n    console.log('Resolver error:', error)\n  }\n\n  setRef('ispName', resolverInfo.isp.name)\n  setRef('ispAsn', resolverInfo.isp.asn)\n\n  const setupSection = <HTMLElement>document.getElementById('setup-instructions')!\n\n  if (resolverInfo.isp.name.toLowerCase() !== 'cloudflare') {\n    setupSection.classList.remove('help-initial-hidden')\n  }\n\n  // Show share URL\n  const debugURLSection = <HTMLElement>document.querySelector('.debug-url-section')!\n  if (debugURLSection) {\n    debugURLSection.classList.remove('hidden')\n  }\n}\n\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', init)\n} else {\n  init()\n}\n","// Unique ID creation requires a high quality random # generator.  In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API.  We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n  module.exports = function whatwgRNG() {\n    getRandomValues(rnds8);\n    return rnds8;\n  };\n} else {\n  // Math.random()-based (RNG)\n  //\n  // If all else fails, use Math.random().  It's fast, but is of unspecified\n  // quality.\n  var rnds = new Array(16);\n\n  module.exports = function mathRNG() {\n    for (var i = 0, r; i < 16; i++) {\n      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n    }\n\n    return rnds;\n  };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n  byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex;\n  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n  return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n"],"sourceRoot":""}