!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).attach=e()}}(function(){return function f(a,i,u){function s(t,e){if(!i[t]){if(!a[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var o=i[t]={exports:{}};a[t][0].call(o.exports,function(e){return s(a[t][1][e]||e)},o,o.exports,f,a,i,u)}return i[t].exports}for(var c="function"==typeof require&&require,e=0;e<u.length;e++)s(u[e]);return s}({1:[function(e,t,n){"use strict";function r(e,t,n,r){var o,f=e;function a(e,t){r?f.__pushToBuffer(e||t):f.write(e||t)}n=void 0===n||n,f.__socket=t,f.__flushBuffer=function(){f.write(f.__attachSocketBuffer),f.__attachSocketBuffer=null},f.__pushToBuffer=function(e){f.__attachSocketBuffer?f.__attachSocketBuffer+=e:(f.__attachSocketBuffer=e,setTimeout(f.__flushBuffer,10))},f.__getMessage=function(e){if("object"==typeof e.data)if(o=o||new TextDecoder,e.data instanceof ArrayBuffer)a(o.decode(e.data));else{var t=new FileReader;t.addEventListener("load",function(){a(o.decode(t.result))}),t.readAsArrayBuffer(e.data)}else{if("string"!=typeof e.data)throw Error('Cannot handle "'+typeof e.data+'" websocket message.');a(e.data)}},f.__sendData=function(e){1===t.readyState&&t.send(e)},f._core.register(i(t,"message",f.__getMessage)),n&&(f.__dataListener=f.onData(f.__sendData),f._core.register(f.__dataListener)),f._core.register(i(t,"close",function(){return u(f,t)})),f._core.register(i(t,"error",function(){return u(f,t)}))}function i(e,t,n){return e.addEventListener(t,n),{dispose:function(){n&&(e.removeEventListener(t,n),n=null)}}}function u(e,t){var n=e;n.__dataListener.dispose(),(t=(n.__dataListener=void 0)===t?n.__socket:t)&&t.removeEventListener("message",n.__getMessage),delete n.__socket}Object.defineProperty(n,"__esModule",{value:!0}),n.attach=r,n.detach=u,n.apply=function(e){e.prototype.attach=function(e,t,n){r(this,e,t,n)},e.prototype.detach=function(e){u(this,e)}}},{}]},{},[1])(1)});