{"version":3,"file":"js/606-3bcf127f26c498c63835.js","mappings":"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","sources":["webpack://citymessenger-web/./node_modules/pusher-js/dist/web/pusher.js"],"sourcesContent":["/*!\n * Pusher JavaScript Library v5.0.3\n * https://pusher.com/\n *\n * Copyright 2017, Pusher\n * Released under the MIT licence.\n */\n\n(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[\"Pusher\"] = factory();\n\telse\n\t\troot[\"Pusher\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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 = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (true) {\n // Node.js.\n crypto = __webpack_require__(3);\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})( true && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n(function(root, f) {\n 'use strict';\n if ( true && module.exports) module.exports = f();\n else if (root.nacl) root.nacl.util = f();\n else {\n root.nacl = {};\n root.nacl.util = f();\n }\n}(this, function() {\n 'use strict';\n\n var util = {};\n\n function validateBase64(s) {\n if (!(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(s))) {\n throw new TypeError('invalid encoding');\n }\n }\n\n util.decodeUTF8 = function(s) {\n if (typeof s !== 'string') throw new TypeError('expected string');\n var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n util.encodeUTF8 = function(arr) {\n var i, s = [];\n for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));\n return decodeURIComponent(escape(s.join('')));\n };\n\n if (typeof atob === 'undefined') {\n // Node.js\n\n if (typeof Buffer.from !== 'undefined') {\n // Node v6 and later\n util.encodeBase64 = function (arr) { // v6 and later\n return Buffer.from(arr).toString('base64');\n };\n\n util.decodeBase64 = function (s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));\n };\n\n } else {\n // Node earlier than v6\n util.encodeBase64 = function (arr) { // v6 and later\n return (new Buffer(arr)).toString('base64');\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));\n };\n }\n\n } else {\n // Browsers\n\n util.encodeBase64 = function(arr) {\n var i, s = [], len = arr.length;\n for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));\n return btoa(s.join(''));\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n var i, d = atob(s), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n }\n\n return util;\n\n}));\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// required so we don't have to do require('pusher').default etc.\nmodule.exports = __webpack_require__(4).default;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/script_receiver_factory.ts\nvar ScriptReceiverFactory = (function () {\n function ScriptReceiverFactory(prefix, name) {\n this.lastId = 0;\n this.prefix = prefix;\n this.name = name;\n }\n ScriptReceiverFactory.prototype.create = function (callback) {\n this.lastId++;\n var number = this.lastId;\n var id = this.prefix + number;\n var name = this.name + \"[\" + number + \"]\";\n var called = false;\n var callbackWrapper = function () {\n if (!called) {\n callback.apply(null, arguments);\n called = true;\n }\n };\n this[number] = callbackWrapper;\n return { number: number, id: id, name: name, callback: callbackWrapper };\n };\n ScriptReceiverFactory.prototype.remove = function (receiver) {\n delete this[receiver.number];\n };\n return ScriptReceiverFactory;\n}());\n\nvar ScriptReceivers = new ScriptReceiverFactory(\"_pusher_script_\", \"Pusher.ScriptReceivers\");\n\n// CONCATENATED MODULE: ./src/core/defaults.ts\nvar Defaults = {\n VERSION: \"5.0.3\",\n PROTOCOL: 7,\n host: 'ws.pusherapp.com',\n ws_port: 80,\n wss_port: 443,\n ws_path: '',\n sockjs_host: 'sockjs.pusher.com',\n sockjs_http_port: 80,\n sockjs_https_port: 443,\n sockjs_path: '/pusher',\n stats_host: 'stats.pusher.com',\n channel_auth_endpoint: '/pusher/auth',\n channel_auth_transport: 'ajax',\n activity_timeout: 120000,\n pong_timeout: 30000,\n unavailable_timeout: 10000,\n cdn_http: \"http://js.pusher.com\",\n cdn_https: \"https://js.pusher.com\",\n dependency_suffix: \"\"\n};\n/* harmony default export */ var defaults = (Defaults);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/dependency_loader.ts\n\n\nvar dependency_loader_DependencyLoader = (function () {\n function DependencyLoader(options) {\n this.options = options;\n this.receivers = options.receivers || ScriptReceivers;\n this.loading = {};\n }\n DependencyLoader.prototype.load = function (name, options, callback) {\n var self = this;\n if (self.loading[name] && self.loading[name].length > 0) {\n self.loading[name].push(callback);\n }\n else {\n self.loading[name] = [callback];\n var request = runtime.createScriptRequest(self.getPath(name, options));\n var receiver = self.receivers.create(function (error) {\n self.receivers.remove(receiver);\n if (self.loading[name]) {\n var callbacks = self.loading[name];\n delete self.loading[name];\n var successCallback = function (wasSuccessful) {\n if (!wasSuccessful) {\n request.cleanup();\n }\n };\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](error, successCallback);\n }\n }\n });\n request.send(receiver);\n }\n };\n DependencyLoader.prototype.getRoot = function (options) {\n var cdn;\n var protocol = runtime.getDocument().location.protocol;\n if ((options && options.useTLS) || protocol === \"https:\") {\n cdn = this.options.cdn_https;\n }\n else {\n cdn = this.options.cdn_http;\n }\n return cdn.replace(/\\/*$/, \"\") + \"/\" + this.options.version;\n };\n DependencyLoader.prototype.getPath = function (name, options) {\n return this.getRoot(options) + '/' + name + this.options.suffix + '.js';\n };\n ;\n return DependencyLoader;\n}());\n/* harmony default export */ var dependency_loader = (dependency_loader_DependencyLoader);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/dependencies.ts\n\n\n\nvar DependenciesReceivers = new ScriptReceiverFactory(\"_pusher_dependencies\", \"Pusher.DependenciesReceivers\");\nvar Dependencies = new dependency_loader({\n cdn_http: defaults.cdn_http,\n cdn_https: defaults.cdn_https,\n version: defaults.VERSION,\n suffix: defaults.dependency_suffix,\n receivers: DependenciesReceivers\n});\n\n// CONCATENATED MODULE: ./src/core/base64.ts\nfunction encode(s) {\n return btoa(utob(s));\n}\nvar fromCharCode = String.fromCharCode;\nvar b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nvar b64tab = {};\nfor (var base64_i = 0, l = b64chars.length; base64_i < l; base64_i++) {\n b64tab[b64chars.charAt(base64_i)] = base64_i;\n}\nvar cb_utob = function (c) {\n var cc = c.charCodeAt(0);\n return cc < 0x80\n ? c\n : cc < 0x800\n ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))\n : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +\n fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +\n fromCharCode(0x80 | (cc & 0x3f));\n};\nvar utob = function (u) {\n return u.replace(/[^\\x00-\\x7F]/g, cb_utob);\n};\nvar cb_encode = function (ccc) {\n var padlen = [0, 2, 1][ccc.length % 3];\n var ord = (ccc.charCodeAt(0) << 16) |\n ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |\n (ccc.length > 2 ? ccc.charCodeAt(2) : 0);\n var chars = [\n b64chars.charAt(ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n ];\n return chars.join('');\n};\nvar btoa = window.btoa ||\n function (b) {\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n\n// CONCATENATED MODULE: ./src/core/utils/timers/abstract_timer.ts\nvar Timer = (function () {\n function Timer(set, clear, delay, callback) {\n var _this = this;\n this.clear = clear;\n this.timer = set(function () {\n if (_this.timer) {\n _this.timer = callback(_this.timer);\n }\n }, delay);\n }\n Timer.prototype.isRunning = function () {\n return this.timer !== null;\n };\n Timer.prototype.ensureAborted = function () {\n if (this.timer) {\n this.clear(this.timer);\n this.timer = null;\n }\n };\n return Timer;\n}());\n/* harmony default export */ var abstract_timer = (Timer);\n\n// CONCATENATED MODULE: ./src/core/utils/timers/index.ts\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nfunction timers_clearTimeout(timer) {\n window.clearTimeout(timer);\n}\nfunction timers_clearInterval(timer) {\n window.clearInterval(timer);\n}\nvar OneOffTimer = (function (_super) {\n __extends(OneOffTimer, _super);\n function OneOffTimer(delay, callback) {\n return _super.call(this, setTimeout, timers_clearTimeout, delay, function (timer) {\n callback();\n return null;\n }) || this;\n }\n return OneOffTimer;\n}(abstract_timer));\n\nvar PeriodicTimer = (function (_super) {\n __extends(PeriodicTimer, _super);\n function PeriodicTimer(delay, callback) {\n return _super.call(this, setInterval, timers_clearInterval, delay, function (timer) {\n callback();\n return timer;\n }) || this;\n }\n return PeriodicTimer;\n}(abstract_timer));\n\n\n// CONCATENATED MODULE: ./src/core/util.ts\n\nvar Util = {\n now: function () {\n if (Date.now) {\n return Date.now();\n }\n else {\n return new Date().valueOf();\n }\n },\n defer: function (callback) {\n return new OneOffTimer(0, callback);\n },\n method: function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var boundArguments = Array.prototype.slice.call(arguments, 1);\n return function (object) {\n return object[name].apply(object, boundArguments.concat(arguments));\n };\n }\n};\n/* harmony default export */ var util = (Util);\n\n// CONCATENATED MODULE: ./src/core/utils/collections.ts\n\n\nfunction extend(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < sources.length; i++) {\n var extensions = sources[i];\n for (var property in extensions) {\n if (extensions[property] && extensions[property].constructor &&\n extensions[property].constructor === Object) {\n target[property] = extend(target[property] || {}, extensions[property]);\n }\n else {\n target[property] = extensions[property];\n }\n }\n }\n return target;\n}\nfunction stringify() {\n var m = [\"Pusher\"];\n for (var i = 0; i < arguments.length; i++) {\n if (typeof arguments[i] === \"string\") {\n m.push(arguments[i]);\n }\n else {\n m.push(safeJSONStringify(arguments[i]));\n }\n }\n return m.join(\" : \");\n}\nfunction arrayIndexOf(array, item) {\n var nativeIndexOf = Array.prototype.indexOf;\n if (array === null) {\n return -1;\n }\n if (nativeIndexOf && array.indexOf === nativeIndexOf) {\n return array.indexOf(item);\n }\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n}\nfunction objectApply(object, f) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n f(object[key], key, object);\n }\n }\n}\nfunction keys(object) {\n var keys = [];\n objectApply(object, function (_, key) {\n keys.push(key);\n });\n return keys;\n}\nfunction values(object) {\n var values = [];\n objectApply(object, function (value) {\n values.push(value);\n });\n return values;\n}\nfunction apply(array, f, context) {\n for (var i = 0; i < array.length; i++) {\n f.call(context || window, array[i], i, array);\n }\n}\nfunction map(array, f) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n result.push(f(array[i], i, array, result));\n }\n return result;\n}\nfunction mapObject(object, f) {\n var result = {};\n objectApply(object, function (value, key) {\n result[key] = f(value);\n });\n return result;\n}\nfunction filter(array, test) {\n test = test || function (value) { return !!value; };\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array, result)) {\n result.push(array[i]);\n }\n }\n return result;\n}\nfunction filterObject(object, test) {\n var result = {};\n objectApply(object, function (value, key) {\n if ((test && test(value, key, object, result)) || Boolean(value)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction flatten(object) {\n var result = [];\n objectApply(object, function (value, key) {\n result.push([key, value]);\n });\n return result;\n}\nfunction any(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array)) {\n return true;\n }\n }\n return false;\n}\nfunction collections_all(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (!test(array[i], i, array)) {\n return false;\n }\n }\n return true;\n}\nfunction encodeParamsObject(data) {\n return mapObject(data, function (value) {\n if (typeof value === \"object\") {\n value = safeJSONStringify(value);\n }\n return encodeURIComponent(encode(value.toString()));\n });\n}\nfunction buildQueryString(data) {\n var params = filterObject(data, function (value) {\n return value !== undefined;\n });\n var query = map(flatten(encodeParamsObject(params)), util.method(\"join\", \"=\")).join(\"&\");\n return query;\n}\nfunction decycleObject(object) {\n var objects = [], paths = [];\n return (function derez(value, path) {\n var i, name, nu;\n switch (typeof value) {\n case 'object':\n if (!value) {\n return null;\n }\n for (i = 0; i < objects.length; i += 1) {\n if (objects[i] === value) {\n return { $ref: paths[i] };\n }\n }\n objects.push(value);\n paths.push(path);\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n nu = [];\n for (i = 0; i < value.length; i += 1) {\n nu[i] = derez(value[i], path + '[' + i + ']');\n }\n }\n else {\n nu = {};\n for (name in value) {\n if (Object.prototype.hasOwnProperty.call(value, name)) {\n nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']');\n }\n }\n }\n return nu;\n case 'number':\n case 'string':\n case 'boolean':\n return value;\n }\n }(object, '$'));\n}\nfunction safeJSONStringify(source) {\n try {\n return JSON.stringify(source);\n }\n catch (e) {\n return JSON.stringify(decycleObject(source));\n }\n}\n\n// CONCATENATED MODULE: ./src/core/logger.ts\n\n\nvar logger_Logger = (function () {\n function Logger() {\n this.globalLog = function (message) {\n if (window.console && window.console.log) {\n window.console.log(message);\n }\n };\n }\n Logger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLog, args);\n };\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLogWarn, args);\n };\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLogError, args);\n };\n Logger.prototype.globalLogWarn = function (message) {\n if (window.console && window.console.warn) {\n window.console.warn(message);\n }\n else {\n this.globalLog(message);\n }\n };\n Logger.prototype.globalLogError = function (message) {\n if (window.console && window.console.error) {\n window.console.error(message);\n }\n else {\n this.globalLogWarn(message);\n }\n };\n Logger.prototype.log = function (defaultLoggingFunction) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var message = stringify.apply(this, arguments);\n if (core_pusher.log) {\n core_pusher.log(message);\n }\n else if (core_pusher.logToConsole) {\n var log = defaultLoggingFunction.bind(this);\n log(message);\n }\n };\n return Logger;\n}());\n/* harmony default export */ var logger = (new logger_Logger());\n\n// CONCATENATED MODULE: ./src/core/utils/url_store.ts\nvar urlStore = {\n baseUrl: \"https://pusher.com\",\n urls: {\n authenticationEndpoint: {\n path: \"/docs/authenticating_users\",\n },\n javascriptQuickStart: {\n path: \"/docs/javascript_quick_start\"\n },\n triggeringClientEvents: {\n path: \"/docs/client_api_guide/client_events#trigger-events\"\n }\n }\n};\nvar buildLogSuffix = function (key) {\n var urlPrefix = \"See:\";\n var urlObj = urlStore.urls[key];\n if (!urlObj)\n return \"\";\n var url;\n if (urlObj.fullUrl) {\n url = urlObj.fullUrl;\n }\n else if (urlObj.path) {\n url = urlStore.baseUrl + urlObj.path;\n }\n if (!url)\n return \"\";\n return urlPrefix + \" \" + url;\n};\n/* harmony default export */ var url_store = ({ buildLogSuffix: buildLogSuffix });\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/auth/xhr_auth.ts\n\n\n\nvar ajax = function (context, socketId, callback) {\n var self = this, xhr;\n xhr = runtime.createXHR();\n xhr.open(\"POST\", self.options.authEndpoint, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n for (var headerName in this.authOptions.headers) {\n xhr.setRequestHeader(headerName, this.authOptions.headers[headerName]);\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n var data, parsed = false;\n try {\n data = JSON.parse(xhr.responseText);\n parsed = true;\n }\n catch (e) {\n callback(true, 'JSON returned from auth endpoint was invalid, yet status code was 200. Data was: ' + xhr.responseText);\n }\n if (parsed) {\n callback(false, data);\n }\n }\n else {\n var suffix = url_store.buildLogSuffix(\"authenticationEndpoint\");\n logger.error('Unable to retrieve auth string from auth endpoint - ' +\n (\"received status \" + xhr.status + \" from \" + self.options.authEndpoint + \". \") +\n (\"Clients must be authenticated to join private or presence channels. \" + suffix));\n callback(true, xhr.status);\n }\n }\n };\n xhr.send(this.composeQuery(socketId));\n return xhr;\n};\n/* harmony default export */ var xhr_auth = (ajax);\n\n// CONCATENATED MODULE: ./src/runtimes/web/auth/jsonp_auth.ts\n\nvar jsonp = function (context, socketId, callback) {\n if (this.authOptions.headers !== undefined) {\n logger.warn('To send headers with the auth request, you must use AJAX, rather than JSONP.');\n }\n var callbackName = context.nextAuthCallbackID.toString();\n context.nextAuthCallbackID++;\n var document = context.getDocument();\n var script = document.createElement(\"script\");\n context.auth_callbacks[callbackName] = function (data) {\n callback(false, data);\n };\n var callback_name = \"Pusher.auth_callbacks['\" + callbackName + \"']\";\n script.src = this.options.authEndpoint +\n '?callback=' +\n encodeURIComponent(callback_name) +\n '&' +\n this.composeQuery(socketId);\n var head = document.getElementsByTagName(\"head\")[0] || document.documentElement;\n head.insertBefore(script, head.firstChild);\n};\n/* harmony default export */ var jsonp_auth = (jsonp);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/script_request.ts\nvar ScriptRequest = (function () {\n function ScriptRequest(src) {\n this.src = src;\n }\n ScriptRequest.prototype.send = function (receiver) {\n var self = this;\n var errorString = \"Error loading \" + self.src;\n self.script = document.createElement(\"script\");\n self.script.id = receiver.id;\n self.script.src = self.src;\n self.script.type = \"text/javascript\";\n self.script.charset = \"UTF-8\";\n if (self.script.addEventListener) {\n self.script.onerror = function () {\n receiver.callback(errorString);\n };\n self.script.onload = function () {\n receiver.callback(null);\n };\n }\n else {\n self.script.onreadystatechange = function () {\n if (self.script.readyState === 'loaded' ||\n self.script.readyState === 'complete') {\n receiver.callback(null);\n }\n };\n }\n if (self.script.async === undefined && document.attachEvent &&\n /opera/i.test(navigator.userAgent)) {\n self.errorScript = document.createElement(\"script\");\n self.errorScript.id = receiver.id + \"_error\";\n self.errorScript.text = receiver.name + \"('\" + errorString + \"');\";\n self.script.async = self.errorScript.async = false;\n }\n else {\n self.script.async = true;\n }\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(self.script, head.firstChild);\n if (self.errorScript) {\n head.insertBefore(self.errorScript, self.script.nextSibling);\n }\n };\n ScriptRequest.prototype.cleanup = function () {\n if (this.script) {\n this.script.onload = this.script.onerror = null;\n this.script.onreadystatechange = null;\n }\n if (this.script && this.script.parentNode) {\n this.script.parentNode.removeChild(this.script);\n }\n if (this.errorScript && this.errorScript.parentNode) {\n this.errorScript.parentNode.removeChild(this.errorScript);\n }\n this.script = null;\n this.errorScript = null;\n };\n return ScriptRequest;\n}());\n/* harmony default export */ var script_request = (ScriptRequest);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/jsonp_request.ts\n\n\nvar jsonp_request_JSONPRequest = (function () {\n function JSONPRequest(url, data) {\n this.url = url;\n this.data = data;\n }\n JSONPRequest.prototype.send = function (receiver) {\n if (this.request) {\n return;\n }\n var query = buildQueryString(this.data);\n var url = this.url + \"/\" + receiver.number + \"?\" + query;\n this.request = runtime.createScriptRequest(url);\n this.request.send(receiver);\n };\n JSONPRequest.prototype.cleanup = function () {\n if (this.request) {\n this.request.cleanup();\n }\n };\n return JSONPRequest;\n}());\n/* harmony default export */ var jsonp_request = (jsonp_request_JSONPRequest);\n\n// CONCATENATED MODULE: ./src/runtimes/web/timeline/jsonp_timeline.ts\n\n\nvar getAgent = function (sender, useTLS) {\n return function (data, callback) {\n var scheme = \"http\" + (useTLS ? \"s\" : \"\") + \"://\";\n var url = scheme + (sender.host || sender.options.host) + sender.options.path;\n var request = runtime.createJSONPRequest(url, data);\n var receiver = runtime.ScriptReceivers.create(function (error, result) {\n ScriptReceivers.remove(receiver);\n request.cleanup();\n if (result && result.host) {\n sender.host = result.host;\n }\n if (callback) {\n callback(error, result);\n }\n });\n request.send(receiver);\n };\n};\nvar jsonp_timeline_jsonp = {\n name: 'jsonp',\n getAgent: getAgent\n};\n/* harmony default export */ var jsonp_timeline = (jsonp_timeline_jsonp);\n\n// CONCATENATED MODULE: ./src/core/transports/url_schemes.ts\n\nfunction getGenericURL(baseScheme, params, path) {\n var scheme = baseScheme + (params.useTLS ? \"s\" : \"\");\n var host = params.useTLS ? params.hostTLS : params.hostNonTLS;\n return scheme + \"://\" + host + path;\n}\nfunction getGenericPath(key, queryString) {\n var path = \"/app/\" + key;\n var query = \"?protocol=\" + defaults.PROTOCOL +\n \"&client=js\" +\n \"&version=\" + defaults.VERSION +\n (queryString ? (\"&\" + queryString) : \"\");\n return path + query;\n}\nvar ws = {\n getInitial: function (key, params) {\n var path = (params.httpPath || \"\") + getGenericPath(key, \"flash=false\");\n return getGenericURL(\"ws\", params, path);\n }\n};\nvar http = {\n getInitial: function (key, params) {\n var path = (params.httpPath || \"/pusher\") + getGenericPath(key);\n return getGenericURL(\"http\", params, path);\n }\n};\nvar sockjs = {\n getInitial: function (key, params) {\n return getGenericURL(\"http\", params, params.httpPath || \"/pusher\");\n },\n getPath: function (key, params) {\n return getGenericPath(key);\n }\n};\n\n// CONCATENATED MODULE: ./src/core/events/callback_registry.ts\n\nvar callback_registry_CallbackRegistry = (function () {\n function CallbackRegistry() {\n this._callbacks = {};\n }\n CallbackRegistry.prototype.get = function (name) {\n return this._callbacks[prefix(name)];\n };\n CallbackRegistry.prototype.add = function (name, callback, context) {\n var prefixedEventName = prefix(name);\n this._callbacks[prefixedEventName] = this._callbacks[prefixedEventName] || [];\n this._callbacks[prefixedEventName].push({\n fn: callback,\n context: context\n });\n };\n CallbackRegistry.prototype.remove = function (name, callback, context) {\n if (!name && !callback && !context) {\n this._callbacks = {};\n return;\n }\n var names = name ? [prefix(name)] : keys(this._callbacks);\n if (callback || context) {\n this.removeCallback(names, callback, context);\n }\n else {\n this.removeAllCallbacks(names);\n }\n };\n CallbackRegistry.prototype.removeCallback = function (names, callback, context) {\n apply(names, function (name) {\n this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) {\n return (callback && callback !== binding.fn) ||\n (context && context !== binding.context);\n });\n if (this._callbacks[name].length === 0) {\n delete this._callbacks[name];\n }\n }, this);\n };\n CallbackRegistry.prototype.removeAllCallbacks = function (names) {\n apply(names, function (name) {\n delete this._callbacks[name];\n }, this);\n };\n return CallbackRegistry;\n}());\n/* harmony default export */ var callback_registry = (callback_registry_CallbackRegistry);\nfunction prefix(name) {\n return \"_\" + name;\n}\n\n// CONCATENATED MODULE: ./src/core/events/dispatcher.ts\n\n\nvar dispatcher_Dispatcher = (function () {\n function Dispatcher(failThrough) {\n this.callbacks = new callback_registry();\n this.global_callbacks = [];\n this.failThrough = failThrough;\n }\n Dispatcher.prototype.bind = function (eventName, callback, context) {\n this.callbacks.add(eventName, callback, context);\n return this;\n };\n Dispatcher.prototype.bind_global = function (callback) {\n this.global_callbacks.push(callback);\n return this;\n };\n Dispatcher.prototype.unbind = function (eventName, callback, context) {\n this.callbacks.remove(eventName, callback, context);\n return this;\n };\n Dispatcher.prototype.unbind_global = function (callback) {\n if (!callback) {\n this.global_callbacks = [];\n return this;\n }\n this.global_callbacks = filter(this.global_callbacks || [], function (c) { return c !== callback; });\n return this;\n };\n Dispatcher.prototype.unbind_all = function () {\n this.unbind();\n this.unbind_global();\n return this;\n };\n Dispatcher.prototype.emit = function (eventName, data, metadata) {\n for (var i = 0; i < this.global_callbacks.length; i++) {\n this.global_callbacks[i](eventName, data);\n }\n var callbacks = this.callbacks.get(eventName);\n var args = [];\n if (metadata) {\n args.push(data, metadata);\n }\n else if (data) {\n args.push(data);\n }\n if (callbacks && callbacks.length > 0) {\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].fn.apply(callbacks[i].context || window, args);\n }\n }\n else if (this.failThrough) {\n this.failThrough(eventName, data);\n }\n return this;\n };\n return Dispatcher;\n}());\n/* harmony default export */ var dispatcher = (dispatcher_Dispatcher);\n\n// CONCATENATED MODULE: ./src/core/transports/transport_connection.ts\nvar transport_connection_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar transport_connection_TransportConnection = (function (_super) {\n transport_connection_extends(TransportConnection, _super);\n function TransportConnection(hooks, name, priority, key, options) {\n var _this = _super.call(this) || this;\n _this.initialize = runtime.transportConnectionInitializer;\n _this.hooks = hooks;\n _this.name = name;\n _this.priority = priority;\n _this.key = key;\n _this.options = options;\n _this.state = \"new\";\n _this.timeline = options.timeline;\n _this.activityTimeout = options.activityTimeout;\n _this.id = _this.timeline.generateUniqueID();\n return _this;\n }\n TransportConnection.prototype.handlesActivityChecks = function () {\n return Boolean(this.hooks.handlesActivityChecks);\n };\n TransportConnection.prototype.supportsPing = function () {\n return Boolean(this.hooks.supportsPing);\n };\n TransportConnection.prototype.connect = function () {\n var _this = this;\n if (this.socket || this.state !== \"initialized\") {\n return false;\n }\n var url = this.hooks.urls.getInitial(this.key, this.options);\n try {\n this.socket = this.hooks.getSocket(url, this.options);\n }\n catch (e) {\n util.defer(function () {\n _this.onError(e);\n _this.changeState(\"closed\");\n });\n return false;\n }\n this.bindListeners();\n logger.debug(\"Connecting\", { transport: this.name, url: url });\n this.changeState(\"connecting\");\n return true;\n };\n TransportConnection.prototype.close = function () {\n if (this.socket) {\n this.socket.close();\n return true;\n }\n else {\n return false;\n }\n };\n TransportConnection.prototype.send = function (data) {\n var _this = this;\n if (this.state === \"open\") {\n util.defer(function () {\n if (_this.socket) {\n _this.socket.send(data);\n }\n });\n return true;\n }\n else {\n return false;\n }\n };\n TransportConnection.prototype.ping = function () {\n if (this.state === \"open\" && this.supportsPing()) {\n this.socket.ping();\n }\n };\n TransportConnection.prototype.onOpen = function () {\n if (this.hooks.beforeOpen) {\n this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options));\n }\n this.changeState(\"open\");\n this.socket.onopen = undefined;\n };\n TransportConnection.prototype.onError = function (error) {\n this.emit(\"error\", { type: 'WebSocketError', error: error });\n this.timeline.error(this.buildTimelineMessage({ error: error.toString() }));\n };\n TransportConnection.prototype.onClose = function (closeEvent) {\n if (closeEvent) {\n this.changeState(\"closed\", {\n code: closeEvent.code,\n reason: closeEvent.reason,\n wasClean: closeEvent.wasClean\n });\n }\n else {\n this.changeState(\"closed\");\n }\n this.unbindListeners();\n this.socket = undefined;\n };\n TransportConnection.prototype.onMessage = function (message) {\n this.emit(\"message\", message);\n };\n TransportConnection.prototype.onActivity = function () {\n this.emit(\"activity\");\n };\n TransportConnection.prototype.bindListeners = function () {\n var _this = this;\n this.socket.onopen = function () {\n _this.onOpen();\n };\n this.socket.onerror = function (error) {\n _this.onError(error);\n };\n this.socket.onclose = function (closeEvent) {\n _this.onClose(closeEvent);\n };\n this.socket.onmessage = function (message) {\n _this.onMessage(message);\n };\n if (this.supportsPing()) {\n this.socket.onactivity = function () { _this.onActivity(); };\n }\n };\n TransportConnection.prototype.unbindListeners = function () {\n if (this.socket) {\n this.socket.onopen = undefined;\n this.socket.onerror = undefined;\n this.socket.onclose = undefined;\n this.socket.onmessage = undefined;\n if (this.supportsPing()) {\n this.socket.onactivity = undefined;\n }\n }\n };\n TransportConnection.prototype.changeState = function (state, params) {\n this.state = state;\n this.timeline.info(this.buildTimelineMessage({\n state: state,\n params: params\n }));\n this.emit(state, params);\n };\n TransportConnection.prototype.buildTimelineMessage = function (message) {\n return extend({ cid: this.id }, message);\n };\n return TransportConnection;\n}(dispatcher));\n/* harmony default export */ var transport_connection = (transport_connection_TransportConnection);\n\n// CONCATENATED MODULE: ./src/core/transports/transport.ts\n\nvar transport_Transport = (function () {\n function Transport(hooks) {\n this.hooks = hooks;\n }\n Transport.prototype.isSupported = function (environment) {\n return this.hooks.isSupported(environment);\n };\n Transport.prototype.createConnection = function (name, priority, key, options) {\n return new transport_connection(this.hooks, name, priority, key, options);\n };\n return Transport;\n}());\n/* harmony default export */ var transports_transport = (transport_Transport);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/transports/transports.ts\n\n\n\n\nvar WSTransport = new transports_transport({\n urls: ws,\n handlesActivityChecks: false,\n supportsPing: false,\n isInitialized: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n isSupported: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n getSocket: function (url) {\n return runtime.createWebSocket(url);\n }\n});\nvar httpConfiguration = {\n urls: http,\n handlesActivityChecks: false,\n supportsPing: true,\n isInitialized: function () {\n return true;\n }\n};\nvar streamingConfiguration = extend({ getSocket: function (url) {\n return runtime.HTTPFactory.createStreamingSocket(url);\n }\n}, httpConfiguration);\nvar pollingConfiguration = extend({ getSocket: function (url) {\n return runtime.HTTPFactory.createPollingSocket(url);\n }\n}, httpConfiguration);\nvar xhrConfiguration = {\n isSupported: function () {\n return runtime.isXHRSupported();\n }\n};\nvar XHRStreamingTransport = new transports_transport(extend({}, streamingConfiguration, xhrConfiguration));\nvar XHRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xhrConfiguration));\nvar Transports = {\n ws: WSTransport,\n xhr_streaming: XHRStreamingTransport,\n xhr_polling: XHRPollingTransport\n};\n/* harmony default export */ var transports = (Transports);\n\n// CONCATENATED MODULE: ./src/runtimes/web/transports/transports.ts\n\n\n\n\n\n\nvar SockJSTransport = new transports_transport({\n file: \"sockjs\",\n urls: sockjs,\n handlesActivityChecks: true,\n supportsPing: false,\n isSupported: function () {\n return true;\n },\n isInitialized: function () {\n return window.SockJS !== undefined;\n },\n getSocket: function (url, options) {\n return new window.SockJS(url, null, {\n js_path: Dependencies.getPath(\"sockjs\", {\n useTLS: options.useTLS\n }),\n ignore_null_origin: options.ignoreNullOrigin\n });\n },\n beforeOpen: function (socket, path) {\n socket.send(JSON.stringify({\n path: path\n }));\n }\n});\nvar xdrConfiguration = {\n isSupported: function (environment) {\n var yes = runtime.isXDRSupported(environment.useTLS);\n return yes;\n }\n};\nvar XDRStreamingTransport = new transports_transport(extend({}, streamingConfiguration, xdrConfiguration));\nvar XDRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xdrConfiguration));\ntransports.xdr_streaming = XDRStreamingTransport;\ntransports.xdr_polling = XDRPollingTransport;\ntransports.sockjs = SockJSTransport;\n/* harmony default export */ var transports_transports = (transports);\n\n// CONCATENATED MODULE: ./src/runtimes/web/net_info.ts\nvar net_info_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar NetInfo = (function (_super) {\n net_info_extends(NetInfo, _super);\n function NetInfo() {\n var _this = _super.call(this) || this;\n var self = _this;\n if (window.addEventListener !== undefined) {\n window.addEventListener(\"online\", function () {\n self.emit('online');\n }, false);\n window.addEventListener(\"offline\", function () {\n self.emit('offline');\n }, false);\n }\n return _this;\n }\n NetInfo.prototype.isOnline = function () {\n if (window.navigator.onLine === undefined) {\n return true;\n }\n else {\n return window.navigator.onLine;\n }\n };\n return NetInfo;\n}(dispatcher));\n\nvar net_info_Network = new NetInfo();\n\n// CONCATENATED MODULE: ./src/core/transports/assistant_to_the_transport_manager.ts\n\n\nvar assistant_to_the_transport_manager_AssistantToTheTransportManager = (function () {\n function AssistantToTheTransportManager(manager, transport, options) {\n this.manager = manager;\n this.transport = transport;\n this.minPingDelay = options.minPingDelay;\n this.maxPingDelay = options.maxPingDelay;\n this.pingDelay = undefined;\n }\n AssistantToTheTransportManager.prototype.createConnection = function (name, priority, key, options) {\n var _this = this;\n options = extend({}, options, {\n activityTimeout: this.pingDelay\n });\n var connection = this.transport.createConnection(name, priority, key, options);\n var openTimestamp = null;\n var onOpen = function () {\n connection.unbind(\"open\", onOpen);\n connection.bind(\"closed\", onClosed);\n openTimestamp = util.now();\n };\n var onClosed = function (closeEvent) {\n connection.unbind(\"closed\", onClosed);\n if (closeEvent.code === 1002 || closeEvent.code === 1003) {\n _this.manager.reportDeath();\n }\n else if (!closeEvent.wasClean && openTimestamp) {\n var lifespan = util.now() - openTimestamp;\n if (lifespan < 2 * _this.maxPingDelay) {\n _this.manager.reportDeath();\n _this.pingDelay = Math.max(lifespan / 2, _this.minPingDelay);\n }\n }\n };\n connection.bind(\"open\", onOpen);\n return connection;\n };\n AssistantToTheTransportManager.prototype.isSupported = function (environment) {\n return this.manager.isAlive() && this.transport.isSupported(environment);\n };\n return AssistantToTheTransportManager;\n}());\n/* harmony default export */ var assistant_to_the_transport_manager = (assistant_to_the_transport_manager_AssistantToTheTransportManager);\n\n// CONCATENATED MODULE: ./src/core/connection/protocol/protocol.ts\nvar Protocol = {\n decodeMessage: function (messageEvent) {\n try {\n var messageData = JSON.parse(messageEvent.data);\n var pusherEventData = messageData.data;\n if (typeof pusherEventData === 'string') {\n try {\n pusherEventData = JSON.parse(messageData.data);\n }\n catch (e) { }\n }\n var pusherEvent = {\n event: messageData.event,\n channel: messageData.channel,\n data: pusherEventData,\n };\n if (messageData.user_id) {\n pusherEvent.user_id = messageData.user_id;\n }\n return pusherEvent;\n }\n catch (e) {\n throw { type: 'MessageParseError', error: e, data: messageEvent.data };\n }\n },\n encodeMessage: function (event) {\n return JSON.stringify(event);\n },\n processHandshake: function (messageEvent) {\n var message = Protocol.decodeMessage(messageEvent);\n if (message.event === \"pusher:connection_established\") {\n if (!message.data.activity_timeout) {\n throw \"No activity timeout specified in handshake\";\n }\n return {\n action: \"connected\",\n id: message.data.socket_id,\n activityTimeout: message.data.activity_timeout * 1000\n };\n }\n else if (message.event === \"pusher:error\") {\n return {\n action: this.getCloseAction(message.data),\n error: this.getCloseError(message.data)\n };\n }\n else {\n throw \"Invalid handshake\";\n }\n },\n getCloseAction: function (closeEvent) {\n if (closeEvent.code < 4000) {\n if (closeEvent.code >= 1002 && closeEvent.code <= 1004) {\n return \"backoff\";\n }\n else {\n return null;\n }\n }\n else if (closeEvent.code === 4000) {\n return \"tls_only\";\n }\n else if (closeEvent.code < 4100) {\n return \"refused\";\n }\n else if (closeEvent.code < 4200) {\n return \"backoff\";\n }\n else if (closeEvent.code < 4300) {\n return \"retry\";\n }\n else {\n return \"refused\";\n }\n },\n getCloseError: function (closeEvent) {\n if (closeEvent.code !== 1000 && closeEvent.code !== 1001) {\n return {\n type: 'PusherError',\n data: {\n code: closeEvent.code,\n message: closeEvent.reason || closeEvent.message\n }\n };\n }\n else {\n return null;\n }\n }\n};\n/* harmony default export */ var protocol_protocol = (Protocol);\n\n// CONCATENATED MODULE: ./src/core/connection/connection.ts\nvar connection_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar connection_Connection = (function (_super) {\n connection_extends(Connection, _super);\n function Connection(id, transport) {\n var _this = _super.call(this) || this;\n _this.id = id;\n _this.transport = transport;\n _this.activityTimeout = transport.activityTimeout;\n _this.bindListeners();\n return _this;\n }\n Connection.prototype.handlesActivityChecks = function () {\n return this.transport.handlesActivityChecks();\n };\n Connection.prototype.send = function (data) {\n return this.transport.send(data);\n };\n Connection.prototype.send_event = function (name, data, channel) {\n var event = { event: name, data: data };\n if (channel) {\n event.channel = channel;\n }\n logger.debug('Event sent', event);\n return this.send(protocol_protocol.encodeMessage(event));\n };\n Connection.prototype.ping = function () {\n if (this.transport.supportsPing()) {\n this.transport.ping();\n }\n else {\n this.send_event('pusher:ping', {});\n }\n };\n Connection.prototype.close = function () {\n this.transport.close();\n };\n Connection.prototype.bindListeners = function () {\n var _this = this;\n var listeners = {\n message: function (messageEvent) {\n var pusherEvent;\n try {\n pusherEvent = protocol_protocol.decodeMessage(messageEvent);\n }\n catch (e) {\n _this.emit('error', {\n type: 'MessageParseError',\n error: e,\n data: messageEvent.data\n });\n }\n if (pusherEvent !== undefined) {\n logger.debug('Event recd', pusherEvent);\n switch (pusherEvent.event) {\n case 'pusher:error':\n _this.emit('error', { type: 'PusherError', data: pusherEvent.data });\n break;\n case 'pusher:ping':\n _this.emit(\"ping\");\n break;\n case 'pusher:pong':\n _this.emit(\"pong\");\n break;\n }\n _this.emit('message', pusherEvent);\n }\n },\n activity: function () {\n _this.emit(\"activity\");\n },\n error: function (error) {\n _this.emit(\"error\", { type: \"WebSocketError\", error: error });\n },\n closed: function (closeEvent) {\n unbindListeners();\n if (closeEvent && closeEvent.code) {\n _this.handleCloseEvent(closeEvent);\n }\n _this.transport = null;\n _this.emit(\"closed\");\n }\n };\n var unbindListeners = function () {\n objectApply(listeners, function (listener, event) {\n _this.transport.unbind(event, listener);\n });\n };\n objectApply(listeners, function (listener, event) {\n _this.transport.bind(event, listener);\n });\n };\n Connection.prototype.handleCloseEvent = function (closeEvent) {\n var action = protocol_protocol.getCloseAction(closeEvent);\n var error = protocol_protocol.getCloseError(closeEvent);\n if (error) {\n this.emit('error', error);\n }\n if (action) {\n this.emit(action, { action: action, error: error });\n }\n };\n return Connection;\n}(dispatcher));\n/* harmony default export */ var connection_connection = (connection_Connection);\n\n// CONCATENATED MODULE: ./src/core/connection/handshake/index.ts\n\n\n\nvar handshake_Handshake = (function () {\n function Handshake(transport, callback) {\n this.transport = transport;\n this.callback = callback;\n this.bindListeners();\n }\n Handshake.prototype.close = function () {\n this.unbindListeners();\n this.transport.close();\n };\n Handshake.prototype.bindListeners = function () {\n var _this = this;\n this.onMessage = function (m) {\n _this.unbindListeners();\n var result;\n try {\n result = protocol_protocol.processHandshake(m);\n }\n catch (e) {\n _this.finish(\"error\", { error: e });\n _this.transport.close();\n return;\n }\n if (result.action === \"connected\") {\n _this.finish(\"connected\", {\n connection: new connection_connection(result.id, _this.transport),\n activityTimeout: result.activityTimeout\n });\n }\n else {\n _this.finish(result.action, { error: result.error });\n _this.transport.close();\n }\n };\n this.onClosed = function (closeEvent) {\n _this.unbindListeners();\n var action = protocol_protocol.getCloseAction(closeEvent) || \"backoff\";\n var error = protocol_protocol.getCloseError(closeEvent);\n _this.finish(action, { error: error });\n };\n this.transport.bind(\"message\", this.onMessage);\n this.transport.bind(\"closed\", this.onClosed);\n };\n Handshake.prototype.unbindListeners = function () {\n this.transport.unbind(\"message\", this.onMessage);\n this.transport.unbind(\"closed\", this.onClosed);\n };\n Handshake.prototype.finish = function (action, params) {\n this.callback(extend({ transport: this.transport, action: action }, params));\n };\n return Handshake;\n}());\n/* harmony default export */ var connection_handshake = (handshake_Handshake);\n\n// CONCATENATED MODULE: ./src/core/auth/pusher_authorizer.ts\n\nvar pusher_authorizer_PusherAuthorizer = (function () {\n function PusherAuthorizer(channel, options) {\n this.channel = channel;\n var authTransport = options.authTransport;\n if (typeof runtime.getAuthorizers()[authTransport] === \"undefined\") {\n throw \"'\" + authTransport + \"' is not a recognized auth transport\";\n }\n this.type = authTransport;\n this.options = options;\n this.authOptions = (options || {}).auth || {};\n }\n PusherAuthorizer.prototype.composeQuery = function (socketId) {\n var query = 'socket_id=' + encodeURIComponent(socketId) +\n '&channel_name=' + encodeURIComponent(this.channel.name);\n for (var i in this.authOptions.params) {\n query += \"&\" + encodeURIComponent(i) + \"=\" + encodeURIComponent(this.authOptions.params[i]);\n }\n return query;\n };\n PusherAuthorizer.prototype.authorize = function (socketId, callback) {\n PusherAuthorizer.authorizers = PusherAuthorizer.authorizers || runtime.getAuthorizers();\n return PusherAuthorizer.authorizers[this.type].call(this, runtime, socketId, callback);\n };\n return PusherAuthorizer;\n}());\n/* harmony default export */ var pusher_authorizer = (pusher_authorizer_PusherAuthorizer);\n\n// CONCATENATED MODULE: ./src/core/timeline/timeline_sender.ts\n\nvar timeline_sender_TimelineSender = (function () {\n function TimelineSender(timeline, options) {\n this.timeline = timeline;\n this.options = options || {};\n }\n TimelineSender.prototype.send = function (useTLS, callback) {\n if (this.timeline.isEmpty()) {\n return;\n }\n this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback);\n };\n return TimelineSender;\n}());\n/* harmony default export */ var timeline_sender = (timeline_sender_TimelineSender);\n\n// CONCATENATED MODULE: ./src/core/errors.ts\nvar errors_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BadEventName = (function (_super) {\n errors_extends(BadEventName, _super);\n function BadEventName(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return BadEventName;\n}(Error));\n\nvar RequestTimedOut = (function (_super) {\n errors_extends(RequestTimedOut, _super);\n function RequestTimedOut(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return RequestTimedOut;\n}(Error));\n\nvar TransportPriorityTooLow = (function (_super) {\n errors_extends(TransportPriorityTooLow, _super);\n function TransportPriorityTooLow(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TransportPriorityTooLow;\n}(Error));\n\nvar TransportClosed = (function (_super) {\n errors_extends(TransportClosed, _super);\n function TransportClosed(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TransportClosed;\n}(Error));\n\nvar UnsupportedFeature = (function (_super) {\n errors_extends(UnsupportedFeature, _super);\n function UnsupportedFeature(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedFeature;\n}(Error));\n\nvar UnsupportedTransport = (function (_super) {\n errors_extends(UnsupportedTransport, _super);\n function UnsupportedTransport(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedTransport;\n}(Error));\n\nvar UnsupportedStrategy = (function (_super) {\n errors_extends(UnsupportedStrategy, _super);\n function UnsupportedStrategy(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedStrategy;\n}(Error));\n\n\n// CONCATENATED MODULE: ./src/core/channels/channel.ts\nvar channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar channel_Channel = (function (_super) {\n channel_extends(Channel, _super);\n function Channel(name, pusher) {\n var _this = _super.call(this, function (event, data) {\n logger.debug('No callbacks on ' + name + ' for ' + event);\n }) || this;\n _this.name = name;\n _this.pusher = pusher;\n _this.subscribed = false;\n _this.subscriptionPending = false;\n _this.subscriptionCancelled = false;\n return _this;\n }\n Channel.prototype.authorize = function (socketId, callback) {\n return callback(false, {});\n };\n Channel.prototype.trigger = function (event, data) {\n if (event.indexOf(\"client-\") !== 0) {\n throw new BadEventName(\"Event '\" + event + \"' does not start with 'client-'\");\n }\n if (!this.subscribed) {\n var suffix = url_store.buildLogSuffix(\"triggeringClientEvents\");\n logger.warn(\"Client event triggered before channel 'subscription_succeeded' event . \" + suffix);\n }\n return this.pusher.send_event(event, data, this.name);\n };\n Channel.prototype.disconnect = function () {\n this.subscribed = false;\n this.subscriptionPending = false;\n };\n Channel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName === \"pusher_internal:subscription_succeeded\") {\n this.handleSubscriptionSucceededEvent(event);\n }\n else if (eventName.indexOf(\"pusher_internal:\") !== 0) {\n var metadata = {};\n this.emit(eventName, data, metadata);\n }\n };\n Channel.prototype.handleSubscriptionSucceededEvent = function (event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.emit(\"pusher:subscription_succeeded\", event.data);\n }\n };\n Channel.prototype.subscribe = function () {\n var _this = this;\n if (this.subscribed) {\n return;\n }\n this.subscriptionPending = true;\n this.subscriptionCancelled = false;\n this.authorize(this.pusher.connection.socket_id, function (error, data) {\n if (error) {\n logger.error(data);\n _this.emit('pusher:subscription_error', data);\n }\n else {\n _this.pusher.send_event('pusher:subscribe', {\n auth: data.auth,\n channel_data: data.channel_data,\n channel: _this.name\n });\n }\n });\n };\n Channel.prototype.unsubscribe = function () {\n this.subscribed = false;\n this.pusher.send_event('pusher:unsubscribe', {\n channel: this.name\n });\n };\n Channel.prototype.cancelSubscription = function () {\n this.subscriptionCancelled = true;\n };\n Channel.prototype.reinstateSubscription = function () {\n this.subscriptionCancelled = false;\n };\n return Channel;\n}(dispatcher));\n/* harmony default export */ var channels_channel = (channel_Channel);\n\n// CONCATENATED MODULE: ./src/core/channels/private_channel.ts\nvar private_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar private_channel_PrivateChannel = (function (_super) {\n private_channel_extends(PrivateChannel, _super);\n function PrivateChannel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrivateChannel.prototype.authorize = function (socketId, callback) {\n var authorizer = factory.createAuthorizer(this, this.pusher.config);\n return authorizer.authorize(socketId, callback);\n };\n return PrivateChannel;\n}(channels_channel));\n/* harmony default export */ var private_channel = (private_channel_PrivateChannel);\n\n// CONCATENATED MODULE: ./src/core/channels/members.ts\n\nvar members_Members = (function () {\n function Members() {\n this.reset();\n }\n Members.prototype.get = function (id) {\n if (Object.prototype.hasOwnProperty.call(this.members, id)) {\n return {\n id: id,\n info: this.members[id]\n };\n }\n else {\n return null;\n }\n };\n Members.prototype.each = function (callback) {\n var _this = this;\n objectApply(this.members, function (member, id) {\n callback(_this.get(id));\n });\n };\n Members.prototype.setMyID = function (id) {\n this.myID = id;\n };\n Members.prototype.onSubscription = function (subscriptionData) {\n this.members = subscriptionData.presence.hash;\n this.count = subscriptionData.presence.count;\n this.me = this.get(this.myID);\n };\n Members.prototype.addMember = function (memberData) {\n if (this.get(memberData.user_id) === null) {\n this.count++;\n }\n this.members[memberData.user_id] = memberData.user_info;\n return this.get(memberData.user_id);\n };\n Members.prototype.removeMember = function (memberData) {\n var member = this.get(memberData.user_id);\n if (member) {\n delete this.members[memberData.user_id];\n this.count--;\n }\n return member;\n };\n Members.prototype.reset = function () {\n this.members = {};\n this.count = 0;\n this.myID = null;\n this.me = null;\n };\n return Members;\n}());\n/* harmony default export */ var members = (members_Members);\n\n// CONCATENATED MODULE: ./src/core/channels/presence_channel.ts\nvar presence_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar presence_channel_PresenceChannel = (function (_super) {\n presence_channel_extends(PresenceChannel, _super);\n function PresenceChannel(name, pusher) {\n var _this = _super.call(this, name, pusher) || this;\n _this.members = new members();\n return _this;\n }\n PresenceChannel.prototype.authorize = function (socketId, callback) {\n var _this = this;\n _super.prototype.authorize.call(this, socketId, function (error, authData) {\n if (!error) {\n if (authData.channel_data === undefined) {\n var suffix = url_store.buildLogSuffix(\"authenticationEndpoint\");\n logger.error(\"Invalid auth response for channel '\" + _this.name + \"',\" +\n (\"expected 'channel_data' field. \" + suffix));\n callback(\"Invalid auth response\");\n return;\n }\n var channelData = JSON.parse(authData.channel_data);\n _this.members.setMyID(channelData.user_id);\n }\n callback(error, authData);\n });\n };\n PresenceChannel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n if (eventName.indexOf(\"pusher_internal:\") === 0) {\n this.handleInternalEvent(event);\n }\n else {\n var data = event.data;\n var metadata = {};\n if (event.user_id) {\n metadata.user_id = event.user_id;\n }\n this.emit(eventName, data, metadata);\n }\n };\n PresenceChannel.prototype.handleInternalEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n switch (eventName) {\n case \"pusher_internal:subscription_succeeded\":\n this.handleSubscriptionSucceededEvent(event);\n break;\n case \"pusher_internal:member_added\":\n var addedMember = this.members.addMember(data);\n this.emit('pusher:member_added', addedMember);\n break;\n case \"pusher_internal:member_removed\":\n var removedMember = this.members.removeMember(data);\n if (removedMember) {\n this.emit('pusher:member_removed', removedMember);\n }\n break;\n }\n };\n PresenceChannel.prototype.handleSubscriptionSucceededEvent = function (event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.members.onSubscription(event.data);\n this.emit(\"pusher:subscription_succeeded\", this.members);\n }\n };\n PresenceChannel.prototype.disconnect = function () {\n this.members.reset();\n _super.prototype.disconnect.call(this);\n };\n return PresenceChannel;\n}(private_channel));\n/* harmony default export */ var presence_channel = (presence_channel_PresenceChannel);\n\n// EXTERNAL MODULE: ./node_modules/tweetnacl/nacl-fast.js\nvar nacl_fast = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/tweetnacl-util/nacl-util.js\nvar nacl_util = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./src/core/channels/encrypted_channel.ts\nvar encrypted_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar encrypted_channel_EncryptedChannel = (function (_super) {\n encrypted_channel_extends(EncryptedChannel, _super);\n function EncryptedChannel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.key = null;\n return _this;\n }\n EncryptedChannel.prototype.authorize = function (socketId, callback) {\n var _this = this;\n _super.prototype.authorize.call(this, socketId, function (error, authData) {\n if (error) {\n callback(true, authData);\n return;\n }\n var sharedSecret = authData[\"shared_secret\"];\n if (!sharedSecret) {\n var errorMsg = \"No shared_secret key in auth payload for encrypted channel: \" + _this.name;\n callback(true, errorMsg);\n return;\n }\n _this.key = Object(nacl_util[\"decodeBase64\"])(sharedSecret);\n delete authData[\"shared_secret\"];\n callback(false, authData);\n });\n };\n EncryptedChannel.prototype.trigger = function (event, data) {\n throw new UnsupportedFeature('Client events are not currently supported for encrypted channels');\n };\n EncryptedChannel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName.indexOf(\"pusher_internal:\") === 0 || eventName.indexOf(\"pusher:\") === 0) {\n _super.prototype.handleEvent.call(this, event);\n return;\n }\n this.handleEncryptedEvent(eventName, data);\n };\n EncryptedChannel.prototype.handleEncryptedEvent = function (event, data) {\n var _this = this;\n if (!this.key) {\n logger.debug('Received encrypted event before key has been retrieved from the authEndpoint');\n return;\n }\n if (!data.ciphertext || !data.nonce) {\n logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' + data);\n return;\n }\n var cipherText = Object(nacl_util[\"decodeBase64\"])(data.ciphertext);\n if (cipherText.length < nacl_fast[\"secretbox\"].overheadLength) {\n logger.error(\"Expected encrypted event ciphertext length to be \" + nacl_fast[\"secretbox\"].overheadLength + \", got: \" + cipherText.length);\n return;\n }\n var nonce = Object(nacl_util[\"decodeBase64\"])(data.nonce);\n if (nonce.length < nacl_fast[\"secretbox\"].nonceLength) {\n logger.error(\"Expected encrypted event nonce length to be \" + nacl_fast[\"secretbox\"].nonceLength + \", got: \" + nonce.length);\n return;\n }\n var bytes = nacl_fast[\"secretbox\"].open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...');\n this.authorize(this.pusher.connection.socket_id, function (error, authData) {\n if (error) {\n logger.error(\"Failed to make a request to the authEndpoint: \" + authData + \". Unable to fetch new key, so dropping encrypted event\");\n return;\n }\n bytes = nacl_fast[\"secretbox\"].open(cipherText, nonce, _this.key);\n if (bytes === null) {\n logger.error(\"Failed to decrypt event with new key. Dropping encrypted event\");\n return;\n }\n _this.emitJSON(event, Object(nacl_util[\"encodeUTF8\"])(bytes));\n return;\n });\n return;\n }\n this.emitJSON(event, Object(nacl_util[\"encodeUTF8\"])(bytes));\n };\n EncryptedChannel.prototype.emitJSON = function (eventName, data) {\n try {\n this.emit(eventName, JSON.parse(data));\n }\n catch (e) {\n this.emit(eventName, data);\n }\n return this;\n };\n return EncryptedChannel;\n}(private_channel));\n/* harmony default export */ var encrypted_channel = (encrypted_channel_EncryptedChannel);\n\n// CONCATENATED MODULE: ./src/core/connection/connection_manager.ts\nvar connection_manager_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar connection_manager_ConnectionManager = (function (_super) {\n connection_manager_extends(ConnectionManager, _super);\n function ConnectionManager(key, options) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.options = options || {};\n _this.state = \"initialized\";\n _this.connection = null;\n _this.usingTLS = !!options.useTLS;\n _this.timeline = _this.options.timeline;\n _this.errorCallbacks = _this.buildErrorCallbacks();\n _this.connectionCallbacks = _this.buildConnectionCallbacks(_this.errorCallbacks);\n _this.handshakeCallbacks = _this.buildHandshakeCallbacks(_this.errorCallbacks);\n var Network = runtime.getNetwork();\n Network.bind(\"online\", function () {\n _this.timeline.info({ netinfo: \"online\" });\n if (_this.state === \"connecting\" || _this.state === \"unavailable\") {\n _this.retryIn(0);\n }\n });\n Network.bind(\"offline\", function () {\n _this.timeline.info({ netinfo: \"offline\" });\n if (_this.connection) {\n _this.sendActivityCheck();\n }\n });\n _this.updateStrategy();\n return _this;\n }\n ConnectionManager.prototype.connect = function () {\n if (this.connection || this.runner) {\n return;\n }\n if (!this.strategy.isSupported()) {\n this.updateState(\"failed\");\n return;\n }\n this.updateState(\"connecting\");\n this.startConnecting();\n this.setUnavailableTimer();\n };\n ;\n ConnectionManager.prototype.send = function (data) {\n if (this.connection) {\n return this.connection.send(data);\n }\n else {\n return false;\n }\n };\n ;\n ConnectionManager.prototype.send_event = function (name, data, channel) {\n if (this.connection) {\n return this.connection.send_event(name, data, channel);\n }\n else {\n return false;\n }\n };\n ;\n ConnectionManager.prototype.disconnect = function () {\n this.disconnectInternally();\n this.updateState(\"disconnected\");\n };\n ;\n ConnectionManager.prototype.isUsingTLS = function () {\n return this.usingTLS;\n };\n ;\n ConnectionManager.prototype.startConnecting = function () {\n var _this = this;\n var callback = function (error, handshake) {\n if (error) {\n _this.runner = _this.strategy.connect(0, callback);\n }\n else {\n if (handshake.action === \"error\") {\n _this.emit(\"error\", { type: \"HandshakeError\", error: handshake.error });\n _this.timeline.error({ handshakeError: handshake.error });\n }\n else {\n _this.abortConnecting();\n _this.handshakeCallbacks[handshake.action](handshake);\n }\n }\n };\n this.runner = this.strategy.connect(0, callback);\n };\n ;\n ConnectionManager.prototype.abortConnecting = function () {\n if (this.runner) {\n this.runner.abort();\n this.runner = null;\n }\n };\n ;\n ConnectionManager.prototype.disconnectInternally = function () {\n this.abortConnecting();\n this.clearRetryTimer();\n this.clearUnavailableTimer();\n if (this.connection) {\n var connection = this.abandonConnection();\n connection.close();\n }\n };\n ;\n ConnectionManager.prototype.updateStrategy = function () {\n this.strategy = this.options.getStrategy({\n key: this.key,\n timeline: this.timeline,\n useTLS: this.usingTLS\n });\n };\n ;\n ConnectionManager.prototype.retryIn = function (delay) {\n var _this = this;\n this.timeline.info({ action: \"retry\", delay: delay });\n if (delay > 0) {\n this.emit(\"connecting_in\", Math.round(delay / 1000));\n }\n this.retryTimer = new OneOffTimer(delay || 0, function () {\n _this.disconnectInternally();\n _this.connect();\n });\n };\n ;\n ConnectionManager.prototype.clearRetryTimer = function () {\n if (this.retryTimer) {\n this.retryTimer.ensureAborted();\n this.retryTimer = null;\n }\n };\n ;\n ConnectionManager.prototype.setUnavailableTimer = function () {\n var _this = this;\n this.unavailableTimer = new OneOffTimer(this.options.unavailableTimeout, function () {\n _this.updateState(\"unavailable\");\n });\n };\n ;\n ConnectionManager.prototype.clearUnavailableTimer = function () {\n if (this.unavailableTimer) {\n this.unavailableTimer.ensureAborted();\n }\n };\n ;\n ConnectionManager.prototype.sendActivityCheck = function () {\n var _this = this;\n this.stopActivityCheck();\n this.connection.ping();\n this.activityTimer = new OneOffTimer(this.options.pongTimeout, function () {\n _this.timeline.error({ pong_timed_out: _this.options.pongTimeout });\n _this.retryIn(0);\n });\n };\n ;\n ConnectionManager.prototype.resetActivityCheck = function () {\n var _this = this;\n this.stopActivityCheck();\n if (this.connection && !this.connection.handlesActivityChecks()) {\n this.activityTimer = new OneOffTimer(this.activityTimeout, function () {\n _this.sendActivityCheck();\n });\n }\n };\n ;\n ConnectionManager.prototype.stopActivityCheck = function () {\n if (this.activityTimer) {\n this.activityTimer.ensureAborted();\n }\n };\n ;\n ConnectionManager.prototype.buildConnectionCallbacks = function (errorCallbacks) {\n var _this = this;\n return extend({}, errorCallbacks, {\n message: function (message) {\n _this.resetActivityCheck();\n _this.emit('message', message);\n },\n ping: function () {\n _this.send_event('pusher:pong', {});\n },\n activity: function () {\n _this.resetActivityCheck();\n },\n error: function (error) {\n _this.emit(\"error\", { type: \"WebSocketError\", error: error });\n },\n closed: function () {\n _this.abandonConnection();\n if (_this.shouldRetry()) {\n _this.retryIn(1000);\n }\n }\n });\n };\n ;\n ConnectionManager.prototype.buildHandshakeCallbacks = function (errorCallbacks) {\n var _this = this;\n return extend({}, errorCallbacks, {\n connected: function (handshake) {\n _this.activityTimeout = Math.min(_this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity);\n _this.clearUnavailableTimer();\n _this.setConnection(handshake.connection);\n _this.socket_id = _this.connection.id;\n _this.updateState(\"connected\", { socket_id: _this.socket_id });\n }\n });\n };\n ;\n ConnectionManager.prototype.buildErrorCallbacks = function () {\n var _this = this;\n var withErrorEmitted = function (callback) {\n return function (result) {\n if (result.error) {\n _this.emit(\"error\", { type: \"WebSocketError\", error: result.error });\n }\n callback(result);\n };\n };\n return {\n tls_only: withErrorEmitted(function () {\n _this.usingTLS = true;\n _this.updateStrategy();\n _this.retryIn(0);\n }),\n refused: withErrorEmitted(function () {\n _this.disconnect();\n }),\n backoff: withErrorEmitted(function () {\n _this.retryIn(1000);\n }),\n retry: withErrorEmitted(function () {\n _this.retryIn(0);\n })\n };\n };\n ;\n ConnectionManager.prototype.setConnection = function (connection) {\n this.connection = connection;\n for (var event in this.connectionCallbacks) {\n this.connection.bind(event, this.connectionCallbacks[event]);\n }\n this.resetActivityCheck();\n };\n ;\n ConnectionManager.prototype.abandonConnection = function () {\n if (!this.connection) {\n return;\n }\n this.stopActivityCheck();\n for (var event in this.connectionCallbacks) {\n this.connection.unbind(event, this.connectionCallbacks[event]);\n }\n var connection = this.connection;\n this.connection = null;\n return connection;\n };\n ConnectionManager.prototype.updateState = function (newState, data) {\n var previousState = this.state;\n this.state = newState;\n if (previousState !== newState) {\n var newStateDescription = newState;\n if (newStateDescription === \"connected\") {\n newStateDescription += \" with new socket ID \" + data.socket_id;\n }\n logger.debug('State changed', previousState + ' -> ' + newStateDescription);\n this.timeline.info({ state: newState, params: data });\n this.emit('state_change', { previous: previousState, current: newState });\n this.emit(newState, data);\n }\n };\n ConnectionManager.prototype.shouldRetry = function () {\n return this.state === \"connecting\" || this.state === \"connected\";\n };\n return ConnectionManager;\n}(dispatcher));\n/* harmony default export */ var connection_manager = (connection_manager_ConnectionManager);\n\n// CONCATENATED MODULE: ./src/core/channels/channels.ts\n\n\n\nvar channels_Channels = (function () {\n function Channels() {\n this.channels = {};\n }\n Channels.prototype.add = function (name, pusher) {\n if (!this.channels[name]) {\n this.channels[name] = createChannel(name, pusher);\n }\n return this.channels[name];\n };\n Channels.prototype.all = function () {\n return values(this.channels);\n };\n Channels.prototype.find = function (name) {\n return this.channels[name];\n };\n Channels.prototype.remove = function (name) {\n var channel = this.channels[name];\n delete this.channels[name];\n return channel;\n };\n Channels.prototype.disconnect = function () {\n objectApply(this.channels, function (channel) {\n channel.disconnect();\n });\n };\n return Channels;\n}());\n/* harmony default export */ var channels = (channels_Channels);\nfunction createChannel(name, pusher) {\n if (name.indexOf('private-encrypted-') === 0) {\n if (false) { var errorMsg; }\n return factory.createEncryptedChannel(name, pusher);\n }\n else if (name.indexOf('private-') === 0) {\n return factory.createPrivateChannel(name, pusher);\n }\n else if (name.indexOf('presence-') === 0) {\n return factory.createPresenceChannel(name, pusher);\n }\n else {\n return factory.createChannel(name, pusher);\n }\n}\n\n// CONCATENATED MODULE: ./src/core/utils/factory.ts\n\n\n\n\n\n\n\n\n\n\nvar Factory = {\n createChannels: function () {\n return new channels();\n },\n createConnectionManager: function (key, options) {\n return new connection_manager(key, options);\n },\n createChannel: function (name, pusher) {\n return new channels_channel(name, pusher);\n },\n createPrivateChannel: function (name, pusher) {\n return new private_channel(name, pusher);\n },\n createPresenceChannel: function (name, pusher) {\n return new presence_channel(name, pusher);\n },\n createEncryptedChannel: function (name, pusher) {\n return new encrypted_channel(name, pusher);\n },\n createTimelineSender: function (timeline, options) {\n return new timeline_sender(timeline, options);\n },\n createAuthorizer: function (channel, options) {\n if (options.authorizer) {\n return options.authorizer(channel, options);\n }\n return new pusher_authorizer(channel, options);\n },\n createHandshake: function (transport, callback) {\n return new connection_handshake(transport, callback);\n },\n createAssistantToTheTransportManager: function (manager, transport, options) {\n return new assistant_to_the_transport_manager(manager, transport, options);\n }\n};\n/* harmony default export */ var factory = (Factory);\n\n// CONCATENATED MODULE: ./src/core/transports/transport_manager.ts\n\nvar transport_manager_TransportManager = (function () {\n function TransportManager(options) {\n this.options = options || {};\n this.livesLeft = this.options.lives || Infinity;\n }\n TransportManager.prototype.getAssistant = function (transport) {\n return factory.createAssistantToTheTransportManager(this, transport, {\n minPingDelay: this.options.minPingDelay,\n maxPingDelay: this.options.maxPingDelay\n });\n };\n TransportManager.prototype.isAlive = function () {\n return this.livesLeft > 0;\n };\n TransportManager.prototype.reportDeath = function () {\n this.livesLeft -= 1;\n };\n return TransportManager;\n}());\n/* harmony default export */ var transport_manager = (transport_manager_TransportManager);\n\n// CONCATENATED MODULE: ./src/core/strategies/sequential_strategy.ts\n\n\n\nvar sequential_strategy_SequentialStrategy = (function () {\n function SequentialStrategy(strategies, options) {\n this.strategies = strategies;\n this.loop = Boolean(options.loop);\n this.failFast = Boolean(options.failFast);\n this.timeout = options.timeout;\n this.timeoutLimit = options.timeoutLimit;\n }\n SequentialStrategy.prototype.isSupported = function () {\n return any(this.strategies, util.method(\"isSupported\"));\n };\n SequentialStrategy.prototype.connect = function (minPriority, callback) {\n var _this = this;\n var strategies = this.strategies;\n var current = 0;\n var timeout = this.timeout;\n var runner = null;\n var tryNextStrategy = function (error, handshake) {\n if (handshake) {\n callback(null, handshake);\n }\n else {\n current = current + 1;\n if (_this.loop) {\n current = current % strategies.length;\n }\n if (current < strategies.length) {\n if (timeout) {\n timeout = timeout * 2;\n if (_this.timeoutLimit) {\n timeout = Math.min(timeout, _this.timeoutLimit);\n }\n }\n runner = _this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: _this.failFast }, tryNextStrategy);\n }\n else {\n callback(true);\n }\n }\n };\n runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy);\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n SequentialStrategy.prototype.tryStrategy = function (strategy, minPriority, options, callback) {\n var timer = null;\n var runner = null;\n if (options.timeout > 0) {\n timer = new OneOffTimer(options.timeout, function () {\n runner.abort();\n callback(true);\n });\n }\n runner = strategy.connect(minPriority, function (error, handshake) {\n if (error && timer && timer.isRunning() && !options.failFast) {\n return;\n }\n if (timer) {\n timer.ensureAborted();\n }\n callback(error, handshake);\n });\n return {\n abort: function () {\n if (timer) {\n timer.ensureAborted();\n }\n runner.abort();\n },\n forceMinPriority: function (p) {\n runner.forceMinPriority(p);\n }\n };\n };\n return SequentialStrategy;\n}());\n/* harmony default export */ var sequential_strategy = (sequential_strategy_SequentialStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/best_connected_ever_strategy.ts\n\n\nvar best_connected_ever_strategy_BestConnectedEverStrategy = (function () {\n function BestConnectedEverStrategy(strategies) {\n this.strategies = strategies;\n }\n BestConnectedEverStrategy.prototype.isSupported = function () {\n return any(this.strategies, util.method(\"isSupported\"));\n };\n BestConnectedEverStrategy.prototype.connect = function (minPriority, callback) {\n return connect(this.strategies, minPriority, function (i, runners) {\n return function (error, handshake) {\n runners[i].error = error;\n if (error) {\n if (allRunnersFailed(runners)) {\n callback(true);\n }\n return;\n }\n apply(runners, function (runner) {\n runner.forceMinPriority(handshake.transport.priority);\n });\n callback(null, handshake);\n };\n });\n };\n return BestConnectedEverStrategy;\n}());\n/* harmony default export */ var best_connected_ever_strategy = (best_connected_ever_strategy_BestConnectedEverStrategy);\nfunction connect(strategies, minPriority, callbackBuilder) {\n var runners = map(strategies, function (strategy, i, _, rs) {\n return strategy.connect(minPriority, callbackBuilder(i, rs));\n });\n return {\n abort: function () {\n apply(runners, abortRunner);\n },\n forceMinPriority: function (p) {\n apply(runners, function (runner) {\n runner.forceMinPriority(p);\n });\n }\n };\n}\nfunction allRunnersFailed(runners) {\n return collections_all(runners, function (runner) {\n return Boolean(runner.error);\n });\n}\nfunction abortRunner(runner) {\n if (!runner.error && !runner.aborted) {\n runner.abort();\n runner.aborted = true;\n }\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/cached_strategy.ts\n\n\n\n\nvar cached_strategy_CachedStrategy = (function () {\n function CachedStrategy(strategy, transports, options) {\n this.strategy = strategy;\n this.transports = transports;\n this.ttl = options.ttl || 1800 * 1000;\n this.usingTLS = options.useTLS;\n this.timeline = options.timeline;\n }\n CachedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n CachedStrategy.prototype.connect = function (minPriority, callback) {\n var usingTLS = this.usingTLS;\n var info = fetchTransportCache(usingTLS);\n var strategies = [this.strategy];\n if (info && info.timestamp + this.ttl >= util.now()) {\n var transport = this.transports[info.transport];\n if (transport) {\n this.timeline.info({\n cached: true,\n transport: info.transport,\n latency: info.latency\n });\n strategies.push(new sequential_strategy([transport], {\n timeout: info.latency * 2 + 1000,\n failFast: true\n }));\n }\n }\n var startTimestamp = util.now();\n var runner = strategies.pop().connect(minPriority, function cb(error, handshake) {\n if (error) {\n flushTransportCache(usingTLS);\n if (strategies.length > 0) {\n startTimestamp = util.now();\n runner = strategies.pop().connect(minPriority, cb);\n }\n else {\n callback(error);\n }\n }\n else {\n storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp);\n callback(null, handshake);\n }\n });\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n return CachedStrategy;\n}());\n/* harmony default export */ var cached_strategy = (cached_strategy_CachedStrategy);\nfunction getTransportCacheKey(usingTLS) {\n return \"pusherTransport\" + (usingTLS ? \"TLS\" : \"NonTLS\");\n}\nfunction fetchTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n var serializedCache = storage[getTransportCacheKey(usingTLS)];\n if (serializedCache) {\n return JSON.parse(serializedCache);\n }\n }\n catch (e) {\n flushTransportCache(usingTLS);\n }\n }\n return null;\n}\nfunction storeTransportCache(usingTLS, transport, latency) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({\n timestamp: util.now(),\n transport: transport,\n latency: latency\n });\n }\n catch (e) {\n }\n }\n}\nfunction flushTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n delete storage[getTransportCacheKey(usingTLS)];\n }\n catch (e) {\n }\n }\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/delayed_strategy.ts\n\nvar delayed_strategy_DelayedStrategy = (function () {\n function DelayedStrategy(strategy, _a) {\n var number = _a.delay;\n this.strategy = strategy;\n this.options = { delay: number };\n }\n DelayedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n DelayedStrategy.prototype.connect = function (minPriority, callback) {\n var strategy = this.strategy;\n var runner;\n var timer = new OneOffTimer(this.options.delay, function () {\n runner = strategy.connect(minPriority, callback);\n });\n return {\n abort: function () {\n timer.ensureAborted();\n if (runner) {\n runner.abort();\n }\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n return DelayedStrategy;\n}());\n/* harmony default export */ var delayed_strategy = (delayed_strategy_DelayedStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/if_strategy.ts\nvar IfStrategy = (function () {\n function IfStrategy(test, trueBranch, falseBranch) {\n this.test = test;\n this.trueBranch = trueBranch;\n this.falseBranch = falseBranch;\n }\n IfStrategy.prototype.isSupported = function () {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.isSupported();\n };\n IfStrategy.prototype.connect = function (minPriority, callback) {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.connect(minPriority, callback);\n };\n return IfStrategy;\n}());\n/* harmony default export */ var if_strategy = (IfStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/first_connected_strategy.ts\nvar FirstConnectedStrategy = (function () {\n function FirstConnectedStrategy(strategy) {\n this.strategy = strategy;\n }\n FirstConnectedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n FirstConnectedStrategy.prototype.connect = function (minPriority, callback) {\n var runner = this.strategy.connect(minPriority, function (error, handshake) {\n if (handshake) {\n runner.abort();\n }\n callback(error, handshake);\n });\n return runner;\n };\n return FirstConnectedStrategy;\n}());\n/* harmony default export */ var first_connected_strategy = (FirstConnectedStrategy);\n\n// CONCATENATED MODULE: ./src/runtimes/web/default_strategy.ts\n\n\n\n\n\n\n\n\nfunction testSupportsStrategy(strategy) {\n return function () {\n return strategy.isSupported();\n };\n}\nvar getDefaultStrategy = function (config, defineTransport) {\n var definedTransports = {};\n function defineTransportStrategy(name, type, priority, options, manager) {\n var transport = defineTransport(config, name, type, priority, options, manager);\n definedTransports[name] = transport;\n return transport;\n }\n var ws_options = {\n hostNonTLS: config.wsHost + \":\" + config.wsPort,\n hostTLS: config.wsHost + \":\" + config.wssPort,\n httpPath: config.wsPath\n };\n var wss_options = extend({}, ws_options, {\n useTLS: true\n });\n var sockjs_options = {\n hostNonTLS: config.httpHost + \":\" + config.httpPort,\n hostTLS: config.httpHost + \":\" + config.httpsPort,\n httpPath: config.httpPath\n };\n var timeouts = {\n loop: true,\n timeout: 15000,\n timeoutLimit: 60000\n };\n var ws_manager = new transport_manager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activity_timeout\n });\n var streaming_manager = new transport_manager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activity_timeout\n });\n var ws_transport = defineTransportStrategy(\"ws\", \"ws\", 3, ws_options, ws_manager);\n var wss_transport = defineTransportStrategy(\"wss\", \"ws\", 3, wss_options, ws_manager);\n var sockjs_transport = defineTransportStrategy(\"sockjs\", \"sockjs\", 1, sockjs_options);\n var xhr_streaming_transport = defineTransportStrategy(\"xhr_streaming\", \"xhr_streaming\", 1, sockjs_options, streaming_manager);\n var xdr_streaming_transport = defineTransportStrategy(\"xdr_streaming\", \"xdr_streaming\", 1, sockjs_options, streaming_manager);\n var xhr_polling_transport = defineTransportStrategy(\"xhr_polling\", \"xhr_polling\", 1, sockjs_options);\n var xdr_polling_transport = defineTransportStrategy(\"xdr_polling\", \"xdr_polling\", 1, sockjs_options);\n var ws_loop = new sequential_strategy([ws_transport], timeouts);\n var wss_loop = new sequential_strategy([wss_transport], timeouts);\n var sockjs_loop = new sequential_strategy([sockjs_transport], timeouts);\n var streaming_loop = new sequential_strategy([new if_strategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport)], timeouts);\n var polling_loop = new sequential_strategy([new if_strategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport)], timeouts);\n var http_loop = new sequential_strategy([new if_strategy(testSupportsStrategy(streaming_loop), new best_connected_ever_strategy([streaming_loop, new delayed_strategy(polling_loop, { delay: 4000 })]), polling_loop)], timeouts);\n var http_fallback_loop = new if_strategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop);\n var wsStrategy;\n if (config.useTLS) {\n wsStrategy = new best_connected_ever_strategy([ws_loop, new delayed_strategy(http_fallback_loop, { delay: 2000 })]);\n }\n else {\n wsStrategy = new best_connected_ever_strategy([\n ws_loop,\n new delayed_strategy(wss_loop, { delay: 2000 }),\n new delayed_strategy(http_fallback_loop, { delay: 5000 })\n ]);\n }\n return new cached_strategy(new first_connected_strategy(new if_strategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, {\n ttl: 1800000,\n timeline: config.timeline,\n useTLS: config.useTLS\n });\n};\n/* harmony default export */ var default_strategy = (getDefaultStrategy);\n\n// CONCATENATED MODULE: ./src/runtimes/web/transports/transport_connection_initializer.ts\n\n/* harmony default export */ var transport_connection_initializer = (function () {\n var self = this;\n self.timeline.info(self.buildTimelineMessage({\n transport: self.name + (self.options.useTLS ? \"s\" : \"\")\n }));\n if (self.hooks.isInitialized()) {\n self.changeState(\"initialized\");\n }\n else if (self.hooks.file) {\n self.changeState(\"initializing\");\n Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) {\n if (self.hooks.isInitialized()) {\n self.changeState(\"initialized\");\n callback(true);\n }\n else {\n if (error) {\n self.onError(error);\n }\n self.onClose();\n callback(false);\n }\n });\n }\n else {\n self.onClose();\n }\n});\n\n// CONCATENATED MODULE: ./src/runtimes/web/http/http_xdomain_request.ts\n\nvar http_xdomain_request_hooks = {\n getRequest: function (socket) {\n var xdr = new window.XDomainRequest();\n xdr.ontimeout = function () {\n socket.emit(\"error\", new RequestTimedOut());\n socket.close();\n };\n xdr.onerror = function (e) {\n socket.emit(\"error\", e);\n socket.close();\n };\n xdr.onprogress = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n };\n xdr.onload = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n socket.emit(\"finished\", 200);\n socket.close();\n };\n return xdr;\n },\n abortRequest: function (xdr) {\n xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;\n xdr.abort();\n }\n};\n/* harmony default export */ var http_xdomain_request = (http_xdomain_request_hooks);\n\n// CONCATENATED MODULE: ./src/core/http/http_request.ts\nvar http_request_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar MAX_BUFFER_LENGTH = 256 * 1024;\nvar http_request_HTTPRequest = (function (_super) {\n http_request_extends(HTTPRequest, _super);\n function HTTPRequest(hooks, method, url) {\n var _this = _super.call(this) || this;\n _this.hooks = hooks;\n _this.method = method;\n _this.url = url;\n return _this;\n }\n HTTPRequest.prototype.start = function (payload) {\n var _this = this;\n this.position = 0;\n this.xhr = this.hooks.getRequest(this);\n this.unloader = function () {\n _this.close();\n };\n runtime.addUnloadListener(this.unloader);\n this.xhr.open(this.method, this.url, true);\n if (this.xhr.setRequestHeader) {\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n }\n this.xhr.send(payload);\n };\n HTTPRequest.prototype.close = function () {\n if (this.unloader) {\n runtime.removeUnloadListener(this.unloader);\n this.unloader = null;\n }\n if (this.xhr) {\n this.hooks.abortRequest(this.xhr);\n this.xhr = null;\n }\n };\n HTTPRequest.prototype.onChunk = function (status, data) {\n while (true) {\n var chunk = this.advanceBuffer(data);\n if (chunk) {\n this.emit(\"chunk\", { status: status, data: chunk });\n }\n else {\n break;\n }\n }\n if (this.isBufferTooLong(data)) {\n this.emit(\"buffer_too_long\");\n }\n };\n HTTPRequest.prototype.advanceBuffer = function (buffer) {\n var unreadData = buffer.slice(this.position);\n var endOfLinePosition = unreadData.indexOf(\"\\n\");\n if (endOfLinePosition !== -1) {\n this.position += endOfLinePosition + 1;\n return unreadData.slice(0, endOfLinePosition);\n }\n else {\n return null;\n }\n };\n HTTPRequest.prototype.isBufferTooLong = function (buffer) {\n return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH;\n };\n return HTTPRequest;\n}(dispatcher));\n/* harmony default export */ var http_request = (http_request_HTTPRequest);\n\n// CONCATENATED MODULE: ./src/core/http/state.ts\nvar State;\n(function (State) {\n State[State[\"CONNECTING\"] = 0] = \"CONNECTING\";\n State[State[\"OPEN\"] = 1] = \"OPEN\";\n State[State[\"CLOSED\"] = 3] = \"CLOSED\";\n})(State || (State = {}));\n/* harmony default export */ var state = (State);\n\n// CONCATENATED MODULE: ./src/core/http/http_socket.ts\n\n\n\nvar autoIncrement = 1;\nvar http_socket_HTTPSocket = (function () {\n function HTTPSocket(hooks, url) {\n this.hooks = hooks;\n this.session = randomNumber(1000) + \"/\" + randomString(8);\n this.location = getLocation(url);\n this.readyState = state.CONNECTING;\n this.openStream();\n }\n HTTPSocket.prototype.send = function (payload) {\n return this.sendRaw(JSON.stringify([payload]));\n };\n HTTPSocket.prototype.ping = function () {\n this.hooks.sendHeartbeat(this);\n };\n HTTPSocket.prototype.close = function (code, reason) {\n this.onClose(code, reason, true);\n };\n HTTPSocket.prototype.sendRaw = function (payload) {\n if (this.readyState === state.OPEN) {\n try {\n runtime.createSocketRequest(\"POST\", getUniqueURL(getSendURL(this.location, this.session))).start(payload);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n else {\n return false;\n }\n };\n HTTPSocket.prototype.reconnect = function () {\n this.closeStream();\n this.openStream();\n };\n ;\n HTTPSocket.prototype.onClose = function (code, reason, wasClean) {\n this.closeStream();\n this.readyState = state.CLOSED;\n if (this.onclose) {\n this.onclose({\n code: code,\n reason: reason,\n wasClean: wasClean\n });\n }\n };\n HTTPSocket.prototype.onChunk = function (chunk) {\n if (chunk.status !== 200) {\n return;\n }\n if (this.readyState === state.OPEN) {\n this.onActivity();\n }\n var payload;\n var type = chunk.data.slice(0, 1);\n switch (type) {\n case 'o':\n payload = JSON.parse(chunk.data.slice(1) || '{}');\n this.onOpen(payload);\n break;\n case 'a':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n for (var i = 0; i < payload.length; i++) {\n this.onEvent(payload[i]);\n }\n break;\n case 'm':\n payload = JSON.parse(chunk.data.slice(1) || 'null');\n this.onEvent(payload);\n break;\n case 'h':\n this.hooks.onHeartbeat(this);\n break;\n case 'c':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n this.onClose(payload[0], payload[1], true);\n break;\n }\n };\n HTTPSocket.prototype.onOpen = function (options) {\n if (this.readyState === state.CONNECTING) {\n if (options && options.hostname) {\n this.location.base = replaceHost(this.location.base, options.hostname);\n }\n this.readyState = state.OPEN;\n if (this.onopen) {\n this.onopen();\n }\n }\n else {\n this.onClose(1006, \"Server lost session\", true);\n }\n };\n HTTPSocket.prototype.onEvent = function (event) {\n if (this.readyState === state.OPEN && this.onmessage) {\n this.onmessage({ data: event });\n }\n };\n HTTPSocket.prototype.onActivity = function () {\n if (this.onactivity) {\n this.onactivity();\n }\n };\n HTTPSocket.prototype.onError = function (error) {\n if (this.onerror) {\n this.onerror(error);\n }\n };\n HTTPSocket.prototype.openStream = function () {\n var _this = this;\n this.stream = runtime.createSocketRequest(\"POST\", getUniqueURL(this.hooks.getReceiveURL(this.location, this.session)));\n this.stream.bind(\"chunk\", function (chunk) {\n _this.onChunk(chunk);\n });\n this.stream.bind(\"finished\", function (status) {\n _this.hooks.onFinished(_this, status);\n });\n this.stream.bind(\"buffer_too_long\", function () {\n _this.reconnect();\n });\n try {\n this.stream.start();\n }\n catch (error) {\n util.defer(function () {\n _this.onError(error);\n _this.onClose(1006, \"Could not start streaming\", false);\n });\n }\n };\n HTTPSocket.prototype.closeStream = function () {\n if (this.stream) {\n this.stream.unbind_all();\n this.stream.close();\n this.stream = null;\n }\n };\n return HTTPSocket;\n}());\nfunction getLocation(url) {\n var parts = /([^\\?]*)\\/*(\\??.*)/.exec(url);\n return {\n base: parts[1],\n queryString: parts[2]\n };\n}\nfunction getSendURL(url, session) {\n return url.base + \"/\" + session + \"/xhr_send\";\n}\nfunction getUniqueURL(url) {\n var separator = (url.indexOf('?') === -1) ? \"?\" : \"&\";\n return url + separator + \"t=\" + (+new Date()) + \"&n=\" + autoIncrement++;\n}\nfunction replaceHost(url, hostname) {\n var urlParts = /(https?:\\/\\/)([^\\/:]+)((\\/|:)?.*)/.exec(url);\n return urlParts[1] + hostname + urlParts[3];\n}\nfunction randomNumber(max) {\n return Math.floor(Math.random() * max);\n}\nfunction randomString(length) {\n var result = [];\n for (var i = 0; i < length; i++) {\n result.push(randomNumber(32).toString(32));\n }\n return result.join('');\n}\n/* harmony default export */ var http_socket = (http_socket_HTTPSocket);\n\n// CONCATENATED MODULE: ./src/core/http/http_streaming_socket.ts\nvar http_streaming_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + \"/\" + session + \"/xhr_streaming\" + url.queryString;\n },\n onHeartbeat: function (socket) {\n socket.sendRaw(\"[]\");\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw(\"[]\");\n },\n onFinished: function (socket, status) {\n socket.onClose(1006, \"Connection interrupted (\" + status + \")\", false);\n }\n};\n/* harmony default export */ var http_streaming_socket = (http_streaming_socket_hooks);\n\n// CONCATENATED MODULE: ./src/core/http/http_polling_socket.ts\nvar http_polling_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + \"/\" + session + \"/xhr\" + url.queryString;\n },\n onHeartbeat: function () {\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw(\"[]\");\n },\n onFinished: function (socket, status) {\n if (status === 200) {\n socket.reconnect();\n }\n else {\n socket.onClose(1006, \"Connection interrupted (\" + status + \")\", false);\n }\n }\n};\n/* harmony default export */ var http_polling_socket = (http_polling_socket_hooks);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http_xhr_request.ts\n\nvar http_xhr_request_hooks = {\n getRequest: function (socket) {\n var Constructor = runtime.getXHRAPI();\n var xhr = new Constructor();\n xhr.onreadystatechange = xhr.onprogress = function () {\n switch (xhr.readyState) {\n case 3:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n break;\n case 4:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n socket.emit(\"finished\", xhr.status);\n socket.close();\n break;\n }\n };\n return xhr;\n },\n abortRequest: function (xhr) {\n xhr.onreadystatechange = null;\n xhr.abort();\n }\n};\n/* harmony default export */ var http_xhr_request = (http_xhr_request_hooks);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http.ts\n\n\n\n\n\nvar HTTP = {\n createStreamingSocket: function (url) {\n return this.createSocket(http_streaming_socket, url);\n },\n createPollingSocket: function (url) {\n return this.createSocket(http_polling_socket, url);\n },\n createSocket: function (hooks, url) {\n return new http_socket(hooks, url);\n },\n createXHR: function (method, url) {\n return this.createRequest(http_xhr_request, method, url);\n },\n createRequest: function (hooks, method, url) {\n return new http_request(hooks, method, url);\n }\n};\n/* harmony default export */ var http_http = (HTTP);\n\n// CONCATENATED MODULE: ./src/runtimes/web/http/http.ts\n\n\nhttp_http.createXDR = function (method, url) {\n return this.createRequest(http_xdomain_request, method, url);\n};\n/* harmony default export */ var web_http_http = (http_http);\n\n// CONCATENATED MODULE: ./src/runtimes/web/runtime.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar Runtime = {\n nextAuthCallbackID: 1,\n auth_callbacks: {},\n ScriptReceivers: ScriptReceivers,\n DependenciesReceivers: DependenciesReceivers,\n getDefaultStrategy: default_strategy,\n Transports: transports_transports,\n transportConnectionInitializer: transport_connection_initializer,\n HTTPFactory: web_http_http,\n TimelineTransport: jsonp_timeline,\n getXHRAPI: function () {\n return window.XMLHttpRequest;\n },\n getWebSocketAPI: function () {\n return window.WebSocket || window.MozWebSocket;\n },\n setup: function (PusherClass) {\n var _this = this;\n window.Pusher = PusherClass;\n var initializeOnDocumentBody = function () {\n _this.onDocumentBody(PusherClass.ready);\n };\n if (!window.JSON) {\n Dependencies.load(\"json2\", {}, initializeOnDocumentBody);\n }\n else {\n initializeOnDocumentBody();\n }\n },\n getDocument: function () {\n return document;\n },\n getProtocol: function () {\n return this.getDocument().location.protocol;\n },\n getAuthorizers: function () {\n return { ajax: xhr_auth, jsonp: jsonp_auth };\n },\n onDocumentBody: function (callback) {\n var _this = this;\n if (document.body) {\n callback();\n }\n else {\n setTimeout(function () {\n _this.onDocumentBody(callback);\n }, 0);\n }\n },\n createJSONPRequest: function (url, data) {\n return new jsonp_request(url, data);\n },\n createScriptRequest: function (src) {\n return new script_request(src);\n },\n getLocalStorage: function () {\n try {\n return window.localStorage;\n }\n catch (e) {\n return undefined;\n }\n },\n createXHR: function () {\n if (this.getXHRAPI()) {\n return this.createXMLHttpRequest();\n }\n else {\n return this.createMicrosoftXHR();\n }\n },\n createXMLHttpRequest: function () {\n var Constructor = this.getXHRAPI();\n return new Constructor();\n },\n createMicrosoftXHR: function () {\n return new ActiveXObject(\"Microsoft.XMLHTTP\");\n },\n getNetwork: function () {\n return net_info_Network;\n },\n createWebSocket: function (url) {\n var Constructor = this.getWebSocketAPI();\n return new Constructor(url);\n },\n createSocketRequest: function (method, url) {\n if (this.isXHRSupported()) {\n return this.HTTPFactory.createXHR(method, url);\n }\n else if (this.isXDRSupported(url.indexOf(\"https:\") === 0)) {\n return this.HTTPFactory.createXDR(method, url);\n }\n else {\n throw \"Cross-origin HTTP requests are not supported\";\n }\n },\n isXHRSupported: function () {\n var Constructor = this.getXHRAPI();\n return Boolean(Constructor) && (new Constructor()).withCredentials !== undefined;\n },\n isXDRSupported: function (useTLS) {\n var protocol = useTLS ? \"https:\" : \"http:\";\n var documentProtocol = this.getProtocol();\n return Boolean((window['XDomainRequest'])) && documentProtocol === protocol;\n },\n addUnloadListener: function (listener) {\n if (window.addEventListener !== undefined) {\n window.addEventListener(\"unload\", listener, false);\n }\n else if (window.attachEvent !== undefined) {\n window.attachEvent(\"onunload\", listener);\n }\n },\n removeUnloadListener: function (listener) {\n if (window.addEventListener !== undefined) {\n window.removeEventListener(\"unload\", listener, false);\n }\n else if (window.detachEvent !== undefined) {\n window.detachEvent(\"onunload\", listener);\n }\n }\n};\n/* harmony default export */ var runtime = (Runtime);\n\n// CONCATENATED MODULE: ./src/core/timeline/level.ts\nvar TimelineLevel;\n(function (TimelineLevel) {\n TimelineLevel[TimelineLevel[\"ERROR\"] = 3] = \"ERROR\";\n TimelineLevel[TimelineLevel[\"INFO\"] = 6] = \"INFO\";\n TimelineLevel[TimelineLevel[\"DEBUG\"] = 7] = \"DEBUG\";\n})(TimelineLevel || (TimelineLevel = {}));\n/* harmony default export */ var timeline_level = (TimelineLevel);\n\n// CONCATENATED MODULE: ./src/core/timeline/timeline.ts\n\n\n\nvar timeline_Timeline = (function () {\n function Timeline(key, session, options) {\n this.key = key;\n this.session = session;\n this.events = [];\n this.options = options || {};\n this.sent = 0;\n this.uniqueID = 0;\n }\n Timeline.prototype.log = function (level, event) {\n if (level <= this.options.level) {\n this.events.push(extend({}, event, { timestamp: util.now() }));\n if (this.options.limit && this.events.length > this.options.limit) {\n this.events.shift();\n }\n }\n };\n Timeline.prototype.error = function (event) {\n this.log(timeline_level.ERROR, event);\n };\n Timeline.prototype.info = function (event) {\n this.log(timeline_level.INFO, event);\n };\n Timeline.prototype.debug = function (event) {\n this.log(timeline_level.DEBUG, event);\n };\n Timeline.prototype.isEmpty = function () {\n return this.events.length === 0;\n };\n Timeline.prototype.send = function (sendfn, callback) {\n var _this = this;\n var data = extend({\n session: this.session,\n bundle: this.sent + 1,\n key: this.key,\n lib: \"js\",\n version: this.options.version,\n cluster: this.options.cluster,\n features: this.options.features,\n timeline: this.events\n }, this.options.params);\n this.events = [];\n sendfn(data, function (error, result) {\n if (!error) {\n _this.sent++;\n }\n if (callback) {\n callback(error, result);\n }\n });\n return true;\n };\n Timeline.prototype.generateUniqueID = function () {\n this.uniqueID++;\n return this.uniqueID;\n };\n return Timeline;\n}());\n/* harmony default export */ var timeline_timeline = (timeline_Timeline);\n\n// CONCATENATED MODULE: ./src/core/strategies/transport_strategy.ts\n\n\n\n\nvar transport_strategy_TransportStrategy = (function () {\n function TransportStrategy(name, priority, transport, options) {\n this.name = name;\n this.priority = priority;\n this.transport = transport;\n this.options = options || {};\n }\n TransportStrategy.prototype.isSupported = function () {\n return this.transport.isSupported({\n useTLS: this.options.useTLS\n });\n };\n TransportStrategy.prototype.connect = function (minPriority, callback) {\n var _this = this;\n if (!this.isSupported()) {\n return failAttempt(new UnsupportedStrategy(), callback);\n }\n else if (this.priority < minPriority) {\n return failAttempt(new TransportPriorityTooLow(), callback);\n }\n var connected = false;\n var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options);\n var handshake = null;\n var onInitialized = function () {\n transport.unbind(\"initialized\", onInitialized);\n transport.connect();\n };\n var onOpen = function () {\n handshake = factory.createHandshake(transport, function (result) {\n connected = true;\n unbindListeners();\n callback(null, result);\n });\n };\n var onError = function (error) {\n unbindListeners();\n callback(error);\n };\n var onClosed = function () {\n unbindListeners();\n var serializedTransport;\n serializedTransport = safeJSONStringify(transport);\n callback(new TransportClosed(serializedTransport));\n };\n var unbindListeners = function () {\n transport.unbind(\"initialized\", onInitialized);\n transport.unbind(\"open\", onOpen);\n transport.unbind(\"error\", onError);\n transport.unbind(\"closed\", onClosed);\n };\n transport.bind(\"initialized\", onInitialized);\n transport.bind(\"open\", onOpen);\n transport.bind(\"error\", onError);\n transport.bind(\"closed\", onClosed);\n transport.initialize();\n return {\n abort: function () {\n if (connected) {\n return;\n }\n unbindListeners();\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n },\n forceMinPriority: function (p) {\n if (connected) {\n return;\n }\n if (_this.priority < p) {\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n }\n }\n };\n };\n return TransportStrategy;\n}());\n/* harmony default export */ var transport_strategy = (transport_strategy_TransportStrategy);\nfunction failAttempt(error, callback) {\n util.defer(function () {\n callback(error);\n });\n return {\n abort: function () { },\n forceMinPriority: function () { }\n };\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/strategy_builder.ts\n\n\n\n\n\nvar strategy_builder_Transports = runtime.Transports;\nvar strategy_builder_defineTransport = function (config, name, type, priority, options, manager) {\n var transportClass = strategy_builder_Transports[type];\n if (!transportClass) {\n throw new UnsupportedTransport(type);\n }\n var enabled = (!config.enabledTransports ||\n arrayIndexOf(config.enabledTransports, name) !== -1) &&\n (!config.disabledTransports ||\n arrayIndexOf(config.disabledTransports, name) === -1);\n var transport;\n if (enabled) {\n transport = new transport_strategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, extend({\n key: config.key,\n useTLS: config.useTLS,\n timeline: config.timeline,\n ignoreNullOrigin: config.ignoreNullOrigin\n }, options));\n }\n else {\n transport = strategy_builder_UnsupportedStrategy;\n }\n return transport;\n};\nvar strategy_builder_UnsupportedStrategy = {\n isSupported: function () {\n return false;\n },\n connect: function (_, callback) {\n var deferred = util.defer(function () {\n callback(new UnsupportedStrategy());\n });\n return {\n abort: function () {\n deferred.ensureAborted();\n },\n forceMinPriority: function () { }\n };\n }\n};\n\n// CONCATENATED MODULE: ./src/core/config.ts\n\nvar getGlobalConfig = function () {\n return {\n wsHost: defaults.host,\n wsPort: defaults.ws_port,\n wssPort: defaults.wss_port,\n wsPath: defaults.ws_path,\n httpHost: defaults.sockjs_host,\n httpPort: defaults.sockjs_http_port,\n httpsPort: defaults.sockjs_https_port,\n httpPath: defaults.sockjs_path,\n statsHost: defaults.stats_host,\n authEndpoint: defaults.channel_auth_endpoint,\n authTransport: defaults.channel_auth_transport,\n activity_timeout: defaults.activity_timeout,\n pong_timeout: defaults.pong_timeout,\n unavailable_timeout: defaults.unavailable_timeout\n };\n};\nvar getClusterConfig = function (clusterName) {\n return {\n wsHost: 'ws-' + clusterName + '.pusher.com',\n httpHost: 'sockjs-' + clusterName + '.pusher.com'\n };\n};\n\n// CONCATENATED MODULE: ./src/core/pusher.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar pusher_Pusher = (function () {\n function Pusher(app_key, options) {\n var _this = this;\n checkAppKey(app_key);\n options = options || {};\n if (!options.cluster && !(options.wsHost || options.httpHost)) {\n var suffix = url_store.buildLogSuffix('javascriptQuickStart');\n logger.warn(\"You should always specify a cluster when connecting. \" + suffix);\n }\n this.key = app_key;\n this.config = extend(getGlobalConfig(), options.cluster ? getClusterConfig(options.cluster) : {}, options);\n this.channels = factory.createChannels();\n this.global_emitter = new dispatcher();\n this.sessionID = Math.floor(Math.random() * 1000000000);\n this.timeline = new timeline_timeline(this.key, this.sessionID, {\n cluster: this.config.cluster,\n features: Pusher.getClientFeatures(),\n params: this.config.timelineParams || {},\n limit: 50,\n level: timeline_level.INFO,\n version: defaults.VERSION\n });\n if (!this.config.disableStats) {\n this.timelineSender = factory.createTimelineSender(this.timeline, {\n host: this.config.statsHost,\n path: '/timeline/v2/' + runtime.TimelineTransport.name\n });\n }\n var getStrategy = function (options) {\n var config = extend({}, _this.config, options);\n return runtime.getDefaultStrategy(config, strategy_builder_defineTransport);\n };\n this.connection = factory.createConnectionManager(this.key, extend({\n getStrategy: getStrategy,\n timeline: this.timeline,\n activityTimeout: this.config.activity_timeout,\n pongTimeout: this.config.pong_timeout,\n unavailableTimeout: this.config.unavailable_timeout\n }, this.config, { useTLS: this.shouldUseTLS() }));\n this.connection.bind('connected', function () {\n _this.subscribeAll();\n if (_this.timelineSender) {\n _this.timelineSender.send(_this.connection.isUsingTLS());\n }\n });\n this.connection.bind('message', function (event) {\n var eventName = event.event;\n var internal = eventName.indexOf('pusher_internal:') === 0;\n if (event.channel) {\n var channel = _this.channel(event.channel);\n if (channel) {\n channel.handleEvent(event);\n }\n }\n if (!internal) {\n _this.global_emitter.emit(event.event, event.data);\n }\n });\n this.connection.bind('connecting', function () {\n _this.channels.disconnect();\n });\n this.connection.bind('disconnected', function () {\n _this.channels.disconnect();\n });\n this.connection.bind('error', function (err) {\n logger.warn(err);\n });\n Pusher.instances.push(this);\n this.timeline.info({ instances: Pusher.instances.length });\n if (Pusher.isReady) {\n this.connect();\n }\n }\n Pusher.ready = function () {\n Pusher.isReady = true;\n for (var i = 0, l = Pusher.instances.length; i < l; i++) {\n Pusher.instances[i].connect();\n }\n };\n Pusher.getClientFeatures = function () {\n return keys(filterObject({ ws: runtime.Transports.ws }, function (t) {\n return t.isSupported({});\n }));\n };\n Pusher.prototype.channel = function (name) {\n return this.channels.find(name);\n };\n Pusher.prototype.allChannels = function () {\n return this.channels.all();\n };\n Pusher.prototype.connect = function () {\n this.connection.connect();\n if (this.timelineSender) {\n if (!this.timelineSenderTimer) {\n var usingTLS = this.connection.isUsingTLS();\n var timelineSender = this.timelineSender;\n this.timelineSenderTimer = new PeriodicTimer(60000, function () {\n timelineSender.send(usingTLS);\n });\n }\n }\n };\n Pusher.prototype.disconnect = function () {\n this.connection.disconnect();\n if (this.timelineSenderTimer) {\n this.timelineSenderTimer.ensureAborted();\n this.timelineSenderTimer = null;\n }\n };\n Pusher.prototype.bind = function (event_name, callback, context) {\n this.global_emitter.bind(event_name, callback, context);\n return this;\n };\n Pusher.prototype.unbind = function (event_name, callback, context) {\n this.global_emitter.unbind(event_name, callback, context);\n return this;\n };\n Pusher.prototype.bind_global = function (callback) {\n this.global_emitter.bind_global(callback);\n return this;\n };\n Pusher.prototype.unbind_global = function (callback) {\n this.global_emitter.unbind_global(callback);\n return this;\n };\n Pusher.prototype.unbind_all = function (callback) {\n this.global_emitter.unbind_all();\n return this;\n };\n Pusher.prototype.subscribeAll = function () {\n var channelName;\n for (channelName in this.channels.channels) {\n if (this.channels.channels.hasOwnProperty(channelName)) {\n this.subscribe(channelName);\n }\n }\n };\n Pusher.prototype.subscribe = function (channel_name) {\n var channel = this.channels.add(channel_name, this);\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.connection.state === 'connected') {\n channel.subscribe();\n }\n return channel;\n };\n Pusher.prototype.unsubscribe = function (channel_name) {\n var channel = this.channels.find(channel_name);\n if (channel && channel.subscriptionPending) {\n channel.cancelSubscription();\n }\n else {\n channel = this.channels.remove(channel_name);\n if (channel && this.connection.state === 'connected') {\n channel.unsubscribe();\n }\n }\n };\n Pusher.prototype.send_event = function (event_name, data, channel) {\n return this.connection.send_event(event_name, data, channel);\n };\n Pusher.prototype.shouldUseTLS = function () {\n if (runtime.getProtocol() === 'https:') {\n return true;\n }\n else if (this.config.forceTLS === true) {\n return true;\n }\n else {\n return Boolean(this.config.encrypted);\n }\n };\n Pusher.instances = [];\n Pusher.isReady = false;\n Pusher.logToConsole = false;\n Pusher.Runtime = runtime;\n Pusher.ScriptReceivers = runtime.ScriptReceivers;\n Pusher.DependenciesReceivers = runtime.DependenciesReceivers;\n Pusher.auth_callbacks = runtime.auth_callbacks;\n return Pusher;\n}());\n/* harmony default export */ var core_pusher = __webpack_exports__[\"default\"] = (pusher_Pusher);\nfunction checkAppKey(key) {\n if (key === null || key === undefined) {\n throw 'You must pass your app key when you instantiate Pusher.';\n }\n}\nruntime.setup(pusher_Pusher);\n\n\n/***/ })\n/******/ ]);\n});"],"names":["factory","window","modules","installedModules","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","nacl","gf","init","Float64Array","length","randombytes","Error","_0","Uint8Array","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","vn","xi","y","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","out","inp","k","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","b","z","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","this","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","crypto_scalarmult","e","f","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","unpackneg","chk","num","den","den2","den4","den6","pow2523","crypto_sign_open","crypto","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_BOXZEROBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_NONCEBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","arguments","TypeError","cleanup","arr","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_BEFORENMBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","self","msCrypto","getRandomValues","min","__webpack_require__","root","util","validateBase64","test","decodeUTF8","unescape","encodeURIComponent","charCodeAt","encodeUTF8","push","String","fromCharCode","decodeURIComponent","escape","join","atob","Buffer","from","encodeBase64","toString","decodeBase64","Array","slice","len","btoa","default","__webpack_exports__","ScriptReceiverFactory","prefix","lastId","callback","number","id","called","callbackWrapper","apply","remove","receiver","ScriptReceivers","defaults","VERSION","PROTOCOL","host","ws_port","wss_port","ws_path","sockjs_host","sockjs_http_port","sockjs_https_port","sockjs_path","stats_host","channel_auth_endpoint","channel_auth_transport","activity_timeout","pong_timeout","unavailable_timeout","cdn_http","cdn_https","dependency_suffix","dependency_loader","DependencyLoader","options","receivers","loading","load","request","runtime","createScriptRequest","getPath","error","callbacks","successCallback","wasSuccessful","send","getRoot","protocol","getDocument","location","useTLS","replace","version","suffix","DependenciesReceivers","Dependencies","b64chars","b64tab","base64_i","charAt","extendStatics","cb_utob","cc","utob","cb_encode","ccc","padlen","ord","abstract_timer","Timer","set","clear","delay","_this","timer","isRunning","ensureAborted","__extends","setPrototypeOf","__proto__","__","constructor","timers_clearTimeout","clearTimeout","timers_clearInterval","clearInterval","OneOffTimer","_super","setTimeout","PeriodicTimer","setInterval","Util","now","Date","valueOf","defer","method","args","_i","boundArguments","concat","extend","target","sources","extensions","stringify","safeJSONStringify","arrayIndexOf","array","item","nativeIndexOf","indexOf","objectApply","keys","_","context","map","result","filter","filterObject","Boolean","any","encodeParamsObject","data","buildQueryString","params","undefined","source","JSON","objects","paths","derez","path","nu","$ref","logger_Logger","Logger","globalLog","message","console","log","debug","warn","globalLogWarn","globalLogError","defaultLoggingFunction","core_pusher","logToConsole","logger","urlStore","baseUrl","urls","authenticationEndpoint","javascriptQuickStart","triggeringClientEvents","url_store","buildLogSuffix","url","urlObj","fullUrl","urlPrefix","xhr_auth","socketId","xhr","headerName","createXHR","authEndpoint","setRequestHeader","authOptions","headers","onreadystatechange","readyState","status","parsed","parse","responseText","composeQuery","jsonp_auth","callbackName","nextAuthCallbackID","document","script","createElement","auth_callbacks","callback_name","src","head","getElementsByTagName","documentElement","insertBefore","firstChild","script_request","ScriptRequest","errorString","type","charset","addEventListener","onerror","onload","async","attachEvent","navigator","userAgent","errorScript","text","nextSibling","parentNode","removeChild","jsonp_request","JSONPRequest","query","jsonp_timeline","getAgent","sender","createJSONPRequest","getGenericURL","baseScheme","hostTLS","hostNonTLS","getGenericPath","queryString","ws","getInitial","httpPath","http","sockjs","callback_registry","CallbackRegistry","_callbacks","prefixedEventName","names","removeCallback","removeAllCallbacks","binding","dispatcher","Dispatcher","failThrough","global_callbacks","eventName","bind_global","unbind","unbind_global","unbind_all","emit","metadata","transport_connection_extends","transport_connection_TransportConnection","TransportConnection","hooks","priority","initialize","transportConnectionInitializer","state","timeline","activityTimeout","generateUniqueID","handlesActivityChecks","supportsPing","connect","socket","getSocket","onError","changeState","bindListeners","transport","close","ping","onOpen","beforeOpen","onopen","buildTimelineMessage","onClose","closeEvent","code","reason","wasClean","unbindListeners","onMessage","onActivity","onclose","onmessage","onactivity","info","cid","transport_connection","transports_transport","Transport","isSupported","environment","createConnection","WSTransport","isInitialized","getWebSocketAPI","createWebSocket","httpConfiguration","streamingConfiguration","HTTPFactory","createStreamingSocket","pollingConfiguration","createPollingSocket","xhrConfiguration","isXHRSupported","transports","xhr_streaming","xhr_polling","SockJSTransport","file","SockJS","js_path","ignore_null_origin","ignoreNullOrigin","xdrConfiguration","isXDRSupported","XDRStreamingTransport","XDRPollingTransport","xdr_streaming","xdr_polling","transports_transports","net_info_extends","net_info_Network","NetInfo","isOnline","onLine","assistant_to_the_transport_manager","AssistantToTheTransportManager","manager","minPingDelay","maxPingDelay","pingDelay","connection","openTimestamp","onClosed","reportDeath","lifespan","max","isAlive","Protocol","decodeMessage","messageEvent","messageData","pusherEventData","pusherEvent","event","channel","user_id","encodeMessage","processHandshake","action","socket_id","getCloseAction","getCloseError","protocol_protocol","connection_extends","connection_connection","Connection","send_event","listeners","activity","closed","handleCloseEvent","listener","connection_handshake","Handshake","pusher_authorizer","PusherAuthorizer","authTransport","getAuthorizers","auth","authorize","authorizers","timeline_sender","TimelineSender","isEmpty","TimelineTransport","errors_extends","BadEventName","_newTarget","RequestTimedOut","TransportPriorityTooLow","TransportClosed","UnsupportedFeature","UnsupportedTransport","UnsupportedStrategy","channel_extends","channels_channel","Channel","pusher","subscribed","subscriptionPending","subscriptionCancelled","trigger","disconnect","handleEvent","handleSubscriptionSucceededEvent","unsubscribe","subscribe","channel_data","cancelSubscription","reinstateSubscription","private_channel_extends","private_channel_PrivateChannel","PrivateChannel","createAuthorizer","config","private_channel","members","Members","reset","each","member","setMyID","myID","onSubscription","subscriptionData","presence","count","me","addMember","memberData","user_info","removeMember","presence_channel_extends","presence_channel","PresenceChannel","authData","channelData","handleInternalEvent","addedMember","removedMember","nacl_fast","nacl_util","encrypted_channel_extends","encrypted_channel_EncryptedChannel","EncryptedChannel","sharedSecret","errorMsg","handleEncryptedEvent","ciphertext","cipherText","emitJSON","encrypted_channel","connection_manager_extends","connection_manager","ConnectionManager","usingTLS","errorCallbacks","buildErrorCallbacks","connectionCallbacks","buildConnectionCallbacks","handshakeCallbacks","buildHandshakeCallbacks","Network","getNetwork","netinfo","retryIn","sendActivityCheck","updateStrategy","runner","strategy","updateState","startConnecting","setUnavailableTimer","disconnectInternally","isUsingTLS","handshake","handshakeError","abortConnecting","abort","clearRetryTimer","clearUnavailableTimer","abandonConnection","getStrategy","round","retryTimer","unavailableTimer","unavailableTimeout","stopActivityCheck","activityTimer","pongTimeout","pong_timed_out","resetActivityCheck","shouldRetry","connected","Infinity","setConnection","withErrorEmitted","tls_only","refused","backoff","retry","newState","previousState","newStateDescription","previous","current","channels_Channels","Channels","channels","createEncryptedChannel","createPrivateChannel","createPresenceChannel","createChannel","all","values","find","createChannels","createConnectionManager","createTimelineSender","authorizer","createHandshake","createAssistantToTheTransportManager","transport_manager","TransportManager","livesLeft","lives","getAssistant","sequential_strategy","SequentialStrategy","strategies","loop","failFast","timeout","timeoutLimit","minPriority","tryNextStrategy","tryStrategy","forceMinPriority","best_connected_ever_strategy","BestConnectedEverStrategy","callbackBuilder","runners","rs","abortRunner","collections_all","allRunnersFailed","aborted","cached_strategy_CachedStrategy","CachedStrategy","ttl","storage","getLocalStorage","serializedCache","getTransportCacheKey","flushTransportCache","fetchTransportCache","timestamp","cached","latency","startTimestamp","pop","cb","storeTransportCache","cached_strategy","delayed_strategy","DelayedStrategy","_a","if_strategy","IfStrategy","trueBranch","falseBranch","first_connected_strategy","FirstConnectedStrategy","testSupportsStrategy","State","default_strategy","defineTransport","definedTransports","defineTransportStrategy","wsStrategy","ws_options","wsHost","wsPort","wssPort","wsPath","wss_options","sockjs_options","httpHost","httpPort","httpsPort","timeouts","ws_manager","streaming_manager","ws_transport","wss_transport","sockjs_transport","xhr_streaming_transport","xdr_streaming_transport","xhr_polling_transport","xdr_polling_transport","ws_loop","wss_loop","sockjs_loop","streaming_loop","polling_loop","http_loop","http_fallback_loop","http_xdomain_request","getRequest","xdr","XDomainRequest","ontimeout","onprogress","onChunk","abortRequest","http_request_extends","http_request","HTTPRequest","start","payload","position","unloader","addUnloadListener","removeUnloadListener","chunk","advanceBuffer","isBufferTooLong","unreadData","endOfLinePosition","autoIncrement","getUniqueURL","separator","randomNumber","random","TimelineLevel","http_socket","HTTPSocket","session","randomString","parts","exec","getLocation","CONNECTING","openStream","sendRaw","sendHeartbeat","OPEN","createSocketRequest","reconnect","closeStream","CLOSED","onEvent","onHeartbeat","hostname","urlParts","stream","getReceiveURL","onFinished","http_streaming_socket","http_polling_socket","http_xhr_request","getXHRAPI","http_http","createSocket","createRequest","getDefaultStrategy","Transports","XMLHttpRequest","WebSocket","MozWebSocket","setup","PusherClass","Pusher","initializeOnDocumentBody","onDocumentBody","ready","getProtocol","ajax","jsonp","body","localStorage","createXMLHttpRequest","createMicrosoftXHR","ActiveXObject","createXDR","Constructor","withCredentials","documentProtocol","removeEventListener","detachEvent","timeline_level","timeline_timeline","Timeline","events","sent","uniqueID","level","limit","shift","ERROR","INFO","DEBUG","sendfn","bundle","lib","cluster","features","transport_strategy","TransportStrategy","failAttempt","onInitialized","serializedTransport","strategy_builder_Transports","strategy_builder_defineTransport","transportClass","enabledTransports","disabledTransports","strategy_builder_UnsupportedStrategy","deferred","getGlobalConfig","statsHost","getClusterConfig","clusterName","pusher_Pusher","app_key","checkAppKey","global_emitter","sessionID","getClientFeatures","timelineParams","disableStats","timelineSender","shouldUseTLS","subscribeAll","internal","err","instances","isReady","allChannels","timelineSenderTimer","event_name","channelName","channel_name","forceTLS","encrypted","Runtime"],"sourceRoot":""}