From 2bc319c2c241d7646cb6805f9364cb7416edfa0a Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Mon, 22 Jun 2020 17:31:09 +0800 Subject: [PATCH] add websocket实时发送设备数据,显示风向等信息 --- src/main/webapp/js/stomp.min.js | 470 +++++++ src/main/webapp/js/sockjs.min.js | 2852 +++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/moral/config/WebSocketConfig.java | 22 src/main/webapp/js/newmoralmap.js | 194 ++ src/main/java/com/moral/webSocketServer/WebSocketServer.java | 145 ++ pom.xml | 10 src/main/webapp/img/wind_dir.png | 0 src/main/webapp/view/newmap.jsp | 46 8 files changed, 3,697 insertions(+), 42 deletions(-) diff --git a/pom.xml b/pom.xml index fb81680..6642f1f 100644 --- a/pom.xml +++ b/pom.xml @@ -216,6 +216,16 @@ <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-amqp</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-websocket</artifactId> + </dependency> </dependencies> <build> diff --git a/src/main/java/com/moral/config/WebSocketConfig.java b/src/main/java/com/moral/config/WebSocketConfig.java new file mode 100644 index 0000000..dc2b9eb --- /dev/null +++ b/src/main/java/com/moral/config/WebSocketConfig.java @@ -0,0 +1,22 @@ +package com.moral.config; + +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +@Configuration +public class WebSocketConfig { + + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } + + @Bean + public MessageConverter jsonMessageConverter() { + return new Jackson2JsonMessageConverter(); + } + +} diff --git a/src/main/java/com/moral/webSocketServer/WebSocketServer.java b/src/main/java/com/moral/webSocketServer/WebSocketServer.java new file mode 100644 index 0000000..e019555 --- /dev/null +++ b/src/main/java/com/moral/webSocketServer/WebSocketServer.java @@ -0,0 +1,145 @@ +package com.moral.webSocketServer; + +import java.io.IOException; +import java.util.concurrent.CopyOnWriteArraySet; + +import javax.websocket.OnClose; +import javax.websocket.OnError; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; + +import com.moral.service.MonitorPointService; +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; +import com.rabbitmq.client.QueueingConsumer; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @ServerEndpoint ���������������������������������������������������������������������������������������websocket������������, + * ���������������������������������������������������������URL������,���������������������������URL������������WebSocket������������ + */ +@Slf4j +@ServerEndpoint("/screen/webSocket/{param}") +@Component +public class WebSocketServer { + + public static MonitorPointService monitorPointService; + + // ������������������������������������������������������������������������������ + private Session session; + + private String orgId; + + private String regionCode; + + // ������session��������������������������� + private static CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<WebSocketServer>(); + + /** + * ��������������������������������� + * + * @param session ������������������session��������������������������������������������������������������������������������� + */ + @OnOpen + public void onOpen(Session session, @PathParam("param") String param) { + this.session = session; + //������������������������������������������������ + webSocketSet.add(this); + int flag = param.indexOf("&"); + orgId = param.substring(0, flag); + regionCode = param.substring(flag + 1); + String QUEUE_NAME = "deviceInfo"; + try { + //������������������������������������������������ + ConnectionFactory factory = new ConnectionFactory(); + //������MabbitMQ������������ip��������������� + factory.setHost("47.96.15.25"); + factory.setPort(5672); + factory.setUsername("guest"); + factory.setPassword("guest_pass"); + String routingKey = orgId+".*"; + Connection connection = factory.newConnection(); + Channel channel = connection.createChannel(); + //��������������������������������������������������������������������������������������������������������� + channel.queueDeclare(QUEUE_NAME, false, false, true, null); + channel.queueBind(QUEUE_NAME,"screens_data",routingKey); + + //��������������������� + QueueingConsumer consumer = new QueueingConsumer(channel); + //������������������ + channel.basicConsume(QUEUE_NAME, true, consumer); + + while (true) { + //nextDelivery������������������������������������������������������������take��������� + QueueingConsumer.Delivery delivery = consumer.nextDelivery(); + String message = new String(delivery.getBody()); + sendMessage(message); + } + }catch (Exception e){ + e.printStackTrace(); + log.error(e.getMessage()); + } + } + + /** + * ��������������������������� + */ + @OnClose + public void onClose() { + /**���������Set��� ������������������������*/ + webSocketSet.remove(this); + } + + @OnMessage + public void onMessage(String message) { + System.out.println(message); + for (WebSocketServer webSocketServer : webSocketSet) { + webSocketServer.sendMessage(message); + } + } + + /* @RabbitListener(bindings = @QueueBinding( + value = @Queue(value = "deviceInfo", durable = "false", autoDelete = "true"), + exchange = @Exchange(value = "screens_data", durable = "true", type = "topic"), + key = "99.*" + )) + @RabbitHandler //������������:��������������������� ������������������������������������������ + public void receiveMessage(@Payload String message, @Headers Map<String, Object> headers, Channel channel) throws IOException { + //sendMessage(message.toString()); + onMessage(message); + *//* Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG); + //���������������������rabbitmq��������������������� deliverTag������������������ false��������������� + channel.basicAck(deliveryTag, true);*//* + }*/ + + /** + * ������������������������ + */ + public void sendMessage(String message) { + try { + if (session.isOpen()) { + this.session.getBasicRemote().sendText(message); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * ��������������������� + * + * @param session + * @param error + */ + @OnError + public void onError(Session session, Throwable error) { + error.printStackTrace(); + } + +} diff --git a/src/main/webapp/img/wind_dir.png b/src/main/webapp/img/wind_dir.png new file mode 100644 index 0000000..a2e42b3 --- /dev/null +++ b/src/main/webapp/img/wind_dir.png Binary files differ diff --git a/src/main/webapp/js/newmoralmap.js b/src/main/webapp/js/newmoralmap.js index 6e08a5b..3a90815 100644 --- a/src/main/webapp/js/newmoralmap.js +++ b/src/main/webapp/js/newmoralmap.js @@ -695,8 +695,36 @@ } }) } + + moralMap.WindMarker = function (option, target) { + var _option = option; + var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); + var _iconObj = new BMap.Icon("/img/wind_dir.png", new BMap.Size(25, 25)); + this._point = _pointObj; + + this.constructor.call(this, _pointObj, { + icon: _iconObj, + offset: new BMap.Size(0, -35), + enableMassClear: true + }) + return $.extend(this, { + refreshWindDir: function (windDir) { + //��������������������������������������������� + this.setRotation(windDir); + }, + getOption: function () { + return _option; + }, + setOption: function (option) { + _option = option; + } + }) + + } + //new BMap.Marker()������������IE7��������������������� moralMap.MoralMarker.prototype = new BMap.Marker(); + moralMap.WindMarker.prototype = new BMap.Marker(); //��������������� ������Mark������ moralMap.Monitorpoint = function (option) { if (monitorPointStates) { @@ -786,6 +814,36 @@ } }); + moralMap.Device = function (option) { + if (deviceStates) { + for (var i in deviceStates) { + var state = deviceStates[i]; + if (state.id == option.id) { + option.state = state.state; + } + } + } + var windMarker = new moralMap.WindMarker(option); + moralMap.putDevice(option['mac'], windMarker); + var refreshWindMarker = windMarker.refreshWindDir; + return $.extend(windMarker, { + refreshWindDir: function (data) { + if (data != null && data != "") { + this.setData(data); //������������ + refreshWindMarker.call(this, data["e23"]); + } + }, + setData: function (data) { + var option = this.getOption(); + option["data"] = data; + this.setOption(option); + }, + getData: function () { + return this.getOption()["data"]; + } + }); + } + //���������mac���key������ //��������������� ������MoralMark������ moralMap.Equipment = function (option) { @@ -840,7 +898,7 @@ } var mouseOverHandle = option['mouseover']; moralMarker.addEventListener("mouseover", function () { - var obj = {}; + /* var obj = {}; obj['methodName'] = 'deliverMac'; obj['mac'] = option['mac']; var objStr = JSON.stringify(obj); @@ -848,45 +906,49 @@ window['external'].callWin(objStr); } else { alert(objStr); - } + }*/ moralMap.showSensors = function (jsonData) { - if (!jsonData.hasOwnProperty('mac')) { - infoWindow.setContent(""); - infoWindow.redraw(); - } else { - var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:400px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; - var y, m, d, h, mm, s; - var date = new Date(jsonData['time']); - y = 1900 + date.getYear(); - m = "0" + (date.getMonth() + 1); - d = "0" + date.getDate(); - h = "0" + date.getHours(); - mm = "0" + date.getMinutes(); - s = "0" + date.getSeconds(); - date = y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) + " " + h.substring(h.length - 2, h.length) + ":" + mm.substring(mm.length - 2, mm.length) + ":" + s.substring(s.length - 2, s.length); - adressOutHtml += '<p style="height: 18px;line-height: 18px">' + "��������� " + date + " </p>"; - for (var prop in jsonData) { - if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') { - for (var key in sensorsDescriptionMap) { - if (prop == key) { - var sensorsDescription = sensorsDescriptionMap[key]; - } - } - for (var key in sensorsUnitMap) { - if (prop == key) { - var sensorsUnit = sensorsUnitMap[key]; - if (sensorsUnit == null) { - sensorsUnit = ""; + var deviceSensors = jsonData; + var mac = deviceSensors["mac"]; + if (mac == option['mac']) { + if (!jsonData.hasOwnProperty('mac')) { + infoWindow.setContent(""); + infoWindow.redraw(); + } else { + var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:480px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; + var y, m, d, h, mm, s; + var date = new Date($.now()); + y = 1900 + date.getYear(); + m = "0" + (date.getMonth() + 1); + d = "0" + date.getDate(); + h = "0" + date.getHours(); + mm = "0" + date.getMinutes(); + s = "0" + date.getSeconds(); + date = y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) + " " + h.substring(h.length - 2, h.length) + ":" + mm.substring(mm.length - 2, mm.length) + ":" + s.substring(s.length - 2, s.length); + adressOutHtml += '<p style="height: 18px;line-height: 18px">' + "��������� " + date + " </p>"; + for (var prop in jsonData) { + if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') { + for (var key in sensorsDescriptionMap) { + if (prop == key) { + var sensorsDescription = sensorsDescriptionMap[key]; } } + for (var key in sensorsUnitMap) { + if (prop == key) { + var sensorsUnit = sensorsUnitMap[key]; + if (sensorsUnit == null) { + sensorsUnit = ""; + } + } + } + adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + "���" + jsonData[prop] + sensorsUnit + "</p>"); } - adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + "���" + jsonData[prop] + sensorsUnit + "</p>"); } + adressOutHtml += "</div>"; + infoWindow.setContent(adressOutHtml); + infoWindow.redraw(); } - adressOutHtml += "</div>"; - infoWindow.setContent(adressOutHtml); - infoWindow.redraw(); } } /* if (!$.isEmptyObject(sensorInfo)) { @@ -896,14 +958,14 @@ }); moralMarker.addEventListener("mouseout", function () { - var obj = {}; + /* var obj = {}; obj['methodName'] = 'stopDeliverMac'; var objStr = JSON.stringify(obj); if (!!window['external'] && !!window['external']['callWin']) { window['external'].callWin(objStr); } else { alert(objStr); - } + }*/ moralMap.closeInfoWindow(); }); @@ -952,6 +1014,31 @@ moralMap.getEquipments = function (key) { return moralMap['_equipments']; } + + moralMap.putDevice = function (key, obj) { + if (key != null && key != "") { + key = String.prototype.toLowerCase.call(key); + if (moralMap['_devices'] == undefined) { + moralMap['_devices'] = {}; + } + moralMap['_devices'][key] = obj; + } + } + + moralMap.getDevice = function (key) { + if (key == null) { + return null; + } + key = String.prototype.toLowerCase.call(key); + if (typeof moralMap['_devices'] === 'object') { + return moralMap['_devices'][key]; + } + } + + moralMap.getDevices = function (key) { + return moralMap['_devices']; + } + moralMap.clearEquipments = function () { if (moralMap['_equipments'] != undefined) { delete moralMap['_equipments']; @@ -991,6 +1078,34 @@ } return markers; } + + moralMap.getHorizonWindMarkers = function (isShow) { + var bounds = moralMap.getBounds(); + var oldWindMarkerList; + var isShow = (isShow) ? baiduMap : null; + if (moralMap.layer() == "equipments") { + oldWindMarkerList = moralMap.getDevices(); + } + var markers = []; + if (oldWindMarkerList != null && typeof oldWindMarkerList == "object") { + for (var i in oldWindMarkerList) { + var oldWindMarker = oldWindMarkerList[i]; + if (oldWindMarker != null && oldWindMarker instanceof BMap.Overlay && oldWindMarker.getMap() == isShow) { + var option = oldWindMarker.getOption(); + if (typeof option == 'object') { + var longitude = option['longitude']; + var latitude = option['latitude']; + // ������������������������������������ + if (longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) { + markers.push(oldWindMarker); + } + } + } + } + } + return markers; + } + moralMap.showPointMonitor = function (id) { var mpointMarker = moralMap.getMpoint(id); var mpoint = mpointMarker.getOption(); @@ -1072,5 +1187,14 @@ } } + moralMap.refreshWindDir = function (devicesInfo) { + var deviceInfo = devicesInfo; + var mac = deviceInfo["mac"]; + var device = moralMap.getDevice(mac); + if (device) { + device.refreshWindDir(deviceInfo); + } + } + window.moralMap = moralMap; })(jQuery, BMap, window); diff --git a/src/main/webapp/js/sockjs.min.js b/src/main/webapp/js/sockjs.min.js new file mode 100644 index 0000000..0acda5a --- /dev/null +++ b/src/main/webapp/js/sockjs.min.js @@ -0,0 +1,2852 @@ +/* sockjs-client v1.1.4 | http://sockjs.org | MIT license */ +! +function(t) { + if ("object" == typeof exports && "undefined" != typeof module) module.exports = t(); + else if ("function" == typeof define && define.amd) define([], t); + else { + var e; + e = "undefined" != typeof window ? window: "undefined" != typeof global ? global: "undefined" != typeof self ? self: this, + e.SockJS = t() + } +} (function() { + var t; + return function t(e, n, r) { + function i(s, a) { + if (!n[s]) { + if (!e[s]) { + var l = "function" == typeof require && require; + if (!a && l) return l(s, !0); + if (o) return o(s, !0); + var u = new Error("Cannot find module '" + s + "'"); + throw u.code = "MODULE_NOT_FOUND", + u + } + var c = n[s] = { + exports: {} + }; + e[s][0].call(c.exports, + function(t) { + var n = e[s][1][t]; + return i(n || t) + }, + c, c.exports, t, e, n, r) + } + return n[s].exports + } + for (var o = "function" == typeof require && require, + s = 0; s < r.length; s++) i(r[s]); + return i + } ({ + 1 : [function(t, e, n) { (function(n) { + "use strict"; + var r = t("./transport-list"); + e.exports = t("./main")(r), + "_sockjs_onload" in n && setTimeout(n._sockjs_onload, 1) + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./main": 14, + "./transport-list": 16 + }], + 2 : [function(t, e, n) { + "use strict"; + function r() { + o.call(this), + this.initEvent("close", !1, !1), + this.wasClean = !1, + this.code = 0, + this.reason = "" + } + var i = t("inherits"), + o = t("./event"); + i(r, o), + e.exports = r + }, + { + "./event": 4, + "inherits": 54 + }], + 3 : [function(t, e, n) { + "use strict"; + function r() { + o.call(this) + } + var i = t("inherits"), + o = t("./eventtarget"); + i(r, o), + r.prototype.removeAllListeners = function(t) { + t ? delete this._listeners[t] : this._listeners = {} + }, + r.prototype.once = function(t, e) { + function n() { + r.removeListener(t, n), + i || (i = !0, e.apply(this, arguments)) + } + var r = this, + i = !1; + this.on(t, n) + }, + r.prototype.emit = function() { + var t = arguments[0], + e = this._listeners[t]; + if (e) { + for (var n = arguments.length, + r = new Array(n - 1), i = 1; i < n; i++) r[i - 1] = arguments[i]; + for (var o = 0; o < e.length; o++) e[o].apply(this, r) + } + }, + r.prototype.on = r.prototype.addListener = o.prototype.addEventListener, + r.prototype.removeListener = o.prototype.removeEventListener, + e.exports.EventEmitter = r + }, + { + "./eventtarget": 5, + "inherits": 54 + }], + 4 : [function(t, e, n) { + "use strict"; + function r(t) { + this.type = t + } + r.prototype.initEvent = function(t, e, n) { + return this.type = t, + this.bubbles = e, + this.cancelable = n, + this.timeStamp = +new Date, + this + }, + r.prototype.stopPropagation = function() {}, + r.prototype.preventDefault = function() {}, + r.CAPTURING_PHASE = 1, + r.AT_TARGET = 2, + r.BUBBLING_PHASE = 3, + e.exports = r + }, + {}], + 5 : [function(t, e, n) { + "use strict"; + function r() { + this._listeners = {} + } + r.prototype.addEventListener = function(t, e) { + t in this._listeners || (this._listeners[t] = []); + var n = this._listeners[t]; - 1 === n.indexOf(e) && (n = n.concat([e])), + this._listeners[t] = n + }, + r.prototype.removeEventListener = function(t, e) { + var n = this._listeners[t]; + if (n) { + var r = n.indexOf(e); + return - 1 !== r ? void(n.length > 1 ? this._listeners[t] = n.slice(0, r).concat(n.slice(r + 1)) : delete this._listeners[t]) : void 0 + } + }, + r.prototype.dispatchEvent = function() { + var t = arguments[0], + e = t.type, + n = 1 === arguments.length ? [t] : Array.apply(null, arguments); + if (this["on" + e] && this["on" + e].apply(this, n), e in this._listeners) for (var r = this._listeners[e], i = 0; i < r.length; i++) r[i].apply(this, n) + }, + e.exports = r + }, + {}], + 6 : [function(t, e, n) { + "use strict"; + function r(t) { + o.call(this), + this.initEvent("message", !1, !1), + this.data = t + } + var i = t("inherits"), + o = t("./event"); + i(r, o), + e.exports = r + }, + { + "./event": 4, + "inherits": 54 + }], + 7 : [function(t, e, n) { + "use strict"; + function r(t) { + this._transport = t, + t.on("message", this._transportMessage.bind(this)), + t.on("close", this._transportClose.bind(this)) + } + var i = t("json3"), + o = t("./utils/iframe"); + r.prototype._transportClose = function(t, e) { + o.postMessage("c", i.stringify([t, e])) + }, + r.prototype._transportMessage = function(t) { + o.postMessage("t", t) + }, + r.prototype._send = function(t) { + this._transport.send(t) + }, + r.prototype._close = function() { + this._transport.close(), + this._transport.removeAllListeners() + }, + e.exports = r + }, + { + "./utils/iframe": 47, + "json3": 55 + }], + 8 : [function(t, e, n) { + "use strict"; + var r = t("./utils/url"), + i = t("./utils/event"), + o = t("json3"), + s = t("./facade"), + a = t("./info-iframe-receiver"), + l = t("./utils/iframe"), + u = t("./location"); + e.exports = function(t, e) { + var n = {}; + e.forEach(function(t) { + t.facadeTransport && (n[t.facadeTransport.transportName] = t.facadeTransport) + }), + n[a.transportName] = a; + var c; + t.bootstrap_iframe = function() { + var e; + l.currentWindowId = u.hash.slice(1); + var a = function(i) { + if (i.source === parent && (void 0 === c && (c = i.origin), i.origin === c)) { + var a; + try { + a = o.parse(i.data) + } catch(t) { + return void i.data + } + if (a.windowId === l.currentWindowId) switch (a.type) { + case "s": + var f; + try { + f = o.parse(a.data) + } catch(t) { + a.data; + break + } + var h = f[0], + d = f[1], + p = f[2], + v = f[3]; + if (h !== t.version) throw new Error('Incompatible SockJS! Main site uses: "' + h + '", the iframe: "' + t.version + '".'); + if (!r.isOriginEqual(p, u.href) || !r.isOriginEqual(v, u.href)) throw new Error("Can't connect to different domain from within an iframe. (" + u.href + ", " + p + ", " + v + ")"); + e = new s(new n[d](p, v)); + break; + case "m": + e._send(a.data); + break; + case "c": + e && e._close(), + e = null + } + } + }; + i.attachEvent("message", a), + l.postMessage("s") + } + } + }, + { + "./facade": 7, + "./info-iframe-receiver": 10, + "./location": 13, + "./utils/event": 46, + "./utils/iframe": 47, + "./utils/url": 52, + "debug": void 0, + "json3": 55 + }], + 9 : [function(t, e, n) { + "use strict"; + function r(t, e) { + i.call(this); + var n = this, + r = +new Date; + this.xo = new e("GET", t), + this.xo.once("finish", + function(t, e) { + var i, o; + if (200 === t) { + if (o = +new Date - r, e) try { + i = s.parse(e) + } catch(t) {} + a.isObject(i) || (i = {}) + } + n.emit("finish", i, o), + n.removeAllListeners() + }) + } + var i = t("events").EventEmitter, + o = t("inherits"), + s = t("json3"), + a = t("./utils/object"); + o(r, i), + r.prototype.close = function() { + this.removeAllListeners(), + this.xo.close() + }, + e.exports = r + }, + { + "./utils/object": 49, + "debug": void 0, + "events": 3, + "inherits": 54, + "json3": 55 + }], + 10 : [function(t, e, n) { + "use strict"; + function r(t) { + var e = this; + o.call(this), + this.ir = new l(t, a), + this.ir.once("finish", + function(t, n) { + e.ir = null, + e.emit("message", s.stringify([t, n])) + }) + } + var i = t("inherits"), + o = t("events").EventEmitter, + s = t("json3"), + a = t("./transport/sender/xhr-local"), + l = t("./info-ajax"); + i(r, o), + r.transportName = "iframe-info-receiver", + r.prototype.close = function() { + this.ir && (this.ir.close(), this.ir = null), + this.removeAllListeners() + }, + e.exports = r + }, + { + "./info-ajax": 9, + "./transport/sender/xhr-local": 37, + "events": 3, + "inherits": 54, + "json3": 55 + }], + 11 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t, e) { + var r = this; + i.call(this); + var o = function() { + var n = r.ifr = new l(u.transportName, e, t); + n.once("message", + function(t) { + if (t) { + var e; + try { + e = s.parse(t) + } catch(t) { + return r.emit("finish"), + void r.close() + } + var n = e[0], + i = e[1]; + r.emit("finish", n, i) + } + r.close() + }), + n.once("close", + function() { + r.emit("finish"), + r.close() + }) + }; + n.document.body ? o() : a.attachEvent("load", o) + } + var i = t("events").EventEmitter, + o = t("inherits"), + s = t("json3"), + a = t("./utils/event"), + l = t("./transport/iframe"), + u = t("./info-iframe-receiver"); + o(r, i), + r.enabled = function() { + return l.enabled() + }, + r.prototype.close = function() { + this.ifr && this.ifr.close(), + this.removeAllListeners(), + this.ifr = null + }, + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./info-iframe-receiver": 10, + "./transport/iframe": 22, + "./utils/event": 46, + "debug": void 0, + "events": 3, + "inherits": 54, + "json3": 55 + }], + 12 : [function(t, e, n) { + "use strict"; + function r(t, e) { + var n = this; + i.call(this), + setTimeout(function() { + n.doXhr(t, e) + }, + 0) + } + var i = t("events").EventEmitter, + o = t("inherits"), + s = t("./utils/url"), + a = t("./transport/sender/xdr"), + l = t("./transport/sender/xhr-cors"), + u = t("./transport/sender/xhr-local"), + c = t("./transport/sender/xhr-fake"), + f = t("./info-iframe"), + h = t("./info-ajax"); + o(r, i), + r._getReceiver = function(t, e, n) { + return n.sameOrigin ? new h(e, u) : l.enabled ? new h(e, l) : a.enabled && n.sameScheme ? new h(e, a) : f.enabled() ? new f(t, e) : new h(e, c) + }, + r.prototype.doXhr = function(t, e) { + var n = this, + i = s.addPath(t, "/info"); + this.xo = r._getReceiver(t, i, e), + this.timeoutRef = setTimeout(function() { + n._cleanup(!1), + n.emit("finish") + }, + r.timeout), + this.xo.once("finish", + function(t, e) { + n._cleanup(!0), + n.emit("finish", t, e) + }) + }, + r.prototype._cleanup = function(t) { + clearTimeout(this.timeoutRef), + this.timeoutRef = null, + !t && this.xo && this.xo.close(), + this.xo = null + }, + r.prototype.close = function() { + this.removeAllListeners(), + this._cleanup(!1) + }, + r.timeout = 8e3, + e.exports = r + }, + { + "./info-ajax": 9, + "./info-iframe": 11, + "./transport/sender/xdr": 34, + "./transport/sender/xhr-cors": 35, + "./transport/sender/xhr-fake": 36, + "./transport/sender/xhr-local": 37, + "./utils/url": 52, + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 13 : [function(t, e, n) { (function(t) { + "use strict"; + e.exports = t.location || { + origin: "http://localhost:80", + protocol: "http", + host: "localhost", + port: 80, + href: "http://localhost/", + hash: "" + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 14 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t, e, n) { + if (! (this instanceof r)) return new r(t, e, n); + if (arguments.length < 1) throw new TypeError("Failed to construct 'SockJS: 1 argument required, but only 0 present"); + y.call(this), + this.readyState = r.CONNECTING, + this.extensions = "", + this.protocol = "", + n = n || {}, + n.protocols_whitelist && m.warn("'protocols_whitelist' is DEPRECATED. Use 'transports' instead."), + this._transportsWhitelist = n.transports, + this._transportOptions = n.transportOptions || {}; + var i = n.sessionId || 8; + if ("function" == typeof i) this._generateSessionId = i; + else { + if ("number" != typeof i) throw new TypeError("If sessionId is used in the options, it needs to be a number or a function."); + this._generateSessionId = function() { + return u.string(i) + } + } + this._server = n.server || u.numberString(1e3); + var o = new s(t); + if (!o.host || !o.protocol) throw new SyntaxError("The URL '" + t + "' is invalid"); + if (o.hash) throw new SyntaxError("The URL must not contain a fragment"); + if ("http:" !== o.protocol && "https:" !== o.protocol) throw new SyntaxError("The URL's scheme must be either 'http:' or 'https:'. '" + o.protocol + "' is not allowed."); + var a = "https:" === o.protocol; + if ("https" === g.protocol && !a) throw new Error("SecurityError: An insecure SockJS connection may not be initiated from a page loaded over HTTPS"); + e ? Array.isArray(e) || (e = [e]) : e = []; + var l = e.sort(); + l.forEach(function(t, e) { + if (!t) throw new SyntaxError("The protocols entry '" + t + "' is invalid."); + if (e < l.length - 1 && t === l[e + 1]) throw new SyntaxError("The protocols entry '" + t + "' is duplicated.") + }); + var c = f.getOrigin(g.href); + this._origin = c ? c.toLowerCase() : null, + o.set("pathname", o.pathname.replace(/\/+$/, "")), + this.url = o.href, + this.url, + this._urlInfo = { + nullOrigin: !v.hasDomain(), + sameOrigin: f.isOriginEqual(this.url, g.href), + sameScheme: f.isSchemeEqual(this.url, g.href) + }, + this._ir = new _(this.url, this._urlInfo), + this._ir.once("finish", this._receiveInfo.bind(this)) + } + function i(t) { + return 1e3 === t || t >= 3e3 && t <= 4999 + } + t("./shims"); + var o, s = t("url-parse"), + a = t("inherits"), + l = t("json3"), + u = t("./utils/random"), + c = t("./utils/escape"), + f = t("./utils/url"), + h = t("./utils/event"), + d = t("./utils/transport"), + p = t("./utils/object"), + v = t("./utils/browser"), + m = t("./utils/log"), + b = t("./event/event"), + y = t("./event/eventtarget"), + g = t("./location"), + w = t("./event/close"), + x = t("./event/trans-message"), + _ = t("./info-receiver"); + a(r, y), + r.prototype.close = function(t, e) { + if (t && !i(t)) throw new Error("InvalidAccessError: Invalid code"); + if (e && e.length > 123) throw new SyntaxError("reason argument has an invalid length"); + if (this.readyState !== r.CLOSING && this.readyState !== r.CLOSED) { + this._close(t || 1e3, e || "Normal closure", !0) + } + }, + r.prototype.send = function(t) { + if ("string" != typeof t && (t = "" + t), this.readyState === r.CONNECTING) throw new Error("InvalidStateError: The connection has not been established yet"); + this.readyState === r.OPEN && this._transport.send(c.quote(t)) + }, + r.version = t("./version"), + r.CONNECTING = 0, + r.OPEN = 1, + r.CLOSING = 2, + r.CLOSED = 3, + r.prototype._receiveInfo = function(t, e) { + if (this._ir = null, !t) return void this._close(1002, "Cannot connect to server"); + this._rto = this.countRTO(e), + this._transUrl = t.base_url ? t.base_url: this.url, + t = p.extend(t, this._urlInfo); + var n = o.filterToEnabled(this._transportsWhitelist, t); + this._transports = n.main, + this._transports.length, + this._connect() + }, + r.prototype._connect = function() { + for (var t = this._transports.shift(); t; t = this._transports.shift()) { + if (t.transportName, t.needBody && (!n.document.body || void 0 !== n.document.readyState && "complete" !== n.document.readyState && "interactive" !== n.document.readyState)) return this._transports.unshift(t), + void h.attachEvent("load", this._connect.bind(this)); + var e = this._rto * t.roundTrips || 5e3; + this._transportTimeoutId = setTimeout(this._transportTimeout.bind(this), e); + var r = f.addPath(this._transUrl, "/" + this._server + "/" + this._generateSessionId()), + i = this._transportOptions[t.transportName], + o = new t(r, this._transUrl, i); + return o.on("message", this._transportMessage.bind(this)), + o.once("close", this._transportClose.bind(this)), + o.transportName = t.transportName, + void(this._transport = o) + } + this._close(2e3, "All transports failed", !1) + }, + r.prototype._transportTimeout = function() { + this.readyState === r.CONNECTING && this._transportClose(2007, "Transport timed out") + }, + r.prototype._transportMessage = function(t) { + var e, n = this, + r = t.slice(0, 1), + i = t.slice(1); + switch (r) { + case "o": + return void this._open(); + case "h": + return this.dispatchEvent(new b("heartbeat")), + void this.transport + } + if (i) try { + e = l.parse(i) + } catch(t) {} + if (void 0 !== e) switch (r) { + case "a": + Array.isArray(e) && e.forEach(function(t) { + n.transport, + n.dispatchEvent(new x(t)) + }); + break; + case "m": + this.transport, + this.dispatchEvent(new x(e)); + break; + case "c": + Array.isArray(e) && 2 === e.length && this._close(e[0], e[1], !0) + } + }, + r.prototype._transportClose = function(t, e) { + if (this.transport, this._transport && (this._transport.removeAllListeners(), this._transport = null, this.transport = null), !i(t) && 2e3 !== t && this.readyState === r.CONNECTING) return void this._connect(); + this._close(t, e) + }, + r.prototype._open = function() { + this._transport.transportName, + this.readyState, + this.readyState === r.CONNECTING ? (this._transportTimeoutId && (clearTimeout(this._transportTimeoutId), this._transportTimeoutId = null), this.readyState = r.OPEN, this.transport = this._transport.transportName, this.dispatchEvent(new b("open")), this.transport) : this._close(1006, "Server lost session") + }, + r.prototype._close = function(t, e, n) { + this.transport, + this.readyState; + var i = !1; + if (this._ir && (i = !0, this._ir.close(), this._ir = null), this._transport && (this._transport.close(), this._transport = null, this.transport = null), this.readyState === r.CLOSED) throw new Error("InvalidStateError: SockJS has already been closed"); + this.readyState = r.CLOSING, + setTimeout(function() { + this.readyState = r.CLOSED, + i && this.dispatchEvent(new b("error")); + var o = new w("close"); + o.wasClean = n || !1, + o.code = t || 1e3, + o.reason = e, + this.dispatchEvent(o), + this.onmessage = this.onclose = this.onerror = null + }.bind(this), 0) + }, + r.prototype.countRTO = function(t) { + return t > 100 ? 4 * t: 300 + t + }, + e.exports = function(e) { + return o = d(e), + t("./iframe-bootstrap")(r, e), + r + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./event/close": 2, + "./event/event": 4, + "./event/eventtarget": 5, + "./event/trans-message": 6, + "./iframe-bootstrap": 8, + "./info-receiver": 12, + "./location": 13, + "./shims": 15, + "./utils/browser": 44, + "./utils/escape": 45, + "./utils/event": 46, + "./utils/log": 48, + "./utils/object": 49, + "./utils/random": 50, + "./utils/transport": 51, + "./utils/url": 52, + "./version": 53, + "debug": void 0, + "inherits": 54, + "json3": 55, + "url-parse": 58 + }], + 15 : [function(t, e, n) { + "use strict"; + function r(t) { + var e = +t; + return e !== e ? e = 0 : 0 !== e && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), + e + } + function i(t) { + return t >>> 0 + } + function o() {} + var s, a = Array.prototype, + l = Object.prototype, + u = Function.prototype, + c = String.prototype, + f = a.slice, + h = l.toString, + d = function(t) { + return "[object Function]" === l.toString.call(t) + }, + p = function(t) { + return "[object Array]" === h.call(t) + }, + v = function(t) { + return "[object String]" === h.call(t) + }, + m = Object.defineProperty && + function() { + try { + return Object.defineProperty({}, + "x", {}), + !0 + } catch(t) { + return ! 1 + } + } (); + s = m ? + function(t, e, n, r) { ! r && e in t || Object.defineProperty(t, e, { + configurable: !0, + enumerable: !1, + writable: !0, + value: n + }) + }: function(t, e, n, r) { ! r && e in t || (t[e] = n) + }; + var b = function(t, e, n) { + for (var r in e) l.hasOwnProperty.call(e, r) && s(t, r, e[r], n) + }, + y = function(t) { + if (null == t) throw new TypeError("can't convert " + t + " to object"); + return Object(t) + }; + b(u, { + bind: function(t) { + var e = this; + if (!d(e)) throw new TypeError("Function.prototype.bind called on incompatible " + e); + for (var n = f.call(arguments, 1), r = function() { + if (this instanceof l) { + var r = e.apply(this, n.concat(f.call(arguments))); + return Object(r) === r ? r: this + } + return e.apply(t, n.concat(f.call(arguments))) + }, + i = Math.max(0, e.length - n.length), s = [], a = 0; a < i; a++) s.push("$" + a); + var l = Function("binder", "return function (" + s.join(",") + "){ return binder.apply(this, arguments); }")(r); + return e.prototype && (o.prototype = e.prototype, l.prototype = new o, o.prototype = null), + l + } + }), + b(Array, { + isArray: p + }); + var g = Object("a"), + w = "a" !== g[0] || !(0 in g); + b(a, { + forEach: function(t) { + var e = y(this), + n = w && v(this) ? this.split("") : e, + r = arguments[1], + i = -1, + o = n.length >>> 0; + if (!d(t)) throw new TypeError; + for (; ++i < o;) i in n && t.call(r, n[i], i, e) + } + }, + ! + function(t) { + var e = !0, + n = !0; + return t && (t.call("foo", + function(t, n, r) { + "object" != typeof r && (e = !1) + }), t.call([1], + function() { + n = "string" == typeof this + }, + "x")), + !!t && e && n + } (a.forEach)); + var x = Array.prototype.indexOf && -1 !== [0, 1].indexOf(1, 2); + b(a, { + indexOf: function(t) { + var e = w && v(this) ? this.split("") : y(this), + n = e.length >>> 0; + if (!n) return - 1; + var i = 0; + for (arguments.length > 1 && (i = r(arguments[1])), i = i >= 0 ? i: Math.max(0, n + i); i < n; i++) if (i in e && e[i] === t) return i; + return - 1 + } + }, + x); + var _ = c.split; + 2 !== "ab".split(/(?:ab)*/).length || 4 !== ".".split(/(.?)(.?)/).length || "t" === "tesst".split(/(s)*/)[1] || 4 !== "test".split(/(?:)/, -1).length || "".split(/.?/).length || ".".split(/()()/).length > 1 ? + function() { + var t = void 0 === /()??/.exec("")[1]; + c.split = function(e, n) { + var r = this; + if (void 0 === e && 0 === n) return []; + if ("[object RegExp]" !== h.call(e)) return _.call(this, e, n); + var o, s, l, u, c = [], + f = (e.ignoreCase ? "i": "") + (e.multiline ? "m": "") + (e.extended ? "x": "") + (e.sticky ? "y": ""), + d = 0; + for (e = new RegExp(e.source, f + "g"), r += "", t || (o = new RegExp("^" + e.source + "$(?!\\s)", f)), n = void 0 === n ? -1 >>> 0 : i(n); (s = e.exec(r)) && !((l = s.index + s[0].length) > d && (c.push(r.slice(d, s.index)), !t && s.length > 1 && s[0].replace(o, + function() { + for (var t = 1; t < arguments.length - 2; t++) void 0 === arguments[t] && (s[t] = void 0) + }), s.length > 1 && s.index < r.length && a.push.apply(c, s.slice(1)), u = s[0].length, d = l, c.length >= n));) e.lastIndex === s.index && e.lastIndex++; + return d === r.length ? !u && e.test("") || c.push("") : c.push(r.slice(d)), + c.length > n ? c.slice(0, n) : c + } + } () : "0".split(void 0, 0).length && (c.split = function(t, e) { + return void 0 === t && 0 === e ? [] : _.call(this, t, e) + }); + var E = c.substr, + j = "".substr && "b" !== "0b".substr( - 1); + b(c, { + substr: function(t, e) { + return E.call(this, t < 0 && (t = this.length + t) < 0 ? 0 : t, e) + } + }, + j) + }, + {}], + 16 : [function(t, e, n) { + "use strict"; + e.exports = [t("./transport/websocket"), t("./transport/xhr-streaming"), t("./transport/xdr-streaming"), t("./transport/eventsource"), t("./transport/lib/iframe-wrap")(t("./transport/eventsource")), t("./transport/htmlfile"), t("./transport/lib/iframe-wrap")(t("./transport/htmlfile")), t("./transport/xhr-polling"), t("./transport/xdr-polling"), t("./transport/lib/iframe-wrap")(t("./transport/xhr-polling")), t("./transport/jsonp-polling")] + }, + { + "./transport/eventsource": 20, + "./transport/htmlfile": 21, + "./transport/jsonp-polling": 23, + "./transport/lib/iframe-wrap": 26, + "./transport/websocket": 38, + "./transport/xdr-polling": 39, + "./transport/xdr-streaming": 40, + "./transport/xhr-polling": 41, + "./transport/xhr-streaming": 42 + }], + 17 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t, e, n, r) { + var o = this; + i.call(this), + setTimeout(function() { + o._start(t, e, n, r) + }, + 0) + } + var i = t("events").EventEmitter, + o = t("inherits"), + s = t("../../utils/event"), + a = t("../../utils/url"), + l = n.XMLHttpRequest; + o(r, i), + r.prototype._start = function(t, e, n, i) { + var o = this; + try { + this.xhr = new l + } catch(t) {} + if (!this.xhr) return this.emit("finish", 0, "no xhr support"), + void this._cleanup(); + e = a.addQuery(e, "t=" + +new Date), + this.unloadRef = s.unloadAdd(function() { + o._cleanup(!0) + }); + try { + this.xhr.open(t, e, !0), + this.timeout && "timeout" in this.xhr && (this.xhr.timeout = this.timeout, this.xhr.ontimeout = function() { + o.emit("finish", 0, ""), + o._cleanup(!1) + }) + } catch(t) { + return this.emit("finish", 0, ""), + void this._cleanup(!1) + } + if (i && i.noCredentials || !r.supportsCORS || (this.xhr.withCredentials = "true"), i && i.headers) for (var u in i.headers) this.xhr.setRequestHeader(u, i.headers[u]); + this.xhr.onreadystatechange = function() { + if (o.xhr) { + var t, e, n = o.xhr; + switch (n.readyState, n.readyState) { + case 3: + try { + e = n.status, + t = n.responseText + } catch(t) {} + 1223 === e && (e = 204), + 200 === e && t && t.length > 0 && o.emit("chunk", e, t); + break; + case 4: + e = n.status, + 1223 === e && (e = 204), + 12005 !== e && 12029 !== e || (e = 0), + n.responseText, + o.emit("finish", e, n.responseText), + o._cleanup(!1) + } + } + }; + try { + o.xhr.send(n) + } catch(t) { + o.emit("finish", 0, ""), + o._cleanup(!1) + } + }, + r.prototype._cleanup = function(t) { + if (this.xhr) { + if (this.removeAllListeners(), s.unloadDel(this.unloadRef), this.xhr.onreadystatechange = function() {}, + this.xhr.ontimeout && (this.xhr.ontimeout = null), t) try { + this.xhr.abort() + } catch(t) {} + this.unloadRef = this.xhr = null + } + }, + r.prototype.close = function() { + this._cleanup(!0) + }, + r.enabled = !!l; + var u = ["Active"].concat("Object").join("X"); ! r.enabled && u in n && (l = function() { + try { + return new n[u]("Microsoft.XMLHTTP") + } catch(t) { + return null + } + }, + r.enabled = !!new l); + var c = !1; + try { + c = "withCredentials" in new l + } catch(t) {} + r.supportsCORS = c, + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../../utils/event": 46, + "../../utils/url": 52, + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 18 : [function(t, e, n) { (function(t) { + e.exports = t.EventSource + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 19 : [function(t, e, n) { (function(t) { + "use strict"; + var n = t.WebSocket || t.MozWebSocket; + e.exports = n ? + function(t) { + return new n(t) + }: void 0 + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 20 : [function(t, e, n) { + "use strict"; + function r(t) { + if (!r.enabled()) throw new Error("Transport created when disabled"); + o.call(this, t, "/eventsource", s, a) + } + var i = t("inherits"), + o = t("./lib/ajax-based"), + s = t("./receiver/eventsource"), + a = t("./sender/xhr-cors"), + l = t("eventsource"); + i(r, o), + r.enabled = function() { + return !! l + }, + r.transportName = "eventsource", + r.roundTrips = 2, + e.exports = r + }, + { + "./lib/ajax-based": 24, + "./receiver/eventsource": 29, + "./sender/xhr-cors": 35, + "eventsource": 18, + "inherits": 54 + }], + 21 : [function(t, e, n) { + "use strict"; + function r(t) { + if (!o.enabled) throw new Error("Transport created when disabled"); + a.call(this, t, "/htmlfile", o, s) + } + var i = t("inherits"), + o = t("./receiver/htmlfile"), + s = t("./sender/xhr-local"), + a = t("./lib/ajax-based"); + i(r, a), + r.enabled = function(t) { + return o.enabled && t.sameOrigin + }, + r.transportName = "htmlfile", + r.roundTrips = 2, + e.exports = r + }, + { + "./lib/ajax-based": 24, + "./receiver/htmlfile": 30, + "./sender/xhr-local": 37, + "inherits": 54 + }], + 22 : [function(t, e, n) { + "use strict"; + function r(t, e, n) { + if (!r.enabled()) throw new Error("Transport created when disabled"); + s.call(this); + var i = this; + this.origin = l.getOrigin(n), + this.baseUrl = n, + this.transUrl = e, + this.transport = t, + this.windowId = f.string(8); + var o = l.addPath(n, "/iframe.html") + "#" + this.windowId; + this.iframeObj = u.createIframe(o, + function(t) { + i.emit("close", 1006, "Unable to load an iframe (" + t + ")"), + i.close() + }), + this.onmessageCallback = this._message.bind(this), + c.attachEvent("message", this.onmessageCallback) + } + var i = t("inherits"), + o = t("json3"), + s = t("events").EventEmitter, + a = t("../version"), + l = t("../utils/url"), + u = t("../utils/iframe"), + c = t("../utils/event"), + f = t("../utils/random"); + i(r, s), + r.prototype.close = function() { + if (this.removeAllListeners(), this.iframeObj) { + c.detachEvent("message", this.onmessageCallback); + try { + this.postMessage("c") + } catch(t) {} + this.iframeObj.cleanup(), + this.iframeObj = null, + this.onmessageCallback = this.iframeObj = null + } + }, + r.prototype._message = function(t) { + if (t.data, !l.isOriginEqual(t.origin, this.origin)) return t.origin, + void this.origin; + var e; + try { + e = o.parse(t.data) + } catch(e) { + return void t.data + } + if (e.windowId !== this.windowId) return e.windowId, + void this.windowId; + switch (e.type) { + case "s": + this.iframeObj.loaded(), + this.postMessage("s", o.stringify([a, this.transport, this.transUrl, this.baseUrl])); + break; + case "t": + this.emit("message", e.data); + break; + case "c": + var n; + try { + n = o.parse(e.data) + } catch(t) { + return void e.data + } + this.emit("close", n[0], n[1]), + this.close() + } + }, + r.prototype.postMessage = function(t, e) { + this.iframeObj.post(o.stringify({ + windowId: this.windowId, + type: t, + data: e || "" + }), this.origin) + }, + r.prototype.send = function(t) { + this.postMessage("m", t) + }, + r.enabled = function() { + return u.iframeEnabled + }, + r.transportName = "iframe", + r.roundTrips = 2, + e.exports = r + }, + { + "../utils/event": 46, + "../utils/iframe": 47, + "../utils/random": 50, + "../utils/url": 52, + "../version": 53, + "debug": void 0, + "events": 3, + "inherits": 54, + "json3": 55 + }], + 23 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t) { + if (!r.enabled()) throw new Error("Transport created when disabled"); + o.call(this, t, "/jsonp", a, s) + } + var i = t("inherits"), + o = t("./lib/sender-receiver"), + s = t("./receiver/jsonp"), + a = t("./sender/jsonp"); + i(r, o), + r.enabled = function() { + return !! n.document + }, + r.transportName = "jsonp-polling", + r.roundTrips = 1, + r.needBody = !0, + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./lib/sender-receiver": 28, + "./receiver/jsonp": 31, + "./sender/jsonp": 33, + "inherits": 54 + }], + 24 : [function(t, e, n) { + "use strict"; + function r(t) { + return function(e, n, r) { + var i = {}; + "string" == typeof n && (i.headers = { + "Content-type": "text/plain" + }); + var o = s.addPath(e, "/xhr_send"), + a = new t("POST", o, n, i); + return a.once("finish", + function(t) { + if (a = null, 200 !== t && 204 !== t) return r(new Error("http status " + t)); + r() + }), + function() { + a.close(), + a = null; + var t = new Error("Aborted"); + t.code = 1e3, + r(t) + } + } + } + function i(t, e, n, i) { + a.call(this, t, e, r(i), n, i) + } + var o = t("inherits"), + s = t("../../utils/url"), + a = t("./sender-receiver"); + o(i, a), + e.exports = i + }, + { + "../../utils/url": 52, + "./sender-receiver": 28, + "debug": void 0, + "inherits": 54 + }], + 25 : [function(t, e, n) { + "use strict"; + function r(t, e) { + o.call(this), + this.sendBuffer = [], + this.sender = e, + this.url = t + } + var i = t("inherits"), + o = t("events").EventEmitter; + i(r, o), + r.prototype.send = function(t) { + this.sendBuffer.push(t), + this.sendStop || this.sendSchedule() + }, + r.prototype.sendScheduleWait = function() { + var t, e = this; + this.sendStop = function() { + e.sendStop = null, + clearTimeout(t) + }, + t = setTimeout(function() { + e.sendStop = null, + e.sendSchedule() + }, + 25) + }, + r.prototype.sendSchedule = function() { + this.sendBuffer.length; + var t = this; + if (this.sendBuffer.length > 0) { + var e = "[" + this.sendBuffer.join(",") + "]"; + this.sendStop = this.sender(this.url, e, + function(e) { + t.sendStop = null, + e ? (t.emit("close", e.code || 1006, "Sending error: " + e), t.close()) : t.sendScheduleWait() + }), + this.sendBuffer = [] + } + }, + r.prototype._cleanup = function() { + this.removeAllListeners() + }, + r.prototype.close = function() { + this._cleanup(), + this.sendStop && (this.sendStop(), this.sendStop = null) + }, + e.exports = r + }, + { + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 26 : [function(t, e, n) { (function(n) { + "use strict"; + var r = t("inherits"), + i = t("../iframe"), + o = t("../../utils/object"); + e.exports = function(t) { + function e(e, n) { + i.call(this, t.transportName, e, n) + } + return r(e, i), + e.enabled = function(e, r) { + if (!n.document) return ! 1; + var s = o.extend({}, + r); + return s.sameOrigin = !0, + t.enabled(s) && i.enabled() + }, + e.transportName = "iframe-" + t.transportName, + e.needBody = !0, + e.roundTrips = i.roundTrips + t.roundTrips - 1, + e.facadeTransport = t, + e + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../../utils/object": 49, + "../iframe": 22, + "inherits": 54 + }], + 27 : [function(t, e, n) { + "use strict"; + function r(t, e, n) { + o.call(this), + this.Receiver = t, + this.receiveUrl = e, + this.AjaxObject = n, + this._scheduleReceiver() + } + var i = t("inherits"), + o = t("events").EventEmitter; + i(r, o), + r.prototype._scheduleReceiver = function() { + var t = this, + e = this.poll = new this.Receiver(this.receiveUrl, this.AjaxObject); + e.on("message", + function(e) { + t.emit("message", e) + }), + e.once("close", + function(n, r) { + t.pollIsClosing, + t.poll = e = null, + t.pollIsClosing || ("network" === r ? t._scheduleReceiver() : (t.emit("close", n || 1006, r), t.removeAllListeners())) + }) + }, + r.prototype.abort = function() { + this.removeAllListeners(), + this.pollIsClosing = !0, + this.poll && this.poll.abort() + }, + e.exports = r + }, + { + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 28 : [function(t, e, n) { + "use strict"; + function r(t, e, n, r, i) { + var l = o.addPath(t, e), + u = this; + s.call(this, t, n), + this.poll = new a(r, l, i), + this.poll.on("message", + function(t) { + u.emit("message", t) + }), + this.poll.once("close", + function(t, e) { + u.poll = null, + u.emit("close", t, e), + u.close() + }) + } + var i = t("inherits"), + o = t("../../utils/url"), + s = t("./buffered-sender"), + a = t("./polling"); + i(r, s), + r.prototype.close = function() { + s.prototype.close.call(this), + this.removeAllListeners(), + this.poll && (this.poll.abort(), this.poll = null) + }, + e.exports = r + }, + { + "../../utils/url": 52, + "./buffered-sender": 25, + "./polling": 27, + "debug": void 0, + "inherits": 54 + }], + 29 : [function(t, e, n) { + "use strict"; + function r(t) { + o.call(this); + var e = this, + n = this.es = new s(t); + n.onmessage = function(t) { + t.data, + e.emit("message", decodeURI(t.data)) + }, + n.onerror = function(t) { + n.readyState; + var r = 2 !== n.readyState ? "network": "permanent"; + e._cleanup(), + e._close(r) + } + } + var i = t("inherits"), + o = t("events").EventEmitter, + s = t("eventsource"); + i(r, o), + r.prototype.abort = function() { + this._cleanup(), + this._close("user") + }, + r.prototype._cleanup = function() { + var t = this.es; + t && (t.onmessage = t.onerror = null, t.close(), this.es = null) + }, + r.prototype._close = function(t) { + var e = this; + setTimeout(function() { + e.emit("close", null, t), + e.removeAllListeners() + }, + 200) + }, + e.exports = r + }, + { + "debug": void 0, + "events": 3, + "eventsource": 18, + "inherits": 54 + }], + 30 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t) { + a.call(this); + var e = this; + o.polluteGlobalNamespace(), + this.id = "a" + l.string(6), + t = s.addQuery(t, "c=" + decodeURIComponent(o.WPrefix + "." + this.id)), + r.htmlfileEnabled; + var i = r.htmlfileEnabled ? o.createHtmlfile: o.createIframe; + n[o.WPrefix][this.id] = { + start: function() { + e.iframeObj.loaded() + }, + message: function(t) { + e.emit("message", t) + }, + stop: function() { + e._cleanup(), + e._close("network") + } + }, + this.iframeObj = i(t, + function() { + e._cleanup(), + e._close("permanent") + }) + } + var i = t("inherits"), + o = t("../../utils/iframe"), + s = t("../../utils/url"), + a = t("events").EventEmitter, + l = t("../../utils/random"); + i(r, a), + r.prototype.abort = function() { + this._cleanup(), + this._close("user") + }, + r.prototype._cleanup = function() { + this.iframeObj && (this.iframeObj.cleanup(), this.iframeObj = null), + delete n[o.WPrefix][this.id] + }, + r.prototype._close = function(t) { + this.emit("close", null, t), + this.removeAllListeners() + }, + r.htmlfileEnabled = !1; + var u = ["Active"].concat("Object").join("X"); + if (u in n) try { + r.htmlfileEnabled = !!new n[u]("htmlfile") + } catch(t) {} + r.enabled = r.htmlfileEnabled || o.iframeEnabled, + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../../utils/iframe": 47, + "../../utils/random": 50, + "../../utils/url": 52, + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 31 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t) { + var e = this; + u.call(this), + i.polluteGlobalNamespace(), + this.id = "a" + o.string(6); + var s = a.addQuery(t, "c=" + encodeURIComponent(i.WPrefix + "." + this.id)); + n[i.WPrefix][this.id] = this._callback.bind(this), + this._createScript(s), + this.timeoutId = setTimeout(function() { + e._abort(new Error("JSONP script loaded abnormally (timeout)")) + }, + r.timeout) + } + var i = t("../../utils/iframe"), + o = t("../../utils/random"), + s = t("../../utils/browser"), + a = t("../../utils/url"), + l = t("inherits"), + u = t("events").EventEmitter; + l(r, u), + r.prototype.abort = function() { + if (n[i.WPrefix][this.id]) { + var t = new Error("JSONP user aborted read"); + t.code = 1e3, + this._abort(t) + } + }, + r.timeout = 35e3, + r.scriptErrorTimeout = 1e3, + r.prototype._callback = function(t) { + this._cleanup(), + this.aborting || (t && this.emit("message", t), this.emit("close", null, "network"), this.removeAllListeners()) + }, + r.prototype._abort = function(t) { + this._cleanup(), + this.aborting = !0, + this.emit("close", t.code, t.message), + this.removeAllListeners() + }, + r.prototype._cleanup = function() { + if (clearTimeout(this.timeoutId), this.script2 && (this.script2.parentNode.removeChild(this.script2), this.script2 = null), this.script) { + var t = this.script; + t.parentNode.removeChild(t), + t.onreadystatechange = t.onerror = t.onload = t.onclick = null, + this.script = null + } + delete n[i.WPrefix][this.id] + }, + r.prototype._scriptError = function() { + var t = this; + this.errorTimer || (this.errorTimer = setTimeout(function() { + t.loadedOkay || t._abort(new Error("JSONP script loaded abnormally (onerror)")) + }, + r.scriptErrorTimeout)) + }, + r.prototype._createScript = function(t) { + var e, r = this, + i = this.script = n.document.createElement("script"); + if (i.id = "a" + o.string(8), i.src = t, i.type = "text/javascript", i.charset = "UTF-8", i.onerror = this._scriptError.bind(this), i.onload = function() { + r._abort(new Error("JSONP script loaded abnormally (onload)")) + }, + i.onreadystatechange = function() { + if (i.readyState, /loaded|closed/.test(i.readyState)) { + if (i && i.htmlFor && i.onclick) { + r.loadedOkay = !0; + try { + i.onclick() + } catch(t) {} + } + i && r._abort(new Error("JSONP script loaded abnormally (onreadystatechange)")) + } + }, + void 0 === i.async && n.document.attachEvent) if (s.isOpera()) e = this.script2 = n.document.createElement("script"), + e.text = "try{var a = document.getElementById('" + i.id + "'); if(a)a.onerror();}catch(x){};", + i.async = e.async = !1; + else { + try { + i.htmlFor = i.id, + i.event = "onclick" + } catch(t) {} + i.async = !0 + } + void 0 !== i.async && (i.async = !0); + var a = n.document.getElementsByTagName("head")[0]; + a.insertBefore(i, a.firstChild), + e && a.insertBefore(e, a.firstChild) + }, + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../../utils/browser": 44, + "../../utils/iframe": 47, + "../../utils/random": 50, + "../../utils/url": 52, + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 32 : [function(t, e, n) { + "use strict"; + function r(t, e) { + o.call(this); + var n = this; + this.bufferPosition = 0, + this.xo = new e("POST", t, null), + this.xo.on("chunk", this._chunkHandler.bind(this)), + this.xo.once("finish", + function(t, e) { + n._chunkHandler(t, e), + n.xo = null; + var r = 200 === t ? "network": "permanent"; + n.emit("close", null, r), + n._cleanup() + }) + } + var i = t("inherits"), + o = t("events").EventEmitter; + i(r, o), + r.prototype._chunkHandler = function(t, e) { + if (200 === t && e) for (var n = -1;; this.bufferPosition += n + 1) { + var r = e.slice(this.bufferPosition); + if ( - 1 === (n = r.indexOf("\n"))) break; + var i = r.slice(0, n); + i && this.emit("message", i) + } + }, + r.prototype._cleanup = function() { + this.removeAllListeners() + }, + r.prototype.abort = function() { + this.xo && (this.xo.close(), this.emit("close", null, "user"), this.xo = null), + this._cleanup() + }, + e.exports = r + }, + { + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 33 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t) { + try { + return n.document.createElement('<iframe name="' + t + '">') + } catch(r) { + var e = n.document.createElement("iframe"); + return e.name = t, + e + } + } + function i() { + o = n.document.createElement("form"), + o.style.display = "none", + o.style.position = "absolute", + o.method = "POST", + o.enctype = "application/x-www-form-urlencoded", + o.acceptCharset = "UTF-8", + s = n.document.createElement("textarea"), + s.name = "d", + o.appendChild(s), + n.document.body.appendChild(o) + } + var o, s, a = t("../../utils/random"), + l = t("../../utils/url"); + e.exports = function(t, e, n) { + o || i(); + var u = "a" + a.string(8); + o.target = u, + o.action = l.addQuery(l.addPath(t, "/jsonp_send"), "i=" + u); + var c = r(u); + c.id = u, + c.style.display = "none", + o.appendChild(c); + try { + s.value = e + } catch(t) {} + o.submit(); + var f = function(t) { + c.onerror && (c.onreadystatechange = c.onerror = c.onload = null, setTimeout(function() { + c.parentNode.removeChild(c), + c = null + }, + 500), s.value = "", n(t)) + }; + return c.onerror = function() { + f() + }, + c.onload = function() { + f() + }, + c.onreadystatechange = function(t) { + c.readyState, + "complete" === c.readyState && f() + }, + function() { + f(new Error("Aborted")) + } + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../../utils/random": 50, + "../../utils/url": 52, + "debug": void 0 + }], + 34 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t, e, n) { + var r = this; + i.call(this), + setTimeout(function() { + r._start(t, e, n) + }, + 0) + } + var i = t("events").EventEmitter, + o = t("inherits"), + s = t("../../utils/event"), + a = t("../../utils/browser"), + l = t("../../utils/url"); + o(r, i), + r.prototype._start = function(t, e, r) { + var i = this, + o = new n.XDomainRequest; + e = l.addQuery(e, "t=" + +new Date), + o.onerror = function() { + i._error() + }, + o.ontimeout = function() { + i._error() + }, + o.onprogress = function() { + o.responseText, + i.emit("chunk", 200, o.responseText) + }, + o.onload = function() { + i.emit("finish", 200, o.responseText), + i._cleanup(!1) + }, + this.xdr = o, + this.unloadRef = s.unloadAdd(function() { + i._cleanup(!0) + }); + try { + this.xdr.open(t, e), + this.timeout && (this.xdr.timeout = this.timeout), + this.xdr.send(r) + } catch(t) { + this._error() + } + }, + r.prototype._error = function() { + this.emit("finish", 0, ""), + this._cleanup(!1) + }, + r.prototype._cleanup = function(t) { + if (this.xdr) { + if (this.removeAllListeners(), s.unloadDel(this.unloadRef), this.xdr.ontimeout = this.xdr.onerror = this.xdr.onprogress = this.xdr.onload = null, t) try { + this.xdr.abort() + } catch(t) {} + this.unloadRef = this.xdr = null + } + }, + r.prototype.close = function() { + this._cleanup(!0) + }, + r.enabled = !(!n.XDomainRequest || !a.hasDomain()), + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../../utils/browser": 44, + "../../utils/event": 46, + "../../utils/url": 52, + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 35 : [function(t, e, n) { + "use strict"; + function r(t, e, n, r) { + o.call(this, t, e, n, r) + } + var i = t("inherits"), + o = t("../driver/xhr"); + i(r, o), + r.enabled = o.enabled && o.supportsCORS, + e.exports = r + }, + { + "../driver/xhr": 17, + "inherits": 54 + }], + 36 : [function(t, e, n) { + "use strict"; + function r() { + var t = this; + i.call(this), + this.to = setTimeout(function() { + t.emit("finish", 200, "{}") + }, + r.timeout) + } + var i = t("events").EventEmitter; + t("inherits")(r, i), + r.prototype.close = function() { + clearTimeout(this.to) + }, + r.timeout = 2e3, + e.exports = r + }, + { + "events": 3, + "inherits": 54 + }], + 37 : [function(t, e, n) { + "use strict"; + function r(t, e, n) { + o.call(this, t, e, n, { + noCredentials: !0 + }) + } + var i = t("inherits"), + o = t("../driver/xhr"); + i(r, o), + r.enabled = o.enabled, + e.exports = r + }, + { + "../driver/xhr": 17, + "inherits": 54 + }], + 38 : [function(t, e, n) { + "use strict"; + function r(t, e, n) { + if (!r.enabled()) throw new Error("Transport created when disabled"); + a.call(this); + var s = this, + u = o.addPath(t, "/websocket"); + u = "https" === u.slice(0, 5) ? "wss" + u.slice(5) : "ws" + u.slice(4), + this.url = u, + this.ws = new l(this.url, [], n), + this.ws.onmessage = function(t) { + t.data, + s.emit("message", t.data) + }, + this.unloadRef = i.unloadAdd(function() { + s.ws.close() + }), + this.ws.onclose = function(t) { + t.code, + t.reason, + s.emit("close", t.code, t.reason), + s._cleanup() + }, + this.ws.onerror = function(t) { + s.emit("close", 1006, "WebSocket connection broken"), + s._cleanup() + } + } + var i = t("../utils/event"), + o = t("../utils/url"), + s = t("inherits"), + a = t("events").EventEmitter, + l = t("./driver/websocket"); + s(r, a), + r.prototype.send = function(t) { + var e = "[" + t + "]"; + this.ws.send(e) + }, + r.prototype.close = function() { + var t = this.ws; + this._cleanup(), + t && t.close() + }, + r.prototype._cleanup = function() { + var t = this.ws; + t && (t.onmessage = t.onclose = t.onerror = null), + i.unloadDel(this.unloadRef), + this.unloadRef = this.ws = null, + this.removeAllListeners() + }, + r.enabled = function() { + return !! l + }, + r.transportName = "websocket", + r.roundTrips = 2, + e.exports = r + }, + { + "../utils/event": 46, + "../utils/url": 52, + "./driver/websocket": 19, + "debug": void 0, + "events": 3, + "inherits": 54 + }], + 39 : [function(t, e, n) { + "use strict"; + function r(t) { + if (!l.enabled) throw new Error("Transport created when disabled"); + o.call(this, t, "/xhr", a, l) + } + var i = t("inherits"), + o = t("./lib/ajax-based"), + s = t("./xdr-streaming"), + a = t("./receiver/xhr"), + l = t("./sender/xdr"); + i(r, o), + r.enabled = s.enabled, + r.transportName = "xdr-polling", + r.roundTrips = 2, + e.exports = r + }, + { + "./lib/ajax-based": 24, + "./receiver/xhr": 32, + "./sender/xdr": 34, + "./xdr-streaming": 40, + "inherits": 54 + }], + 40 : [function(t, e, n) { + "use strict"; + function r(t) { + if (!a.enabled) throw new Error("Transport created when disabled"); + o.call(this, t, "/xhr_streaming", s, a) + } + var i = t("inherits"), + o = t("./lib/ajax-based"), + s = t("./receiver/xhr"), + a = t("./sender/xdr"); + i(r, o), + r.enabled = function(t) { + return ! t.cookie_needed && !t.nullOrigin && (a.enabled && t.sameScheme) + }, + r.transportName = "xdr-streaming", + r.roundTrips = 2, + e.exports = r + }, + { + "./lib/ajax-based": 24, + "./receiver/xhr": 32, + "./sender/xdr": 34, + "inherits": 54 + }], + 41 : [function(t, e, n) { + "use strict"; + function r(t) { + if (!l.enabled && !a.enabled) throw new Error("Transport created when disabled"); + o.call(this, t, "/xhr", s, a) + } + var i = t("inherits"), + o = t("./lib/ajax-based"), + s = t("./receiver/xhr"), + a = t("./sender/xhr-cors"), + l = t("./sender/xhr-local"); + i(r, o), + r.enabled = function(t) { + return ! t.nullOrigin && (!(!l.enabled || !t.sameOrigin) || a.enabled) + }, + r.transportName = "xhr-polling", + r.roundTrips = 2, + e.exports = r + }, + { + "./lib/ajax-based": 24, + "./receiver/xhr": 32, + "./sender/xhr-cors": 35, + "./sender/xhr-local": 37, + "inherits": 54 + }], + 42 : [function(t, e, n) { (function(n) { + "use strict"; + function r(t) { + if (!l.enabled && !a.enabled) throw new Error("Transport created when disabled"); + o.call(this, t, "/xhr_streaming", s, a) + } + var i = t("inherits"), + o = t("./lib/ajax-based"), + s = t("./receiver/xhr"), + a = t("./sender/xhr-cors"), + l = t("./sender/xhr-local"), + u = t("../utils/browser"); + i(r, o), + r.enabled = function(t) { + return ! t.nullOrigin && (!u.isOpera() && a.enabled) + }, + r.transportName = "xhr-streaming", + r.roundTrips = 2, + r.needBody = !!n.document, + e.exports = r + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "../utils/browser": 44, + "./lib/ajax-based": 24, + "./receiver/xhr": 32, + "./sender/xhr-cors": 35, + "./sender/xhr-local": 37, + "inherits": 54 + }], + 43 : [function(t, e, n) { (function(t) { + "use strict"; + t.crypto && t.crypto.getRandomValues ? e.exports.randomBytes = function(e) { + var n = new Uint8Array(e); + return t.crypto.getRandomValues(n), + n + }: e.exports.randomBytes = function(t) { + for (var e = new Array(t), n = 0; n < t; n++) e[n] = Math.floor(256 * Math.random()); + return e + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 44 : [function(t, e, n) { (function(t) { + "use strict"; + e.exports = { + isOpera: function() { + return t.navigator && /opera/i.test(t.navigator.userAgent) + }, + isKonqueror: function() { + return t.navigator && /konqueror/i.test(t.navigator.userAgent) + }, + hasDomain: function() { + if (!t.document) return ! 0; + try { + return !! t.document.domain + } catch(t) { + return ! 1 + } + } + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 45 : [function(t, e, n) { + "use strict"; + var r, i = t("json3"), + o = /[\x00-\x1f\ud800-\udfff\ufffe\uffff\u0300-\u0333\u033d-\u0346\u034a-\u034c\u0350-\u0352\u0357-\u0358\u035c-\u0362\u0374\u037e\u0387\u0591-\u05af\u05c4\u0610-\u0617\u0653-\u0654\u0657-\u065b\u065d-\u065e\u06df-\u06e2\u06eb-\u06ec\u0730\u0732-\u0733\u0735-\u0736\u073a\u073d\u073f-\u0741\u0743\u0745\u0747\u07eb-\u07f1\u0951\u0958-\u095f\u09dc-\u09dd\u09df\u0a33\u0a36\u0a59-\u0a5b\u0a5e\u0b5c-\u0b5d\u0e38-\u0e39\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f72-\u0f76\u0f78\u0f80-\u0f83\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1939-\u193a\u1a17\u1b6b\u1cda-\u1cdb\u1dc0-\u1dcf\u1dfc\u1dfe\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fee-\u1fef\u1ff9\u1ffb\u1ffd\u2000-\u2001\u20d0-\u20d1\u20d4-\u20d7\u20e7-\u20e9\u2126\u212a-\u212b\u2329-\u232a\u2adc\u302b-\u302c\uaab2-\uaab3\uf900-\ufa0d\ufa10\ufa12\ufa15-\ufa1e\ufa20\ufa22\ufa25-\ufa26\ufa2a-\ufa2d\ufa30-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufb4e\ufff0-\uffff]/g, + s = function(t) { + var e, n = {}, + r = []; + for (e = 0; e < 65536; e++) r.push(String.fromCharCode(e)); + return t.lastIndex = 0, + r.join("").replace(t, + function(t) { + return n[t] = "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice( - 4), + "" + }), + t.lastIndex = 0, + n + }; + e.exports = { + quote: function(t) { + var e = i.stringify(t); + return o.lastIndex = 0, + o.test(e) ? (r || (r = s(o)), e.replace(o, + function(t) { + return r[t] + })) : e + } + } + }, + { + "json3": 55 + }], + 46 : [function(t, e, n) { (function(n) { + "use strict"; + var r = t("./random"), + i = {}, + o = !1, + s = n.chrome && n.chrome.app && n.chrome.app.runtime; + e.exports = { + attachEvent: function(t, e) { + void 0 !== n.addEventListener ? n.addEventListener(t, e, !1) : n.document && n.attachEvent && (n.document.attachEvent("on" + t, e), n.attachEvent("on" + t, e)) + }, + detachEvent: function(t, e) { + void 0 !== n.addEventListener ? n.removeEventListener(t, e, !1) : n.document && n.detachEvent && (n.document.detachEvent("on" + t, e), n.detachEvent("on" + t, e)) + }, + unloadAdd: function(t) { + if (s) return null; + var e = r.string(8); + return i[e] = t, + o && setTimeout(this.triggerUnloadCallbacks, 0), + e + }, + unloadDel: function(t) { + t in i && delete i[t] + }, + triggerUnloadCallbacks: function() { + for (var t in i) i[t](), + delete i[t] + } + }; + var a = function() { + o || (o = !0, e.exports.triggerUnloadCallbacks()) + }; + s || e.exports.attachEvent("unload", a) + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./random": 50 + }], + 47 : [function(t, e, n) { (function(n) { + "use strict"; + var r = t("./event"), + i = t("json3"), + o = t("./browser"); + e.exports = { + WPrefix: "_jp", + currentWindowId: null, + polluteGlobalNamespace: function() { + e.exports.WPrefix in n || (n[e.exports.WPrefix] = {}) + }, + postMessage: function(t, r) { + n.parent !== n && n.parent.postMessage(i.stringify({ + windowId: e.exports.currentWindowId, + type: t, + data: r || "" + }), "*") + }, + createIframe: function(t, e) { + var i, o, s = n.document.createElement("iframe"), + a = function() { + clearTimeout(i); + try { + s.onload = null + } catch(t) {} + s.onerror = null + }, + l = function() { + s && (a(), setTimeout(function() { + s && s.parentNode.removeChild(s), + s = null + }, + 0), r.unloadDel(o)) + }, + u = function(t) { + s && (l(), e(t)) + }, + c = function(t, e) { + try { + setTimeout(function() { + s && s.contentWindow && s.contentWindow.postMessage(t, e) + }, + 0) + } catch(t) {} + }; + return s.src = t, + s.style.display = "none", + s.style.position = "absolute", + s.onerror = function() { + u("onerror") + }, + s.onload = function() { + clearTimeout(i), + i = setTimeout(function() { + u("onload timeout") + }, + 2e3) + }, + n.document.body.appendChild(s), + i = setTimeout(function() { + u("timeout") + }, + 15e3), + o = r.unloadAdd(l), + { + post: c, + cleanup: l, + loaded: a + } + }, + createHtmlfile: function(t, i) { + var o, s, a, l = ["Active"].concat("Object").join("X"), + u = new n[l]("htmlfile"), + c = function() { + clearTimeout(o), + a.onerror = null + }, + f = function() { + u && (c(), r.unloadDel(s), a.parentNode.removeChild(a), a = u = null, CollectGarbage()) + }, + h = function(t) { + u && (f(), i(t)) + }, + d = function(t, e) { + try { + setTimeout(function() { + a && a.contentWindow && a.contentWindow.postMessage(t, e) + }, + 0) + } catch(t) {} + }; + u.open(), + u.write('<html><script>document.domain="' + n.document.domain + '";<\/script></html>'), + u.close(), + u.parentWindow[e.exports.WPrefix] = n[e.exports.WPrefix]; + var p = u.createElement("div"); + return u.body.appendChild(p), + a = u.createElement("iframe"), + p.appendChild(a), + a.src = t, + a.onerror = function() { + h("onerror") + }, + o = setTimeout(function() { + h("timeout") + }, + 15e3), + s = r.unloadAdd(f), + { + post: d, + cleanup: f, + loaded: c + } + } + }, + e.exports.iframeEnabled = !1, + n.document && (e.exports.iframeEnabled = ("function" == typeof n.postMessage || "object" == typeof n.postMessage) && !o.isKonqueror()) + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./browser": 44, + "./event": 46, + "debug": void 0, + "json3": 55 + }], + 48 : [function(t, e, n) { (function(t) { + "use strict"; + var n = {}; ["log", "debug", "warn"].forEach(function(e) { + var r; + try { + r = t.console && t.console[e] && t.console[e].apply + } catch(t) {} + n[e] = r ? + function() { + return t.console[e].apply(t.console, arguments) + }: "log" === e ? + function() {}: n.log + }), + e.exports = n + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 49 : [function(t, e, n) { + "use strict"; + e.exports = { + isObject: function(t) { + var e = typeof t; + return "function" === e || "object" === e && !!t + }, + extend: function(t) { + if (!this.isObject(t)) return t; + for (var e, n, r = 1, + i = arguments.length; r < i; r++) { + e = arguments[r]; + for (n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]) + } + return t + } + } + }, + {}], + 50 : [function(t, e, n) { + "use strict"; + var r = t("crypto"), + i = "abcdefghijklmnopqrstuvwxyz012345"; + e.exports = { + string: function(t) { + for (var e = i.length, + n = r.randomBytes(t), o = [], s = 0; s < t; s++) o.push(i.substr(n[s] % e, 1)); + return o.join("") + }, + number: function(t) { + return Math.floor(Math.random() * t) + }, + numberString: function(t) { + var e = ("" + (t - 1)).length; + return (new Array(e + 1).join("0") + this.number(t)).slice( - e) + } + } + }, + { + "crypto": 43 + }], + 51 : [function(t, e, n) { + "use strict"; + e.exports = function(t) { + return { + filterToEnabled: function(e, n) { + var r = { + main: [], + facade: [] + }; + return e ? "string" == typeof e && (e = [e]) : e = [], + t.forEach(function(t) { + if (t && ("websocket" !== t.transportName || !1 !== n.websocket)) return e.length && -1 === e.indexOf(t.transportName) ? void t.transportName: void(t.enabled(n) ? (t.transportName, r.main.push(t), t.facadeTransport && r.facade.push(t.facadeTransport)) : t.transportName) + }), + r + } + } + } + }, + { + "debug": void 0 + }], + 52 : [function(t, e, n) { + "use strict"; + var r = t("url-parse"); + e.exports = { + getOrigin: function(t) { + if (!t) return null; + var e = new r(t); + if ("file:" === e.protocol) return null; + var n = e.port; + return n || (n = "https:" === e.protocol ? "443": "80"), + e.protocol + "//" + e.hostname + ":" + n + }, + isOriginEqual: function(t, e) { + var n = this.getOrigin(t) === this.getOrigin(e); + return n + }, + isSchemeEqual: function(t, e) { + return t.split(":")[0] === e.split(":")[0] + }, + addPath: function(t, e) { + var n = t.split("?"); + return n[0] + e + (n[1] ? "?" + n[1] : "") + }, + addQuery: function(t, e) { + return t + ( - 1 === t.indexOf("?") ? "?" + e: "&" + e) + } + } + }, + { + "debug": void 0, + "url-parse": 58 + }], + 53 : [function(t, e, n) { + e.exports = "1.1.4" + }, + {}], + 54 : [function(t, e, n) { + "function" == typeof Object.create ? e.exports = function(t, e) { + t.super_ = e, + t.prototype = Object.create(e.prototype, { + constructor: { + value: t, + enumerable: !1, + writable: !0, + configurable: !0 + } + }) + }: e.exports = function(t, e) { + t.super_ = e; + var n = function() {}; + n.prototype = e.prototype, + t.prototype = new n, + t.prototype.constructor = t + } + }, + {}], + 55 : [function(e, n, r) { (function(e) { (function() { + function i(t, e) { + function n(t) { + if (n[t] !== m) return n[t]; + var i; + if ("bug-string-char-index" == t) i = "a" != "a" [0]; + else if ("json" == t) i = n("json-stringify") && n("json-parse"); + else { + var s, a = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + if ("json-stringify" == t) { + var l = e.stringify, + c = "function" == typeof l && g; + if (c) { (s = function() { + return 1 + }).toJSON = s; + try { + c = "0" === l(0) && "0" === l(new r) && '""' == l(new o) && l(y) === m && l(m) === m && l() === m && "1" === l(s) && "[1]" == l([s]) && "[null]" == l([m]) && "null" == l(null) && "[null,null,null]" == l([m, y, null]) && l({ + "a": [s, !0, !1, null, "\0\b\n\f\r\t"] + }) == a && "1" === l(null, s) && "[\n 1,\n 2\n]" == l([1, 2], null, 1) && '"-271821-04-20T00:00:00.000Z"' == l(new u( - 864e13)) && '"+275760-09-13T00:00:00.000Z"' == l(new u(864e13)) && '"-000001-01-01T00:00:00.000Z"' == l(new u( - 621987552e5)) && '"1969-12-31T23:59:59.999Z"' == l(new u( - 1)) + } catch(t) { + c = !1 + } + } + i = c + } + if ("json-parse" == t) { + var f = e.parse; + if ("function" == typeof f) try { + if (0 === f("0") && !f(!1)) { + s = f(a); + var h = 5 == s.a.length && 1 === s.a[0]; + if (h) { + try { + h = !f('"\t"') + } catch(t) {} + if (h) try { + h = 1 !== f("01") + } catch(t) {} + if (h) try { + h = 1 !== f("1.") + } catch(t) {} + } + } + } catch(t) { + h = !1 + } + i = h + } + } + return n[t] = !!i + } + t || (t = l.Object()), + e || (e = l.Object()); + var r = t.Number || l.Number, + o = t.String || l.String, + a = t.Object || l.Object, + u = t.Date || l.Date, + c = t.SyntaxError || l.SyntaxError, + f = t.TypeError || l.TypeError, + h = t.Math || l.Math, + d = t.JSON || l.JSON; + "object" == typeof d && d && (e.stringify = d.stringify, e.parse = d.parse); + var p, v, m, b = a.prototype, + y = b.toString, + g = new u( - 0xc782b5b800cec); + try { + g = -109252 == g.getUTCFullYear() && 0 === g.getUTCMonth() && 1 === g.getUTCDate() && 10 == g.getUTCHours() && 37 == g.getUTCMinutes() && 6 == g.getUTCSeconds() && 708 == g.getUTCMilliseconds() + } catch(t) {} + if (!n("json")) { + var w = n("bug-string-char-index"); + if (!g) var x = h.floor, + _ = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], + E = function(t, e) { + return _[e] + 365 * (t - 1970) + x((t - 1969 + (e = +(e > 1))) / 4) - x((t - 1901 + e) / 100) + x((t - 1601 + e) / 400) + }; + if ((p = b.hasOwnProperty) || (p = function(t) { + var e, n = {}; + return (n.__proto__ = null, n.__proto__ = { + "toString": 1 + }, + n).toString != y ? p = function(t) { + var e = this.__proto__, + n = t in (this.__proto__ = null, this); + return this.__proto__ = e, + n + }: (e = n.constructor, p = function(t) { + var n = (this.constructor || e).prototype; + return t in this && !(t in n && this[t] === n[t]) + }), + n = null, + p.call(this, t) + }), v = function(t, e) { + var n, r, i, o = 0; (n = function() { + this.valueOf = 0 + }).prototype.valueOf = 0, + r = new n; + for (i in r) p.call(r, i) && o++; + return n = r = null, + o ? v = 2 == o ? + function(t, e) { + var n, r = {}, + i = "[object Function]" == y.call(t); + for (n in t) i && "prototype" == n || p.call(r, n) || !(r[n] = 1) || !p.call(t, n) || e(n) + }: function(t, e) { + var n, r, i = "[object Function]" == y.call(t); + for (n in t) i && "prototype" == n || !p.call(t, n) || (r = "constructor" === n) || e(n); (r || p.call(t, n = "constructor")) && e(n) + }: (r = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"], v = function(t, e) { + var n, i, o = "[object Function]" == y.call(t), + a = !o && "function" != typeof t.constructor && s[typeof t.hasOwnProperty] && t.hasOwnProperty || p; + for (n in t) o && "prototype" == n || !a.call(t, n) || e(n); + for (i = r.length; n = r[--i]; a.call(t, n) && e(n)); + }), + v(t, e) + }, + !n("json-stringify")) { + var j = { + 92 : "\\\\", + 34 : '\\"', + 8 : "\\b", + 12 : "\\f", + 10 : "\\n", + 13 : "\\r", + 9 : "\\t" + }, + S = function(t, e) { + return ("000000" + (e || 0)).slice( - t) + }, + T = function(t) { + for (var e = '"', + n = 0, + r = t.length, + i = !w || r > 10, + o = i && (w ? t.split("") : t); n < r; n++) { + var s = t.charCodeAt(n); + switch (s) { + case 8: + case 9: + case 10: + case 12: + case 13: + case 34: + case 92: + e += j[s]; + break; + default: + if (s < 32) { + e += "\\u00" + S(2, s.toString(16)); + break + } + e += i ? o[n] : t.charAt(n) + } + } + return e + '"' + }, + O = function(t, e, n, r, i, o, s) { + var a, l, u, c, h, d, b, g, w, _, j, C, N, A, k, I; + try { + a = e[t] + } catch(t) {} + if ("object" == typeof a && a) if ("[object Date]" != (l = y.call(a)) || p.call(a, "toJSON"))"function" == typeof a.toJSON && ("[object Number]" != l && "[object String]" != l && "[object Array]" != l || p.call(a, "toJSON")) && (a = a.toJSON(t)); + else if (a > -1 / 0 && a < 1 / 0) { + if (E) { + for (h = x(a / 864e5), u = x(h / 365.2425) + 1970 - 1; E(u + 1, 0) <= h; u++); + for (c = x((h - E(u, 0)) / 30.42); E(u, c + 1) <= h; c++); + h = 1 + h - E(u, c), + d = (a % 864e5 + 864e5) % 864e5, + b = x(d / 36e5) % 24, + g = x(d / 6e4) % 60, + w = x(d / 1e3) % 60, + _ = d % 1e3 + } else u = a.getUTCFullYear(), + c = a.getUTCMonth(), + h = a.getUTCDate(), + b = a.getUTCHours(), + g = a.getUTCMinutes(), + w = a.getUTCSeconds(), + _ = a.getUTCMilliseconds(); + a = (u <= 0 || u >= 1e4 ? (u < 0 ? "-": "+") + S(6, u < 0 ? -u: u) : S(4, u)) + "-" + S(2, c + 1) + "-" + S(2, h) + "T" + S(2, b) + ":" + S(2, g) + ":" + S(2, w) + "." + S(3, _) + "Z" + } else a = null; + if (n && (a = n.call(e, t, a)), null === a) return "null"; + if ("[object Boolean]" == (l = y.call(a))) return "" + a; + if ("[object Number]" == l) return a > -1 / 0 && a < 1 / 0 ? "" + a: "null"; + if ("[object String]" == l) return T("" + a); + if ("object" == typeof a) { + for (A = s.length; A--;) if (s[A] === a) throw f(); + if (s.push(a), j = [], k = o, o += i, "[object Array]" == l) { + for (N = 0, A = a.length; N < A; N++) C = O(N, a, n, r, i, o, s), + j.push(C === m ? "null": C); + I = j.length ? i ? "[\n" + o + j.join(",\n" + o) + "\n" + k + "]": "[" + j.join(",") + "]": "[]" + } else v(r || a, + function(t) { + var e = O(t, a, n, r, i, o, s); + e !== m && j.push(T(t) + ":" + (i ? " ": "") + e) + }), + I = j.length ? i ? "{\n" + o + j.join(",\n" + o) + "\n" + k + "}": "{" + j.join(",") + "}": "{}"; + return s.pop(), + I + } + }; + e.stringify = function(t, e, n) { + var r, i, o, a; + if (s[typeof e] && e) if ("[object Function]" == (a = y.call(e))) i = e; + else if ("[object Array]" == a) { + o = {}; + for (var l, u = 0, + c = e.length; u < c; l = e[u++], ("[object String]" == (a = y.call(l)) || "[object Number]" == a) && (o[l] = 1)); + } + if (n) if ("[object Number]" == (a = y.call(n))) { + if ((n -= n % 1) > 0) for (r = "", n > 10 && (n = 10); r.length < n; r += " "); + } else "[object String]" == a && (r = n.length <= 10 ? n: n.slice(0, 10)); + return O("", (l = {}, + l[""] = t, l), i, o, r, "", []) + } + } + if (!n("json-parse")) { + var C, N, A = o.fromCharCode, + k = { + 92 : "\\", + 34 : '"', + 47 : "/", + 98 : "\b", + 116 : "\t", + 110 : "\n", + 102 : "\f", + 114 : "\r" + }, + I = function() { + throw C = N = null, + c() + }, + P = function() { + for (var t, e, n, r, i, o = N, + s = o.length; C < s;) switch (i = o.charCodeAt(C)) { + case 9: + case 10: + case 13: + case 32: + C++; + break; + case 123: + case 125: + case 91: + case 93: + case 58: + case 44: + return t = w ? o.charAt(C) : o[C], + C++, + t; + case 34: + for (t = "@", C++; C < s;) if ((i = o.charCodeAt(C)) < 32) I(); + else if (92 == i) switch (i = o.charCodeAt(++C)) { + case 92: + case 34: + case 47: + case 98: + case 116: + case 110: + case 102: + case 114: + t += k[i], + C++; + break; + case 117: + for (e = ++C, n = C + 4; C < n; C++)(i = o.charCodeAt(C)) >= 48 && i <= 57 || i >= 97 && i <= 102 || i >= 65 && i <= 70 || I(); + t += A("0x" + o.slice(e, C)); + break; + default: + I() + } else { + if (34 == i) break; + for (i = o.charCodeAt(C), e = C; i >= 32 && 92 != i && 34 != i;) i = o.charCodeAt(++C); + t += o.slice(e, C) + } + if (34 == o.charCodeAt(C)) return C++, + t; + I(); + default: + if (e = C, 45 == i && (r = !0, i = o.charCodeAt(++C)), i >= 48 && i <= 57) { + for (48 == i && (i = o.charCodeAt(C + 1)) >= 48 && i <= 57 && I(), r = !1; C < s && (i = o.charCodeAt(C)) >= 48 && i <= 57; C++); + if (46 == o.charCodeAt(C)) { + for (n = ++C; n < s && (i = o.charCodeAt(n)) >= 48 && i <= 57; n++); + n == C && I(), + C = n + } + if (101 == (i = o.charCodeAt(C)) || 69 == i) { + for (i = o.charCodeAt(++C), 43 != i && 45 != i || C++, n = C; n < s && (i = o.charCodeAt(n)) >= 48 && i <= 57; n++); + n == C && I(), + C = n + } + return + o.slice(e, C) + } + if (r && I(), "true" == o.slice(C, C + 4)) return C += 4, + !0; + if ("false" == o.slice(C, C + 5)) return C += 5, + !1; + if ("null" == o.slice(C, C + 4)) return C += 4, + null; + I() + } + return "$" + }, + L = function(t) { + var e, n; + if ("$" == t && I(), "string" == typeof t) { + if ("@" == (w ? t.charAt(0) : t[0])) return t.slice(1); + if ("[" == t) { + for (e = []; + "]" != (t = P()); n || (n = !0)) n && ("," == t ? "]" == (t = P()) && I() : I()), + "," == t && I(), + e.push(L(t)); + return e + } + if ("{" == t) { + for (e = {}; + "}" != (t = P()); n || (n = !0)) n && ("," == t ? "}" == (t = P()) && I() : I()), + "," != t && "string" == typeof t && "@" == (w ? t.charAt(0) : t[0]) && ":" == P() || I(), + e[t.slice(1)] = L(P()); + return e + } + I() + } + return t + }, + R = function(t, e, n) { + var r = U(t, e, n); + r === m ? delete t[e] : t[e] = r + }, + U = function(t, e, n) { + var r, i = t[e]; + if ("object" == typeof i && i) if ("[object Array]" == y.call(i)) for (r = i.length; r--;) R(i, r, n); + else v(i, + function(t) { + R(i, t, n) + }); + return n.call(t, e, i) + }; + e.parse = function(t, e) { + var n, r; + return C = 0, + N = "" + t, + n = L(P()), + "$" != P() && I(), + C = N = null, + e && "[object Function]" == y.call(e) ? U((r = {}, + r[""] = n, r), "", e) : n + } + } + } + return e.runInContext = i, + e + } + var o = "function" == typeof t && t.amd, + s = { + "function": !0, + "object": !0 + }, + a = s[typeof r] && r && !r.nodeType && r, + l = s[typeof window] && window || this, + u = a && s[typeof n] && n && !n.nodeType && "object" == typeof e && e; + if (!u || u.global !== u && u.window !== u && u.self !== u || (l = u), a && !o) i(l, a); + else { + var c = l.JSON, + f = l.JSON3, + h = !1, + d = i(l, l.JSON3 = { + "noConflict": function() { + return h || (h = !0, l.JSON = c, l.JSON3 = f, c = f = null), + d + } + }); + l.JSON = { + "parse": d.parse, + "stringify": d.stringify + } + } + o && t(function() { + return d + }) + }).call(this) + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + {}], + 56 : [function(t, e, n) { + "use strict"; + function r(t) { + for (var e, n = /([^=?&]+)=?([^&]*)/g, + r = {}; e = n.exec(t); r[decodeURIComponent(e[1])] = decodeURIComponent(e[2])); + return r + } + function i(t, e) { + e = e || ""; + var n = []; + "string" != typeof e && (e = "?"); + for (var r in t) o.call(t, r) && n.push(encodeURIComponent(r) + "=" + encodeURIComponent(t[r])); + return n.length ? e + n.join("&") : "" + } + var o = Object.prototype.hasOwnProperty; + n.stringify = i, + n.parse = r + }, + {}], + 57 : [function(t, e, n) { + "use strict"; + e.exports = function(t, e) { + if (e = e.split(":")[0], !(t = +t)) return ! 1; + switch (e) { + case "http": + case "ws": + return 80 !== t; + case "https": + case "wss": + return 443 !== t; + case "ftp": + return 21 !== t; + case "gopher": + return 70 !== t; + case "file": + return ! 1 + } + return 0 !== t + } + }, + {}], + 58 : [function(t, e, n) { + "use strict"; + function r(t) { + var e = f.exec(t); + return { + protocol: e[1] ? e[1].toLowerCase() : "", + slashes: !!e[2], + rest: e[3] + } + } + function i(t, e) { + for (var n = (e || "/").split("/").slice(0, -1).concat(t.split("/")), r = n.length, i = n[r - 1], o = !1, s = 0; r--;)"." === n[r] ? n.splice(r, 1) : ".." === n[r] ? (n.splice(r, 1), s++) : s && (0 === r && (o = !0), n.splice(r, 1), s--); + return o && n.unshift(""), + "." !== i && ".." !== i || n.push(""), + n.join("/") + } + function o(t, e, n) { + if (! (this instanceof o)) return new o(t, e, n); + var s, a, f, d, p, v, m = h.slice(), + b = typeof e, + y = this, + g = 0; + for ("object" !== b && "string" !== b && (n = e, e = null), n && "function" != typeof n && (n = c.parse), e = u(e), a = r(t || ""), s = !a.protocol && !a.slashes, y.slashes = a.slashes || s && e.slashes, y.protocol = a.protocol || e.protocol || "", t = a.rest, a.slashes || (m[2] = [/(.*)/, "pathname"]); g < m.length; g++) d = m[g], + f = d[0], + v = d[1], + f !== f ? y[v] = t: "string" == typeof f ? ~ (p = t.indexOf(f)) && ("number" == typeof d[2] ? (y[v] = t.slice(0, p), t = t.slice(p + d[2])) : (y[v] = t.slice(p), t = t.slice(0, p))) : (p = f.exec(t)) && (y[v] = p[1], t = t.slice(0, p.index)), + y[v] = y[v] || (s && d[3] ? e[v] || "": ""), + d[4] && (y[v] = y[v].toLowerCase()); + n && (y.query = n(y.query)), + s && e.slashes && "/" !== y.pathname.charAt(0) && ("" !== y.pathname || "" !== e.pathname) && (y.pathname = i(y.pathname, e.pathname)), + l(y.port, y.protocol) || (y.host = y.hostname, y.port = ""), + y.username = y.password = "", + y.auth && (d = y.auth.split(":"), y.username = d[0] || "", y.password = d[1] || ""), + y.origin = y.protocol && y.host && "file:" !== y.protocol ? y.protocol + "//" + y.host: "null", + y.href = y.toString() + } + function s(t, e, n) { + var r = this; + switch (t) { + case "query": + "string" == typeof e && e.length && (e = (n || c.parse)(e)), + r[t] = e; + break; + case "port": + r[t] = e, + l(e, r.protocol) ? e && (r.host = r.hostname + ":" + e) : (r.host = r.hostname, r[t] = ""); + break; + case "hostname": + r[t] = e, + r.port && (e += ":" + r.port), + r.host = e; + break; + case "host": + r[t] = e, + /:\d+$/.test(e) ? (e = e.split(":"), r.port = e.pop(), r.hostname = e.join(":")) : (r.hostname = e, r.port = ""); + break; + case "protocol": + r.protocol = e.toLowerCase(), + r.slashes = !n; + break; + case "pathname": + r.pathname = e.length && "/" !== e.charAt(0) ? "/" + e: e; + break; + default: + r[t] = e + } + for (var i = 0; i < h.length; i++) { + var o = h[i]; + o[4] && (r[o[1]] = r[o[1]].toLowerCase()) + } + return r.origin = r.protocol && r.host && "file:" !== r.protocol ? r.protocol + "//" + r.host: "null", + r.href = r.toString(), + r + } + function a(t) { + t && "function" == typeof t || (t = c.stringify); + var e, n = this, + r = n.protocol; + r && ":" !== r.charAt(r.length - 1) && (r += ":"); + var i = r + (n.slashes ? "//": ""); + return n.username && (i += n.username, n.password && (i += ":" + n.password), i += "@"), + i += n.host + n.pathname, + e = "object" == typeof n.query ? t(n.query) : n.query, + e && (i += "?" !== e.charAt(0) ? "?" + e: e), + n.hash && (i += n.hash), + i + } + var l = t("requires-port"), + u = t("./lolcation"), + c = t("querystringify"), + f = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i, + h = [["#", "hash"], ["?", "query"], ["/", "pathname"], ["@", "auth", 1], [NaN, "host", void 0, 1, 1], [/:(\d+)$/, "port", void 0, 1], [NaN, "hostname", void 0, 1, 1]]; + o.prototype = { + set: s, + toString: a + }, + o.extractProtocol = r, + o.location = u, + o.qs = c, + e.exports = o + }, + { + "./lolcation": 59, + "querystringify": 56, + "requires-port": 57 + }], + 59 : [function(t, e, n) { (function(n) { + "use strict"; + var r, i = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//, + o = { + hash: 1, + query: 1 + }; + e.exports = function(e) { + e = e || n.location || {}, + r = r || t("./"); + var s, a = {}, + l = typeof e; + if ("blob:" === e.protocol) a = new r(unescape(e.pathname), {}); + else if ("string" === l) { + a = new r(e, {}); + for (s in o) delete a[s] + } else if ("object" === l) { + for (s in e) s in o || (a[s] = e[s]); + void 0 === a.slashes && (a.slashes = i.test(e.href)) + } + return a + } + }).call(this, "undefined" != typeof global ? global: "undefined" != typeof self ? self: "undefined" != typeof window ? window: {}) + }, + { + "./": 58 + }] + }, + {}, + [1])(1) +}); +//# sourceMappingURL=sockjs.min.js.map diff --git a/src/main/webapp/js/stomp.min.js b/src/main/webapp/js/stomp.min.js new file mode 100644 index 0000000..92efbd0 --- /dev/null +++ b/src/main/webapp/js/stomp.min.js @@ -0,0 +1,470 @@ +//Generated by CoffeeScript 1.7.1 +/* + Stomp Over WebSocket http://www.jmesnil.net/stomp-websocket/doc/ | Apache License V2.0 + + Copyright (C) 2010-2013 [Jeff Mesnil](http://jmesnil.net/) + Copyright (C) 2012 [FuseSource, Inc.](http://fusesource.com) + */ +(function() { + var t, e, n, i, r = {}.hasOwnProperty, + o = [].slice; + t = { + LF: "\n", + NULL: "\x00" + }; + n = function() { + var e; + function n(t, e, n) { + this.command = t; + this.headers = e != null ? e: {}; + this.body = n != null ? n: "" + } + n.prototype.toString = function() { + var e, i, o, s, u; + e = [this.command]; + o = this.headers["content-length"] === false ? true: false; + if (o) { + delete this.headers["content-length"] + } + u = this.headers; + for (i in u) { + if (!r.call(u, i)) continue; + s = u[i]; + e.push("" + i + ":" + s) + } + if (this.body && !o) { + e.push("content-length:" + n.sizeOfUTF8(this.body)) + } + e.push(t.LF + this.body); + return e.join(t.LF) + }; + n.sizeOfUTF8 = function(t) { + if (t) { + return encodeURI(t).match(/%..|./g).length + } else { + return 0 + } + }; + e = function(e) { + var i, r, o, s, u, a, c, f, h, l, p, d, g, b, m, v, y; + s = e.search(RegExp("" + t.LF + t.LF)); + u = e.substring(0, s).split(t.LF); + o = u.shift(); + a = {}; + d = function(t) { + return t.replace(/^\s+|\s+$/g, "") + }; + v = u.reverse(); + for (g = 0, m = v.length; g < m; g++) { + l = v[g]; + f = l.indexOf(":"); + a[d(l.substring(0, f))] = d(l.substring(f + 1)) + } + i = ""; + p = s + 2; + if (a["content-length"]) { + h = parseInt(a["content-length"]); + i = ("" + e).substring(p, p + h) + } else { + r = null; + for (c = b = p, y = e.length; p <= y ? b < y: b > y; c = p <= y ? ++b: --b) { + r = e.charAt(c); + if (r === t.NULL) { + break + } + i += r + } + } + return new n(o, a, i) + }; + n.unmarshall = function(n) { + var i; + return function() { + var r, o, s, u; + s = n.split(RegExp("" + t.NULL + t.LF + "*")); + u = []; + for (r = 0, o = s.length; r < o; r++) { + i = s[r]; + if ((i != null ? i.length: void 0) > 0) { + u.push(e(i)) + } + } + return u + } () + }; + n.marshall = function(e, i, r) { + var o; + o = new n(e, i, r); + return o.toString() + t.NULL + }; + return n + } (); + e = function() { + var e; + function r(t) { + this.ws = t; + this.ws.binaryType = "arraybuffer"; + this.counter = 0; + this.connected = false; + this.heartbeat = { + outgoing: 1e4, + incoming: 1e4 + }; + this.maxWebSocketFrameSize = 16 * 1024; + this.subscriptions = {} + } + r.prototype.debug = function(t) { + var e; + return typeof window !== "undefined" && window !== null ? (e = window.console) != null ? e.log(t) : void 0 : void 0 + }; + e = function() { + if (Date.now) { + return Date.now() + } else { + return (new Date).valueOf + } + }; + r.prototype._transmit = function(t, e, i) { + var r; + r = n.marshall(t, e, i); + if (typeof this.debug === "function") { + this.debug(">>> " + r) + } + while (true) { + if (r.length > this.maxWebSocketFrameSize) { + this.ws.send(r.substring(0, this.maxWebSocketFrameSize)); + r = r.substring(this.maxWebSocketFrameSize); + if (typeof this.debug === "function") { + this.debug("remaining = " + r.length) + } + } else { + return this.ws.send(r) + } + } + }; + r.prototype._setupHeartbeat = function(n) { + var r, o, s, u, a, c; + if ((a = n.version) !== i.VERSIONS.V1_1 && a !== i.VERSIONS.V1_2) { + return + } + c = function() { + var t, e, i, r; + i = n["heart-beat"].split(","); + r = []; + for (t = 0, e = i.length; t < e; t++) { + u = i[t]; + r.push(parseInt(u)) + } + return r + } (), + o = c[0], + r = c[1]; + if (! (this.heartbeat.outgoing === 0 || r === 0)) { + s = Math.max(this.heartbeat.outgoing, r); + if (typeof this.debug === "function") { + this.debug("send PING every " + s + "ms") + } + this.pinger = i.setInterval(s, + function(e) { + return function() { + e.ws.send(t.LF); + return typeof e.debug === "function" ? e.debug(">>> PING") : void 0 + } + } (this)) + } + if (! (this.heartbeat.incoming === 0 || o === 0)) { + s = Math.max(this.heartbeat.incoming, o); + if (typeof this.debug === "function") { + this.debug("check PONG every " + s + "ms") + } + return this.ponger = i.setInterval(s, + function(t) { + return function() { + var n; + n = e() - t.serverActivity; + if (n > s * 2) { + if (typeof t.debug === "function") { + t.debug("did not receive server activity for the last " + n + "ms") + } + return t.ws.close() + } + } + } (this)) + } + }; + r.prototype._parseConnect = function() { + var t, e, n, i; + t = 1 <= arguments.length ? o.call(arguments, 0) : []; + i = {}; + switch (t.length) { + case 2: + i = t[0], + e = t[1]; + break; + case 3: + if (t[1] instanceof Function) { + i = t[0], + e = t[1], + n = t[2] + } else { + i.login = t[0], + i.passcode = t[1], + e = t[2] + } + break; + case 4: + i.login = t[0], + i.passcode = t[1], + e = t[2], + n = t[3]; + break; + default: + i.login = t[0], + i.passcode = t[1], + e = t[2], + n = t[3], + i.host = t[4] + } + return [i, e, n] + }; + r.prototype.connect = function() { + var r, s, u, a; + r = 1 <= arguments.length ? o.call(arguments, 0) : []; + a = this._parseConnect.apply(this, r); + u = a[0], + this.connectCallback = a[1], + s = a[2]; + if (typeof this.debug === "function") { + this.debug("Opening Web Socket...") + } + this.ws.onmessage = function(i) { + return function(r) { + var o, u, a, c, f, h, l, p, d, g, b, m; + c = typeof ArrayBuffer !== "undefined" && r.data instanceof ArrayBuffer ? (o = new Uint8Array(r.data), typeof i.debug === "function" ? i.debug("--- got data length: " + o.length) : void 0, + function() { + var t, e, n; + n = []; + for (t = 0, e = o.length; t < e; t++) { + u = o[t]; + n.push(String.fromCharCode(u)) + } + return n + } ().join("")) : r.data; + i.serverActivity = e(); + if (c === t.LF) { + if (typeof i.debug === "function") { + i.debug("<<< PONG") + } + return + } + if (typeof i.debug === "function") { + i.debug("<<< " + c) + } + b = n.unmarshall(c); + m = []; + for (d = 0, g = b.length; d < g; d++) { + f = b[d]; + switch (f.command) { + case "CONNECTED": + if (typeof i.debug === "function") { + i.debug("connected to server " + f.headers.server) + } + i.connected = true; + i._setupHeartbeat(f.headers); + m.push(typeof i.connectCallback === "function" ? i.connectCallback(f) : void 0); + break; + case "MESSAGE": + p = f.headers.subscription; + l = i.subscriptions[p] || i.onreceive; + if (l) { + a = i; + h = f.headers["message-id"]; + f.ack = function(t) { + if (t == null) { + t = {} + } + return a.ack(h, p, t) + }; + f.nack = function(t) { + if (t == null) { + t = {} + } + return a.nack(h, p, t) + }; + m.push(l(f)) + } else { + m.push(typeof i.debug === "function" ? i.debug("Unhandled received MESSAGE: " + f) : void 0) + } + break; + case "RECEIPT": + m.push(typeof i.onreceipt === "function" ? i.onreceipt(f) : void 0); + break; + case "ERROR": + m.push(typeof s === "function" ? s(f) : void 0); + break; + default: + m.push(typeof i.debug === "function" ? i.debug("Unhandled frame: " + f) : void 0) + } + } + return m + } + } (this); + this.ws.onclose = function(t) { + return function() { + var e; + e = "Whoops! Lost connection to " + t.ws.url; + if (typeof t.debug === "function") { + t.debug(e) + } + t._cleanUp(); + return typeof s === "function" ? s(e) : void 0 + } + } (this); + return this.ws.onopen = function(t) { + return function() { + if (typeof t.debug === "function") { + t.debug("Web Socket Opened...") + } + u["accept-version"] = i.VERSIONS.supportedVersions(); + u["heart-beat"] = [t.heartbeat.outgoing, t.heartbeat.incoming].join(","); + return t._transmit("CONNECT", u) + } + } (this) + }; + r.prototype.disconnect = function(t, e) { + if (e == null) { + e = {} + } + this._transmit("DISCONNECT", e); + this.ws.onclose = null; + this.ws.close(); + this._cleanUp(); + return typeof t === "function" ? t() : void 0 + }; + r.prototype._cleanUp = function() { + this.connected = false; + if (this.pinger) { + i.clearInterval(this.pinger) + } + if (this.ponger) { + return i.clearInterval(this.ponger) + } + }; + r.prototype.send = function(t, e, n) { + if (e == null) { + e = {} + } + if (n == null) { + n = "" + } + e.destination = t; + return this._transmit("SEND", e, n) + }; + r.prototype.subscribe = function(t, e, n) { + var i; + if (n == null) { + n = {} + } + if (!n.id) { + n.id = "sub-" + this.counter++ + } + n.destination = t; + this.subscriptions[n.id] = e; + this._transmit("SUBSCRIBE", n); + i = this; + return { + id: n.id, + unsubscribe: function() { + return i.unsubscribe(n.id) + } + } + }; + r.prototype.unsubscribe = function(t) { + delete this.subscriptions[t]; + return this._transmit("UNSUBSCRIBE", { + id: t + }) + }; + r.prototype.begin = function(t) { + var e, n; + n = t || "tx-" + this.counter++; + this._transmit("BEGIN", { + transaction: n + }); + e = this; + return { + id: n, + commit: function() { + return e.commit(n) + }, + abort: function() { + return e.abort(n) + } + } + }; + r.prototype.commit = function(t) { + return this._transmit("COMMIT", { + transaction: t + }) + }; + r.prototype.abort = function(t) { + return this._transmit("ABORT", { + transaction: t + }) + }; + r.prototype.ack = function(t, e, n) { + if (n == null) { + n = {} + } + n["message-id"] = t; + n.subscription = e; + return this._transmit("ACK", n) + }; + r.prototype.nack = function(t, e, n) { + if (n == null) { + n = {} + } + n["message-id"] = t; + n.subscription = e; + return this._transmit("NACK", n) + }; + return r + } (); + i = { + VERSIONS: { + V1_0: "1.0", + V1_1: "1.1", + V1_2: "1.2", + supportedVersions: function() { + return "1.1,1.0" + } + }, + client: function(t, n) { + var r, o; + if (n == null) { + n = ["v10.stomp", "v11.stomp"] + } + r = i.WebSocketClass || WebSocket; + o = new r(t, n); + return new e(o) + }, + over: function(t) { + return new e(t) + }, + Frame: n + }; + if (typeof exports !== "undefined" && exports !== null) { + exports.Stomp = i + } + if (typeof window !== "undefined" && window !== null) { + i.setInterval = function(t, e) { + return window.setInterval(e, t) + }; + i.clearInterval = function(t) { + return window.clearInterval(t) + }; + window.Stomp = i + } else if (!exports) { + self.Stomp = i + } +}).call(this); \ No newline at end of file diff --git a/src/main/webapp/view/newmap.jsp b/src/main/webapp/view/newmap.jsp index 89b9c76..9ff1067 100644 --- a/src/main/webapp/view/newmap.jsp +++ b/src/main/webapp/view/newmap.jsp @@ -14,6 +14,8 @@ <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=rER1sgBIcQxkfNSlm2wmBGZGgEERrooM"></script> <script type="text/javascript" src="/js/jquery.min.js"></script> + <script type="text/javascript" src="/js/sockjs.min.js"></script> + <script type="text/javascript" src="/js/stomp.min.js"></script> <script type="text/javascript" src="/js/utils.js"></script> <script type="text/javascript"> if (typeof (JSON) == 'undefined') { @@ -345,10 +347,10 @@ <div class="charts_btn"> </div> </div> - <%-- <div class="search_box"> - <button id="searchBtn" type="button">������</button> - <textarea style="width: 200px;height:200px;" id="searchParam"></textarea> - </div>--%> + <div class="search_box"> + <button id="searchBtn" type="button">������</button> + <textarea style="width: 300px;height:400px;" id="searchParam"></textarea> + </div> <!-- <div id="popup_box"> <div id="equ_list" class="listview"> </div> @@ -367,6 +369,7 @@ var moralMap = window.moralMap; var params = $.parseJSON($("#mapParams").html()); moralMap['params'] = params; + var orgId = params["orgId"]; var regionCode = params["regionCode"]; var provinceCode = regionCode.toString().substring(0, 2) + "0000"; var mapType = getUrlParam("mapType"); @@ -422,7 +425,10 @@ function loadOverlays(url, callback) { //������������ var oldMarkerList = moralMap.getHorizonMarkers(); + var oldWindMarkerList = moralMap.getHorizonWindMarkers(); + moralMap.addOverlays(oldMarkerList); + moralMap.addOverlays(oldWindMarkerList); //������������ //������������������������,������������������ if (moralMap.isOverBounds() || moralMap.getOverlays().length == 0) { @@ -480,7 +486,9 @@ } } var moralMask = new moralMap.Equipment(obj); + var moralDeviceWind = new moralMap.Device(obj); moralMap.addOverlay(moralMask); + moralMap.addOverlay(moralDeviceWind); } } } @@ -629,7 +637,31 @@ } } ); - //������������ + + var ws; + if (typeof (WebSocket) === "undefined") { + alert("������������������������WebSocket"); + } else { + ws = new WebSocket('ws://47.96.15.25:8080/screen/webSocket/' + orgId + '&' + regionCode); + ws.onopen = function () { + }; + + //������������������ + ws.onmessage = function (msg) { + // $("#searchParam").val(JSON.parse(msg.data)); + moralMap.refreshWindDir(JSON.parse(JSON.parse(msg.data))); + if (moralMap.showSensors && typeof (moralMap.showSensors) == "function") { + moralMap.showSensors(JSON.parse(JSON.parse(msg.data))); + } + }; + + //������������ + ws.onclose = function () { + }; + //��������������������� + ws.onerror = function () { + }; + } })(jQuery); var _intervalNum = -1; @@ -738,14 +770,14 @@ function callJS(jsonData) { var jsonData = JSON.parse(jsonData); var methodName = jsonData.methodName; - // $("#searchParam").val(JSON.stringify(jsonData)); + $("#searchParam").val(JSON.stringify(jsonData)); if ("JumpBaiduMap" == methodName) { moralMap.callJS(jsonData); } else if ("RefreshState" == methodName) { var states = jsonData.states; moralMap.refreshState(states); } else if ("DeliverSensors" == methodName) { - moralMap.showSensors(jsonData); + // moralMap.showSensors(jsonData); } } </script> -- Gitblit v1.8.0