From 2279d3c306e3f63163576d7d180207cbcebd7329 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Tue, 16 May 2017 13:38:27 +0200 Subject: [PATCH] feat(browser): switch from Buffer polyfill to ArrayBuffer --- README.md | 2 +- browser/decode.js | 276 ++++++++++++++++++++++++++++++++++++++ browser/encode.js | 311 +++++++++++++++++++++++++++++++++++++++++++ dist/notepack.js | 8 +- dist/notepack.js.map | 2 +- package.json | 6 +- test/index.html | 50 +++++++ 7 files changed, 645 insertions(+), 10 deletions(-) create mode 100644 browser/decode.js create mode 100644 browser/encode.js create mode 100644 test/index.html diff --git a/README.md b/README.md index 72d681d..c820aa0 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ var decoded = notepack.decode(encoded); // { foo: 'bar' } ## Browser -A browser version of notepack is also available (29.5 kB minified) +A browser version of notepack is also available (7.6 kB minified) ```html diff --git a/browser/decode.js b/browser/decode.js new file mode 100644 index 0000000..6cc2a4a --- /dev/null +++ b/browser/decode.js @@ -0,0 +1,276 @@ +'use strict'; + +function Decoder(buffer) { + this.offset = 0; + if (buffer instanceof ArrayBuffer) { + this.buffer = buffer; + } else if (ArrayBuffer.isView(buffer)) { + this.buffer = buffer.buffer; + } else { + throw new Error('Invalid argument'); + } + this.view = new DataView(buffer); +} + +function utf8Read(view, offset, length) { + var string = ''; + for (var i = offset, end = offset + length; i < end; i++) { + var byte = view.getUint8(i); + if ((byte & 0x80) === 0x00) { + string += String.fromCharCode(byte); + continue; + } + if ((byte & 0xe0) === 0xc0) { + string += String.fromCharCode( + ((byte & 0x0f) << 6) | + (view.getUint8(++i) & 0x3f) + ); + continue; + } + if ((byte & 0xf0) === 0xe0) { + string += String.fromCharCode( + ((byte & 0x0f) << 12) | + ((view.getUint8(++i) & 0x3f) << 6) | + ((view.getUint8(++i) & 0x3f) << 0) + ); + continue; + } + if ((byte & 0xf8) === 0xf0) { + string += String.fromCharCode( + ((byte & 0x07) << 18) | + ((view.getUint8(++i) & 0x3f) << 12) | + ((view.getUint8(++i) & 0x3f) << 6) | + ((view.getUint8(++i) & 0x3f) << 0) + ); + continue; + } + throw new Error('Invalid byte ' + byte.toString(16)); + } + return string; +} + +Decoder.prototype.array = function (length) { + var value = new Array(length); + for (var i = 0; i < length; i++) { + value[i] = this.parse(); + } + return value; +}; + +Decoder.prototype.map = function (length) { + var key = '', value = {}; + for (var i = 0; i < length; i++) { + key = this.parse(); + value[key] = this.parse(); + } + return value; +}; + +Decoder.prototype.str = function (length) { + var value = utf8Read(this.view, this.offset, length); + this.offset += length; + return value; +}; + +Decoder.prototype.bin = function (length) { + var value = this.buffer.slice(this.offset, this.offset + length); + this.offset += length; + return value; +}; + +Decoder.prototype.parse = function () { + var prefix = this.view.getUint8(this.offset++); + var value, length = 0, type = 0, hi = 0, lo = 0; + + if (prefix < 0xc0) { + // positive fixint + if (prefix < 0x80) { + return prefix; + } + // fixmap + if (prefix < 0x90) { + return this.map(prefix & 0x0f); + } + // fixarray + if (prefix < 0xa0) { + return this.array(prefix & 0x0f); + } + // fixstr + return this.str(prefix & 0x1f); + } + + // negative fixint + if (prefix > 0xdf) { + return (0xff - prefix + 1) * -1; + } + + switch (prefix) { + // nil + case 0xc0: + return null; + // false + case 0xc2: + return false; + // true + case 0xc3: + return true; + + // bin + case 0xc4: + length = this.view.getUint8(this.offset); + this.offset += 1; + return this.bin(length); + case 0xc5: + length = this.view.getUint16(this.offset); + this.offset += 2; + return this.bin(length); + case 0xc6: + length = this.view.getUint32(this.offset); + this.offset += 4; + return this.bin(length); + + // ext + case 0xc7: + length = this.view.getUint8(this.offset); + type = this.view.getInt8(this.offset + 1); + this.offset += 2; + return [type, this.bin(length)]; + case 0xc8: + length = this.view.getUint16(this.offset); + type = this.view.getInt8(this.offset + 2); + this.offset += 3; + return [type, this.bin(length)]; + case 0xc9: + length = this.view.getUint32(this.offset); + type = this.view.getInt8(this.offset + 4); + this.offset += 5; + return [type, this.bin(length)]; + + // float + case 0xca: + value = this.view.getFloat32(this.offset); + this.offset += 4; + return value; + case 0xcb: + value = this.view.getFloat64(this.offset); + this.offset += 8; + return value; + + // uint + case 0xcc: + value = this.view.getUint8(this.offset); + this.offset += 1; + return value; + case 0xcd: + value = this.view.getUint16(this.offset); + this.offset += 2; + return value; + case 0xce: + value = this.view.getUint32(this.offset); + this.offset += 4; + return value; + case 0xcf: + hi = this.view.getUint32(this.offset) * Math.pow(2, 32); + lo = this.view.getUint32(this.offset + 4); + this.offset += 8; + return hi + lo; + + // int + case 0xd0: + value = this.view.getInt8(this.offset); + this.offset += 1; + return value; + case 0xd1: + value = this.view.getInt16(this.offset); + this.offset += 2; + return value; + case 0xd2: + value = this.view.getInt32(this.offset); + this.offset += 4; + return value; + case 0xd3: + hi = this.view.getInt32(this.offset) * Math.pow(2, 32); + lo = this.view.getUint32(this.offset + 4); + this.offset += 8; + return hi + lo; + + // fixext + case 0xd4: + type = this.view.getInt8(this.offset); + this.offset += 1; + if (type === 0x00) { + this.offset += 1; + return void 0; + } + return [type, this.bin(1)]; + case 0xd5: + type = this.view.getInt8(this.offset); + this.offset += 1; + return [type, this.bin(2)]; + case 0xd6: + type = this.view.getInt8(this.offset); + this.offset += 1; + return [type, this.bin(4)]; + case 0xd7: + type = this.view.getInt8(this.offset); + this.offset += 1; + if (type === 0x00) { + hi = this.view.getInt32(this.offset) * Math.pow(2, 32); + lo = this.view.getUint32(this.offset + 4); + this.offset += 8; + return new Date(hi + lo); + } + return [type, this.bin(8)]; + case 0xd8: + type = this.view.getInt8(this.offset); + this.offset += 1; + return [type, this.bin(16)]; + + // str + case 0xd9: + length = this.view.getUint8(this.offset); + this.offset += 1; + return this.str(length); + case 0xda: + length = this.view.getUint16(this.offset); + this.offset += 2; + return this.str(length); + case 0xdb: + length = this.view.getUint32(this.offset); + this.offset += 4; + return this.str(length); + + // array + case 0xdc: + length = this.view.getUint16(this.offset); + this.offset += 2; + return this.array(length); + case 0xdd: + length = this.view.getUint32(this.offset); + this.offset += 4; + return this.array(length); + + // map + case 0xde: + length = this.view.getUint16(this.offset); + this.offset += 2; + return this.map(length); + case 0xdf: + length = this.view.getUint32(this.offset); + this.offset += 4; + return this.map(length); + } + + throw new Error('Could not parse'); +}; + +function decode(buffer) { + var decoder = new Decoder(buffer); + var value = decoder.parse(); + if (decoder.offset !== buffer.byteLength) { + throw new Error((buffer.byteLength - decoder.offset) + ' trailing bytes'); + } + return value; +} + +module.exports = decode; diff --git a/browser/encode.js b/browser/encode.js new file mode 100644 index 0000000..febebc9 --- /dev/null +++ b/browser/encode.js @@ -0,0 +1,311 @@ +'use strict'; + +var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; + +function utf8Write(view, offset, str) { + var c = 0; + for (var i = 0, l = str.length; i < l; i++) { + c = str.charCodeAt(i); + if (c < 0x80) { + view.setUint8(offset++, c); + } + else if (c < 0x800) { + view.setUint8(offset++, 0xc0 | (c >> 6)); + view.setUint8(offset++, 0x80 | (c & 0x3f)); + } + else if (c < 0xd800 || c >= 0xe000) { + view.setUint8(offset++, 0xe0 | (c >> 12)); + view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f); + view.setUint8(offset++, 0x80 | (c & 0x3f)); + } + else { + i++; + c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff)); + view.setUint8(offset++, 0xf0 | (c >> 18)); + view.setUint8(offset++, 0x80 | (c >> 12) & 0x3f); + view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f); + view.setUint8(offset++, 0x80 | (c & 0x3f)); + } + } +} + +function utf8Length(str) { + var c = 0, length = 0; + for (var i = 0, l = str.length; i < l; i++) { + c = str.charCodeAt(i); + if (c < 0x80) { + length += 1; + } + else if (c < 0x800) { + length += 2; + } + else if (c < 0xd800 || c >= 0xe000) { + length += 3; + } + else { + i++; + length += 4; + } + } + return length; +} + +function _encode(bytes, defers, value) { + var type = typeof value, hi = 0, lo = 0, length = 0, size = 0; + + if (type === 'string') { + length = utf8Length(value); + + // fixstr + if (length < 0x20) { + bytes.push(length | 0xa0); + size = 1; + } + // str 8 + else if (length < 0x100) { + bytes.push(0xd9, length); + size = 2; + } + // str 16 + else if (length < 0x10000) { + bytes.push(0xda, length >> 8, length); + size = 3; + } + // str 32 + else if (length < 0x100000000) { + bytes.push(0xdb, length >> 24, length >> 16, length >> 8, length); + size = 5; + } else { + throw new Error('String too long'); + } + defers.push({ str: value, length: length, offset: bytes.length }); + return size + length; + } + if (type === 'number') { + if (!isFinite(value)) { + throw new Error('Number is not finite'); + } + + // TODO: encode to float 32? + + // float 64 + if (Math.floor(value) !== value) { + bytes.push(0xcb); + defers.push({ float: value, length: 8, offset: bytes.length }); + return 9; + } + + if (Math.abs(value) > MAX_SAFE_INTEGER) { + throw new Error('Integer is unsafe'); + } + + if (value >= 0) { + // positive fixnum + if (value < 0x80) { + bytes.push(value); + return 1; + } + // uint 8 + if (value < 0x100) { + bytes.push(0xcc, value); + return 2; + } + // uint 16 + if (value < 0x10000) { + bytes.push(0xcd, value >> 8, value); + return 3; + } + // uint 32 + if (value < 0x100000000) { + bytes.push(0xce, value >> 24, value >> 16, value >> 8, value); + return 5; + } + // uint 64 + hi = (value / Math.pow(2, 32)) >> 0; + lo = value >>> 0; + bytes.push(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo); + return 9; + } else { + // negative fixnum + if (value >= -0x20) { + bytes.push(value); + return 1; + } + // int 8 + if (value >= -0x80) { + bytes.push(0xd0, value); + return 2; + } + // int 16 + if (value >= -0x8000) { + bytes.push(0xd1, value >> 8, value); + return 3; + } + // int 32 + if (value >= -0x80000000) { + bytes.push(0xd2, value >> 24, value >> 16, value >> 8, value); + return 5; + } + // int 64 + hi = Math.floor(value / Math.pow(2, 32)); + lo = value >>> 0; + bytes.push(0xd3, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo); + return 9; + } + } + if (type === 'object') { + // nil + if (value === null) { + bytes.push(0xc0); + return 1; + } + + if (Array.isArray(value)) { + length = value.length; + + // fixarray + if (length < 0x10) { + bytes.push(length | 0x90); + size = 1; + } + // array 16 + else if (length < 0x10000) { + bytes.push(0xdc, length >> 8, length); + size = 3; + } + // array 32 + else if (length < 0x100000000) { + bytes.push(0xdd, length >> 24, length >> 16, length >> 8, length); + size = 5; + } else { + throw new Error('Array too large'); + } + for (i = 0; i < length; i++) { + size += _encode(bytes, defers, value[i]); + } + return size; + } + + // fixext 8 / Date + if (value instanceof Date) { + var time = value.getTime(); + hi = Math.floor(time / Math.pow(2, 32)); + lo = time >>> 0; + bytes.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo); + return 10; + } + + if (value instanceof ArrayBuffer) { + length = value.byteLength; + + // bin 8 + if (length < 0x100) { + bytes.push(0xc4, length); + size = 2; + } else + // bin 16 + if (length < 0x10000) { + bytes.push(0xc5, length >> 8, length); + size = 3; + } else + // bin 32 + if (length < 0x100000000) { + bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length); + size = 5; + } else { + throw new Error('Buffer too large'); + } + defers.push({ bin: value, length: length, offset: bytes.length }); + return size + length; + } + + var keys = [], key = ''; + + var allKeys = Object.keys(value); + for (var i = 0, l = allKeys.length; i < l; i++) { + key = allKeys[i]; + if (typeof value[key] !== 'function') { + keys.push(key); + } + } + length = keys.length; + + // fixmap + if (length < 0x10) { + bytes.push(length | 0x80); + size = 1; + } + // map 16 + else if (length < 0x10000) { + bytes.push(0xde, length >> 8, length); + size = 3; + } + // map 32 + else if (length < 0x100000000) { + bytes.push(0xdf, length >> 24, length >> 16, length >> 8, length); + size = 5; + } else { + throw new Error('Object too large'); + } + + for (var i = 0; i < length; i++) { + key = keys[i]; + size += _encode(bytes, defers, key); + size += _encode(bytes, defers, value[key]); + } + return size; + } + // false/true + if (type === 'boolean') { + bytes.push(value ? 0xc3 : 0xc2); + return 1; + } + // fixext 1 / undefined + if (type === 'undefined') { + bytes.push(0xd4, 0, 0); + return 3; + } + throw new Error('Could not encode'); +} + +function encode(value) { + var bytes = []; + var defers = []; + var size = _encode(bytes, defers, value); + var buf = new ArrayBuffer(size); + var view = new DataView(buf); + + var deferIndex = 0; + var deferWritten = 0; + var nextOffset = -1; + if (defers.length > 0) { + nextOffset = defers[0].offset; + } + + var defer, deferLength = 0, offset = 0; + for (var i = 0, l = bytes.length; i < l; i++) { + view.setUint8(deferWritten + i, bytes[i]); + if (i + 1 !== nextOffset) { continue; } + defer = defers[deferIndex]; + deferLength = defer.length; + offset = deferWritten + nextOffset; + if (defer.bin) { + var bin = new Uint8Array(defer.bin); + for (var j = 0; j < deferLength; j++) { + view.setUint8(offset + j, bin[j]); + } + } else if (defer.str) { + utf8Write(view, offset, defer.str); + } else if (defer.float) { + view.setFloat64(offset, defer.float); + } + deferIndex++; + deferWritten += deferLength; + if (defers[deferIndex]) { + nextOffset = defers[deferIndex].offset; + } + } + return buf; +} + +module.exports = encode; diff --git a/dist/notepack.js b/dist/notepack.js index 324fdf9..0f05c0c 100644 --- a/dist/notepack.js +++ b/dist/notepack.js @@ -1,8 +1,2 @@ -!function(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.notepack=r():t.notepack=r()}(this,function(){return function(t){function r(n){if(e[n])return e[n].exports;var i=e[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var e={};return r.m=t,r.c=e,r.p="",r(0)}([function(t,r,e){r.encode=e(1),r.decode=e(6)},function(t,r,e){(function(r){"use strict";function e(t,r,e){for(var n=0,i=0,o=e.length;i>6,t[r++]=128|63&n):n<55296||n>=57344?(t[r++]=224|n>>12,t[r++]=128|n>>6&63,t[r++]=128|63&n):(i++,n=65536+((1023&n)<<10|1023&e.charCodeAt(i)),t[r++]=240|n>>18,t[r++]=128|n>>12&63,t[r++]=128|n>>6&63,t[r++]=128|63&n)}function n(t){for(var r=0,e=0,n=0,i=t.length;n=57344?e+=3:(n++,e+=4);return e}function i(t,e,o){var u=typeof o,h=0,a=0,c=0,p=0;if("string"===u){if(c=o.length>s?r.byteLength(o):n(o),c<32)t.push(160|c),p=1;else if(c<256)t.push(217,c),p=2;else if(c<65536)t.push(218,c>>8,c),p=3;else{if(!(c<4294967296))throw new Error("String too long");t.push(219,c>>24,c>>16,c>>8,c),p=5}return e.push({str:o,length:c,offset:t.length}),p+c}if("number"===u){if(!isFinite(o))throw new Error("Number is not finite");if(Math.floor(o)!==o)return t.push(203),e.push({float:o,length:8,offset:t.length}),9;if(Math.abs(o)>f)throw new Error("Integer is unsafe");return o>=0?o<128?(t.push(o),1):o<256?(t.push(204,o),2):o<65536?(t.push(205,o>>8,o),3):o<4294967296?(t.push(206,o>>24,o>>16,o>>8,o),5):(h=o/Math.pow(2,32)>>0,a=o>>>0,t.push(207,h>>24,h>>16,h>>8,h,a>>24,a>>16,a>>8,a),9):o>=-32?(t.push(o),1):o>=-128?(t.push(208,o),2):o>=-32768?(t.push(209,o>>8,o),3):o>=-2147483648?(t.push(210,o>>24,o>>16,o>>8,o),5):(h=Math.floor(o/Math.pow(2,32)),a=o>>>0,t.push(211,h>>24,h>>16,h>>8,h,a>>24,a>>16,a>>8,a),9)}if("object"===u){if(null===o)return t.push(192),1;if(Array.isArray(o)){if(c=o.length,c<16)t.push(144|c),p=1;else if(c<65536)t.push(220,c>>8,c),p=3;else{if(!(c<4294967296))throw new Error("Array too large");t.push(221,c>>24,c>>16,c>>8,c),p=5}for(w=0;w>>0,t.push(215,0,h>>24,h>>16,h>>8,h,a>>24,a>>16,a>>8,a),10}if(o instanceof r){if(c=o.length,c<256)t.push(196,c),p=2;else if(c<65536)t.push(197,c>>8,c),p=3;else{if(!(c<4294967296))throw new Error("Buffer too large");t.push(198,c>>24,c>>16,c>>8,c),p=5}return e.push({bin:o,length:c,offset:t.length}),p+c}for(var g=[],y="",d=Object.keys(o),w=0,b=d.length;w>8,c),p=3;else{if(!(c<4294967296))throw new Error("Object too large");t.push(223,c>>24,c>>16,c>>8,c),p=5}for(var w=0;w0&&(c=o[0].offset);for(var p,l=0,g=0,y=0,d=n.length;ys)p.bin.copy(u,g,0,l);else for(var w=p.bin,b=0;bs?u.write(p.str,g,l,"utf8"):e(u,g,p.str):p.float&&u.writeDoubleBE(p.float,g);h++,a+=l,o[h]&&(c=o[h].offset)}return u}var f=Math.pow(2,53)-1,s=32;t.exports=o}).call(r,e(2).Buffer)},function(t,r,e){(function(t){/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -"use strict";function n(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}function i(){return f.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(t,r){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|t}function d(t){return+t!=t&&(t=0),f.alloc(+t)}function w(t,r){if(f.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var e=t.length;if(0===e)return 0;for(var n=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return q(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return G(t).length;default:if(n)return q(t).length;r=(""+r).toLowerCase(),n=!0}}function b(t,r,e){var n=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if(e>>>=0,r>>>=0,e<=r)return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,r,e);case"utf8":case"utf-8":return T(this,r,e);case"ascii":return Y(this,r,e);case"latin1":case"binary":return M(this,r,e);case"base64":return P(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,r,e);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,r,e){var n=t[r];t[r]=t[e],t[e]=n}function E(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof r&&(r=f.from(r,n)),f.isBuffer(r))return 0===r.length?-1:A(t,r,e,n,i);if("number"==typeof r)return r&=255,f.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):A(t,[r],e,n,i);throw new TypeError("val must be string, number or Buffer")}function A(t,r,e,n,i){function o(t,r){return 1===f?t[r]:t.readUInt16BE(r*f)}var f=1,s=t.length,u=r.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return-1;f=2,s/=2,u/=2,e/=2}var h;if(i){var a=-1;for(h=e;hs&&(e=s-u),h=e;h>=0;h--){for(var c=!0,p=0;pi&&(n=i)):n=i;var o=r.length;if(o%2!==0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var f=0;f239?4:o>223?3:o>191?2:1;if(i+s<=e){var u,h,a,c;switch(s){case 1:o<128&&(f=o);break;case 2:u=t[i+1],128===(192&u)&&(c=(31&o)<<6|63&u,c>127&&(f=c));break;case 3:u=t[i+1],h=t[i+2],128===(192&u)&&128===(192&h)&&(c=(15&o)<<12|(63&u)<<6|63&h,c>2047&&(c<55296||c>57343)&&(f=c));break;case 4:u=t[i+1],h=t[i+2],a=t[i+3],128===(192&u)&&128===(192&h)&&128===(192&a)&&(c=(15&o)<<18|(63&u)<<12|(63&h)<<6|63&a,c>65535&&c<1114112&&(f=c))}}null===f?(f=65533,s=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=s}return S(n)}function S(t){var r=t.length;if(r<=tt)return String.fromCharCode.apply(String,t);for(var e="",n=0;nn)&&(e=n);for(var i="",o=r;oe)throw new RangeError("Trying to access beyond buffer length")}function L(t,r,e,n,i,o){if(!f.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>i||rt.length)throw new RangeError("Index out of range")}function D(t,r,e,n){r<0&&(r=65535+r+1);for(var i=0,o=Math.min(t.length-e,2);i>>8*(n?i:1-i)}function k(t,r,e,n){r<0&&(r=4294967295+r+1);for(var i=0,o=Math.min(t.length-e,4);i>>8*(n?i:3-i)&255}function N(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function j(t,r,e,n,i){return i||N(t,r,e,4,3.4028234663852886e38,-3.4028234663852886e38),W.write(t,r,e,n,23,4),e+4}function F(t,r,e,n,i){return i||N(t,r,e,8,1.7976931348623157e308,-1.7976931348623157e308),W.write(t,r,e,n,52,8),e+8}function z(t){if(t=V(t).replace(rt,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function V(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function X(t){return t<16?"0"+t.toString(16):t.toString(16)}function q(t,r){r=r||1/0;for(var e,n=t.length,i=null,o=[],f=0;f55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(f+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=(i-55296<<10|e-56320)+65536}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function J(t){for(var r=[],e=0;e>8,i=e%256,o.push(i),o.push(n);return o}function G(t){return Q.toByteArray(z(t))}function H(t,r,e,n){for(var i=0;i=r.length||i>=t.length);++i)r[i+e]=t[i];return i}function K(t){return t!==t}var Q=e(3),W=e(4),$=e(5);r.Buffer=f,r.SlowBuffer=d,r.INSPECT_MAX_BYTES=50,f.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:n(),r.kMaxLength=i(),f.poolSize=8192,f._augment=function(t){return t.__proto__=f.prototype,t},f.from=function(t,r,e){return s(null,t,r,e)},f.TYPED_ARRAY_SUPPORT&&(f.prototype.__proto__=Uint8Array.prototype,f.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&f[Symbol.species]===f&&Object.defineProperty(f,Symbol.species,{value:null,configurable:!0})),f.alloc=function(t,r,e){return h(null,t,r,e)},f.allocUnsafe=function(t){return a(null,t)},f.allocUnsafeSlow=function(t){return a(null,t)},f.isBuffer=function(t){return!(null==t||!t._isBuffer)},f.compare=function(t,r){if(!f.isBuffer(t)||!f.isBuffer(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var e=t.length,n=r.length,i=0,o=Math.min(e,n);i0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},f.prototype.compare=function(t,r,e,n,i){if(!f.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&r>=e)return 0;if(n>=i)return-1;if(r>=e)return 1;if(r>>>=0,e>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=e-r,u=Math.min(o,s),h=this.slice(n,i),a=t.slice(r,e),c=0;ci)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,t,r,e);case"utf8":case"utf-8":return B(this,t,r,e);case"ascii":return R(this,t,r,e);case"latin1":case"binary":return _(this,t,r,e);case"base64":return U(this,t,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,r,e);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;f.prototype.slice=function(t,r){var e=this.length;t=~~t,r=void 0===r?e:~~r,t<0?(t+=e,t<0&&(t=0)):t>e&&(t=e),r<0?(r+=e,r<0&&(r=0)):r>e&&(r=e),r0&&(i*=256);)n+=this[t+--r]*i;return n},f.prototype.readUInt8=function(t,r){return r||x(t,1,this.length),this[t]},f.prototype.readUInt16LE=function(t,r){return r||x(t,2,this.length),this[t]|this[t+1]<<8},f.prototype.readUInt16BE=function(t,r){return r||x(t,2,this.length),this[t]<<8|this[t+1]},f.prototype.readUInt32LE=function(t,r){return r||x(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},f.prototype.readUInt32BE=function(t,r){return r||x(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},f.prototype.readIntLE=function(t,r,e){t|=0,r|=0,e||x(t,r,this.length);for(var n=this[t],i=1,o=0;++o=i&&(n-=Math.pow(2,8*r)),n},f.prototype.readIntBE=function(t,r,e){t|=0,r|=0,e||x(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*r)),o},f.prototype.readInt8=function(t,r){return r||x(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},f.prototype.readInt16LE=function(t,r){r||x(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},f.prototype.readInt16BE=function(t,r){r||x(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},f.prototype.readInt32LE=function(t,r){return r||x(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},f.prototype.readInt32BE=function(t,r){return r||x(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},f.prototype.readFloatLE=function(t,r){return r||x(t,4,this.length),W.read(this,t,!0,23,4)},f.prototype.readFloatBE=function(t,r){return r||x(t,4,this.length),W.read(this,t,!1,23,4)},f.prototype.readDoubleLE=function(t,r){return r||x(t,8,this.length),W.read(this,t,!0,52,8)},f.prototype.readDoubleBE=function(t,r){return r||x(t,8,this.length),W.read(this,t,!1,52,8)},f.prototype.writeUIntLE=function(t,r,e,n){if(t=+t,r|=0,e|=0,!n){var i=Math.pow(2,8*e)-1;L(this,t,r,e,i,0)}var o=1,f=0;for(this[r]=255&t;++f=0&&(f*=256);)this[r+o]=t/f&255;return r+e},f.prototype.writeUInt8=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,1,255,0),f.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=255&t,r+1},f.prototype.writeUInt16LE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):D(this,t,r,!0),r+2},f.prototype.writeUInt16BE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):D(this,t,r,!1),r+2},f.prototype.writeUInt32LE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t):k(this,t,r,!0),r+4},f.prototype.writeUInt32BE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):k(this,t,r,!1),r+4},f.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);L(this,t,r,e,i-1,-i)}var o=0,f=1,s=0;for(this[r]=255&t;++o>0)-s&255;return r+e},f.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);L(this,t,r,e,i-1,-i)}var o=e-1,f=1,s=0;for(this[r+o]=255&t;--o>=0&&(f*=256);)t<0&&0===s&&0!==this[r+o+1]&&(s=1),this[r+o]=(t/f>>0)-s&255;return r+e},f.prototype.writeInt8=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,1,127,-128),f.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=255&t,r+1},f.prototype.writeInt16LE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):D(this,t,r,!0),r+2},f.prototype.writeInt16BE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):D(this,t,r,!1),r+2},f.prototype.writeInt32LE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,4,2147483647,-2147483648),f.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):k(this,t,r,!0),r+4},f.prototype.writeInt32BE=function(t,r,e){return t=+t,r|=0,e||L(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),f.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):k(this,t,r,!1),r+4},f.prototype.writeFloatLE=function(t,r,e){return j(this,t,r,!0,e)},f.prototype.writeFloatBE=function(t,r,e){return j(this,t,r,!1,e)},f.prototype.writeDoubleLE=function(t,r,e){return F(this,t,r,!0,e)},f.prototype.writeDoubleBE=function(t,r,e){return F(this,t,r,!1,e)},f.prototype.copy=function(t,r,e,n){if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r=0;--i)t[i+r]=this[i+e];else if(o<1e3||!f.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,e=void 0===e?this.length:e>>>0,t||(t=0);var o;if("number"==typeof t)for(o=r;o0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[r-2]?2:"="===t[r-1]?1:0}function n(t){return 3*t.length/4-e(t)}function i(t){var r,n,i,o,f,s,u=t.length;f=e(t),s=new a(3*u/4-f),i=f>0?u-4:u;var c=0;for(r=0,n=0;r>16&255,s[c++]=o>>8&255,s[c++]=255&o;return 2===f?(o=h[t.charCodeAt(r)]<<2|h[t.charCodeAt(r+1)]>>4,s[c++]=255&o):1===f&&(o=h[t.charCodeAt(r)]<<10|h[t.charCodeAt(r+1)]<<4|h[t.charCodeAt(r+2)]>>2,s[c++]=o>>8&255,s[c++]=255&o),s}function o(t){return u[t>>18&63]+u[t>>12&63]+u[t>>6&63]+u[63&t]}function f(t,r,e){for(var n,i=[],f=r;fa?a:h+s));return 1===n?(r=t[e-1],i+=u[r>>2],i+=u[r<<4&63],i+="=="):2===n&&(r=(t[e-2]<<8)+t[e-1],i+=u[r>>10],i+=u[r>>4&63],i+=u[r<<2&63],i+="="),o.push(i),o.join("")}r.byteLength=n,r.toByteArray=i,r.fromByteArray=s;for(var u=[],h=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,l=c.length;p>1,a=-7,c=e?i-1:0,p=e?-1:1,l=t[r+c];for(c+=p,o=l&(1<<-a)-1,l>>=-a,a+=s;a>0;o=256*o+t[r+c],c+=p,a-=8);for(f=o&(1<<-a)-1,o>>=-a,a+=n;a>0;f=256*f+t[r+c],c+=p,a-=8);if(0===o)o=1-h;else{if(o===u)return f?NaN:(l?-1:1)*(1/0);f+=Math.pow(2,n),o-=h}return(l?-1:1)*f*Math.pow(2,o-n)},r.write=function(t,r,e,n,i,o){var f,s,u,h=8*o-i-1,a=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=n?0:o-1,g=n?1:-1,y=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(s=isNaN(r)?1:0,f=a):(f=Math.floor(Math.log(r)/Math.LN2),r*(u=Math.pow(2,-f))<1&&(f--,u*=2),r+=f+c>=1?p/u:p*Math.pow(2,1-c),r*u>=2&&(f++,u/=2),f+c>=a?(s=0,f=a):f+c>=1?(s=(r*u-1)*Math.pow(2,i),f+=c):(s=r*Math.pow(2,c-1)*Math.pow(2,i),f=0));i>=8;t[e+l]=255&s,l+=g,s/=256,i-=8);for(f=f<0;t[e+l]=255&f,l+=g,f/=256,h-=8);t[e+l-g]|=128*y}},function(t,r){var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},function(t,r){"use strict";function e(t){this.offset=0,this.buffer=t}function n(t){var r=new e(t),n=r.parse();if(r.offset!==t.length)throw new Error(t.length-r.offset+" trailing bytes");return n}e.prototype.array=function(t){for(var r=new Array(t),e=0;e223)return(255-r+1)*-1;switch(r){case 192:return null;case 194:return!1;case 195:return!0;case 196:return e=this.buffer.readUInt8(this.offset),this.offset+=1,this.bin(e);case 197:return e=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.bin(e);case 198:return e=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.bin(e);case 199:return e=this.buffer.readUInt8(this.offset),n=this.buffer.readInt8(this.offset+1),this.offset+=2,[n,this.bin(e)];case 200:return e=this.buffer.readUInt16BE(this.offset),n=this.buffer.readInt8(this.offset+2),this.offset+=3,[n,this.bin(e)];case 201:return e=this.buffer.readUInt32BE(this.offset),n=this.buffer.readInt8(this.offset+4),this.offset+=5,[n,this.bin(e)];case 202:return t=this.buffer.readFloatBE(this.offset),this.offset+=4,t;case 203:return t=this.buffer.readDoubleBE(this.offset),this.offset+=8,t;case 204:return t=this.buffer.readUInt8(this.offset),this.offset+=1,t;case 205:return t=this.buffer.readUInt16BE(this.offset),this.offset+=2,t;case 206:return t=this.buffer.readUInt32BE(this.offset),this.offset+=4,t;case 207:return i=this.buffer.readUInt32BE(this.offset)*Math.pow(2,32),o=this.buffer.readUInt32BE(this.offset+4),this.offset+=8,i+o;case 208:return t=this.buffer.readInt8(this.offset),this.offset+=1,t;case 209:return t=this.buffer.readInt16BE(this.offset),this.offset+=2,t;case 210:return t=this.buffer.readInt32BE(this.offset),this.offset+=4,t;case 211:return i=this.buffer.readInt32BE(this.offset)*Math.pow(2,32),o=this.buffer.readUInt32BE(this.offset+4),this.offset+=8,i+o;case 212:return n=this.buffer.readInt8(this.offset),this.offset+=1,0===n?void(this.offset+=1):[n,this.bin(1)];case 213:return n=this.buffer.readInt8(this.offset),this.offset+=1,[n,this.bin(2)];case 214:return n=this.buffer.readInt8(this.offset),this.offset+=1,[n,this.bin(4)];case 215:return n=this.buffer.readInt8(this.offset),this.offset+=1,0===n?(i=this.buffer.readInt32BE(this.offset)*Math.pow(2,32),o=this.buffer.readUInt32BE(this.offset+4),this.offset+=8,new Date(i+o)):[n,this.bin(8)];case 216:return n=this.buffer.readInt8(this.offset),this.offset+=1,[n,this.bin(16)];case 217:return e=this.buffer.readUInt8(this.offset),this.offset+=1,this.str(e);case 218:return e=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.str(e);case 219:return e=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.str(e);case 220:return e=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.array(e);case 221:return e=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.array(e);case 222:return e=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.map(e);case 223:return e=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.map(e)}throw new Error("Could not parse")},t.exports=n}])}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.notepack=e():t.notepack=e()}(this,function(){return function(t){function e(i){if(s[i])return s[i].exports;var r=s[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var s={};return e.m=t,e.c=s,e.p="",e(0)}([function(t,e,s){e.encode=s(1),e.decode=s(2)},function(t,e){"use strict";function s(t,e,s){for(var i=0,r=0,f=s.length;r>6),t.setUint8(e++,128|63&i)):i<55296||i>=57344?(t.setUint8(e++,224|i>>12),t.setUint8(e++,128|i>>6&63),t.setUint8(e++,128|63&i)):(r++,i=65536+((1023&i)<<10|1023&s.charCodeAt(r)),t.setUint8(e++,240|i>>18),t.setUint8(e++,128|i>>12&63),t.setUint8(e++,128|i>>6&63),t.setUint8(e++,128|63&i))}function i(t){for(var e=0,s=0,i=0,r=t.length;i=57344?s+=3:(i++,s+=4);return s}function r(t,e,s){var f=typeof s,o=0,h=0,u=0,a=0;if("string"===f){if(u=i(s),u<32)t.push(160|u),a=1;else if(u<256)t.push(217,u),a=2;else if(u<65536)t.push(218,u>>8,u),a=3;else{if(!(u<4294967296))throw new Error("String too long");t.push(219,u>>24,u>>16,u>>8,u),a=5}return e.push({str:s,length:u,offset:t.length}),a+u}if("number"===f){if(!isFinite(s))throw new Error("Number is not finite");if(Math.floor(s)!==s)return t.push(203),e.push({float:s,length:8,offset:t.length}),9;if(Math.abs(s)>n)throw new Error("Integer is unsafe");return s>=0?s<128?(t.push(s),1):s<256?(t.push(204,s),2):s<65536?(t.push(205,s>>8,s),3):s<4294967296?(t.push(206,s>>24,s>>16,s>>8,s),5):(o=s/Math.pow(2,32)>>0,h=s>>>0,t.push(207,o>>24,o>>16,o>>8,o,h>>24,h>>16,h>>8,h),9):s>=-32?(t.push(s),1):s>=-128?(t.push(208,s),2):s>=-32768?(t.push(209,s>>8,s),3):s>=-2147483648?(t.push(210,s>>24,s>>16,s>>8,s),5):(o=Math.floor(s/Math.pow(2,32)),h=s>>>0,t.push(211,o>>24,o>>16,o>>8,o,h>>24,h>>16,h>>8,h),9)}if("object"===f){if(null===s)return t.push(192),1;if(Array.isArray(s)){if(u=s.length,u<16)t.push(144|u),a=1;else if(u<65536)t.push(220,u>>8,u),a=3;else{if(!(u<4294967296))throw new Error("Array too large");t.push(221,u>>24,u>>16,u>>8,u),a=5}for(v=0;v>>0,t.push(215,0,o>>24,o>>16,o>>8,o,h>>24,h>>16,h>>8,h),10}if(s instanceof ArrayBuffer){if(u=s.byteLength,u<256)t.push(196,u),a=2;else if(u<65536)t.push(197,u>>8,u),a=3;else{if(!(u<4294967296))throw new Error("Buffer too large");t.push(198,u>>24,u>>16,u>>8,u),a=5}return e.push({bin:s,length:u,offset:t.length}),a+u}for(var w=[],c="",g=Object.keys(s),v=0,l=g.length;v>8,u),a=3;else{if(!(u<4294967296))throw new Error("Object too large");t.push(223,u>>24,u>>16,u>>8,u),a=5}for(var v=0;v0&&(a=i[0].offset);for(var p,w=0,c=0,g=0,v=e.length;g223)return(255-e+1)*-1;switch(e){case 192:return null;case 194:return!1;case 195:return!0;case 196:return s=this.view.getUint8(this.offset),this.offset+=1,this.bin(s);case 197:return s=this.view.getUint16(this.offset),this.offset+=2,this.bin(s);case 198:return s=this.view.getUint32(this.offset),this.offset+=4,this.bin(s);case 199:return s=this.view.getUint8(this.offset),i=this.view.getInt8(this.offset+1),this.offset+=2,[i,this.bin(s)];case 200:return s=this.view.getUint16(this.offset),i=this.view.getInt8(this.offset+2),this.offset+=3,[i,this.bin(s)];case 201:return s=this.view.getUint32(this.offset),i=this.view.getInt8(this.offset+4),this.offset+=5,[i,this.bin(s)];case 202:return t=this.view.getFloat32(this.offset),this.offset+=4,t;case 203:return t=this.view.getFloat64(this.offset),this.offset+=8,t;case 204:return t=this.view.getUint8(this.offset),this.offset+=1,t;case 205:return t=this.view.getUint16(this.offset),this.offset+=2,t;case 206:return t=this.view.getUint32(this.offset),this.offset+=4,t;case 207:return r=this.view.getUint32(this.offset)*Math.pow(2,32),f=this.view.getUint32(this.offset+4),this.offset+=8,r+f;case 208:return t=this.view.getInt8(this.offset),this.offset+=1,t;case 209:return t=this.view.getInt16(this.offset),this.offset+=2,t;case 210:return t=this.view.getInt32(this.offset),this.offset+=4,t;case 211:return r=this.view.getInt32(this.offset)*Math.pow(2,32),f=this.view.getUint32(this.offset+4),this.offset+=8,r+f;case 212:return i=this.view.getInt8(this.offset),this.offset+=1,0===i?void(this.offset+=1):[i,this.bin(1)];case 213:return i=this.view.getInt8(this.offset),this.offset+=1,[i,this.bin(2)];case 214:return i=this.view.getInt8(this.offset),this.offset+=1,[i,this.bin(4)];case 215:return i=this.view.getInt8(this.offset),this.offset+=1,0===i?(r=this.view.getInt32(this.offset)*Math.pow(2,32),f=this.view.getUint32(this.offset+4),this.offset+=8,new Date(r+f)):[i,this.bin(8)];case 216:return i=this.view.getInt8(this.offset),this.offset+=1,[i,this.bin(16)];case 217:return s=this.view.getUint8(this.offset),this.offset+=1,this.str(s);case 218:return s=this.view.getUint16(this.offset),this.offset+=2,this.str(s);case 219:return s=this.view.getUint32(this.offset),this.offset+=4,this.str(s);case 220:return s=this.view.getUint16(this.offset),this.offset+=2,this.array(s);case 221:return s=this.view.getUint32(this.offset),this.offset+=4,this.array(s);case 222:return s=this.view.getUint16(this.offset),this.offset+=2,this.map(s);case 223:return s=this.view.getUint32(this.offset),this.offset+=4,this.map(s)}throw new Error("Could not parse")},t.exports=r}])}); //# sourceMappingURL=notepack.js.map \ No newline at end of file diff --git a/dist/notepack.js.map b/dist/notepack.js.map index 90d6456..6bf78f4 100644 --- a/dist/notepack.js.map +++ b/dist/notepack.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///notepack.js","webpack:///webpack/bootstrap 104c3dceda4515468a4a","webpack:///./lib/index.js","webpack:///./lib/encode.js","webpack:///(webpack)/~/node-libs-browser/~/buffer/index.js","webpack:///(webpack)/~/node-libs-browser/~/buffer/~/base64-js/index.js","webpack:///(webpack)/~/node-libs-browser/~/buffer/~/ieee754/index.js","webpack:///(webpack)/~/node-libs-browser/~/buffer/~/isarray/index.js","webpack:///./lib/decode.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","encode","decode","Buffer","utf8Write","arr","offset","str","i","l","length","charCodeAt","utf8Length","_encode","bytes","defers","value","type","hi","lo","size","MICRO_OPT_LEN","byteLength","push","Error","isFinite","Math","floor","float","abs","MAX_SAFE_INTEGER","pow","Array","isArray","Date","time","getTime","bin","keys","key","allKeys","Object","buf","deferIndex","deferWritten","nextOffset","defer","deferLength","copy","j","write","writeDoubleBE","global","typedArraySupport","Uint8Array","__proto__","prototype","foo","subarray","e","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","allocUnsafe","from","TypeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","fill","encoding","undefined","checked","string","isEncoding","actual","slice","fromArrayLike","array","byteOffset","obj","isBuffer","len","buffer","isnan","data","toString","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","bidirectionalIndexOf","val","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","read","indexSize","readUInt16BE","arrLength","valLength","String","foundIndex","found","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","fromByteArray","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","ret","out","toHex","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","replace","INVALID_BASE64_RE","trim","units","Infinity","leadSurrogate","byteArray","toByteArray","src","dst","INSPECT_MAX_BYTES","poolSize","_augment","Symbol","species","defineProperty","configurable","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","targetStart","set","code","placeHoldersCount","b64","tmp","placeHolders","Arr","L","revLookup","tripletToBase64","num","lookup","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","log","LN2","Decoder","decoder","parse","map","prefix"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,SAAAD,IAEAD,EAAA,SAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAASL,EAAQD,EAASM,GEtDhCN,EAAAe,OAAAT,EAAA,GACAN,EAAAgB,OAAAV,EAAA,IF6DM,SAASL,EAAQD,EAASM,IG9DhC,SAAAW,GAAA,YAMA,SAAAC,GAAAC,EAAAC,EAAAC,GAEA,OADAR,GAAA,EACAS,EAAA,EAAAC,EAAAF,EAAAG,OAAiCF,EAAAC,EAAOD,IACxCT,EAAAQ,EAAAI,WAAAH,GACAT,EAAA,IACAM,EAAAC,KAAAP,EAEAA,EAAA,MACAM,EAAAC,KAAA,IAAAP,GAAA,EACAM,EAAAC,KAAA,OAAAP,GAEAA,EAAA,OAAAA,GAAA,OACAM,EAAAC,KAAA,IAAAP,GAAA,GACAM,EAAAC,KAAA,IAAAP,GAAA,KACAM,EAAAC,KAAA,OAAAP,IAGAS,IACAT,EAAA,aAAAA,IAAA,QAAAQ,EAAAI,WAAAH,IACAH,EAAAC,KAAA,IAAAP,GAAA,GACAM,EAAAC,KAAA,IAAAP,GAAA,MACAM,EAAAC,KAAA,IAAAP,GAAA,KACAM,EAAAC,KAAA,OAAAP,GAMA,QAAAa,GAAAL,GAEA,OADAR,GAAA,EAAAW,EAAA,EACAF,EAAA,EAAAC,EAAAF,EAAAG,OAAiCF,EAAAC,EAAOD,IACxCT,EAAAQ,EAAAI,WAAAH,GACAT,EAAA,IACAW,GAAA,EAEAX,EAAA,KACAW,GAAA,EAEAX,EAAA,OAAAA,GAAA,MACAW,GAAA,GAGAF,IACAE,GAAA,EAGA,OAAAA,GAGA,QAAAG,GAAAC,EAAAC,EAAAC,GACA,GAAAC,SAAAD,GAAAE,EAAA,EAAAC,EAAA,EAAAT,EAAA,EAAAU,EAAA,CAEA,eAAAH,EAAA,CAQA,GANAP,EADAM,EAAAN,OAAAW,EACAlB,EAAAmB,WAAAN,GAEAJ,EAAAI,GAIAN,EAAA,GACAI,EAAAS,KAAA,IAAAb,GACAU,EAAA,MAGA,IAAAV,EAAA,IACAI,EAAAS,KAAA,IAAAb,GACAU,EAAA,MAGA,IAAAV,EAAA,MACAI,EAAAS,KAAA,IAAAb,GAAA,EAAAA,GACAU,EAAA,MAGA,MAAAV,EAAA,YAIA,SAAAc,OAAA,kBAHAV,GAAAS,KAAA,IAAAb,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACAU,EAAA,EAKA,MADAL,GAAAQ,MAAiBhB,IAAAS,EAAAN,SAAAJ,OAAAQ,EAAAJ,SACjBU,EAAAV,EAEA,cAAAO,EAAA,CACA,IAAAQ,SAAAT,GACA,SAAAQ,OAAA,uBAMA,IAAAE,KAAAC,MAAAX,OAGA,MAFAF,GAAAS,KAAA,KACAR,EAAAQ,MAAmBK,MAAAZ,EAAAN,OAAA,EAAAJ,OAAAQ,EAAAJ,SACnB,CAGA,IAAAgB,KAAAG,IAAAb,GAAAc,EACA,SAAAN,OAAA,oBAGA,OAAAR,IAAA,EAEAA,EAAA,KACAF,EAAAS,KAAAP,GACA,GAGAA,EAAA,KACAF,EAAAS,KAAA,IAAAP,GACA,GAGAA,EAAA,OACAF,EAAAS,KAAA,IAAAP,GAAA,EAAAA,GACA,GAGAA,EAAA,YACAF,EAAAS,KAAA,IAAAP,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACA,IAGAE,EAAAF,EAAAU,KAAAK,IAAA,SACAZ,EAAAH,IAAA,EACAF,EAAAS,KAAA,IAAAL,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,EAAAC,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACA,GAGAH,IAAA,IACAF,EAAAS,KAAAP,GACA,GAGAA,IAAA,KACAF,EAAAS,KAAA,IAAAP,GACA,GAGAA,IAAA,OACAF,EAAAS,KAAA,IAAAP,GAAA,EAAAA,GACA,GAGAA,IAAA,YACAF,EAAAS,KAAA,IAAAP,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACA,IAGAE,EAAAQ,KAAAC,MAAAX,EAAAU,KAAAK,IAAA,OACAZ,EAAAH,IAAA,EACAF,EAAAS,KAAA,IAAAL,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,EAAAC,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACA,GAGA,cAAAF,EAAA,CAEA,UAAAD,EAEA,MADAF,GAAAS,KAAA,KACA,CAGA,IAAAS,MAAAC,QAAAjB,GAAA,CAIA,GAHAN,EAAAM,EAAAN,OAGAA,EAAA,GACAI,EAAAS,KAAA,IAAAb,GACAU,EAAA,MAGA,IAAAV,EAAA,MACAI,EAAAS,KAAA,IAAAb,GAAA,EAAAA,GACAU,EAAA,MAGA,MAAAV,EAAA,YAIA,SAAAc,OAAA,kBAHAV,GAAAS,KAAA,IAAAb,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACAU,EAAA,EAIA,IAAAZ,EAAA,EAAiBA,EAAAE,EAAYF,IAC7BY,GAAAP,EAAAC,EAAAC,EAAAC,EAAAR,GAEA,OAAAY,GAIA,GAAAJ,YAAAkB,MAAA,CACA,GAAAC,GAAAnB,EAAAoB,SAIA,OAHAlB,GAAAQ,KAAAC,MAAAQ,EAAAT,KAAAK,IAAA,OACAZ,EAAAgB,IAAA,EACArB,EAAAS,KAAA,MAAAL,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,EAAAC,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACA,GAGA,GAAAH,YAAAb,GAAA,CAIA,GAHAO,EAAAM,EAAAN,OAGAA,EAAA,IACAI,EAAAS,KAAA,IAAAb,GACAU,EAAA,MAGA,IAAAV,EAAA,MACAI,EAAAS,KAAA,IAAAb,GAAA,EAAAA,GACAU,EAAA,MAGA,MAAAV,EAAA,YAIA,SAAAc,OAAA,mBAHAV,GAAAS,KAAA,IAAAb,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACAU,EAAA,EAKA,MADAL,GAAAQ,MAAmBc,IAAArB,EAAAN,SAAAJ,OAAAQ,EAAAJ,SACnBU,EAAAV,EAMA,OAHA4B,MAAAC,EAAA,GAEAC,EAAAC,OAAAH,KAAAtB,GACAR,EAAA,EAAAC,EAAA+B,EAAA9B,OAAuCF,EAAAC,EAAOD,IAC9C+B,EAAAC,EAAAhC,GACA,kBAAAQ,GAAAuB,IACAD,EAAAf,KAAAgB,EAMA,IAHA7B,EAAA4B,EAAA5B,OAGAA,EAAA,GACAI,EAAAS,KAAA,IAAAb,GACAU,EAAA,MAGA,IAAAV,EAAA,MACAI,EAAAS,KAAA,IAAAb,GAAA,EAAAA,GACAU,EAAA,MAGA,MAAAV,EAAA,YAIA,SAAAc,OAAA,mBAHAV,GAAAS,KAAA,IAAAb,GAAA,GAAAA,GAAA,GAAAA,GAAA,EAAAA,GACAU,EAAA,EAKA,OAAAZ,GAAA,EAAmBA,EAAAE,EAAYF,IAC/B+B,EAAAD,EAAA9B,GACAY,GAAAP,EAAAC,EAAAC,EAAAwB,GACAnB,GAAAP,EAAAC,EAAAC,EAAAC,EAAAuB,GAEA,OAAAnB,GAGA,eAAAH,EAEA,MADAH,GAAAS,KAAAP,EAAA,SACA,CAGA,kBAAAC,EAEA,MADAH,GAAAS,KAAA,SACA,CAEA,UAAAC,OAAA,oBAGA,QAAAvB,GAAAe,GACA,GAAAF,MACAC,KACAK,EAAAP,EAAAC,EAAAC,EAAAC,GACA0B,EAAA,GAAAvC,GAAAiB,GAEAuB,EAAA,EACAC,EAAA,EACAC,GAAA,CACA9B,GAAAL,OAAA,IACAmC,EAAA9B,EAAA,GAAAT,OAIA,QADAwC,GAAAC,EAAA,EAAAzC,EAAA,EACAE,EAAA,EAAAC,EAAAK,EAAAJ,OAAmCF,EAAAC,EAAOD,IAE1C,GADAkC,EAAAE,EAAApC,GAAAM,EAAAN,GACAA,EAAA,IAAAqC,EAAA,CAIA,GAHAC,EAAA/B,EAAA4B,GACAI,EAAAD,EAAApC,OACAJ,EAAAsC,EAAAC,EACAC,EAAAT,IACA,GAAAU,EAAA1B,EACAyB,EAAAT,IAAAW,KAAAN,EAAApC,EAAA,EAAAyC,OAGA,QADAV,GAAAS,EAAAT,IACAY,EAAA,EAAuBA,EAAAF,EAAiBE,IACxCP,EAAApC,EAAA2C,GAAAZ,EAAAY,OAGKH,GAAAvC,IACLwC,EAAA1B,EACAqB,EAAAQ,MAAAJ,EAAAvC,IAAAD,EAAAyC,EAAA,QAEA3C,EAAAsC,EAAApC,EAAAwC,EAAAvC,KAEKuC,EAAAlB,OACLc,EAAAS,cAAAL,EAAAlB,MAAAtB,EAEAqC,KACAC,GAAAG,EACAhC,EAAA4B,KACAE,EAAA9B,EAAA4B,GAAArC,QAGA,MAAAoC,GA/TA,GAAAZ,GAAAJ,KAAAK,IAAA,QACAV,EAAA,EAiUAlC,GAAAD,QAAAe,IHkE8BJ,KAAKX,EAASM,EAAoB,GAAGW,SAI7D,SAAShB,EAAQD,EAASM,II1YhC,SAAA4D;;;;;;AAQA,YA2CA,SAAAC,KACA,IACA,GAAAhD,GAAA,GAAAiD,YAAA,EAEA,OADAjD,GAAAkD,WAAqBA,UAAAD,WAAAE,UAAAC,IAAA,WAAmD,YACxE,KAAApD,EAAAoD,OACA,kBAAApD,GAAAqD,UACA,IAAArD,EAAAqD,SAAA,KAAApC,WACG,MAAAqC,GACH,UAIA,QAAAC,KACA,MAAAzD,GAAA0D,oBACA,WACA,WAGA,QAAAC,GAAAC,EAAArD,GACA,GAAAkD,IAAAlD,EACA,SAAAsD,YAAA,6BAcA,OAZA7D,GAAA0D,qBAEAE,EAAA,GAAAT,YAAA5C,GACAqD,EAAAR,UAAApD,EAAAqD,YAGA,OAAAO,IACAA,EAAA,GAAA5D,GAAAO,IAEAqD,EAAArD,UAGAqD,EAaA,QAAA5D,GAAA8D,EAAAC,EAAAxD,GACA,KAAAP,EAAA0D,qBAAAvE,eAAAa,IACA,UAAAA,GAAA8D,EAAAC,EAAAxD,EAIA,oBAAAuD,GAAA,CACA,mBAAAC,GACA,SAAA1C,OACA,oEAGA,OAAA2C,GAAA7E,KAAA2E,GAEA,MAAAG,GAAA9E,KAAA2E,EAAAC,EAAAxD,GAWA,QAAA0D,GAAAL,EAAA/C,EAAAkD,EAAAxD,GACA,mBAAAM,GACA,SAAAqD,WAAA,wCAGA,0BAAAC,cAAAtD,YAAAsD,aACAC,EAAAR,EAAA/C,EAAAkD,EAAAxD,GAGA,gBAAAM,GACAwD,EAAAT,EAAA/C,EAAAkD,GAGAO,EAAAV,EAAA/C,GA4BA,QAAA0D,GAAAtD,GACA,mBAAAA,GACA,SAAAiD,WAAA,mCACG,IAAAjD,EAAA,EACH,SAAA4C,YAAA,wCAIA,QAAAW,GAAAZ,EAAA3C,EAAAwD,EAAAC,GAEA,MADAH,GAAAtD,GACAA,GAAA,EACA0C,EAAAC,EAAA3C,GAEA0D,SAAAF,EAIA,gBAAAC,GACAf,EAAAC,EAAA3C,GAAAwD,OAAAC,GACAf,EAAAC,EAAA3C,GAAAwD,QAEAd,EAAAC,EAAA3C,GAWA,QAAA+C,GAAAJ,EAAA3C,GAGA,GAFAsD,EAAAtD,GACA2C,EAAAD,EAAAC,EAAA3C,EAAA,MAAA2D,EAAA3D,KACAjB,EAAA0D,oBACA,OAAArD,GAAA,EAAmBA,EAAAY,IAAUZ,EAC7BuD,EAAAvD,GAAA,CAGA,OAAAuD,GAgBA,QAAAS,GAAAT,EAAAiB,EAAAH,GAKA,GAJA,gBAAAA,IAAA,KAAAA,IACAA,EAAA,SAGA1E,EAAA8E,WAAAJ,GACA,SAAAR,WAAA,6CAGA,IAAA3D,GAAA,EAAAY,EAAA0D,EAAAH,EACAd,GAAAD,EAAAC,EAAArD,EAEA,IAAAwE,GAAAnB,EAAAb,MAAA8B,EAAAH,EASA,OAPAK,KAAAxE,IAIAqD,IAAAoB,MAAA,EAAAD,IAGAnB,EAGA,QAAAqB,GAAArB,EAAAsB,GACA,GAAA3E,GAAA2E,EAAA3E,OAAA,MAAAqE,EAAAM,EAAA3E,OACAqD,GAAAD,EAAAC,EAAArD,EACA,QAAAF,GAAA,EAAiBA,EAAAE,EAAYF,GAAA,EAC7BuD,EAAAvD,GAAA,IAAA6E,EAAA7E,EAEA,OAAAuD,GAGA,QAAAQ,GAAAR,EAAAsB,EAAAC,EAAA5E,GAGA,GAFA2E,EAAA/D,WAEAgE,EAAA,GAAAD,EAAA/D,WAAAgE,EACA,SAAAtB,YAAA,4BAGA,IAAAqB,EAAA/D,WAAAgE,GAAA5E,GAAA,GACA,SAAAsD,YAAA,4BAmBA,OAfAqB,GADAP,SAAAQ,GAAAR,SAAApE,EACA,GAAA4C,YAAA+B,GACGP,SAAApE,EACH,GAAA4C,YAAA+B,EAAAC,GAEA,GAAAhC,YAAA+B,EAAAC,EAAA5E,GAGAP,EAAA0D,qBAEAE,EAAAsB,EACAtB,EAAAR,UAAApD,EAAAqD,WAGAO,EAAAqB,EAAArB,EAAAsB,GAEAtB,EAGA,QAAAU,GAAAV,EAAAwB,GACA,GAAApF,EAAAqF,SAAAD,GAAA,CACA,GAAAE,GAAA,EAAAV,EAAAQ,EAAA7E,OAGA,OAFAqD,GAAAD,EAAAC,EAAA0B,GAEA,IAAA1B,EAAArD,OACAqD,GAGAwB,EAAAvC,KAAAe,EAAA,IAAA0B,GACA1B,GAGA,GAAAwB,EAAA,CACA,sBAAAjB,cACAiB,EAAAG,iBAAApB,cAAA,UAAAiB,GACA,sBAAAA,GAAA7E,QAAAiF,EAAAJ,EAAA7E,QACAoD,EAAAC,EAAA,GAEAqB,EAAArB,EAAAwB,EAGA,eAAAA,EAAAtE,MAAAgB,EAAAsD,EAAAK,MACA,MAAAR,GAAArB,EAAAwB,EAAAK,MAIA,SAAAvB,WAAA,sFAGA,QAAAU,GAAArE,GAGA,GAAAA,GAAAkD,IACA,SAAAI,YAAA,0DACAJ,IAAAiC,SAAA,aAEA,UAAAnF,EAGA,QAAAoF,GAAApF,GAIA,OAHAA,OACAA,EAAA,GAEAP,EAAAwE,OAAAjE,GA+EA,QAAAY,GAAA0D,EAAAH,GACA,GAAA1E,EAAAqF,SAAAR,GACA,MAAAA,GAAAtE,MAEA,uBAAA4D,cAAA,kBAAAA,aAAAyB,SACAzB,YAAAyB,OAAAf,gBAAAV,cACA,MAAAU,GAAA1D,UAEA,iBAAA0D,KACAA,EAAA,GAAAA,EAGA,IAAAS,GAAAT,EAAAtE,MACA,QAAA+E,EAAA,QAIA,KADA,GAAAO,IAAA,IAEA,OAAAnB,GACA,YACA,aACA,aACA,MAAAY,EACA,YACA,YACA,IAAAX,QACA,MAAAmB,GAAAjB,GAAAtE,MACA,YACA,YACA,cACA,eACA,SAAA+E,CACA,WACA,MAAAA,KAAA,CACA,cACA,MAAAS,GAAAlB,GAAAtE,MACA,SACA,GAAAsF,EAAA,MAAAC,GAAAjB,GAAAtE,MACAmE,IAAA,GAAAA,GAAAsB,cACAH,GAAA,GAMA,QAAAI,GAAAvB,EAAAwB,EAAAC,GACA,GAAAN,IAAA,CAcA,KALAlB,SAAAuB,KAAA,KACAA,EAAA,GAIAA,EAAA/G,KAAAoB,OACA,QAOA,KAJAoE,SAAAwB,KAAAhH,KAAAoB,UACA4F,EAAAhH,KAAAoB,QAGA4F,GAAA,EACA,QAOA,IAHAA,KAAA,EACAD,KAAA,EAEAC,GAAAD,EACA,QAKA,KAFAxB,MAAA,UAGA,OAAAA,GACA,UACA,MAAA0B,GAAAjH,KAAA+G,EAAAC,EAEA,YACA,YACA,MAAAE,GAAAlH,KAAA+G,EAAAC,EAEA,aACA,MAAAG,GAAAnH,KAAA+G,EAAAC,EAEA,cACA,aACA,MAAAI,GAAApH,KAAA+G,EAAAC,EAEA,cACA,MAAAK,GAAArH,KAAA+G,EAAAC,EAEA,YACA,YACA,cACA,eACA,MAAAM,GAAAtH,KAAA+G,EAAAC,EAEA,SACA,GAAAN,EAAA,SAAA3B,WAAA,qBAAAQ,EACAA,MAAA,IAAAsB,cACAH,GAAA,GASA,QAAAa,GAAAC,EAAAC,EAAAjH,GACA,GAAAU,GAAAsG,EAAAC,EACAD,GAAAC,GAAAD,EAAAhH,GACAgH,EAAAhH,GAAAU,EAmIA,QAAAwG,GAAAtB,EAAAuB,EAAA3B,EAAAT,EAAAqC,GAEA,OAAAxB,EAAAhF,OAAA,QAmBA,IAhBA,gBAAA4E,IACAT,EAAAS,EACAA,EAAA,GACGA,EAAA,WACHA,EAAA,WACGA,GAAA,aACHA,GAAA,YAEAA,KACA6B,MAAA7B,KAEAA,EAAA4B,EAAA,EAAAxB,EAAAhF,OAAA,GAIA4E,EAAA,IAAAA,EAAAI,EAAAhF,OAAA4E,GACAA,GAAAI,EAAAhF,OAAA,CACA,GAAAwG,EAAA,QACA5B,GAAAI,EAAAhF,OAAA,MACG,IAAA4E,EAAA,GACH,IAAA4B,EACA,QADA5B,GAAA,EAUA,GALA,gBAAA2B,KACAA,EAAA9G,EAAAiE,KAAA6C,EAAApC,IAIA1E,EAAAqF,SAAAyB,GAEA,WAAAA,EAAAvG,QACA,EAEA0G,EAAA1B,EAAAuB,EAAA3B,EAAAT,EAAAqC,EACG,oBAAAD,GAEH,MADAA,IAAA,IACA9G,EAAA0D,qBACA,kBAAAP,YAAAE,UAAA6D,QACAH,EACA5D,WAAAE,UAAA6D,QAAAxH,KAAA6F,EAAAuB,EAAA3B,GAEAhC,WAAAE,UAAA8D,YAAAzH,KAAA6F,EAAAuB,EAAA3B,GAGA8B,EAAA1B,GAAAuB,GAAA3B,EAAAT,EAAAqC,EAGA,UAAA7C,WAAA,wCAGA,QAAA+C,GAAA/G,EAAA4G,EAAA3B,EAAAT,EAAAqC,GAmBA,QAAAK,GAAA7E,EAAAlC,GACA,WAAAgH,EACA9E,EAAAlC,GAEAkC,EAAA+E,aAAAjH,EAAAgH,GAtBA,GAAAA,GAAA,EACAE,EAAArH,EAAAK,OACAiH,EAAAV,EAAAvG,MAEA,IAAAoE,SAAAD,IACAA,EAAA+C,OAAA/C,GAAAsB,cACA,SAAAtB,GAAA,UAAAA,GACA,YAAAA,GAAA,aAAAA,GAAA,CACA,GAAAxE,EAAAK,OAAA,GAAAuG,EAAAvG,OAAA,EACA,QAEA8G,GAAA,EACAE,GAAA,EACAC,GAAA,EACArC,GAAA,EAYA,GAAA9E,EACA,IAAA0G,EAAA,CACA,GAAAW,IAAA,CACA,KAAArH,EAAA8E,EAAwB9E,EAAAkH,EAAelH,IACvC,GAAA+G,EAAAlH,EAAAG,KAAA+G,EAAAN,EAAAY,KAAA,IAAArH,EAAAqH,IAEA,GADAA,KAAA,IAAAA,EAAArH,GACAA,EAAAqH,EAAA,IAAAF,EAAA,MAAAE,GAAAL,MAEAK,MAAA,IAAArH,KAAAqH,GACAA,GAAA,MAKA,KADAvC,EAAAqC,EAAAD,IAAApC,EAAAoC,EAAAC,GACAnH,EAAA8E,EAAwB9E,GAAA,EAAQA,IAAA,CAEhC,OADAsH,IAAA,EACA7E,EAAA,EAAqBA,EAAA0E,EAAe1E,IACpC,GAAAsE,EAAAlH,EAAAG,EAAAyC,KAAAsE,EAAAN,EAAAhE,GAAA,CACA6E,GAAA,CACA,OAGA,GAAAA,EAAA,MAAAtH,GAIA,SAeA,QAAAuH,GAAArF,EAAAsC,EAAA1E,EAAAI,GACAJ,EAAA0H,OAAA1H,IAAA,CACA,IAAA2H,GAAAvF,EAAAhC,OAAAJ,CACAI,IAGAA,EAAAsH,OAAAtH,GACAA,EAAAuH,IACAvH,EAAAuH,IAJAvH,EAAAuH,CASA,IAAAC,GAAAlD,EAAAtE,MACA,IAAAwH,EAAA,eAAA7D,WAAA,qBAEA3D,GAAAwH,EAAA,IACAxH,EAAAwH,EAAA,EAEA,QAAA1H,GAAA,EAAiBA,EAAAE,IAAYF,EAAA,CAC7B,GAAA2H,GAAAC,SAAApD,EAAAqD,OAAA,EAAA7H,EAAA,MACA,IAAA2G,MAAAgB,GAAA,MAAA3H,EACAkC,GAAApC,EAAAE,GAAA2H,EAEA,MAAA3H,GAGA,QAAAJ,GAAAsC,EAAAsC,EAAA1E,EAAAI,GACA,MAAA4H,GAAArC,EAAAjB,EAAAtC,EAAAhC,OAAAJ,GAAAoC,EAAApC,EAAAI,GAGA,QAAA6H,GAAA7F,EAAAsC,EAAA1E,EAAAI,GACA,MAAA4H,GAAAE,EAAAxD,GAAAtC,EAAApC,EAAAI,GAGA,QAAA+H,GAAA/F,EAAAsC,EAAA1E,EAAAI,GACA,MAAA6H,GAAA7F,EAAAsC,EAAA1E,EAAAI,GAGA,QAAAgI,GAAAhG,EAAAsC,EAAA1E,EAAAI,GACA,MAAA4H,GAAApC,EAAAlB,GAAAtC,EAAApC,EAAAI,GAGA,QAAAiI,GAAAjG,EAAAsC,EAAA1E,EAAAI,GACA,MAAA4H,GAAAM,EAAA5D,EAAAtC,EAAAhC,OAAAJ,GAAAoC,EAAApC,EAAAI,GAkFA,QAAAiG,GAAAjE,EAAA2D,EAAAC,GACA,WAAAD,GAAAC,IAAA5D,EAAAhC,OACAmI,EAAAC,cAAApG,GAEAmG,EAAAC,cAAApG,EAAAyC,MAAAkB,EAAAC,IAIA,QAAAE,GAAA9D,EAAA2D,EAAAC,GACAA,EAAA5E,KAAAqH,IAAArG,EAAAhC,OAAA4F,EAIA,KAHA,GAAA0C,MAEAxI,EAAA6F,EACA7F,EAAA8F,GAAA,CACA,GAAA2C,GAAAvG,EAAAlC,GACA0I,EAAA,KACAC,EAAAF,EAAA,MACAA,EAAA,MACAA,EAAA,MACA,CAEA,IAAAzI,EAAA2I,GAAA7C,EAAA,CACA,GAAA8C,GAAAC,EAAAC,EAAAC,CAEA,QAAAJ,GACA,OACAF,EAAA,MACAC,EAAAD,EAEA,MACA,QACAG,EAAA1G,EAAAlC,EAAA,GACA,WAAA4I,KACAG,GAAA,GAAAN,IAAA,KAAAG,EACAG,EAAA,MACAL,EAAAK,GAGA,MACA,QACAH,EAAA1G,EAAAlC,EAAA,GACA6I,EAAA3G,EAAAlC,EAAA,GACA,WAAA4I,IAAA,WAAAC,KACAE,GAAA,GAAAN,IAAA,OAAAG,IAAA,KAAAC,EACAE,EAAA,OAAAA,EAAA,OAAAA,EAAA,SACAL,EAAAK,GAGA,MACA,QACAH,EAAA1G,EAAAlC,EAAA,GACA6I,EAAA3G,EAAAlC,EAAA,GACA8I,EAAA5G,EAAAlC,EAAA,GACA,WAAA4I,IAAA,WAAAC,IAAA,WAAAC,KACAC,GAAA,GAAAN,IAAA,OAAAG,IAAA,OAAAC,IAAA,KAAAC,EACAC,EAAA,OAAAA,EAAA,UACAL,EAAAK,KAMA,OAAAL,GAGAA,EAAA,MACAC,EAAA,GACKD,EAAA,QAELA,GAAA,MACAF,EAAAzH,KAAA2H,IAAA,eACAA,EAAA,WAAAA,GAGAF,EAAAzH,KAAA2H,GACA1I,GAAA2I,EAGA,MAAAK,GAAAR,GAQA,QAAAQ,GAAAC,GACA,GAAAhE,GAAAgE,EAAA/I,MACA,IAAA+E,GAAAiE,GACA,MAAA9B,QAAA+B,aAAAC,MAAAhC,OAAA6B,EAMA,KAFA,GAAAT,GAAA,GACAxI,EAAA,EACAA,EAAAiF,GACAuD,GAAApB,OAAA+B,aAAAC,MACAhC,OACA6B,EAAAtE,MAAA3E,KAAAkJ,IAGA,OAAAV,GAGA,QAAAvC,GAAA/D,EAAA2D,EAAAC,GACA,GAAAuD,GAAA,EACAvD,GAAA5E,KAAAqH,IAAArG,EAAAhC,OAAA4F,EAEA,QAAA9F,GAAA6F,EAAqB7F,EAAA8F,IAAS9F,EAC9BqJ,GAAAjC,OAAA+B,aAAA,IAAAjH,EAAAlC,GAEA,OAAAqJ,GAGA,QAAAnD,GAAAhE,EAAA2D,EAAAC,GACA,GAAAuD,GAAA,EACAvD,GAAA5E,KAAAqH,IAAArG,EAAAhC,OAAA4F,EAEA,QAAA9F,GAAA6F,EAAqB7F,EAAA8F,IAAS9F,EAC9BqJ,GAAAjC,OAAA+B,aAAAjH,EAAAlC,GAEA,OAAAqJ,GAGA,QAAAtD,GAAA7D,EAAA2D,EAAAC,GACA,GAAAb,GAAA/C,EAAAhC,SAEA2F,KAAA,KAAAA,EAAA,KACAC,KAAA,GAAAA,EAAAb,KAAAa,EAAAb,EAGA,QADAqE,GAAA,GACAtJ,EAAA6F,EAAqB7F,EAAA8F,IAAS9F,EAC9BsJ,GAAAC,EAAArH,EAAAlC,GAEA,OAAAsJ,GAGA,QAAAlD,GAAAlE,EAAA2D,EAAAC,GAGA,OAFAxF,GAAA4B,EAAAyC,MAAAkB,EAAAC,GACA0C,EAAA,GACAxI,EAAA,EAAiBA,EAAAM,EAAAJ,OAAkBF,GAAA,EACnCwI,GAAApB,OAAA+B,aAAA7I,EAAAN,GAAA,IAAAM,EAAAN,EAAA,GAEA,OAAAwI,GA0CA,QAAAgB,GAAA1J,EAAA2J,EAAAvJ,GACA,GAAAJ,EAAA,OAAAA,EAAA,WAAA0D,YAAA,qBACA,IAAA1D,EAAA2J,EAAAvJ,EAAA,SAAAsD,YAAA,yCA+JA,QAAAkG,GAAAxH,EAAA1B,EAAAV,EAAA2J,EAAAE,EAAApB,GACA,IAAA5I,EAAAqF,SAAA9C,GAAA,SAAA2B,WAAA,8CACA,IAAArD,EAAAmJ,GAAAnJ,EAAA+H,EAAA,SAAA/E,YAAA,oCACA,IAAA1D,EAAA2J,EAAAvH,EAAAhC,OAAA,SAAAsD,YAAA,sBAkDA,QAAAoG,GAAA1H,EAAA1B,EAAAV,EAAA+J,GACArJ,EAAA,IAAAA,EAAA,MAAAA,EAAA,EACA,QAAAR,GAAA,EAAAyC,EAAAvB,KAAAqH,IAAArG,EAAAhC,OAAAJ,EAAA,GAAuDE,EAAAyC,IAAOzC,EAC9DkC,EAAApC,EAAAE,IAAAQ,EAAA,QAAAqJ,EAAA7J,EAAA,EAAAA,MACA,GAAA6J,EAAA7J,EAAA,EAAAA,GA8BA,QAAA8J,GAAA5H,EAAA1B,EAAAV,EAAA+J,GACArJ,EAAA,IAAAA,EAAA,WAAAA,EAAA,EACA,QAAAR,GAAA,EAAAyC,EAAAvB,KAAAqH,IAAArG,EAAAhC,OAAAJ,EAAA,GAAuDE,EAAAyC,IAAOzC,EAC9DkC,EAAApC,EAAAE,GAAAQ,IAAA,GAAAqJ,EAAA7J,EAAA,EAAAA,GAAA,IAmJA,QAAA+J,GAAA7H,EAAA1B,EAAAV,EAAA2J,EAAAE,EAAApB,GACA,GAAAzI,EAAA2J,EAAAvH,EAAAhC,OAAA,SAAAsD,YAAA,qBACA,IAAA1D,EAAA,WAAA0D,YAAA,sBAGA,QAAAwG,GAAA9H,EAAA1B,EAAAV,EAAA+J,EAAAI,GAKA,MAJAA,IACAF,EAAA7H,EAAA1B,EAAAV,EAAA,gDAEAoK,EAAAxH,MAAAR,EAAA1B,EAAAV,EAAA+J,EAAA,MACA/J,EAAA,EAWA,QAAAqK,GAAAjI,EAAA1B,EAAAV,EAAA+J,EAAAI,GAKA,MAJAA,IACAF,EAAA7H,EAAA1B,EAAAV,EAAA,kDAEAoK,EAAAxH,MAAAR,EAAA1B,EAAAV,EAAA+J,EAAA,MACA/J,EAAA,EAgIA,QAAAsK,GAAArK,GAIA,GAFAA,EAAAsK,EAAAtK,GAAAuK,QAAAC,GAAA,IAEAxK,EAAAG,OAAA,UAEA,MAAAH,EAAAG,OAAA,OACAH,GAAA,GAEA,OAAAA,GAGA,QAAAsK,GAAAtK,GACA,MAAAA,GAAAyK,KAAAzK,EAAAyK,OACAzK,EAAAuK,QAAA,iBAGA,QAAAf,GAAAhD,GACA,MAAAA,GAAA,OAAAA,EAAAlB,SAAA,IACAkB,EAAAlB,SAAA,IAGA,QAAAI,GAAAjB,EAAAiG,GACAA,KAAAC,GAMA,QALAhC,GACAxI,EAAAsE,EAAAtE,OACAyK,EAAA,KACArK,KAEAN,EAAA,EAAiBA,EAAAE,IAAYF,EAAA,CAI7B,GAHA0I,EAAAlE,EAAArE,WAAAH,GAGA0I,EAAA,OAAAA,EAAA,OAEA,IAAAiC,EAAA,CAEA,GAAAjC,EAAA,QAEA+B,GAAA,OAAAnK,EAAAS,KAAA,YACA,UACS,GAAAf,EAAA,IAAAE,EAAA,EAETuK,GAAA,OAAAnK,EAAAS,KAAA,YACA,UAIA4J,EAAAjC,CAEA,UAIA,GAAAA,EAAA,QACA+B,GAAA,OAAAnK,EAAAS,KAAA,aACA4J,EAAAjC,CACA,UAIAA,GAAAiC,EAAA,UAAAjC,EAAA,iBACKiC,KAELF,GAAA,OAAAnK,EAAAS,KAAA,YAMA,IAHA4J,EAAA,KAGAjC,EAAA,KACA,IAAA+B,GAAA,UACAnK,GAAAS,KAAA2H,OACK,IAAAA,EAAA,MACL,IAAA+B,GAAA,UACAnK,GAAAS,KACA2H,GAAA,MACA,GAAAA,EAAA,SAEK,IAAAA,EAAA,OACL,IAAA+B,GAAA,UACAnK,GAAAS,KACA2H,GAAA,OACAA,GAAA,SACA,GAAAA,EAAA,SAEK,MAAAA,EAAA,SASL,SAAA1H,OAAA,qBARA,KAAAyJ,GAAA,UACAnK,GAAAS,KACA2H,GAAA,OACAA,GAAA,UACAA,GAAA,SACA,GAAAA,EAAA,MAOA,MAAApI,GAGA,QAAA0H,GAAAjI,GAEA,OADA6K,MACA5K,EAAA,EAAiBA,EAAAD,EAAAG,SAAgBF,EAEjC4K,EAAA7J,KAAA,IAAAhB,EAAAI,WAAAH,GAEA,OAAA4K,GAGA,QAAAxC,GAAArI,EAAA0K,GAGA,OAFAlL,GAAAmB,EAAAC,EACAiK,KACA5K,EAAA,EAAiBA,EAAAD,EAAAG,WACjBuK,GAAA,QADiCzK,EAGjCT,EAAAQ,EAAAI,WAAAH,GACAU,EAAAnB,GAAA,EACAoB,EAAApB,EAAA,IACAqL,EAAA7J,KAAAJ,GACAiK,EAAA7J,KAAAL,EAGA,OAAAkK,GAGA,QAAAlF,GAAA3F,GACA,MAAAsI,GAAAwC,YAAAT,EAAArK,IAGA,QAAA+H,GAAAgD,EAAAC,EAAAjL,EAAAI,GACA,OAAAF,GAAA,EAAiBA,EAAAE,KACjBF,EAAAF,GAAAiL,EAAA7K,QAAAF,GAAA8K,EAAA5K,UAD6BF,EAE7B+K,EAAA/K,EAAAF,GAAAgL,EAAA9K,EAEA,OAAAA,GAGA,QAAAmF,GAAAsB,GACA,MAAAA,OAjvDA,GAAA4B,GAAArJ,EAAA,GACAkL,EAAAlL,EAAA,GACAyC,EAAAzC,EAAA,EAEAN,GAAAiB,SACAjB,EAAA4G,aACA5G,EAAAsM,kBAAA,GA0BArL,EAAA0D,oBAAAiB,SAAA1B,EAAAS,oBACAT,EAAAS,oBACAR,IAKAnE,EAAA0E,eAkEAzD,EAAAsL,SAAA,KAGAtL,EAAAuL,SAAA,SAAArL,GAEA,MADAA,GAAAkD,UAAApD,EAAAqD,UACAnD,GA2BAF,EAAAiE,KAAA,SAAApD,EAAAkD,EAAAxD,GACA,MAAA0D,GAAA,KAAApD,EAAAkD,EAAAxD,IAGAP,EAAA0D,sBACA1D,EAAAqD,UAAAD,UAAAD,WAAAE,UACArD,EAAAoD,UAAAD,WACA,mBAAAqI,gBAAAC,SACAzL,EAAAwL,OAAAC,WAAAzL,GAEAsC,OAAAoJ,eAAA1L,EAAAwL,OAAAC,SACA5K,MAAA,KACA8K,cAAA,KAiCA3L,EAAAwE,MAAA,SAAAvD,EAAAwD,EAAAC,GACA,MAAAF,GAAA,KAAAvD,EAAAwD,EAAAC,IAiBA1E,EAAAgE,YAAA,SAAA/C,GACA,MAAA+C,GAAA,KAAA/C,IAKAjB,EAAA4L,gBAAA,SAAA3K,GACA,MAAA+C,GAAA,KAAA/C,IAiHAjB,EAAAqF,SAAA,SAAAsB,GACA,cAAAA,MAAAkF,YAGA7L,EAAA8L,QAAA,SAAAC,EAAApF,GACA,IAAA3G,EAAAqF,SAAA0G,KAAA/L,EAAAqF,SAAAsB,GACA,SAAAzC,WAAA,4BAGA,IAAA6H,IAAApF,EAAA,QAKA,QAHAqF,GAAAD,EAAAxL,OACA0L,EAAAtF,EAAApG,OAEAF,EAAA,EAAAiF,EAAA/D,KAAAqH,IAAAoD,EAAAC,GAAuC5L,EAAAiF,IAASjF,EAChD,GAAA0L,EAAA1L,KAAAsG,EAAAtG,GAAA,CACA2L,EAAAD,EAAA1L,GACA4L,EAAAtF,EAAAtG,EACA,OAIA,MAAA2L,GAAAC,GAAA,EACAA,EAAAD,EAAA,EACA,GAGAhM,EAAA8E,WAAA,SAAAJ,GACA,OAAA+C,OAAA/C,GAAAsB,eACA,UACA,WACA,YACA,YACA,aACA,aACA,aACA,WACA,YACA,cACA,eACA,QACA,SACA,WAIAhG,EAAAkM,OAAA,SAAAC,EAAA5L,GACA,IAAAuB,EAAAqK,GACA,SAAAjI,WAAA,8CAGA,QAAAiI,EAAA5L,OACA,MAAAP,GAAAwE,MAAA,EAGA,IAAAnE,EACA,IAAAsE,SAAApE,EAEA,IADAA,EAAA,EACAF,EAAA,EAAeA,EAAA8L,EAAA5L,SAAiBF,EAChCE,GAAA4L,EAAA9L,GAAAE,MAIA,IAAAgF,GAAAvF,EAAAgE,YAAAzD,GACA6L,EAAA,CACA,KAAA/L,EAAA,EAAaA,EAAA8L,EAAA5L,SAAiBF,EAAA,CAC9B,GAAAkC,GAAA4J,EAAA9L,EACA,KAAAL,EAAAqF,SAAA9C,GACA,SAAA2B,WAAA,8CAEA3B,GAAAM,KAAA0C,EAAA6G,GACAA,GAAA7J,EAAAhC,OAEA,MAAAgF,IA8CAvF,EAAAmB,aA0EAnB,EAAAqD,UAAAwI,WAAA,EAQA7L,EAAAqD,UAAAgJ,OAAA,WACA,GAAA/G,GAAAnG,KAAAoB,MACA,IAAA+E,EAAA,MACA,SAAAzB,YAAA,4CAEA,QAAAxD,GAAA,EAAiBA,EAAAiF,EAASjF,GAAA,EAC1BqG,EAAAvH,KAAAkB,IAAA,EAEA,OAAAlB,OAGAa,EAAAqD,UAAAiJ,OAAA,WACA,GAAAhH,GAAAnG,KAAAoB,MACA,IAAA+E,EAAA,MACA,SAAAzB,YAAA,4CAEA,QAAAxD,GAAA,EAAiBA,EAAAiF,EAASjF,GAAA,EAC1BqG,EAAAvH,KAAAkB,IAAA,GACAqG,EAAAvH,KAAAkB,EAAA,EAAAA,EAAA,EAEA,OAAAlB,OAGAa,EAAAqD,UAAAkJ,OAAA,WACA,GAAAjH,GAAAnG,KAAAoB,MACA,IAAA+E,EAAA,MACA,SAAAzB,YAAA,4CAEA,QAAAxD,GAAA,EAAiBA,EAAAiF,EAASjF,GAAA,EAC1BqG,EAAAvH,KAAAkB,IAAA,GACAqG,EAAAvH,KAAAkB,EAAA,EAAAA,EAAA,GACAqG,EAAAvH,KAAAkB,EAAA,EAAAA,EAAA,GACAqG,EAAAvH,KAAAkB,EAAA,EAAAA,EAAA,EAEA,OAAAlB,OAGAa,EAAAqD,UAAAqC,SAAA,WACA,GAAAnF,GAAA,EAAApB,KAAAoB,MACA,YAAAA,EAAA,GACA,IAAAiM,UAAAjM,OAAA8F,EAAAlH,KAAA,EAAAoB,GACA0F,EAAAwD,MAAAtK,KAAAqN,YAGAxM,EAAAqD,UAAAoJ,OAAA,SAAA9F,GACA,IAAA3G,EAAAqF,SAAAsB,GAAA,SAAAzC,WAAA,4BACA,OAAA/E,QAAAwH,GACA,IAAA3G,EAAA8L,QAAA3M,KAAAwH,IAGA3G,EAAAqD,UAAAqJ,QAAA,WACA,GAAAtM,GAAA,GACA4J,EAAAjL,EAAAsM,iBAKA,OAJAlM,MAAAoB,OAAA,IACAH,EAAAjB,KAAAuG,SAAA,QAAAsE,GAAA2C,MAAA,SAAkDC,KAAA,KAClDzN,KAAAoB,OAAAyJ,IAAA5J,GAAA,UAEA,WAAAA,EAAA,KAGAJ,EAAAqD,UAAAyI,QAAA,SAAAe,EAAA3G,EAAAC,EAAA2G,EAAAC,GACA,IAAA/M,EAAAqF,SAAAwH,GACA,SAAA3I,WAAA,4BAgBA,IAbAS,SAAAuB,IACAA,EAAA,GAEAvB,SAAAwB,IACAA,EAAA0G,IAAAtM,OAAA,GAEAoE,SAAAmI,IACAA,EAAA,GAEAnI,SAAAoI,IACAA,EAAA5N,KAAAoB,QAGA2F,EAAA,GAAAC,EAAA0G,EAAAtM,QAAAuM,EAAA,GAAAC,EAAA5N,KAAAoB,OACA,SAAAsD,YAAA,qBAGA,IAAAiJ,GAAAC,GAAA7G,GAAAC,EACA,QAEA,IAAA2G,GAAAC,EACA,QAEA,IAAA7G,GAAAC,EACA,QAQA,IALAD,KAAA,EACAC,KAAA,EACA2G,KAAA,EACAC,KAAA,EAEA5N,OAAA0N,EAAA,QASA,QAPAb,GAAAe,EAAAD,EACAb,EAAA9F,EAAAD,EACAZ,EAAA/D,KAAAqH,IAAAoD,EAAAC,GAEAe,EAAA7N,KAAA6F,MAAA8H,EAAAC,GACAE,EAAAJ,EAAA7H,MAAAkB,EAAAC,GAEA9F,EAAA,EAAiBA,EAAAiF,IAASjF,EAC1B,GAAA2M,EAAA3M,KAAA4M,EAAA5M,GAAA,CACA2L,EAAAgB,EAAA3M,GACA4L,EAAAgB,EAAA5M,EACA,OAIA,MAAA2L,GAAAC,GAAA,EACAA,EAAAD,EAAA,EACA,GA6HAhM,EAAAqD,UAAA6J,SAAA,SAAApG,EAAA3B,EAAAT,GACA,MAAAvF,MAAA+H,QAAAJ,EAAA3B,EAAAT,MAAA,GAGA1E,EAAAqD,UAAA6D,QAAA,SAAAJ,EAAA3B,EAAAT,GACA,MAAAmC,GAAA1H,KAAA2H,EAAA3B,EAAAT,GAAA,IAGA1E,EAAAqD,UAAA8D,YAAA,SAAAL,EAAA3B,EAAAT,GACA,MAAAmC,GAAA1H,KAAA2H,EAAA3B,EAAAT,GAAA,IAkDA1E,EAAAqD,UAAAN,MAAA,SAAA8B,EAAA1E,EAAAI,EAAAmE,GAEA,GAAAC,SAAAxE,EACAuE,EAAA,OACAnE,EAAApB,KAAAoB,OACAJ,EAAA,MAEG,IAAAwE,SAAApE,GAAA,gBAAAJ,GACHuE,EAAAvE,EACAI,EAAApB,KAAAoB,OACAJ,EAAA,MAEG,KAAAmB,SAAAnB,GAWH,SAAAkB,OACA,0EAXAlB,IAAA,EACAmB,SAAAf,IACAA,GAAA,EACAoE,SAAAD,MAAA,UAEAA,EAAAnE,EACAA,EAAAoE,QASA,GAAAmD,GAAA3I,KAAAoB,OAAAJ,CAGA,KAFAwE,SAAApE,KAAAuH,KAAAvH,EAAAuH,GAEAjD,EAAAtE,OAAA,IAAAA,EAAA,GAAAJ,EAAA,IAAAA,EAAAhB,KAAAoB,OACA,SAAAsD,YAAA,yCAGAa,OAAA,OAGA,KADA,GAAAmB,IAAA,IAEA,OAAAnB,GACA,UACA,MAAAkD,GAAAzI,KAAA0F,EAAA1E,EAAAI,EAEA,YACA,YACA,MAAAN,GAAAd,KAAA0F,EAAA1E,EAAAI,EAEA,aACA,MAAA6H,GAAAjJ,KAAA0F,EAAA1E,EAAAI,EAEA,cACA,aACA,MAAA+H,GAAAnJ,KAAA0F,EAAA1E,EAAAI,EAEA,cAEA,MAAAgI,GAAApJ,KAAA0F,EAAA1E,EAAAI,EAEA,YACA,YACA,cACA,eACA,MAAAiI,GAAArJ,KAAA0F,EAAA1E,EAAAI,EAEA,SACA,GAAAsF,EAAA,SAAA3B,WAAA,qBAAAQ,EACAA,IAAA,GAAAA,GAAAsB,cACAH,GAAA,IAKA7F,EAAAqD,UAAA8J,OAAA,WACA,OACArM,KAAA,SACA2E,KAAA5D,MAAAwB,UAAA2B,MAAAtF,KAAAP,KAAAiO,MAAAjO,KAAA,IAwFA,IAAAoK,IAAA,IA8DAvJ,GAAAqD,UAAA2B,MAAA,SAAAkB,EAAAC,GACA,GAAAb,GAAAnG,KAAAoB,MACA2F,OACAC,EAAAxB,SAAAwB,EAAAb,IAAAa,EAEAD,EAAA,GACAA,GAAAZ,EACAY,EAAA,IAAAA,EAAA,IACGA,EAAAZ,IACHY,EAAAZ,GAGAa,EAAA,GACAA,GAAAb,EACAa,EAAA,IAAAA,EAAA,IACGA,EAAAb,IACHa,EAAAb,GAGAa,EAAAD,IAAAC,EAAAD,EAEA,IAAAmH,EACA,IAAArN,EAAA0D,oBACA2J,EAAAlO,KAAAoE,SAAA2C,EAAAC,GACAkH,EAAAjK,UAAApD,EAAAqD,cACG,CACH,GAAAiK,GAAAnH,EAAAD,CACAmH,GAAA,GAAArN,GAAAsN,EAAA3I,OACA,QAAAtE,GAAA,EAAmBA,EAAAiN,IAAcjN,EACjCgN,EAAAhN,GAAAlB,KAAAkB,EAAA6F,GAIA,MAAAmH,IAWArN,EAAAqD,UAAAkK,WAAA,SAAApN,EAAAgB,EAAAmJ,GACAnK,GAAA,EACAgB,GAAA,EACAmJ,GAAAT,EAAA1J,EAAAgB,EAAAhC,KAAAoB,OAKA,KAHA,GAAAuG,GAAA3H,KAAAgB,GACAqN,EAAA,EACAnN,EAAA,IACAA,EAAAc,IAAAqM,GAAA,MACA1G,GAAA3H,KAAAgB,EAAAE,GAAAmN,CAGA,OAAA1G,IAGA9G,EAAAqD,UAAAoK,WAAA,SAAAtN,EAAAgB,EAAAmJ,GACAnK,GAAA,EACAgB,GAAA,EACAmJ,GACAT,EAAA1J,EAAAgB,EAAAhC,KAAAoB,OAKA,KAFA,GAAAuG,GAAA3H,KAAAgB,IAAAgB,GACAqM,EAAA,EACArM,EAAA,IAAAqM,GAAA,MACA1G,GAAA3H,KAAAgB,IAAAgB,GAAAqM,CAGA,OAAA1G,IAGA9G,EAAAqD,UAAAqK,UAAA,SAAAvN,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACApB,KAAAgB,IAGAH,EAAAqD,UAAAsK,aAAA,SAAAxN,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACApB,KAAAgB,GAAAhB,KAAAgB,EAAA,OAGAH,EAAAqD,UAAAiE,aAAA,SAAAnH,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACApB,KAAAgB,IAAA,EAAAhB,KAAAgB,EAAA,IAGAH,EAAAqD,UAAAuK,aAAA,SAAAzN,EAAAmK,GAGA,MAFAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,SAEApB,KAAAgB,GACAhB,KAAAgB,EAAA,MACAhB,KAAAgB,EAAA,QACA,SAAAhB,KAAAgB,EAAA,IAGAH,EAAAqD,UAAAwK,aAAA,SAAA1N,EAAAmK,GAGA,MAFAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QAEA,SAAApB,KAAAgB,IACAhB,KAAAgB,EAAA,OACAhB,KAAAgB,EAAA,MACAhB,KAAAgB,EAAA,KAGAH,EAAAqD,UAAAyK,UAAA,SAAA3N,EAAAgB,EAAAmJ,GACAnK,GAAA,EACAgB,GAAA,EACAmJ,GAAAT,EAAA1J,EAAAgB,EAAAhC,KAAAoB,OAKA,KAHA,GAAAuG,GAAA3H,KAAAgB,GACAqN,EAAA,EACAnN,EAAA,IACAA,EAAAc,IAAAqM,GAAA,MACA1G,GAAA3H,KAAAgB,EAAAE,GAAAmN,CAMA,OAJAA,IAAA,IAEA1G,GAAA0G,IAAA1G,GAAAvF,KAAAK,IAAA,IAAAT,IAEA2F,GAGA9G,EAAAqD,UAAA0K,UAAA,SAAA5N,EAAAgB,EAAAmJ,GACAnK,GAAA,EACAgB,GAAA,EACAmJ,GAAAT,EAAA1J,EAAAgB,EAAAhC,KAAAoB,OAKA,KAHA,GAAAF,GAAAc,EACAqM,EAAA,EACA1G,EAAA3H,KAAAgB,IAAAE,GACAA,EAAA,IAAAmN,GAAA,MACA1G,GAAA3H,KAAAgB,IAAAE,GAAAmN,CAMA,OAJAA,IAAA,IAEA1G,GAAA0G,IAAA1G,GAAAvF,KAAAK,IAAA,IAAAT,IAEA2F,GAGA9G,EAAAqD,UAAA2K,SAAA,SAAA7N,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACA,IAAApB,KAAAgB,IACA,IAAAhB,KAAAgB,GAAA,MADAhB,KAAAgB,IAIAH,EAAAqD,UAAA4K,YAAA,SAAA9N,EAAAmK,GACAA,GAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,OACA,IAAAuG,GAAA3H,KAAAgB,GAAAhB,KAAAgB,EAAA,KACA,cAAA2G,EAAA,WAAAA,KAGA9G,EAAAqD,UAAA6K,YAAA,SAAA/N,EAAAmK,GACAA,GAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,OACA,IAAAuG,GAAA3H,KAAAgB,EAAA,GAAAhB,KAAAgB,IAAA,CACA,cAAA2G,EAAA,WAAAA,KAGA9G,EAAAqD,UAAA8K,YAAA,SAAAhO,EAAAmK,GAGA,MAFAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QAEApB,KAAAgB,GACAhB,KAAAgB,EAAA,MACAhB,KAAAgB,EAAA,OACAhB,KAAAgB,EAAA,QAGAH,EAAAqD,UAAA+K,YAAA,SAAAjO,EAAAmK,GAGA,MAFAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QAEApB,KAAAgB,IAAA,GACAhB,KAAAgB,EAAA,OACAhB,KAAAgB,EAAA,MACAhB,KAAAgB,EAAA,IAGAH,EAAAqD,UAAAgL,YAAA,SAAAlO,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACAgK,EAAAnD,KAAAjI,KAAAgB,GAAA,SAGAH,EAAAqD,UAAAiL,YAAA,SAAAnO,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACAgK,EAAAnD,KAAAjI,KAAAgB,GAAA,SAGAH,EAAAqD,UAAAkL,aAAA,SAAApO,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACAgK,EAAAnD,KAAAjI,KAAAgB,GAAA,SAGAH,EAAAqD,UAAAmL,aAAA,SAAArO,EAAAmK,GAEA,MADAA,IAAAT,EAAA1J,EAAA,EAAAhB,KAAAoB,QACAgK,EAAAnD,KAAAjI,KAAAgB,GAAA,SASAH,EAAAqD,UAAAoL,YAAA,SAAA5N,EAAAV,EAAAgB,EAAAmJ,GAIA,GAHAzJ,KACAV,GAAA,EACAgB,GAAA,GACAmJ,EAAA,CACA,GAAAoE,GAAAnN,KAAAK,IAAA,IAAAT,GAAA,CACA4I,GAAA5K,KAAA0B,EAAAV,EAAAgB,EAAAuN,EAAA,GAGA,GAAAlB,GAAA,EACAnN,EAAA,CAEA,KADAlB,KAAAgB,GAAA,IAAAU,IACAR,EAAAc,IAAAqM,GAAA,MACArO,KAAAgB,EAAAE,GAAAQ,EAAA2M,EAAA,GAGA,OAAArN,GAAAgB,GAGAnB,EAAAqD,UAAAsL,YAAA,SAAA9N,EAAAV,EAAAgB,EAAAmJ,GAIA,GAHAzJ,KACAV,GAAA,EACAgB,GAAA,GACAmJ,EAAA,CACA,GAAAoE,GAAAnN,KAAAK,IAAA,IAAAT,GAAA,CACA4I,GAAA5K,KAAA0B,EAAAV,EAAAgB,EAAAuN,EAAA,GAGA,GAAArO,GAAAc,EAAA,EACAqM,EAAA,CAEA,KADArO,KAAAgB,EAAAE,GAAA,IAAAQ,IACAR,GAAA,IAAAmN,GAAA,MACArO,KAAAgB,EAAAE,GAAAQ,EAAA2M,EAAA,GAGA,OAAArN,GAAAgB,GAGAnB,EAAAqD,UAAAuL,WAAA,SAAA/N,EAAAV,EAAAmK,GAMA,MALAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,SACAH,EAAA0D,sBAAA7C,EAAAU,KAAAC,MAAAX,IACA1B,KAAAgB,GAAA,IAAAU,EACAV,EAAA,GAWAH,EAAAqD,UAAAwL,cAAA,SAAAhO,EAAAV,EAAAmK,GAUA,MATAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,WACAH,EAAA0D,qBACAvE,KAAAgB,GAAA,IAAAU,EACA1B,KAAAgB,EAAA,GAAAU,IAAA,GAEAoJ,EAAA9K,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAGAH,EAAAqD,UAAAyL,cAAA,SAAAjO,EAAAV,EAAAmK,GAUA,MATAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,WACAH,EAAA0D,qBACAvE,KAAAgB,GAAAU,IAAA,EACA1B,KAAAgB,EAAA,OAAAU,GAEAoJ,EAAA9K,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAUAH,EAAAqD,UAAA0L,cAAA,SAAAlO,EAAAV,EAAAmK,GAYA,MAXAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,gBACAH,EAAA0D,qBACAvE,KAAAgB,EAAA,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,EACA1B,KAAAgB,GAAA,IAAAU,GAEAsJ,EAAAhL,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAGAH,EAAAqD,UAAA2L,cAAA,SAAAnO,EAAAV,EAAAmK,GAYA,MAXAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,gBACAH,EAAA0D,qBACAvE,KAAAgB,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,EACA1B,KAAAgB,EAAA,OAAAU,GAEAsJ,EAAAhL,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAGAH,EAAAqD,UAAA4L,WAAA,SAAApO,EAAAV,EAAAgB,EAAAmJ,GAGA,GAFAzJ,KACAV,GAAA,GACAmK,EAAA,CACA,GAAA4E,GAAA3N,KAAAK,IAAA,IAAAT,EAAA,EAEA4I,GAAA5K,KAAA0B,EAAAV,EAAAgB,EAAA+N,EAAA,GAAAA,GAGA,GAAA7O,GAAA,EACAmN,EAAA,EACA2B,EAAA,CAEA,KADAhQ,KAAAgB,GAAA,IAAAU,IACAR,EAAAc,IAAAqM,GAAA,MACA3M,EAAA,OAAAsO,GAAA,IAAAhQ,KAAAgB,EAAAE,EAAA,KACA8O,EAAA,GAEAhQ,KAAAgB,EAAAE,IAAAQ,EAAA2M,GAAA,GAAA2B,EAAA,GAGA,OAAAhP,GAAAgB,GAGAnB,EAAAqD,UAAA+L,WAAA,SAAAvO,EAAAV,EAAAgB,EAAAmJ,GAGA,GAFAzJ,KACAV,GAAA,GACAmK,EAAA,CACA,GAAA4E,GAAA3N,KAAAK,IAAA,IAAAT,EAAA,EAEA4I,GAAA5K,KAAA0B,EAAAV,EAAAgB,EAAA+N,EAAA,GAAAA,GAGA,GAAA7O,GAAAc,EAAA,EACAqM,EAAA,EACA2B,EAAA,CAEA,KADAhQ,KAAAgB,EAAAE,GAAA,IAAAQ,IACAR,GAAA,IAAAmN,GAAA,MACA3M,EAAA,OAAAsO,GAAA,IAAAhQ,KAAAgB,EAAAE,EAAA,KACA8O,EAAA,GAEAhQ,KAAAgB,EAAAE,IAAAQ,EAAA2M,GAAA,GAAA2B,EAAA,GAGA,OAAAhP,GAAAgB,GAGAnB,EAAAqD,UAAAgM,UAAA,SAAAxO,EAAAV,EAAAmK,GAOA,MANAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,YACAH,EAAA0D,sBAAA7C,EAAAU,KAAAC,MAAAX,IACAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GACA1B,KAAAgB,GAAA,IAAAU,EACAV,EAAA,GAGAH,EAAAqD,UAAAiM,aAAA,SAAAzO,EAAAV,EAAAmK,GAUA,MATAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,gBACAH,EAAA0D,qBACAvE,KAAAgB,GAAA,IAAAU,EACA1B,KAAAgB,EAAA,GAAAU,IAAA,GAEAoJ,EAAA9K,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAGAH,EAAAqD,UAAAkM,aAAA,SAAA1O,EAAAV,EAAAmK,GAUA,MATAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,gBACAH,EAAA0D,qBACAvE,KAAAgB,GAAAU,IAAA,EACA1B,KAAAgB,EAAA,OAAAU,GAEAoJ,EAAA9K,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAGAH,EAAAqD,UAAAmM,aAAA,SAAA3O,EAAAV,EAAAmK,GAYA,MAXAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,0BACAH,EAAA0D,qBACAvE,KAAAgB,GAAA,IAAAU,EACA1B,KAAAgB,EAAA,GAAAU,IAAA,EACA1B,KAAAgB,EAAA,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,IAEAsJ,EAAAhL,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAGAH,EAAAqD,UAAAoM,aAAA,SAAA5O,EAAAV,EAAAmK,GAaA,MAZAzJ,MACAV,GAAA,EACAmK,GAAAP,EAAA5K,KAAA0B,EAAAV,EAAA,0BACAU,EAAA,IAAAA,EAAA,WAAAA,EAAA,GACAb,EAAA0D,qBACAvE,KAAAgB,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,GACA1B,KAAAgB,EAAA,GAAAU,IAAA,EACA1B,KAAAgB,EAAA,OAAAU,GAEAsJ,EAAAhL,KAAA0B,EAAAV,GAAA,GAEAA,EAAA,GAgBAH,EAAAqD,UAAAqM,aAAA,SAAA7O,EAAAV,EAAAmK,GACA,MAAAD,GAAAlL,KAAA0B,EAAAV,GAAA,EAAAmK,IAGAtK,EAAAqD,UAAAsM,aAAA,SAAA9O,EAAAV,EAAAmK,GACA,MAAAD,GAAAlL,KAAA0B,EAAAV,GAAA,EAAAmK,IAWAtK,EAAAqD,UAAAuM,cAAA,SAAA/O,EAAAV,EAAAmK,GACA,MAAAE,GAAArL,KAAA0B,EAAAV,GAAA,EAAAmK,IAGAtK,EAAAqD,UAAAL,cAAA,SAAAnC,EAAAV,EAAAmK,GACA,MAAAE,GAAArL,KAAA0B,EAAAV,GAAA,EAAAmK,IAIAtK,EAAAqD,UAAAR,KAAA,SAAAgK,EAAAgD,EAAA3J,EAAAC,GAQA,GAPAD,MAAA,GACAC,GAAA,IAAAA,MAAAhH,KAAAoB,QACAsP,GAAAhD,EAAAtM,SAAAsP,EAAAhD,EAAAtM,QACAsP,MAAA,GACA1J,EAAA,GAAAA,EAAAD,IAAAC,EAAAD,GAGAC,IAAAD,EAAA,QACA,QAAA2G,EAAAtM,QAAA,IAAApB,KAAAoB,OAAA,QAGA,IAAAsP,EAAA,EACA,SAAAhM,YAAA,4BAEA,IAAAqC,EAAA,GAAAA,GAAA/G,KAAAoB,OAAA,SAAAsD,YAAA,4BACA,IAAAsC,EAAA,WAAAtC,YAAA,0BAGAsC,GAAAhH,KAAAoB,SAAA4F,EAAAhH,KAAAoB,QACAsM,EAAAtM,OAAAsP,EAAA1J,EAAAD,IACAC,EAAA0G,EAAAtM,OAAAsP,EAAA3J,EAGA,IACA7F,GADAiF,EAAAa,EAAAD,CAGA,IAAA/G,OAAA0N,GAAA3G,EAAA2J,KAAA1J,EAEA,IAAA9F,EAAAiF,EAAA,EAAqBjF,GAAA,IAAQA,EAC7BwM,EAAAxM,EAAAwP,GAAA1Q,KAAAkB,EAAA6F,OAEG,IAAAZ,EAAA,MAAAtF,EAAA0D,oBAEH,IAAArD,EAAA,EAAeA,EAAAiF,IAASjF,EACxBwM,EAAAxM,EAAAwP,GAAA1Q,KAAAkB,EAAA6F,OAGA/C,YAAAE,UAAAyM,IAAApQ,KACAmN,EACA1N,KAAAoE,SAAA2C,IAAAZ,GACAuK,EAIA,OAAAvK,IAOAtF,EAAAqD,UAAAoB,KAAA,SAAAqC,EAAAZ,EAAAC,EAAAzB,GAEA,mBAAAoC,GAAA,CASA,GARA,gBAAAZ,IACAxB,EAAAwB,EACAA,EAAA,EACAC,EAAAhH,KAAAoB,QACK,gBAAA4F,KACLzB,EAAAyB,EACAA,EAAAhH,KAAAoB,QAEA,IAAAuG,EAAAvG,OAAA,CACA,GAAAwP,GAAAjJ,EAAAtG,WAAA,EACAuP,GAAA,MACAjJ,EAAAiJ,GAGA,GAAApL,SAAAD,GAAA,gBAAAA,GACA,SAAAR,WAAA,4BAEA,oBAAAQ,KAAA1E,EAAA8E,WAAAJ,GACA,SAAAR,WAAA,qBAAAQ,OAEG,gBAAAoC,KACHA,GAAA,IAIA,IAAAZ,EAAA,GAAA/G,KAAAoB,OAAA2F,GAAA/G,KAAAoB,OAAA4F,EACA,SAAAtC,YAAA,qBAGA,IAAAsC,GAAAD,EACA,MAAA/G,KAGA+G,MAAA,EACAC,EAAAxB,SAAAwB,EAAAhH,KAAAoB,OAAA4F,IAAA,EAEAW,MAAA,EAEA,IAAAzG,EACA,oBAAAyG,GACA,IAAAzG,EAAA6F,EAAmB7F,EAAA8F,IAAS9F,EAC5BlB,KAAAkB,GAAAyG,MAEG,CACH,GAAAnG,GAAAX,EAAAqF,SAAAyB,GACAA,EACAhB,EAAA,GAAA9F,GAAA8G,EAAApC,GAAAgB,YACAJ,EAAA3E,EAAAJ,MACA,KAAAF,EAAA,EAAeA,EAAA8F,EAAAD,IAAiB7F,EAChClB,KAAAkB,EAAA6F,GAAAvF,EAAAN,EAAAiF,GAIA,MAAAnG,MAMA,IAAAyL,IAAA,uBJ6hB8BlL,KAAKX,EAAU,WAAa,MAAOI,WAI3D,SAASH,EAAQD,GK9oEvB,YAmBA,SAAAiR,GAAAC,GACA,GAAA3K,GAAA2K,EAAA1P,MACA,IAAA+E,EAAA,IACA,SAAAjE,OAAA,iDAQA,aAAA4O,EAAA3K,EAAA,WAAA2K,EAAA3K,EAAA,OAGA,QAAAnE,GAAA8O,GAEA,SAAAA,EAAA1P,OAAA,EAAAyP,EAAAC,GAGA,QAAA/E,GAAA+E,GACA,GAAA5P,GAAAyC,EAAAxC,EAAA4P,EAAAC,EAAAjQ,EACAoF,EAAA2K,EAAA1P,MACA4P,GAAAH,EAAAC,GAEA/P,EAAA,GAAAkQ,GAAA,EAAA9K,EAAA,EAAA6K,GAGA7P,EAAA6P,EAAA,EAAA7K,EAAA,EAAAA,CAEA,IAAA+K,GAAA,CAEA,KAAAhQ,EAAA,EAAAyC,EAAA,EAAoBzC,EAAAC,EAAOD,GAAA,EAAAyC,GAAA,EAC3BoN,EAAAI,EAAAL,EAAAzP,WAAAH,KAAA,GAAAiQ,EAAAL,EAAAzP,WAAAH,EAAA,QAAAiQ,EAAAL,EAAAzP,WAAAH,EAAA,OAAAiQ,EAAAL,EAAAzP,WAAAH,EAAA,IACAH,EAAAmQ,KAAAH,GAAA,OACAhQ,EAAAmQ,KAAAH,GAAA,MACAhQ,EAAAmQ,KAAA,IAAAH,CAYA,OATA,KAAAC,GACAD,EAAAI,EAAAL,EAAAzP,WAAAH,KAAA,EAAAiQ,EAAAL,EAAAzP,WAAAH,EAAA,OACAH,EAAAmQ,KAAA,IAAAH,GACG,IAAAC,IACHD,EAAAI,EAAAL,EAAAzP,WAAAH,KAAA,GAAAiQ,EAAAL,EAAAzP,WAAAH,EAAA,OAAAiQ,EAAAL,EAAAzP,WAAAH,EAAA,OACAH,EAAAmQ,KAAAH,GAAA,MACAhQ,EAAAmQ,KAAA,IAAAH,GAGAhQ,EAGA,QAAAqQ,GAAAC,GACA,MAAAC,GAAAD,GAAA,OAAAC,EAAAD,GAAA,OAAAC,EAAAD,GAAA,MAAAC,EAAA,GAAAD,GAGA,QAAAE,GAAAC,EAAAzK,EAAAC,GAGA,OAFA+J,GACAU,KACAvQ,EAAA6F,EAAqB7F,EAAA8F,EAAS9F,GAAA,EAC9B6P,GAAAS,EAAAtQ,IAAA,KAAAsQ,EAAAtQ,EAAA,OAAAsQ,EAAAtQ,EAAA,GACAuQ,EAAAxP,KAAAmP,EAAAL,GAEA,OAAAU,GAAAhE,KAAA,IAGA,QAAAjE,GAAAgI,GASA,OARAT,GACA5K,EAAAqL,EAAApQ,OACAsQ,EAAAvL,EAAA,EACAsL,EAAA,GACAE,KACAC,EAAA,MAGA1Q,EAAA,EAAA2Q,EAAA1L,EAAAuL,EAA0CxQ,EAAA2Q,EAAU3Q,GAAA0Q,EACpDD,EAAA1P,KAAAsP,EAAAC,EAAAtQ,IAAA0Q,EAAAC,IAAA3Q,EAAA0Q,GAmBA,OAfA,KAAAF,GACAX,EAAAS,EAAArL,EAAA,GACAsL,GAAAH,EAAAP,GAAA,GACAU,GAAAH,EAAAP,GAAA,MACAU,GAAA,MACG,IAAAC,IACHX,GAAAS,EAAArL,EAAA,OAAAqL,EAAArL,EAAA,GACAsL,GAAAH,EAAAP,GAAA,IACAU,GAAAH,EAAAP,GAAA,MACAU,GAAAH,EAAAP,GAAA,MACAU,GAAA,KAGAE,EAAA1P,KAAAwP,GAEAE,EAAAlE,KAAA,IA9GA7N,EAAAoC,aACApC,EAAAmM,cACAnM,EAAA4J,eAOA,QALA8H,MACAH,KACAF,EAAA,mBAAAjN,uBAAAtB,MAEAkO,EAAA,mEACA1P,EAAA,EAAAiF,EAAAyK,EAAAxP,OAAkCF,EAAAiF,IAASjF,EAC3CoQ,EAAApQ,GAAA0P,EAAA1P,GACAiQ,EAAAP,EAAAvP,WAAAH,KAGAiQ,GAAA,IAAA9P,WAAA,OACA8P,EAAA,IAAA9P,WAAA,QLqvEM,SAASxB,EAAQD,GMtwEvBA,EAAAqI,KAAA,SAAA7B,EAAApF,EAAA8Q,EAAAC,EAAAC,GACA,GAAA3N,GAAA7D,EACAyR,EAAA,EAAAD,EAAAD,EAAA,EACAG,GAAA,GAAAD,GAAA,EACAE,EAAAD,GAAA,EACAE,GAAA,EACAlR,EAAA4Q,EAAAE,EAAA,IACAK,EAAAP,GAAA,IACAQ,EAAAlM,EAAApF,EAAAE,EAOA,KALAA,GAAAmR,EAEAhO,EAAAiO,GAAA,IAAAF,GAAA,EACAE,KAAAF,EACAA,GAAAH,EACQG,EAAA,EAAW/N,EAAA,IAAAA,EAAA+B,EAAApF,EAAAE,MAAAmR,EAAAD,GAAA,GAKnB,IAHA5R,EAAA6D,GAAA,IAAA+N,GAAA,EACA/N,KAAA+N,EACAA,GAAAL,EACQK,EAAA,EAAW5R,EAAA,IAAAA,EAAA4F,EAAApF,EAAAE,MAAAmR,EAAAD,GAAA,GAEnB,OAAA/N,EACAA,EAAA,EAAA8N,MACG,IAAA9N,IAAA6N,EACH,MAAA1R,GAAA+R,KAAAD,GAAA,MAAA1G,IAEApL,IAAA4B,KAAAK,IAAA,EAAAsP,GACA1N,GAAA8N,EAEA,OAAAG,GAAA,KAAA9R,EAAA4B,KAAAK,IAAA,EAAA4B,EAAA0N,IAGAnS,EAAAgE,MAAA,SAAAwC,EAAA1E,EAAAV,EAAA8Q,EAAAC,EAAAC,GACA,GAAA3N,GAAA7D,EAAAC,EACAwR,EAAA,EAAAD,EAAAD,EAAA,EACAG,GAAA,GAAAD,GAAA,EACAE,EAAAD,GAAA,EACAM,EAAA,KAAAT,EAAA3P,KAAAK,IAAA,OAAAL,KAAAK,IAAA,SACAvB,EAAA4Q,EAAA,EAAAE,EAAA,EACAK,EAAAP,EAAA,KACAQ,EAAA5Q,EAAA,OAAAA,GAAA,EAAAA,EAAA,KAmCA,KAjCAA,EAAAU,KAAAG,IAAAb,GAEAmG,MAAAnG,QAAAkK,KACApL,EAAAqH,MAAAnG,GAAA,IACA2C,EAAA6N,IAEA7N,EAAAjC,KAAAC,MAAAD,KAAAqQ,IAAA/Q,GAAAU,KAAAsQ,KACAhR,GAAAjB,EAAA2B,KAAAK,IAAA,GAAA4B,IAAA,IACAA,IACA5D,GAAA,GAGAiB,GADA2C,EAAA8N,GAAA,EACAK,EAAA/R,EAEA+R,EAAApQ,KAAAK,IAAA,IAAA0P,GAEAzQ,EAAAjB,GAAA,IACA4D,IACA5D,GAAA,GAGA4D,EAAA8N,GAAAD,GACA1R,EAAA,EACA6D,EAAA6N,GACK7N,EAAA8N,GAAA,GACL3R,GAAAkB,EAAAjB,EAAA,GAAA2B,KAAAK,IAAA,EAAAsP,GACA1N,GAAA8N,IAEA3R,EAAAkB,EAAAU,KAAAK,IAAA,EAAA0P,EAAA,GAAA/P,KAAAK,IAAA,EAAAsP,GACA1N,EAAA,IAIQ0N,GAAA,EAAW3L,EAAApF,EAAAE,GAAA,IAAAV,EAAAU,GAAAmR,EAAA7R,GAAA,IAAAuR,GAAA,GAInB,IAFA1N,KAAA0N,EAAAvR,EACAyR,GAAAF,EACQE,EAAA,EAAU7L,EAAApF,EAAAE,GAAA,IAAAmD,EAAAnD,GAAAmR,EAAAhO,GAAA,IAAA4N,GAAA,GAElB7L,EAAApF,EAAAE,EAAAmR,IAAA,IAAAC,IN8wEM,SAASzS,EAAQD,GOh2EvB,GAAA2G,MAAiBA,QAEjB1G,GAAAD,QAAA8C,MAAAC,SAAA,SAAA5B,GACA,wBAAAwF,EAAAhG,KAAAQ,KPw2EM,SAASlB,EAAQD,GQ32EvB,YAEA,SAAA+S,GAAAvM,GACApG,KAAAgB,OAAA,EACAhB,KAAAoG,SA0NA,QAAAxF,GAAAwF,GACA,GAAAwM,GAAA,GAAAD,GAAAvM,GACA1E,EAAAkR,EAAAC,OACA,IAAAD,EAAA5R,SAAAoF,EAAAhF,OACA,SAAAc,OAAAkE,EAAAhF,OAAAwR,EAAA5R,OAAA,kBAEA,OAAAU,GA7NAiR,EAAAzO,UAAA6B,MAAA,SAAA3E,GAEA,OADAM,GAAA,GAAAgB,OAAAtB,GACAF,EAAA,EAAiBA,EAAAE,EAAYF,IAC7BQ,EAAAR,GAAAlB,KAAA6S,OAEA,OAAAnR,IAGAiR,EAAAzO,UAAA4O,IAAA,SAAA1R,GAEA,OADA6B,GAAA,GAAAvB,KACAR,EAAA,EAAiBA,EAAAE,EAAYF,IAC7B+B,EAAAjD,KAAA6S,QACAnR,EAAAuB,GAAAjD,KAAA6S,OAEA,OAAAnR,IAGAiR,EAAAzO,UAAAjD,IAAA,SAAAG,GACA,GAAAM,GAAA1B,KAAAoG,OAAAG,SAAA,OAAAvG,KAAAgB,OAAAhB,KAAAgB,OAAAI,EAEA,OADApB,MAAAgB,QAAAI,EACAM,GAGAiR,EAAAzO,UAAAnB,IAAA,SAAA3B,GACA,GAAAM,GAAA1B,KAAAoG,OAAAP,MAAA7F,KAAAgB,OAAAhB,KAAAgB,OAAAI,EAEA,OADApB,MAAAgB,QAAAI,EACAM,GAGAiR,EAAAzO,UAAA2O,MAAA,WACA,GACAnR,GADAqR,EAAA/S,KAAAoG,OAAApG,KAAAgB,UACAI,EAAA,EAAAO,EAAA,EAAAC,EAAA,EAAAC,EAAA,CAEA,IAAAkR,EAAA,IAEA,MAAAA,GAAA,IACAA,EAGAA,EAAA,IACA/S,KAAA8S,IAAA,GAAAC,GAGAA,EAAA,IACA/S,KAAA+F,MAAA,GAAAgN,GAGA/S,KAAAiB,IAAA,GAAA8R,EAIA,IAAAA,EAAA,IACA,WAAAA,EAAA,KAGA,QAAAA,GAEA,SACA,WAEA,UACA,QAEA,UACA,QAGA,UAGA,MAFA3R,GAAApB,KAAAoG,OAAAmI,UAAAvO,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA+C,IAAA3B,EACA,UAGA,MAFAA,GAAApB,KAAAoG,OAAA+B,aAAAnI,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA+C,IAAA3B,EACA,UAGA,MAFAA,GAAApB,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA+C,IAAA3B,EAGA,UAIA,MAHAA,GAAApB,KAAAoG,OAAAmI,UAAAvO,KAAAgB,QACAW,EAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,OAAA,GACAhB,KAAAgB,QAAA,GACAW,EAAA3B,KAAA+C,IAAA3B,GACA,UAIA,MAHAA,GAAApB,KAAAoG,OAAA+B,aAAAnI,KAAAgB,QACAW,EAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,OAAA,GACAhB,KAAAgB,QAAA,GACAW,EAAA3B,KAAA+C,IAAA3B,GACA,UAIA,MAHAA,GAAApB,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QACAW,EAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,OAAA,GACAhB,KAAAgB,QAAA,GACAW,EAAA3B,KAAA+C,IAAA3B,GAGA,UAGA,MAFAM,GAAA1B,KAAAoG,OAAA+I,YAAAnP,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAGA,MAFAA,GAAA1B,KAAAoG,OAAAiJ,aAAArP,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CAGA,UAGA,MAFAA,GAAA1B,KAAAoG,OAAAmI,UAAAvO,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAGA,MAFAA,GAAA1B,KAAAoG,OAAA+B,aAAAnI,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAGA,MAFAA,GAAA1B,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAIA,MAHAE,GAAA5B,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QAAAoB,KAAAK,IAAA,MACAZ,EAAA7B,KAAAoG,OAAAsI,aAAA1O,KAAAgB,OAAA,GACAhB,KAAAgB,QAAA,EACAY,EAAAC,CAGA,UAGA,MAFAH,GAAA1B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAGA,MAFAA,GAAA1B,KAAAoG,OAAA2I,YAAA/O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAGA,MAFAA,GAAA1B,KAAAoG,OAAA6I,YAAAjP,KAAAgB,QACAhB,KAAAgB,QAAA,EACAU,CACA,UAIA,MAHAE,GAAA5B,KAAAoG,OAAA6I,YAAAjP,KAAAgB,QAAAoB,KAAAK,IAAA,MACAZ,EAAA7B,KAAAoG,OAAAsI,aAAA1O,KAAAgB,OAAA,GACAhB,KAAAgB,QAAA,EACAY,EAAAC,CAGA,UAGA,MAFAF,GAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,QACAhB,KAAAgB,QAAA,EACA,IAAAW,OACA3B,KAAAgB,QAAA,IAGAW,EAAA3B,KAAA+C,IAAA,GACA,UAGA,MAFApB,GAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,QACAhB,KAAAgB,QAAA,GACAW,EAAA3B,KAAA+C,IAAA,GACA,UAGA,MAFApB,GAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,QACAhB,KAAAgB,QAAA,GACAW,EAAA3B,KAAA+C,IAAA,GACA,UAGA,MAFApB,GAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,QACAhB,KAAAgB,QAAA,EACA,IAAAW,GACAC,EAAA5B,KAAAoG,OAAA6I,YAAAjP,KAAAgB,QAAAoB,KAAAK,IAAA,MACAZ,EAAA7B,KAAAoG,OAAAsI,aAAA1O,KAAAgB,OAAA,GACAhB,KAAAgB,QAAA,EACA,GAAA4B,MAAAhB,EAAAC,KAEAF,EAAA3B,KAAA+C,IAAA,GACA,UAGA,MAFApB,GAAA3B,KAAAoG,OAAAyI,SAAA7O,KAAAgB,QACAhB,KAAAgB,QAAA,GACAW,EAAA3B,KAAA+C,IAAA,IAGA,UAGA,MAFA3B,GAAApB,KAAAoG,OAAAmI,UAAAvO,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAAiB,IAAAG,EACA,UAGA,MAFAA,GAAApB,KAAAoG,OAAA+B,aAAAnI,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAAiB,IAAAG,EACA,UAGA,MAFAA,GAAApB,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAAiB,IAAAG,EAGA,UAGA,MAFAA,GAAApB,KAAAoG,OAAA+B,aAAAnI,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA+F,MAAA3E,EACA,UAGA,MAFAA,GAAApB,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA+F,MAAA3E,EAGA,UAGA,MAFAA,GAAApB,KAAAoG,OAAA+B,aAAAnI,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA8S,IAAA1R,EACA,UAGA,MAFAA,GAAApB,KAAAoG,OAAAsI,aAAA1O,KAAAgB,QACAhB,KAAAgB,QAAA,EACAhB,KAAA8S,IAAA1R,GAGA,SAAAc,OAAA,oBAYArC,EAAAD,QAAAgB","file":"notepack.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"notepack\"] = factory();\n\telse\n\t\troot[\"notepack\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"notepack\"] = factory();\n\telse\n\t\troot[\"notepack\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports.encode = __webpack_require__(1);\n\texports.decode = __webpack_require__(6);\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Buffer) {'use strict';\n\t\n\tvar MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\n\tvar MICRO_OPT_LEN = 32;\n\t\n\t// Faster for short strings than buffer.write\n\tfunction utf8Write(arr, offset, str) {\n\t var c = 0;\n\t for (var i = 0, l = str.length; i < l; i++) {\n\t c = str.charCodeAt(i);\n\t if (c < 0x80) {\n\t arr[offset++] = c;\n\t }\n\t else if (c < 0x800) {\n\t arr[offset++] = 0xc0 | (c >> 6);\n\t arr[offset++] = 0x80 | (c & 0x3f);\n\t }\n\t else if (c < 0xd800 || c >= 0xe000) {\n\t arr[offset++] = 0xe0 | (c >> 12);\n\t arr[offset++] = 0x80 | (c >> 6) & 0x3f;\n\t arr[offset++] = 0x80 | (c & 0x3f);\n\t }\n\t else {\n\t i++;\n\t c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n\t arr[offset++] = 0xf0 | (c >> 18);\n\t arr[offset++] = 0x80 | (c >> 12) & 0x3f;\n\t arr[offset++] = 0x80 | (c >> 6) & 0x3f;\n\t arr[offset++] = 0x80 | (c & 0x3f);\n\t }\n\t }\n\t}\n\t\n\t// Faster for short strings than Buffer.byteLength\n\tfunction utf8Length(str) {\n\t var c = 0, length = 0;\n\t for (var i = 0, l = str.length; i < l; i++) {\n\t c = str.charCodeAt(i);\n\t if (c < 0x80) {\n\t length += 1;\n\t }\n\t else if (c < 0x800) {\n\t length += 2;\n\t }\n\t else if (c < 0xd800 || c >= 0xe000) {\n\t length += 3;\n\t }\n\t else {\n\t i++;\n\t length += 4;\n\t }\n\t }\n\t return length;\n\t}\n\t\n\tfunction _encode(bytes, defers, value) {\n\t var type = typeof value, hi = 0, lo = 0, length = 0, size = 0;\n\t\n\t if (type === 'string') {\n\t if (value.length > MICRO_OPT_LEN) {\n\t length = Buffer.byteLength(value);\n\t } else {\n\t length = utf8Length(value);\n\t }\n\t\n\t // fixstr\n\t if (length < 0x20) {\n\t bytes.push(length | 0xa0);\n\t size = 1;\n\t }\n\t // str 8\n\t else if (length < 0x100) {\n\t bytes.push(0xd9, length);\n\t size = 2;\n\t }\n\t // str 16\n\t else if (length < 0x10000) {\n\t bytes.push(0xda, length >> 8, length);\n\t size = 3;\n\t }\n\t // str 32\n\t else if (length < 0x100000000) {\n\t bytes.push(0xdb, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('String too long');\n\t }\n\t defers.push({ str: value, length: length, offset: bytes.length });\n\t return size + length;\n\t }\n\t if (type === 'number') {\n\t if (!isFinite(value)) {\n\t throw new Error('Number is not finite');\n\t }\n\t\n\t // TODO: encode to float 32?\n\t\n\t // float 64\n\t if (Math.floor(value) !== value) {\n\t bytes.push(0xcb);\n\t defers.push({ float: value, length: 8, offset: bytes.length });\n\t return 9;\n\t }\n\t\n\t if (Math.abs(value) > MAX_SAFE_INTEGER) {\n\t throw new Error('Integer is unsafe');\n\t }\n\t\n\t if (value >= 0) {\n\t // positive fixnum\n\t if (value < 0x80) {\n\t bytes.push(value);\n\t return 1;\n\t }\n\t // uint 8\n\t if (value < 0x100) {\n\t bytes.push(0xcc, value);\n\t return 2;\n\t }\n\t // uint 16\n\t if (value < 0x10000) {\n\t bytes.push(0xcd, value >> 8, value);\n\t return 3;\n\t }\n\t // uint 32\n\t if (value < 0x100000000) {\n\t bytes.push(0xce, value >> 24, value >> 16, value >> 8, value);\n\t return 5;\n\t }\n\t // uint 64\n\t hi = (value / Math.pow(2, 32)) >> 0;\n\t lo = value >>> 0;\n\t bytes.push(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n\t return 9;\n\t } else {\n\t // negative fixnum\n\t if (value >= -0x20) {\n\t bytes.push(value);\n\t return 1;\n\t }\n\t // int 8\n\t if (value >= -0x80) {\n\t bytes.push(0xd0, value);\n\t return 2;\n\t }\n\t // int 16\n\t if (value >= -0x8000) {\n\t bytes.push(0xd1, value >> 8, value);\n\t return 3;\n\t }\n\t // int 32\n\t if (value >= -0x80000000) {\n\t bytes.push(0xd2, value >> 24, value >> 16, value >> 8, value);\n\t return 5;\n\t }\n\t // int 64\n\t hi = Math.floor(value / Math.pow(2, 32));\n\t lo = value >>> 0;\n\t bytes.push(0xd3, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n\t return 9;\n\t }\n\t }\n\t if (type === 'object') {\n\t // nil\n\t if (value === null) {\n\t bytes.push(0xc0);\n\t return 1;\n\t }\n\t\n\t if (Array.isArray(value)) {\n\t length = value.length;\n\t\n\t // fixarray\n\t if (length < 0x10) {\n\t bytes.push(length | 0x90);\n\t size = 1;\n\t }\n\t // array 16\n\t else if (length < 0x10000) {\n\t bytes.push(0xdc, length >> 8, length);\n\t size = 3;\n\t }\n\t // array 32\n\t else if (length < 0x100000000) {\n\t bytes.push(0xdd, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('Array too large');\n\t }\n\t for (i = 0; i < length; i++) {\n\t size += _encode(bytes, defers, value[i]);\n\t }\n\t return size;\n\t }\n\t\n\t // fixext 8 / Date\n\t if (value instanceof Date) {\n\t var time = value.getTime();\n\t hi = Math.floor(time / Math.pow(2, 32));\n\t lo = time >>> 0;\n\t bytes.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n\t return 10;\n\t }\n\t\n\t if (value instanceof Buffer) {\n\t length = value.length;\n\t\n\t // bin 8\n\t if (length < 0x100) {\n\t bytes.push(0xc4, length);\n\t size = 2;\n\t } else\n\t // bin 16\n\t if (length < 0x10000) {\n\t bytes.push(0xc5, length >> 8, length);\n\t size = 3;\n\t } else\n\t // bin 32\n\t if (length < 0x100000000) {\n\t bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('Buffer too large');\n\t }\n\t defers.push({ bin: value, length: length, offset: bytes.length });\n\t return size + length;\n\t }\n\t\n\t var keys = [], key = '';\n\t\n\t var allKeys = Object.keys(value);\n\t for (var i = 0, l = allKeys.length; i < l; i++) {\n\t key = allKeys[i];\n\t if (typeof value[key] !== 'function') {\n\t keys.push(key);\n\t }\n\t }\n\t length = keys.length;\n\t\n\t // fixmap\n\t if (length < 0x10) {\n\t bytes.push(length | 0x80);\n\t size = 1;\n\t }\n\t // map 16\n\t else if (length < 0x10000) {\n\t bytes.push(0xde, length >> 8, length);\n\t size = 3;\n\t }\n\t // map 32\n\t else if (length < 0x100000000) {\n\t bytes.push(0xdf, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('Object too large');\n\t }\n\t\n\t for (var i = 0; i < length; i++) {\n\t key = keys[i];\n\t size += _encode(bytes, defers, key);\n\t size += _encode(bytes, defers, value[key]);\n\t }\n\t return size;\n\t }\n\t // false/true\n\t if (type === 'boolean') {\n\t bytes.push(value ? 0xc3 : 0xc2);\n\t return 1;\n\t }\n\t // fixext 1 / undefined\n\t if (type === 'undefined') {\n\t bytes.push(0xd4, 0, 0);\n\t return 3;\n\t }\n\t throw new Error('Could not encode');\n\t}\n\t\n\tfunction encode(value) {\n\t var bytes = [];\n\t var defers = [];\n\t var size = _encode(bytes, defers, value);\n\t var buf = new Buffer(size);\n\t\n\t var deferIndex = 0;\n\t var deferWritten = 0;\n\t var nextOffset = -1;\n\t if (defers.length > 0) {\n\t nextOffset = defers[0].offset;\n\t }\n\t\n\t var defer, deferLength = 0, offset = 0;\n\t for (var i = 0, l = bytes.length; i < l; i++) {\n\t buf[deferWritten + i] = bytes[i];\n\t if (i + 1 !== nextOffset) { continue; }\n\t defer = defers[deferIndex];\n\t deferLength = defer.length;\n\t offset = deferWritten + nextOffset;\n\t if (defer.bin) {\n\t if (deferLength > MICRO_OPT_LEN) {\n\t defer.bin.copy(buf, offset, 0, deferLength);\n\t } else {\n\t var bin = defer.bin;\n\t for (var j = 0; j < deferLength; j++) {\n\t buf[offset + j] = bin[j];\n\t }\n\t }\n\t } else if (defer.str) {\n\t if (deferLength > MICRO_OPT_LEN) {\n\t buf.write(defer.str, offset, deferLength, 'utf8');\n\t } else {\n\t utf8Write(buf, offset, defer.str);\n\t }\n\t } else if (defer.float) {\n\t buf.writeDoubleBE(defer.float, offset);\n\t }\n\t deferIndex++;\n\t deferWritten += deferLength;\n\t if (defers[deferIndex]) {\n\t nextOffset = defers[deferIndex].offset;\n\t }\n\t }\n\t return buf;\n\t}\n\t\n\tmodule.exports = encode;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2).Buffer))\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/*!\n\t * The buffer module from node.js, for the browser.\n\t *\n\t * @author Feross Aboukhadijeh \n\t * @license MIT\n\t */\n\t/* eslint-disable no-proto */\n\t\n\t'use strict'\n\t\n\tvar base64 = __webpack_require__(3)\n\tvar ieee754 = __webpack_require__(4)\n\tvar isArray = __webpack_require__(5)\n\t\n\texports.Buffer = Buffer\n\texports.SlowBuffer = SlowBuffer\n\texports.INSPECT_MAX_BYTES = 50\n\t\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Use Object implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * Due to various browser bugs, sometimes the Object implementation will be used even\n\t * when the browser supports typed arrays.\n\t *\n\t * Note:\n\t *\n\t * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n\t * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n\t *\n\t * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n\t *\n\t * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n\t * incorrect length in some situations.\n\t\n\t * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n\t * get the Object implementation, which is slower but behaves correctly.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n\t ? global.TYPED_ARRAY_SUPPORT\n\t : typedArraySupport()\n\t\n\t/*\n\t * Export kMaxLength after typed array support is determined.\n\t */\n\texports.kMaxLength = kMaxLength()\n\t\n\tfunction typedArraySupport () {\n\t try {\n\t var arr = new Uint8Array(1)\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n\t return arr.foo() === 42 && // typed array instances can be augmented\n\t typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n\t arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\t\n\tfunction kMaxLength () {\n\t return Buffer.TYPED_ARRAY_SUPPORT\n\t ? 0x7fffffff\n\t : 0x3fffffff\n\t}\n\t\n\tfunction createBuffer (that, length) {\n\t if (kMaxLength() < length) {\n\t throw new RangeError('Invalid typed array length')\n\t }\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t that = new Uint8Array(length)\n\t that.__proto__ = Buffer.prototype\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t if (that === null) {\n\t that = new Buffer(length)\n\t }\n\t that.length = length\n\t }\n\t\n\t return that\n\t}\n\t\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\t\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n\t return new Buffer(arg, encodingOrOffset, length)\n\t }\n\t\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new Error(\n\t 'If encoding is specified then the first argument must be a string'\n\t )\n\t }\n\t return allocUnsafe(this, arg)\n\t }\n\t return from(this, arg, encodingOrOffset, length)\n\t}\n\t\n\tBuffer.poolSize = 8192 // not used by this implementation\n\t\n\t// TODO: Legacy, not needed anymore. Remove in next major version.\n\tBuffer._augment = function (arr) {\n\t arr.__proto__ = Buffer.prototype\n\t return arr\n\t}\n\t\n\tfunction from (that, value, encodingOrOffset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\t\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t return fromArrayBuffer(that, value, encodingOrOffset, length)\n\t }\n\t\n\t if (typeof value === 'string') {\n\t return fromString(that, value, encodingOrOffset)\n\t }\n\t\n\t return fromObject(that, value)\n\t}\n\t\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(null, value, encodingOrOffset, length)\n\t}\n\t\n\tif (Buffer.TYPED_ARRAY_SUPPORT) {\n\t Buffer.prototype.__proto__ = Uint8Array.prototype\n\t Buffer.__proto__ = Uint8Array\n\t if (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true\n\t })\n\t }\n\t}\n\t\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be a number')\n\t } else if (size < 0) {\n\t throw new RangeError('\"size\" argument must not be negative')\n\t }\n\t}\n\t\n\tfunction alloc (that, size, fill, encoding) {\n\t assertSize(size)\n\t if (size <= 0) {\n\t return createBuffer(that, size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(that, size).fill(fill, encoding)\n\t : createBuffer(that, size).fill(fill)\n\t }\n\t return createBuffer(that, size)\n\t}\n\t\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(null, size, fill, encoding)\n\t}\n\t\n\tfunction allocUnsafe (that, size) {\n\t assertSize(size)\n\t that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) {\n\t for (var i = 0; i < size; ++i) {\n\t that[i] = 0\n\t }\n\t }\n\t return that\n\t}\n\t\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(null, size)\n\t}\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(null, size)\n\t}\n\t\n\tfunction fromString (that, string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8'\n\t }\n\t\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('\"encoding\" must be a valid string encoding')\n\t }\n\t\n\t var length = byteLength(string, encoding) | 0\n\t that = createBuffer(that, length)\n\t\n\t var actual = that.write(string, encoding)\n\t\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t that = that.slice(0, actual)\n\t }\n\t\n\t return that\n\t}\n\t\n\tfunction fromArrayLike (that, array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0\n\t that = createBuffer(that, length)\n\t for (var i = 0; i < length; i += 1) {\n\t that[i] = array[i] & 255\n\t }\n\t return that\n\t}\n\t\n\tfunction fromArrayBuffer (that, array, byteOffset, length) {\n\t array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\t\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\t\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\t\n\t if (byteOffset === undefined && length === undefined) {\n\t array = new Uint8Array(array)\n\t } else if (length === undefined) {\n\t array = new Uint8Array(array, byteOffset)\n\t } else {\n\t array = new Uint8Array(array, byteOffset, length)\n\t }\n\t\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t that = array\n\t that.__proto__ = Buffer.prototype\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t that = fromArrayLike(that, array)\n\t }\n\t return that\n\t}\n\t\n\tfunction fromObject (that, obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0\n\t that = createBuffer(that, len)\n\t\n\t if (that.length === 0) {\n\t return that\n\t }\n\t\n\t obj.copy(that, 0, 0, len)\n\t return that\n\t }\n\t\n\t if (obj) {\n\t if ((typeof ArrayBuffer !== 'undefined' &&\n\t obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || isnan(obj.length)) {\n\t return createBuffer(that, 0)\n\t }\n\t return fromArrayLike(that, obj)\n\t }\n\t\n\t if (obj.type === 'Buffer' && isArray(obj.data)) {\n\t return fromArrayLike(that, obj.data)\n\t }\n\t }\n\t\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\t\n\tfunction checked (length) {\n\t // Note: cannot use `length < kMaxLength()` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= kMaxLength()) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\t\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\t\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return !!(b != null && b._isBuffer)\n\t}\n\t\n\tBuffer.compare = function compare (a, b) {\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError('Arguments must be Buffers')\n\t }\n\t\n\t if (a === b) return 0\n\t\n\t var x = a.length\n\t var y = b.length\n\t\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i]\n\t y = b[i]\n\t break\n\t }\n\t }\n\t\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t}\n\t\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t}\n\t\n\tBuffer.concat = function concat (list, length) {\n\t if (!isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\t\n\t var i\n\t if (length === undefined) {\n\t length = 0\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length\n\t }\n\t }\n\t\n\t var buffer = Buffer.allocUnsafe(length)\n\t var pos = 0\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i]\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos)\n\t pos += buf.length\n\t }\n\t return buffer\n\t}\n\t\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n\t (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string\n\t }\n\t\n\t var len = string.length\n\t if (len === 0) return 0\n\t\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t case undefined:\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) return utf8ToBytes(string).length // assume utf8\n\t encoding = ('' + encoding).toLowerCase()\n\t loweredCase = true\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength\n\t\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false\n\t\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\t\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\t\n\t if (end === undefined || end > this.length) {\n\t end = this.length\n\t }\n\t\n\t if (end <= 0) {\n\t return ''\n\t }\n\t\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0\n\t start >>>= 0\n\t\n\t if (end <= start) {\n\t return ''\n\t }\n\t\n\t if (!encoding) encoding = 'utf8'\n\t\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\t\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\t\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\t\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\t\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\t\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\t\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase()\n\t loweredCase = true\n\t }\n\t }\n\t}\n\t\n\t// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n\t// Buffer instances.\n\tBuffer.prototype._isBuffer = true\n\t\n\tfunction swap (b, n, m) {\n\t var i = b[n]\n\t b[n] = b[m]\n\t b[m] = i\n\t}\n\t\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1)\n\t }\n\t return this\n\t}\n\t\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3)\n\t swap(this, i + 1, i + 2)\n\t }\n\t return this\n\t}\n\t\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7)\n\t swap(this, i + 1, i + 6)\n\t swap(this, i + 2, i + 5)\n\t swap(this, i + 3, i + 4)\n\t }\n\t return this\n\t}\n\t\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length | 0\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t}\n\t\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t}\n\t\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = ''\n\t var max = exports.INSPECT_MAX_BYTES\n\t if (this.length > 0) {\n\t str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n\t if (this.length > max) str += ' ... '\n\t }\n\t return ''\n\t}\n\t\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError('Argument must be a Buffer')\n\t }\n\t\n\t if (start === undefined) {\n\t start = 0\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length\n\t }\n\t\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\t\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\t\n\t start >>>= 0\n\t end >>>= 0\n\t thisStart >>>= 0\n\t thisEnd >>>= 0\n\t\n\t if (this === target) return 0\n\t\n\t var x = thisEnd - thisStart\n\t var y = end - start\n\t var len = Math.min(x, y)\n\t\n\t var thisCopy = this.slice(thisStart, thisEnd)\n\t var targetCopy = target.slice(start, end)\n\t\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i]\n\t y = targetCopy[i]\n\t break\n\t }\n\t }\n\t\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t}\n\t\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\t\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset\n\t byteOffset = 0\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000\n\t }\n\t byteOffset = +byteOffset // Coerce to Number.\n\t if (isNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1)\n\t }\n\t\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0\n\t else return -1\n\t }\n\t\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding)\n\t }\n\t\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF // Search for a byte value [0-255]\n\t if (Buffer.TYPED_ARRAY_SUPPORT &&\n\t typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n\t }\n\t\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\t\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1\n\t var arrLength = arr.length\n\t var valLength = val.length\n\t\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase()\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2\n\t arrLength /= 2\n\t valLength /= 2\n\t byteOffset /= 2\n\t }\n\t }\n\t\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\t\n\t var i\n\t if (dir) {\n\t var foundIndex = -1\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex\n\t foundIndex = -1\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\t\n\t return -1\n\t}\n\t\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t}\n\t\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t}\n\t\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t}\n\t\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0\n\t var remaining = buf.length - offset\n\t if (!length) {\n\t length = remaining\n\t } else {\n\t length = Number(length)\n\t if (length > remaining) {\n\t length = remaining\n\t }\n\t }\n\t\n\t // must be an even number of digits\n\t var strLen = string.length\n\t if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\t\n\t if (length > strLen / 2) {\n\t length = strLen / 2\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16)\n\t if (isNaN(parsed)) return i\n\t buf[offset + i] = parsed\n\t }\n\t return i\n\t}\n\t\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\t\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\t\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\t\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\t\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\t\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8'\n\t length = this.length\n\t offset = 0\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset\n\t length = this.length\n\t offset = 0\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset | 0\n\t if (isFinite(length)) {\n\t length = length | 0\n\t if (encoding === undefined) encoding = 'utf8'\n\t } else {\n\t encoding = length\n\t length = undefined\n\t }\n\t // legacy write(string, encoding, offset, length) - remove in v0.13\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\t\n\t var remaining = this.length - offset\n\t if (length === undefined || length > remaining) length = remaining\n\t\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\t\n\t if (!encoding) encoding = 'utf8'\n\t\n\t var loweredCase = false\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\t\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\t\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\t\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\t\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\t\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\t\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase()\n\t loweredCase = true\n\t }\n\t }\n\t}\n\t\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t}\n\t\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\t\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end)\n\t var res = []\n\t\n\t var i = start\n\t while (i < end) {\n\t var firstByte = buf[i]\n\t var codePoint = null\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1\n\t\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint\n\t\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1]\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1]\n\t thirdByte = buf[i + 2]\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1]\n\t thirdByte = buf[i + 2]\n\t fourthByte = buf[i + 3]\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint\n\t }\n\t }\n\t }\n\t }\n\t\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD\n\t bytesPerSequence = 1\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n\t codePoint = 0xDC00 | codePoint & 0x3FF\n\t }\n\t\n\t res.push(codePoint)\n\t i += bytesPerSequence\n\t }\n\t\n\t return decodeCodePointsArray(res)\n\t}\n\t\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000\n\t\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\t\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = ''\n\t var i = 0\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t )\n\t }\n\t return res\n\t}\n\t\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = ''\n\t end = Math.min(buf.length, end)\n\t\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F)\n\t }\n\t return ret\n\t}\n\t\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = ''\n\t end = Math.min(buf.length, end)\n\t\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i])\n\t }\n\t return ret\n\t}\n\t\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length\n\t\n\t if (!start || start < 0) start = 0\n\t if (!end || end < 0 || end > len) end = len\n\t\n\t var out = ''\n\t for (var i = start; i < end; ++i) {\n\t out += toHex(buf[i])\n\t }\n\t return out\n\t}\n\t\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end)\n\t var res = ''\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n\t }\n\t return res\n\t}\n\t\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length\n\t start = ~~start\n\t end = end === undefined ? len : ~~end\n\t\n\t if (start < 0) {\n\t start += len\n\t if (start < 0) start = 0\n\t } else if (start > len) {\n\t start = len\n\t }\n\t\n\t if (end < 0) {\n\t end += len\n\t if (end < 0) end = 0\n\t } else if (end > len) {\n\t end = len\n\t }\n\t\n\t if (end < start) end = start\n\t\n\t var newBuf\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t newBuf = this.subarray(start, end)\n\t newBuf.__proto__ = Buffer.prototype\n\t } else {\n\t var sliceLen = end - start\n\t newBuf = new Buffer(sliceLen, undefined)\n\t for (var i = 0; i < sliceLen; ++i) {\n\t newBuf[i] = this[i + start]\n\t }\n\t }\n\t\n\t return newBuf\n\t}\n\t\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\t\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset | 0\n\t byteLength = byteLength | 0\n\t if (!noAssert) checkOffset(offset, byteLength, this.length)\n\t\n\t var val = this[offset]\n\t var mul = 1\n\t var i = 0\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul\n\t }\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset | 0\n\t byteLength = byteLength | 0\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length)\n\t }\n\t\n\t var val = this[offset + --byteLength]\n\t var mul = 1\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul\n\t }\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 1, this.length)\n\t return this[offset]\n\t}\n\t\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t return this[offset] | (this[offset + 1] << 8)\n\t}\n\t\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t return (this[offset] << 8) | this[offset + 1]\n\t}\n\t\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t}\n\t\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t}\n\t\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset | 0\n\t byteLength = byteLength | 0\n\t if (!noAssert) checkOffset(offset, byteLength, this.length)\n\t\n\t var val = this[offset]\n\t var mul = 1\n\t var i = 0\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul\n\t }\n\t mul *= 0x80\n\t\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset | 0\n\t byteLength = byteLength | 0\n\t if (!noAssert) checkOffset(offset, byteLength, this.length)\n\t\n\t var i = byteLength\n\t var mul = 1\n\t var val = this[offset + --i]\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul\n\t }\n\t mul *= 0x80\n\t\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\t\n\t return val\n\t}\n\t\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 1, this.length)\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t}\n\t\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t var val = this[offset] | (this[offset + 1] << 8)\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t}\n\t\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 2, this.length)\n\t var val = this[offset + 1] | (this[offset] << 8)\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t}\n\t\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t}\n\t\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t}\n\t\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t return ieee754.read(this, offset, true, 23, 4)\n\t}\n\t\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 4, this.length)\n\t return ieee754.read(this, offset, false, 23, 4)\n\t}\n\t\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 8, this.length)\n\t return ieee754.read(this, offset, true, 52, 8)\n\t}\n\t\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t if (!noAssert) checkOffset(offset, 8, this.length)\n\t return ieee754.read(this, offset, false, 52, 8)\n\t}\n\t\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\t\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t byteLength = byteLength | 0\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1\n\t checkInt(this, value, offset, byteLength, maxBytes, 0)\n\t }\n\t\n\t var mul = 1\n\t var i = 0\n\t this[offset] = value & 0xFF\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t byteLength = byteLength | 0\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1\n\t checkInt(this, value, offset, byteLength, maxBytes, 0)\n\t }\n\t\n\t var i = byteLength - 1\n\t var mul = 1\n\t this[offset + i] = value & 0xFF\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n\t this[offset] = (value & 0xff)\n\t return offset + 1\n\t}\n\t\n\tfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n\t if (value < 0) value = 0xffff + value + 1\n\t for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n\t buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n\t (littleEndian ? i : 1 - i) * 8\n\t }\n\t}\n\t\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value & 0xff)\n\t this[offset + 1] = (value >>> 8)\n\t } else {\n\t objectWriteUInt16(this, value, offset, true)\n\t }\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value >>> 8)\n\t this[offset + 1] = (value & 0xff)\n\t } else {\n\t objectWriteUInt16(this, value, offset, false)\n\t }\n\t return offset + 2\n\t}\n\t\n\tfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n\t if (value < 0) value = 0xffffffff + value + 1\n\t for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n\t buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n\t }\n\t}\n\t\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset + 3] = (value >>> 24)\n\t this[offset + 2] = (value >>> 16)\n\t this[offset + 1] = (value >>> 8)\n\t this[offset] = (value & 0xff)\n\t } else {\n\t objectWriteUInt32(this, value, offset, true)\n\t }\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value >>> 24)\n\t this[offset + 1] = (value >>> 16)\n\t this[offset + 2] = (value >>> 8)\n\t this[offset + 3] = (value & 0xff)\n\t } else {\n\t objectWriteUInt32(this, value, offset, false)\n\t }\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) {\n\t var limit = Math.pow(2, 8 * byteLength - 1)\n\t\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit)\n\t }\n\t\n\t var i = 0\n\t var mul = 1\n\t var sub = 0\n\t this[offset] = value & 0xFF\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) {\n\t var limit = Math.pow(2, 8 * byteLength - 1)\n\t\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit)\n\t }\n\t\n\t var i = byteLength - 1\n\t var mul = 1\n\t var sub = 0\n\t this[offset + i] = value & 0xFF\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n\t }\n\t\n\t return offset + byteLength\n\t}\n\t\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n\t if (value < 0) value = 0xff + value + 1\n\t this[offset] = (value & 0xff)\n\t return offset + 1\n\t}\n\t\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value & 0xff)\n\t this[offset + 1] = (value >>> 8)\n\t } else {\n\t objectWriteUInt16(this, value, offset, true)\n\t }\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value >>> 8)\n\t this[offset + 1] = (value & 0xff)\n\t } else {\n\t objectWriteUInt16(this, value, offset, false)\n\t }\n\t return offset + 2\n\t}\n\t\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value & 0xff)\n\t this[offset + 1] = (value >>> 8)\n\t this[offset + 2] = (value >>> 16)\n\t this[offset + 3] = (value >>> 24)\n\t } else {\n\t objectWriteUInt32(this, value, offset, true)\n\t }\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value\n\t offset = offset | 0\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n\t if (value < 0) value = 0xffffffff + value + 1\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t this[offset] = (value >>> 24)\n\t this[offset + 1] = (value >>> 16)\n\t this[offset + 2] = (value >>> 8)\n\t this[offset + 3] = (value & 0xff)\n\t } else {\n\t objectWriteUInt32(this, value, offset, false)\n\t }\n\t return offset + 4\n\t}\n\t\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\t\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4)\n\t return offset + 4\n\t}\n\t\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t}\n\t\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t}\n\t\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8)\n\t return offset + 8\n\t}\n\t\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t}\n\t\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t}\n\t\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0\n\t if (!end && end !== 0) end = this.length\n\t if (targetStart >= target.length) targetStart = target.length\n\t if (!targetStart) targetStart = 0\n\t if (end > 0 && end < start) end = start\n\t\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\t\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\t\n\t // Are we oob?\n\t if (end > this.length) end = this.length\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start\n\t }\n\t\n\t var len = end - start\n\t var i\n\t\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start]\n\t }\n\t } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start]\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t )\n\t }\n\t\n\t return len\n\t}\n\t\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start\n\t start = 0\n\t end = this.length\n\t } else if (typeof end === 'string') {\n\t encoding = end\n\t end = this.length\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0)\n\t if (code < 256) {\n\t val = code\n\t }\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255\n\t }\n\t\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\t\n\t if (end <= start) {\n\t return this\n\t }\n\t\n\t start = start >>> 0\n\t end = end === undefined ? this.length : end >>> 0\n\t\n\t if (!val) val = 0\n\t\n\t var i\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : utf8ToBytes(new Buffer(val, encoding).toString())\n\t var len = bytes.length\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len]\n\t }\n\t }\n\t\n\t return this\n\t}\n\t\n\t// HELPER FUNCTIONS\n\t// ================\n\t\n\tvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\t\n\tfunction base64clean (str) {\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '='\n\t }\n\t return str\n\t}\n\t\n\tfunction stringtrim (str) {\n\t if (str.trim) return str.trim()\n\t return str.replace(/^\\s+|\\s+$/g, '')\n\t}\n\t\n\tfunction toHex (n) {\n\t if (n < 16) return '0' + n.toString(16)\n\t return n.toString(16)\n\t}\n\t\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity\n\t var codePoint\n\t var length = string.length\n\t var leadSurrogate = null\n\t var bytes = []\n\t\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i)\n\t\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t continue\n\t }\n\t\n\t // valid lead\n\t leadSurrogate = codePoint\n\t\n\t continue\n\t }\n\t\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t leadSurrogate = codePoint\n\t continue\n\t }\n\t\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n\t }\n\t\n\t leadSurrogate = null\n\t\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint)\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t )\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t )\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t )\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\t\n\t return bytes\n\t}\n\t\n\tfunction asciiToBytes (str) {\n\t var byteArray = []\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF)\n\t }\n\t return byteArray\n\t}\n\t\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo\n\t var byteArray = []\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\t\n\t c = str.charCodeAt(i)\n\t hi = c >> 8\n\t lo = c % 256\n\t byteArray.push(lo)\n\t byteArray.push(hi)\n\t }\n\t\n\t return byteArray\n\t}\n\t\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\t\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i]\n\t }\n\t return i\n\t}\n\t\n\tfunction isnan (val) {\n\t return val !== val // eslint-disable-line no-self-compare\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict'\n\t\n\texports.byteLength = byteLength\n\texports.toByteArray = toByteArray\n\texports.fromByteArray = fromByteArray\n\t\n\tvar lookup = []\n\tvar revLookup = []\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\t\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i]\n\t revLookup[code.charCodeAt(i)] = i\n\t}\n\t\n\trevLookup['-'.charCodeAt(0)] = 62\n\trevLookup['_'.charCodeAt(0)] = 63\n\t\n\tfunction placeHoldersCount (b64) {\n\t var len = b64.length\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\t\n\t // the number of equal signs (place holders)\n\t // if there are two placeholders, than the two characters before it\n\t // represent one byte\n\t // if there is only one, then the three characters before it represent 2 bytes\n\t // this is just a cheap hack to not do indexOf twice\n\t return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\t}\n\t\n\tfunction byteLength (b64) {\n\t // base64 is 4/3 + up to two characters of the original data\n\t return b64.length * 3 / 4 - placeHoldersCount(b64)\n\t}\n\t\n\tfunction toByteArray (b64) {\n\t var i, j, l, tmp, placeHolders, arr\n\t var len = b64.length\n\t placeHolders = placeHoldersCount(b64)\n\t\n\t arr = new Arr(len * 3 / 4 - placeHolders)\n\t\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t l = placeHolders > 0 ? len - 4 : len\n\t\n\t var L = 0\n\t\n\t for (i = 0, j = 0; i < l; i += 4, j += 3) {\n\t tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n\t arr[L++] = (tmp >> 16) & 0xFF\n\t arr[L++] = (tmp >> 8) & 0xFF\n\t arr[L++] = tmp & 0xFF\n\t }\n\t\n\t if (placeHolders === 2) {\n\t tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n\t arr[L++] = tmp & 0xFF\n\t } else if (placeHolders === 1) {\n\t tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n\t arr[L++] = (tmp >> 8) & 0xFF\n\t arr[L++] = tmp & 0xFF\n\t }\n\t\n\t return arr\n\t}\n\t\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n\t}\n\t\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp\n\t var output = []\n\t for (var i = start; i < end; i += 3) {\n\t tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n\t output.push(tripletToBase64(tmp))\n\t }\n\t return output.join('')\n\t}\n\t\n\tfunction fromByteArray (uint8) {\n\t var tmp\n\t var len = uint8.length\n\t var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n\t var output = ''\n\t var parts = []\n\t var maxChunkLength = 16383 // must be multiple of 3\n\t\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n\t }\n\t\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1]\n\t output += lookup[tmp >> 2]\n\t output += lookup[(tmp << 4) & 0x3F]\n\t output += '=='\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n\t output += lookup[tmp >> 10]\n\t output += lookup[(tmp >> 4) & 0x3F]\n\t output += lookup[(tmp << 2) & 0x3F]\n\t output += '='\n\t }\n\t\n\t parts.push(output)\n\t\n\t return parts.join('')\n\t}\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m\n\t var eLen = nBytes * 8 - mLen - 1\n\t var eMax = (1 << eLen) - 1\n\t var eBias = eMax >> 1\n\t var nBits = -7\n\t var i = isLE ? (nBytes - 1) : 0\n\t var d = isLE ? -1 : 1\n\t var s = buffer[offset + i]\n\t\n\t i += d\n\t\n\t e = s & ((1 << (-nBits)) - 1)\n\t s >>= (-nBits)\n\t nBits += eLen\n\t for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\t\n\t m = e & ((1 << (-nBits)) - 1)\n\t e >>= (-nBits)\n\t nBits += mLen\n\t for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\t\n\t if (e === 0) {\n\t e = 1 - eBias\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen)\n\t e = e - eBias\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t}\n\t\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c\n\t var eLen = nBytes * 8 - mLen - 1\n\t var eMax = (1 << eLen) - 1\n\t var eBias = eMax >> 1\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n\t var i = isLE ? 0 : (nBytes - 1)\n\t var d = isLE ? 1 : -1\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\t\n\t value = Math.abs(value)\n\t\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0\n\t e = eMax\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2)\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--\n\t c *= 2\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias)\n\t }\n\t if (value * c >= 2) {\n\t e++\n\t c /= 2\n\t }\n\t\n\t if (e + eBias >= eMax) {\n\t m = 0\n\t e = eMax\n\t } else if (e + eBias >= 1) {\n\t m = (value * c - 1) * Math.pow(2, mLen)\n\t e = e + eBias\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n\t e = 0\n\t }\n\t }\n\t\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\t\n\t e = (e << mLen) | m\n\t eLen += mLen\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\t\n\t buffer[offset + i - d] |= s * 128\n\t}\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tfunction Decoder(buffer) {\n\t this.offset = 0;\n\t this.buffer = buffer;\n\t}\n\t\n\tDecoder.prototype.array = function (length) {\n\t var value = new Array(length);\n\t for (var i = 0; i < length; i++) {\n\t value[i] = this.parse();\n\t }\n\t return value;\n\t};\n\t\n\tDecoder.prototype.map = function (length) {\n\t var key = '', value = {};\n\t for (var i = 0; i < length; i++) {\n\t key = this.parse();\n\t value[key] = this.parse();\n\t }\n\t return value;\n\t};\n\t\n\tDecoder.prototype.str = function (length) {\n\t var value = this.buffer.toString('utf8', this.offset, this.offset + length);\n\t this.offset += length;\n\t return value;\n\t};\n\t\n\tDecoder.prototype.bin = function (length) {\n\t var value = this.buffer.slice(this.offset, this.offset + length);\n\t this.offset += length;\n\t return value;\n\t};\n\t\n\tDecoder.prototype.parse = function () {\n\t var prefix = this.buffer[this.offset++];\n\t var value, length = 0, type = 0, hi = 0, lo = 0;\n\t\n\t if (prefix < 0xc0) {\n\t // positive fixint\n\t if (prefix < 0x80) {\n\t return prefix;\n\t }\n\t // fixmap\n\t if (prefix < 0x90) {\n\t return this.map(prefix & 0x0f);\n\t }\n\t // fixarray\n\t if (prefix < 0xa0) {\n\t return this.array(prefix & 0x0f);\n\t }\n\t // fixstr\n\t return this.str(prefix & 0x1f);\n\t }\n\t\n\t // negative fixint\n\t if (prefix > 0xdf) {\n\t return (0xff - prefix + 1) * -1;\n\t }\n\t\n\t switch (prefix) {\n\t // nil\n\t case 0xc0:\n\t return null;\n\t // false\n\t case 0xc2:\n\t return false;\n\t // true\n\t case 0xc3:\n\t return true;\n\t\n\t // bin\n\t case 0xc4:\n\t length = this.buffer.readUInt8(this.offset);\n\t this.offset += 1;\n\t return this.bin(length);\n\t case 0xc5:\n\t length = this.buffer.readUInt16BE(this.offset);\n\t this.offset += 2;\n\t return this.bin(length);\n\t case 0xc6:\n\t length = this.buffer.readUInt32BE(this.offset);\n\t this.offset += 4;\n\t return this.bin(length);\n\t\n\t // ext\n\t case 0xc7:\n\t length = this.buffer.readUInt8(this.offset);\n\t type = this.buffer.readInt8(this.offset + 1);\n\t this.offset += 2;\n\t return [type, this.bin(length)];\n\t case 0xc8:\n\t length = this.buffer.readUInt16BE(this.offset);\n\t type = this.buffer.readInt8(this.offset + 2);\n\t this.offset += 3;\n\t return [type, this.bin(length)];\n\t case 0xc9:\n\t length = this.buffer.readUInt32BE(this.offset);\n\t type = this.buffer.readInt8(this.offset + 4);\n\t this.offset += 5;\n\t return [type, this.bin(length)];\n\t\n\t // float\n\t case 0xca:\n\t value = this.buffer.readFloatBE(this.offset);\n\t this.offset += 4;\n\t return value;\n\t case 0xcb:\n\t value = this.buffer.readDoubleBE(this.offset);\n\t this.offset += 8;\n\t return value;\n\t\n\t // uint\n\t case 0xcc:\n\t value = this.buffer.readUInt8(this.offset);\n\t this.offset += 1;\n\t return value;\n\t case 0xcd:\n\t value = this.buffer.readUInt16BE(this.offset);\n\t this.offset += 2;\n\t return value;\n\t case 0xce:\n\t value = this.buffer.readUInt32BE(this.offset);\n\t this.offset += 4;\n\t return value;\n\t case 0xcf:\n\t hi = this.buffer.readUInt32BE(this.offset) * Math.pow(2, 32);\n\t lo = this.buffer.readUInt32BE(this.offset + 4);\n\t this.offset += 8;\n\t return hi + lo;\n\t\n\t // int\n\t case 0xd0:\n\t value = this.buffer.readInt8(this.offset);\n\t this.offset += 1;\n\t return value;\n\t case 0xd1:\n\t value = this.buffer.readInt16BE(this.offset);\n\t this.offset += 2;\n\t return value;\n\t case 0xd2:\n\t value = this.buffer.readInt32BE(this.offset);\n\t this.offset += 4;\n\t return value;\n\t case 0xd3:\n\t hi = this.buffer.readInt32BE(this.offset) * Math.pow(2, 32);\n\t lo = this.buffer.readUInt32BE(this.offset + 4);\n\t this.offset += 8;\n\t return hi + lo;\n\t\n\t // fixext\n\t case 0xd4:\n\t type = this.buffer.readInt8(this.offset);\n\t this.offset += 1;\n\t if (type === 0x00) {\n\t this.offset += 1;\n\t return void 0;\n\t }\n\t return [type, this.bin(1)];\n\t case 0xd5:\n\t type = this.buffer.readInt8(this.offset);\n\t this.offset += 1;\n\t return [type, this.bin(2)];\n\t case 0xd6:\n\t type = this.buffer.readInt8(this.offset);\n\t this.offset += 1;\n\t return [type, this.bin(4)];\n\t case 0xd7:\n\t type = this.buffer.readInt8(this.offset);\n\t this.offset += 1;\n\t if (type === 0x00) {\n\t hi = this.buffer.readInt32BE(this.offset) * Math.pow(2, 32);\n\t lo = this.buffer.readUInt32BE(this.offset + 4);\n\t this.offset += 8;\n\t return new Date(hi + lo);\n\t }\n\t return [type, this.bin(8)];\n\t case 0xd8:\n\t type = this.buffer.readInt8(this.offset);\n\t this.offset += 1;\n\t return [type, this.bin(16)];\n\t\n\t // str\n\t case 0xd9:\n\t length = this.buffer.readUInt8(this.offset);\n\t this.offset += 1;\n\t return this.str(length);\n\t case 0xda:\n\t length = this.buffer.readUInt16BE(this.offset);\n\t this.offset += 2;\n\t return this.str(length);\n\t case 0xdb:\n\t length = this.buffer.readUInt32BE(this.offset);\n\t this.offset += 4;\n\t return this.str(length);\n\t\n\t // array\n\t case 0xdc:\n\t length = this.buffer.readUInt16BE(this.offset);\n\t this.offset += 2;\n\t return this.array(length);\n\t case 0xdd:\n\t length = this.buffer.readUInt32BE(this.offset);\n\t this.offset += 4;\n\t return this.array(length);\n\t\n\t // map\n\t case 0xde:\n\t length = this.buffer.readUInt16BE(this.offset);\n\t this.offset += 2;\n\t return this.map(length);\n\t case 0xdf:\n\t length = this.buffer.readUInt32BE(this.offset);\n\t this.offset += 4;\n\t return this.map(length);\n\t }\n\t\n\t throw new Error('Could not parse');\n\t};\n\t\n\tfunction decode(buffer) {\n\t var decoder = new Decoder(buffer);\n\t var value = decoder.parse();\n\t if (decoder.offset !== buffer.length) {\n\t throw new Error((buffer.length - decoder.offset) + ' trailing bytes');\n\t }\n\t return value;\n\t}\n\t\n\tmodule.exports = decode;\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// notepack.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 104c3dceda4515468a4a","exports.encode = require('./encode');\nexports.decode = require('./decode');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\nvar MICRO_OPT_LEN = 32;\n\n// Faster for short strings than buffer.write\nfunction utf8Write(arr, offset, str) {\n var c = 0;\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n arr[offset++] = c;\n }\n else if (c < 0x800) {\n arr[offset++] = 0xc0 | (c >> 6);\n arr[offset++] = 0x80 | (c & 0x3f);\n }\n else if (c < 0xd800 || c >= 0xe000) {\n arr[offset++] = 0xe0 | (c >> 12);\n arr[offset++] = 0x80 | (c >> 6) & 0x3f;\n arr[offset++] = 0x80 | (c & 0x3f);\n }\n else {\n i++;\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n arr[offset++] = 0xf0 | (c >> 18);\n arr[offset++] = 0x80 | (c >> 12) & 0x3f;\n arr[offset++] = 0x80 | (c >> 6) & 0x3f;\n arr[offset++] = 0x80 | (c & 0x3f);\n }\n }\n}\n\n// Faster for short strings than Buffer.byteLength\nfunction utf8Length(str) {\n var c = 0, length = 0;\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n\nfunction _encode(bytes, defers, value) {\n var type = typeof value, hi = 0, lo = 0, length = 0, size = 0;\n\n if (type === 'string') {\n if (value.length > MICRO_OPT_LEN) {\n length = Buffer.byteLength(value);\n } else {\n length = utf8Length(value);\n }\n\n // fixstr\n if (length < 0x20) {\n bytes.push(length | 0xa0);\n size = 1;\n }\n // str 8\n else if (length < 0x100) {\n bytes.push(0xd9, length);\n size = 2;\n }\n // str 16\n else if (length < 0x10000) {\n bytes.push(0xda, length >> 8, length);\n size = 3;\n }\n // str 32\n else if (length < 0x100000000) {\n bytes.push(0xdb, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('String too long');\n }\n defers.push({ str: value, length: length, offset: bytes.length });\n return size + length;\n }\n if (type === 'number') {\n if (!isFinite(value)) {\n throw new Error('Number is not finite');\n }\n\n // TODO: encode to float 32?\n\n // float 64\n if (Math.floor(value) !== value) {\n bytes.push(0xcb);\n defers.push({ float: value, length: 8, offset: bytes.length });\n return 9;\n }\n\n if (Math.abs(value) > MAX_SAFE_INTEGER) {\n throw new Error('Integer is unsafe');\n }\n\n if (value >= 0) {\n // positive fixnum\n if (value < 0x80) {\n bytes.push(value);\n return 1;\n }\n // uint 8\n if (value < 0x100) {\n bytes.push(0xcc, value);\n return 2;\n }\n // uint 16\n if (value < 0x10000) {\n bytes.push(0xcd, value >> 8, value);\n return 3;\n }\n // uint 32\n if (value < 0x100000000) {\n bytes.push(0xce, value >> 24, value >> 16, value >> 8, value);\n return 5;\n }\n // uint 64\n hi = (value / Math.pow(2, 32)) >> 0;\n lo = value >>> 0;\n bytes.push(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n } else {\n // negative fixnum\n if (value >= -0x20) {\n bytes.push(value);\n return 1;\n }\n // int 8\n if (value >= -0x80) {\n bytes.push(0xd0, value);\n return 2;\n }\n // int 16\n if (value >= -0x8000) {\n bytes.push(0xd1, value >> 8, value);\n return 3;\n }\n // int 32\n if (value >= -0x80000000) {\n bytes.push(0xd2, value >> 24, value >> 16, value >> 8, value);\n return 5;\n }\n // int 64\n hi = Math.floor(value / Math.pow(2, 32));\n lo = value >>> 0;\n bytes.push(0xd3, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n }\n }\n if (type === 'object') {\n // nil\n if (value === null) {\n bytes.push(0xc0);\n return 1;\n }\n\n if (Array.isArray(value)) {\n length = value.length;\n\n // fixarray\n if (length < 0x10) {\n bytes.push(length | 0x90);\n size = 1;\n }\n // array 16\n else if (length < 0x10000) {\n bytes.push(0xdc, length >> 8, length);\n size = 3;\n }\n // array 32\n else if (length < 0x100000000) {\n bytes.push(0xdd, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Array too large');\n }\n for (i = 0; i < length; i++) {\n size += _encode(bytes, defers, value[i]);\n }\n return size;\n }\n\n // fixext 8 / Date\n if (value instanceof Date) {\n var time = value.getTime();\n hi = Math.floor(time / Math.pow(2, 32));\n lo = time >>> 0;\n bytes.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 10;\n }\n\n if (value instanceof Buffer) {\n length = value.length;\n\n // bin 8\n if (length < 0x100) {\n bytes.push(0xc4, length);\n size = 2;\n } else\n // bin 16\n if (length < 0x10000) {\n bytes.push(0xc5, length >> 8, length);\n size = 3;\n } else\n // bin 32\n if (length < 0x100000000) {\n bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Buffer too large');\n }\n defers.push({ bin: value, length: length, offset: bytes.length });\n return size + length;\n }\n\n var keys = [], key = '';\n\n var allKeys = Object.keys(value);\n for (var i = 0, l = allKeys.length; i < l; i++) {\n key = allKeys[i];\n if (typeof value[key] !== 'function') {\n keys.push(key);\n }\n }\n length = keys.length;\n\n // fixmap\n if (length < 0x10) {\n bytes.push(length | 0x80);\n size = 1;\n }\n // map 16\n else if (length < 0x10000) {\n bytes.push(0xde, length >> 8, length);\n size = 3;\n }\n // map 32\n else if (length < 0x100000000) {\n bytes.push(0xdf, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Object too large');\n }\n\n for (var i = 0; i < length; i++) {\n key = keys[i];\n size += _encode(bytes, defers, key);\n size += _encode(bytes, defers, value[key]);\n }\n return size;\n }\n // false/true\n if (type === 'boolean') {\n bytes.push(value ? 0xc3 : 0xc2);\n return 1;\n }\n // fixext 1 / undefined\n if (type === 'undefined') {\n bytes.push(0xd4, 0, 0);\n return 3;\n }\n throw new Error('Could not encode');\n}\n\nfunction encode(value) {\n var bytes = [];\n var defers = [];\n var size = _encode(bytes, defers, value);\n var buf = new Buffer(size);\n\n var deferIndex = 0;\n var deferWritten = 0;\n var nextOffset = -1;\n if (defers.length > 0) {\n nextOffset = defers[0].offset;\n }\n\n var defer, deferLength = 0, offset = 0;\n for (var i = 0, l = bytes.length; i < l; i++) {\n buf[deferWritten + i] = bytes[i];\n if (i + 1 !== nextOffset) { continue; }\n defer = defers[deferIndex];\n deferLength = defer.length;\n offset = deferWritten + nextOffset;\n if (defer.bin) {\n if (deferLength > MICRO_OPT_LEN) {\n defer.bin.copy(buf, offset, 0, deferLength);\n } else {\n var bin = defer.bin;\n for (var j = 0; j < deferLength; j++) {\n buf[offset + j] = bin[j];\n }\n }\n } else if (defer.str) {\n if (deferLength > MICRO_OPT_LEN) {\n buf.write(defer.str, offset, deferLength, 'utf8');\n } else {\n utf8Write(buf, offset, defer.str);\n }\n } else if (defer.float) {\n buf.writeDoubleBE(defer.float, offset);\n }\n deferIndex++;\n deferWritten += deferLength;\n if (defers[deferIndex]) {\n nextOffset = defers[deferIndex].offset;\n }\n }\n return buf;\n}\n\nmodule.exports = encode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/encode.js\n// module id = 1\n// module chunks = 0","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/buffer/index.js\n// module id = 2\n// module chunks = 0","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction placeHoldersCount (b64) {\n var len = b64.length\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n}\n\nfunction byteLength (b64) {\n // base64 is 4/3 + up to two characters of the original data\n return b64.length * 3 / 4 - placeHoldersCount(b64)\n}\n\nfunction toByteArray (b64) {\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n placeHolders = placeHoldersCount(b64)\n\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/buffer/~/base64-js/index.js\n// module id = 3\n// module chunks = 0","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/buffer/~/ieee754/index.js\n// module id = 4\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/~/node-libs-browser/~/buffer/~/isarray/index.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nfunction Decoder(buffer) {\n this.offset = 0;\n this.buffer = buffer;\n}\n\nDecoder.prototype.array = function (length) {\n var value = new Array(length);\n for (var i = 0; i < length; i++) {\n value[i] = this.parse();\n }\n return value;\n};\n\nDecoder.prototype.map = function (length) {\n var key = '', value = {};\n for (var i = 0; i < length; i++) {\n key = this.parse();\n value[key] = this.parse();\n }\n return value;\n};\n\nDecoder.prototype.str = function (length) {\n var value = this.buffer.toString('utf8', this.offset, this.offset + length);\n this.offset += length;\n return value;\n};\n\nDecoder.prototype.bin = function (length) {\n var value = this.buffer.slice(this.offset, this.offset + length);\n this.offset += length;\n return value;\n};\n\nDecoder.prototype.parse = function () {\n var prefix = this.buffer[this.offset++];\n var value, length = 0, type = 0, hi = 0, lo = 0;\n\n if (prefix < 0xc0) {\n // positive fixint\n if (prefix < 0x80) {\n return prefix;\n }\n // fixmap\n if (prefix < 0x90) {\n return this.map(prefix & 0x0f);\n }\n // fixarray\n if (prefix < 0xa0) {\n return this.array(prefix & 0x0f);\n }\n // fixstr\n return this.str(prefix & 0x1f);\n }\n\n // negative fixint\n if (prefix > 0xdf) {\n return (0xff - prefix + 1) * -1;\n }\n\n switch (prefix) {\n // nil\n case 0xc0:\n return null;\n // false\n case 0xc2:\n return false;\n // true\n case 0xc3:\n return true;\n\n // bin\n case 0xc4:\n length = this.buffer.readUInt8(this.offset);\n this.offset += 1;\n return this.bin(length);\n case 0xc5:\n length = this.buffer.readUInt16BE(this.offset);\n this.offset += 2;\n return this.bin(length);\n case 0xc6:\n length = this.buffer.readUInt32BE(this.offset);\n this.offset += 4;\n return this.bin(length);\n\n // ext\n case 0xc7:\n length = this.buffer.readUInt8(this.offset);\n type = this.buffer.readInt8(this.offset + 1);\n this.offset += 2;\n return [type, this.bin(length)];\n case 0xc8:\n length = this.buffer.readUInt16BE(this.offset);\n type = this.buffer.readInt8(this.offset + 2);\n this.offset += 3;\n return [type, this.bin(length)];\n case 0xc9:\n length = this.buffer.readUInt32BE(this.offset);\n type = this.buffer.readInt8(this.offset + 4);\n this.offset += 5;\n return [type, this.bin(length)];\n\n // float\n case 0xca:\n value = this.buffer.readFloatBE(this.offset);\n this.offset += 4;\n return value;\n case 0xcb:\n value = this.buffer.readDoubleBE(this.offset);\n this.offset += 8;\n return value;\n\n // uint\n case 0xcc:\n value = this.buffer.readUInt8(this.offset);\n this.offset += 1;\n return value;\n case 0xcd:\n value = this.buffer.readUInt16BE(this.offset);\n this.offset += 2;\n return value;\n case 0xce:\n value = this.buffer.readUInt32BE(this.offset);\n this.offset += 4;\n return value;\n case 0xcf:\n hi = this.buffer.readUInt32BE(this.offset) * Math.pow(2, 32);\n lo = this.buffer.readUInt32BE(this.offset + 4);\n this.offset += 8;\n return hi + lo;\n\n // int\n case 0xd0:\n value = this.buffer.readInt8(this.offset);\n this.offset += 1;\n return value;\n case 0xd1:\n value = this.buffer.readInt16BE(this.offset);\n this.offset += 2;\n return value;\n case 0xd2:\n value = this.buffer.readInt32BE(this.offset);\n this.offset += 4;\n return value;\n case 0xd3:\n hi = this.buffer.readInt32BE(this.offset) * Math.pow(2, 32);\n lo = this.buffer.readUInt32BE(this.offset + 4);\n this.offset += 8;\n return hi + lo;\n\n // fixext\n case 0xd4:\n type = this.buffer.readInt8(this.offset);\n this.offset += 1;\n if (type === 0x00) {\n this.offset += 1;\n return void 0;\n }\n return [type, this.bin(1)];\n case 0xd5:\n type = this.buffer.readInt8(this.offset);\n this.offset += 1;\n return [type, this.bin(2)];\n case 0xd6:\n type = this.buffer.readInt8(this.offset);\n this.offset += 1;\n return [type, this.bin(4)];\n case 0xd7:\n type = this.buffer.readInt8(this.offset);\n this.offset += 1;\n if (type === 0x00) {\n hi = this.buffer.readInt32BE(this.offset) * Math.pow(2, 32);\n lo = this.buffer.readUInt32BE(this.offset + 4);\n this.offset += 8;\n return new Date(hi + lo);\n }\n return [type, this.bin(8)];\n case 0xd8:\n type = this.buffer.readInt8(this.offset);\n this.offset += 1;\n return [type, this.bin(16)];\n\n // str\n case 0xd9:\n length = this.buffer.readUInt8(this.offset);\n this.offset += 1;\n return this.str(length);\n case 0xda:\n length = this.buffer.readUInt16BE(this.offset);\n this.offset += 2;\n return this.str(length);\n case 0xdb:\n length = this.buffer.readUInt32BE(this.offset);\n this.offset += 4;\n return this.str(length);\n\n // array\n case 0xdc:\n length = this.buffer.readUInt16BE(this.offset);\n this.offset += 2;\n return this.array(length);\n case 0xdd:\n length = this.buffer.readUInt32BE(this.offset);\n this.offset += 4;\n return this.array(length);\n\n // map\n case 0xde:\n length = this.buffer.readUInt16BE(this.offset);\n this.offset += 2;\n return this.map(length);\n case 0xdf:\n length = this.buffer.readUInt32BE(this.offset);\n this.offset += 4;\n return this.map(length);\n }\n\n throw new Error('Could not parse');\n};\n\nfunction decode(buffer) {\n var decoder = new Decoder(buffer);\n var value = decoder.parse();\n if (decoder.offset !== buffer.length) {\n throw new Error((buffer.length - decoder.offset) + ' trailing bytes');\n }\n return value;\n}\n\nmodule.exports = decode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/decode.js\n// module id = 6\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///notepack.js","webpack:///webpack/bootstrap 2b1c2387acab4a7b24bf","webpack:///./lib/index.js","webpack:///./browser/encode.js","webpack:///./browser/decode.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","encode","decode","utf8Write","view","offset","str","i","l","length","charCodeAt","setUint8","utf8Length","_encode","bytes","defers","value","type","hi","lo","size","push","Error","isFinite","Math","floor","float","abs","MAX_SAFE_INTEGER","pow","Array","isArray","Date","time","getTime","ArrayBuffer","byteLength","bin","keys","key","allKeys","Object","buf","DataView","deferIndex","deferWritten","nextOffset","defer","deferLength","Uint8Array","j","setFloat64","Decoder","buffer","isView","utf8Read","string","end","byte","getUint8","toString","String","fromCharCode","decoder","parse","prototype","array","map","slice","prefix","getUint16","getUint32","getInt8","getFloat32","getFloat64","getInt16","getInt32"],"mappings":"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","file":"notepack.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"notepack\"] = factory();\n\telse\n\t\troot[\"notepack\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"notepack\"] = factory();\n\telse\n\t\troot[\"notepack\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\texports.encode = __webpack_require__(1);\n\texports.decode = __webpack_require__(2);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\n\t\n\tfunction utf8Write(view, offset, str) {\n\t var c = 0;\n\t for (var i = 0, l = str.length; i < l; i++) {\n\t c = str.charCodeAt(i);\n\t if (c < 0x80) {\n\t view.setUint8(offset++, c);\n\t }\n\t else if (c < 0x800) {\n\t view.setUint8(offset++, 0xc0 | (c >> 6));\n\t view.setUint8(offset++, 0x80 | (c & 0x3f));\n\t }\n\t else if (c < 0xd800 || c >= 0xe000) {\n\t view.setUint8(offset++, 0xe0 | (c >> 12));\n\t view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\n\t view.setUint8(offset++, 0x80 | (c & 0x3f));\n\t }\n\t else {\n\t i++;\n\t c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n\t view.setUint8(offset++, 0xf0 | (c >> 18));\n\t view.setUint8(offset++, 0x80 | (c >> 12) & 0x3f);\n\t view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\n\t view.setUint8(offset++, 0x80 | (c & 0x3f));\n\t }\n\t }\n\t}\n\t\n\tfunction utf8Length(str) {\n\t var c = 0, length = 0;\n\t for (var i = 0, l = str.length; i < l; i++) {\n\t c = str.charCodeAt(i);\n\t if (c < 0x80) {\n\t length += 1;\n\t }\n\t else if (c < 0x800) {\n\t length += 2;\n\t }\n\t else if (c < 0xd800 || c >= 0xe000) {\n\t length += 3;\n\t }\n\t else {\n\t i++;\n\t length += 4;\n\t }\n\t }\n\t return length;\n\t}\n\t\n\tfunction _encode(bytes, defers, value) {\n\t var type = typeof value, hi = 0, lo = 0, length = 0, size = 0;\n\t\n\t if (type === 'string') {\n\t length = utf8Length(value);\n\t\n\t // fixstr\n\t if (length < 0x20) {\n\t bytes.push(length | 0xa0);\n\t size = 1;\n\t }\n\t // str 8\n\t else if (length < 0x100) {\n\t bytes.push(0xd9, length);\n\t size = 2;\n\t }\n\t // str 16\n\t else if (length < 0x10000) {\n\t bytes.push(0xda, length >> 8, length);\n\t size = 3;\n\t }\n\t // str 32\n\t else if (length < 0x100000000) {\n\t bytes.push(0xdb, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('String too long');\n\t }\n\t defers.push({ str: value, length: length, offset: bytes.length });\n\t return size + length;\n\t }\n\t if (type === 'number') {\n\t if (!isFinite(value)) {\n\t throw new Error('Number is not finite');\n\t }\n\t\n\t // TODO: encode to float 32?\n\t\n\t // float 64\n\t if (Math.floor(value) !== value) {\n\t bytes.push(0xcb);\n\t defers.push({ float: value, length: 8, offset: bytes.length });\n\t return 9;\n\t }\n\t\n\t if (Math.abs(value) > MAX_SAFE_INTEGER) {\n\t throw new Error('Integer is unsafe');\n\t }\n\t\n\t if (value >= 0) {\n\t // positive fixnum\n\t if (value < 0x80) {\n\t bytes.push(value);\n\t return 1;\n\t }\n\t // uint 8\n\t if (value < 0x100) {\n\t bytes.push(0xcc, value);\n\t return 2;\n\t }\n\t // uint 16\n\t if (value < 0x10000) {\n\t bytes.push(0xcd, value >> 8, value);\n\t return 3;\n\t }\n\t // uint 32\n\t if (value < 0x100000000) {\n\t bytes.push(0xce, value >> 24, value >> 16, value >> 8, value);\n\t return 5;\n\t }\n\t // uint 64\n\t hi = (value / Math.pow(2, 32)) >> 0;\n\t lo = value >>> 0;\n\t bytes.push(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n\t return 9;\n\t } else {\n\t // negative fixnum\n\t if (value >= -0x20) {\n\t bytes.push(value);\n\t return 1;\n\t }\n\t // int 8\n\t if (value >= -0x80) {\n\t bytes.push(0xd0, value);\n\t return 2;\n\t }\n\t // int 16\n\t if (value >= -0x8000) {\n\t bytes.push(0xd1, value >> 8, value);\n\t return 3;\n\t }\n\t // int 32\n\t if (value >= -0x80000000) {\n\t bytes.push(0xd2, value >> 24, value >> 16, value >> 8, value);\n\t return 5;\n\t }\n\t // int 64\n\t hi = Math.floor(value / Math.pow(2, 32));\n\t lo = value >>> 0;\n\t bytes.push(0xd3, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n\t return 9;\n\t }\n\t }\n\t if (type === 'object') {\n\t // nil\n\t if (value === null) {\n\t bytes.push(0xc0);\n\t return 1;\n\t }\n\t\n\t if (Array.isArray(value)) {\n\t length = value.length;\n\t\n\t // fixarray\n\t if (length < 0x10) {\n\t bytes.push(length | 0x90);\n\t size = 1;\n\t }\n\t // array 16\n\t else if (length < 0x10000) {\n\t bytes.push(0xdc, length >> 8, length);\n\t size = 3;\n\t }\n\t // array 32\n\t else if (length < 0x100000000) {\n\t bytes.push(0xdd, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('Array too large');\n\t }\n\t for (i = 0; i < length; i++) {\n\t size += _encode(bytes, defers, value[i]);\n\t }\n\t return size;\n\t }\n\t\n\t // fixext 8 / Date\n\t if (value instanceof Date) {\n\t var time = value.getTime();\n\t hi = Math.floor(time / Math.pow(2, 32));\n\t lo = time >>> 0;\n\t bytes.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n\t return 10;\n\t }\n\t\n\t if (value instanceof ArrayBuffer) {\n\t length = value.byteLength;\n\t\n\t // bin 8\n\t if (length < 0x100) {\n\t bytes.push(0xc4, length);\n\t size = 2;\n\t } else\n\t // bin 16\n\t if (length < 0x10000) {\n\t bytes.push(0xc5, length >> 8, length);\n\t size = 3;\n\t } else\n\t // bin 32\n\t if (length < 0x100000000) {\n\t bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('Buffer too large');\n\t }\n\t defers.push({ bin: value, length: length, offset: bytes.length });\n\t return size + length;\n\t }\n\t\n\t var keys = [], key = '';\n\t\n\t var allKeys = Object.keys(value);\n\t for (var i = 0, l = allKeys.length; i < l; i++) {\n\t key = allKeys[i];\n\t if (typeof value[key] !== 'function') {\n\t keys.push(key);\n\t }\n\t }\n\t length = keys.length;\n\t\n\t // fixmap\n\t if (length < 0x10) {\n\t bytes.push(length | 0x80);\n\t size = 1;\n\t }\n\t // map 16\n\t else if (length < 0x10000) {\n\t bytes.push(0xde, length >> 8, length);\n\t size = 3;\n\t }\n\t // map 32\n\t else if (length < 0x100000000) {\n\t bytes.push(0xdf, length >> 24, length >> 16, length >> 8, length);\n\t size = 5;\n\t } else {\n\t throw new Error('Object too large');\n\t }\n\t\n\t for (var i = 0; i < length; i++) {\n\t key = keys[i];\n\t size += _encode(bytes, defers, key);\n\t size += _encode(bytes, defers, value[key]);\n\t }\n\t return size;\n\t }\n\t // false/true\n\t if (type === 'boolean') {\n\t bytes.push(value ? 0xc3 : 0xc2);\n\t return 1;\n\t }\n\t // fixext 1 / undefined\n\t if (type === 'undefined') {\n\t bytes.push(0xd4, 0, 0);\n\t return 3;\n\t }\n\t throw new Error('Could not encode');\n\t}\n\t\n\tfunction encode(value) {\n\t var bytes = [];\n\t var defers = [];\n\t var size = _encode(bytes, defers, value);\n\t var buf = new ArrayBuffer(size);\n\t var view = new DataView(buf);\n\t\n\t var deferIndex = 0;\n\t var deferWritten = 0;\n\t var nextOffset = -1;\n\t if (defers.length > 0) {\n\t nextOffset = defers[0].offset;\n\t }\n\t\n\t var defer, deferLength = 0, offset = 0;\n\t for (var i = 0, l = bytes.length; i < l; i++) {\n\t view.setUint8(deferWritten + i, bytes[i]);\n\t if (i + 1 !== nextOffset) { continue; }\n\t defer = defers[deferIndex];\n\t deferLength = defer.length;\n\t offset = deferWritten + nextOffset;\n\t if (defer.bin) {\n\t var bin = new Uint8Array(defer.bin);\n\t for (var j = 0; j < deferLength; j++) {\n\t view.setUint8(offset + j, bin[j]);\n\t }\n\t } else if (defer.str) {\n\t utf8Write(view, offset, defer.str);\n\t } else if (defer.float) {\n\t view.setFloat64(offset, defer.float);\n\t }\n\t deferIndex++;\n\t deferWritten += deferLength;\n\t if (defers[deferIndex]) {\n\t nextOffset = defers[deferIndex].offset;\n\t }\n\t }\n\t return buf;\n\t}\n\t\n\tmodule.exports = encode;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tfunction Decoder(buffer) {\n\t this.offset = 0;\n\t if (buffer instanceof ArrayBuffer) {\n\t this.buffer = buffer;\n\t } else if (ArrayBuffer.isView(buffer)) {\n\t this.buffer = buffer.buffer;\n\t } else {\n\t throw new Error('Invalid argument');\n\t }\n\t this.view = new DataView(buffer);\n\t}\n\t\n\tfunction utf8Read(view, offset, length) {\n\t var string = '';\n\t for (var i = offset, end = offset + length; i < end; i++) {\n\t var byte = view.getUint8(i);\n\t if ((byte & 0x80) === 0x00) {\n\t string += String.fromCharCode(byte);\n\t continue;\n\t }\n\t if ((byte & 0xe0) === 0xc0) {\n\t string += String.fromCharCode(\n\t ((byte & 0x0f) << 6) |\n\t (view.getUint8(++i) & 0x3f)\n\t );\n\t continue;\n\t }\n\t if ((byte & 0xf0) === 0xe0) {\n\t string += String.fromCharCode(\n\t ((byte & 0x0f) << 12) |\n\t ((view.getUint8(++i) & 0x3f) << 6) |\n\t ((view.getUint8(++i) & 0x3f) << 0)\n\t );\n\t continue;\n\t }\n\t if ((byte & 0xf8) === 0xf0) {\n\t string += String.fromCharCode(\n\t ((byte & 0x07) << 18) |\n\t ((view.getUint8(++i) & 0x3f) << 12) |\n\t ((view.getUint8(++i) & 0x3f) << 6) |\n\t ((view.getUint8(++i) & 0x3f) << 0)\n\t );\n\t continue;\n\t }\n\t throw new Error('Invalid byte ' + byte.toString(16));\n\t }\n\t return string;\n\t}\n\t\n\tDecoder.prototype.array = function (length) {\n\t var value = new Array(length);\n\t for (var i = 0; i < length; i++) {\n\t value[i] = this.parse();\n\t }\n\t return value;\n\t};\n\t\n\tDecoder.prototype.map = function (length) {\n\t var key = '', value = {};\n\t for (var i = 0; i < length; i++) {\n\t key = this.parse();\n\t value[key] = this.parse();\n\t }\n\t return value;\n\t};\n\t\n\tDecoder.prototype.str = function (length) {\n\t var value = utf8Read(this.view, this.offset, length);\n\t this.offset += length;\n\t return value;\n\t};\n\t\n\tDecoder.prototype.bin = function (length) {\n\t var value = this.buffer.slice(this.offset, this.offset + length);\n\t this.offset += length;\n\t return value;\n\t};\n\t\n\tDecoder.prototype.parse = function () {\n\t var prefix = this.view.getUint8(this.offset++);\n\t var value, length = 0, type = 0, hi = 0, lo = 0;\n\t\n\t if (prefix < 0xc0) {\n\t // positive fixint\n\t if (prefix < 0x80) {\n\t return prefix;\n\t }\n\t // fixmap\n\t if (prefix < 0x90) {\n\t return this.map(prefix & 0x0f);\n\t }\n\t // fixarray\n\t if (prefix < 0xa0) {\n\t return this.array(prefix & 0x0f);\n\t }\n\t // fixstr\n\t return this.str(prefix & 0x1f);\n\t }\n\t\n\t // negative fixint\n\t if (prefix > 0xdf) {\n\t return (0xff - prefix + 1) * -1;\n\t }\n\t\n\t switch (prefix) {\n\t // nil\n\t case 0xc0:\n\t return null;\n\t // false\n\t case 0xc2:\n\t return false;\n\t // true\n\t case 0xc3:\n\t return true;\n\t\n\t // bin\n\t case 0xc4:\n\t length = this.view.getUint8(this.offset);\n\t this.offset += 1;\n\t return this.bin(length);\n\t case 0xc5:\n\t length = this.view.getUint16(this.offset);\n\t this.offset += 2;\n\t return this.bin(length);\n\t case 0xc6:\n\t length = this.view.getUint32(this.offset);\n\t this.offset += 4;\n\t return this.bin(length);\n\t\n\t // ext\n\t case 0xc7:\n\t length = this.view.getUint8(this.offset);\n\t type = this.view.getInt8(this.offset + 1);\n\t this.offset += 2;\n\t return [type, this.bin(length)];\n\t case 0xc8:\n\t length = this.view.getUint16(this.offset);\n\t type = this.view.getInt8(this.offset + 2);\n\t this.offset += 3;\n\t return [type, this.bin(length)];\n\t case 0xc9:\n\t length = this.view.getUint32(this.offset);\n\t type = this.view.getInt8(this.offset + 4);\n\t this.offset += 5;\n\t return [type, this.bin(length)];\n\t\n\t // float\n\t case 0xca:\n\t value = this.view.getFloat32(this.offset);\n\t this.offset += 4;\n\t return value;\n\t case 0xcb:\n\t value = this.view.getFloat64(this.offset);\n\t this.offset += 8;\n\t return value;\n\t\n\t // uint\n\t case 0xcc:\n\t value = this.view.getUint8(this.offset);\n\t this.offset += 1;\n\t return value;\n\t case 0xcd:\n\t value = this.view.getUint16(this.offset);\n\t this.offset += 2;\n\t return value;\n\t case 0xce:\n\t value = this.view.getUint32(this.offset);\n\t this.offset += 4;\n\t return value;\n\t case 0xcf:\n\t hi = this.view.getUint32(this.offset) * Math.pow(2, 32);\n\t lo = this.view.getUint32(this.offset + 4);\n\t this.offset += 8;\n\t return hi + lo;\n\t\n\t // int\n\t case 0xd0:\n\t value = this.view.getInt8(this.offset);\n\t this.offset += 1;\n\t return value;\n\t case 0xd1:\n\t value = this.view.getInt16(this.offset);\n\t this.offset += 2;\n\t return value;\n\t case 0xd2:\n\t value = this.view.getInt32(this.offset);\n\t this.offset += 4;\n\t return value;\n\t case 0xd3:\n\t hi = this.view.getInt32(this.offset) * Math.pow(2, 32);\n\t lo = this.view.getUint32(this.offset + 4);\n\t this.offset += 8;\n\t return hi + lo;\n\t\n\t // fixext\n\t case 0xd4:\n\t type = this.view.getInt8(this.offset);\n\t this.offset += 1;\n\t if (type === 0x00) {\n\t this.offset += 1;\n\t return void 0;\n\t }\n\t return [type, this.bin(1)];\n\t case 0xd5:\n\t type = this.view.getInt8(this.offset);\n\t this.offset += 1;\n\t return [type, this.bin(2)];\n\t case 0xd6:\n\t type = this.view.getInt8(this.offset);\n\t this.offset += 1;\n\t return [type, this.bin(4)];\n\t case 0xd7:\n\t type = this.view.getInt8(this.offset);\n\t this.offset += 1;\n\t if (type === 0x00) {\n\t hi = this.view.getInt32(this.offset) * Math.pow(2, 32);\n\t lo = this.view.getUint32(this.offset + 4);\n\t this.offset += 8;\n\t return new Date(hi + lo);\n\t }\n\t return [type, this.bin(8)];\n\t case 0xd8:\n\t type = this.view.getInt8(this.offset);\n\t this.offset += 1;\n\t return [type, this.bin(16)];\n\t\n\t // str\n\t case 0xd9:\n\t length = this.view.getUint8(this.offset);\n\t this.offset += 1;\n\t return this.str(length);\n\t case 0xda:\n\t length = this.view.getUint16(this.offset);\n\t this.offset += 2;\n\t return this.str(length);\n\t case 0xdb:\n\t length = this.view.getUint32(this.offset);\n\t this.offset += 4;\n\t return this.str(length);\n\t\n\t // array\n\t case 0xdc:\n\t length = this.view.getUint16(this.offset);\n\t this.offset += 2;\n\t return this.array(length);\n\t case 0xdd:\n\t length = this.view.getUint32(this.offset);\n\t this.offset += 4;\n\t return this.array(length);\n\t\n\t // map\n\t case 0xde:\n\t length = this.view.getUint16(this.offset);\n\t this.offset += 2;\n\t return this.map(length);\n\t case 0xdf:\n\t length = this.view.getUint32(this.offset);\n\t this.offset += 4;\n\t return this.map(length);\n\t }\n\t\n\t throw new Error('Could not parse');\n\t};\n\t\n\tfunction decode(buffer) {\n\t var decoder = new Decoder(buffer);\n\t var value = decoder.parse();\n\t if (decoder.offset !== buffer.byteLength) {\n\t throw new Error((buffer.byteLength - decoder.offset) + ' trailing bytes');\n\t }\n\t return value;\n\t}\n\t\n\tmodule.exports = decode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// notepack.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 2b1c2387acab4a7b24bf","exports.encode = require('./encode');\nexports.decode = require('./decode');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\n\nfunction utf8Write(view, offset, str) {\n var c = 0;\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n view.setUint8(offset++, c);\n }\n else if (c < 0x800) {\n view.setUint8(offset++, 0xc0 | (c >> 6));\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n else if (c < 0xd800 || c >= 0xe000) {\n view.setUint8(offset++, 0xe0 | (c >> 12));\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n else {\n i++;\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n view.setUint8(offset++, 0xf0 | (c >> 18));\n view.setUint8(offset++, 0x80 | (c >> 12) & 0x3f);\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n }\n}\n\nfunction utf8Length(str) {\n var c = 0, length = 0;\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n\nfunction _encode(bytes, defers, value) {\n var type = typeof value, hi = 0, lo = 0, length = 0, size = 0;\n\n if (type === 'string') {\n length = utf8Length(value);\n\n // fixstr\n if (length < 0x20) {\n bytes.push(length | 0xa0);\n size = 1;\n }\n // str 8\n else if (length < 0x100) {\n bytes.push(0xd9, length);\n size = 2;\n }\n // str 16\n else if (length < 0x10000) {\n bytes.push(0xda, length >> 8, length);\n size = 3;\n }\n // str 32\n else if (length < 0x100000000) {\n bytes.push(0xdb, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('String too long');\n }\n defers.push({ str: value, length: length, offset: bytes.length });\n return size + length;\n }\n if (type === 'number') {\n if (!isFinite(value)) {\n throw new Error('Number is not finite');\n }\n\n // TODO: encode to float 32?\n\n // float 64\n if (Math.floor(value) !== value) {\n bytes.push(0xcb);\n defers.push({ float: value, length: 8, offset: bytes.length });\n return 9;\n }\n\n if (Math.abs(value) > MAX_SAFE_INTEGER) {\n throw new Error('Integer is unsafe');\n }\n\n if (value >= 0) {\n // positive fixnum\n if (value < 0x80) {\n bytes.push(value);\n return 1;\n }\n // uint 8\n if (value < 0x100) {\n bytes.push(0xcc, value);\n return 2;\n }\n // uint 16\n if (value < 0x10000) {\n bytes.push(0xcd, value >> 8, value);\n return 3;\n }\n // uint 32\n if (value < 0x100000000) {\n bytes.push(0xce, value >> 24, value >> 16, value >> 8, value);\n return 5;\n }\n // uint 64\n hi = (value / Math.pow(2, 32)) >> 0;\n lo = value >>> 0;\n bytes.push(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n } else {\n // negative fixnum\n if (value >= -0x20) {\n bytes.push(value);\n return 1;\n }\n // int 8\n if (value >= -0x80) {\n bytes.push(0xd0, value);\n return 2;\n }\n // int 16\n if (value >= -0x8000) {\n bytes.push(0xd1, value >> 8, value);\n return 3;\n }\n // int 32\n if (value >= -0x80000000) {\n bytes.push(0xd2, value >> 24, value >> 16, value >> 8, value);\n return 5;\n }\n // int 64\n hi = Math.floor(value / Math.pow(2, 32));\n lo = value >>> 0;\n bytes.push(0xd3, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n }\n }\n if (type === 'object') {\n // nil\n if (value === null) {\n bytes.push(0xc0);\n return 1;\n }\n\n if (Array.isArray(value)) {\n length = value.length;\n\n // fixarray\n if (length < 0x10) {\n bytes.push(length | 0x90);\n size = 1;\n }\n // array 16\n else if (length < 0x10000) {\n bytes.push(0xdc, length >> 8, length);\n size = 3;\n }\n // array 32\n else if (length < 0x100000000) {\n bytes.push(0xdd, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Array too large');\n }\n for (i = 0; i < length; i++) {\n size += _encode(bytes, defers, value[i]);\n }\n return size;\n }\n\n // fixext 8 / Date\n if (value instanceof Date) {\n var time = value.getTime();\n hi = Math.floor(time / Math.pow(2, 32));\n lo = time >>> 0;\n bytes.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 10;\n }\n\n if (value instanceof ArrayBuffer) {\n length = value.byteLength;\n\n // bin 8\n if (length < 0x100) {\n bytes.push(0xc4, length);\n size = 2;\n } else\n // bin 16\n if (length < 0x10000) {\n bytes.push(0xc5, length >> 8, length);\n size = 3;\n } else\n // bin 32\n if (length < 0x100000000) {\n bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Buffer too large');\n }\n defers.push({ bin: value, length: length, offset: bytes.length });\n return size + length;\n }\n\n var keys = [], key = '';\n\n var allKeys = Object.keys(value);\n for (var i = 0, l = allKeys.length; i < l; i++) {\n key = allKeys[i];\n if (typeof value[key] !== 'function') {\n keys.push(key);\n }\n }\n length = keys.length;\n\n // fixmap\n if (length < 0x10) {\n bytes.push(length | 0x80);\n size = 1;\n }\n // map 16\n else if (length < 0x10000) {\n bytes.push(0xde, length >> 8, length);\n size = 3;\n }\n // map 32\n else if (length < 0x100000000) {\n bytes.push(0xdf, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Object too large');\n }\n\n for (var i = 0; i < length; i++) {\n key = keys[i];\n size += _encode(bytes, defers, key);\n size += _encode(bytes, defers, value[key]);\n }\n return size;\n }\n // false/true\n if (type === 'boolean') {\n bytes.push(value ? 0xc3 : 0xc2);\n return 1;\n }\n // fixext 1 / undefined\n if (type === 'undefined') {\n bytes.push(0xd4, 0, 0);\n return 3;\n }\n throw new Error('Could not encode');\n}\n\nfunction encode(value) {\n var bytes = [];\n var defers = [];\n var size = _encode(bytes, defers, value);\n var buf = new ArrayBuffer(size);\n var view = new DataView(buf);\n\n var deferIndex = 0;\n var deferWritten = 0;\n var nextOffset = -1;\n if (defers.length > 0) {\n nextOffset = defers[0].offset;\n }\n\n var defer, deferLength = 0, offset = 0;\n for (var i = 0, l = bytes.length; i < l; i++) {\n view.setUint8(deferWritten + i, bytes[i]);\n if (i + 1 !== nextOffset) { continue; }\n defer = defers[deferIndex];\n deferLength = defer.length;\n offset = deferWritten + nextOffset;\n if (defer.bin) {\n var bin = new Uint8Array(defer.bin);\n for (var j = 0; j < deferLength; j++) {\n view.setUint8(offset + j, bin[j]);\n }\n } else if (defer.str) {\n utf8Write(view, offset, defer.str);\n } else if (defer.float) {\n view.setFloat64(offset, defer.float);\n }\n deferIndex++;\n deferWritten += deferLength;\n if (defers[deferIndex]) {\n nextOffset = defers[deferIndex].offset;\n }\n }\n return buf;\n}\n\nmodule.exports = encode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./browser/encode.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nfunction Decoder(buffer) {\n this.offset = 0;\n if (buffer instanceof ArrayBuffer) {\n this.buffer = buffer;\n } else if (ArrayBuffer.isView(buffer)) {\n this.buffer = buffer.buffer;\n } else {\n throw new Error('Invalid argument');\n }\n this.view = new DataView(buffer);\n}\n\nfunction utf8Read(view, offset, length) {\n var string = '';\n for (var i = offset, end = offset + length; i < end; i++) {\n var byte = view.getUint8(i);\n if ((byte & 0x80) === 0x00) {\n string += String.fromCharCode(byte);\n continue;\n }\n if ((byte & 0xe0) === 0xc0) {\n string += String.fromCharCode(\n ((byte & 0x0f) << 6) |\n (view.getUint8(++i) & 0x3f)\n );\n continue;\n }\n if ((byte & 0xf0) === 0xe0) {\n string += String.fromCharCode(\n ((byte & 0x0f) << 12) |\n ((view.getUint8(++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0)\n );\n continue;\n }\n if ((byte & 0xf8) === 0xf0) {\n string += String.fromCharCode(\n ((byte & 0x07) << 18) |\n ((view.getUint8(++i) & 0x3f) << 12) |\n ((view.getUint8(++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0)\n );\n continue;\n }\n throw new Error('Invalid byte ' + byte.toString(16));\n }\n return string;\n}\n\nDecoder.prototype.array = function (length) {\n var value = new Array(length);\n for (var i = 0; i < length; i++) {\n value[i] = this.parse();\n }\n return value;\n};\n\nDecoder.prototype.map = function (length) {\n var key = '', value = {};\n for (var i = 0; i < length; i++) {\n key = this.parse();\n value[key] = this.parse();\n }\n return value;\n};\n\nDecoder.prototype.str = function (length) {\n var value = utf8Read(this.view, this.offset, length);\n this.offset += length;\n return value;\n};\n\nDecoder.prototype.bin = function (length) {\n var value = this.buffer.slice(this.offset, this.offset + length);\n this.offset += length;\n return value;\n};\n\nDecoder.prototype.parse = function () {\n var prefix = this.view.getUint8(this.offset++);\n var value, length = 0, type = 0, hi = 0, lo = 0;\n\n if (prefix < 0xc0) {\n // positive fixint\n if (prefix < 0x80) {\n return prefix;\n }\n // fixmap\n if (prefix < 0x90) {\n return this.map(prefix & 0x0f);\n }\n // fixarray\n if (prefix < 0xa0) {\n return this.array(prefix & 0x0f);\n }\n // fixstr\n return this.str(prefix & 0x1f);\n }\n\n // negative fixint\n if (prefix > 0xdf) {\n return (0xff - prefix + 1) * -1;\n }\n\n switch (prefix) {\n // nil\n case 0xc0:\n return null;\n // false\n case 0xc2:\n return false;\n // true\n case 0xc3:\n return true;\n\n // bin\n case 0xc4:\n length = this.view.getUint8(this.offset);\n this.offset += 1;\n return this.bin(length);\n case 0xc5:\n length = this.view.getUint16(this.offset);\n this.offset += 2;\n return this.bin(length);\n case 0xc6:\n length = this.view.getUint32(this.offset);\n this.offset += 4;\n return this.bin(length);\n\n // ext\n case 0xc7:\n length = this.view.getUint8(this.offset);\n type = this.view.getInt8(this.offset + 1);\n this.offset += 2;\n return [type, this.bin(length)];\n case 0xc8:\n length = this.view.getUint16(this.offset);\n type = this.view.getInt8(this.offset + 2);\n this.offset += 3;\n return [type, this.bin(length)];\n case 0xc9:\n length = this.view.getUint32(this.offset);\n type = this.view.getInt8(this.offset + 4);\n this.offset += 5;\n return [type, this.bin(length)];\n\n // float\n case 0xca:\n value = this.view.getFloat32(this.offset);\n this.offset += 4;\n return value;\n case 0xcb:\n value = this.view.getFloat64(this.offset);\n this.offset += 8;\n return value;\n\n // uint\n case 0xcc:\n value = this.view.getUint8(this.offset);\n this.offset += 1;\n return value;\n case 0xcd:\n value = this.view.getUint16(this.offset);\n this.offset += 2;\n return value;\n case 0xce:\n value = this.view.getUint32(this.offset);\n this.offset += 4;\n return value;\n case 0xcf:\n hi = this.view.getUint32(this.offset) * Math.pow(2, 32);\n lo = this.view.getUint32(this.offset + 4);\n this.offset += 8;\n return hi + lo;\n\n // int\n case 0xd0:\n value = this.view.getInt8(this.offset);\n this.offset += 1;\n return value;\n case 0xd1:\n value = this.view.getInt16(this.offset);\n this.offset += 2;\n return value;\n case 0xd2:\n value = this.view.getInt32(this.offset);\n this.offset += 4;\n return value;\n case 0xd3:\n hi = this.view.getInt32(this.offset) * Math.pow(2, 32);\n lo = this.view.getUint32(this.offset + 4);\n this.offset += 8;\n return hi + lo;\n\n // fixext\n case 0xd4:\n type = this.view.getInt8(this.offset);\n this.offset += 1;\n if (type === 0x00) {\n this.offset += 1;\n return void 0;\n }\n return [type, this.bin(1)];\n case 0xd5:\n type = this.view.getInt8(this.offset);\n this.offset += 1;\n return [type, this.bin(2)];\n case 0xd6:\n type = this.view.getInt8(this.offset);\n this.offset += 1;\n return [type, this.bin(4)];\n case 0xd7:\n type = this.view.getInt8(this.offset);\n this.offset += 1;\n if (type === 0x00) {\n hi = this.view.getInt32(this.offset) * Math.pow(2, 32);\n lo = this.view.getUint32(this.offset + 4);\n this.offset += 8;\n return new Date(hi + lo);\n }\n return [type, this.bin(8)];\n case 0xd8:\n type = this.view.getInt8(this.offset);\n this.offset += 1;\n return [type, this.bin(16)];\n\n // str\n case 0xd9:\n length = this.view.getUint8(this.offset);\n this.offset += 1;\n return this.str(length);\n case 0xda:\n length = this.view.getUint16(this.offset);\n this.offset += 2;\n return this.str(length);\n case 0xdb:\n length = this.view.getUint32(this.offset);\n this.offset += 4;\n return this.str(length);\n\n // array\n case 0xdc:\n length = this.view.getUint16(this.offset);\n this.offset += 2;\n return this.array(length);\n case 0xdd:\n length = this.view.getUint32(this.offset);\n this.offset += 4;\n return this.array(length);\n\n // map\n case 0xde:\n length = this.view.getUint16(this.offset);\n this.offset += 2;\n return this.map(length);\n case 0xdf:\n length = this.view.getUint32(this.offset);\n this.offset += 4;\n return this.map(length);\n }\n\n throw new Error('Could not parse');\n};\n\nfunction decode(buffer) {\n var decoder = new Decoder(buffer);\n var value = decoder.parse();\n if (decoder.offset !== buffer.byteLength) {\n throw new Error((buffer.byteLength - decoder.offset) + ' trailing bytes');\n }\n return value;\n}\n\nmodule.exports = decode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./browser/decode.js\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 586e8d4..8065084 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "files": [ "lib/", - "dist/" + "browser/" ], "repository": { "type": "git", @@ -32,5 +32,9 @@ "test-cov": "./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- -r ./test/support/env -R dot ./test", "test-travis": "./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -r ./test/support/env -R spec ./test", "build": "rm -rf dist && ./node_modules/.bin/webpack --config support/webpack.config.js" + }, + "browser": { + "./lib/encode.js": "./browser/encode.js", + "./lib/decode.js": "./browser/decode.js" } } diff --git a/test/index.html b/test/index.html new file mode 100644 index 0000000..5c84b76 --- /dev/null +++ b/test/index.html @@ -0,0 +1,50 @@ + + + + notepack + + + + + + +