!function(p,g,e){var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorDuringStartRequest:"Error during start request. Stopping the connection.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server. Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."};if("function"!=typeof p)throw new Error(f.nojQuery);var v,t,n,o,m="complete"===g.document.readyState,h=p(g),S="__Negotiate Aborted__",b={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},_=function(e,t,n){return t===e.state&&(e.state=n,p(e).triggerHandler(b.onStateChanged,[{oldState:t,newState:n}]),!0)},T=function(e){return e._.keepAliveData.activated&&e.transport.supportsKeepAlive(e)};function r(e,t){return t.match(/:\d+$/)?t:t+":"+("http:"===(n=e)?80:"https:"===n?443:void 0);var n}(v=function(e,t,n){return new v.fn.init(e,t,n)})._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:("Microsoft Internet Explorer"===g.navigator.appName&&(o=/MSIE ([0-9]+\.[0-9]+)/.exec(g.navigator.userAgent))&&(n=g.parseFloat(o[1])),n),error:function(e,t,n){var o=new Error(e);return o.source=t,void 0!==n&&(o.context=n),o},transportError:function(e,t,n,o){var r=this.error(e,n,o);return r.transport=t?t.name:void 0,r},format:function(){for(var e=arguments[0],t=0;t<\/script>.")}},"function"==typeof h.on?h.on("load",function(){m=!0}):h.load(function(){m=!0}),v.fn=v.prototype={init:function(e,t,n){var o=p(this);this.url=e,this.qs=t,this.lastError=null,this._={keepAliveData:{},connectingMessageBuffer:new function(t,e){var n=[];this.tryBuffer=function(e){return t.state===p.signalR.connectionState.connecting&&(n.push(e),!0)},this.drain=function(){if(t.state===p.signalR.connectionState.connected)for(;0=e.length)return 0===t?c.log("No transports supported by the server were selected."):1===t?c.log("No fallback transports were selected."):c.log("Fallback transports exhausted."),p(c).triggerHandler(b.onError,[n]),l.reject(n),void c.stop();if(c.state!==v.connectionState.disconnected){var o=e[t],r=v.transports[o],i=function(){a(e,t+1)};c.transport=r;try{c._.initHandler.start(r,function(){var e=11<=v._.firefoxMajorVersion(g.navigator.userAgent),t=!!c.withCredentials&&e;c.log("The start request succeeded. Transitioning to the connected state."),T(c)&&v.transports._logic.monitorKeepAlive(c),v.transports._logic.startHeartbeat(c),v._.configurePingInterval(c),_(c,v.connectionState.connecting,v.connectionState.connected)||c.log("WARNING! The connection was not in the connecting state."),c._.connectingMessageBuffer.drain(),p(c).triggerHandler(b.onStart),h.bind("unload",function(){c.log("Window unloading, stopping the connection."),c.stop(t)}),e&&h.bind("beforeunload",function(){g.setTimeout(function(){c.stop(t)},0)})},i)}catch(e){c.log(r.name+" transport threw '"+e.message+"' when attempting to start."),i()}}};var u=c.url+"/negotiate",d=function(e,t){var n=v._.error(f.errorOnNegotiate,e,t._.negotiateRequest);p(t).triggerHandler(b.onError,n),l.reject(n),t.stop()};return p(c).triggerHandler(b.onStarting),u=v.transports._logic.prepareQueryString(c,u),c.log("Negotiating with '"+u+"'."),c._.negotiateRequest=v.transports._logic.ajax(c,{url:u,error:function(e,t){t!==S?d(e,c):l.reject(v._.error(f.stoppedWhileNegotiating,null,c._.negotiateRequest))},success:function(e){var t,n,o,r=[],i=[];try{t=c._parseResponse(e)}catch(e){return void d(v._.error(f.errorParsingNegotiateResponse,e),c)}if(n=c._.keepAliveData,c.appRelativeUrl=t.Url,c.id=t.ConnectionId,c.token=t.ConnectionToken,c.webSocketServerUrl=t.WebSocketServerUrl,c._.pollTimeout=1e3*t.ConnectionTimeout+1e4,c.disconnectTimeout=1e3*t.DisconnectTimeout,c._.totalTransportConnectTimeout=c.transportConnectTimeout+1e3*t.TransportConnectTimeout,t.KeepAliveTimeout?(n.activated=!0,n.timeout=1e3*t.KeepAliveTimeout,n.timeoutWarning=n.timeout*c.keepAliveWarnAt,c._.beatInterval=(n.timeout-n.timeoutWarning)/3):n.activated=!1,c.reconnectWindow=c.disconnectTimeout+(n.timeout||0),!t.ProtocolVersion||t.ProtocolVersion!==c.clientProtocol)return o=v._.error(v._.format(f.protocolIncompatible,c.clientProtocol,t.ProtocolVersion)),p(c).triggerHandler(b.onError,[o]),void l.reject(o);p.each(v.transports,function(e){if(0===e.indexOf("_")||"webSockets"===e&&!t.TryWebSockets)return!0;i.push(e)}),p.isArray(s.transport)?p.each(s.transport,function(e,t){0<=p.inArray(t,i)&&r.push(t)}):"auto"===s.transport?r=i:0<=p.inArray(s.transport,i)&&r.push(s.transport),a(r)}}),l.promise()},starting:function(n){var o=this;return p(o).bind(b.onStarting,function(e,t){n.call(o)}),o},send:function(e){var t=this;if(t.state===v.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===v.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,e),t},received:function(n){var o=this;return p(o).bind(b.onReceived,function(e,t){n.call(o,t)}),o},stateChanged:function(n){var o=this;return p(o).bind(b.onStateChanged,function(e,t){n.call(o,t)}),o},error:function(o){var r=this;return p(r).bind(b.onError,function(e,t,n){r.lastError=t,o.call(r,t,n)}),r},disconnected:function(n){var o=this;return p(o).bind(b.onDisconnect,function(e,t){n.call(o)}),o},connectionSlow:function(n){var o=this;return p(o).bind(b.onConnectionSlow,function(e,t){n.call(o)}),o},reconnecting:function(n){var o=this;return p(o).bind(b.onReconnecting,function(e,t){n.call(o)}),o},reconnected:function(n){var o=this;return p(o).bind(b.onReconnect,function(e,t){n.call(o)}),o},stop:function(e,t){var n=this,o=n._deferral;return n._.deferredStartHandler&&h.unbind("load",n._.deferredStartHandler),delete n._.config,delete n._.deferredStartHandler,m||n._.config&&!0!==n._.config.waitForPageLoad?n.state!==v.connectionState.disconnected?(n.log("Stopping connection."),g.clearTimeout(n._.beatHandle),g.clearInterval(n._.pingIntervalId),n.transport&&(n.transport.stop(n),!1!==t&&n.transport.abort(n,e),T(n)&&v.transports._logic.stopMonitoringKeepAlive(n),n.transport=null),n._.negotiateRequest&&(n._.negotiateRequest.abort(S),delete n._.negotiateRequest),n._.initHandler&&n._.initHandler.stop(),delete n._deferral,delete n.messageId,delete n.groupsToken,delete n.id,delete n._.pingIntervalId,delete n._.lastMessageAt,delete n._.lastActiveAt,n._.connectingMessageBuffer.clear(),_(n,n.state,v.connectionState.disconnected),p(n).triggerHandler(b.onDisconnect),n):void 0:(n.log("Stopping connection prior to negotiate."),void(o&&o.reject(v._.error(f.stoppedWhileLoading))))},log:function(e){var t,n;t=e,!1!==this.logging&&void 0!==g.console&&(n="["+(new Date).toTimeString()+"] SignalR: "+t,g.console.debug?g.console.debug(n):g.console.log&&g.console.log(n))}},v.fn.init.prototype=v.fn,v.noConflict=function(){return p.connection===v&&(p.connection=t),v},p.connection&&(t=p.connection),p.connection=p.signalR=v}(window.jQuery,window),function(c,s,e){var l,u=c.signalR,d=c.signalR.events,t=c.signalR.changeState,p="__Start Aborted__";function r(e){var t,n,o;e._.keepAliveData.monitoring&&(o=(t=e)._.keepAliveData,t.state===u.connectionState.connected&&((n=(new Date).getTime()-t._.lastMessageAt)>=o.timeout?(t.log("Keep alive timed out. Notifying transport that connection has been lost."),t.transport.lostConnection(t)):n>=o.timeoutWarning?o.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),c(t).triggerHandler(d.onConnectionSlow),o.userNotified=!0):o.userNotified=!1)),l.markActive(e)&&(e._.beatHandle=s.setTimeout(function(){r(e)},e._.beatInterval))}function g(e,t){var n=e.url+t;return e.transport&&(n+="?transport="+e.transport.name),l.prepareQueryString(e,n)}function n(e){this.connection=e,this.startRequested=!1,this.startCompleted=!1,this.connectionStopped=!1}u.transports={},n.prototype={start:function(t,e,n){var o=this,r=o.connection,i=!1;o.startRequested||o.connectionStopped?r.log("WARNING! "+t.name+" transport cannot be started. Initialization ongoing or completed."):(r.log(t.name+" transport starting."),t.start(r,function(){i||o.initReceived(t,e)},function(e){return i||(i=!0,o.transportFailed(t,e,n)),!o.startCompleted||o.connectionStopped}),o.transportTimeoutHandle=s.setTimeout(function(){i||(i=!0,r.log(t.name+" transport timed out when trying to connect."),o.transportFailed(t,void 0,n))},r._.totalTransportConnectTimeout))},stop:function(){this.connectionStopped=!0,s.clearTimeout(this.transportTimeoutHandle),u.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(e,t){var n=this,o=n.connection;n.startRequested?o.log("WARNING! The client received multiple init messages."):n.connectionStopped||(n.startRequested=!0,s.clearTimeout(n.transportTimeoutHandle),o.log(e.name+" transport connected. Initiating start request."),u.transports._logic.ajaxStart(o,function(){n.startCompleted=!0,t()}))},transportFailed:function(e,t,n){var o,r=this.connection,i=r._deferral;this.connectionStopped||(s.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(o=u._.error(u.resources.errorDuringStartRequest,t),r.log(e.name+" transport failed during the start request. Stopping the connection."),c(r).triggerHandler(d.onError,[o]),i&&i.reject(o),r.stop()):(e.stop(r),r.log(e.name+" transport failed to connect. Attempting to fall back."),n()))}},l=u.transports._logic={ajax:function(e,t){return c.ajax(c.extend(!0,{},c.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:e.withCredentials},contentType:e.contentType,dataType:e.ajaxDataType},t))},pingServer:function(n){var e,o,r=c.Deferred();return n.transport?(e=n.url+"/ping",e=l.addQs(e,n.qs),o=l.ajax(n,{url:e,success:function(e){var t;try{t=n._parseResponse(e)}catch(e){return r.reject(u._.transportError(u.resources.pingServerFailedParse,n.transport,e,o)),void n.stop()}"pong"===t.Response?r.resolve():r.reject(u._.transportError(u._.format(u.resources.pingServerFailedInvalidResponse,e),n.transport,null,o))},error:function(e){401===e.status||403===e.status?(r.reject(u._.transportError(u._.format(u.resources.pingServerFailedStatusCode,e.status),n.transport,e,o)),n.stop()):r.reject(u._.transportError(u.resources.pingServerFailed,n.transport,e,o))}})):r.reject(u._.transportError(u.resources.noConnectionTransport,n.transport)),r.promise()},prepareQueryString:function(e,t){var n;return n=l.addQs(t,"clientProtocol="+e.clientProtocol),n=l.addQs(n,e.qs),e.token&&(n+="&connectionToken="+s.encodeURIComponent(e.token)),e.data&&(n+="&connectionData="+s.encodeURIComponent(e.data)),n},addQs:function(e,t){var n,o=-1!==e.indexOf("?")?"&":"?";if(!t)return e;if("object"==typeof t)return e+o+c.param(t);if("string"==typeof t)return"?"!==(n=t.charAt(0))&&"&"!==n||(o=""),e+o+t;throw new Error("Query string property must be either a string or object.")},getUrl:function(e,t,n,o,r){var i=("webSockets"===t?"":e.baseUrl)+e.appRelativeUrl,a="transport="+t;return!r&&e.groupsToken&&(a+="&groupsToken="+s.encodeURIComponent(e.groupsToken)),n?(i+=o?"/poll":"/reconnect",!r&&e.messageId&&(a+="&messageId="+s.encodeURIComponent(e.messageId))):i+="/connect",i+="?"+a,i=l.prepareQueryString(e,i),r||(i+="&tid="+Math.floor(11*Math.random())),i},maximizePersistentResponse:function(e){return{MessageId:e.C,Messages:e.M,Initialized:void 0!==e.S,ShouldReconnect:void 0!==e.T,LongPollDelay:e.L,GroupsToken:e.G}},updateGroups:function(e,t){t&&(e.groupsToken=t)},stringifySend:function(e,t){return"string"==typeof t||null==t?t:e.json.stringify(t)},ajaxSend:function(n,o){var r,e=l.stringifySend(n,o),t=g(n,"/send"),i=function(e,t){c(t).triggerHandler(d.onError,[u._.transportError(u.resources.sendFailed,t.transport,e,r),o])};return r=l.ajax(n,{url:t,type:"jsonp"===n.ajaxDataType?"GET":"POST",contentType:u._.defaultContentType,data:{data:e},success:function(e){var t;if(e){try{t=n._parseResponse(e)}catch(e){return i(e,n),void n.stop()}l.triggerReceived(n,t)}},error:function(e,t){"abort"!==t&&"parsererror"!==t&&i(e,n)}})},ajaxAbort:function(e,t){if(void 0!==e.transport){t=void 0===t||t;var n=g(e,"/abort");l.ajax(e,{url:n,async:t,timeout:1e3,type:"POST"}),e.log("Fired ajax abort async = "+t+".")}},ajaxStart:function(r,i){var o=function(e){var t=r._deferral;t&&t.reject(e)},a=function(e){r.log("The start request failed. Stopping the connection."),c(r).triggerHandler(d.onError,[e]),o(e),r.stop()};r._.startRequest=l.ajax(r,{url:g(r,"/start"),success:function(t,e,n){var o;try{o=r._parseResponse(t)}catch(e){return void a(u._.error(u._.format(u.resources.errorParsingStartResponse,t),e,n))}"started"===o.Response?i():a(u._.error(u._.format(u.resources.invalidStartResponse,t),null,n))},error:function(e,t,n){t!==p?a(u._.error(u.resources.errorDuringStartRequest,n,e)):(r.log("The start request aborted because connection.stop() was called."),o(u._.error(u.resources.stoppedDuringStartRequest,null,e)))}})},tryAbortStartRequest:function(e){e._.startRequest&&(e._.startRequest.abort(p),delete e._.startRequest)},tryInitialize:function(e,t,n){t.Initialized&&n?n():t.Initialized&&e.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(e,t){e._.connectingMessageBuffer.tryBuffer(t)||c(e).triggerHandler(d.onReceived,[t])},processMessages:function(n,e,t){var o;l.markLastMessage(n),e&&(o=l.maximizePersistentResponse(e),l.updateGroups(n,o.GroupsToken),o.MessageId&&(n.messageId=o.MessageId),o.Messages&&(c.each(o.Messages,function(e,t){l.triggerReceived(n,t)}),l.tryInitialize(n,o,t)))},monitorKeepAlive:function(e){var t=e._.keepAliveData;t.monitoring?e.log("Tried to monitor keep alive but it's already being monitored."):(t.monitoring=!0,l.markLastMessage(e),e._.keepAliveData.reconnectKeepAliveUpdate=function(){l.markLastMessage(e)},c(e).bind(d.onReconnect,e._.keepAliveData.reconnectKeepAliveUpdate),e.log("Now monitoring keep alive with a warning timeout of "+t.timeoutWarning+", keep alive timeout of "+t.timeout+" and disconnecting timeout of "+e.disconnectTimeout))},stopMonitoringKeepAlive:function(e){var t=e._.keepAliveData;t.monitoring&&(t.monitoring=!1,c(e).unbind(d.onReconnect,e._.keepAliveData.reconnectKeepAliveUpdate),e._.keepAliveData={},e.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(e){e._.lastActiveAt=(new Date).getTime(),r(e)},markLastMessage:function(e){e._.lastMessageAt=(new Date).getTime()},markActive:function(e){return!!l.verifyLastActive(e)&&(e._.lastActiveAt=(new Date).getTime(),!0)},isConnectedOrReconnecting:function(e){return e.state===u.connectionState.connected||e.state===u.connectionState.reconnecting},ensureReconnectingState:function(e){return!0===t(e,u.connectionState.connected,u.connectionState.reconnecting)&&c(e).triggerHandler(d.onReconnecting),e.state===u.connectionState.reconnecting},clearReconnectTimeout:function(e){e&&e._.reconnectTimeout&&(s.clearTimeout(e._.reconnectTimeout),delete e._.reconnectTimeout)},verifyLastActive:function(e){if((new Date).getTime()-e._.lastActiveAt>=e.reconnectWindow){var t=u._.format(u.resources.reconnectWindowTimeout,new Date(e._.lastActiveAt),e.reconnectWindow);return e.log(t),c(e).triggerHandler(d.onError,[u._.error(t,"TimeoutException")]),e.stop(!1,!1),!1}return!0},reconnect:function(e,t){var n=u.transports[t];if(l.isConnectedOrReconnecting(e)&&!e._.reconnectTimeout){if(!l.verifyLastActive(e))return;e._.reconnectTimeout=s.setTimeout(function(){l.verifyLastActive(e)&&(n.stop(e),l.ensureReconnectingState(e)&&(e.log(t+" reconnecting."),n.start(e)))},e.reconnectDelay)}},handleParseFailure:function(e,t,n,o,r){var i=u._.transportError(u._.format(u.resources.parseFailed,t),e.transport,n,r);o&&o(i)?e.log("Failed to parse server response while attempting to connect."):(c(e).triggerHandler(d.onError,[i]),e.stop())},initHandler:function(e){return new n(e)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(s,l,e){var u=s.signalR,d=s.signalR.events,p=s.signalR.changeState,g=u.transports._logic;u.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,n){var e=g.stringifySend(t,n);try{t.socket.send(e)}catch(e){s(t).triggerHandler(d.onError,[u._.transportError(u.resources.webSocketsInvalidState,t.transport,e,t.socket),n])}},start:function(n,o,r){var e,i=!1,a=this,t=!o,c=s(n);l.WebSocket?n.socket||(e=n.webSocketServerUrl?n.webSocketServerUrl:n.wsProtocol+n.host,e+=g.getUrl(n,this.name,t),n.log("Connecting to websocket endpoint '"+e+"'."),n.socket=new l.WebSocket(e),n.socket.onopen=function(){i=!0,n.log("Websocket opened."),g.clearReconnectTimeout(n),!0===p(n,u.connectionState.reconnecting,u.connectionState.connected)&&c.triggerHandler(d.onReconnect)},n.socket.onclose=function(e){var t;this===n.socket&&(i&&void 0!==e.wasClean&&!1===e.wasClean?(t=u._.transportError(u.resources.webSocketClosed,n.transport,e),n.log("Unclean disconnect from websocket: "+(e.reason||"[no reason given]."))):n.log("Websocket closed."),r&&r(t)||(t&&s(n).triggerHandler(d.onError,[t]),a.reconnect(n)))},n.socket.onmessage=function(t){var e;try{e=n._parseResponse(t.data)}catch(e){return void g.handleParseFailure(n,t.data,e,r,t)}e&&(s.isEmptyObject(e)||e.M?g.processMessages(n,e,o):g.triggerReceived(n,e))}):r()},reconnect:function(e){g.reconnect(e,this.name)},lostConnection:function(e){this.reconnect(e)},stop:function(e){g.clearReconnectTimeout(e),e.socket&&(e.log("Closing the Websocket."),e.socket.close(),e.socket=null)},abort:function(e,t){g.ajaxAbort(e,t)}}}(window.jQuery,window),function(s,l,e){var u=s.signalR,d=s.signalR.events,p=s.signalR.changeState,g=u.transports._logic,f=function(e){l.clearTimeout(e._.reconnectAttemptTimeoutHandle),delete e._.reconnectAttemptTimeoutHandle};u.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(n,o,r){var e,i=this,t=!1,a=s(n),c=!o;if(n.eventSource&&(n.log("The connection already has an event source. Stopping it."),n.stop()),l.EventSource){e=g.getUrl(n,this.name,c);try{n.log("Attempting to connect to SSE endpoint '"+e+"'."),n.eventSource=new l.EventSource(e,{withCredentials:n.withCredentials})}catch(e){return n.log("EventSource failed trying to connect with error "+e.Message+"."),void(r?r():(a.triggerHandler(d.onError,[u._.transportError(u.resources.eventSourceFailedToConnect,n.transport,e)]),c&&i.reconnect(n)))}c&&(n._.reconnectAttemptTimeoutHandle=l.setTimeout(function(){!1===t&&n.eventSource.readyState!==l.EventSource.OPEN&&i.reconnect(n)},i.timeOut)),n.eventSource.addEventListener("open",function(e){n.log("EventSource connected."),f(n),g.clearReconnectTimeout(n),!1===t&&(t=!0)===p(n,u.connectionState.reconnecting,u.connectionState.connected)&&a.triggerHandler(d.onReconnect)},!1),n.eventSource.addEventListener("message",function(t){var e;if("initialized"!==t.data){try{e=n._parseResponse(t.data)}catch(e){return void g.handleParseFailure(n,t.data,e,r,t)}g.processMessages(n,e,o)}},!1),n.eventSource.addEventListener("error",function(e){var t=u._.transportError(u.resources.eventSourceError,n.transport,e);this===n.eventSource&&(r&&r(t)||(n.log("EventSource readyState: "+n.eventSource.readyState+"."),e.eventPhase===l.EventSource.CLOSED?(n.log("EventSource reconnecting due to the server connection ending."),i.reconnect(n)):(n.log("EventSource error."),a.triggerHandler(d.onError,[t]))))},!1)}else r&&(n.log("This browser doesn't support SSE."),r())},reconnect:function(e){g.reconnect(e,this.name)},lostConnection:function(e){this.reconnect(e)},send:function(e,t){g.ajaxSend(e,t)},stop:function(e){f(e),g.clearReconnectTimeout(e),e&&e.eventSource&&(e.log("EventSource calling close()."),e.eventSource.close(),e.eventSource=null,delete e.eventSource)},abort:function(e,t){g.ajaxAbort(e,t)}}}(window.jQuery,window),function(i,s,e){var t,n,a=i.signalR,o=i.signalR.events,r=i.signalR.changeState,l=a.transports._logic,u=function(){var e=s.document.createElement("iframe");return e.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),e},d=(t=null,n=0,{prevent:function(){a._.ieVersion<=8&&(0===n&&(t=s.setInterval(function(){var e=u();s.document.body.appendChild(e),s.document.body.removeChild(e),e=null},1e3)),n++)},cancel:function(){1===n&&s.clearInterval(t),0a.transports.foreverFrame.iframeClearThreshold&&(e.frameMessageCount=0,(n=e.frame.contentWindow||e.frame.contentDocument)&&n.document&&n.document.body)))for(o=n.document.body;o.firstChild;)o.removeChild(o.firstChild)},stop:function(t){var e=null;if(d.cancel(),t.frame){if(t.frame.stop)t.frame.stop();else try{(e=t.frame.contentWindow||t.frame.contentDocument).document&&e.document.execCommand&&e.document.execCommand("Stop")}catch(e){t.log("Error occurred when stopping foreverFrame transport. Message = "+e.message+".")}t.frame.parentNode===s.document.body&&s.document.body.removeChild(t.frame),delete l.foreverFrame.connections[t.frameId],t.frame=null,t.frameId=null,delete t.frame,delete t.frameId,delete t.onSuccess,delete t.frameMessageCount,t.log("Stopping forever frame.")}},abort:function(e,t){l.ajaxAbort(e,t)},getConnection:function(e){return l.foreverFrame.connections[e]},started:function(e){!0===r(e,a.connectionState.reconnecting,a.connectionState.connected)&&i(e).triggerHandler(o.onReconnect)}}}(window.jQuery,window),function(f,v,e){var m=f.signalR,h=f.signalR.events,n=f.signalR.changeState,S=f.signalR.isDisconnecting,b=m.transports._logic;m.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(c,e,t){var s=this,l=function(){l=f.noop,c.log("LongPolling connected."),e?e():c.log("WARNING! The client received an init message after reconnecting.")},u=function(e){return!!t(e)&&(c.log("LongPolling failed to connect."),!0)},d=c._,p=0,g=function(e){v.clearTimeout(d.reconnectTimeoutId),d.reconnectTimeoutId=null,!0===n(e,m.connectionState.reconnecting,m.connectionState.connected)&&(e.log("Raising the reconnect event"),f(e).triggerHandler(h.onReconnect))};c.pollXhr&&(c.log("Polling xhr requests already exists, aborting."),c.stop()),c.messageId=null,d.reconnectTimeoutId=null,d.pollTimeoutId=v.setTimeout(function(){!function i(a,e){var t=!(null===a.messageId),n=!e,o=b.getUrl(a,s.name,t,n,!0),r={};a.messageId&&(r.messageId=a.messageId),a.groupsToken&&(r.groupsToken=a.groupsToken),!0!==S(a)&&(c.log("Opening long polling request to '"+o+"'."),a.pollXhr=b.ajax(c,{xhrFields:{onprogress:function(){b.markLastMessage(c)}},url:o,type:"POST",contentType:m._.defaultContentType,data:r,timeout:c._.pollTimeout,success:function(t){var e,n,o,r=0;c.log("Long poll complete."),p=0;try{e=c._parseResponse(t)}catch(e){return void b.handleParseFailure(a,t,e,u,a.pollXhr)}null!==d.reconnectTimeoutId&&g(a),e&&(n=b.maximizePersistentResponse(e)),b.processMessages(a,e,l),n&&"number"===f.type(n.LongPollDelay)&&(r=n.LongPollDelay),!0!==S(a)&&((o=n&&n.ShouldReconnect)&&!b.ensureReconnectingState(a)||(0