From 1524a003502a1c5d784da39fdb74d15476501c6a Mon Sep 17 00:00:00 2001 From: David Heidrich Date: Fri, 26 Feb 2016 16:59:23 +0100 Subject: [PATCH] fix(marking): removed treeWalker for now because it yields to wrong results --- build/js/marklib.js | 49 +++++++++++++++++----------------------- build/js/marklib.map | 2 +- build/js/marklib.min.js | 4 ++-- build/js/marklib.min.map | 2 +- build/js/site.js | 49 +++++++++++++++++----------------------- build/js/site.map | 2 +- build/js/site.min.js | 12 +++++----- build/js/site.min.map | 2 +- src/main/util/Util.js | 42 ++++++++++++++++++---------------- src/test/Marklib.js | 3 ++- 10 files changed, 79 insertions(+), 88 deletions(-) diff --git a/build/js/marklib.js b/build/js/marklib.js index 3c72022..164da00 100644 --- a/build/js/marklib.js +++ b/build/js/marklib.js @@ -3838,7 +3838,7 @@ return /******/ (function(modules) { // webpackBootstrap var maybeFoundNode = null; - Util.walkTextNodes(container, function (n) { + Util.walkDom(container, function (n) { var atrOffsetStart = n.parentNode.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START); atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart; var atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX); @@ -3854,63 +3854,56 @@ return /******/ (function(modules) { // webpackBootstrap return false; } return true; - }, null); + }); return maybeFoundNode; } /** - * Walks the dom tree unless func returns false - * Applies node to function + * Recursively walks the dom tree unless func returns false + * This is a lot more efficient then using any jQuery operations * + * Applies node to function * @param {Node} node * @param {Function} func - * @param {int} type, see `NodeFilter` - * @param {Object} [filter] skips empty text nodes by default * - * @returns {boolean} true if function did abort walk + * @returns {*} */ }, { key: 'walkDom', value: function walkDom(node, func) { - var _document; - - var type = arguments.length <= 2 || arguments[2] === undefined ? NodeFilter.SHOW_ALL : arguments[2]; - var filter = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3]; - if (!node) { return false; } - var args = [node, type, filter || function () { - return true; - }, false]; - args.push(false); - var walker = (_document = document).createTreeWalker.apply(_document, args); - while (walker.nextNode()) { - if (!func(walker.currentNode)) { - return true; + var children = node.childNodes; + if (!children) { + return false; + } + for (var i = 0; i < children.length; i++) { + if (!Util.walkDom(children[i], func)) { + return false; } } - return false; + return func(node); } /** * Extracts all TextNodes inside a container * @param {Node} el * @param {Function} func - * @param {Object} [filter] skips empty text nodes by default - * @returns {boolean} true if function did abort walk + * @returns {Array.} */ }, { key: 'walkTextNodes', value: function walkTextNodes(el, func) { - var filter = arguments.length <= 2 || arguments[2] === undefined ? function (node) { - return !Util.nodeIsEmpty(node); - } : arguments[2]; - - return Util.walkDom(el, func, NodeFilter.SHOW_TEXT, filter); + Util.walkDom(el, function (node) { + if (Node.TEXT_NODE === node.nodeType && !Util.nodeIsEmpty(node)) { + func(node); + } + return true; + }); } /** diff --git a/build/js/marklib.map b/build/js/marklib.map index a0fb3c6..a918fb8 100644 --- a/build/js/marklib.map +++ b/build/js/marklib.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 850eba21b8437fa5bd74","webpack:///./src/main/modules/Marklib.js","webpack:///./src/main/Rendering.js","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./~/core-js/library/fn/object/get-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./~/core-js/library/modules/$.to-object.js","webpack:///./~/core-js/library/modules/$.defined.js","webpack:///./~/core-js/library/modules/$.object-sap.js","webpack:///./~/core-js/library/modules/$.export.js","webpack:///./~/core-js/library/modules/$.global.js","webpack:///./~/core-js/library/modules/$.core.js","webpack:///./~/core-js/library/modules/$.ctx.js","webpack:///./~/core-js/library/modules/$.a-function.js","webpack:///./~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/core-js/library/fn/object/define-property.js","webpack:///./~/core-js/library/modules/$.js","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./~/babel-runtime/helpers/typeof.js","webpack:///./~/babel-runtime/core-js/symbol/iterator.js","webpack:///./~/core-js/library/fn/symbol/iterator.js","webpack:///./~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/core-js/library/modules/$.string-at.js","webpack:///./~/core-js/library/modules/$.to-integer.js","webpack:///./~/core-js/library/modules/$.iter-define.js","webpack:///./~/core-js/library/modules/$.library.js","webpack:///./~/core-js/library/modules/$.redefine.js","webpack:///./~/core-js/library/modules/$.hide.js","webpack:///./~/core-js/library/modules/$.property-desc.js","webpack:///./~/core-js/library/modules/$.descriptors.js","webpack:///./~/core-js/library/modules/$.has.js","webpack:///./~/core-js/library/modules/$.iterators.js","webpack:///./~/core-js/library/modules/$.iter-create.js","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/core-js/library/modules/$.wks.js","webpack:///./~/core-js/library/modules/$.shared.js","webpack:///./~/core-js/library/modules/$.uid.js","webpack:///./~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/core-js/library/modules/$.iter-step.js","webpack:///./~/core-js/library/modules/$.to-iobject.js","webpack:///./~/core-js/library/modules/$.iobject.js","webpack:///./~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/core-js/symbol.js","webpack:///./~/core-js/library/fn/symbol/index.js","webpack:///./~/core-js/library/modules/es6.symbol.js","webpack:///./~/core-js/library/modules/$.keyof.js","webpack:///./~/core-js/library/modules/$.get-names.js","webpack:///./~/core-js/library/modules/$.enum-keys.js","webpack:///./~/core-js/library/modules/$.is-array.js","webpack:///./~/core-js/library/modules/$.an-object.js","webpack:///./~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/core-js/library/fn/object/create.js","webpack:///./src/main/RenderResult.js","webpack:///./src/main/RenderingEvents.js","webpack:///./~/babel-runtime/helpers/slicedToArray.js","webpack:///./~/babel-runtime/core-js/is-iterable.js","webpack:///./~/core-js/library/fn/is-iterable.js","webpack:///./~/core-js/library/modules/core.is-iterable.js","webpack:///./~/core-js/library/modules/$.classof.js","webpack:///./~/babel-runtime/core-js/get-iterator.js","webpack:///./~/core-js/library/fn/get-iterator.js","webpack:///./~/core-js/library/modules/core.get-iterator.js","webpack:///./~/core-js/library/modules/core.get-iterator-method.js","webpack:///./~/babel-runtime/core-js/set.js","webpack:///./~/core-js/library/fn/set.js","webpack:///./~/core-js/library/modules/es6.set.js","webpack:///./~/core-js/library/modules/$.collection-strong.js","webpack:///./~/core-js/library/modules/$.redefine-all.js","webpack:///./~/core-js/library/modules/$.strict-new.js","webpack:///./~/core-js/library/modules/$.for-of.js","webpack:///./~/core-js/library/modules/$.iter-call.js","webpack:///./~/core-js/library/modules/$.is-array-iter.js","webpack:///./~/core-js/library/modules/$.to-length.js","webpack:///./~/core-js/library/modules/$.set-species.js","webpack:///./~/core-js/library/modules/$.collection.js","webpack:///./~/core-js/library/modules/es7.set.to-json.js","webpack:///./~/core-js/library/modules/$.collection-to-json.js","webpack:///./~/babel-runtime/core-js/object/assign.js","webpack:///./~/core-js/library/fn/object/assign.js","webpack:///./~/core-js/library/modules/es6.object.assign.js","webpack:///./~/core-js/library/modules/$.object-assign.js","webpack:///./~/wolfy87-eventemitter/EventEmitter.js","webpack:///./src/main/util/Util.js"],"names":[],"mappings":"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;AACA,G;;;;;;ACNA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;AC1BD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AChBA;;AAEA,uGAAsG,mBAAmB,EAAE,mBAAmB,oGAAoG;;AAElP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,EAAC;AACD;AACA,G;;;;;;ACpBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,sD;;;;;;ACFA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,iD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B,2BAA0B;AAC1B,2BAA0B;AAC1B,sBAAqB;AACrB;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,8DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB,2BAA0B;AAC1B,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,G;;;;;;AC9JA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAgE,gBAAgB;AAChF;AACA,IAAG,2CAA2C,gCAAgC;AAC9E;AACA;AACA,G;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAoB,aAAa;AACjC,IAAG;AACH,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,G;;;;;;ACtDA;AACA;;AAEA,4BAA2B,uCAAiD,E;;;;;;ACH5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACVA,mBAAkB,wD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;;AAEA,2CAA0C,gCAAqC,E;;;;;;ACH/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,cAAa,gCAAgC;AAC7C,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,iB;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,WAAW;AAC1B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,SAAS;AACxB,iBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA,wBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,MAAM;AACrB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,KAAK;AACpB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAe,EAAE;AACjB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA,kDAAiD;AACjD;;AAEA;AACA,4BAA2B,mBAAmB;AAC9C;AACA,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"js/marklib.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[\"Marklib\"] = factory();\n\telse\n\t\troot[\"Marklib\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\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/** WEBPACK FOOTER **\n ** webpack/bootstrap 850eba21b8437fa5bd74\n **/","import Rendering from '../Rendering';\nimport Util from '../util/Util';\nimport RenderResult from '../RenderResult';\nimport RenderingEvents from '../RenderingEvents';\n\nexport { Rendering, Util, RenderResult, RenderingEvents };\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/modules/Marklib.js\n **/","/* global Node */\n\nimport RenderResult from './RenderResult';\nimport RenderingEvents from './RenderingEvents';\nimport Util, { ATTR_DATA_ORIGINAL_INDEX, DATA_IS_SELECTION } from './util/Util';\n\n/**\n * @type {string}\n */\nconst TAG_NAME = 'x-marker';\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n/**\n * @type {string}\n */\nconst DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n/**\n * @type {string}\n */\nconst ATTR_DATA_START_END = 'data-is-start-end';\n/**\n * @type {string}\n */\nconst ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n/**\n * @type {string}\n */\nconst ATTR_DATA_ID = 'data-selection-id';\n\n/**\n * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n * @type {number}\n */\nconst DOCUMENT_POSITION_CONTAINED_BY = 16;\n\n\n/**\n * @type {string}\n */\nexport const EVENT_WRAPPED_NODE = 'wrapped-node';\n\n/**\n * Manages a single Render\n */\nclass Rendering extends RenderingEvents {\n\n /**\n * @param {Document} document\n * @param {object} options\n * @param {Node} context\n */\n constructor(document, options, context) {\n super(options, document);\n\n /**\n * ID of rendering, will be set on each element that is part of it\n * @type {String}\n */\n this.id = Util.guid();\n\n /**\n * StartContainer\n * @type {Node}\n */\n this.startContainer = null;\n\n /**\n * EndContainer\n * @type {Node}\n */\n this.endContainer = null;\n\n /**\n * @type {Node}\n */\n this.context = context || this.document;\n\n /**\n * Flag if this instance has been rendered\n * @type {RenderResult}\n * @private\n */\n this._renderResult = null;\n }\n\n /**\n * @returns {string} id of this rendering\n */\n getId() {\n return this.id;\n }\n\n /**\n * @param {string} id\n * @returns {Rendering}\n */\n setId(id) {\n this.id = id;\n\n if (this._renderResult) {\n this.wrapperNodes.forEach((node) => node.setAttribute(ATTR_DATA_ID, this.id));\n }\n\n return this;\n }\n\n /**\n * Creates a Template used as a wrapper and an indication that this is a highlight node\n * @param {Boolean} [omitHighlight]\n * @returns {Node}\n * @private\n */\n _createWrapTemplate(omitHighlight) {\n const el = this.document.createElement(TAG_NAME);\n const vTrue = \"true\";\n\n if (!omitHighlight) {\n el.className = this.options.className.join(' ');\n // save this marker instance to given node\n Rendering.setMarklibInstance(el, this);\n // keep track of highlight nodes\n this.wrapperNodes.push(el);\n el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n el.setAttribute(ATTR_DATA_ID, this.getId());\n }\n el.setAttribute(DATA_IS_SELECTION, vTrue);\n\n return el;\n }\n\n /**\n * Creates a Template to use as start and end marks\n * @param {String} text\n * @returns {Node}\n * @private\n */\n _createStartEndWrapTemplate(text) {\n const el = this._createWrapTemplate();\n el.setAttribute(ATTR_DATA_START_END, 'true');\n el.textContent = text;\n return el;\n }\n\n\n /**\n * Creates Start or End Container Element\n * @param initialNode\n * @param text\n * @param offset\n * @param index\n * @returns {Node}\n */\n _createStartOrEndContainer(initialNode, text, offset, index) {\n const wrapper = this._createStartEndWrapTemplate(text);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(initialNode, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\n return wrapper;\n }\n\n /**\n * Wraps given element\n * @param {Node|HTMLElement} el\n * @param [optionalLength]\n * @param [optionalIndex]\n * @param [optionalIsSameNode]\n * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n * @returns {Node}\n * @private\n */\n _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n const originalIndex = optionalIndex >= 0 ? optionalIndex : Util.calcIndex(el);\n const wrapper = this._createWrapTemplate(omitHighlight);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(el, originalIndex));\n const offsetLength = optionalLength >= 0 ? optionalLength : Util.getOffsetParentIfHas(el);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\n // Save a reference to original text node in wrapper\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\n if (optionalIsSameNode) {\n wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n }\n const wrap = Util.wrap(el, wrapper);\n\n this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\n return wrap;\n }\n\n /**\n * Create split container element\n * @param originalElement {Node} original text node element that is created a wrapper for\n * @param index\n * @param offset\n * @returns {Node}\n */\n _createSplitContainer(originalElement, index, offset) {\n const wrapper = this.document.createElement(TAG_NAME);\n wrapper.setAttribute(DATA_IS_SELECTION, 'true');\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(originalElement, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n return wrapper;\n }\n\n /**\n * Walks the tree\n * @param start\n * @param endContainer\n * @param nextParent\n */\n walk(start, endContainer, nextParent) {\n let nextParentNode = start;\n while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n const currentParentNode = nextParentNode;\n nextParentNode = nextParentNode.parentNode;\n if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n break;\n }\n }\n }\n\n\n /**\n * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n * If an Element node is found, it will wrap all children of this node inside a element as well.\n * It will stop if endContainer is found as a node\n *\n * @param {Node} start\n * @param {Node} endContainer\n * @returns {boolean} (true if endContainer was found)\n */\n wrapSiblings(start, endContainer) {\n let next = start;\n let found = false;\n\n // Capsule some logic\n const wrap = (n) => {\n const instance = Rendering.getMarklibInstance(n.parentNode);\n if (n.parentNode.hasAttribute(ATTR_DATA_START_END) &&\n n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) &&\n instance === this) {\n this._createWrap(n, undefined, undefined, undefined, true);\n } else {\n this._createWrap(n);\n }\n };\n\n // helper functions\n\n const wrapIf = (n) => {\n if (!Util.nodeIsEmpty(n)) {\n wrap(n);\n }\n };\n\n const walkIfContained = (e) => {\n if (e === endContainer) {\n return false;\n }\n if (Node.TEXT_NODE === e.nodeType) {\n wrapIf(e);\n }\n return true;\n };\n\n const walkIfNotContained = (el) => {\n wrapIf(el);\n };\n\n while (next !== null && next !== endContainer) {\n const currentNext = next;\n next = next.nextSibling;\n // Found a text node, directly wrap inside a span\n if (Node.TEXT_NODE === currentNext.nodeType) {\n wrapIf(currentNext);\n } else {\n if ((currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY)) {\n Util.walkDom(currentNext, walkIfContained);\n found = true;\n } else {\n Util.walkTextNodes(currentNext, walkIfNotContained);\n }\n if (found) {\n return true;\n }\n }\n }\n return found;\n }\n\n /**\n * Marks text of the same node\n * @param {Node} textNode\n * @param {int} startIndex\n * @param {int} endIndex\n * @private\n */\n _markTextSameNode(textNode, startIndex, endIndex) {\n const initialText = textNode.nodeValue;\n const initialIndex = Util.calcIndex(textNode);\n\n if (!initialText) {\n return false;\n }\n // If there is an unmarked part in the beginning of the text node,\n // cut off that part and put it into it's own textnode.\n if (startIndex > 0) {\n const textBefore = initialText.slice(0, startIndex);\n textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n // wrap cutted text node:\n Util.wrap(textNode.previousSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode)));\n }\n // If there is an unmarked part at the end of the text node,\n // cut off that part and put it into it's own textnode.\n if (endIndex < initialText.length) {\n const textAfter = initialText.slice(endIndex, initialText.length);\n textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n Util.wrap(textNode.nextSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode) + endIndex));\n }\n\n // Cutoff the unmarked parts and wrap the textnode into a span.\n textNode.nodeValue = initialText.slice(startIndex, endIndex);\n this.startContainer = this._createWrap(textNode,\n Util.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n this.endContainer = this.startContainer;\n return this.startContainer;\n }\n\n\n /**\n * Marks text of end and start containers if start and end nodes are different\n * Important: There might be no end container!\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @returns {{startT: (Node), endT: (Node)}}\n * @private\n */\n _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n // Get current for both start and end:\n const startContainerIndex = Util.calcIndex(startContainer);\n const endContainerIndex = Util.calcIndex(endContainer);\n\n // Split text\n const fullTextStartValue = startContainer.nodeValue;\n // init with startContainer because we may have not a text node here\n let startT = startContainer;\n\n if (undefined !== fullTextStartValue) {\n const partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n // Set new text to start node\n startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\n const offsetStart = Util.getOffsetParentIfHas(startContainer);\n // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n startT = this._createStartOrEndContainer(startContainer, partTextStartValue,\n offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n // Append this node after startContainer\n startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n this.startContainer = startT;\n\n if (startContainer.nodeValue) {\n // Wrap start container in detection node, offset is always 0 or parent offset.\n Util.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex,\n Util.getOffsetParentIfHas(startContainer)));\n }\n }\n\n // init with endContainer because we may have not a text node here\n let endT = endContainer;\n\n // 2. Extract end Text node,\n const fullTextEndValue = endContainer.nodeValue;\n // It's possible that end container value is null (if a whole paragraph is marked)\n if (undefined !== fullTextEndValue) {\n // Split text\n const partTextEndValue = fullTextEndValue.slice(0, endOffset);\n endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n // End Container start offset is always 0 or parent offset.\n endT = this._createStartOrEndContainer(endContainer, partTextEndValue,\n Util.getOffsetParentIfHas(endContainer), endContainerIndex);\n\n endContainer.parentNode.insertBefore(endT, endContainer);\n this.endContainer = endT;\n const offsetParent = Util.getOffsetParentIfHas(endContainer);\n Util.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex,\n offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n }\n\n return {\n startT,\n endT\n };\n }\n\n /**\n * Renders a selection\n * @param {Node} startContainerP\n * @param {Node} endContainerP\n * @param {Node} commonAncestor\n * @param {int} startOffset\n * @param {int} endOffsetP\n * @returns RenderResult\n * @private\n */\n _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n if (this._renderResult) {\n return this._renderResult;\n }\n let startContainer = startContainerP;\n let endContainer = endContainerP;\n let endOffset = endOffsetP;\n let outer = Util.parents(startContainer, commonAncestor);\n outer = outer[outer.length - 1];\n const contextContainer = outer ? outer : commonAncestor;\n\n // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n // but are different nodes:\n\n // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n // 1: First detect real start offset in startContainer:\n\n // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n // So first select that container:\n const originalStartOffset = Util.findOriginalOffset(startContainer);\n const originalEndOffset = Util.findOriginalOffset(endContainer);\n\n // We may run into Browser Bugs:\n\n // If both are not text nodes, use next sibling as endContainer\n if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n if (startContainer === endContainer) {\n endContainer = endContainer.nextElementSibling || endContainer;\n }\n }\n // IF start/end container is not type of text, select first child text node:\n // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n // Sometimes does not work correctly... (specially when DOM was modified)\n if (startContainer.nodeType !== Node.TEXT_NODE) {\n Util.walkDom(startContainer, (el) => {\n if (el.nodeType === Node.TEXT_NODE) {\n startContainer = el;\n return false;\n }\n return true;\n });\n }\n\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n let toFindNode = startContainer;\n\n if (endOffset === 0) {\n toFindNode = endContainer.previousElementSibling || startContainer;\n }\n\n // Get the last text node:\n const endContainerContents = Util.closest(toFindNode, ':not([' + DATA_IS_SELECTION + '])').childNodes;\n if (endContainerContents.length) {\n const r = endContainerContents[endContainerContents.length - 1];\n if (r.nodeType === Node.TEXT_NODE) {\n endContainer = r;\n endOffset = r.length;\n } else {\n let f = r.lastChild;\n while (f !== null) {\n if (f && f.nodeType === Node.TEXT_NODE) {\n endContainer = f;\n endOffset = f.length;\n if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n endOffset = parseInt(f.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n }\n }\n f = f.lastChild;\n }\n }\n }\n // still no textNode?\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n throw Error('Could not found endContainer, highlighting would be unstable');\n }\n }\n\n this._renderResult = new RenderResult(\n // Real offset is calculated by relative length and absolute length\n originalStartOffset + startOffset,\n originalEndOffset + endOffset,\n // get the path for this selection\n Util.getPath(startContainer, this.context),\n Util.getPath(endContainer, this.context)\n );\n\n this._renderResult.instance = this;\n\n\n this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\n return this._renderResult;\n }\n\n /**\n * Renders a given selection\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {Node} contextContainer\n * @param {Boolean} outer\n * @private\n */\n _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n // if start and end-container are the same, mark text on the same node\n if (startContainer === endContainer) {\n this._markTextSameNode(startContainer, startOffset, endOffset);\n } else {\n const result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n const index = this.wrapperNodes.indexOf(result.endT);\n // remove endContainer, to keep order:\n this.wrapperNodes.splice(index, 1);\n if (!outer) {\n this.wrapSiblings(result.startT.nextSibling, endContainer);\n } else {\n this.walk(result.startT, endContainer, contextContainer);\n }\n this.wrapperNodes.push(result.endT);\n }\n }\n\n /**\n * Prepares to render a Selection with path selectors\n * ```\n * A Path looks like this:\n *\n * #selector;#textnode;#offset\n * ``\n * @param {string} startPath\n * @param {string} endPath\n * @returns {string}\n */\n renderWithPath(startPath, endPath) {\n const startContainer = Util.deserializePath(startPath, this.context);\n const endContainer = Util.deserializePath(endPath, this.context);\n if (startContainer && endContainer && startContainer.node && endContainer.node) {\n const range = document.createRange();\n range.setStart(startContainer.node, startContainer.offset);\n range.setEnd(endContainer.node, endContainer.offset);\n const text = range.toString();\n const result = this.renderWithRange(range);\n result.text = text;\n return text;\n }\n throw new Error('Could not find start- and/or end-container in document');\n }\n\n /**\n * @returns {RenderResult}\n */\n get result() {\n return this._renderResult;\n }\n\n /**\n * Renders a result (that returned from `renderWithRange`)\n * @param {RenderResult|Object} result\n * @returns {string}\n */\n renderWithResult(result) {\n return this.renderWithPath(\n `${result.startContainerPath};${result.startOffset}`,\n `${result.endContainerPath};${result.endOffset}`);\n }\n\n /**\n * Prepares a selection with a range object\n * @param {Range} range\n * @returns {Object}\n */\n renderWithRange(range) {\n const text = range.toString();\n const result = this._renderWithElements(range.startContainer, range.endContainer,\n range.commonAncestorContainer, range.startOffset, range.endOffset);\n result.text = text;\n return result;\n }\n\n /**\n * Removes bindings and classNames to nodes\n */\n destroy() {\n this.wrapperNodes.forEach((node) => {\n delete node.marklibInstance;\n node.className = '';\n });\n this.removeEvent();\n }\n\n /**\n * @param {Node} el\n * @param {Rendering} instance\n * @returns {Node}\n */\n static setMarklibInstance(el, instance) {\n el.marklibInstance = instance;\n return el;\n }\n\n /**\n * @param {Node} el\n * @returns {Rendering|null|undefined}\n */\n static getMarklibInstance(el) {\n return el ? el.marklibInstance : null;\n }\n}\n\nexport default Rendering;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/Rendering.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 8\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 9\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 10\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 11\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 13\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 15\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 18\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 20\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 21\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 24\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 25\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 26\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 28\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 29\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 30\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 32\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 33\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 34\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 38\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 40\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 42\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 45\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 46\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 47\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 48\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 49\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 52\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 53\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 55\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 57\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 60\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 61\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 63\n ** module chunks = 0 1\n **/","/**\n * A Render Result\n */\nexport default class RenderResult {\n /**\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {String} startContainerPath\n * @param {String} endContainerPath\n */\n constructor(startOffset, endOffset, startContainerPath, endContainerPath) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.startContainerPath = startContainerPath;\n this.endContainerPath = endContainerPath;\n this._renderingInstance = null;\n }\n\n /**\n * @param {Object} result\n * @return RenderResult\n */\n static fromObject(result) {\n return new RenderResult(\n result.startOffset,\n result.endOffset,\n result.startContainerPath,\n result.endContainerPath\n );\n }\n\n /**\n * @returns {Object}\n */\n serialize() {\n return {\n startOffset: this.startOffset,\n endOffset: this.endOffset,\n startContainerPath: this.startContainerPath,\n endContainerPath: this.endContainerPath\n };\n }\n\n /**\n * @param {String} text\n */\n set text(text) {\n this._text = text;\n }\n\n /**\n * @returns {String}\n */\n get text() {\n return this._text;\n }\n\n /**\n * @returns {null|Rendering}\n */\n get instance() {\n return this._renderingInstance;\n }\n\n /**\n * @param {null|Rendering} instance\n */\n set instance(instance) {\n this._renderingInstance = instance;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderResult.js\n **/","/* global Set */\n\nimport EventEmitter from 'wolfy87-eventemitter';\nimport Rendering from './Rendering';\nimport Util from './util/Util';\n\n/**\n * @type {string}\n */\nexport const EVENT_CLICK = 'click';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSEENTER = 'hover-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSELEAVE = 'hover-leave';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_ENTER = 'tree-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_LEAVE = 'tree-leave';\n\n/**\n * Generic Event Handlings for Renderer\n */\nexport default class RenderingEvents extends EventEmitter {\n\n /**\n * @param {Object} options\n * @param {Document} document\n */\n constructor(options, document) {\n super();\n\n /**\n * Options\n * @type {Object}\n */\n this.options = {\n hoverClass: 'marklib--hover',\n treeClass: 'marklib--tree',\n className: ['marking']\n };\n\n this.options = Object.assign(this.options, options || {});\n\n if (typeof this.options.className === 'string') {\n this.options.className = this.options.className.split(' ');\n }\n\n /**\n * A collection of all nodes that are part of all events\n * @type {Array}\n */\n this.wrapperNodes = [];\n\n /**\n * @type {Document}\n */\n this.document = document;\n }\n\n /**\n * Constructs a new Range from rendered result\n * @returns {Range}\n */\n get range() {\n const range = this.document.createRange();\n const textNodes = [];\n\n this.wrapperNodes.forEach((wrapper) => {\n Util.walkTextNodes(wrapper, (node) => {\n textNodes.push(node);\n });\n });\n\n if (textNodes.length > 0) {\n const lastTextNode = textNodes[textNodes.length - 1];\n range.setStart(textNodes[0], 0);\n range.setEnd(lastTextNode, lastTextNode.length);\n return range;\n }\n\n return null;\n }\n\n static globalEmitter() {\n return RenderingEvents.staticEventListener;\n }\n}\n\nRenderingEvents.staticEventListener = new EventEmitter();\n\n\nif (!global.__MARKLIB_EVENTS__) {\n global.__MARKLIB_EVENTS__ = true;\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.treeClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.treeClass);\n });\n });\n\n (function init() {\n const currentHoverInstances = new Set();\n const betweenInstances = new Set();\n\n function checkMarklibInstance(e) {\n const instance = Rendering.getMarklibInstance(e);\n // instanceof check will fail if used in test scenario where different DOMs are used\n // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n return instance && (instance instanceof Rendering || 'wrapperNodes' in instance);\n }\n\n function closestInstance(e) {\n const closest = Util.closestCallback(\n e.target,\n (thisE) => checkMarklibInstance(thisE)\n );\n if (typeof closest === 'object') {\n return Rendering.getMarklibInstance(closest);\n }\n return false;\n }\n\n function getInstancesBetween(e, instance) {\n return Util.parentsCallback(\n e.target,\n (el) => checkMarklibInstance(el) && Rendering.getMarklibInstance(el) !== instance\n ).map(el => Rendering.getMarklibInstance(el));\n }\n\n function mouseOutClear() {\n currentHoverInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n thisInstance.emit(EVENT_MOUSELEAVE);\n });\n currentHoverInstances.clear();\n\n betweenInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n thisInstance.emit(EVENT_PART_TREE_LEAVE);\n });\n\n betweenInstances.clear();\n }\n\n /**\n * @param {Event} e\n * @returns {Array|boolean}\n */\n function findTarget(e) {\n let instance = closestInstance(e);\n if (instance) {\n const between = getInstancesBetween(e, instance);\n if (e.target.textContent !== instance.result.text && between.length > 0) {\n let allInstances = between;\n allInstances.unshift(instance);\n // take the smallest selection\n allInstances = allInstances.sort(\n (a, b) => a.result.text.length < b.result.text.length ? -1 : 1\n );\n instance = allInstances[0];\n }\n return [instance, between];\n }\n return false;\n }\n\n global.addEventListener('click', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n Rendering.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n instance.emit(EVENT_CLICK, e, between);\n }\n }, true);\n\n global.addEventListener('mouseover', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n\n // find instances that lay in between the node\n mouseOutClear();\n between.forEach((instanceBetween) => {\n betweenInstances.add(instanceBetween);\n instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n });\n instance.emit(EVENT_MOUSEENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n currentHoverInstances.add(instance);\n } else {\n mouseOutClear();\n }\n }, true);\n })();\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderingEvents.js\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 66\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 67\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 68\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').isIterable = function(it){\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./$.cof')\n , TAG = require('./$.wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.classof.js\n ** module id = 70\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 71\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 72\n ** module chunks = 0 1\n **/","var anObject = require('./$.an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./$.core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 73\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/set.js\n ** module id = 75\n ** module chunks = 0 1\n **/","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nmodule.exports = require('../modules/$.core').Set;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/set.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'use strict';\nvar strong = require('./$.collection-strong');\n\n// 23.2 Set Objects\nrequire('./$.collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.set.js\n ** module id = 77\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , ctx = require('./$.ctx')\n , strictNew = require('./$.strict-new')\n , defined = require('./$.defined')\n , forOf = require('./$.for-of')\n , $iterDefine = require('./$.iter-define')\n , step = require('./$.iter-step')\n , ID = require('./$.uid')('id')\n , $has = require('./$.has')\n , isObject = require('./$.is-object')\n , setSpecies = require('./$.set-species')\n , DESCRIPTORS = require('./$.descriptors')\n , isExtensible = Object.isExtensible || isObject\n , SIZE = DESCRIPTORS ? '_s' : 'size'\n , id = 0;\n\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!$has(it, ID)){\n // can't set id to frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add id\n if(!create)return 'E';\n // add missing object id\n hide(it, ID, ++id);\n // return object id with prefix\n } return 'O' + it[ID];\n};\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n strictNew(that, C, NAME);\n that._i = $.create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-strong.js\n ** module id = 78\n ** module chunks = 0 1\n **/","var redefine = require('./$.redefine');\nmodule.exports = function(target, src){\n for(var key in src)redefine(target, key, src[key]);\n return target;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine-all.js\n ** module id = 79\n ** module chunks = 0 1\n **/","module.exports = function(it, Constructor, name){\n if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.strict-new.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var ctx = require('./$.ctx')\n , call = require('./$.iter-call')\n , isArrayIter = require('./$.is-array-iter')\n , anObject = require('./$.an-object')\n , toLength = require('./$.to-length')\n , getIterFn = require('./core.get-iterator-method');\nmodule.exports = function(iterable, entries, fn, that){\n var iterFn = getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n call(iterator, f, step.value, entries);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.for-of.js\n ** module id = 81\n ** module chunks = 0 1\n **/","// call something on iterator step with safe closing on error\nvar anObject = require('./$.an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-call.js\n ** module id = 82\n ** module chunks = 0 1\n **/","// check on default Array iterator\nvar Iterators = require('./$.iterators')\n , ITERATOR = require('./$.wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array-iter.js\n ** module id = 83\n ** module chunks = 0 1\n **/","// 7.1.15 ToLength\nvar toInteger = require('./$.to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-length.js\n ** module id = 84\n ** module chunks = 0 1\n **/","'use strict';\nvar core = require('./$.core')\n , $ = require('./$')\n , DESCRIPTORS = require('./$.descriptors')\n , SPECIES = require('./$.wks')('species');\n\nmodule.exports = function(KEY){\n var C = core[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-species.js\n ** module id = 85\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , global = require('./$.global')\n , $export = require('./$.export')\n , fails = require('./$.fails')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , forOf = require('./$.for-of')\n , strictNew = require('./$.strict-new')\n , isObject = require('./$.is-object')\n , setToStringTag = require('./$.set-to-string-tag')\n , DESCRIPTORS = require('./$.descriptors');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n } else {\n C = wrapper(function(target, iterable){\n strictNew(target, C, NAME);\n target._c = new Base;\n if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n });\n $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n if('size' in proto)$.setDesc(C.prototype, 'size', {\n get: function(){\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./$.export');\n\n$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.set.to-json.js\n ** module id = 87\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar forOf = require('./$.for-of')\n , classof = require('./$.classof');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n var arr = [];\n forOf(this, false, arr.push, arr);\n return arr;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-to-json.js\n ** module id = 88\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 89\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/$.core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 90\n ** module chunks = 0 1\n **/","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./$.export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 19.1.2.1 Object.assign(target, source, ...)\nvar $ = require('./$')\n , toObject = require('./$.to-object')\n , IObject = require('./$.iobject');\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = require('./$.fails')(function(){\n var a = Object.assign\n , A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , $$ = arguments\n , $$len = $$.length\n , index = 1\n , getKeys = $.getKeys\n , getSymbols = $.getSymbols\n , isEnum = $.isEnum;\n while($$len > index){\n var S = IObject($$[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n }\n return T;\n} : Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","/*!\n * EventEmitter v4.2.11 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function () {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var exports = this;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n i = listeners.length;\n\n while (i--) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}.call(this));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/wolfy87-eventemitter/EventEmitter.js\n ** module id = 93\n ** module chunks = 0 1\n **/","/* global Node, NodeList, Element */\n\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n/**\n * @type {string}\n */\nexport const DATA_IS_SELECTION = 'data-is-selection';\n/**\n * @type {string}\n */\nconst SERIALIZE_SEPARATOR = \";\";\n\nimport { ATTR_DATA_ORIGINAL_OFFSET_START } from '../Rendering';\n\n// polyfill for matchesSelector, IE 10/11 does not support Element.matches\nif (Element && !Element.prototype.matches) {\n const p = Element.prototype;\n p.matches = p.matchesSelector ||\n p.mozMatchesSelector || p.msMatchesSelector ||\n p.oMatchesSelector || p.webkitMatchesSelector;\n}\n\n/**\n * Utility class\n * Contains DOM/Node manipulation helpers\n */\nexport default\nclass Util {\n\n /**\n * Filter for a NodeList\n * @param {NodeList} nodes\n * @param {Function} func\n *\n * @returns {Array.}\n */\n static nodeListFilter(nodes, func) {\n return Array.prototype.filter.call(nodes || [], func);\n }\n\n\n /**\n * Generates a unique id\n *\n * @return {String}\n */\n static guid() {\n const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\n s4() + '-' + s4() + s4() + s4();\n }\n\n /**\n * Checks if a given node is empty\n * @param {HTMLElement} node\n *\n * @returns {*}\n */\n static nodeIsEmpty(node) {\n return node.nodeValue.match(/^[\\s]*$/g);\n }\n\n\n /**\n * @param {HTMLElement} node\n * @param [optionalList]\n *\n * @return {int} the index of this node in context to it's siblings\n */\n static index(node, optionalList) {\n const children = optionalList || (node.nodeType === Node.TEXT_NODE ?\n node.parentNode.childNodes : node.parentNode.children);\n return Array.prototype.indexOf.call(children || [], node);\n }\n\n /**\n * Wraps given `elms` in given `wrapper`\n *\n * @param {HTMLElement|Array.|Node} elms\n * @param {HTMLElement|Node} wrapper\n *\n * @return {HTMLElement}\n */\n static wrap(elms, wrapper) {\n let thisElms = elms;\n\n if (!thisElms) {\n return wrapper;\n }\n // Convert `elms` to an array, if necessary.\n if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n thisElms = [thisElms];\n }\n for (let i = thisElms.length - 1; i >= 0; i--) {\n const child = (i > 0) ? wrapper.cloneNode(true) : wrapper;\n const el = thisElms[i];\n // Cache the current parent and sibling.\n const parent = el.parentNode;\n const sibling = el.nextSibling;\n\n child.appendChild(el);\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n }\n return wrapper;\n }\n\n /**\n * Will calculate an index depending on an already modified dom by marklib\n * @param {HTMLElement|Node} node\n *\n * @returns {int|boolean}\n */\n static calcIndex(node) {\n let calculatedIndex = 0;\n let foundWrapper = false;\n const nodes = node.parentNode.childNodes;\n const length = nodes.length;\n for (let thisIndex = 0; thisIndex < length; thisIndex++) {\n const el = nodes[thisIndex];\n if (el === node) {\n break;\n }\n // reset index when original index is found\n const maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\n if (maybeIndexOfOriginal) {\n calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n foundWrapper = true;\n }\n calculatedIndex++;\n }\n return foundWrapper ? calculatedIndex : Util.index(node);\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {String} [optionalSelector] will test given element against a selector\n * if matches, returns this element immediately\n *\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parents(el, optionalSelector) {\n return Util.parentsCallback(el, (element) => {\n if (optionalSelector && ((element === optionalSelector) ||\n ((typeof optionalSelector === 'string') && element.matches &&\n element.matches(optionalSelector)))) {\n return true;\n } else if (!optionalSelector) {\n return true;\n }\n return false;\n });\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {Function} callback\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parentsCallback(el, callback) {\n let element = el;\n const foundElements = [];\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (callback(element)) {\n foundElements.push(element);\n }\n }\n return foundElements;\n }\n\n /**\n * Finds a parent node (the closest) with a given selector\n * @param {Node} el\n * @param {String} selector\n *\n * @returns {Node|boolean}\n */\n static parent(el, selector) {\n let element = el;\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (element.matches && element.matches(selector)) {\n return element;\n }\n }\n return false;\n }\n\n /**\n * Finds the closest element including itself matching a given selector\n * @param {Node} el\n * @param selector\n *\n * @returns {Node|boolean}\n */\n static closest(el, selector) {\n return Util.closestCallback(el, (element) => element.matches && element.matches(selector));\n }\n\n /**\n * Finds the closest element including itself matching a callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static closestCallback(el, callback) {\n let element = el;\n while (element !== null) {\n if (callback(element)) {\n return element;\n }\n element = element.parentNode;\n }\n return false;\n }\n\n /**\n * Finds the outermost fitting element that matches callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static outerMostCallback(el, callback) {\n let element = el;\n let lastValid = false;\n while (element !== null) {\n if (callback(element)) {\n lastValid = element;\n }\n element = element.parentNode;\n }\n return lastValid;\n }\n\n /**\n * @param {HTMLElement} n\n *\n * @return {boolean}\n */\n static isMarkNode(n) {\n return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n }\n\n /**\n * Determines the correct paths and excludes all `marklib` generated content\n * TODO: To improve performance we could shorten the path if an ID is present in it.\n * @param {HTMLElement|Node} el\n * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n * @returns {string}\n */\n static getPath(el, context) {\n let path = null;\n let node = el;\n\n const filterSiblings = (thisEl) => {\n return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n };\n\n while (node) {\n let name = null;\n // If node is a text-node, save index\n if (Node.TEXT_NODE === node.nodeType) {\n /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n * valid before the dom changes. We store the last known index position inside all wrapper elements\n * We select the outermost\n */\n\n // Extract original index of this node:\n // Outer most data-original-index is original index\n const outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n // if element is not yet wrapped in span, recalculate index based on parent container:\n // We have to do this because text node indexes != element indexes...\n let calculatedIndex = 0;\n if (!outerMostElement) {\n calculatedIndex = Util.calcIndex(node);\n }\n const index = outerMostElement ? parseInt(\n outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n name = SERIALIZE_SEPARATOR + index;\n } else {\n name = node.nodeName;\n }\n\n if (!name) {\n break;\n }\n\n name = name.toLowerCase();\n\n const parent = node.parentNode;\n\n if (Util.isMarkNode(node)) {\n if (parent !== context) {\n node = parent;\n continue;\n } else {\n break;\n }\n }\n\n // Select only siblings that are not part of selection and are of the same type\n // (because we use nth-of-type selector later)\n const siblings = Util.nodeListFilter(parent.children, filterSiblings);\n const nodeIndex = Util.index(node, siblings);\n\n if (siblings.length > 1 && nodeIndex >= 0) {\n name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n }\n\n path = name + (path ? '>' + path : '');\n\n\n if (parent === context) {\n break;\n }\n\n node = parent;\n }\n\n return path.replace(\"#document>\", \"\").replace('>;', ';');\n }\n\n /**\n * Will return the first original offset value that is found\n * @param {Node} element\n *\n * @returns {int}\n */\n static findOriginalOffset(element) {\n if (!element.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n return 0;\n }\n const lengthElement = Util.parent(element, '[' + ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n return lengthElement ? parseInt(lengthElement.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n }\n\n\n /**\n * Deserialize a specific path and finds the right textNodes\n * This even works when DOM has been manipulated before by `marklib`\n * @param {string} path the serialized path (including offsets)\n * @param {Node|HTMLElement} context\n *\n * @return {Node}\n */\n static deserializePath(path, context) {\n const pSplit = path.split(';');\n const p = pSplit[0];\n const objectIndex = parseInt(pSplit[1], 10);\n const charOffset = parseInt(pSplit[2], 10);\n const container = !p.trim() ? context : context.querySelector(p);\n\n let maybeFoundNode = null;\n\n Util.walkTextNodes(container, (n) => {\n let atrOffsetStart = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START);\n atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n let atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart &&\n ((parseInt(atrOffsetStart, 10) + n.length) >= charOffset)) {\n const thisOffset = n.parentNode\n .hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset -\n parseInt(n.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\n maybeFoundNode = {\n node: n,\n offset: thisOffset\n };\n\n return false;\n }\n return true;\n }, null);\n\n return maybeFoundNode;\n }\n\n\n /**\n * Walks the dom tree unless func returns false\n * Applies node to function\n *\n * @param {Node} node\n * @param {Function} func\n * @param {int} type, see `NodeFilter`\n * @param {Object} [filter] skips empty text nodes by default\n *\n * @returns {boolean} true if function did abort walk\n */\n static walkDom(node, func, type = NodeFilter.SHOW_ALL, filter = null) {\n if (!node) {\n return false;\n }\n const args = [node, type, filter || (() => true), false];\n args.push(false);\n const walker = document.createTreeWalker(...args);\n while (walker.nextNode()) {\n if (!func(walker.currentNode)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Extracts all TextNodes inside a container\n * @param {Node} el\n * @param {Function} func\n * @param {Object} [filter] skips empty text nodes by default\n * @returns {boolean} true if function did abort walk\n */\n static walkTextNodes(el, func, filter = (node) => !Util.nodeIsEmpty(node)) {\n return Util.walkDom(el, func, NodeFilter.SHOW_TEXT, filter);\n }\n\n /**\n * @param {Node} container\n * @param {Number} thisIndex\n * @returns {int|string} index of parent or original\n */\n static getIndexParentIfHas(container, thisIndex) {\n const p = container.parentNode;\n const index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n return index > thisIndex ? index : thisIndex;\n }\n\n /**\n * @param container\n * @returns {int} offset start of parent if has, else 0\n */\n static getOffsetParentIfHas(container) {\n const p = container.parentNode;\n const offset = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n return offset > 0 ? offset : 0;\n }\n\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/util/Util.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap f6ce2474181aceb4910c","webpack:///./src/main/modules/Marklib.js","webpack:///./src/main/Rendering.js","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./~/core-js/library/fn/object/get-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./~/core-js/library/modules/$.to-object.js","webpack:///./~/core-js/library/modules/$.defined.js","webpack:///./~/core-js/library/modules/$.object-sap.js","webpack:///./~/core-js/library/modules/$.export.js","webpack:///./~/core-js/library/modules/$.global.js","webpack:///./~/core-js/library/modules/$.core.js","webpack:///./~/core-js/library/modules/$.ctx.js","webpack:///./~/core-js/library/modules/$.a-function.js","webpack:///./~/core-js/library/modules/$.fails.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/core-js/library/fn/object/define-property.js","webpack:///./~/core-js/library/modules/$.js","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./~/babel-runtime/helpers/typeof.js","webpack:///./~/babel-runtime/core-js/symbol/iterator.js","webpack:///./~/core-js/library/fn/symbol/iterator.js","webpack:///./~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/core-js/library/modules/$.string-at.js","webpack:///./~/core-js/library/modules/$.to-integer.js","webpack:///./~/core-js/library/modules/$.iter-define.js","webpack:///./~/core-js/library/modules/$.library.js","webpack:///./~/core-js/library/modules/$.redefine.js","webpack:///./~/core-js/library/modules/$.hide.js","webpack:///./~/core-js/library/modules/$.property-desc.js","webpack:///./~/core-js/library/modules/$.descriptors.js","webpack:///./~/core-js/library/modules/$.has.js","webpack:///./~/core-js/library/modules/$.iterators.js","webpack:///./~/core-js/library/modules/$.iter-create.js","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/core-js/library/modules/$.wks.js","webpack:///./~/core-js/library/modules/$.shared.js","webpack:///./~/core-js/library/modules/$.uid.js","webpack:///./~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/core-js/library/modules/$.iter-step.js","webpack:///./~/core-js/library/modules/$.to-iobject.js","webpack:///./~/core-js/library/modules/$.iobject.js","webpack:///./~/core-js/library/modules/$.cof.js","webpack:///./~/babel-runtime/core-js/symbol.js","webpack:///./~/core-js/library/fn/symbol/index.js","webpack:///./~/core-js/library/modules/es6.symbol.js","webpack:///./~/core-js/library/modules/$.keyof.js","webpack:///./~/core-js/library/modules/$.get-names.js","webpack:///./~/core-js/library/modules/$.enum-keys.js","webpack:///./~/core-js/library/modules/$.is-array.js","webpack:///./~/core-js/library/modules/$.an-object.js","webpack:///./~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-runtime/core-js/object/create.js","webpack:///./~/core-js/library/fn/object/create.js","webpack:///./src/main/RenderResult.js","webpack:///./src/main/RenderingEvents.js","webpack:///./~/babel-runtime/helpers/slicedToArray.js","webpack:///./~/babel-runtime/core-js/is-iterable.js","webpack:///./~/core-js/library/fn/is-iterable.js","webpack:///./~/core-js/library/modules/core.is-iterable.js","webpack:///./~/core-js/library/modules/$.classof.js","webpack:///./~/babel-runtime/core-js/get-iterator.js","webpack:///./~/core-js/library/fn/get-iterator.js","webpack:///./~/core-js/library/modules/core.get-iterator.js","webpack:///./~/core-js/library/modules/core.get-iterator-method.js","webpack:///./~/babel-runtime/core-js/set.js","webpack:///./~/core-js/library/fn/set.js","webpack:///./~/core-js/library/modules/es6.set.js","webpack:///./~/core-js/library/modules/$.collection-strong.js","webpack:///./~/core-js/library/modules/$.redefine-all.js","webpack:///./~/core-js/library/modules/$.strict-new.js","webpack:///./~/core-js/library/modules/$.for-of.js","webpack:///./~/core-js/library/modules/$.iter-call.js","webpack:///./~/core-js/library/modules/$.is-array-iter.js","webpack:///./~/core-js/library/modules/$.to-length.js","webpack:///./~/core-js/library/modules/$.set-species.js","webpack:///./~/core-js/library/modules/$.collection.js","webpack:///./~/core-js/library/modules/es7.set.to-json.js","webpack:///./~/core-js/library/modules/$.collection-to-json.js","webpack:///./~/babel-runtime/core-js/object/assign.js","webpack:///./~/core-js/library/fn/object/assign.js","webpack:///./~/core-js/library/modules/es6.object.assign.js","webpack:///./~/core-js/library/modules/$.object-assign.js","webpack:///./~/wolfy87-eventemitter/EventEmitter.js","webpack:///./src/main/util/Util.js"],"names":[],"mappings":"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;AACA,G;;;;;;ACNA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;AC1BD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AChBA;;AAEA,uGAAsG,mBAAmB,EAAE,mBAAmB,oGAAoG;;AAElP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,EAAC;AACD;AACA,G;;;;;;ACpBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,sD;;;;;;ACFA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,iD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B,2BAA0B;AAC1B,2BAA0B;AAC1B,sBAAqB;AACrB;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,8DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB,2BAA0B;AAC1B,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,G;;;;;;AC9JA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAgE,gBAAgB;AAChF;AACA,IAAG,2CAA2C,gCAAgC;AAC9E;AACA;AACA,G;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAoB,aAAa;AACjC,IAAG;AACH,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,G;;;;;;ACtDA;AACA;;AAEA,4BAA2B,uCAAiD,E;;;;;;ACH5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACVA,mBAAkB,wD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;;AAEA,2CAA0C,gCAAqC,E;;;;;;ACH/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,cAAa,gCAAgC;AAC7C,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,iB;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,WAAW;AAC1B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,SAAS;AACxB,iBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA,wBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,MAAM;AACrB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,KAAK;AACpB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAe,EAAE;AACjB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA,kDAAiD;AACjD;;AAEA;AACA,4BAA2B,mBAAmB;AAC9C;AACA,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"js/marklib.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[\"Marklib\"] = factory();\n\telse\n\t\troot[\"Marklib\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\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/** WEBPACK FOOTER **\n ** webpack/bootstrap f6ce2474181aceb4910c\n **/","import Rendering from '../Rendering';\nimport Util from '../util/Util';\nimport RenderResult from '../RenderResult';\nimport RenderingEvents from '../RenderingEvents';\n\nexport { Rendering, Util, RenderResult, RenderingEvents };\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/modules/Marklib.js\n **/","/* global Node */\n\nimport RenderResult from './RenderResult';\nimport RenderingEvents from './RenderingEvents';\nimport Util, { ATTR_DATA_ORIGINAL_INDEX, DATA_IS_SELECTION } from './util/Util';\n\n/**\n * @type {string}\n */\nconst TAG_NAME = 'x-marker';\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n/**\n * @type {string}\n */\nconst DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n/**\n * @type {string}\n */\nconst ATTR_DATA_START_END = 'data-is-start-end';\n/**\n * @type {string}\n */\nconst ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n/**\n * @type {string}\n */\nconst ATTR_DATA_ID = 'data-selection-id';\n\n/**\n * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n * @type {number}\n */\nconst DOCUMENT_POSITION_CONTAINED_BY = 16;\n\n\n/**\n * @type {string}\n */\nexport const EVENT_WRAPPED_NODE = 'wrapped-node';\n\n/**\n * Manages a single Render\n */\nclass Rendering extends RenderingEvents {\n\n /**\n * @param {Document} document\n * @param {object} options\n * @param {Node} context\n */\n constructor(document, options, context) {\n super(options, document);\n\n /**\n * ID of rendering, will be set on each element that is part of it\n * @type {String}\n */\n this.id = Util.guid();\n\n /**\n * StartContainer\n * @type {Node}\n */\n this.startContainer = null;\n\n /**\n * EndContainer\n * @type {Node}\n */\n this.endContainer = null;\n\n /**\n * @type {Node}\n */\n this.context = context || this.document;\n\n /**\n * Flag if this instance has been rendered\n * @type {RenderResult}\n * @private\n */\n this._renderResult = null;\n }\n\n /**\n * @returns {string} id of this rendering\n */\n getId() {\n return this.id;\n }\n\n /**\n * @param {string} id\n * @returns {Rendering}\n */\n setId(id) {\n this.id = id;\n\n if (this._renderResult) {\n this.wrapperNodes.forEach((node) => node.setAttribute(ATTR_DATA_ID, this.id));\n }\n\n return this;\n }\n\n /**\n * Creates a Template used as a wrapper and an indication that this is a highlight node\n * @param {Boolean} [omitHighlight]\n * @returns {Node}\n * @private\n */\n _createWrapTemplate(omitHighlight) {\n const el = this.document.createElement(TAG_NAME);\n const vTrue = \"true\";\n\n if (!omitHighlight) {\n el.className = this.options.className.join(' ');\n // save this marker instance to given node\n Rendering.setMarklibInstance(el, this);\n // keep track of highlight nodes\n this.wrapperNodes.push(el);\n el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n el.setAttribute(ATTR_DATA_ID, this.getId());\n }\n el.setAttribute(DATA_IS_SELECTION, vTrue);\n\n return el;\n }\n\n /**\n * Creates a Template to use as start and end marks\n * @param {String} text\n * @returns {Node}\n * @private\n */\n _createStartEndWrapTemplate(text) {\n const el = this._createWrapTemplate();\n el.setAttribute(ATTR_DATA_START_END, 'true');\n el.textContent = text;\n return el;\n }\n\n\n /**\n * Creates Start or End Container Element\n * @param initialNode\n * @param text\n * @param offset\n * @param index\n * @returns {Node}\n */\n _createStartOrEndContainer(initialNode, text, offset, index) {\n const wrapper = this._createStartEndWrapTemplate(text);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(initialNode, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\n return wrapper;\n }\n\n /**\n * Wraps given element\n * @param {Node|HTMLElement} el\n * @param [optionalLength]\n * @param [optionalIndex]\n * @param [optionalIsSameNode]\n * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n * @returns {Node}\n * @private\n */\n _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n const originalIndex = optionalIndex >= 0 ? optionalIndex : Util.calcIndex(el);\n const wrapper = this._createWrapTemplate(omitHighlight);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(el, originalIndex));\n const offsetLength = optionalLength >= 0 ? optionalLength : Util.getOffsetParentIfHas(el);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\n // Save a reference to original text node in wrapper\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\n if (optionalIsSameNode) {\n wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n }\n const wrap = Util.wrap(el, wrapper);\n\n this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\n return wrap;\n }\n\n /**\n * Create split container element\n * @param originalElement {Node} original text node element that is created a wrapper for\n * @param index\n * @param offset\n * @returns {Node}\n */\n _createSplitContainer(originalElement, index, offset) {\n const wrapper = this.document.createElement(TAG_NAME);\n wrapper.setAttribute(DATA_IS_SELECTION, 'true');\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(originalElement, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n return wrapper;\n }\n\n /**\n * Walks the tree\n * @param start\n * @param endContainer\n * @param nextParent\n */\n walk(start, endContainer, nextParent) {\n let nextParentNode = start;\n while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n const currentParentNode = nextParentNode;\n nextParentNode = nextParentNode.parentNode;\n if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n break;\n }\n }\n }\n\n\n /**\n * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n * If an Element node is found, it will wrap all children of this node inside a element as well.\n * It will stop if endContainer is found as a node\n *\n * @param {Node} start\n * @param {Node} endContainer\n * @returns {boolean} (true if endContainer was found)\n */\n wrapSiblings(start, endContainer) {\n let next = start;\n let found = false;\n\n // Capsule some logic\n const wrap = (n) => {\n const instance = Rendering.getMarklibInstance(n.parentNode);\n if (n.parentNode.hasAttribute(ATTR_DATA_START_END) &&\n n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) &&\n instance === this) {\n this._createWrap(n, undefined, undefined, undefined, true);\n } else {\n this._createWrap(n);\n }\n };\n\n // helper functions\n\n const wrapIf = (n) => {\n if (!Util.nodeIsEmpty(n)) {\n wrap(n);\n }\n };\n\n const walkIfContained = (e) => {\n if (e === endContainer) {\n return false;\n }\n if (Node.TEXT_NODE === e.nodeType) {\n wrapIf(e);\n }\n return true;\n };\n\n const walkIfNotContained = (el) => {\n wrapIf(el);\n };\n\n while (next !== null && next !== endContainer) {\n const currentNext = next;\n next = next.nextSibling;\n // Found a text node, directly wrap inside a span\n if (Node.TEXT_NODE === currentNext.nodeType) {\n wrapIf(currentNext);\n } else {\n if ((currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY)) {\n Util.walkDom(currentNext, walkIfContained);\n found = true;\n } else {\n Util.walkTextNodes(currentNext, walkIfNotContained);\n }\n if (found) {\n return true;\n }\n }\n }\n return found;\n }\n\n /**\n * Marks text of the same node\n * @param {Node} textNode\n * @param {int} startIndex\n * @param {int} endIndex\n * @private\n */\n _markTextSameNode(textNode, startIndex, endIndex) {\n const initialText = textNode.nodeValue;\n const initialIndex = Util.calcIndex(textNode);\n\n if (!initialText) {\n return false;\n }\n // If there is an unmarked part in the beginning of the text node,\n // cut off that part and put it into it's own textnode.\n if (startIndex > 0) {\n const textBefore = initialText.slice(0, startIndex);\n textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n // wrap cutted text node:\n Util.wrap(textNode.previousSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode)));\n }\n // If there is an unmarked part at the end of the text node,\n // cut off that part and put it into it's own textnode.\n if (endIndex < initialText.length) {\n const textAfter = initialText.slice(endIndex, initialText.length);\n textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n Util.wrap(textNode.nextSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode) + endIndex));\n }\n\n // Cutoff the unmarked parts and wrap the textnode into a span.\n textNode.nodeValue = initialText.slice(startIndex, endIndex);\n this.startContainer = this._createWrap(textNode,\n Util.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n this.endContainer = this.startContainer;\n return this.startContainer;\n }\n\n\n /**\n * Marks text of end and start containers if start and end nodes are different\n * Important: There might be no end container!\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @returns {{startT: (Node), endT: (Node)}}\n * @private\n */\n _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n // Get current for both start and end:\n const startContainerIndex = Util.calcIndex(startContainer);\n const endContainerIndex = Util.calcIndex(endContainer);\n\n // Split text\n const fullTextStartValue = startContainer.nodeValue;\n // init with startContainer because we may have not a text node here\n let startT = startContainer;\n\n if (undefined !== fullTextStartValue) {\n const partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n // Set new text to start node\n startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\n const offsetStart = Util.getOffsetParentIfHas(startContainer);\n // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n startT = this._createStartOrEndContainer(startContainer, partTextStartValue,\n offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n // Append this node after startContainer\n startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n this.startContainer = startT;\n\n if (startContainer.nodeValue) {\n // Wrap start container in detection node, offset is always 0 or parent offset.\n Util.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex,\n Util.getOffsetParentIfHas(startContainer)));\n }\n }\n\n // init with endContainer because we may have not a text node here\n let endT = endContainer;\n\n // 2. Extract end Text node,\n const fullTextEndValue = endContainer.nodeValue;\n // It's possible that end container value is null (if a whole paragraph is marked)\n if (undefined !== fullTextEndValue) {\n // Split text\n const partTextEndValue = fullTextEndValue.slice(0, endOffset);\n endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n // End Container start offset is always 0 or parent offset.\n endT = this._createStartOrEndContainer(endContainer, partTextEndValue,\n Util.getOffsetParentIfHas(endContainer), endContainerIndex);\n\n endContainer.parentNode.insertBefore(endT, endContainer);\n this.endContainer = endT;\n const offsetParent = Util.getOffsetParentIfHas(endContainer);\n Util.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex,\n offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n }\n\n return {\n startT,\n endT\n };\n }\n\n /**\n * Renders a selection\n * @param {Node} startContainerP\n * @param {Node} endContainerP\n * @param {Node} commonAncestor\n * @param {int} startOffset\n * @param {int} endOffsetP\n * @returns RenderResult\n * @private\n */\n _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n if (this._renderResult) {\n return this._renderResult;\n }\n let startContainer = startContainerP;\n let endContainer = endContainerP;\n let endOffset = endOffsetP;\n let outer = Util.parents(startContainer, commonAncestor);\n outer = outer[outer.length - 1];\n const contextContainer = outer ? outer : commonAncestor;\n\n // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n // but are different nodes:\n\n // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n // 1: First detect real start offset in startContainer:\n\n // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n // So first select that container:\n const originalStartOffset = Util.findOriginalOffset(startContainer);\n const originalEndOffset = Util.findOriginalOffset(endContainer);\n\n // We may run into Browser Bugs:\n\n // If both are not text nodes, use next sibling as endContainer\n if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n if (startContainer === endContainer) {\n endContainer = endContainer.nextElementSibling || endContainer;\n }\n }\n // IF start/end container is not type of text, select first child text node:\n // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n // Sometimes does not work correctly... (specially when DOM was modified)\n if (startContainer.nodeType !== Node.TEXT_NODE) {\n Util.walkDom(startContainer, (el) => {\n if (el.nodeType === Node.TEXT_NODE) {\n startContainer = el;\n return false;\n }\n return true;\n });\n }\n\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n let toFindNode = startContainer;\n\n if (endOffset === 0) {\n toFindNode = endContainer.previousElementSibling || startContainer;\n }\n\n // Get the last text node:\n const endContainerContents = Util.closest(toFindNode, ':not([' + DATA_IS_SELECTION + '])').childNodes;\n if (endContainerContents.length) {\n const r = endContainerContents[endContainerContents.length - 1];\n if (r.nodeType === Node.TEXT_NODE) {\n endContainer = r;\n endOffset = r.length;\n } else {\n let f = r.lastChild;\n while (f !== null) {\n if (f && f.nodeType === Node.TEXT_NODE) {\n endContainer = f;\n endOffset = f.length;\n if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n endOffset = parseInt(f.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n }\n }\n f = f.lastChild;\n }\n }\n }\n // still no textNode?\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n throw Error('Could not found endContainer, highlighting would be unstable');\n }\n }\n\n this._renderResult = new RenderResult(\n // Real offset is calculated by relative length and absolute length\n originalStartOffset + startOffset,\n originalEndOffset + endOffset,\n // get the path for this selection\n Util.getPath(startContainer, this.context),\n Util.getPath(endContainer, this.context)\n );\n\n this._renderResult.instance = this;\n\n\n this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\n return this._renderResult;\n }\n\n /**\n * Renders a given selection\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {Node} contextContainer\n * @param {Boolean} outer\n * @private\n */\n _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n // if start and end-container are the same, mark text on the same node\n if (startContainer === endContainer) {\n this._markTextSameNode(startContainer, startOffset, endOffset);\n } else {\n const result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n const index = this.wrapperNodes.indexOf(result.endT);\n // remove endContainer, to keep order:\n this.wrapperNodes.splice(index, 1);\n if (!outer) {\n this.wrapSiblings(result.startT.nextSibling, endContainer);\n } else {\n this.walk(result.startT, endContainer, contextContainer);\n }\n this.wrapperNodes.push(result.endT);\n }\n }\n\n /**\n * Prepares to render a Selection with path selectors\n * ```\n * A Path looks like this:\n *\n * #selector;#textnode;#offset\n * ``\n * @param {string} startPath\n * @param {string} endPath\n * @returns {string}\n */\n renderWithPath(startPath, endPath) {\n const startContainer = Util.deserializePath(startPath, this.context);\n const endContainer = Util.deserializePath(endPath, this.context);\n if (startContainer && endContainer && startContainer.node && endContainer.node) {\n const range = document.createRange();\n range.setStart(startContainer.node, startContainer.offset);\n range.setEnd(endContainer.node, endContainer.offset);\n const text = range.toString();\n const result = this.renderWithRange(range);\n result.text = text;\n return text;\n }\n throw new Error('Could not find start- and/or end-container in document');\n }\n\n /**\n * @returns {RenderResult}\n */\n get result() {\n return this._renderResult;\n }\n\n /**\n * Renders a result (that returned from `renderWithRange`)\n * @param {RenderResult|Object} result\n * @returns {string}\n */\n renderWithResult(result) {\n return this.renderWithPath(\n `${result.startContainerPath};${result.startOffset}`,\n `${result.endContainerPath};${result.endOffset}`);\n }\n\n /**\n * Prepares a selection with a range object\n * @param {Range} range\n * @returns {Object}\n */\n renderWithRange(range) {\n const text = range.toString();\n const result = this._renderWithElements(range.startContainer, range.endContainer,\n range.commonAncestorContainer, range.startOffset, range.endOffset);\n result.text = text;\n return result;\n }\n\n /**\n * Removes bindings and classNames to nodes\n */\n destroy() {\n this.wrapperNodes.forEach((node) => {\n delete node.marklibInstance;\n node.className = '';\n });\n this.removeEvent();\n }\n\n /**\n * @param {Node} el\n * @param {Rendering} instance\n * @returns {Node}\n */\n static setMarklibInstance(el, instance) {\n el.marklibInstance = instance;\n return el;\n }\n\n /**\n * @param {Node} el\n * @returns {Rendering|null|undefined}\n */\n static getMarklibInstance(el) {\n return el ? el.marklibInstance : null;\n }\n}\n\nexport default Rendering;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/Rendering.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 8\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 9\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 10\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 11\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 13\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 15\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 18\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 20\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 21\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 24\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 25\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 26\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 28\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 29\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 30\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 32\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 33\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 34\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 38\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 40\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 42\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 45\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 46\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 47\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 48\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 49\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 52\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 53\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 55\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 57\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 60\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 61\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 63\n ** module chunks = 0 1\n **/","/**\n * A Render Result\n */\nexport default class RenderResult {\n /**\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {String} startContainerPath\n * @param {String} endContainerPath\n */\n constructor(startOffset, endOffset, startContainerPath, endContainerPath) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.startContainerPath = startContainerPath;\n this.endContainerPath = endContainerPath;\n this._renderingInstance = null;\n }\n\n /**\n * @param {Object} result\n * @return RenderResult\n */\n static fromObject(result) {\n return new RenderResult(\n result.startOffset,\n result.endOffset,\n result.startContainerPath,\n result.endContainerPath\n );\n }\n\n /**\n * @returns {Object}\n */\n serialize() {\n return {\n startOffset: this.startOffset,\n endOffset: this.endOffset,\n startContainerPath: this.startContainerPath,\n endContainerPath: this.endContainerPath\n };\n }\n\n /**\n * @param {String} text\n */\n set text(text) {\n this._text = text;\n }\n\n /**\n * @returns {String}\n */\n get text() {\n return this._text;\n }\n\n /**\n * @returns {null|Rendering}\n */\n get instance() {\n return this._renderingInstance;\n }\n\n /**\n * @param {null|Rendering} instance\n */\n set instance(instance) {\n this._renderingInstance = instance;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderResult.js\n **/","/* global Set */\n\nimport EventEmitter from 'wolfy87-eventemitter';\nimport Rendering from './Rendering';\nimport Util from './util/Util';\n\n/**\n * @type {string}\n */\nexport const EVENT_CLICK = 'click';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSEENTER = 'hover-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSELEAVE = 'hover-leave';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_ENTER = 'tree-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_LEAVE = 'tree-leave';\n\n/**\n * Generic Event Handlings for Renderer\n */\nexport default class RenderingEvents extends EventEmitter {\n\n /**\n * @param {Object} options\n * @param {Document} document\n */\n constructor(options, document) {\n super();\n\n /**\n * Options\n * @type {Object}\n */\n this.options = {\n hoverClass: 'marklib--hover',\n treeClass: 'marklib--tree',\n className: ['marking']\n };\n\n this.options = Object.assign(this.options, options || {});\n\n if (typeof this.options.className === 'string') {\n this.options.className = this.options.className.split(' ');\n }\n\n /**\n * A collection of all nodes that are part of all events\n * @type {Array}\n */\n this.wrapperNodes = [];\n\n /**\n * @type {Document}\n */\n this.document = document;\n }\n\n /**\n * Constructs a new Range from rendered result\n * @returns {Range}\n */\n get range() {\n const range = this.document.createRange();\n const textNodes = [];\n\n this.wrapperNodes.forEach((wrapper) => {\n Util.walkTextNodes(wrapper, (node) => {\n textNodes.push(node);\n });\n });\n\n if (textNodes.length > 0) {\n const lastTextNode = textNodes[textNodes.length - 1];\n range.setStart(textNodes[0], 0);\n range.setEnd(lastTextNode, lastTextNode.length);\n return range;\n }\n\n return null;\n }\n\n static globalEmitter() {\n return RenderingEvents.staticEventListener;\n }\n}\n\nRenderingEvents.staticEventListener = new EventEmitter();\n\n\nif (!global.__MARKLIB_EVENTS__) {\n global.__MARKLIB_EVENTS__ = true;\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.treeClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.treeClass);\n });\n });\n\n (function init() {\n const currentHoverInstances = new Set();\n const betweenInstances = new Set();\n\n function checkMarklibInstance(e) {\n const instance = Rendering.getMarklibInstance(e);\n // instanceof check will fail if used in test scenario where different DOMs are used\n // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n return instance && (instance instanceof Rendering || 'wrapperNodes' in instance);\n }\n\n function closestInstance(e) {\n const closest = Util.closestCallback(\n e.target,\n (thisE) => checkMarklibInstance(thisE)\n );\n if (typeof closest === 'object') {\n return Rendering.getMarklibInstance(closest);\n }\n return false;\n }\n\n function getInstancesBetween(e, instance) {\n return Util.parentsCallback(\n e.target,\n (el) => checkMarklibInstance(el) && Rendering.getMarklibInstance(el) !== instance\n ).map(el => Rendering.getMarklibInstance(el));\n }\n\n function mouseOutClear() {\n currentHoverInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n thisInstance.emit(EVENT_MOUSELEAVE);\n });\n currentHoverInstances.clear();\n\n betweenInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n thisInstance.emit(EVENT_PART_TREE_LEAVE);\n });\n\n betweenInstances.clear();\n }\n\n /**\n * @param {Event} e\n * @returns {Array|boolean}\n */\n function findTarget(e) {\n let instance = closestInstance(e);\n if (instance) {\n const between = getInstancesBetween(e, instance);\n if (e.target.textContent !== instance.result.text && between.length > 0) {\n let allInstances = between;\n allInstances.unshift(instance);\n // take the smallest selection\n allInstances = allInstances.sort(\n (a, b) => a.result.text.length < b.result.text.length ? -1 : 1\n );\n instance = allInstances[0];\n }\n return [instance, between];\n }\n return false;\n }\n\n global.addEventListener('click', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n Rendering.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n instance.emit(EVENT_CLICK, e, between);\n }\n }, true);\n\n global.addEventListener('mouseover', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n\n // find instances that lay in between the node\n mouseOutClear();\n between.forEach((instanceBetween) => {\n betweenInstances.add(instanceBetween);\n instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n });\n instance.emit(EVENT_MOUSEENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n currentHoverInstances.add(instance);\n } else {\n mouseOutClear();\n }\n }, true);\n })();\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderingEvents.js\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 66\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 67\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 68\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').isIterable = function(it){\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./$.cof')\n , TAG = require('./$.wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.classof.js\n ** module id = 70\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 71\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 72\n ** module chunks = 0 1\n **/","var anObject = require('./$.an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./$.core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 73\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/set.js\n ** module id = 75\n ** module chunks = 0 1\n **/","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nmodule.exports = require('../modules/$.core').Set;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/set.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'use strict';\nvar strong = require('./$.collection-strong');\n\n// 23.2 Set Objects\nrequire('./$.collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.set.js\n ** module id = 77\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , ctx = require('./$.ctx')\n , strictNew = require('./$.strict-new')\n , defined = require('./$.defined')\n , forOf = require('./$.for-of')\n , $iterDefine = require('./$.iter-define')\n , step = require('./$.iter-step')\n , ID = require('./$.uid')('id')\n , $has = require('./$.has')\n , isObject = require('./$.is-object')\n , setSpecies = require('./$.set-species')\n , DESCRIPTORS = require('./$.descriptors')\n , isExtensible = Object.isExtensible || isObject\n , SIZE = DESCRIPTORS ? '_s' : 'size'\n , id = 0;\n\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!$has(it, ID)){\n // can't set id to frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add id\n if(!create)return 'E';\n // add missing object id\n hide(it, ID, ++id);\n // return object id with prefix\n } return 'O' + it[ID];\n};\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n strictNew(that, C, NAME);\n that._i = $.create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-strong.js\n ** module id = 78\n ** module chunks = 0 1\n **/","var redefine = require('./$.redefine');\nmodule.exports = function(target, src){\n for(var key in src)redefine(target, key, src[key]);\n return target;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine-all.js\n ** module id = 79\n ** module chunks = 0 1\n **/","module.exports = function(it, Constructor, name){\n if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.strict-new.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var ctx = require('./$.ctx')\n , call = require('./$.iter-call')\n , isArrayIter = require('./$.is-array-iter')\n , anObject = require('./$.an-object')\n , toLength = require('./$.to-length')\n , getIterFn = require('./core.get-iterator-method');\nmodule.exports = function(iterable, entries, fn, that){\n var iterFn = getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n call(iterator, f, step.value, entries);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.for-of.js\n ** module id = 81\n ** module chunks = 0 1\n **/","// call something on iterator step with safe closing on error\nvar anObject = require('./$.an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-call.js\n ** module id = 82\n ** module chunks = 0 1\n **/","// check on default Array iterator\nvar Iterators = require('./$.iterators')\n , ITERATOR = require('./$.wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array-iter.js\n ** module id = 83\n ** module chunks = 0 1\n **/","// 7.1.15 ToLength\nvar toInteger = require('./$.to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-length.js\n ** module id = 84\n ** module chunks = 0 1\n **/","'use strict';\nvar core = require('./$.core')\n , $ = require('./$')\n , DESCRIPTORS = require('./$.descriptors')\n , SPECIES = require('./$.wks')('species');\n\nmodule.exports = function(KEY){\n var C = core[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-species.js\n ** module id = 85\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , global = require('./$.global')\n , $export = require('./$.export')\n , fails = require('./$.fails')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , forOf = require('./$.for-of')\n , strictNew = require('./$.strict-new')\n , isObject = require('./$.is-object')\n , setToStringTag = require('./$.set-to-string-tag')\n , DESCRIPTORS = require('./$.descriptors');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n } else {\n C = wrapper(function(target, iterable){\n strictNew(target, C, NAME);\n target._c = new Base;\n if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n });\n $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n if('size' in proto)$.setDesc(C.prototype, 'size', {\n get: function(){\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./$.export');\n\n$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.set.to-json.js\n ** module id = 87\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar forOf = require('./$.for-of')\n , classof = require('./$.classof');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n var arr = [];\n forOf(this, false, arr.push, arr);\n return arr;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-to-json.js\n ** module id = 88\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 89\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/$.core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 90\n ** module chunks = 0 1\n **/","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./$.export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 19.1.2.1 Object.assign(target, source, ...)\nvar $ = require('./$')\n , toObject = require('./$.to-object')\n , IObject = require('./$.iobject');\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = require('./$.fails')(function(){\n var a = Object.assign\n , A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , $$ = arguments\n , $$len = $$.length\n , index = 1\n , getKeys = $.getKeys\n , getSymbols = $.getSymbols\n , isEnum = $.isEnum;\n while($$len > index){\n var S = IObject($$[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n }\n return T;\n} : Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","/*!\n * EventEmitter v4.2.11 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function () {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var exports = this;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n i = listeners.length;\n\n while (i--) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}.call(this));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/wolfy87-eventemitter/EventEmitter.js\n ** module id = 93\n ** module chunks = 0 1\n **/","/* global Node, NodeList, Element */\n\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n/**\n * @type {string}\n */\nexport const DATA_IS_SELECTION = 'data-is-selection';\n/**\n * @type {string}\n */\nconst SERIALIZE_SEPARATOR = \";\";\n\nimport { ATTR_DATA_ORIGINAL_OFFSET_START } from '../Rendering';\n\n// polyfill for matchesSelector, IE 10/11 does not support Element.matches\nif (Element && !Element.prototype.matches) {\n const p = Element.prototype;\n p.matches = p.matchesSelector ||\n p.mozMatchesSelector || p.msMatchesSelector ||\n p.oMatchesSelector || p.webkitMatchesSelector;\n}\n\n/**\n * Utility class\n * Contains DOM/Node manipulation helpers\n */\nexport default\nclass Util {\n\n /**\n * Filter for a NodeList\n * @param {NodeList} nodes\n * @param {Function} func\n *\n * @returns {Array.}\n */\n static nodeListFilter(nodes, func) {\n return Array.prototype.filter.call(nodes || [], func);\n }\n\n\n /**\n * Generates a unique id\n *\n * @return {String}\n */\n static guid() {\n const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\n s4() + '-' + s4() + s4() + s4();\n }\n\n /**\n * Checks if a given node is empty\n * @param {HTMLElement} node\n *\n * @returns {*}\n */\n static nodeIsEmpty(node) {\n return node.nodeValue.match(/^[\\s]*$/g);\n }\n\n\n /**\n * @param {HTMLElement} node\n * @param [optionalList]\n *\n * @return {int} the index of this node in context to it's siblings\n */\n static index(node, optionalList) {\n const children = optionalList || (node.nodeType === Node.TEXT_NODE ?\n node.parentNode.childNodes : node.parentNode.children);\n return Array.prototype.indexOf.call(children || [], node);\n }\n\n /**\n * Wraps given `elms` in given `wrapper`\n *\n * @param {HTMLElement|Array.|Node} elms\n * @param {HTMLElement|Node} wrapper\n *\n * @return {HTMLElement}\n */\n static wrap(elms, wrapper) {\n let thisElms = elms;\n\n if (!thisElms) {\n return wrapper;\n }\n // Convert `elms` to an array, if necessary.\n if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n thisElms = [thisElms];\n }\n for (let i = thisElms.length - 1; i >= 0; i--) {\n const child = (i > 0) ? wrapper.cloneNode(true) : wrapper;\n const el = thisElms[i];\n // Cache the current parent and sibling.\n const parent = el.parentNode;\n const sibling = el.nextSibling;\n\n child.appendChild(el);\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n }\n return wrapper;\n }\n\n /**\n * Will calculate an index depending on an already modified dom by marklib\n * @param {HTMLElement|Node} node\n *\n * @returns {int|boolean}\n */\n static calcIndex(node) {\n let calculatedIndex = 0;\n let foundWrapper = false;\n const nodes = node.parentNode.childNodes;\n const length = nodes.length;\n for (let thisIndex = 0; thisIndex < length; thisIndex++) {\n const el = nodes[thisIndex];\n if (el === node) {\n break;\n }\n // reset index when original index is found\n const maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\n if (maybeIndexOfOriginal) {\n calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n foundWrapper = true;\n }\n calculatedIndex++;\n }\n return foundWrapper ? calculatedIndex : Util.index(node);\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {String} [optionalSelector] will test given element against a selector\n * if matches, returns this element immediately\n *\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parents(el, optionalSelector) {\n return Util.parentsCallback(el, (element) => {\n if (optionalSelector && ((element === optionalSelector) ||\n ((typeof optionalSelector === 'string') && element.matches &&\n element.matches(optionalSelector)))) {\n return true;\n } else if (!optionalSelector) {\n return true;\n }\n return false;\n });\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {Function} callback\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parentsCallback(el, callback) {\n let element = el;\n const foundElements = [];\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (callback(element)) {\n foundElements.push(element);\n }\n }\n return foundElements;\n }\n\n /**\n * Finds a parent node (the closest) with a given selector\n * @param {Node} el\n * @param {String} selector\n *\n * @returns {Node|boolean}\n */\n static parent(el, selector) {\n let element = el;\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (element.matches && element.matches(selector)) {\n return element;\n }\n }\n return false;\n }\n\n /**\n * Finds the closest element including itself matching a given selector\n * @param {Node} el\n * @param selector\n *\n * @returns {Node|boolean}\n */\n static closest(el, selector) {\n return Util.closestCallback(el, (element) => element.matches && element.matches(selector));\n }\n\n /**\n * Finds the closest element including itself matching a callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static closestCallback(el, callback) {\n let element = el;\n while (element !== null) {\n if (callback(element)) {\n return element;\n }\n element = element.parentNode;\n }\n return false;\n }\n\n /**\n * Finds the outermost fitting element that matches callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static outerMostCallback(el, callback) {\n let element = el;\n let lastValid = false;\n while (element !== null) {\n if (callback(element)) {\n lastValid = element;\n }\n element = element.parentNode;\n }\n return lastValid;\n }\n\n /**\n * @param {HTMLElement} n\n *\n * @return {boolean}\n */\n static isMarkNode(n) {\n return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n }\n\n /**\n * Determines the correct paths and excludes all `marklib` generated content\n * TODO: To improve performance we could shorten the path if an ID is present in it.\n * @param {HTMLElement|Node} el\n * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n * @returns {string}\n */\n static getPath(el, context) {\n let path = null;\n let node = el;\n\n const filterSiblings = (thisEl) => {\n return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n };\n\n while (node) {\n let name = null;\n // If node is a text-node, save index\n if (Node.TEXT_NODE === node.nodeType) {\n /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n * valid before the dom changes. We store the last known index position inside all wrapper elements\n * We select the outermost\n */\n\n // Extract original index of this node:\n // Outer most data-original-index is original index\n const outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n // if element is not yet wrapped in span, recalculate index based on parent container:\n // We have to do this because text node indexes != element indexes...\n let calculatedIndex = 0;\n if (!outerMostElement) {\n calculatedIndex = Util.calcIndex(node);\n }\n const index = outerMostElement ? parseInt(\n outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n name = SERIALIZE_SEPARATOR + index;\n } else {\n name = node.nodeName;\n }\n\n if (!name) {\n break;\n }\n\n name = name.toLowerCase();\n\n const parent = node.parentNode;\n\n if (Util.isMarkNode(node)) {\n if (parent !== context) {\n node = parent;\n continue;\n } else {\n break;\n }\n }\n\n // Select only siblings that are not part of selection and are of the same type\n // (because we use nth-of-type selector later)\n const siblings = Util.nodeListFilter(parent.children, filterSiblings);\n const nodeIndex = Util.index(node, siblings);\n\n if (siblings.length > 1 && nodeIndex >= 0) {\n name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n }\n\n path = name + (path ? '>' + path : '');\n\n\n if (parent === context) {\n break;\n }\n\n node = parent;\n }\n\n return path.replace(\"#document>\", \"\").replace('>;', ';');\n }\n\n /**\n * Will return the first original offset value that is found\n * @param {Node} element\n *\n * @returns {int}\n */\n static findOriginalOffset(element) {\n if (!element.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n return 0;\n }\n const lengthElement = Util.parent(element, '[' + ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n return lengthElement ? parseInt(lengthElement.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n }\n\n\n /**\n * Deserialize a specific path and finds the right textNodes\n * This even works when DOM has been manipulated before by `marklib`\n * @param {string} path the serialized path (including offsets)\n * @param {Node|HTMLElement} context\n *\n * @return {Node}\n */\n static deserializePath(path, context) {\n const pSplit = path.split(';');\n const p = pSplit[0];\n const objectIndex = parseInt(pSplit[1], 10);\n const charOffset = parseInt(pSplit[2], 10);\n const container = !p.trim() ? context : context.querySelector(p);\n\n let maybeFoundNode = null;\n\n Util.walkDom(container, (n) => {\n let atrOffsetStart = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START);\n atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n let atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart &&\n ((parseInt(atrOffsetStart, 10) + n.length) >= charOffset)) {\n const thisOffset = n.parentNode\n .hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset -\n parseInt(n.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\n maybeFoundNode = {\n node: n,\n offset: thisOffset\n };\n\n return false;\n }\n return true;\n });\n\n return maybeFoundNode;\n }\n\n\n /**\n * Recursively walks the dom tree unless func returns false\n * This is a lot more efficient then using any jQuery operations\n *\n * Applies node to function\n * @param {Node} node\n * @param {Function} func\n *\n * @returns {*}\n */\n static walkDom(node, func) {\n if (!node) {\n return false;\n }\n const children = node.childNodes;\n if (!children) {\n return false;\n }\n for (let i = 0; i < children.length; i++) {\n if (!Util.walkDom(children[i], func)) {\n return false;\n }\n }\n return func(node);\n }\n\n /**\n * Extracts all TextNodes inside a container\n * @param {Node} el\n * @param {Function} func\n * @returns {Array.}\n */\n static walkTextNodes(el, func) {\n Util.walkDom(el, (node) => {\n if (Node.TEXT_NODE === node.nodeType && !Util.nodeIsEmpty(node)) {\n func(node);\n }\n return true;\n });\n }\n\n /**\n * @param {Node} container\n * @param {Number} thisIndex\n * @returns {int|string} index of parent or original\n */\n static getIndexParentIfHas(container, thisIndex) {\n const p = container.parentNode;\n const index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n return index > thisIndex ? index : thisIndex;\n }\n\n /**\n * @param container\n * @returns {int} offset start of parent if has, else 0\n */\n static getOffsetParentIfHas(container) {\n const p = container.parentNode;\n const offset = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n return offset > 0 ? offset : 0;\n }\n\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/util/Util.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/build/js/marklib.min.js b/build/js/marklib.min.js index 0f93b40..fe1b75b 100644 --- a/build/js/marklib.min.js +++ b/build/js/marklib.min.js @@ -1,3 +1,3 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Marklib=e():t.Marklib=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="../",e(0)}([function(t,e,n){t.exports=n(88)},,function(t,e){var n=Object;t.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},,function(t,e){var n=t.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},,function(t,e,n){var r=n(67)("wks"),o=n(51),i=n(16).Symbol;t.exports=function(t){return r[t]||(r[t]=i&&i[t]||(i||o)("Symbol."+t))}},,,,function(t,e,n){var r=n(16),o=n(4),i=n(27),u="prototype",a=function(t,e,n){var s,f,c,l=t&a.F,d=t&a.G,p=t&a.S,h=t&a.P,v=t&a.B,_=t&a.W,g=d?o:o[e]||(o[e]={}),y=d?r:p?r[e]:(r[e]||{})[u];d&&(n=e);for(s in n)f=!l&&y&&s in y,f&&s in g||(c=f?y[s]:n[s],g[s]=d&&"function"!=typeof y[s]?n[s]:v&&f?i(c,r):_&&y[s]==c?function(t){var e=function(e){return this instanceof t?new t(e):t(e)};return e[u]=t[u],e}(c):h&&"function"==typeof c?i(Function.call,c):c,h&&((g[u]||(g[u]={}))[s]=c))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,t.exports=a},,function(t,e){t.exports={}},function(t,e,n){var r=n(30);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(15)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(2),o=n(49);t.exports=n(14)?function(t,e,n){return r.setDesc(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},,,,,,,,function(t,e){"use strict";e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(94),i=r(o);e["default"]=function(){function t(t,e){for(var n=0;n=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){n(130);var r=n(12);r.NodeList=r.HTMLCollection=r.Array},,,,,,,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.EVENT_WRAPPED_NODE=e.ATTR_DATA_ORIGINAL_OFFSET_START=void 0;var o=n(60),i=r(o),u=n(25),a=r(u),s=n(26),f=r(s),c=n(62),l=r(c),d=n(61),p=r(d),h=n(57),v=r(h),_=n(58),g=r(_),y=n(43),m=r(y),E="x-marker",b=e.ATTR_DATA_ORIGINAL_OFFSET_START="data-original-offset-start",T="original-text-node-index",N="data-is-start-end",O="data-is-highlight-node",A="data-selection-id",x=16,S=e.EVENT_WRAPPED_NODE="wrapped-node",k=function(t){function e(t,n,r){(0,a["default"])(this,e);var o=(0,l["default"])(this,(0,i["default"])(e).call(this,n,t));return o.id=m["default"].guid(),o.startContainer=null,o.endContainer=null,o.context=r||o.document,o._renderResult=null,o}return(0,p["default"])(e,t),(0,f["default"])(e,[{key:"getId",value:function(){return this.id}},{key:"setId",value:function(t){var e=this;return this.id=t,this._renderResult&&this.wrapperNodes.forEach(function(t){return t.setAttribute(A,e.id)}),this}},{key:"_createWrapTemplate",value:function(t){var n=this.document.createElement(E),r="true";return t||(n.className=this.options.className.join(" "),e.setMarklibInstance(n,this),this.wrapperNodes.push(n),n.setAttribute(O,r),n.setAttribute(A,this.getId())),n.setAttribute(y.DATA_IS_SELECTION,r),n}},{key:"_createStartEndWrapTemplate",value:function(t){var e=this._createWrapTemplate();return e.setAttribute(N,"true"),e.textContent=t,e}},{key:"_createStartOrEndContainer",value:function(t,e,n,r){var o=this._createStartEndWrapTemplate(e);return o.setAttribute(y.ATTR_DATA_ORIGINAL_INDEX,m["default"].getIndexParentIfHas(t,r)),o.setAttribute(b,n),o.setAttribute(T,r),o}},{key:"_createWrap",value:function(t,e,n,r,o){var i=n>=0?n:m["default"].calcIndex(t),u=this._createWrapTemplate(o);u.setAttribute(y.ATTR_DATA_ORIGINAL_INDEX,m["default"].getIndexParentIfHas(t,i));var a=e>=0?e:m["default"].getOffsetParentIfHas(t);u.setAttribute(b,a),u.setAttribute(T,i),r&&u.setAttribute(N,N);var s=m["default"].wrap(t,u);return this.emit(S,t,s),s}},{key:"_createSplitContainer",value:function(t,e,n){var r=this.document.createElement(E);return r.setAttribute(y.DATA_IS_SELECTION,"true"),r.setAttribute(y.ATTR_DATA_ORIGINAL_INDEX,m["default"].getIndexParentIfHas(t,e)),r.setAttribute(b,n),r.setAttribute(T,e),r}},{key:"walk",value:function(t,e,n){for(var r=t;r&&r!==n.parentNode;){var o=r;if(r=r.parentNode,this.wrapSiblings(o.nextSibling,e))break}}},{key:"wrapSiblings",value:function(t,n){for(var r=this,o=t,i=!1,u=function(t){var n=e.getMarklibInstance(t.parentNode);t.parentNode.hasAttribute(N)&&t.parentNode.hasAttribute(O)&&n===r?r._createWrap(t,void 0,void 0,void 0,!0):r._createWrap(t)},a=function(t){m["default"].nodeIsEmpty(t)||u(t)},s=function(t){return t===n?!1:(Node.TEXT_NODE===t.nodeType&&a(t),!0)},f=function(t){a(t)};null!==o&&o!==n;){var c=o;if(o=o.nextSibling,Node.TEXT_NODE===c.nodeType)a(c);else if(c.compareDocumentPosition(n)&x?(m["default"].walkDom(c,s),i=!0):m["default"].walkTextNodes(c,f),i)return!0}return i}},{key:"_markTextSameNode",value:function(t,e,n){var r=t.nodeValue,o=m["default"].calcIndex(t);if(!r)return!1;if(e>0){var i=r.slice(0,e);t.parentNode.insertBefore(this.document.createTextNode(i),t),m["default"].wrap(t.previousSibling,this._createSplitContainer(t,o,m["default"].getOffsetParentIfHas(t)))}if(n=0;r--){var o=r>0?e.cloneNode(!0):e,i=n[r],u=i.parentNode,a=i.nextSibling;o.appendChild(i),a?u.insertBefore(o,a):u.appendChild(o)}return e}},{key:"calcIndex",value:function(e){for(var n=0,r=!1,o=e.parentNode.childNodes,i=o.length,u=0;i>u;u++){var a=o[u];if(a===e)break;var s=a.getAttribute?a.getAttribute(f):null;s&&(n=parseInt(s,10),r=!0),n++}return r?n:t.index(e)}},{key:"parents",value:function(e,n){return t.parentsCallback(e,function(t){return n&&(t===n||"string"==typeof n&&t.matches&&t.matches(n))?!0:n?!1:!0})}},{key:"parentsCallback",value:function(t,e){for(var n=t,r=[];null!==n.parentNode;)n=n.parentNode,e(n)&&r.push(n);return r}},{key:"parent",value:function(t,e){for(var n=t;null!==n.parentNode;)if(n=n.parentNode,n.matches&&n.matches(e))return n;return!1}},{key:"closest",value:function(e,n){return t.closestCallback(e,function(t){return t.matches&&t.matches(n)})}},{key:"closestCallback",value:function(t,e){for(var n=t;null!==n;){if(e(n))return n;n=n.parentNode}return!1}},{key:"outerMostCallback",value:function(t,e){for(var n=t,r=!1;null!==n;)e(n)&&(r=n),n=n.parentNode;return r}},{key:"isMarkNode",value:function(t){return t instanceof HTMLElement&&t.hasAttribute(c)}},{key:"getPath",value:function(e,n){for(var r=null,o=e,i=function(e){return!t.isMarkNode(e)&&e.nodeName===o.nodeName};o;){var u=null;if(Node.TEXT_NODE===o.nodeType){var a=t.parents(o,"["+f+"]").reverse()[0],s=0;a||(s=t.calcIndex(o));var c=a?parseInt(a.getAttribute(f),10):s;u=l+c}else u=o.nodeName;if(!u)break;u=u.toLowerCase();var d=o.parentNode;if(t.isMarkNode(o)){if(d!==n){o=d;continue}break}var p=t.nodeListFilter(d.children,i),h=t.index(o,p);if(p.length>1&&h>=0&&(u+=":nth-of-type("+(h+1)+")"),r=u+(r?">"+r:""),d===n)break;o=d}return r.replace("#document>","").replace(">;",";")}},{key:"findOriginalOffset",value:function(e){if(!e.parentNode.hasAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START))return 0;var n=t.parent(e,"["+s.ATTR_DATA_ORIGINAL_OFFSET_START+"]");return n?parseInt(n.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START),10):0}},{key:"deserializePath",value:function(e,n){var r=e.split(";"),o=r[0],i=parseInt(r[1],10),u=parseInt(r[2],10),a=o.trim()?n.querySelector(o):n,c=null;return t.walkTextNodes(a,function(e){var n=e.parentNode.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START);n=null===n?0:n;var r=e.parentNode.getAttribute(f);if(r=null===r?t.calcIndex(e):r,parseInt(r,10)===i&&u>=n&&parseInt(n,10)+e.length>=u){var o=e.parentNode.hasAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START)?u-parseInt(e.parentNode.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START),10):u;return c={node:e,offset:o},!1}return!0},null),c}},{key:"walkDom",value:function(t,e){var n,r=arguments.length<=2||void 0===arguments[2]?NodeFilter.SHOW_ALL:arguments[2],o=arguments.length<=3||void 0===arguments[3]?null:arguments[3];if(!t)return!1;var i=[t,r,o||function(){return!0},!1];i.push(!1);for(var u=(n=document).createTreeWalker.apply(n,i);u.nextNode();)if(!e(u.currentNode))return!0;return!1}},{key:"walkTextNodes",value:function(e,n){var r=arguments.length<=2||void 0===arguments[2]?function(e){return!t.nodeIsEmpty(e)}:arguments[2];return t.walkDom(e,n,NodeFilter.SHOW_TEXT,r)}},{key:"getIndexParentIfHas",value:function(t,e){var n=t.parentNode,r=parseInt(n.getAttribute(f),10);return r>e?r:e}},{key:"getOffsetParentIfHas",value:function(t){var e=t.parentNode,n=parseInt(e.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START),10);return n>0?n:0}}]),t}();e["default"]=p},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}var o="function"==typeof _Symbol&&"symbol"==typeof _Symbol$iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof _Symbol&&t.constructor===_Symbol?"symbol":typeof t};e.__esModule=!0;var i=n(98),u=r(i),a=n(97),s=r(a);e["default"]="function"==typeof s["default"]&&"symbol"===o(u["default"])?function(t){return"undefined"==typeof t?"undefined":o(t)}:function(t){return t&&"function"==typeof s["default"]&&t.constructor===s["default"]?"symbol":"undefined"==typeof t?"undefined":o(t)}},function(t,e,n){var r=n(46),o=n(6)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[o])?n:i?r(e):"Object"==(u=r(e))&&"function"==typeof e.callee?"Arguments":u}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(27),o=n(119),i=n(117),u=n(13),a=n(127),s=n(71);t.exports=function(t,e,n,f){var c,l,d,p=s(t),h=r(n,f,e?2:1),v=0;if("function"!=typeof p)throw TypeError(t+" is not iterable!");if(i(p))for(c=a(t.length);c>v;v++)e?h(u(l=t[v])[0],l[1]):h(t[v]);else for(d=p.call(t);!(l=d.next()).done;)o(d,h,l.value,e)}},function(t,e,n){"use strict";var r=n(65),o=n(10),i=n(50),u=n(17),a=n(29),s=n(12),f=n(120),c=n(31),l=n(2).getProto,d=n(6)("iterator"),p=!([].keys&&"next"in[].keys()),h="@@iterator",v="keys",_="values",g=function(){return this};t.exports=function(t,e,n,y,m,E,b){f(n,e,y);var T,N,O=function(t){if(!p&&t in k)return k[t];switch(t){case v:return function(){return new n(this,t)};case _:return function(){return new n(this,t)}}return function(){return new n(this,t)}},A=e+" Iterator",x=m==_,S=!1,k=t.prototype,I=k[d]||k[h]||m&&k[m],w=I||O(m);if(I){var R=l(w.call(new t));c(R,A,!0),!r&&a(k,h)&&u(R,d,g),x&&I.name!==_&&(S=!0,w=function(){return I.call(this)})}if(r&&!b||!p&&!S&&k[d]||u(k,d,w),s[e]=w,s[A]=g,m)if(T={values:x?w:O(_),keys:E?w:O(v),entries:x?O("entries"):w},b)for(N in T)N in k||i(k,N,T[N]);else o(o.P+o.F*(p||S),e,T);return T}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=n(17)},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},,,,,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(25),i=r(o),u=n(26),a=r(u),s=function(){function t(e,n,r,o){(0,i["default"])(this,t),this.startOffset=e,this.endOffset=n,this.startContainerPath=r,this.endContainerPath=o,this._renderingInstance=null}return(0,a["default"])(t,[{key:"serialize",value:function(){return{startOffset:this.startOffset,endOffset:this.endOffset,startContainerPath:this.startContainerPath,endContainerPath:this.endContainerPath}}},{key:"text",set:function(t){this._text=t},get:function(){return this._text}},{key:"instance",get:function(){return this._renderingInstance},set:function(t){this._renderingInstance=t}}],[{key:"fromObject",value:function(e){return new t(e.startOffset,e.endOffset,e.startContainerPath,e.endContainerPath)}}]),t}();e["default"]=s},function(t,e,n){(function(t){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.EVENT_PART_TREE_LEAVE=e.EVENT_PART_TREE_ENTER=e.EVENT_MOUSELEAVE=e.EVENT_MOUSEENTER=e.EVENT_CLICK=void 0;var o=n(99),i=r(o),u=n(44),a=r(u),s=n(96),f=r(s),c=n(92),l=r(c),d=n(60),p=r(d),h=n(25),v=r(h),_=n(26),g=r(_),y=n(62),m=r(y),E=n(61),b=r(E),T=n(147),N=r(T),O=n(42),A=r(O),x=n(43),S=r(x),k=e.EVENT_CLICK="click",I=e.EVENT_MOUSEENTER="hover-enter",w=e.EVENT_MOUSELEAVE="hover-leave",R=e.EVENT_PART_TREE_ENTER="tree-enter",P=e.EVENT_PART_TREE_LEAVE="tree-leave",L=function(t){function e(t,n){(0,v["default"])(this,e);var r=(0,m["default"])(this,(0,p["default"])(e).call(this));return r.options={hoverClass:"marklib--hover",treeClass:"marklib--tree",className:["marking"]},r.options=(0,l["default"])(r.options,t||{}),"string"==typeof r.options.className&&(r.options.className=r.options.className.split(" ")),r.wrapperNodes=[],r.document=n,r}return(0,b["default"])(e,t),(0,g["default"])(e,[{key:"range",get:function(){var t=this.document.createRange(),e=[];if(this.wrapperNodes.forEach(function(t){S["default"].walkTextNodes(t,function(t){e.push(t)})}),e.length>0){var n=e[e.length-1];return t.setStart(e[0],0),t.setEnd(n,n.length),t}return null}}],[{key:"globalEmitter",value:function(){return e.staticEventListener}}]),e}(N["default"]);e["default"]=L,L.staticEventListener=new N["default"],t.__MARKLIB_EVENTS__||(t.__MARKLIB_EVENTS__=!0,L.globalEmitter().on(I,function(t){t.wrapperNodes.forEach(function(e){e.classList.add(t.options.hoverClass)})}),L.globalEmitter().on(w,function(t){t.wrapperNodes.forEach(function(e){e.classList.remove(t.options.hoverClass)})}),L.globalEmitter().on(R,function(t){t.wrapperNodes.forEach(function(e){e.classList.add(t.options.treeClass)})}),L.globalEmitter().on(P,function(t){t.wrapperNodes.forEach(function(e){e.classList.remove(t.options.treeClass)})}),function(){function e(t){var e=A["default"].getMarklibInstance(t);return e&&(e instanceof A["default"]||"wrapperNodes"in e)}function n(t){var n=S["default"].closestCallback(t.target,function(t){return e(t)});return"object"===("undefined"==typeof n?"undefined":(0,a["default"])(n))?A["default"].getMarklibInstance(n):!1}function r(t,n){return S["default"].parentsCallback(t.target,function(t){return e(t)&&A["default"].getMarklibInstance(t)!==n}).map(function(t){return A["default"].getMarklibInstance(t)})}function o(){s.forEach(function(t){A["default"].globalEmitter().emit(w,t),t.emit(w)}),s.clear(),c.forEach(function(t){A["default"].globalEmitter().emit(P,t),t.emit(P)}),c.clear()}function u(t){var e=n(t);if(e){var o=r(t,e);if(t.target.textContent!==e.result.text&&o.length>0){var i=o;i.unshift(e),i=i.sort(function(t,e){return t.result.text.length0?r:n)(t)}},function(t,e,n){var r=n(28);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(45),o=n(6)("iterator"),i=n(12);t.exports=n(4).getIteratorMethod=function(t){return void 0!=t?t[o]||t["@@iterator"]||i[r(t)]:void 0}},function(t,e){},,,,,,,,,,,,,,,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.RenderingEvents=e.RenderResult=e.Util=e.Rendering=void 0;var o=n(42),i=r(o),u=n(43),a=r(u),s=n(57),f=r(s),c=n(58),l=r(c);e.Rendering=i["default"],e.Util=a["default"],e.RenderResult=f["default"],e.RenderingEvents=l["default"]},,function(t,e,n){t.exports={"default":n(100),__esModule:!0}},function(t,e,n){t.exports={"default":n(101),__esModule:!0}},function(t,e,n){t.exports={"default":n(102),__esModule:!0}},function(t,e,n){t.exports={"default":n(103),__esModule:!0}},function(t,e,n){t.exports={"default":n(104),__esModule:!0}},function(t,e,n){t.exports={"default":n(106),__esModule:!0}},function(t,e,n){t.exports={"default":n(107),__esModule:!0}},function(t,e,n){t.exports={"default":n(108),__esModule:!0}},function(t,e,n){t.exports={"default":n(109),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(91),i=r(o),u=n(90),a=r(u);e["default"]=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=(0,a["default"])(t);!(r=(u=s.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(f){o=!0,i=f}finally{try{!r&&s["return"]&&s["return"]()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if((0,i["default"])(Object(e)))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e,n){n(34),n(33),t.exports=n(128)},function(t,e,n){n(34),n(33),t.exports=n(129)},function(t,e,n){n(131),t.exports=n(4).Object.assign},function(t,e,n){var r=n(2);t.exports=function(t,e){return r.create(t,e)}},function(t,e,n){var r=n(2);t.exports=function(t,e,n){return r.setDesc(t,e,n)}},function(t,e,n){n(132),t.exports=n(4).Object.getPrototypeOf},function(t,e,n){n(133),t.exports=n(4).Object.setPrototypeOf},function(t,e,n){n(72),n(33),n(34),n(134),n(136),t.exports=n(4).Set},function(t,e,n){n(135),n(72),t.exports=n(4).Symbol},function(t,e,n){n(33),n(34),t.exports=n(6)("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){"use strict";var r=n(2),o=n(17),i=n(66),u=n(27),a=n(68),s=n(28),f=n(47),c=n(48),l=n(64),d=n(51)("id"),p=n(29),h=n(30),v=n(125),_=n(14),g=Object.isExtensible||h,y=_?"_s":"size",m=0,E=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!p(t,d)){if(!g(t))return"F";if(!e)return"E";o(t,d,++m)}return"O"+t[d]},b=function(t,e){var n,r=E(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,o){var c=t(function(t,i){a(t,c,e),t._i=r.create(null),t._f=void 0,t._l=void 0,t[y]=0,void 0!=i&&f(i,n,t[o],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[y]=0},"delete":function(t){var e=this,n=b(e,t);if(n){var r=n.n,o=n.p;delete e._i[n.i],n.r=!0,o&&(o.n=r),r&&(r.p=o),e._f==n&&(e._f=r),e._l==n&&(e._l=o),e[y]--}return!!n},forEach:function(t){for(var e,n=u(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!b(this,t)}}),_&&r.setDesc(c.prototype,"size",{get:function(){return s(this[y])}}),c},def:function(t,e,n){var r,o,i=b(t,e);return i?i.v=n:(t._l=i={i:o=E(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[y]++,"F"!==o&&(t._i[o]=i)),t},getEntry:b,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),v(e)}}},function(t,e,n){var r=n(47),o=n(45);t.exports=function(t){return function(){if(o(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return r(this,!1,e.push,e),e}}},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(10),u=n(15),a=n(17),s=n(66),f=n(47),c=n(68),l=n(30),d=n(31),p=n(14);t.exports=function(t,e,n,h,v,_){var g=o[t],y=g,m=v?"set":"add",E=y&&y.prototype,b={};return p&&"function"==typeof y&&(_||E.forEach&&!u(function(){(new y).entries().next()}))?(y=e(function(e,n){c(e,y,t),e._c=new g,void 0!=n&&f(n,v,e[m],e)}),r.each.call("add,clear,delete,forEach,get,has,set,keys,values,entries".split(","),function(t){var e="add"==t||"set"==t;t in E&&(!_||"clear"!=t)&&a(y.prototype,t,function(n,r){if(!e&&_&&!l(n))return"get"==t?void 0:!1;var o=this._c[t](0===n?0:n,r);return e?this:o})}),"size"in E&&r.setDesc(y.prototype,"size",{get:function(){return this._c.size}})):(y=h.getConstructor(e,t,v,m),s(y.prototype,n)),d(y,t),b[t]=y,i(i.G+i.W+i.F,b),_||h.setStrong(y,t,v),y}},function(t,e,n){var r=n(2);t.exports=function(t){var e=r.getKeys(t),n=r.getSymbols;if(n)for(var o,i=n(t),u=r.isEnum,a=0;i.length>a;)u.call(t,o=i[a++])&&e.push(o);return e}},function(t,e,n){var r=n(32),o=n(2).getNames,i={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return o(t)}catch(e){return u.slice()}};t.exports.get=function(t){return u&&"[object Window]"==i.call(t)?a(t):o(r(t))}},function(t,e,n){var r=n(12),o=n(6)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){var r=n(46);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(13);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(i){var u=t["return"];throw void 0!==u&&r(u.call(t)),i}}},function(t,e,n){"use strict";var r=n(2),o=n(49),i=n(31),u={};n(17)(u,n(6)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r.create(u,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(2),o=n(32);t.exports=function(t,e){for(var n,i=o(t),u=r.getKeys(i),a=u.length,s=0;a>s;)if(i[n=u[s++]]===e)return n}},function(t,e,n){var r=n(2),o=n(70),i=n(63);t.exports=n(15)(function(){var t=Object.assign,e={},n={},r=Symbol(),o="abcdefghijklmnopqrst";return e[r]=7,o.split("").forEach(function(t){n[t]=t}),7!=t({},e)[r]||Object.keys(t({},n)).join("")!=o})?function(t,e){for(var n=o(t),u=arguments,a=u.length,s=1,f=r.getKeys,c=r.getSymbols,l=r.isEnum;a>s;)for(var d,p=i(u[s++]),h=c?f(p).concat(c(p)):f(p),v=h.length,_=0;v>_;)l.call(p,d=h[_++])&&(n[d]=p[d]);return n}:Object.assign},function(t,e,n){var r=n(10),o=n(4),i=n(15);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],u={};u[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",u)}},function(t,e,n){var r=n(2).getDesc,o=n(30),i=n(13),u=function(t,e){if(i(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=n(27)(Function.call,r(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(i){e=!0}return function(t,n){return u(t,n),e?t.__proto__=n:o(t,n),t}}({},!1):void 0),check:u}},function(t,e,n){"use strict";var r=n(4),o=n(2),i=n(14),u=n(6)("species");t.exports=function(t){var e=r[t];i&&e&&!e[u]&&o.setDesc(e,u,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(69),o=n(28);t.exports=function(t){return function(e,n){var i,u,a=String(o(e)),s=r(n),f=a.length;return 0>s||s>=f?t?"":void 0:(i=a.charCodeAt(s),55296>i||i>56319||s+1===f||(u=a.charCodeAt(s+1))<56320||u>57343?t?a.charAt(s):i:t?a.slice(s,s+2):(i-55296<<10)+(u-56320)+65536)}}},function(t,e,n){var r=n(69),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(13),o=n(71);t.exports=n(4).getIterator=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},function(t,e,n){var r=n(45),o=n(6)("iterator"),i=n(12);t.exports=n(4).isIterable=function(t){var e=Object(t);return void 0!==e[o]||"@@iterator"in e||i.hasOwnProperty(r(e)); -}},function(t,e,n){"use strict";var r=n(111),o=n(64),i=n(12),u=n(32);t.exports=n(48)(Array,"Array",function(t,e){this._t=u(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10);r(r.S+r.F,"Object",{assign:n(122)})},function(t,e,n){var r=n(70);n(123)("getPrototypeOf",function(t){return function(e){return t(r(e))}})},function(t,e,n){var r=n(10);r(r.S,"Object",{setPrototypeOf:n(124).set})},function(t,e,n){"use strict";var r=n(112);n(114)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(this,t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(29),u=n(14),a=n(10),s=n(50),f=n(15),c=n(67),l=n(31),d=n(51),p=n(6),h=n(121),v=n(116),_=n(115),g=n(118),y=n(13),m=n(32),E=n(49),b=r.getDesc,T=r.setDesc,N=r.create,O=v.get,A=o.Symbol,x=o.JSON,S=x&&x.stringify,k=!1,I=p("_hidden"),w=r.isEnum,R=c("symbol-registry"),P=c("symbols"),L="function"==typeof A,C=Object.prototype,M=u&&f(function(){return 7!=N(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=b(C,e);r&&delete C[e],T(t,e,n),r&&t!==C&&T(C,e,r)}:T,D=function(t){var e=P[t]=N(A.prototype);return e._k=t,u&&k&&M(C,t,{configurable:!0,set:function(e){i(this,I)&&i(this[I],t)&&(this[I][t]=!1),M(this,t,E(1,e))}}),e},j=function(t){return"symbol"==typeof t},F=function(t,e,n){return n&&i(P,e)?(n.enumerable?(i(t,I)&&t[I][e]&&(t[I][e]=!1),n=N(n,{enumerable:E(0,!1)})):(i(t,I)||T(t,I,E(1,{})),t[I][e]=!0),M(t,e,n)):T(t,e,n)},V=function(t,e){y(t);for(var n,r=_(e=m(e)),o=0,i=r.length;i>o;)F(t,n=r[o++],e[n]);return t},W=function(t,e){return void 0===e?N(t):V(N(t),e)},G=function(t){var e=w.call(this,t);return e||!i(this,t)||!i(P,t)||i(this,I)&&this[I][t]?e:!0},X=function(t,e){var n=b(t=m(t),e);return!n||!i(P,e)||i(t,I)&&t[I][e]||(n.enumerable=!0),n},H=function(t){for(var e,n=O(m(t)),r=[],o=0;n.length>o;)i(P,e=n[o++])||e==I||r.push(e);return r},z=function(t){for(var e,n=O(m(t)),r=[],o=0;n.length>o;)i(P,e=n[o++])&&r.push(P[e]);return r},B=function(t){if(void 0!==t&&!j(t)){for(var e,n,r=[t],o=1,i=arguments;i.length>o;)r.push(i[o++]);return e=r[1],"function"==typeof e&&(n=e),(n||!g(e))&&(e=function(t,e){return n&&(e=n.call(this,t,e)),j(e)?void 0:e}),r[1]=e,S.apply(x,r)}},K=f(function(){var t=A();return"[null]"!=S([t])||"{}"!=S({a:t})||"{}"!=S(Object(t))});L||(A=function(){if(j(this))throw TypeError("Symbol is not a constructor");return D(d(arguments.length>0?arguments[0]:void 0))},s(A.prototype,"toString",function(){return this._k}),j=function(t){return t instanceof A},r.create=W,r.isEnum=G,r.getDesc=X,r.setDesc=F,r.setDescs=V,r.getNames=v.get=H,r.getSymbols=z,u&&!n(65)&&s(C,"propertyIsEnumerable",G,!0));var U={"for":function(t){return i(R,t+="")?R[t]:R[t]=A(t)},keyFor:function(t){return h(R,t)},useSetter:function(){k=!0},useSimple:function(){k=!1}};r.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var e=p(t);U[t]=L?e:D(e)}),k=!0,a(a.G+a.W,{Symbol:A}),a(a.S,"Symbol",U),a(a.S+a.F*!L,"Object",{create:W,defineProperty:F,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:H,getOwnPropertySymbols:z}),x&&a(a.S+a.F*(!L||K),"JSON",{stringify:B}),l(A,"Symbol"),l(Math,"Math",!0),l(o.JSON,"JSON",!0)},function(t,e,n){var r=n(10);r(r.P,"Set",{toJSON:n(113)("Set")})},,,,,,,,,,,function(t,e,n){var r;(function(){"use strict";function e(){}function o(t,e){for(var n=t.length;n--;)if(t[n].listener===e)return n;return-1}function i(t){return function(){return this[t].apply(this,arguments)}}var u=e.prototype,a=this,s=a.EventEmitter;u.getListeners=function(t){var e,n,r=this._getEvents();if(t instanceof RegExp){e={};for(n in r)r.hasOwnProperty(n)&&t.test(n)&&(e[n]=r[n])}else e=r[t]||(r[t]=[]);return e},u.flattenListeners=function(t){var e,n=[];for(e=0;e=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){n(130);var r=n(12);r.NodeList=r.HTMLCollection=r.Array},,,,,,,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.EVENT_WRAPPED_NODE=e.ATTR_DATA_ORIGINAL_OFFSET_START=void 0;var o=n(60),i=r(o),u=n(25),a=r(u),s=n(26),f=r(s),c=n(62),l=r(c),d=n(61),p=r(d),h=n(57),v=r(h),_=n(58),y=r(_),g=n(43),E=r(g),m="x-marker",b=e.ATTR_DATA_ORIGINAL_OFFSET_START="data-original-offset-start",T="original-text-node-index",N="data-is-start-end",O="data-is-highlight-node",A="data-selection-id",x=16,S=e.EVENT_WRAPPED_NODE="wrapped-node",k=function(t){function e(t,n,r){(0,a["default"])(this,e);var o=(0,l["default"])(this,(0,i["default"])(e).call(this,n,t));return o.id=E["default"].guid(),o.startContainer=null,o.endContainer=null,o.context=r||o.document,o._renderResult=null,o}return(0,p["default"])(e,t),(0,f["default"])(e,[{key:"getId",value:function(){return this.id}},{key:"setId",value:function(t){var e=this;return this.id=t,this._renderResult&&this.wrapperNodes.forEach(function(t){return t.setAttribute(A,e.id)}),this}},{key:"_createWrapTemplate",value:function(t){var n=this.document.createElement(m),r="true";return t||(n.className=this.options.className.join(" "),e.setMarklibInstance(n,this),this.wrapperNodes.push(n),n.setAttribute(O,r),n.setAttribute(A,this.getId())),n.setAttribute(g.DATA_IS_SELECTION,r),n}},{key:"_createStartEndWrapTemplate",value:function(t){var e=this._createWrapTemplate();return e.setAttribute(N,"true"),e.textContent=t,e}},{key:"_createStartOrEndContainer",value:function(t,e,n,r){var o=this._createStartEndWrapTemplate(e);return o.setAttribute(g.ATTR_DATA_ORIGINAL_INDEX,E["default"].getIndexParentIfHas(t,r)),o.setAttribute(b,n),o.setAttribute(T,r),o}},{key:"_createWrap",value:function(t,e,n,r,o){var i=n>=0?n:E["default"].calcIndex(t),u=this._createWrapTemplate(o);u.setAttribute(g.ATTR_DATA_ORIGINAL_INDEX,E["default"].getIndexParentIfHas(t,i));var a=e>=0?e:E["default"].getOffsetParentIfHas(t);u.setAttribute(b,a),u.setAttribute(T,i),r&&u.setAttribute(N,N);var s=E["default"].wrap(t,u);return this.emit(S,t,s),s}},{key:"_createSplitContainer",value:function(t,e,n){var r=this.document.createElement(m);return r.setAttribute(g.DATA_IS_SELECTION,"true"),r.setAttribute(g.ATTR_DATA_ORIGINAL_INDEX,E["default"].getIndexParentIfHas(t,e)),r.setAttribute(b,n),r.setAttribute(T,e),r}},{key:"walk",value:function(t,e,n){for(var r=t;r&&r!==n.parentNode;){var o=r;if(r=r.parentNode,this.wrapSiblings(o.nextSibling,e))break}}},{key:"wrapSiblings",value:function(t,n){for(var r=this,o=t,i=!1,u=function(t){var n=e.getMarklibInstance(t.parentNode);t.parentNode.hasAttribute(N)&&t.parentNode.hasAttribute(O)&&n===r?r._createWrap(t,void 0,void 0,void 0,!0):r._createWrap(t)},a=function(t){E["default"].nodeIsEmpty(t)||u(t)},s=function(t){return t===n?!1:(Node.TEXT_NODE===t.nodeType&&a(t),!0)},f=function(t){a(t)};null!==o&&o!==n;){var c=o;if(o=o.nextSibling,Node.TEXT_NODE===c.nodeType)a(c);else if(c.compareDocumentPosition(n)&x?(E["default"].walkDom(c,s),i=!0):E["default"].walkTextNodes(c,f),i)return!0}return i}},{key:"_markTextSameNode",value:function(t,e,n){var r=t.nodeValue,o=E["default"].calcIndex(t);if(!r)return!1;if(e>0){var i=r.slice(0,e);t.parentNode.insertBefore(this.document.createTextNode(i),t),E["default"].wrap(t.previousSibling,this._createSplitContainer(t,o,E["default"].getOffsetParentIfHas(t)))}if(n=0;r--){var o=r>0?e.cloneNode(!0):e,i=n[r],u=i.parentNode,a=i.nextSibling;o.appendChild(i),a?u.insertBefore(o,a):u.appendChild(o)}return e}},{key:"calcIndex",value:function(e){for(var n=0,r=!1,o=e.parentNode.childNodes,i=o.length,u=0;i>u;u++){var a=o[u];if(a===e)break;var s=a.getAttribute?a.getAttribute(f):null;s&&(n=parseInt(s,10),r=!0),n++}return r?n:t.index(e)}},{key:"parents",value:function(e,n){return t.parentsCallback(e,function(t){return n&&(t===n||"string"==typeof n&&t.matches&&t.matches(n))?!0:n?!1:!0})}},{key:"parentsCallback",value:function(t,e){for(var n=t,r=[];null!==n.parentNode;)n=n.parentNode,e(n)&&r.push(n);return r}},{key:"parent",value:function(t,e){for(var n=t;null!==n.parentNode;)if(n=n.parentNode,n.matches&&n.matches(e))return n;return!1}},{key:"closest",value:function(e,n){return t.closestCallback(e,function(t){return t.matches&&t.matches(n)})}},{key:"closestCallback",value:function(t,e){for(var n=t;null!==n;){if(e(n))return n;n=n.parentNode}return!1}},{key:"outerMostCallback",value:function(t,e){for(var n=t,r=!1;null!==n;)e(n)&&(r=n),n=n.parentNode;return r}},{key:"isMarkNode",value:function(t){return t instanceof HTMLElement&&t.hasAttribute(c)}},{key:"getPath",value:function(e,n){for(var r=null,o=e,i=function(e){return!t.isMarkNode(e)&&e.nodeName===o.nodeName};o;){var u=null;if(Node.TEXT_NODE===o.nodeType){var a=t.parents(o,"["+f+"]").reverse()[0],s=0;a||(s=t.calcIndex(o));var c=a?parseInt(a.getAttribute(f),10):s;u=l+c}else u=o.nodeName;if(!u)break;u=u.toLowerCase();var d=o.parentNode;if(t.isMarkNode(o)){if(d!==n){o=d;continue}break}var p=t.nodeListFilter(d.children,i),h=t.index(o,p);if(p.length>1&&h>=0&&(u+=":nth-of-type("+(h+1)+")"),r=u+(r?">"+r:""),d===n)break;o=d}return r.replace("#document>","").replace(">;",";")}},{key:"findOriginalOffset",value:function(e){if(!e.parentNode.hasAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START))return 0;var n=t.parent(e,"["+s.ATTR_DATA_ORIGINAL_OFFSET_START+"]");return n?parseInt(n.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START),10):0}},{key:"deserializePath",value:function(e,n){var r=e.split(";"),o=r[0],i=parseInt(r[1],10),u=parseInt(r[2],10),a=o.trim()?n.querySelector(o):n,c=null;return t.walkDom(a,function(e){var n=e.parentNode.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START);n=null===n?0:n;var r=e.parentNode.getAttribute(f);if(r=null===r?t.calcIndex(e):r,parseInt(r,10)===i&&u>=n&&parseInt(n,10)+e.length>=u){var o=e.parentNode.hasAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START)?u-parseInt(e.parentNode.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START),10):u;return c={node:e,offset:o},!1}return!0}),c}},{key:"walkDom",value:function(e,n){if(!e)return!1;var r=e.childNodes;if(!r)return!1;for(var o=0;oe?r:e}},{key:"getOffsetParentIfHas",value:function(t){var e=t.parentNode,n=parseInt(e.getAttribute(s.ATTR_DATA_ORIGINAL_OFFSET_START),10);return n>0?n:0}}]),t}();e["default"]=p},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}var o="function"==typeof _Symbol&&"symbol"==typeof _Symbol$iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof _Symbol&&t.constructor===_Symbol?"symbol":typeof t};e.__esModule=!0;var i=n(98),u=r(i),a=n(97),s=r(a);e["default"]="function"==typeof s["default"]&&"symbol"===o(u["default"])?function(t){return"undefined"==typeof t?"undefined":o(t)}:function(t){return t&&"function"==typeof s["default"]&&t.constructor===s["default"]?"symbol":"undefined"==typeof t?"undefined":o(t)}},function(t,e,n){var r=n(46),o=n(6)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[o])?n:i?r(e):"Object"==(u=r(e))&&"function"==typeof e.callee?"Arguments":u}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(27),o=n(119),i=n(117),u=n(13),a=n(127),s=n(71);t.exports=function(t,e,n,f){var c,l,d,p=s(t),h=r(n,f,e?2:1),v=0;if("function"!=typeof p)throw TypeError(t+" is not iterable!");if(i(p))for(c=a(t.length);c>v;v++)e?h(u(l=t[v])[0],l[1]):h(t[v]);else for(d=p.call(t);!(l=d.next()).done;)o(d,h,l.value,e)}},function(t,e,n){"use strict";var r=n(65),o=n(10),i=n(50),u=n(17),a=n(29),s=n(12),f=n(120),c=n(31),l=n(2).getProto,d=n(6)("iterator"),p=!([].keys&&"next"in[].keys()),h="@@iterator",v="keys",_="values",y=function(){return this};t.exports=function(t,e,n,g,E,m,b){f(n,e,g);var T,N,O=function(t){if(!p&&t in k)return k[t];switch(t){case v:return function(){return new n(this,t)};case _:return function(){return new n(this,t)}}return function(){return new n(this,t)}},A=e+" Iterator",x=E==_,S=!1,k=t.prototype,I=k[d]||k[h]||E&&k[E],w=I||O(E);if(I){var R=l(w.call(new t));c(R,A,!0),!r&&a(k,h)&&u(R,d,y),x&&I.name!==_&&(S=!0,w=function(){return I.call(this)})}if(r&&!b||!p&&!S&&k[d]||u(k,d,w),s[e]=w,s[A]=y,E)if(T={values:x?w:O(_),keys:m?w:O(v),entries:x?O("entries"):w},b)for(N in T)N in k||i(k,N,T[N]);else o(o.P+o.F*(p||S),e,T);return T}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=n(17)},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},,,,,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(25),i=r(o),u=n(26),a=r(u),s=function(){function t(e,n,r,o){(0,i["default"])(this,t),this.startOffset=e,this.endOffset=n,this.startContainerPath=r,this.endContainerPath=o,this._renderingInstance=null}return(0,a["default"])(t,[{key:"serialize",value:function(){return{startOffset:this.startOffset,endOffset:this.endOffset,startContainerPath:this.startContainerPath,endContainerPath:this.endContainerPath}}},{key:"text",set:function(t){this._text=t},get:function(){return this._text}},{key:"instance",get:function(){return this._renderingInstance},set:function(t){this._renderingInstance=t}}],[{key:"fromObject",value:function(e){return new t(e.startOffset,e.endOffset,e.startContainerPath,e.endContainerPath)}}]),t}();e["default"]=s},function(t,e,n){(function(t){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.EVENT_PART_TREE_LEAVE=e.EVENT_PART_TREE_ENTER=e.EVENT_MOUSELEAVE=e.EVENT_MOUSEENTER=e.EVENT_CLICK=void 0;var o=n(99),i=r(o),u=n(44),a=r(u),s=n(96),f=r(s),c=n(92),l=r(c),d=n(60),p=r(d),h=n(25),v=r(h),_=n(26),y=r(_),g=n(62),E=r(g),m=n(61),b=r(m),T=n(147),N=r(T),O=n(42),A=r(O),x=n(43),S=r(x),k=e.EVENT_CLICK="click",I=e.EVENT_MOUSEENTER="hover-enter",w=e.EVENT_MOUSELEAVE="hover-leave",R=e.EVENT_PART_TREE_ENTER="tree-enter",P=e.EVENT_PART_TREE_LEAVE="tree-leave",C=function(t){function e(t,n){(0,v["default"])(this,e);var r=(0,E["default"])(this,(0,p["default"])(e).call(this));return r.options={hoverClass:"marklib--hover",treeClass:"marklib--tree",className:["marking"]},r.options=(0,l["default"])(r.options,t||{}),"string"==typeof r.options.className&&(r.options.className=r.options.className.split(" ")),r.wrapperNodes=[],r.document=n,r}return(0,b["default"])(e,t),(0,y["default"])(e,[{key:"range",get:function(){var t=this.document.createRange(),e=[];if(this.wrapperNodes.forEach(function(t){S["default"].walkTextNodes(t,function(t){e.push(t)})}),e.length>0){var n=e[e.length-1];return t.setStart(e[0],0),t.setEnd(n,n.length),t}return null}}],[{key:"globalEmitter",value:function(){return e.staticEventListener}}]),e}(N["default"]);e["default"]=C,C.staticEventListener=new N["default"],t.__MARKLIB_EVENTS__||(t.__MARKLIB_EVENTS__=!0,C.globalEmitter().on(I,function(t){t.wrapperNodes.forEach(function(e){e.classList.add(t.options.hoverClass)})}),C.globalEmitter().on(w,function(t){t.wrapperNodes.forEach(function(e){e.classList.remove(t.options.hoverClass)})}),C.globalEmitter().on(R,function(t){t.wrapperNodes.forEach(function(e){e.classList.add(t.options.treeClass)})}),C.globalEmitter().on(P,function(t){t.wrapperNodes.forEach(function(e){e.classList.remove(t.options.treeClass)})}),function(){function e(t){var e=A["default"].getMarklibInstance(t);return e&&(e instanceof A["default"]||"wrapperNodes"in e)}function n(t){var n=S["default"].closestCallback(t.target,function(t){return e(t)});return"object"===("undefined"==typeof n?"undefined":(0,a["default"])(n))?A["default"].getMarklibInstance(n):!1}function r(t,n){return S["default"].parentsCallback(t.target,function(t){return e(t)&&A["default"].getMarklibInstance(t)!==n}).map(function(t){return A["default"].getMarklibInstance(t)})}function o(){s.forEach(function(t){A["default"].globalEmitter().emit(w,t),t.emit(w)}),s.clear(),c.forEach(function(t){A["default"].globalEmitter().emit(P,t),t.emit(P)}),c.clear()}function u(t){var e=n(t);if(e){var o=r(t,e);if(t.target.textContent!==e.result.text&&o.length>0){var i=o;i.unshift(e),i=i.sort(function(t,e){return t.result.text.length0?r:n)(t)}},function(t,e,n){var r=n(28);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(45),o=n(6)("iterator"),i=n(12);t.exports=n(4).getIteratorMethod=function(t){return void 0!=t?t[o]||t["@@iterator"]||i[r(t)]:void 0}},function(t,e){},,,,,,,,,,,,,,,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.RenderingEvents=e.RenderResult=e.Util=e.Rendering=void 0;var o=n(42),i=r(o),u=n(43),a=r(u),s=n(57),f=r(s),c=n(58),l=r(c);e.Rendering=i["default"],e.Util=a["default"],e.RenderResult=f["default"],e.RenderingEvents=l["default"]},,function(t,e,n){t.exports={"default":n(100),__esModule:!0}},function(t,e,n){t.exports={"default":n(101),__esModule:!0}},function(t,e,n){t.exports={"default":n(102),__esModule:!0}},function(t,e,n){t.exports={"default":n(103),__esModule:!0}},function(t,e,n){t.exports={"default":n(104),__esModule:!0}},function(t,e,n){t.exports={"default":n(106),__esModule:!0}},function(t,e,n){t.exports={"default":n(107),__esModule:!0}},function(t,e,n){t.exports={"default":n(108),__esModule:!0}},function(t,e,n){t.exports={"default":n(109),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(91),i=r(o),u=n(90),a=r(u);e["default"]=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=(0,a["default"])(t);!(r=(u=s.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(f){o=!0,i=f}finally{try{!r&&s["return"]&&s["return"]()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if((0,i["default"])(Object(e)))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e,n){n(34),n(33),t.exports=n(128)},function(t,e,n){n(34),n(33),t.exports=n(129)},function(t,e,n){n(131),t.exports=n(4).Object.assign},function(t,e,n){var r=n(2);t.exports=function(t,e){return r.create(t,e)}},function(t,e,n){var r=n(2);t.exports=function(t,e,n){return r.setDesc(t,e,n)}},function(t,e,n){n(132),t.exports=n(4).Object.getPrototypeOf},function(t,e,n){n(133),t.exports=n(4).Object.setPrototypeOf},function(t,e,n){n(72),n(33),n(34),n(134),n(136),t.exports=n(4).Set},function(t,e,n){n(135),n(72),t.exports=n(4).Symbol},function(t,e,n){n(33),n(34),t.exports=n(6)("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){"use strict";var r=n(2),o=n(17),i=n(66),u=n(27),a=n(68),s=n(28),f=n(47),c=n(48),l=n(64),d=n(51)("id"),p=n(29),h=n(30),v=n(125),_=n(14),y=Object.isExtensible||h,g=_?"_s":"size",E=0,m=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!p(t,d)){if(!y(t))return"F";if(!e)return"E";o(t,d,++E)}return"O"+t[d]},b=function(t,e){var n,r=m(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,o){var c=t(function(t,i){a(t,c,e),t._i=r.create(null),t._f=void 0,t._l=void 0,t[g]=0,void 0!=i&&f(i,n,t[o],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[g]=0},"delete":function(t){var e=this,n=b(e,t);if(n){var r=n.n,o=n.p;delete e._i[n.i],n.r=!0,o&&(o.n=r),r&&(r.p=o),e._f==n&&(e._f=r),e._l==n&&(e._l=o),e[g]--}return!!n},forEach:function(t){for(var e,n=u(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!b(this,t)}}),_&&r.setDesc(c.prototype,"size",{get:function(){return s(this[g])}}),c},def:function(t,e,n){var r,o,i=b(t,e);return i?i.v=n:(t._l=i={i:o=m(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[g]++,"F"!==o&&(t._i[o]=i)),t},getEntry:b,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),v(e)}}},function(t,e,n){var r=n(47),o=n(45);t.exports=function(t){return function(){if(o(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return r(this,!1,e.push,e),e}}},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(10),u=n(15),a=n(17),s=n(66),f=n(47),c=n(68),l=n(30),d=n(31),p=n(14);t.exports=function(t,e,n,h,v,_){var y=o[t],g=y,E=v?"set":"add",m=g&&g.prototype,b={};return p&&"function"==typeof g&&(_||m.forEach&&!u(function(){(new g).entries().next()}))?(g=e(function(e,n){c(e,g,t),e._c=new y,void 0!=n&&f(n,v,e[E],e)}),r.each.call("add,clear,delete,forEach,get,has,set,keys,values,entries".split(","),function(t){var e="add"==t||"set"==t;t in m&&(!_||"clear"!=t)&&a(g.prototype,t,function(n,r){if(!e&&_&&!l(n))return"get"==t?void 0:!1;var o=this._c[t](0===n?0:n,r);return e?this:o})}),"size"in m&&r.setDesc(g.prototype,"size",{get:function(){return this._c.size}})):(g=h.getConstructor(e,t,v,E),s(g.prototype,n)),d(g,t),b[t]=g,i(i.G+i.W+i.F,b),_||h.setStrong(g,t,v),g}},function(t,e,n){var r=n(2);t.exports=function(t){var e=r.getKeys(t),n=r.getSymbols;if(n)for(var o,i=n(t),u=r.isEnum,a=0;i.length>a;)u.call(t,o=i[a++])&&e.push(o);return e}},function(t,e,n){var r=n(32),o=n(2).getNames,i={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return o(t)}catch(e){return u.slice()}};t.exports.get=function(t){return u&&"[object Window]"==i.call(t)?a(t):o(r(t))}},function(t,e,n){var r=n(12),o=n(6)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){var r=n(46);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(13);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(i){var u=t["return"];throw void 0!==u&&r(u.call(t)),i}}},function(t,e,n){"use strict";var r=n(2),o=n(49),i=n(31),u={};n(17)(u,n(6)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r.create(u,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(2),o=n(32);t.exports=function(t,e){for(var n,i=o(t),u=r.getKeys(i),a=u.length,s=0;a>s;)if(i[n=u[s++]]===e)return n}},function(t,e,n){var r=n(2),o=n(70),i=n(63);t.exports=n(15)(function(){var t=Object.assign,e={},n={},r=Symbol(),o="abcdefghijklmnopqrst";return e[r]=7,o.split("").forEach(function(t){n[t]=t}),7!=t({},e)[r]||Object.keys(t({},n)).join("")!=o})?function(t,e){for(var n=o(t),u=arguments,a=u.length,s=1,f=r.getKeys,c=r.getSymbols,l=r.isEnum;a>s;)for(var d,p=i(u[s++]),h=c?f(p).concat(c(p)):f(p),v=h.length,_=0;v>_;)l.call(p,d=h[_++])&&(n[d]=p[d]);return n}:Object.assign},function(t,e,n){var r=n(10),o=n(4),i=n(15);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],u={};u[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",u)}},function(t,e,n){var r=n(2).getDesc,o=n(30),i=n(13),u=function(t,e){if(i(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=n(27)(Function.call,r(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(i){e=!0}return function(t,n){return u(t,n),e?t.__proto__=n:o(t,n),t}}({},!1):void 0),check:u}},function(t,e,n){"use strict";var r=n(4),o=n(2),i=n(14),u=n(6)("species");t.exports=function(t){var e=r[t];i&&e&&!e[u]&&o.setDesc(e,u,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(69),o=n(28);t.exports=function(t){return function(e,n){var i,u,a=String(o(e)),s=r(n),f=a.length;return 0>s||s>=f?t?"":void 0:(i=a.charCodeAt(s),55296>i||i>56319||s+1===f||(u=a.charCodeAt(s+1))<56320||u>57343?t?a.charAt(s):i:t?a.slice(s,s+2):(i-55296<<10)+(u-56320)+65536)}}},function(t,e,n){var r=n(69),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(13),o=n(71);t.exports=n(4).getIterator=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},function(t,e,n){var r=n(45),o=n(6)("iterator"),i=n(12);t.exports=n(4).isIterable=function(t){var e=Object(t);return void 0!==e[o]||"@@iterator"in e||i.hasOwnProperty(r(e))}},function(t,e,n){"use strict";var r=n(111),o=n(64),i=n(12),u=n(32);t.exports=n(48)(Array,"Array",function(t,e){this._t=u(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]]); +},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10);r(r.S+r.F,"Object",{assign:n(122)})},function(t,e,n){var r=n(70);n(123)("getPrototypeOf",function(t){return function(e){return t(r(e))}})},function(t,e,n){var r=n(10);r(r.S,"Object",{setPrototypeOf:n(124).set})},function(t,e,n){"use strict";var r=n(112);n(114)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(this,t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(29),u=n(14),a=n(10),s=n(50),f=n(15),c=n(67),l=n(31),d=n(51),p=n(6),h=n(121),v=n(116),_=n(115),y=n(118),g=n(13),E=n(32),m=n(49),b=r.getDesc,T=r.setDesc,N=r.create,O=v.get,A=o.Symbol,x=o.JSON,S=x&&x.stringify,k=!1,I=p("_hidden"),w=r.isEnum,R=c("symbol-registry"),P=c("symbols"),C="function"==typeof A,M=Object.prototype,L=u&&f(function(){return 7!=N(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=b(M,e);r&&delete M[e],T(t,e,n),r&&t!==M&&T(M,e,r)}:T,D=function(t){var e=P[t]=N(A.prototype);return e._k=t,u&&k&&L(M,t,{configurable:!0,set:function(e){i(this,I)&&i(this[I],t)&&(this[I][t]=!1),L(this,t,m(1,e))}}),e},j=function(t){return"symbol"==typeof t},F=function(t,e,n){return n&&i(P,e)?(n.enumerable?(i(t,I)&&t[I][e]&&(t[I][e]=!1),n=N(n,{enumerable:m(0,!1)})):(i(t,I)||T(t,I,m(1,{})),t[I][e]=!0),L(t,e,n)):T(t,e,n)},V=function(t,e){g(t);for(var n,r=_(e=E(e)),o=0,i=r.length;i>o;)F(t,n=r[o++],e[n]);return t},W=function(t,e){return void 0===e?N(t):V(N(t),e)},G=function(t){var e=w.call(this,t);return e||!i(this,t)||!i(P,t)||i(this,I)&&this[I][t]?e:!0},X=function(t,e){var n=b(t=E(t),e);return!n||!i(P,e)||i(t,I)&&t[I][e]||(n.enumerable=!0),n},H=function(t){for(var e,n=O(E(t)),r=[],o=0;n.length>o;)i(P,e=n[o++])||e==I||r.push(e);return r},z=function(t){for(var e,n=O(E(t)),r=[],o=0;n.length>o;)i(P,e=n[o++])&&r.push(P[e]);return r},B=function(t){if(void 0!==t&&!j(t)){for(var e,n,r=[t],o=1,i=arguments;i.length>o;)r.push(i[o++]);return e=r[1],"function"==typeof e&&(n=e),(n||!y(e))&&(e=function(t,e){return n&&(e=n.call(this,t,e)),j(e)?void 0:e}),r[1]=e,S.apply(x,r)}},K=f(function(){var t=A();return"[null]"!=S([t])||"{}"!=S({a:t})||"{}"!=S(Object(t))});C||(A=function(){if(j(this))throw TypeError("Symbol is not a constructor");return D(d(arguments.length>0?arguments[0]:void 0))},s(A.prototype,"toString",function(){return this._k}),j=function(t){return t instanceof A},r.create=W,r.isEnum=G,r.getDesc=X,r.setDesc=F,r.setDescs=V,r.getNames=v.get=H,r.getSymbols=z,u&&!n(65)&&s(M,"propertyIsEnumerable",G,!0));var U={"for":function(t){return i(R,t+="")?R[t]:R[t]=A(t)},keyFor:function(t){return h(R,t)},useSetter:function(){k=!0},useSimple:function(){k=!1}};r.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var e=p(t);U[t]=C?e:D(e)}),k=!0,a(a.G+a.W,{Symbol:A}),a(a.S,"Symbol",U),a(a.S+a.F*!C,"Object",{create:W,defineProperty:F,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:H,getOwnPropertySymbols:z}),x&&a(a.S+a.F*(!C||K),"JSON",{stringify:B}),l(A,"Symbol"),l(Math,"Math",!0),l(o.JSON,"JSON",!0)},function(t,e,n){var r=n(10);r(r.P,"Set",{toJSON:n(113)("Set")})},,,,,,,,,,,function(t,e,n){var r;(function(){"use strict";function e(){}function o(t,e){for(var n=t.length;n--;)if(t[n].listener===e)return n;return-1}function i(t){return function(){return this[t].apply(this,arguments)}}var u=e.prototype,a=this,s=a.EventEmitter;u.getListeners=function(t){var e,n,r=this._getEvents();if(t instanceof RegExp){e={};for(n in r)r.hasOwnProperty(n)&&t.test(n)&&(e[n]=r[n])}else e=r[t]||(r[t]=[]);return e},u.flattenListeners=function(t){var e,n=[];for(e=0;e= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(130);\n\tvar Iterators = __webpack_require__(12);\n\tIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n/***/ },\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.EVENT_WRAPPED_NODE = exports.ATTR_DATA_ORIGINAL_OFFSET_START = undefined;\n\t\n\tvar _getPrototypeOf = __webpack_require__(60);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(62);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(61);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _RenderResult = __webpack_require__(57);\n\t\n\tvar _RenderResult2 = _interopRequireDefault(_RenderResult);\n\t\n\tvar _RenderingEvents2 = __webpack_require__(58);\n\t\n\tvar _RenderingEvents3 = _interopRequireDefault(_RenderingEvents2);\n\t\n\tvar _Util = __webpack_require__(43);\n\t\n\tvar _Util2 = _interopRequireDefault(_Util);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar TAG_NAME = 'x-marker';\n\t/**\n\t * @type {string}\n\t */\n\t/* global Node */\n\t\n\tvar ATTR_DATA_ORIGINAL_OFFSET_START = exports.ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n\t/**\n\t * @type {string}\n\t */\n\tvar DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_START_END = 'data-is-start-end';\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_ID = 'data-selection-id';\n\t\n\t/**\n\t * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n\t * @type {number}\n\t */\n\tvar DOCUMENT_POSITION_CONTAINED_BY = 16;\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_WRAPPED_NODE = exports.EVENT_WRAPPED_NODE = 'wrapped-node';\n\t\n\t/**\n\t * Manages a single Render\n\t */\n\t\n\tvar Rendering = function (_RenderingEvents) {\n\t (0, _inherits3.default)(Rendering, _RenderingEvents);\n\t\n\t\n\t /**\n\t * @param {Document} document\n\t * @param {object} options\n\t * @param {Node} context\n\t */\n\t\n\t function Rendering(document, options, context) {\n\t (0, _classCallCheck3.default)(this, Rendering);\n\t\n\t\n\t /**\n\t * ID of rendering, will be set on each element that is part of it\n\t * @type {String}\n\t */\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rendering).call(this, options, document));\n\t\n\t _this.id = _Util2.default.guid();\n\t\n\t /**\n\t * StartContainer\n\t * @type {Node}\n\t */\n\t _this.startContainer = null;\n\t\n\t /**\n\t * EndContainer\n\t * @type {Node}\n\t */\n\t _this.endContainer = null;\n\t\n\t /**\n\t * @type {Node}\n\t */\n\t _this.context = context || _this.document;\n\t\n\t /**\n\t * Flag if this instance has been rendered\n\t * @type {RenderResult}\n\t * @private\n\t */\n\t _this._renderResult = null;\n\t return _this;\n\t }\n\t\n\t /**\n\t * @returns {string} id of this rendering\n\t */\n\t\n\t\n\t (0, _createClass3.default)(Rendering, [{\n\t key: 'getId',\n\t value: function getId() {\n\t return this.id;\n\t }\n\t\n\t /**\n\t * @param {string} id\n\t * @returns {Rendering}\n\t */\n\t\n\t }, {\n\t key: 'setId',\n\t value: function setId(id) {\n\t var _this2 = this;\n\t\n\t this.id = id;\n\t\n\t if (this._renderResult) {\n\t this.wrapperNodes.forEach(function (node) {\n\t return node.setAttribute(ATTR_DATA_ID, _this2.id);\n\t });\n\t }\n\t\n\t return this;\n\t }\n\t\n\t /**\n\t * Creates a Template used as a wrapper and an indication that this is a highlight node\n\t * @param {Boolean} [omitHighlight]\n\t * @returns {Node}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_createWrapTemplate',\n\t value: function _createWrapTemplate(omitHighlight) {\n\t var el = this.document.createElement(TAG_NAME);\n\t var vTrue = \"true\";\n\t\n\t if (!omitHighlight) {\n\t el.className = this.options.className.join(' ');\n\t // save this marker instance to given node\n\t Rendering.setMarklibInstance(el, this);\n\t // keep track of highlight nodes\n\t this.wrapperNodes.push(el);\n\t el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n\t el.setAttribute(ATTR_DATA_ID, this.getId());\n\t }\n\t el.setAttribute(_Util.DATA_IS_SELECTION, vTrue);\n\t\n\t return el;\n\t }\n\t\n\t /**\n\t * Creates a Template to use as start and end marks\n\t * @param {String} text\n\t * @returns {Node}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_createStartEndWrapTemplate',\n\t value: function _createStartEndWrapTemplate(text) {\n\t var el = this._createWrapTemplate();\n\t el.setAttribute(ATTR_DATA_START_END, 'true');\n\t el.textContent = text;\n\t return el;\n\t }\n\t\n\t /**\n\t * Creates Start or End Container Element\n\t * @param initialNode\n\t * @param text\n\t * @param offset\n\t * @param index\n\t * @returns {Node}\n\t */\n\t\n\t }, {\n\t key: '_createStartOrEndContainer',\n\t value: function _createStartOrEndContainer(initialNode, text, offset, index) {\n\t var wrapper = this._createStartEndWrapTemplate(text);\n\t wrapper.setAttribute(_Util.ATTR_DATA_ORIGINAL_INDEX, _Util2.default.getIndexParentIfHas(initialNode, index));\n\t wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n\t wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\t\n\t return wrapper;\n\t }\n\t\n\t /**\n\t * Wraps given element\n\t * @param {Node|HTMLElement} el\n\t * @param [optionalLength]\n\t * @param [optionalIndex]\n\t * @param [optionalIsSameNode]\n\t * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n\t * @returns {Node}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_createWrap',\n\t value: function _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n\t var originalIndex = optionalIndex >= 0 ? optionalIndex : _Util2.default.calcIndex(el);\n\t var wrapper = this._createWrapTemplate(omitHighlight);\n\t wrapper.setAttribute(_Util.ATTR_DATA_ORIGINAL_INDEX, _Util2.default.getIndexParentIfHas(el, originalIndex));\n\t var offsetLength = optionalLength >= 0 ? optionalLength : _Util2.default.getOffsetParentIfHas(el);\n\t wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\t\n\t // Save a reference to original text node in wrapper\n\t wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\t\n\t if (optionalIsSameNode) {\n\t wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n\t }\n\t var wrap = _Util2.default.wrap(el, wrapper);\n\t\n\t this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\t\n\t return wrap;\n\t }\n\t\n\t /**\n\t * Create split container element\n\t * @param originalElement {Node} original text node element that is created a wrapper for\n\t * @param index\n\t * @param offset\n\t * @returns {Node}\n\t */\n\t\n\t }, {\n\t key: '_createSplitContainer',\n\t value: function _createSplitContainer(originalElement, index, offset) {\n\t var wrapper = this.document.createElement(TAG_NAME);\n\t wrapper.setAttribute(_Util.DATA_IS_SELECTION, 'true');\n\t wrapper.setAttribute(_Util.ATTR_DATA_ORIGINAL_INDEX, _Util2.default.getIndexParentIfHas(originalElement, index));\n\t wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n\t wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\t return wrapper;\n\t }\n\t\n\t /**\n\t * Walks the tree\n\t * @param start\n\t * @param endContainer\n\t * @param nextParent\n\t */\n\t\n\t }, {\n\t key: 'walk',\n\t value: function walk(start, endContainer, nextParent) {\n\t var nextParentNode = start;\n\t while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n\t var currentParentNode = nextParentNode;\n\t nextParentNode = nextParentNode.parentNode;\n\t if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n\t break;\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n\t * If an Element node is found, it will wrap all children of this node inside a element as well.\n\t * It will stop if endContainer is found as a node\n\t *\n\t * @param {Node} start\n\t * @param {Node} endContainer\n\t * @returns {boolean} (true if endContainer was found)\n\t */\n\t\n\t }, {\n\t key: 'wrapSiblings',\n\t value: function wrapSiblings(start, endContainer) {\n\t var _this3 = this;\n\t\n\t var next = start;\n\t var found = false;\n\t\n\t // Capsule some logic\n\t var wrap = function wrap(n) {\n\t var instance = Rendering.getMarklibInstance(n.parentNode);\n\t if (n.parentNode.hasAttribute(ATTR_DATA_START_END) && n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) && instance === _this3) {\n\t _this3._createWrap(n, undefined, undefined, undefined, true);\n\t } else {\n\t _this3._createWrap(n);\n\t }\n\t };\n\t\n\t // helper functions\n\t\n\t var wrapIf = function wrapIf(n) {\n\t if (!_Util2.default.nodeIsEmpty(n)) {\n\t wrap(n);\n\t }\n\t };\n\t\n\t var walkIfContained = function walkIfContained(e) {\n\t if (e === endContainer) {\n\t return false;\n\t }\n\t if (Node.TEXT_NODE === e.nodeType) {\n\t wrapIf(e);\n\t }\n\t return true;\n\t };\n\t\n\t var walkIfNotContained = function walkIfNotContained(el) {\n\t wrapIf(el);\n\t };\n\t\n\t while (next !== null && next !== endContainer) {\n\t var currentNext = next;\n\t next = next.nextSibling;\n\t // Found a text node, directly wrap inside a span\n\t if (Node.TEXT_NODE === currentNext.nodeType) {\n\t wrapIf(currentNext);\n\t } else {\n\t if (currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY) {\n\t _Util2.default.walkDom(currentNext, walkIfContained);\n\t found = true;\n\t } else {\n\t _Util2.default.walkTextNodes(currentNext, walkIfNotContained);\n\t }\n\t if (found) {\n\t return true;\n\t }\n\t }\n\t }\n\t return found;\n\t }\n\t\n\t /**\n\t * Marks text of the same node\n\t * @param {Node} textNode\n\t * @param {int} startIndex\n\t * @param {int} endIndex\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_markTextSameNode',\n\t value: function _markTextSameNode(textNode, startIndex, endIndex) {\n\t var initialText = textNode.nodeValue;\n\t var initialIndex = _Util2.default.calcIndex(textNode);\n\t\n\t if (!initialText) {\n\t return false;\n\t }\n\t // If there is an unmarked part in the beginning of the text node,\n\t // cut off that part and put it into it's own textnode.\n\t if (startIndex > 0) {\n\t var textBefore = initialText.slice(0, startIndex);\n\t textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n\t // wrap cutted text node:\n\t _Util2.default.wrap(textNode.previousSibling, this._createSplitContainer(textNode, initialIndex, _Util2.default.getOffsetParentIfHas(textNode)));\n\t }\n\t // If there is an unmarked part at the end of the text node,\n\t // cut off that part and put it into it's own textnode.\n\t if (endIndex < initialText.length) {\n\t var textAfter = initialText.slice(endIndex, initialText.length);\n\t textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n\t _Util2.default.wrap(textNode.nextSibling, this._createSplitContainer(textNode, initialIndex, _Util2.default.getOffsetParentIfHas(textNode) + endIndex));\n\t }\n\t\n\t // Cutoff the unmarked parts and wrap the textnode into a span.\n\t textNode.nodeValue = initialText.slice(startIndex, endIndex);\n\t this.startContainer = this._createWrap(textNode, _Util2.default.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n\t this.endContainer = this.startContainer;\n\t return this.startContainer;\n\t }\n\t\n\t /**\n\t * Marks text of end and start containers if start and end nodes are different\n\t * Important: There might be no end container!\n\t *\n\t * @param {Node} startContainer\n\t * @param {Node} endContainer\n\t * @param {int} startOffset\n\t * @param {int} endOffset\n\t * @returns {{startT: (Node), endT: (Node)}}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_markTextDifferentNode',\n\t value: function _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n\t // Get current for both start and end:\n\t var startContainerIndex = _Util2.default.calcIndex(startContainer);\n\t var endContainerIndex = _Util2.default.calcIndex(endContainer);\n\t\n\t // Split text\n\t var fullTextStartValue = startContainer.nodeValue;\n\t // init with startContainer because we may have not a text node here\n\t var startT = startContainer;\n\t\n\t if (undefined !== fullTextStartValue) {\n\t var partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n\t // Set new text to start node\n\t startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\t\n\t var offsetStart = _Util2.default.getOffsetParentIfHas(startContainer);\n\t // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n\t startT = this._createStartOrEndContainer(startContainer, partTextStartValue, offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n\t // Append this node after startContainer\n\t startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n\t this.startContainer = startT;\n\t\n\t if (startContainer.nodeValue) {\n\t // Wrap start container in detection node, offset is always 0 or parent offset.\n\t _Util2.default.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex, _Util2.default.getOffsetParentIfHas(startContainer)));\n\t }\n\t }\n\t\n\t // init with endContainer because we may have not a text node here\n\t var endT = endContainer;\n\t\n\t // 2. Extract end Text node,\n\t var fullTextEndValue = endContainer.nodeValue;\n\t // It's possible that end container value is null (if a whole paragraph is marked)\n\t if (undefined !== fullTextEndValue) {\n\t // Split text\n\t var partTextEndValue = fullTextEndValue.slice(0, endOffset);\n\t endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n\t // End Container start offset is always 0 or parent offset.\n\t endT = this._createStartOrEndContainer(endContainer, partTextEndValue, _Util2.default.getOffsetParentIfHas(endContainer), endContainerIndex);\n\t\n\t endContainer.parentNode.insertBefore(endT, endContainer);\n\t this.endContainer = endT;\n\t var offsetParent = _Util2.default.getOffsetParentIfHas(endContainer);\n\t _Util2.default.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex, offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n\t }\n\t\n\t return {\n\t startT: startT,\n\t endT: endT\n\t };\n\t }\n\t\n\t /**\n\t * Renders a selection\n\t * @param {Node} startContainerP\n\t * @param {Node} endContainerP\n\t * @param {Node} commonAncestor\n\t * @param {int} startOffset\n\t * @param {int} endOffsetP\n\t * @returns RenderResult\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_renderWithElements',\n\t value: function _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n\t if (this._renderResult) {\n\t return this._renderResult;\n\t }\n\t var startContainer = startContainerP;\n\t var endContainer = endContainerP;\n\t var endOffset = endOffsetP;\n\t var outer = _Util2.default.parents(startContainer, commonAncestor);\n\t outer = outer[outer.length - 1];\n\t var contextContainer = outer ? outer : commonAncestor;\n\t\n\t // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n\t // but are different nodes:\n\t\n\t // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n\t // 1: First detect real start offset in startContainer:\n\t\n\t // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n\t // So first select that container:\n\t var originalStartOffset = _Util2.default.findOriginalOffset(startContainer);\n\t var originalEndOffset = _Util2.default.findOriginalOffset(endContainer);\n\t\n\t // We may run into Browser Bugs:\n\t\n\t // If both are not text nodes, use next sibling as endContainer\n\t if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n\t if (startContainer === endContainer) {\n\t endContainer = endContainer.nextElementSibling || endContainer;\n\t }\n\t }\n\t // IF start/end container is not type of text, select first child text node:\n\t // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n\t // Sometimes does not work correctly... (specially when DOM was modified)\n\t if (startContainer.nodeType !== Node.TEXT_NODE) {\n\t _Util2.default.walkDom(startContainer, function (el) {\n\t if (el.nodeType === Node.TEXT_NODE) {\n\t startContainer = el;\n\t return false;\n\t }\n\t return true;\n\t });\n\t }\n\t\n\t if (endContainer.nodeType !== Node.TEXT_NODE) {\n\t var toFindNode = startContainer;\n\t\n\t if (endOffset === 0) {\n\t toFindNode = endContainer.previousElementSibling || startContainer;\n\t }\n\t\n\t // Get the last text node:\n\t var endContainerContents = _Util2.default.closest(toFindNode, ':not([' + _Util.DATA_IS_SELECTION + '])').childNodes;\n\t if (endContainerContents.length) {\n\t var r = endContainerContents[endContainerContents.length - 1];\n\t if (r.nodeType === Node.TEXT_NODE) {\n\t endContainer = r;\n\t endOffset = r.length;\n\t } else {\n\t var f = r.lastChild;\n\t while (f !== null) {\n\t if (f && f.nodeType === Node.TEXT_NODE) {\n\t endContainer = f;\n\t endOffset = f.length;\n\t if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n\t endOffset = parseInt(f.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n\t }\n\t }\n\t f = f.lastChild;\n\t }\n\t }\n\t }\n\t // still no textNode?\n\t if (endContainer.nodeType !== Node.TEXT_NODE) {\n\t throw Error('Could not found endContainer, highlighting would be unstable');\n\t }\n\t }\n\t\n\t this._renderResult = new _RenderResult2.default(\n\t // Real offset is calculated by relative length and absolute length\n\t originalStartOffset + startOffset, originalEndOffset + endOffset,\n\t // get the path for this selection\n\t _Util2.default.getPath(startContainer, this.context), _Util2.default.getPath(endContainer, this.context));\n\t\n\t this._renderResult.instance = this;\n\t\n\t this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\t\n\t return this._renderResult;\n\t }\n\t\n\t /**\n\t * Renders a given selection\n\t *\n\t * @param {Node} startContainer\n\t * @param {Node} endContainer\n\t * @param {int} startOffset\n\t * @param {int} endOffset\n\t * @param {Node} contextContainer\n\t * @param {Boolean} outer\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_renderSelection',\n\t value: function _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n\t // if start and end-container are the same, mark text on the same node\n\t if (startContainer === endContainer) {\n\t this._markTextSameNode(startContainer, startOffset, endOffset);\n\t } else {\n\t var result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n\t var index = this.wrapperNodes.indexOf(result.endT);\n\t // remove endContainer, to keep order:\n\t this.wrapperNodes.splice(index, 1);\n\t if (!outer) {\n\t this.wrapSiblings(result.startT.nextSibling, endContainer);\n\t } else {\n\t this.walk(result.startT, endContainer, contextContainer);\n\t }\n\t this.wrapperNodes.push(result.endT);\n\t }\n\t }\n\t\n\t /**\n\t * Prepares to render a Selection with path selectors\n\t * ```\n\t * A Path looks like this:\n\t *\n\t * #selector;#textnode;#offset\n\t * ``\n\t * @param {string} startPath\n\t * @param {string} endPath\n\t * @returns {string}\n\t */\n\t\n\t }, {\n\t key: 'renderWithPath',\n\t value: function renderWithPath(startPath, endPath) {\n\t var startContainer = _Util2.default.deserializePath(startPath, this.context);\n\t var endContainer = _Util2.default.deserializePath(endPath, this.context);\n\t if (startContainer && endContainer && startContainer.node && endContainer.node) {\n\t var range = document.createRange();\n\t range.setStart(startContainer.node, startContainer.offset);\n\t range.setEnd(endContainer.node, endContainer.offset);\n\t var text = range.toString();\n\t var result = this.renderWithRange(range);\n\t result.text = text;\n\t return text;\n\t }\n\t throw new Error('Could not find start- and/or end-container in document');\n\t }\n\t\n\t /**\n\t * @returns {RenderResult}\n\t */\n\t\n\t }, {\n\t key: 'renderWithResult',\n\t\n\t\n\t /**\n\t * Renders a result (that returned from `renderWithRange`)\n\t * @param {RenderResult|Object} result\n\t * @returns {string}\n\t */\n\t value: function renderWithResult(result) {\n\t return this.renderWithPath(result.startContainerPath + ';' + result.startOffset, result.endContainerPath + ';' + result.endOffset);\n\t }\n\t\n\t /**\n\t * Prepares a selection with a range object\n\t * @param {Range} range\n\t * @returns {Object}\n\t */\n\t\n\t }, {\n\t key: 'renderWithRange',\n\t value: function renderWithRange(range) {\n\t var text = range.toString();\n\t var result = this._renderWithElements(range.startContainer, range.endContainer, range.commonAncestorContainer, range.startOffset, range.endOffset);\n\t result.text = text;\n\t return result;\n\t }\n\t\n\t /**\n\t * Removes bindings and classNames to nodes\n\t */\n\t\n\t }, {\n\t key: 'destroy',\n\t value: function destroy() {\n\t this.wrapperNodes.forEach(function (node) {\n\t delete node.marklibInstance;\n\t node.className = '';\n\t });\n\t this.removeEvent();\n\t }\n\t\n\t /**\n\t * @param {Node} el\n\t * @param {Rendering} instance\n\t * @returns {Node}\n\t */\n\t\n\t }, {\n\t key: 'result',\n\t get: function get() {\n\t return this._renderResult;\n\t }\n\t }], [{\n\t key: 'setMarklibInstance',\n\t value: function setMarklibInstance(el, instance) {\n\t el.marklibInstance = instance;\n\t return el;\n\t }\n\t\n\t /**\n\t * @param {Node} el\n\t * @returns {Rendering|null|undefined}\n\t */\n\t\n\t }, {\n\t key: 'getMarklibInstance',\n\t value: function getMarklibInstance(el) {\n\t return el ? el.marklibInstance : null;\n\t }\n\t }]);\n\t return Rendering;\n\t}(_RenderingEvents3.default);\n\t\n\texports.default = Rendering;\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.DATA_IS_SELECTION = exports.ATTR_DATA_ORIGINAL_INDEX = undefined;\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _Rendering = __webpack_require__(42);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/* global Node, NodeList, Element */\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_ORIGINAL_INDEX = exports.ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n\t/**\n\t * @type {string}\n\t */\n\tvar DATA_IS_SELECTION = exports.DATA_IS_SELECTION = 'data-is-selection';\n\t/**\n\t * @type {string}\n\t */\n\tvar SERIALIZE_SEPARATOR = \";\";\n\t\n\t// polyfill for matchesSelector, IE 10/11 does not support Element.matches\n\tif (Element && !Element.prototype.matches) {\n\t var p = Element.prototype;\n\t p.matches = p.matchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector || p.webkitMatchesSelector;\n\t}\n\t\n\t/**\n\t * Utility class\n\t * Contains DOM/Node manipulation helpers\n\t */\n\t\n\tvar Util = function () {\n\t function Util() {\n\t (0, _classCallCheck3.default)(this, Util);\n\t }\n\t\n\t (0, _createClass3.default)(Util, null, [{\n\t key: 'nodeListFilter',\n\t\n\t\n\t /**\n\t * Filter for a NodeList\n\t * @param {NodeList} nodes\n\t * @param {Function} func\n\t *\n\t * @returns {Array.}\n\t */\n\t value: function nodeListFilter(nodes, func) {\n\t return Array.prototype.filter.call(nodes || [], func);\n\t }\n\t\n\t /**\n\t * Generates a unique id\n\t *\n\t * @return {String}\n\t */\n\t\n\t }, {\n\t key: 'guid',\n\t value: function guid() {\n\t var s4 = function s4() {\n\t return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\n\t };\n\t return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n\t }\n\t\n\t /**\n\t * Checks if a given node is empty\n\t * @param {HTMLElement} node\n\t *\n\t * @returns {*}\n\t */\n\t\n\t }, {\n\t key: 'nodeIsEmpty',\n\t value: function nodeIsEmpty(node) {\n\t return node.nodeValue.match(/^[\\s]*$/g);\n\t }\n\t\n\t /**\n\t * @param {HTMLElement} node\n\t * @param [optionalList]\n\t *\n\t * @return {int} the index of this node in context to it's siblings\n\t */\n\t\n\t }, {\n\t key: 'index',\n\t value: function index(node, optionalList) {\n\t var children = optionalList || (node.nodeType === Node.TEXT_NODE ? node.parentNode.childNodes : node.parentNode.children);\n\t return Array.prototype.indexOf.call(children || [], node);\n\t }\n\t\n\t /**\n\t * Wraps given `elms` in given `wrapper`\n\t *\n\t * @param {HTMLElement|Array.|Node} elms\n\t * @param {HTMLElement|Node} wrapper\n\t *\n\t * @return {HTMLElement}\n\t */\n\t\n\t }, {\n\t key: 'wrap',\n\t value: function wrap(elms, wrapper) {\n\t var thisElms = elms;\n\t\n\t if (!thisElms) {\n\t return wrapper;\n\t }\n\t // Convert `elms` to an array, if necessary.\n\t if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n\t thisElms = [thisElms];\n\t }\n\t for (var i = thisElms.length - 1; i >= 0; i--) {\n\t var child = i > 0 ? wrapper.cloneNode(true) : wrapper;\n\t var el = thisElms[i];\n\t // Cache the current parent and sibling.\n\t var parent = el.parentNode;\n\t var sibling = el.nextSibling;\n\t\n\t child.appendChild(el);\n\t if (sibling) {\n\t parent.insertBefore(child, sibling);\n\t } else {\n\t parent.appendChild(child);\n\t }\n\t }\n\t return wrapper;\n\t }\n\t\n\t /**\n\t * Will calculate an index depending on an already modified dom by marklib\n\t * @param {HTMLElement|Node} node\n\t *\n\t * @returns {int|boolean}\n\t */\n\t\n\t }, {\n\t key: 'calcIndex',\n\t value: function calcIndex(node) {\n\t var calculatedIndex = 0;\n\t var foundWrapper = false;\n\t var nodes = node.parentNode.childNodes;\n\t var length = nodes.length;\n\t for (var thisIndex = 0; thisIndex < length; thisIndex++) {\n\t var el = nodes[thisIndex];\n\t if (el === node) {\n\t break;\n\t }\n\t // reset index when original index is found\n\t var maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\t\n\t if (maybeIndexOfOriginal) {\n\t calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n\t foundWrapper = true;\n\t }\n\t calculatedIndex++;\n\t }\n\t return foundWrapper ? calculatedIndex : Util.index(node);\n\t }\n\t\n\t /**\n\t * @param {HTMLElement|Node} el\n\t * @param {String} [optionalSelector] will test given element against a selector\n\t * if matches, returns this element immediately\n\t *\n\t * @return {Array.} an array of all found parents of given element (and optional selector)\n\t */\n\t\n\t }, {\n\t key: 'parents',\n\t value: function parents(el, optionalSelector) {\n\t return Util.parentsCallback(el, function (element) {\n\t if (optionalSelector && (element === optionalSelector || typeof optionalSelector === 'string' && element.matches && element.matches(optionalSelector))) {\n\t return true;\n\t } else if (!optionalSelector) {\n\t return true;\n\t }\n\t return false;\n\t });\n\t }\n\t\n\t /**\n\t * @param {HTMLElement|Node} el\n\t * @param {Function} callback\n\t * @return {Array.} an array of all found parents of given element (and optional selector)\n\t */\n\t\n\t }, {\n\t key: 'parentsCallback',\n\t value: function parentsCallback(el, callback) {\n\t var element = el;\n\t var foundElements = [];\n\t while (element.parentNode !== null) {\n\t element = element.parentNode;\n\t if (callback(element)) {\n\t foundElements.push(element);\n\t }\n\t }\n\t return foundElements;\n\t }\n\t\n\t /**\n\t * Finds a parent node (the closest) with a given selector\n\t * @param {Node} el\n\t * @param {String} selector\n\t *\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'parent',\n\t value: function parent(el, selector) {\n\t var element = el;\n\t while (element.parentNode !== null) {\n\t element = element.parentNode;\n\t if (element.matches && element.matches(selector)) {\n\t return element;\n\t }\n\t }\n\t return false;\n\t }\n\t\n\t /**\n\t * Finds the closest element including itself matching a given selector\n\t * @param {Node} el\n\t * @param selector\n\t *\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'closest',\n\t value: function closest(el, selector) {\n\t return Util.closestCallback(el, function (element) {\n\t return element.matches && element.matches(selector);\n\t });\n\t }\n\t\n\t /**\n\t * Finds the closest element including itself matching a callback\n\t * @param {Node} el\n\t * @param {Function} callback\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'closestCallback',\n\t value: function closestCallback(el, callback) {\n\t var element = el;\n\t while (element !== null) {\n\t if (callback(element)) {\n\t return element;\n\t }\n\t element = element.parentNode;\n\t }\n\t return false;\n\t }\n\t\n\t /**\n\t * Finds the outermost fitting element that matches callback\n\t * @param {Node} el\n\t * @param {Function} callback\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'outerMostCallback',\n\t value: function outerMostCallback(el, callback) {\n\t var element = el;\n\t var lastValid = false;\n\t while (element !== null) {\n\t if (callback(element)) {\n\t lastValid = element;\n\t }\n\t element = element.parentNode;\n\t }\n\t return lastValid;\n\t }\n\t\n\t /**\n\t * @param {HTMLElement} n\n\t *\n\t * @return {boolean}\n\t */\n\t\n\t }, {\n\t key: 'isMarkNode',\n\t value: function isMarkNode(n) {\n\t return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n\t }\n\t\n\t /**\n\t * Determines the correct paths and excludes all `marklib` generated content\n\t * TODO: To improve performance we could shorten the path if an ID is present in it.\n\t * @param {HTMLElement|Node} el\n\t * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n\t * @returns {string}\n\t */\n\t\n\t }, {\n\t key: 'getPath',\n\t value: function getPath(el, context) {\n\t var path = null;\n\t var node = el;\n\t\n\t var filterSiblings = function filterSiblings(thisEl) {\n\t return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n\t };\n\t\n\t while (node) {\n\t var name = null;\n\t // If node is a text-node, save index\n\t if (Node.TEXT_NODE === node.nodeType) {\n\t /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n\t * valid before the dom changes. We store the last known index position inside all wrapper elements\n\t * We select the outermost\n\t */\n\t\n\t // Extract original index of this node:\n\t // Outer most data-original-index is original index\n\t var outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n\t // if element is not yet wrapped in span, recalculate index based on parent container:\n\t // We have to do this because text node indexes != element indexes...\n\t var calculatedIndex = 0;\n\t if (!outerMostElement) {\n\t calculatedIndex = Util.calcIndex(node);\n\t }\n\t var index = outerMostElement ? parseInt(outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n\t name = SERIALIZE_SEPARATOR + index;\n\t } else {\n\t name = node.nodeName;\n\t }\n\t\n\t if (!name) {\n\t break;\n\t }\n\t\n\t name = name.toLowerCase();\n\t\n\t var parent = node.parentNode;\n\t\n\t if (Util.isMarkNode(node)) {\n\t if (parent !== context) {\n\t node = parent;\n\t continue;\n\t } else {\n\t break;\n\t }\n\t }\n\t\n\t // Select only siblings that are not part of selection and are of the same type\n\t // (because we use nth-of-type selector later)\n\t var siblings = Util.nodeListFilter(parent.children, filterSiblings);\n\t var nodeIndex = Util.index(node, siblings);\n\t\n\t if (siblings.length > 1 && nodeIndex >= 0) {\n\t name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n\t }\n\t\n\t path = name + (path ? '>' + path : '');\n\t\n\t if (parent === context) {\n\t break;\n\t }\n\t\n\t node = parent;\n\t }\n\t\n\t return path.replace(\"#document>\", \"\").replace('>;', ';');\n\t }\n\t\n\t /**\n\t * Will return the first original offset value that is found\n\t * @param {Node} element\n\t *\n\t * @returns {int}\n\t */\n\t\n\t }, {\n\t key: 'findOriginalOffset',\n\t value: function findOriginalOffset(element) {\n\t if (!element.parentNode.hasAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START)) {\n\t return 0;\n\t }\n\t var lengthElement = Util.parent(element, '[' + _Rendering.ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n\t return lengthElement ? parseInt(lengthElement.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n\t }\n\t\n\t /**\n\t * Deserialize a specific path and finds the right textNodes\n\t * This even works when DOM has been manipulated before by `marklib`\n\t * @param {string} path the serialized path (including offsets)\n\t * @param {Node|HTMLElement} context\n\t *\n\t * @return {Node}\n\t */\n\t\n\t }, {\n\t key: 'deserializePath',\n\t value: function deserializePath(path, context) {\n\t var pSplit = path.split(';');\n\t var p = pSplit[0];\n\t var objectIndex = parseInt(pSplit[1], 10);\n\t var charOffset = parseInt(pSplit[2], 10);\n\t var container = !p.trim() ? context : context.querySelector(p);\n\t\n\t var maybeFoundNode = null;\n\t\n\t Util.walkTextNodes(container, function (n) {\n\t var atrOffsetStart = n.parentNode.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START);\n\t atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n\t var atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n\t atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n\t if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart && parseInt(atrOffsetStart, 10) + n.length >= charOffset) {\n\t var thisOffset = n.parentNode.hasAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset - parseInt(n.parentNode.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\t\n\t maybeFoundNode = {\n\t node: n,\n\t offset: thisOffset\n\t };\n\t\n\t return false;\n\t }\n\t return true;\n\t }, null);\n\t\n\t return maybeFoundNode;\n\t }\n\t\n\t /**\n\t * Walks the dom tree unless func returns false\n\t * Applies node to function\n\t *\n\t * @param {Node} node\n\t * @param {Function} func\n\t * @param {int} type, see `NodeFilter`\n\t * @param {Object} [filter] skips empty text nodes by default\n\t *\n\t * @returns {boolean} true if function did abort walk\n\t */\n\t\n\t }, {\n\t key: 'walkDom',\n\t value: function walkDom(node, func) {\n\t var _document;\n\t\n\t var type = arguments.length <= 2 || arguments[2] === undefined ? NodeFilter.SHOW_ALL : arguments[2];\n\t var filter = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\t\n\t if (!node) {\n\t return false;\n\t }\n\t var args = [node, type, filter || function () {\n\t return true;\n\t }, false];\n\t args.push(false);\n\t var walker = (_document = document).createTreeWalker.apply(_document, args);\n\t while (walker.nextNode()) {\n\t if (!func(walker.currentNode)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t\n\t /**\n\t * Extracts all TextNodes inside a container\n\t * @param {Node} el\n\t * @param {Function} func\n\t * @param {Object} [filter] skips empty text nodes by default\n\t * @returns {boolean} true if function did abort walk\n\t */\n\t\n\t }, {\n\t key: 'walkTextNodes',\n\t value: function walkTextNodes(el, func) {\n\t var filter = arguments.length <= 2 || arguments[2] === undefined ? function (node) {\n\t return !Util.nodeIsEmpty(node);\n\t } : arguments[2];\n\t\n\t return Util.walkDom(el, func, NodeFilter.SHOW_TEXT, filter);\n\t }\n\t\n\t /**\n\t * @param {Node} container\n\t * @param {Number} thisIndex\n\t * @returns {int|string} index of parent or original\n\t */\n\t\n\t }, {\n\t key: 'getIndexParentIfHas',\n\t value: function getIndexParentIfHas(container, thisIndex) {\n\t var p = container.parentNode;\n\t var index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n\t return index > thisIndex ? index : thisIndex;\n\t }\n\t\n\t /**\n\t * @param container\n\t * @returns {int} offset start of parent if has, else 0\n\t */\n\t\n\t }, {\n\t key: 'getOffsetParentIfHas',\n\t value: function getOffsetParentIfHas(container) {\n\t var p = container.parentNode;\n\t var offset = parseInt(p.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n\t return offset > 0 ? offset : 0;\n\t }\n\t }]);\n\t return Util;\n\t}();\n\n\texports.default = Util;\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\t\n\texports.__esModule = true;\n\t\n\tvar _iterator = __webpack_require__(98);\n\t\n\tvar _iterator2 = _interopRequireDefault(_iterator);\n\t\n\tvar _symbol = __webpack_require__(97);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n\t return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t} : function (obj) {\n\t return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(46)\n\t , TAG = __webpack_require__(6)('toStringTag')\n\t // ES3 wrong here\n\t , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\t\n\tmodule.exports = function(it){\n\t var O, T, B;\n\t return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t // @@toStringTag case\n\t : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n\t // builtinTag case\n\t : ARG ? cof(O)\n\t // ES3 arguments fallback\n\t : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n\t};\n\n/***/ },\n/* 46 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar ctx = __webpack_require__(27)\n\t , call = __webpack_require__(119)\n\t , isArrayIter = __webpack_require__(117)\n\t , anObject = __webpack_require__(13)\n\t , toLength = __webpack_require__(127)\n\t , getIterFn = __webpack_require__(71);\n\tmodule.exports = function(iterable, entries, fn, that){\n\t var iterFn = getIterFn(iterable)\n\t , f = ctx(fn, that, entries ? 2 : 1)\n\t , index = 0\n\t , length, step, iterator;\n\t if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n\t // fast case for arrays with default iterator\n\t if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n\t entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n\t } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n\t call(iterator, f, step.value, entries);\n\t }\n\t};\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(65)\n\t , $export = __webpack_require__(10)\n\t , redefine = __webpack_require__(50)\n\t , hide = __webpack_require__(17)\n\t , has = __webpack_require__(29)\n\t , Iterators = __webpack_require__(12)\n\t , $iterCreate = __webpack_require__(120)\n\t , setToStringTag = __webpack_require__(31)\n\t , getProto = __webpack_require__(2).getProto\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , methods, key;\n\t // Fix native\n\t if($native){\n\t var IteratorPrototype = getProto($default.call(new Base));\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // FF fix\n\t if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: !DEF_VALUES ? $default : getMethod('entries')\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(17);\n\n/***/ },\n/* 51 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * A Render Result\n\t */\n\t\n\tvar RenderResult = function () {\n\t /**\n\t * @param {int} startOffset\n\t * @param {int} endOffset\n\t * @param {String} startContainerPath\n\t * @param {String} endContainerPath\n\t */\n\t\n\t function RenderResult(startOffset, endOffset, startContainerPath, endContainerPath) {\n\t (0, _classCallCheck3.default)(this, RenderResult);\n\t\n\t this.startOffset = startOffset;\n\t this.endOffset = endOffset;\n\t this.startContainerPath = startContainerPath;\n\t this.endContainerPath = endContainerPath;\n\t this._renderingInstance = null;\n\t }\n\t\n\t /**\n\t * @param {Object} result\n\t * @return RenderResult\n\t */\n\t\n\t\n\t (0, _createClass3.default)(RenderResult, [{\n\t key: \"serialize\",\n\t\n\t\n\t /**\n\t * @returns {Object}\n\t */\n\t value: function serialize() {\n\t return {\n\t startOffset: this.startOffset,\n\t endOffset: this.endOffset,\n\t startContainerPath: this.startContainerPath,\n\t endContainerPath: this.endContainerPath\n\t };\n\t }\n\t\n\t /**\n\t * @param {String} text\n\t */\n\t\n\t }, {\n\t key: \"text\",\n\t set: function set(text) {\n\t this._text = text;\n\t }\n\t\n\t /**\n\t * @returns {String}\n\t */\n\t ,\n\t get: function get() {\n\t return this._text;\n\t }\n\t\n\t /**\n\t * @returns {null|Rendering}\n\t */\n\t\n\t }, {\n\t key: \"instance\",\n\t get: function get() {\n\t return this._renderingInstance;\n\t }\n\t\n\t /**\n\t * @param {null|Rendering} instance\n\t */\n\t ,\n\t set: function set(instance) {\n\t this._renderingInstance = instance;\n\t }\n\t }], [{\n\t key: \"fromObject\",\n\t value: function fromObject(result) {\n\t return new RenderResult(result.startOffset, result.endOffset, result.startContainerPath, result.endContainerPath);\n\t }\n\t }]);\n\t return RenderResult;\n\t}();\n\n\texports.default = RenderResult;\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.EVENT_PART_TREE_LEAVE = exports.EVENT_PART_TREE_ENTER = exports.EVENT_MOUSELEAVE = exports.EVENT_MOUSEENTER = exports.EVENT_CLICK = undefined;\n\t\n\tvar _slicedToArray2 = __webpack_require__(99);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _typeof2 = __webpack_require__(44);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tvar _set = __webpack_require__(96);\n\t\n\tvar _set2 = _interopRequireDefault(_set);\n\t\n\tvar _assign = __webpack_require__(92);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\tvar _getPrototypeOf = __webpack_require__(60);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(62);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(61);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _wolfy87Eventemitter = __webpack_require__(147);\n\t\n\tvar _wolfy87Eventemitter2 = _interopRequireDefault(_wolfy87Eventemitter);\n\t\n\tvar _Rendering = __webpack_require__(42);\n\t\n\tvar _Rendering2 = _interopRequireDefault(_Rendering);\n\t\n\tvar _Util = __webpack_require__(43);\n\t\n\tvar _Util2 = _interopRequireDefault(_Util);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_CLICK = exports.EVENT_CLICK = 'click';\n\t\n\t/**\n\t * @type {string}\n\t */\n\t/* global Set */\n\t\n\tvar EVENT_MOUSEENTER = exports.EVENT_MOUSEENTER = 'hover-enter';\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_MOUSELEAVE = exports.EVENT_MOUSELEAVE = 'hover-leave';\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_PART_TREE_ENTER = exports.EVENT_PART_TREE_ENTER = 'tree-enter';\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_PART_TREE_LEAVE = exports.EVENT_PART_TREE_LEAVE = 'tree-leave';\n\t\n\t/**\n\t * Generic Event Handlings for Renderer\n\t */\n\t\n\tvar RenderingEvents = function (_EventEmitter) {\n\t (0, _inherits3.default)(RenderingEvents, _EventEmitter);\n\t\n\t\n\t /**\n\t * @param {Object} options\n\t * @param {Document} document\n\t */\n\t\n\t function RenderingEvents(options, document) {\n\t (0, _classCallCheck3.default)(this, RenderingEvents);\n\t\n\t\n\t /**\n\t * Options\n\t * @type {Object}\n\t */\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(RenderingEvents).call(this));\n\t\n\t _this.options = {\n\t hoverClass: 'marklib--hover',\n\t treeClass: 'marklib--tree',\n\t className: ['marking']\n\t };\n\t\n\t _this.options = (0, _assign2.default)(_this.options, options || {});\n\t\n\t if (typeof _this.options.className === 'string') {\n\t _this.options.className = _this.options.className.split(' ');\n\t }\n\t\n\t /**\n\t * A collection of all nodes that are part of all events\n\t * @type {Array}\n\t */\n\t _this.wrapperNodes = [];\n\t\n\t /**\n\t * @type {Document}\n\t */\n\t _this.document = document;\n\t return _this;\n\t }\n\t\n\t /**\n\t * Constructs a new Range from rendered result\n\t * @returns {Range}\n\t */\n\t\n\t\n\t (0, _createClass3.default)(RenderingEvents, [{\n\t key: 'range',\n\t get: function get() {\n\t var range = this.document.createRange();\n\t var textNodes = [];\n\t\n\t this.wrapperNodes.forEach(function (wrapper) {\n\t _Util2.default.walkTextNodes(wrapper, function (node) {\n\t textNodes.push(node);\n\t });\n\t });\n\t\n\t if (textNodes.length > 0) {\n\t var lastTextNode = textNodes[textNodes.length - 1];\n\t range.setStart(textNodes[0], 0);\n\t range.setEnd(lastTextNode, lastTextNode.length);\n\t return range;\n\t }\n\t\n\t return null;\n\t }\n\t }], [{\n\t key: 'globalEmitter',\n\t value: function globalEmitter() {\n\t return RenderingEvents.staticEventListener;\n\t }\n\t }]);\n\t return RenderingEvents;\n\t}(_wolfy87Eventemitter2.default);\n\t\n\texports.default = RenderingEvents;\n\t\n\t\n\tRenderingEvents.staticEventListener = new _wolfy87Eventemitter2.default();\n\t\n\tif (!global.__MARKLIB_EVENTS__) {\n\t global.__MARKLIB_EVENTS__ = true;\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.add(instance.options.hoverClass);\n\t });\n\t });\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.remove(instance.options.hoverClass);\n\t });\n\t });\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.add(instance.options.treeClass);\n\t });\n\t });\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.remove(instance.options.treeClass);\n\t });\n\t });\n\t\n\t (function init() {\n\t var currentHoverInstances = new _set2.default();\n\t var betweenInstances = new _set2.default();\n\t\n\t function checkMarklibInstance(e) {\n\t var instance = _Rendering2.default.getMarklibInstance(e);\n\t // instanceof check will fail if used in test scenario where different DOMs are used\n\t // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n\t return instance && (instance instanceof _Rendering2.default || 'wrapperNodes' in instance);\n\t }\n\t\n\t function closestInstance(e) {\n\t var closest = _Util2.default.closestCallback(e.target, function (thisE) {\n\t return checkMarklibInstance(thisE);\n\t });\n\t if ((typeof closest === 'undefined' ? 'undefined' : (0, _typeof3.default)(closest)) === 'object') {\n\t return _Rendering2.default.getMarklibInstance(closest);\n\t }\n\t return false;\n\t }\n\t\n\t function getInstancesBetween(e, instance) {\n\t return _Util2.default.parentsCallback(e.target, function (el) {\n\t return checkMarklibInstance(el) && _Rendering2.default.getMarklibInstance(el) !== instance;\n\t }).map(function (el) {\n\t return _Rendering2.default.getMarklibInstance(el);\n\t });\n\t }\n\t\n\t function mouseOutClear() {\n\t currentHoverInstances.forEach(function (thisInstance) {\n\t _Rendering2.default.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n\t thisInstance.emit(EVENT_MOUSELEAVE);\n\t });\n\t currentHoverInstances.clear();\n\t\n\t betweenInstances.forEach(function (thisInstance) {\n\t _Rendering2.default.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n\t thisInstance.emit(EVENT_PART_TREE_LEAVE);\n\t });\n\t\n\t betweenInstances.clear();\n\t }\n\t\n\t /**\n\t * @param {Event} e\n\t * @returns {Array|boolean}\n\t */\n\t function findTarget(e) {\n\t var instance = closestInstance(e);\n\t if (instance) {\n\t var between = getInstancesBetween(e, instance);\n\t if (e.target.textContent !== instance.result.text && between.length > 0) {\n\t var allInstances = between;\n\t allInstances.unshift(instance);\n\t // take the smallest selection\n\t allInstances = allInstances.sort(function (a, b) {\n\t return a.result.text.length < b.result.text.length ? -1 : 1;\n\t });\n\t instance = allInstances[0];\n\t }\n\t return [instance, between];\n\t }\n\t return false;\n\t }\n\t\n\t global.addEventListener('click', function (e) {\n\t var target = findTarget(e);\n\t if (target) {\n\t var _target = (0, _slicedToArray3.default)(target, 2);\n\t\n\t var instance = _target[0];\n\t var between = _target[1];\n\t\n\t _Rendering2.default.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n\t instance.emit(EVENT_CLICK, e, between);\n\t }\n\t }, true);\n\t\n\t global.addEventListener('mouseover', function (e) {\n\t var target = findTarget(e);\n\t if (target) {\n\t (function () {\n\t var _target2 = (0, _slicedToArray3.default)(target, 2);\n\t\n\t var instance = _target2[0];\n\t var between = _target2[1];\n\t\n\t // find instances that lay in between the node\n\t\n\t mouseOutClear();\n\t between.forEach(function (instanceBetween) {\n\t betweenInstances.add(instanceBetween);\n\t instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n\t _Rendering2.default.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n\t });\n\t instance.emit(EVENT_MOUSEENTER, e, between);\n\t _Rendering2.default.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n\t currentHoverInstances.add(instance);\n\t })();\n\t } else {\n\t mouseOutClear();\n\t }\n\t }, true);\n\t })();\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 59 */,\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(105), __esModule: true };\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _setPrototypeOf = __webpack_require__(95);\n\t\n\tvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\t\n\tvar _create = __webpack_require__(93);\n\t\n\tvar _create2 = _interopRequireDefault(_create);\n\t\n\tvar _typeof2 = __webpack_require__(44);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (subClass, superClass) {\n\t if (typeof superClass !== \"function\" && superClass !== null) {\n\t throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n\t }\n\t\n\t subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n\t constructor: {\n\t value: subClass,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n\t};\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof2 = __webpack_require__(44);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (self, call) {\n\t if (!self) {\n\t throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t }\n\t\n\t return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(46);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 64 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 65 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar redefine = __webpack_require__(50);\n\tmodule.exports = function(target, src){\n\t for(var key in src)redefine(target, key, src[key]);\n\t return target;\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(16)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 68 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it, Constructor, name){\n\t if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n\t return it;\n\t};\n\n/***/ },\n/* 69 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(28);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(45)\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , Iterators = __webpack_require__(12);\n\tmodule.exports = __webpack_require__(4).getIteratorMethod = function(it){\n\t if(it != undefined)return it[ITERATOR]\n\t || it['@@iterator']\n\t || Iterators[classof(it)];\n\t};\n\n/***/ },\n/* 72 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RenderingEvents = exports.RenderResult = exports.Util = exports.Rendering = undefined;\n\t\n\tvar _Rendering = __webpack_require__(42);\n\t\n\tvar _Rendering2 = _interopRequireDefault(_Rendering);\n\t\n\tvar _Util = __webpack_require__(43);\n\t\n\tvar _Util2 = _interopRequireDefault(_Util);\n\t\n\tvar _RenderResult = __webpack_require__(57);\n\t\n\tvar _RenderResult2 = _interopRequireDefault(_RenderResult);\n\t\n\tvar _RenderingEvents = __webpack_require__(58);\n\t\n\tvar _RenderingEvents2 = _interopRequireDefault(_RenderingEvents);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.Rendering = _Rendering2.default;\n\texports.Util = _Util2.default;\n\texports.RenderResult = _RenderResult2.default;\n\texports.RenderingEvents = _RenderingEvents2.default;\n\n/***/ },\n/* 89 */,\n/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(100), __esModule: true };\n\n/***/ },\n/* 91 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(101), __esModule: true };\n\n/***/ },\n/* 92 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(102), __esModule: true };\n\n/***/ },\n/* 93 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(103), __esModule: true };\n\n/***/ },\n/* 94 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(104), __esModule: true };\n\n/***/ },\n/* 95 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(106), __esModule: true };\n\n/***/ },\n/* 96 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(107), __esModule: true };\n\n/***/ },\n/* 97 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(108), __esModule: true };\n\n/***/ },\n/* 98 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(109), __esModule: true };\n\n/***/ },\n/* 99 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(91);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(90);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function sliceIterator(arr, i) {\n\t var _arr = [];\n\t var _n = true;\n\t var _d = false;\n\t var _e = undefined;\n\t\n\t try {\n\t for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t _arr.push(_s.value);\n\t\n\t if (i && _arr.length === i) break;\n\t }\n\t } catch (err) {\n\t _d = true;\n\t _e = err;\n\t } finally {\n\t try {\n\t if (!_n && _i[\"return\"]) _i[\"return\"]();\n\t } finally {\n\t if (_d) throw _e;\n\t }\n\t }\n\t\n\t return _arr;\n\t }\n\t\n\t return function (arr, i) {\n\t if (Array.isArray(arr)) {\n\t return arr;\n\t } else if ((0, _isIterable3.default)(Object(arr))) {\n\t return sliceIterator(arr, i);\n\t } else {\n\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t }\n\t };\n\t}();\n\n/***/ },\n/* 100 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(34);\n\t__webpack_require__(33);\n\tmodule.exports = __webpack_require__(128);\n\n/***/ },\n/* 101 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(34);\n\t__webpack_require__(33);\n\tmodule.exports = __webpack_require__(129);\n\n/***/ },\n/* 102 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(131);\n\tmodule.exports = __webpack_require__(4).Object.assign;\n\n/***/ },\n/* 103 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ },\n/* 104 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ },\n/* 105 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(132);\n\tmodule.exports = __webpack_require__(4).Object.getPrototypeOf;\n\n/***/ },\n/* 106 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(133);\n\tmodule.exports = __webpack_require__(4).Object.setPrototypeOf;\n\n/***/ },\n/* 107 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(72);\n\t__webpack_require__(33);\n\t__webpack_require__(34);\n\t__webpack_require__(134);\n\t__webpack_require__(136);\n\tmodule.exports = __webpack_require__(4).Set;\n\n/***/ },\n/* 108 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(135);\n\t__webpack_require__(72);\n\tmodule.exports = __webpack_require__(4).Symbol;\n\n/***/ },\n/* 109 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(33);\n\t__webpack_require__(34);\n\tmodule.exports = __webpack_require__(6)('iterator');\n\n/***/ },\n/* 110 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 111 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 112 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(2)\n\t , hide = __webpack_require__(17)\n\t , redefineAll = __webpack_require__(66)\n\t , ctx = __webpack_require__(27)\n\t , strictNew = __webpack_require__(68)\n\t , defined = __webpack_require__(28)\n\t , forOf = __webpack_require__(47)\n\t , $iterDefine = __webpack_require__(48)\n\t , step = __webpack_require__(64)\n\t , ID = __webpack_require__(51)('id')\n\t , $has = __webpack_require__(29)\n\t , isObject = __webpack_require__(30)\n\t , setSpecies = __webpack_require__(125)\n\t , DESCRIPTORS = __webpack_require__(14)\n\t , isExtensible = Object.isExtensible || isObject\n\t , SIZE = DESCRIPTORS ? '_s' : 'size'\n\t , id = 0;\n\t\n\tvar fastKey = function(it, create){\n\t // return primitive with prefix\n\t if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\t if(!$has(it, ID)){\n\t // can't set id to frozen object\n\t if(!isExtensible(it))return 'F';\n\t // not necessary to add id\n\t if(!create)return 'E';\n\t // add missing object id\n\t hide(it, ID, ++id);\n\t // return object id with prefix\n\t } return 'O' + it[ID];\n\t};\n\t\n\tvar getEntry = function(that, key){\n\t // fast case\n\t var index = fastKey(key), entry;\n\t if(index !== 'F')return that._i[index];\n\t // frozen object case\n\t for(entry = that._f; entry; entry = entry.n){\n\t if(entry.k == key)return entry;\n\t }\n\t};\n\t\n\tmodule.exports = {\n\t getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n\t var C = wrapper(function(that, iterable){\n\t strictNew(that, C, NAME);\n\t that._i = $.create(null); // index\n\t that._f = undefined; // first entry\n\t that._l = undefined; // last entry\n\t that[SIZE] = 0; // size\n\t if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n\t });\n\t redefineAll(C.prototype, {\n\t // 23.1.3.1 Map.prototype.clear()\n\t // 23.2.3.2 Set.prototype.clear()\n\t clear: function clear(){\n\t for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n\t entry.r = true;\n\t if(entry.p)entry.p = entry.p.n = undefined;\n\t delete data[entry.i];\n\t }\n\t that._f = that._l = undefined;\n\t that[SIZE] = 0;\n\t },\n\t // 23.1.3.3 Map.prototype.delete(key)\n\t // 23.2.3.4 Set.prototype.delete(value)\n\t 'delete': function(key){\n\t var that = this\n\t , entry = getEntry(that, key);\n\t if(entry){\n\t var next = entry.n\n\t , prev = entry.p;\n\t delete that._i[entry.i];\n\t entry.r = true;\n\t if(prev)prev.n = next;\n\t if(next)next.p = prev;\n\t if(that._f == entry)that._f = next;\n\t if(that._l == entry)that._l = prev;\n\t that[SIZE]--;\n\t } return !!entry;\n\t },\n\t // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n\t // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n\t forEach: function forEach(callbackfn /*, that = undefined */){\n\t var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n\t , entry;\n\t while(entry = entry ? entry.n : this._f){\n\t f(entry.v, entry.k, this);\n\t // revert to the last existing entry\n\t while(entry && entry.r)entry = entry.p;\n\t }\n\t },\n\t // 23.1.3.7 Map.prototype.has(key)\n\t // 23.2.3.7 Set.prototype.has(value)\n\t has: function has(key){\n\t return !!getEntry(this, key);\n\t }\n\t });\n\t if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n\t get: function(){\n\t return defined(this[SIZE]);\n\t }\n\t });\n\t return C;\n\t },\n\t def: function(that, key, value){\n\t var entry = getEntry(that, key)\n\t , prev, index;\n\t // change existing entry\n\t if(entry){\n\t entry.v = value;\n\t // create new entry\n\t } else {\n\t that._l = entry = {\n\t i: index = fastKey(key, true), // <- index\n\t k: key, // <- key\n\t v: value, // <- value\n\t p: prev = that._l, // <- previous entry\n\t n: undefined, // <- next entry\n\t r: false // <- removed\n\t };\n\t if(!that._f)that._f = entry;\n\t if(prev)prev.n = entry;\n\t that[SIZE]++;\n\t // add to index\n\t if(index !== 'F')that._i[index] = entry;\n\t } return that;\n\t },\n\t getEntry: getEntry,\n\t setStrong: function(C, NAME, IS_MAP){\n\t // add .keys, .values, .entries, [@@iterator]\n\t // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n\t $iterDefine(C, NAME, function(iterated, kind){\n\t this._t = iterated; // target\n\t this._k = kind; // kind\n\t this._l = undefined; // previous\n\t }, function(){\n\t var that = this\n\t , kind = that._k\n\t , entry = that._l;\n\t // revert to the last existing entry\n\t while(entry && entry.r)entry = entry.p;\n\t // get next entry\n\t if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n\t // or finish the iteration\n\t that._t = undefined;\n\t return step(1);\n\t }\n\t // return step by kind\n\t if(kind == 'keys' )return step(0, entry.k);\n\t if(kind == 'values')return step(0, entry.v);\n\t return step(0, [entry.k, entry.v]);\n\t }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\t\n\t // add [@@species], 23.1.2.2, 23.2.2.2\n\t setSpecies(NAME);\n\t }\n\t};\n\n/***/ },\n/* 113 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/DavidBruant/Map-Set.prototype.toJSON\n\tvar forOf = __webpack_require__(47)\n\t , classof = __webpack_require__(45);\n\tmodule.exports = function(NAME){\n\t return function toJSON(){\n\t if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n\t var arr = [];\n\t forOf(this, false, arr.push, arr);\n\t return arr;\n\t };\n\t};\n\n/***/ },\n/* 114 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(2)\n\t , global = __webpack_require__(16)\n\t , $export = __webpack_require__(10)\n\t , fails = __webpack_require__(15)\n\t , hide = __webpack_require__(17)\n\t , redefineAll = __webpack_require__(66)\n\t , forOf = __webpack_require__(47)\n\t , strictNew = __webpack_require__(68)\n\t , isObject = __webpack_require__(30)\n\t , setToStringTag = __webpack_require__(31)\n\t , DESCRIPTORS = __webpack_require__(14);\n\t\n\tmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n\t var Base = global[NAME]\n\t , C = Base\n\t , ADDER = IS_MAP ? 'set' : 'add'\n\t , proto = C && C.prototype\n\t , O = {};\n\t if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n\t new C().entries().next();\n\t }))){\n\t // create collection constructor\n\t C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n\t redefineAll(C.prototype, methods);\n\t } else {\n\t C = wrapper(function(target, iterable){\n\t strictNew(target, C, NAME);\n\t target._c = new Base;\n\t if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n\t });\n\t $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n\t var IS_ADDER = KEY == 'add' || KEY == 'set';\n\t if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n\t if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n\t var result = this._c[KEY](a === 0 ? 0 : a, b);\n\t return IS_ADDER ? this : result;\n\t });\n\t });\n\t if('size' in proto)$.setDesc(C.prototype, 'size', {\n\t get: function(){\n\t return this._c.size;\n\t }\n\t });\n\t }\n\t\n\t setToStringTag(C, NAME);\n\t\n\t O[NAME] = C;\n\t $export($export.G + $export.W + $export.F, O);\n\t\n\t if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\t\n\t return C;\n\t};\n\n/***/ },\n/* 115 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(2);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ },\n/* 116 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(32)\n\t , getNames = __webpack_require__(2).getNames\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ },\n/* 117 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// check on default Array iterator\n\tvar Iterators = __webpack_require__(12)\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , ArrayProto = Array.prototype;\n\t\n\tmodule.exports = function(it){\n\t return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n\t};\n\n/***/ },\n/* 118 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(46);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 119 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// call something on iterator step with safe closing on error\n\tvar anObject = __webpack_require__(13);\n\tmodule.exports = function(iterator, fn, value, entries){\n\t try {\n\t return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n\t // 7.4.6 IteratorClose(iterator, completion)\n\t } catch(e){\n\t var ret = iterator['return'];\n\t if(ret !== undefined)anObject(ret.call(iterator));\n\t throw e;\n\t }\n\t};\n\n/***/ },\n/* 120 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(2)\n\t , descriptor = __webpack_require__(49)\n\t , setToStringTag = __webpack_require__(31)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(17)(IteratorPrototype, __webpack_require__(6)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 121 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2)\n\t , toIObject = __webpack_require__(32);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 122 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.1 Object.assign(target, source, ...)\n\tvar $ = __webpack_require__(2)\n\t , toObject = __webpack_require__(70)\n\t , IObject = __webpack_require__(63);\n\t\n\t// should work with symbols and should have deterministic property order (V8 bug)\n\tmodule.exports = __webpack_require__(15)(function(){\n\t var a = Object.assign\n\t , A = {}\n\t , B = {}\n\t , S = Symbol()\n\t , K = 'abcdefghijklmnopqrst';\n\t A[S] = 7;\n\t K.split('').forEach(function(k){ B[k] = k; });\n\t return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n\t}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n\t var T = toObject(target)\n\t , $$ = arguments\n\t , $$len = $$.length\n\t , index = 1\n\t , getKeys = $.getKeys\n\t , getSymbols = $.getSymbols\n\t , isEnum = $.isEnum;\n\t while($$len > index){\n\t var S = IObject($$[index++])\n\t , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n\t , length = keys.length\n\t , j = 0\n\t , key;\n\t while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n\t }\n\t return T;\n\t} : Object.assign;\n\n/***/ },\n/* 123 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(10)\n\t , core = __webpack_require__(4)\n\t , fails = __webpack_require__(15);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 124 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar getDesc = __webpack_require__(2).getDesc\n\t , isObject = __webpack_require__(30)\n\t , anObject = __webpack_require__(13);\n\tvar check = function(O, proto){\n\t anObject(O);\n\t if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n\t};\n\tmodule.exports = {\n\t set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n\t function(test, buggy, set){\n\t try {\n\t set = __webpack_require__(27)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n\t set(test, []);\n\t buggy = !(test instanceof Array);\n\t } catch(e){ buggy = true; }\n\t return function setPrototypeOf(O, proto){\n\t check(O, proto);\n\t if(buggy)O.__proto__ = proto;\n\t else set(O, proto);\n\t return O;\n\t };\n\t }({}, false) : undefined),\n\t check: check\n\t};\n\n/***/ },\n/* 125 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar core = __webpack_require__(4)\n\t , $ = __webpack_require__(2)\n\t , DESCRIPTORS = __webpack_require__(14)\n\t , SPECIES = __webpack_require__(6)('species');\n\t\n\tmodule.exports = function(KEY){\n\t var C = core[KEY];\n\t if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n\t configurable: true,\n\t get: function(){ return this; }\n\t });\n\t};\n\n/***/ },\n/* 126 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(69)\n\t , defined = __webpack_require__(28);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 127 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(69)\n\t , min = Math.min;\n\tmodule.exports = function(it){\n\t return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 128 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(13)\n\t , get = __webpack_require__(71);\n\tmodule.exports = __webpack_require__(4).getIterator = function(it){\n\t var iterFn = get(it);\n\t if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n\t return anObject(iterFn.call(it));\n\t};\n\n/***/ },\n/* 129 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(45)\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , Iterators = __webpack_require__(12);\n\tmodule.exports = __webpack_require__(4).isIterable = function(it){\n\t var O = Object(it);\n\t return O[ITERATOR] !== undefined\n\t || '@@iterator' in O\n\t || Iterators.hasOwnProperty(classof(O));\n\t};\n\n/***/ },\n/* 130 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(111)\n\t , step = __webpack_require__(64)\n\t , Iterators = __webpack_require__(12)\n\t , toIObject = __webpack_require__(32);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(48)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 131 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.1 Object.assign(target, source)\n\tvar $export = __webpack_require__(10);\n\t\n\t$export($export.S + $export.F, 'Object', {assign: __webpack_require__(122)});\n\n/***/ },\n/* 132 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(70);\n\t\n\t__webpack_require__(123)('getPrototypeOf', function($getPrototypeOf){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 133 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(10);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(124).set});\n\n/***/ },\n/* 134 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strong = __webpack_require__(112);\n\t\n\t// 23.2 Set Objects\n\t__webpack_require__(114)('Set', function(get){\n\t return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n\t}, {\n\t // 23.2.3.1 Set.prototype.add(value)\n\t add: function add(value){\n\t return strong.def(this, value = value === 0 ? 0 : value, value);\n\t }\n\t}, strong);\n\n/***/ },\n/* 135 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(2)\n\t , global = __webpack_require__(16)\n\t , has = __webpack_require__(29)\n\t , DESCRIPTORS = __webpack_require__(14)\n\t , $export = __webpack_require__(10)\n\t , redefine = __webpack_require__(50)\n\t , $fails = __webpack_require__(15)\n\t , shared = __webpack_require__(67)\n\t , setToStringTag = __webpack_require__(31)\n\t , uid = __webpack_require__(51)\n\t , wks = __webpack_require__(6)\n\t , keyOf = __webpack_require__(121)\n\t , $names = __webpack_require__(116)\n\t , enumKeys = __webpack_require__(115)\n\t , isArray = __webpack_require__(118)\n\t , anObject = __webpack_require__(13)\n\t , toIObject = __webpack_require__(32)\n\t , createDesc = __webpack_require__(49)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\t\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\t\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(65)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\t\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\t\n\tsetter = true;\n\t\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\t\n\t$export($export.S, 'Symbol', symbolStatics);\n\t\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\t\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 136 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/DavidBruant/Map-Set.prototype.toJSON\n\tvar $export = __webpack_require__(10);\n\t\n\t$export($export.P, 'Set', {toJSON: __webpack_require__(113)('Set')});\n\n/***/ },\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * EventEmitter v4.2.11 - git.io/ee\n\t * Unlicense - http://unlicense.org/\n\t * Oliver Caldwell - http://oli.me.uk/\n\t * @preserve\n\t */\n\t\n\t;(function () {\n\t 'use strict';\n\t\n\t /**\n\t * Class for managing events.\n\t * Can be extended to provide event functionality in other classes.\n\t *\n\t * @class EventEmitter Manages event registering and emitting.\n\t */\n\t function EventEmitter() {}\n\t\n\t // Shortcuts to improve speed and size\n\t var proto = EventEmitter.prototype;\n\t var exports = this;\n\t var originalGlobalValue = exports.EventEmitter;\n\t\n\t /**\n\t * Finds the index of the listener for the event in its storage array.\n\t *\n\t * @param {Function[]} listeners Array of listeners to search through.\n\t * @param {Function} listener Method to look for.\n\t * @return {Number} Index of the specified listener, -1 if not found\n\t * @api private\n\t */\n\t function indexOfListener(listeners, listener) {\n\t var i = listeners.length;\n\t while (i--) {\n\t if (listeners[i].listener === listener) {\n\t return i;\n\t }\n\t }\n\t\n\t return -1;\n\t }\n\t\n\t /**\n\t * Alias a method while keeping the context correct, to allow for overwriting of target method.\n\t *\n\t * @param {String} name The name of the target method.\n\t * @return {Function} The aliased method\n\t * @api private\n\t */\n\t function alias(name) {\n\t return function aliasClosure() {\n\t return this[name].apply(this, arguments);\n\t };\n\t }\n\t\n\t /**\n\t * Returns the listener array for the specified event.\n\t * Will initialise the event object and listener arrays if required.\n\t * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n\t * Each property in the object response is an array of listener functions.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Function[]|Object} All listener functions for the event.\n\t */\n\t proto.getListeners = function getListeners(evt) {\n\t var events = this._getEvents();\n\t var response;\n\t var key;\n\t\n\t // Return a concatenated array of all matching events if\n\t // the selector is a regular expression.\n\t if (evt instanceof RegExp) {\n\t response = {};\n\t for (key in events) {\n\t if (events.hasOwnProperty(key) && evt.test(key)) {\n\t response[key] = events[key];\n\t }\n\t }\n\t }\n\t else {\n\t response = events[evt] || (events[evt] = []);\n\t }\n\t\n\t return response;\n\t };\n\t\n\t /**\n\t * Takes a list of listener objects and flattens it into a list of listener functions.\n\t *\n\t * @param {Object[]} listeners Raw listener objects.\n\t * @return {Function[]} Just the listener functions.\n\t */\n\t proto.flattenListeners = function flattenListeners(listeners) {\n\t var flatListeners = [];\n\t var i;\n\t\n\t for (i = 0; i < listeners.length; i += 1) {\n\t flatListeners.push(listeners[i].listener);\n\t }\n\t\n\t return flatListeners;\n\t };\n\t\n\t /**\n\t * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Object} All listener functions for an event in an object.\n\t */\n\t proto.getListenersAsObject = function getListenersAsObject(evt) {\n\t var listeners = this.getListeners(evt);\n\t var response;\n\t\n\t if (listeners instanceof Array) {\n\t response = {};\n\t response[evt] = listeners;\n\t }\n\t\n\t return response || listeners;\n\t };\n\t\n\t /**\n\t * Adds a listener function to the specified event.\n\t * The listener will not be added if it is a duplicate.\n\t * If the listener returns true then it will be removed after it is called.\n\t * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.addListener = function addListener(evt, listener) {\n\t var listeners = this.getListenersAsObject(evt);\n\t var listenerIsWrapped = typeof listener === 'object';\n\t var key;\n\t\n\t for (key in listeners) {\n\t if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n\t listeners[key].push(listenerIsWrapped ? listener : {\n\t listener: listener,\n\t once: false\n\t });\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of addListener\n\t */\n\t proto.on = alias('addListener');\n\t\n\t /**\n\t * Semi-alias of addListener. It will add a listener that will be\n\t * automatically removed after its first execution.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.addOnceListener = function addOnceListener(evt, listener) {\n\t return this.addListener(evt, {\n\t listener: listener,\n\t once: true\n\t });\n\t };\n\t\n\t /**\n\t * Alias of addOnceListener.\n\t */\n\t proto.once = alias('addOnceListener');\n\t\n\t /**\n\t * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n\t * You need to tell it what event names should be matched by a regex.\n\t *\n\t * @param {String} evt Name of the event to create.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.defineEvent = function defineEvent(evt) {\n\t this.getListeners(evt);\n\t return this;\n\t };\n\t\n\t /**\n\t * Uses defineEvent to define multiple events.\n\t *\n\t * @param {String[]} evts An array of event names to define.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.defineEvents = function defineEvents(evts) {\n\t for (var i = 0; i < evts.length; i += 1) {\n\t this.defineEvent(evts[i]);\n\t }\n\t return this;\n\t };\n\t\n\t /**\n\t * Removes a listener function from the specified event.\n\t * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to remove the listener from.\n\t * @param {Function} listener Method to remove from the event.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.removeListener = function removeListener(evt, listener) {\n\t var listeners = this.getListenersAsObject(evt);\n\t var index;\n\t var key;\n\t\n\t for (key in listeners) {\n\t if (listeners.hasOwnProperty(key)) {\n\t index = indexOfListener(listeners[key], listener);\n\t\n\t if (index !== -1) {\n\t listeners[key].splice(index, 1);\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of removeListener\n\t */\n\t proto.off = alias('removeListener');\n\t\n\t /**\n\t * Adds listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n\t * You can also pass it a regular expression to add the array of listeners to all events that match it.\n\t * Yeah, this function does quite a bit. That's probably a bad thing.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.addListeners = function addListeners(evt, listeners) {\n\t // Pass through to manipulateListeners\n\t return this.manipulateListeners(false, evt, listeners);\n\t };\n\t\n\t /**\n\t * Removes listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be removed.\n\t * You can also pass it a regular expression to remove the listeners from all events that match it.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.removeListeners = function removeListeners(evt, listeners) {\n\t // Pass through to manipulateListeners\n\t return this.manipulateListeners(true, evt, listeners);\n\t };\n\t\n\t /**\n\t * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n\t * The first argument will determine if the listeners are removed (true) or added (false).\n\t * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be added/removed.\n\t * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n\t *\n\t * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n\t var i;\n\t var value;\n\t var single = remove ? this.removeListener : this.addListener;\n\t var multiple = remove ? this.removeListeners : this.addListeners;\n\t\n\t // If evt is an object then pass each of its properties to this method\n\t if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n\t for (i in evt) {\n\t if (evt.hasOwnProperty(i) && (value = evt[i])) {\n\t // Pass the single listener straight through to the singular method\n\t if (typeof value === 'function') {\n\t single.call(this, i, value);\n\t }\n\t else {\n\t // Otherwise pass back to the multiple function\n\t multiple.call(this, i, value);\n\t }\n\t }\n\t }\n\t }\n\t else {\n\t // So evt must be a string\n\t // And listeners must be an array of listeners\n\t // Loop over it and pass each one to the multiple method\n\t i = listeners.length;\n\t while (i--) {\n\t single.call(this, evt, listeners[i]);\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Removes all listeners from a specified event.\n\t * If you do not specify an event then all listeners will be removed.\n\t * That means every event will be emptied.\n\t * You can also pass a regex to remove all events that match it.\n\t *\n\t * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.removeEvent = function removeEvent(evt) {\n\t var type = typeof evt;\n\t var events = this._getEvents();\n\t var key;\n\t\n\t // Remove different things depending on the state of evt\n\t if (type === 'string') {\n\t // Remove all listeners for the specified event\n\t delete events[evt];\n\t }\n\t else if (evt instanceof RegExp) {\n\t // Remove all events matching the regex.\n\t for (key in events) {\n\t if (events.hasOwnProperty(key) && evt.test(key)) {\n\t delete events[key];\n\t }\n\t }\n\t }\n\t else {\n\t // Remove all listeners in all events\n\t delete this._events;\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of removeEvent.\n\t *\n\t * Added to mirror the node API.\n\t */\n\t proto.removeAllListeners = alias('removeEvent');\n\t\n\t /**\n\t * Emits an event of your choice.\n\t * When emitted, every listener attached to that event will be executed.\n\t * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n\t * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n\t * So they will not arrive within the array on the other side, they will be separate.\n\t * You can also pass a regular expression to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {Array} [args] Optional array of arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.emitEvent = function emitEvent(evt, args) {\n\t var listenersMap = this.getListenersAsObject(evt);\n\t var listeners;\n\t var listener;\n\t var i;\n\t var key;\n\t var response;\n\t\n\t for (key in listenersMap) {\n\t if (listenersMap.hasOwnProperty(key)) {\n\t listeners = listenersMap[key].slice(0);\n\t i = listeners.length;\n\t\n\t while (i--) {\n\t // If the listener returns true then it shall be removed from the event\n\t // The function is executed either with a basic call or an apply if there is an args array\n\t listener = listeners[i];\n\t\n\t if (listener.once === true) {\n\t this.removeListener(evt, listener.listener);\n\t }\n\t\n\t response = listener.listener.apply(this, args || []);\n\t\n\t if (response === this._getOnceReturnValue()) {\n\t this.removeListener(evt, listener.listener);\n\t }\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of emitEvent\n\t */\n\t proto.trigger = alias('emitEvent');\n\t\n\t /**\n\t * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n\t * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {...*} Optional additional arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.emit = function emit(evt) {\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t return this.emitEvent(evt, args);\n\t };\n\t\n\t /**\n\t * Sets the current value to check against when executing listeners. If a\n\t * listeners return value matches the one set here then it will be removed\n\t * after execution. This value defaults to true.\n\t *\n\t * @param {*} value The new value to check for when executing listeners.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.setOnceReturnValue = function setOnceReturnValue(value) {\n\t this._onceReturnValue = value;\n\t return this;\n\t };\n\t\n\t /**\n\t * Fetches the current value to check against when executing listeners. If\n\t * the listeners return value matches this one then it should be removed\n\t * automatically. It will return true by default.\n\t *\n\t * @return {*|Boolean} The current value to check for or the default, true.\n\t * @api private\n\t */\n\t proto._getOnceReturnValue = function _getOnceReturnValue() {\n\t if (this.hasOwnProperty('_onceReturnValue')) {\n\t return this._onceReturnValue;\n\t }\n\t else {\n\t return true;\n\t }\n\t };\n\t\n\t /**\n\t * Fetches the events object and creates one if required.\n\t *\n\t * @return {Object} The events storage object.\n\t * @api private\n\t */\n\t proto._getEvents = function _getEvents() {\n\t return this._events || (this._events = {});\n\t };\n\t\n\t /**\n\t * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n\t *\n\t * @return {Function} Non conflicting EventEmitter class.\n\t */\n\t EventEmitter.noConflict = function noConflict() {\n\t exports.EventEmitter = originalGlobalValue;\n\t return EventEmitter;\n\t };\n\t\n\t // Expose the class either via AMD, CommonJS or the global object\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return EventEmitter;\n\t }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t }\n\t else if (typeof module === 'object' && module.exports){\n\t module.exports = EventEmitter;\n\t }\n\t else {\n\t exports.EventEmitter = EventEmitter;\n\t }\n\t}.call(this));\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** js/marklib.min.js\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/** WEBPACK FOOTER **\n ** webpack/bootstrap 3462825079ffae5da147\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 2\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 4\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 6\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 10\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 12\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 14\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 15\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 16\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 17\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 25\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 26\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 27\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 29\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 30\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 32\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 33\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 34\n ** module chunks = 0 1\n **/","/* global Node */\n\nimport RenderResult from './RenderResult';\nimport RenderingEvents from './RenderingEvents';\nimport Util, { ATTR_DATA_ORIGINAL_INDEX, DATA_IS_SELECTION } from './util/Util';\n\n/**\n * @type {string}\n */\nconst TAG_NAME = 'x-marker';\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n/**\n * @type {string}\n */\nconst DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n/**\n * @type {string}\n */\nconst ATTR_DATA_START_END = 'data-is-start-end';\n/**\n * @type {string}\n */\nconst ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n/**\n * @type {string}\n */\nconst ATTR_DATA_ID = 'data-selection-id';\n\n/**\n * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n * @type {number}\n */\nconst DOCUMENT_POSITION_CONTAINED_BY = 16;\n\n\n/**\n * @type {string}\n */\nexport const EVENT_WRAPPED_NODE = 'wrapped-node';\n\n/**\n * Manages a single Render\n */\nclass Rendering extends RenderingEvents {\n\n /**\n * @param {Document} document\n * @param {object} options\n * @param {Node} context\n */\n constructor(document, options, context) {\n super(options, document);\n\n /**\n * ID of rendering, will be set on each element that is part of it\n * @type {String}\n */\n this.id = Util.guid();\n\n /**\n * StartContainer\n * @type {Node}\n */\n this.startContainer = null;\n\n /**\n * EndContainer\n * @type {Node}\n */\n this.endContainer = null;\n\n /**\n * @type {Node}\n */\n this.context = context || this.document;\n\n /**\n * Flag if this instance has been rendered\n * @type {RenderResult}\n * @private\n */\n this._renderResult = null;\n }\n\n /**\n * @returns {string} id of this rendering\n */\n getId() {\n return this.id;\n }\n\n /**\n * @param {string} id\n * @returns {Rendering}\n */\n setId(id) {\n this.id = id;\n\n if (this._renderResult) {\n this.wrapperNodes.forEach((node) => node.setAttribute(ATTR_DATA_ID, this.id));\n }\n\n return this;\n }\n\n /**\n * Creates a Template used as a wrapper and an indication that this is a highlight node\n * @param {Boolean} [omitHighlight]\n * @returns {Node}\n * @private\n */\n _createWrapTemplate(omitHighlight) {\n const el = this.document.createElement(TAG_NAME);\n const vTrue = \"true\";\n\n if (!omitHighlight) {\n el.className = this.options.className.join(' ');\n // save this marker instance to given node\n Rendering.setMarklibInstance(el, this);\n // keep track of highlight nodes\n this.wrapperNodes.push(el);\n el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n el.setAttribute(ATTR_DATA_ID, this.getId());\n }\n el.setAttribute(DATA_IS_SELECTION, vTrue);\n\n return el;\n }\n\n /**\n * Creates a Template to use as start and end marks\n * @param {String} text\n * @returns {Node}\n * @private\n */\n _createStartEndWrapTemplate(text) {\n const el = this._createWrapTemplate();\n el.setAttribute(ATTR_DATA_START_END, 'true');\n el.textContent = text;\n return el;\n }\n\n\n /**\n * Creates Start or End Container Element\n * @param initialNode\n * @param text\n * @param offset\n * @param index\n * @returns {Node}\n */\n _createStartOrEndContainer(initialNode, text, offset, index) {\n const wrapper = this._createStartEndWrapTemplate(text);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(initialNode, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\n return wrapper;\n }\n\n /**\n * Wraps given element\n * @param {Node|HTMLElement} el\n * @param [optionalLength]\n * @param [optionalIndex]\n * @param [optionalIsSameNode]\n * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n * @returns {Node}\n * @private\n */\n _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n const originalIndex = optionalIndex >= 0 ? optionalIndex : Util.calcIndex(el);\n const wrapper = this._createWrapTemplate(omitHighlight);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(el, originalIndex));\n const offsetLength = optionalLength >= 0 ? optionalLength : Util.getOffsetParentIfHas(el);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\n // Save a reference to original text node in wrapper\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\n if (optionalIsSameNode) {\n wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n }\n const wrap = Util.wrap(el, wrapper);\n\n this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\n return wrap;\n }\n\n /**\n * Create split container element\n * @param originalElement {Node} original text node element that is created a wrapper for\n * @param index\n * @param offset\n * @returns {Node}\n */\n _createSplitContainer(originalElement, index, offset) {\n const wrapper = this.document.createElement(TAG_NAME);\n wrapper.setAttribute(DATA_IS_SELECTION, 'true');\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(originalElement, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n return wrapper;\n }\n\n /**\n * Walks the tree\n * @param start\n * @param endContainer\n * @param nextParent\n */\n walk(start, endContainer, nextParent) {\n let nextParentNode = start;\n while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n const currentParentNode = nextParentNode;\n nextParentNode = nextParentNode.parentNode;\n if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n break;\n }\n }\n }\n\n\n /**\n * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n * If an Element node is found, it will wrap all children of this node inside a element as well.\n * It will stop if endContainer is found as a node\n *\n * @param {Node} start\n * @param {Node} endContainer\n * @returns {boolean} (true if endContainer was found)\n */\n wrapSiblings(start, endContainer) {\n let next = start;\n let found = false;\n\n // Capsule some logic\n const wrap = (n) => {\n const instance = Rendering.getMarklibInstance(n.parentNode);\n if (n.parentNode.hasAttribute(ATTR_DATA_START_END) &&\n n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) &&\n instance === this) {\n this._createWrap(n, undefined, undefined, undefined, true);\n } else {\n this._createWrap(n);\n }\n };\n\n // helper functions\n\n const wrapIf = (n) => {\n if (!Util.nodeIsEmpty(n)) {\n wrap(n);\n }\n };\n\n const walkIfContained = (e) => {\n if (e === endContainer) {\n return false;\n }\n if (Node.TEXT_NODE === e.nodeType) {\n wrapIf(e);\n }\n return true;\n };\n\n const walkIfNotContained = (el) => {\n wrapIf(el);\n };\n\n while (next !== null && next !== endContainer) {\n const currentNext = next;\n next = next.nextSibling;\n // Found a text node, directly wrap inside a span\n if (Node.TEXT_NODE === currentNext.nodeType) {\n wrapIf(currentNext);\n } else {\n if ((currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY)) {\n Util.walkDom(currentNext, walkIfContained);\n found = true;\n } else {\n Util.walkTextNodes(currentNext, walkIfNotContained);\n }\n if (found) {\n return true;\n }\n }\n }\n return found;\n }\n\n /**\n * Marks text of the same node\n * @param {Node} textNode\n * @param {int} startIndex\n * @param {int} endIndex\n * @private\n */\n _markTextSameNode(textNode, startIndex, endIndex) {\n const initialText = textNode.nodeValue;\n const initialIndex = Util.calcIndex(textNode);\n\n if (!initialText) {\n return false;\n }\n // If there is an unmarked part in the beginning of the text node,\n // cut off that part and put it into it's own textnode.\n if (startIndex > 0) {\n const textBefore = initialText.slice(0, startIndex);\n textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n // wrap cutted text node:\n Util.wrap(textNode.previousSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode)));\n }\n // If there is an unmarked part at the end of the text node,\n // cut off that part and put it into it's own textnode.\n if (endIndex < initialText.length) {\n const textAfter = initialText.slice(endIndex, initialText.length);\n textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n Util.wrap(textNode.nextSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode) + endIndex));\n }\n\n // Cutoff the unmarked parts and wrap the textnode into a span.\n textNode.nodeValue = initialText.slice(startIndex, endIndex);\n this.startContainer = this._createWrap(textNode,\n Util.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n this.endContainer = this.startContainer;\n return this.startContainer;\n }\n\n\n /**\n * Marks text of end and start containers if start and end nodes are different\n * Important: There might be no end container!\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @returns {{startT: (Node), endT: (Node)}}\n * @private\n */\n _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n // Get current for both start and end:\n const startContainerIndex = Util.calcIndex(startContainer);\n const endContainerIndex = Util.calcIndex(endContainer);\n\n // Split text\n const fullTextStartValue = startContainer.nodeValue;\n // init with startContainer because we may have not a text node here\n let startT = startContainer;\n\n if (undefined !== fullTextStartValue) {\n const partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n // Set new text to start node\n startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\n const offsetStart = Util.getOffsetParentIfHas(startContainer);\n // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n startT = this._createStartOrEndContainer(startContainer, partTextStartValue,\n offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n // Append this node after startContainer\n startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n this.startContainer = startT;\n\n if (startContainer.nodeValue) {\n // Wrap start container in detection node, offset is always 0 or parent offset.\n Util.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex,\n Util.getOffsetParentIfHas(startContainer)));\n }\n }\n\n // init with endContainer because we may have not a text node here\n let endT = endContainer;\n\n // 2. Extract end Text node,\n const fullTextEndValue = endContainer.nodeValue;\n // It's possible that end container value is null (if a whole paragraph is marked)\n if (undefined !== fullTextEndValue) {\n // Split text\n const partTextEndValue = fullTextEndValue.slice(0, endOffset);\n endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n // End Container start offset is always 0 or parent offset.\n endT = this._createStartOrEndContainer(endContainer, partTextEndValue,\n Util.getOffsetParentIfHas(endContainer), endContainerIndex);\n\n endContainer.parentNode.insertBefore(endT, endContainer);\n this.endContainer = endT;\n const offsetParent = Util.getOffsetParentIfHas(endContainer);\n Util.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex,\n offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n }\n\n return {\n startT,\n endT\n };\n }\n\n /**\n * Renders a selection\n * @param {Node} startContainerP\n * @param {Node} endContainerP\n * @param {Node} commonAncestor\n * @param {int} startOffset\n * @param {int} endOffsetP\n * @returns RenderResult\n * @private\n */\n _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n if (this._renderResult) {\n return this._renderResult;\n }\n let startContainer = startContainerP;\n let endContainer = endContainerP;\n let endOffset = endOffsetP;\n let outer = Util.parents(startContainer, commonAncestor);\n outer = outer[outer.length - 1];\n const contextContainer = outer ? outer : commonAncestor;\n\n // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n // but are different nodes:\n\n // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n // 1: First detect real start offset in startContainer:\n\n // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n // So first select that container:\n const originalStartOffset = Util.findOriginalOffset(startContainer);\n const originalEndOffset = Util.findOriginalOffset(endContainer);\n\n // We may run into Browser Bugs:\n\n // If both are not text nodes, use next sibling as endContainer\n if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n if (startContainer === endContainer) {\n endContainer = endContainer.nextElementSibling || endContainer;\n }\n }\n // IF start/end container is not type of text, select first child text node:\n // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n // Sometimes does not work correctly... (specially when DOM was modified)\n if (startContainer.nodeType !== Node.TEXT_NODE) {\n Util.walkDom(startContainer, (el) => {\n if (el.nodeType === Node.TEXT_NODE) {\n startContainer = el;\n return false;\n }\n return true;\n });\n }\n\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n let toFindNode = startContainer;\n\n if (endOffset === 0) {\n toFindNode = endContainer.previousElementSibling || startContainer;\n }\n\n // Get the last text node:\n const endContainerContents = Util.closest(toFindNode, ':not([' + DATA_IS_SELECTION + '])').childNodes;\n if (endContainerContents.length) {\n const r = endContainerContents[endContainerContents.length - 1];\n if (r.nodeType === Node.TEXT_NODE) {\n endContainer = r;\n endOffset = r.length;\n } else {\n let f = r.lastChild;\n while (f !== null) {\n if (f && f.nodeType === Node.TEXT_NODE) {\n endContainer = f;\n endOffset = f.length;\n if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n endOffset = parseInt(f.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n }\n }\n f = f.lastChild;\n }\n }\n }\n // still no textNode?\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n throw Error('Could not found endContainer, highlighting would be unstable');\n }\n }\n\n this._renderResult = new RenderResult(\n // Real offset is calculated by relative length and absolute length\n originalStartOffset + startOffset,\n originalEndOffset + endOffset,\n // get the path for this selection\n Util.getPath(startContainer, this.context),\n Util.getPath(endContainer, this.context)\n );\n\n this._renderResult.instance = this;\n\n\n this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\n return this._renderResult;\n }\n\n /**\n * Renders a given selection\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {Node} contextContainer\n * @param {Boolean} outer\n * @private\n */\n _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n // if start and end-container are the same, mark text on the same node\n if (startContainer === endContainer) {\n this._markTextSameNode(startContainer, startOffset, endOffset);\n } else {\n const result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n const index = this.wrapperNodes.indexOf(result.endT);\n // remove endContainer, to keep order:\n this.wrapperNodes.splice(index, 1);\n if (!outer) {\n this.wrapSiblings(result.startT.nextSibling, endContainer);\n } else {\n this.walk(result.startT, endContainer, contextContainer);\n }\n this.wrapperNodes.push(result.endT);\n }\n }\n\n /**\n * Prepares to render a Selection with path selectors\n * ```\n * A Path looks like this:\n *\n * #selector;#textnode;#offset\n * ``\n * @param {string} startPath\n * @param {string} endPath\n * @returns {string}\n */\n renderWithPath(startPath, endPath) {\n const startContainer = Util.deserializePath(startPath, this.context);\n const endContainer = Util.deserializePath(endPath, this.context);\n if (startContainer && endContainer && startContainer.node && endContainer.node) {\n const range = document.createRange();\n range.setStart(startContainer.node, startContainer.offset);\n range.setEnd(endContainer.node, endContainer.offset);\n const text = range.toString();\n const result = this.renderWithRange(range);\n result.text = text;\n return text;\n }\n throw new Error('Could not find start- and/or end-container in document');\n }\n\n /**\n * @returns {RenderResult}\n */\n get result() {\n return this._renderResult;\n }\n\n /**\n * Renders a result (that returned from `renderWithRange`)\n * @param {RenderResult|Object} result\n * @returns {string}\n */\n renderWithResult(result) {\n return this.renderWithPath(\n `${result.startContainerPath};${result.startOffset}`,\n `${result.endContainerPath};${result.endOffset}`);\n }\n\n /**\n * Prepares a selection with a range object\n * @param {Range} range\n * @returns {Object}\n */\n renderWithRange(range) {\n const text = range.toString();\n const result = this._renderWithElements(range.startContainer, range.endContainer,\n range.commonAncestorContainer, range.startOffset, range.endOffset);\n result.text = text;\n return result;\n }\n\n /**\n * Removes bindings and classNames to nodes\n */\n destroy() {\n this.wrapperNodes.forEach((node) => {\n delete node.marklibInstance;\n node.className = '';\n });\n this.removeEvent();\n }\n\n /**\n * @param {Node} el\n * @param {Rendering} instance\n * @returns {Node}\n */\n static setMarklibInstance(el, instance) {\n el.marklibInstance = instance;\n return el;\n }\n\n /**\n * @param {Node} el\n * @returns {Rendering|null|undefined}\n */\n static getMarklibInstance(el) {\n return el ? el.marklibInstance : null;\n }\n}\n\nexport default Rendering;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/Rendering.js\n **/","/* global Node, NodeList, Element */\n\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n/**\n * @type {string}\n */\nexport const DATA_IS_SELECTION = 'data-is-selection';\n/**\n * @type {string}\n */\nconst SERIALIZE_SEPARATOR = \";\";\n\nimport { ATTR_DATA_ORIGINAL_OFFSET_START } from '../Rendering';\n\n// polyfill for matchesSelector, IE 10/11 does not support Element.matches\nif (Element && !Element.prototype.matches) {\n const p = Element.prototype;\n p.matches = p.matchesSelector ||\n p.mozMatchesSelector || p.msMatchesSelector ||\n p.oMatchesSelector || p.webkitMatchesSelector;\n}\n\n/**\n * Utility class\n * Contains DOM/Node manipulation helpers\n */\nexport default\nclass Util {\n\n /**\n * Filter for a NodeList\n * @param {NodeList} nodes\n * @param {Function} func\n *\n * @returns {Array.}\n */\n static nodeListFilter(nodes, func) {\n return Array.prototype.filter.call(nodes || [], func);\n }\n\n\n /**\n * Generates a unique id\n *\n * @return {String}\n */\n static guid() {\n const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\n s4() + '-' + s4() + s4() + s4();\n }\n\n /**\n * Checks if a given node is empty\n * @param {HTMLElement} node\n *\n * @returns {*}\n */\n static nodeIsEmpty(node) {\n return node.nodeValue.match(/^[\\s]*$/g);\n }\n\n\n /**\n * @param {HTMLElement} node\n * @param [optionalList]\n *\n * @return {int} the index of this node in context to it's siblings\n */\n static index(node, optionalList) {\n const children = optionalList || (node.nodeType === Node.TEXT_NODE ?\n node.parentNode.childNodes : node.parentNode.children);\n return Array.prototype.indexOf.call(children || [], node);\n }\n\n /**\n * Wraps given `elms` in given `wrapper`\n *\n * @param {HTMLElement|Array.|Node} elms\n * @param {HTMLElement|Node} wrapper\n *\n * @return {HTMLElement}\n */\n static wrap(elms, wrapper) {\n let thisElms = elms;\n\n if (!thisElms) {\n return wrapper;\n }\n // Convert `elms` to an array, if necessary.\n if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n thisElms = [thisElms];\n }\n for (let i = thisElms.length - 1; i >= 0; i--) {\n const child = (i > 0) ? wrapper.cloneNode(true) : wrapper;\n const el = thisElms[i];\n // Cache the current parent and sibling.\n const parent = el.parentNode;\n const sibling = el.nextSibling;\n\n child.appendChild(el);\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n }\n return wrapper;\n }\n\n /**\n * Will calculate an index depending on an already modified dom by marklib\n * @param {HTMLElement|Node} node\n *\n * @returns {int|boolean}\n */\n static calcIndex(node) {\n let calculatedIndex = 0;\n let foundWrapper = false;\n const nodes = node.parentNode.childNodes;\n const length = nodes.length;\n for (let thisIndex = 0; thisIndex < length; thisIndex++) {\n const el = nodes[thisIndex];\n if (el === node) {\n break;\n }\n // reset index when original index is found\n const maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\n if (maybeIndexOfOriginal) {\n calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n foundWrapper = true;\n }\n calculatedIndex++;\n }\n return foundWrapper ? calculatedIndex : Util.index(node);\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {String} [optionalSelector] will test given element against a selector\n * if matches, returns this element immediately\n *\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parents(el, optionalSelector) {\n return Util.parentsCallback(el, (element) => {\n if (optionalSelector && ((element === optionalSelector) ||\n ((typeof optionalSelector === 'string') && element.matches &&\n element.matches(optionalSelector)))) {\n return true;\n } else if (!optionalSelector) {\n return true;\n }\n return false;\n });\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {Function} callback\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parentsCallback(el, callback) {\n let element = el;\n const foundElements = [];\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (callback(element)) {\n foundElements.push(element);\n }\n }\n return foundElements;\n }\n\n /**\n * Finds a parent node (the closest) with a given selector\n * @param {Node} el\n * @param {String} selector\n *\n * @returns {Node|boolean}\n */\n static parent(el, selector) {\n let element = el;\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (element.matches && element.matches(selector)) {\n return element;\n }\n }\n return false;\n }\n\n /**\n * Finds the closest element including itself matching a given selector\n * @param {Node} el\n * @param selector\n *\n * @returns {Node|boolean}\n */\n static closest(el, selector) {\n return Util.closestCallback(el, (element) => element.matches && element.matches(selector));\n }\n\n /**\n * Finds the closest element including itself matching a callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static closestCallback(el, callback) {\n let element = el;\n while (element !== null) {\n if (callback(element)) {\n return element;\n }\n element = element.parentNode;\n }\n return false;\n }\n\n /**\n * Finds the outermost fitting element that matches callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static outerMostCallback(el, callback) {\n let element = el;\n let lastValid = false;\n while (element !== null) {\n if (callback(element)) {\n lastValid = element;\n }\n element = element.parentNode;\n }\n return lastValid;\n }\n\n /**\n * @param {HTMLElement} n\n *\n * @return {boolean}\n */\n static isMarkNode(n) {\n return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n }\n\n /**\n * Determines the correct paths and excludes all `marklib` generated content\n * TODO: To improve performance we could shorten the path if an ID is present in it.\n * @param {HTMLElement|Node} el\n * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n * @returns {string}\n */\n static getPath(el, context) {\n let path = null;\n let node = el;\n\n const filterSiblings = (thisEl) => {\n return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n };\n\n while (node) {\n let name = null;\n // If node is a text-node, save index\n if (Node.TEXT_NODE === node.nodeType) {\n /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n * valid before the dom changes. We store the last known index position inside all wrapper elements\n * We select the outermost\n */\n\n // Extract original index of this node:\n // Outer most data-original-index is original index\n const outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n // if element is not yet wrapped in span, recalculate index based on parent container:\n // We have to do this because text node indexes != element indexes...\n let calculatedIndex = 0;\n if (!outerMostElement) {\n calculatedIndex = Util.calcIndex(node);\n }\n const index = outerMostElement ? parseInt(\n outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n name = SERIALIZE_SEPARATOR + index;\n } else {\n name = node.nodeName;\n }\n\n if (!name) {\n break;\n }\n\n name = name.toLowerCase();\n\n const parent = node.parentNode;\n\n if (Util.isMarkNode(node)) {\n if (parent !== context) {\n node = parent;\n continue;\n } else {\n break;\n }\n }\n\n // Select only siblings that are not part of selection and are of the same type\n // (because we use nth-of-type selector later)\n const siblings = Util.nodeListFilter(parent.children, filterSiblings);\n const nodeIndex = Util.index(node, siblings);\n\n if (siblings.length > 1 && nodeIndex >= 0) {\n name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n }\n\n path = name + (path ? '>' + path : '');\n\n\n if (parent === context) {\n break;\n }\n\n node = parent;\n }\n\n return path.replace(\"#document>\", \"\").replace('>;', ';');\n }\n\n /**\n * Will return the first original offset value that is found\n * @param {Node} element\n *\n * @returns {int}\n */\n static findOriginalOffset(element) {\n if (!element.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n return 0;\n }\n const lengthElement = Util.parent(element, '[' + ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n return lengthElement ? parseInt(lengthElement.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n }\n\n\n /**\n * Deserialize a specific path and finds the right textNodes\n * This even works when DOM has been manipulated before by `marklib`\n * @param {string} path the serialized path (including offsets)\n * @param {Node|HTMLElement} context\n *\n * @return {Node}\n */\n static deserializePath(path, context) {\n const pSplit = path.split(';');\n const p = pSplit[0];\n const objectIndex = parseInt(pSplit[1], 10);\n const charOffset = parseInt(pSplit[2], 10);\n const container = !p.trim() ? context : context.querySelector(p);\n\n let maybeFoundNode = null;\n\n Util.walkTextNodes(container, (n) => {\n let atrOffsetStart = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START);\n atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n let atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart &&\n ((parseInt(atrOffsetStart, 10) + n.length) >= charOffset)) {\n const thisOffset = n.parentNode\n .hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset -\n parseInt(n.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\n maybeFoundNode = {\n node: n,\n offset: thisOffset\n };\n\n return false;\n }\n return true;\n }, null);\n\n return maybeFoundNode;\n }\n\n\n /**\n * Walks the dom tree unless func returns false\n * Applies node to function\n *\n * @param {Node} node\n * @param {Function} func\n * @param {int} type, see `NodeFilter`\n * @param {Object} [filter] skips empty text nodes by default\n *\n * @returns {boolean} true if function did abort walk\n */\n static walkDom(node, func, type = NodeFilter.SHOW_ALL, filter = null) {\n if (!node) {\n return false;\n }\n const args = [node, type, filter || (() => true), false];\n args.push(false);\n const walker = document.createTreeWalker(...args);\n while (walker.nextNode()) {\n if (!func(walker.currentNode)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Extracts all TextNodes inside a container\n * @param {Node} el\n * @param {Function} func\n * @param {Object} [filter] skips empty text nodes by default\n * @returns {boolean} true if function did abort walk\n */\n static walkTextNodes(el, func, filter = (node) => !Util.nodeIsEmpty(node)) {\n return Util.walkDom(el, func, NodeFilter.SHOW_TEXT, filter);\n }\n\n /**\n * @param {Node} container\n * @param {Number} thisIndex\n * @returns {int|string} index of parent or original\n */\n static getIndexParentIfHas(container, thisIndex) {\n const p = container.parentNode;\n const index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n return index > thisIndex ? index : thisIndex;\n }\n\n /**\n * @param container\n * @returns {int} offset start of parent if has, else 0\n */\n static getOffsetParentIfHas(container) {\n const p = container.parentNode;\n const offset = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n return offset > 0 ? offset : 0;\n }\n\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/util/Util.js\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 44\n ** module chunks = 0 1\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./$.cof')\n , TAG = require('./$.wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.classof.js\n ** module id = 45\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 46\n ** module chunks = 0 1\n **/","var ctx = require('./$.ctx')\n , call = require('./$.iter-call')\n , isArrayIter = require('./$.is-array-iter')\n , anObject = require('./$.an-object')\n , toLength = require('./$.to-length')\n , getIterFn = require('./core.get-iterator-method');\nmodule.exports = function(iterable, entries, fn, that){\n var iterFn = getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n call(iterator, f, step.value, entries);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.for-of.js\n ** module id = 47\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 48\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 49\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 50\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 51\n ** module chunks = 0 1\n **/","/**\n * A Render Result\n */\nexport default class RenderResult {\n /**\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {String} startContainerPath\n * @param {String} endContainerPath\n */\n constructor(startOffset, endOffset, startContainerPath, endContainerPath) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.startContainerPath = startContainerPath;\n this.endContainerPath = endContainerPath;\n this._renderingInstance = null;\n }\n\n /**\n * @param {Object} result\n * @return RenderResult\n */\n static fromObject(result) {\n return new RenderResult(\n result.startOffset,\n result.endOffset,\n result.startContainerPath,\n result.endContainerPath\n );\n }\n\n /**\n * @returns {Object}\n */\n serialize() {\n return {\n startOffset: this.startOffset,\n endOffset: this.endOffset,\n startContainerPath: this.startContainerPath,\n endContainerPath: this.endContainerPath\n };\n }\n\n /**\n * @param {String} text\n */\n set text(text) {\n this._text = text;\n }\n\n /**\n * @returns {String}\n */\n get text() {\n return this._text;\n }\n\n /**\n * @returns {null|Rendering}\n */\n get instance() {\n return this._renderingInstance;\n }\n\n /**\n * @param {null|Rendering} instance\n */\n set instance(instance) {\n this._renderingInstance = instance;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderResult.js\n **/","/* global Set */\n\nimport EventEmitter from 'wolfy87-eventemitter';\nimport Rendering from './Rendering';\nimport Util from './util/Util';\n\n/**\n * @type {string}\n */\nexport const EVENT_CLICK = 'click';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSEENTER = 'hover-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSELEAVE = 'hover-leave';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_ENTER = 'tree-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_LEAVE = 'tree-leave';\n\n/**\n * Generic Event Handlings for Renderer\n */\nexport default class RenderingEvents extends EventEmitter {\n\n /**\n * @param {Object} options\n * @param {Document} document\n */\n constructor(options, document) {\n super();\n\n /**\n * Options\n * @type {Object}\n */\n this.options = {\n hoverClass: 'marklib--hover',\n treeClass: 'marklib--tree',\n className: ['marking']\n };\n\n this.options = Object.assign(this.options, options || {});\n\n if (typeof this.options.className === 'string') {\n this.options.className = this.options.className.split(' ');\n }\n\n /**\n * A collection of all nodes that are part of all events\n * @type {Array}\n */\n this.wrapperNodes = [];\n\n /**\n * @type {Document}\n */\n this.document = document;\n }\n\n /**\n * Constructs a new Range from rendered result\n * @returns {Range}\n */\n get range() {\n const range = this.document.createRange();\n const textNodes = [];\n\n this.wrapperNodes.forEach((wrapper) => {\n Util.walkTextNodes(wrapper, (node) => {\n textNodes.push(node);\n });\n });\n\n if (textNodes.length > 0) {\n const lastTextNode = textNodes[textNodes.length - 1];\n range.setStart(textNodes[0], 0);\n range.setEnd(lastTextNode, lastTextNode.length);\n return range;\n }\n\n return null;\n }\n\n static globalEmitter() {\n return RenderingEvents.staticEventListener;\n }\n}\n\nRenderingEvents.staticEventListener = new EventEmitter();\n\n\nif (!global.__MARKLIB_EVENTS__) {\n global.__MARKLIB_EVENTS__ = true;\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.treeClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.treeClass);\n });\n });\n\n (function init() {\n const currentHoverInstances = new Set();\n const betweenInstances = new Set();\n\n function checkMarklibInstance(e) {\n const instance = Rendering.getMarklibInstance(e);\n // instanceof check will fail if used in test scenario where different DOMs are used\n // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n return instance && (instance instanceof Rendering || 'wrapperNodes' in instance);\n }\n\n function closestInstance(e) {\n const closest = Util.closestCallback(\n e.target,\n (thisE) => checkMarklibInstance(thisE)\n );\n if (typeof closest === 'object') {\n return Rendering.getMarklibInstance(closest);\n }\n return false;\n }\n\n function getInstancesBetween(e, instance) {\n return Util.parentsCallback(\n e.target,\n (el) => checkMarklibInstance(el) && Rendering.getMarklibInstance(el) !== instance\n ).map(el => Rendering.getMarklibInstance(el));\n }\n\n function mouseOutClear() {\n currentHoverInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n thisInstance.emit(EVENT_MOUSELEAVE);\n });\n currentHoverInstances.clear();\n\n betweenInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n thisInstance.emit(EVENT_PART_TREE_LEAVE);\n });\n\n betweenInstances.clear();\n }\n\n /**\n * @param {Event} e\n * @returns {Array|boolean}\n */\n function findTarget(e) {\n let instance = closestInstance(e);\n if (instance) {\n const between = getInstancesBetween(e, instance);\n if (e.target.textContent !== instance.result.text && between.length > 0) {\n let allInstances = between;\n allInstances.unshift(instance);\n // take the smallest selection\n allInstances = allInstances.sort(\n (a, b) => a.result.text.length < b.result.text.length ? -1 : 1\n );\n instance = allInstances[0];\n }\n return [instance, between];\n }\n return false;\n }\n\n global.addEventListener('click', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n Rendering.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n instance.emit(EVENT_CLICK, e, between);\n }\n }, true);\n\n global.addEventListener('mouseover', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n\n // find instances that lay in between the node\n mouseOutClear();\n between.forEach((instanceBetween) => {\n betweenInstances.add(instanceBetween);\n instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n });\n instance.emit(EVENT_MOUSEENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n currentHoverInstances.add(instance);\n } else {\n mouseOutClear();\n }\n }, true);\n })();\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderingEvents.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 60\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 61\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 62\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 63\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 64\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 65\n ** module chunks = 0 1\n **/","var redefine = require('./$.redefine');\nmodule.exports = function(target, src){\n for(var key in src)redefine(target, key, src[key]);\n return target;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine-all.js\n ** module id = 66\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = function(it, Constructor, name){\n if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.strict-new.js\n ** module id = 68\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 70\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 71\n ** module chunks = 0 1\n **/","import Rendering from '../Rendering';\nimport Util from '../util/Util';\nimport RenderResult from '../RenderResult';\nimport RenderingEvents from '../RenderingEvents';\n\nexport { Rendering, Util, RenderResult, RenderingEvents };\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/modules/Marklib.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 90\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 91\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 93\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 95\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/set.js\n ** module id = 96\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 97\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 98\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 99\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 100\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 101\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/$.core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 102\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 103\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 104\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 105\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 106\n ** module chunks = 0 1\n **/","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nmodule.exports = require('../modules/$.core').Set;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/set.js\n ** module id = 107\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 108\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 109\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 110\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 111\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , ctx = require('./$.ctx')\n , strictNew = require('./$.strict-new')\n , defined = require('./$.defined')\n , forOf = require('./$.for-of')\n , $iterDefine = require('./$.iter-define')\n , step = require('./$.iter-step')\n , ID = require('./$.uid')('id')\n , $has = require('./$.has')\n , isObject = require('./$.is-object')\n , setSpecies = require('./$.set-species')\n , DESCRIPTORS = require('./$.descriptors')\n , isExtensible = Object.isExtensible || isObject\n , SIZE = DESCRIPTORS ? '_s' : 'size'\n , id = 0;\n\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!$has(it, ID)){\n // can't set id to frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add id\n if(!create)return 'E';\n // add missing object id\n hide(it, ID, ++id);\n // return object id with prefix\n } return 'O' + it[ID];\n};\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n strictNew(that, C, NAME);\n that._i = $.create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-strong.js\n ** module id = 112\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar forOf = require('./$.for-of')\n , classof = require('./$.classof');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n var arr = [];\n forOf(this, false, arr.push, arr);\n return arr;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-to-json.js\n ** module id = 113\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , global = require('./$.global')\n , $export = require('./$.export')\n , fails = require('./$.fails')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , forOf = require('./$.for-of')\n , strictNew = require('./$.strict-new')\n , isObject = require('./$.is-object')\n , setToStringTag = require('./$.set-to-string-tag')\n , DESCRIPTORS = require('./$.descriptors');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n } else {\n C = wrapper(function(target, iterable){\n strictNew(target, C, NAME);\n target._c = new Base;\n if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n });\n $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n if('size' in proto)$.setDesc(C.prototype, 'size', {\n get: function(){\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection.js\n ** module id = 114\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 115\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 116\n ** module chunks = 0 1\n **/","// check on default Array iterator\nvar Iterators = require('./$.iterators')\n , ITERATOR = require('./$.wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array-iter.js\n ** module id = 117\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 118\n ** module chunks = 0 1\n **/","// call something on iterator step with safe closing on error\nvar anObject = require('./$.an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-call.js\n ** module id = 119\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 120\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 121\n ** module chunks = 0 1\n **/","// 19.1.2.1 Object.assign(target, source, ...)\nvar $ = require('./$')\n , toObject = require('./$.to-object')\n , IObject = require('./$.iobject');\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = require('./$.fails')(function(){\n var a = Object.assign\n , A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , $$ = arguments\n , $$len = $$.length\n , index = 1\n , getKeys = $.getKeys\n , getSymbols = $.getSymbols\n , isEnum = $.isEnum;\n while($$len > index){\n var S = IObject($$[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n }\n return T;\n} : Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-assign.js\n ** module id = 122\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 123\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 124\n ** module chunks = 0 1\n **/","'use strict';\nvar core = require('./$.core')\n , $ = require('./$')\n , DESCRIPTORS = require('./$.descriptors')\n , SPECIES = require('./$.wks')('species');\n\nmodule.exports = function(KEY){\n var C = core[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-species.js\n ** module id = 125\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 126\n ** module chunks = 0 1\n **/","// 7.1.15 ToLength\nvar toInteger = require('./$.to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-length.js\n ** module id = 127\n ** module chunks = 0 1\n **/","var anObject = require('./$.an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./$.core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 128\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').isIterable = function(it){\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 129\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 130\n ** module chunks = 0 1\n **/","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./$.export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 131\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 132\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 133\n ** module chunks = 0 1\n **/","'use strict';\nvar strong = require('./$.collection-strong');\n\n// 23.2 Set Objects\nrequire('./$.collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.set.js\n ** module id = 134\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 135\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./$.export');\n\n$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.set.to-json.js\n ** module id = 136\n ** module chunks = 0 1\n **/","/*!\n * EventEmitter v4.2.11 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function () {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var exports = this;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n i = listeners.length;\n\n while (i--) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}.call(this));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/wolfy87-eventemitter/EventEmitter.js\n ** module id = 147\n ** module chunks = 0 1\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///js/marklib.min.js","webpack:///webpack/bootstrap 83535630e4d67ecb22e8?202c","webpack:///./~/core-js/library/modules/$.js?6ce7","webpack:///./~/core-js/library/modules/$.core.js?7680","webpack:///./~/core-js/library/modules/$.wks.js?3e04","webpack:///./~/core-js/library/modules/$.export.js?b734","webpack:///./~/core-js/library/modules/$.iterators.js?9d0a","webpack:///./~/core-js/library/modules/$.an-object.js?2be9","webpack:///./~/core-js/library/modules/$.descriptors.js?8327","webpack:///./~/core-js/library/modules/$.fails.js?6c29","webpack:///./~/core-js/library/modules/$.global.js?4deb","webpack:///./~/core-js/library/modules/$.hide.js?2cce","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/core-js/library/modules/$.ctx.js?e797","webpack:///./~/core-js/library/modules/$.defined.js?7087","webpack:///./~/core-js/library/modules/$.has.js?bcec","webpack:///./~/core-js/library/modules/$.is-object.js?7453","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js?d0fc","webpack:///./~/core-js/library/modules/$.to-iobject.js?daca","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./src/main/Rendering.js?6592","webpack:///./src/main/util/Util.js?5bc4","webpack:///./~/babel-runtime/helpers/typeof.js?f4bd","webpack:///./~/core-js/library/modules/$.classof.js?c1cb","webpack:///./~/core-js/library/modules/$.cof.js?74ee","webpack:///./~/core-js/library/modules/$.for-of.js?bf1d","webpack:///./~/core-js/library/modules/$.iter-define.js?970f","webpack:///./~/core-js/library/modules/$.property-desc.js?e1db","webpack:///./~/core-js/library/modules/$.redefine.js?2643","webpack:///./~/core-js/library/modules/$.uid.js?f177","webpack:///./src/main/RenderResult.js?09ff","webpack:///./src/main/RenderingEvents.js?d122","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js?b265","webpack:///./~/babel-runtime/helpers/inherits.js?0578","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js?aad9","webpack:///./~/core-js/library/modules/$.iobject.js?3ada","webpack:///./~/core-js/library/modules/$.iter-step.js?76ef","webpack:///./~/core-js/library/modules/$.library.js?c05f","webpack:///./~/core-js/library/modules/$.redefine-all.js?0c0d","webpack:///./~/core-js/library/modules/$.shared.js?6ce8","webpack:///./~/core-js/library/modules/$.strict-new.js?979f","webpack:///./~/core-js/library/modules/$.to-integer.js?b29c","webpack:///./~/core-js/library/modules/$.to-object.js?093c","webpack:///./~/core-js/library/modules/core.get-iterator-method.js?9c88","webpack:///./src/main/modules/Marklib.js?dcc3","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/core-js/object/create.js?aa4b","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js?bb00","webpack:///./~/babel-runtime/core-js/set.js?0724","webpack:///./~/babel-runtime/core-js/symbol.js?a70d","webpack:///./~/babel-runtime/core-js/symbol/iterator.js?d16b","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/core-js/library/fn/get-iterator.js?2cf7","webpack:///./~/core-js/library/fn/is-iterable.js?0bd2","webpack:///./~/core-js/library/fn/object/assign.js?80e4","webpack:///./~/core-js/library/fn/object/create.js?738c","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/fn/object/get-prototype-of.js?5193","webpack:///./~/core-js/library/fn/object/set-prototype-of.js?f909","webpack:///./~/core-js/library/fn/set.js?2c6c","webpack:///./~/core-js/library/fn/symbol/index.js?f07a","webpack:///./~/core-js/library/fn/symbol/iterator.js?238d","webpack:///./~/core-js/library/modules/$.a-function.js?860b","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js?af5b","webpack:///./~/core-js/library/modules/$.collection-strong.js?75b1","webpack:///./~/core-js/library/modules/$.collection-to-json.js?9a82","webpack:///./~/core-js/library/modules/$.collection.js?1dbc","webpack:///./~/core-js/library/modules/$.enum-keys.js?1c2a","webpack:///./~/core-js/library/modules/$.get-names.js?e4b8","webpack:///./~/core-js/library/modules/$.is-array-iter.js?787a","webpack:///./~/core-js/library/modules/$.is-array.js?4d69","webpack:///./~/core-js/library/modules/$.iter-call.js?581c","webpack:///./~/core-js/library/modules/$.iter-create.js?4401","webpack:///./~/core-js/library/modules/$.keyof.js?3b7d","webpack:///./~/core-js/library/modules/$.object-assign.js?ed5a","webpack:///./~/core-js/library/modules/$.object-sap.js?f39d","webpack:///./~/core-js/library/modules/$.set-proto.js?759b","webpack:///./~/core-js/library/modules/$.set-species.js?71c4","webpack:///./~/core-js/library/modules/$.string-at.js?a0b4","webpack:///./~/core-js/library/modules/$.to-length.js?9639","webpack:///./~/core-js/library/modules/core.get-iterator.js?aca7","webpack:///./~/core-js/library/modules/core.is-iterable.js?77cc","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/es6.object.assign.js?9007","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js?eaa3","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js?b195","webpack:///./~/core-js/library/modules/es6.set.js?dbba","webpack:///./~/core-js/library/modules/es6.symbol.js?670a","webpack:///./~/core-js/library/modules/es7.set.to-json.js?e75b","webpack:///./~/wolfy87-eventemitter/EventEmitter.js?ed18"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","$Object","Object","create","getProto","getPrototypeOf","isEnum","propertyIsEnumerable","getDesc","getOwnPropertyDescriptor","setDesc","defineProperty","setDescs","defineProperties","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","forEach","core","version","__e","store","uid","Symbol","name","global","ctx","PROTOTYPE","$export","type","source","key","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","target","C","param","Function","isObject","it","TypeError","get","a","exec","e","window","Math","self","__g","$","createDesc","object","value","__esModule","instance","Constructor","_interopRequireDefault","obj","default","_defineProperty","_defineProperty2","props","i","length","descriptor","enumerable","configurable","writable","protoProps","staticProps","prototype","aFunction","fn","that","undefined","b","apply","arguments","hasOwnProperty","def","has","TAG","tag","stat","IObject","defined","$at","String","iterated","_t","_i","point","O","index","done","Iterators","NodeList","HTMLCollection","Array","EVENT_WRAPPED_NODE","ATTR_DATA_ORIGINAL_OFFSET_START","_getPrototypeOf","_getPrototypeOf2","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_RenderResult","_RenderResult2","_RenderingEvents2","_RenderingEvents3","_Util","_Util2","TAG_NAME","DATA_ORIGINAL_TEXT_NODE_INDEX","ATTR_DATA_START_END","ATTR_DATA_IS_HIGHLIGHT_NODE","ATTR_DATA_ID","DOCUMENT_POSITION_CONTAINED_BY","Rendering","_RenderingEvents","document","options","context","_this","guid","startContainer","endContainer","_renderResult","_this2","wrapperNodes","node","setAttribute","omitHighlight","el","createElement","vTrue","className","join","setMarklibInstance","push","getId","DATA_IS_SELECTION","text","_createWrapTemplate","textContent","initialNode","offset","wrapper","_createStartEndWrapTemplate","ATTR_DATA_ORIGINAL_INDEX","getIndexParentIfHas","optionalLength","optionalIndex","optionalIsSameNode","originalIndex","calcIndex","offsetLength","getOffsetParentIfHas","wrap","emit","originalElement","start","nextParent","nextParentNode","parentNode","currentParentNode","wrapSiblings","nextSibling","_this3","next","found","n","getMarklibInstance","hasAttribute","_createWrap","wrapIf","nodeIsEmpty","walkIfContained","Node","TEXT_NODE","nodeType","walkIfNotContained","currentNext","compareDocumentPosition","walkDom","walkTextNodes","textNode","startIndex","endIndex","initialText","nodeValue","initialIndex","textBefore","slice","insertBefore","createTextNode","previousSibling","_createSplitContainer","textAfter","startOffset","endOffset","startContainerIndex","endContainerIndex","fullTextStartValue","startT","partTextStartValue","offsetStart","_createStartOrEndContainer","endT","fullTextEndValue","partTextEndValue","offsetParent","startContainerP","endContainerP","commonAncestor","endOffsetP","outer","parents","contextContainer","originalStartOffset","findOriginalOffset","originalEndOffset","nextElementSibling","toFindNode","previousElementSibling","endContainerContents","closest","childNodes","r","f","lastChild","parseInt","getAttribute","Error","getPath","_renderSelection","_markTextSameNode","result","_markTextDifferentNode","indexOf","splice","walk","startPath","endPath","deserializePath","range","createRange","setStart","setEnd","toString","renderWithRange","renderWithPath","startContainerPath","endContainerPath","_renderWithElements","commonAncestorContainer","marklibInstance","removeEvent","_Rendering","SERIALIZE_SEPARATOR","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","Util","nodes","func","filter","s4","floor","random","substring","match","optionalList","children","elms","thisElms","child","cloneNode","parent","sibling","appendChild","calculatedIndex","foundWrapper","thisIndex","maybeIndexOfOriginal","optionalSelector","parentsCallback","element","callback","foundElements","selector","closestCallback","lastValid","HTMLElement","path","filterSiblings","thisEl","isMarkNode","nodeName","outerMostElement","reverse","toLowerCase","siblings","nodeListFilter","nodeIndex","replace","lengthElement","pSplit","split","objectIndex","charOffset","container","trim","querySelector","maybeFoundNode","atrOffsetStart","atrIndex","thisOffset","_typeof","_Symbol","_Symbol$iterator","constructor","_iterator","_iterator2","_symbol","_symbol2","cof","ARG","T","callee","isArrayIter","anObject","toLength","getIterFn","iterable","entries","step","iterator","iterFn","LIBRARY","redefine","hide","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","values","bitmap","px","concat","RenderResult","_renderingInstance","set","_text","EVENT_PART_TREE_LEAVE","EVENT_PART_TREE_ENTER","EVENT_MOUSELEAVE","EVENT_MOUSEENTER","EVENT_CLICK","_slicedToArray2","_slicedToArray3","_typeof2","_typeof3","_set","_set2","_assign","_assign2","_wolfy87Eventemitter","_wolfy87Eventemitter2","_Rendering2","RenderingEvents","_EventEmitter","hoverClass","treeClass","textNodes","lastTextNode","staticEventListener","__MARKLIB_EVENTS__","globalEmitter","on","classList","add","remove","checkMarklibInstance","closestInstance","thisE","getInstancesBetween","map","mouseOutClear","currentHoverInstances","thisInstance","clear","betweenInstances","findTarget","between","allInstances","unshift","sort","addEventListener","_target","_target2","instanceBetween","_setPrototypeOf","_setPrototypeOf2","_create","_create2","subClass","superClass","__proto__","ReferenceError","src","SHARED","ceil","isNaN","classof","getIteratorMethod","_isIterable2","_isIterable3","_getIterator2","_getIterator3","sliceIterator","arr","_arr","_n","_d","_e","_s","err","isArray","assign","D","desc","setPrototypeOf","Set","redefineAll","strictNew","forOf","$iterDefine","ID","$has","setSpecies","DESCRIPTORS","isExtensible","SIZE","fastKey","getEntry","entry","_f","k","getConstructor","IS_MAP","ADDER","_l","data","delete","prev","callbackfn","v","setStrong","_k","fails","common","IS_WEAK","_c","KEY","IS_ADDER","size","symbols","toIObject","windowNames","getWindowNames","ArrayProto","arg","ret","toObject","A","K","$$","$$len","j","exp","check","test","buggy","SPECIES","toInteger","TO_STRING","pos","s","l","charCodeAt","charAt","min","getIterator","isIterable","addToUnscopables","Arguments","$getPrototypeOf","strong","$fails","shared","wks","keyOf","$names","enumKeys","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","ObjectProto","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","$getOwnPropertySymbols","$stringify","replacer","$replacer","args","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","toJSON","__WEBPACK_AMD_DEFINE_RESULT__","EventEmitter","indexOfListener","listeners","listener","alias","originalGlobalValue","getListeners","evt","response","events","_getEvents","RegExp","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","single","multiple","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","trigger","setOnceReturnValue","_onceReturnValue","noConflict"],"mappings":"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","file":"js/marklib.min.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[\"Marklib\"] = factory();\n\telse\n\t\troot[\"Marklib\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Marklib\"] = factory();\n\telse\n\t\troot[\"Marklib\"] = 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\tmodule.exports = __webpack_require__(88);\n\n\n/***/ },\n/* 1 */,\n/* 2 */\n/***/ function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ },\n/* 3 */,\n/* 4 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 5 */,\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(67)('wks')\n\t , uid = __webpack_require__(51)\n\t , Symbol = __webpack_require__(16).Symbol;\n\tmodule.exports = function(name){\n\t return store[name] || (store[name] =\n\t Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n\t};\n\n/***/ },\n/* 7 */,\n/* 8 */,\n/* 9 */,\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(16)\n\t , core = __webpack_require__(4)\n\t , ctx = __webpack_require__(27)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ },\n/* 11 */,\n/* 12 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(30);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(15)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 16 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2)\n\t , createDesc = __webpack_require__(49);\n\tmodule.exports = __webpack_require__(14) ? function(object, key, value){\n\t return $.setDesc(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(94);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t}();\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(110);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(2).setDesc\n\t , has = __webpack_require__(29)\n\t , TAG = __webpack_require__(6)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(63)\n\t , defined = __webpack_require__(28);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(126)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(48)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(130);\n\tvar Iterators = __webpack_require__(12);\n\tIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n/***/ },\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.EVENT_WRAPPED_NODE = exports.ATTR_DATA_ORIGINAL_OFFSET_START = undefined;\n\t\n\tvar _getPrototypeOf = __webpack_require__(60);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(62);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(61);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _RenderResult = __webpack_require__(57);\n\t\n\tvar _RenderResult2 = _interopRequireDefault(_RenderResult);\n\t\n\tvar _RenderingEvents2 = __webpack_require__(58);\n\t\n\tvar _RenderingEvents3 = _interopRequireDefault(_RenderingEvents2);\n\t\n\tvar _Util = __webpack_require__(43);\n\t\n\tvar _Util2 = _interopRequireDefault(_Util);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar TAG_NAME = 'x-marker';\n\t/**\n\t * @type {string}\n\t */\n\t/* global Node */\n\t\n\tvar ATTR_DATA_ORIGINAL_OFFSET_START = exports.ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n\t/**\n\t * @type {string}\n\t */\n\tvar DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_START_END = 'data-is-start-end';\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_ID = 'data-selection-id';\n\t\n\t/**\n\t * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n\t * @type {number}\n\t */\n\tvar DOCUMENT_POSITION_CONTAINED_BY = 16;\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_WRAPPED_NODE = exports.EVENT_WRAPPED_NODE = 'wrapped-node';\n\t\n\t/**\n\t * Manages a single Render\n\t */\n\t\n\tvar Rendering = function (_RenderingEvents) {\n\t (0, _inherits3.default)(Rendering, _RenderingEvents);\n\t\n\t\n\t /**\n\t * @param {Document} document\n\t * @param {object} options\n\t * @param {Node} context\n\t */\n\t\n\t function Rendering(document, options, context) {\n\t (0, _classCallCheck3.default)(this, Rendering);\n\t\n\t\n\t /**\n\t * ID of rendering, will be set on each element that is part of it\n\t * @type {String}\n\t */\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Rendering).call(this, options, document));\n\t\n\t _this.id = _Util2.default.guid();\n\t\n\t /**\n\t * StartContainer\n\t * @type {Node}\n\t */\n\t _this.startContainer = null;\n\t\n\t /**\n\t * EndContainer\n\t * @type {Node}\n\t */\n\t _this.endContainer = null;\n\t\n\t /**\n\t * @type {Node}\n\t */\n\t _this.context = context || _this.document;\n\t\n\t /**\n\t * Flag if this instance has been rendered\n\t * @type {RenderResult}\n\t * @private\n\t */\n\t _this._renderResult = null;\n\t return _this;\n\t }\n\t\n\t /**\n\t * @returns {string} id of this rendering\n\t */\n\t\n\t\n\t (0, _createClass3.default)(Rendering, [{\n\t key: 'getId',\n\t value: function getId() {\n\t return this.id;\n\t }\n\t\n\t /**\n\t * @param {string} id\n\t * @returns {Rendering}\n\t */\n\t\n\t }, {\n\t key: 'setId',\n\t value: function setId(id) {\n\t var _this2 = this;\n\t\n\t this.id = id;\n\t\n\t if (this._renderResult) {\n\t this.wrapperNodes.forEach(function (node) {\n\t return node.setAttribute(ATTR_DATA_ID, _this2.id);\n\t });\n\t }\n\t\n\t return this;\n\t }\n\t\n\t /**\n\t * Creates a Template used as a wrapper and an indication that this is a highlight node\n\t * @param {Boolean} [omitHighlight]\n\t * @returns {Node}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_createWrapTemplate',\n\t value: function _createWrapTemplate(omitHighlight) {\n\t var el = this.document.createElement(TAG_NAME);\n\t var vTrue = \"true\";\n\t\n\t if (!omitHighlight) {\n\t el.className = this.options.className.join(' ');\n\t // save this marker instance to given node\n\t Rendering.setMarklibInstance(el, this);\n\t // keep track of highlight nodes\n\t this.wrapperNodes.push(el);\n\t el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n\t el.setAttribute(ATTR_DATA_ID, this.getId());\n\t }\n\t el.setAttribute(_Util.DATA_IS_SELECTION, vTrue);\n\t\n\t return el;\n\t }\n\t\n\t /**\n\t * Creates a Template to use as start and end marks\n\t * @param {String} text\n\t * @returns {Node}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_createStartEndWrapTemplate',\n\t value: function _createStartEndWrapTemplate(text) {\n\t var el = this._createWrapTemplate();\n\t el.setAttribute(ATTR_DATA_START_END, 'true');\n\t el.textContent = text;\n\t return el;\n\t }\n\t\n\t /**\n\t * Creates Start or End Container Element\n\t * @param initialNode\n\t * @param text\n\t * @param offset\n\t * @param index\n\t * @returns {Node}\n\t */\n\t\n\t }, {\n\t key: '_createStartOrEndContainer',\n\t value: function _createStartOrEndContainer(initialNode, text, offset, index) {\n\t var wrapper = this._createStartEndWrapTemplate(text);\n\t wrapper.setAttribute(_Util.ATTR_DATA_ORIGINAL_INDEX, _Util2.default.getIndexParentIfHas(initialNode, index));\n\t wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n\t wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\t\n\t return wrapper;\n\t }\n\t\n\t /**\n\t * Wraps given element\n\t * @param {Node|HTMLElement} el\n\t * @param [optionalLength]\n\t * @param [optionalIndex]\n\t * @param [optionalIsSameNode]\n\t * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n\t * @returns {Node}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_createWrap',\n\t value: function _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n\t var originalIndex = optionalIndex >= 0 ? optionalIndex : _Util2.default.calcIndex(el);\n\t var wrapper = this._createWrapTemplate(omitHighlight);\n\t wrapper.setAttribute(_Util.ATTR_DATA_ORIGINAL_INDEX, _Util2.default.getIndexParentIfHas(el, originalIndex));\n\t var offsetLength = optionalLength >= 0 ? optionalLength : _Util2.default.getOffsetParentIfHas(el);\n\t wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\t\n\t // Save a reference to original text node in wrapper\n\t wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\t\n\t if (optionalIsSameNode) {\n\t wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n\t }\n\t var wrap = _Util2.default.wrap(el, wrapper);\n\t\n\t this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\t\n\t return wrap;\n\t }\n\t\n\t /**\n\t * Create split container element\n\t * @param originalElement {Node} original text node element that is created a wrapper for\n\t * @param index\n\t * @param offset\n\t * @returns {Node}\n\t */\n\t\n\t }, {\n\t key: '_createSplitContainer',\n\t value: function _createSplitContainer(originalElement, index, offset) {\n\t var wrapper = this.document.createElement(TAG_NAME);\n\t wrapper.setAttribute(_Util.DATA_IS_SELECTION, 'true');\n\t wrapper.setAttribute(_Util.ATTR_DATA_ORIGINAL_INDEX, _Util2.default.getIndexParentIfHas(originalElement, index));\n\t wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n\t wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\t return wrapper;\n\t }\n\t\n\t /**\n\t * Walks the tree\n\t * @param start\n\t * @param endContainer\n\t * @param nextParent\n\t */\n\t\n\t }, {\n\t key: 'walk',\n\t value: function walk(start, endContainer, nextParent) {\n\t var nextParentNode = start;\n\t while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n\t var currentParentNode = nextParentNode;\n\t nextParentNode = nextParentNode.parentNode;\n\t if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n\t break;\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n\t * If an Element node is found, it will wrap all children of this node inside a element as well.\n\t * It will stop if endContainer is found as a node\n\t *\n\t * @param {Node} start\n\t * @param {Node} endContainer\n\t * @returns {boolean} (true if endContainer was found)\n\t */\n\t\n\t }, {\n\t key: 'wrapSiblings',\n\t value: function wrapSiblings(start, endContainer) {\n\t var _this3 = this;\n\t\n\t var next = start;\n\t var found = false;\n\t\n\t // Capsule some logic\n\t var wrap = function wrap(n) {\n\t var instance = Rendering.getMarklibInstance(n.parentNode);\n\t if (n.parentNode.hasAttribute(ATTR_DATA_START_END) && n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) && instance === _this3) {\n\t _this3._createWrap(n, undefined, undefined, undefined, true);\n\t } else {\n\t _this3._createWrap(n);\n\t }\n\t };\n\t\n\t // helper functions\n\t\n\t var wrapIf = function wrapIf(n) {\n\t if (!_Util2.default.nodeIsEmpty(n)) {\n\t wrap(n);\n\t }\n\t };\n\t\n\t var walkIfContained = function walkIfContained(e) {\n\t if (e === endContainer) {\n\t return false;\n\t }\n\t if (Node.TEXT_NODE === e.nodeType) {\n\t wrapIf(e);\n\t }\n\t return true;\n\t };\n\t\n\t var walkIfNotContained = function walkIfNotContained(el) {\n\t wrapIf(el);\n\t };\n\t\n\t while (next !== null && next !== endContainer) {\n\t var currentNext = next;\n\t next = next.nextSibling;\n\t // Found a text node, directly wrap inside a span\n\t if (Node.TEXT_NODE === currentNext.nodeType) {\n\t wrapIf(currentNext);\n\t } else {\n\t if (currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY) {\n\t _Util2.default.walkDom(currentNext, walkIfContained);\n\t found = true;\n\t } else {\n\t _Util2.default.walkTextNodes(currentNext, walkIfNotContained);\n\t }\n\t if (found) {\n\t return true;\n\t }\n\t }\n\t }\n\t return found;\n\t }\n\t\n\t /**\n\t * Marks text of the same node\n\t * @param {Node} textNode\n\t * @param {int} startIndex\n\t * @param {int} endIndex\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_markTextSameNode',\n\t value: function _markTextSameNode(textNode, startIndex, endIndex) {\n\t var initialText = textNode.nodeValue;\n\t var initialIndex = _Util2.default.calcIndex(textNode);\n\t\n\t if (!initialText) {\n\t return false;\n\t }\n\t // If there is an unmarked part in the beginning of the text node,\n\t // cut off that part and put it into it's own textnode.\n\t if (startIndex > 0) {\n\t var textBefore = initialText.slice(0, startIndex);\n\t textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n\t // wrap cutted text node:\n\t _Util2.default.wrap(textNode.previousSibling, this._createSplitContainer(textNode, initialIndex, _Util2.default.getOffsetParentIfHas(textNode)));\n\t }\n\t // If there is an unmarked part at the end of the text node,\n\t // cut off that part and put it into it's own textnode.\n\t if (endIndex < initialText.length) {\n\t var textAfter = initialText.slice(endIndex, initialText.length);\n\t textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n\t _Util2.default.wrap(textNode.nextSibling, this._createSplitContainer(textNode, initialIndex, _Util2.default.getOffsetParentIfHas(textNode) + endIndex));\n\t }\n\t\n\t // Cutoff the unmarked parts and wrap the textnode into a span.\n\t textNode.nodeValue = initialText.slice(startIndex, endIndex);\n\t this.startContainer = this._createWrap(textNode, _Util2.default.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n\t this.endContainer = this.startContainer;\n\t return this.startContainer;\n\t }\n\t\n\t /**\n\t * Marks text of end and start containers if start and end nodes are different\n\t * Important: There might be no end container!\n\t *\n\t * @param {Node} startContainer\n\t * @param {Node} endContainer\n\t * @param {int} startOffset\n\t * @param {int} endOffset\n\t * @returns {{startT: (Node), endT: (Node)}}\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_markTextDifferentNode',\n\t value: function _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n\t // Get current for both start and end:\n\t var startContainerIndex = _Util2.default.calcIndex(startContainer);\n\t var endContainerIndex = _Util2.default.calcIndex(endContainer);\n\t\n\t // Split text\n\t var fullTextStartValue = startContainer.nodeValue;\n\t // init with startContainer because we may have not a text node here\n\t var startT = startContainer;\n\t\n\t if (undefined !== fullTextStartValue) {\n\t var partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n\t // Set new text to start node\n\t startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\t\n\t var offsetStart = _Util2.default.getOffsetParentIfHas(startContainer);\n\t // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n\t startT = this._createStartOrEndContainer(startContainer, partTextStartValue, offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n\t // Append this node after startContainer\n\t startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n\t this.startContainer = startT;\n\t\n\t if (startContainer.nodeValue) {\n\t // Wrap start container in detection node, offset is always 0 or parent offset.\n\t _Util2.default.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex, _Util2.default.getOffsetParentIfHas(startContainer)));\n\t }\n\t }\n\t\n\t // init with endContainer because we may have not a text node here\n\t var endT = endContainer;\n\t\n\t // 2. Extract end Text node,\n\t var fullTextEndValue = endContainer.nodeValue;\n\t // It's possible that end container value is null (if a whole paragraph is marked)\n\t if (undefined !== fullTextEndValue) {\n\t // Split text\n\t var partTextEndValue = fullTextEndValue.slice(0, endOffset);\n\t endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n\t // End Container start offset is always 0 or parent offset.\n\t endT = this._createStartOrEndContainer(endContainer, partTextEndValue, _Util2.default.getOffsetParentIfHas(endContainer), endContainerIndex);\n\t\n\t endContainer.parentNode.insertBefore(endT, endContainer);\n\t this.endContainer = endT;\n\t var offsetParent = _Util2.default.getOffsetParentIfHas(endContainer);\n\t _Util2.default.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex, offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n\t }\n\t\n\t return {\n\t startT: startT,\n\t endT: endT\n\t };\n\t }\n\t\n\t /**\n\t * Renders a selection\n\t * @param {Node} startContainerP\n\t * @param {Node} endContainerP\n\t * @param {Node} commonAncestor\n\t * @param {int} startOffset\n\t * @param {int} endOffsetP\n\t * @returns RenderResult\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_renderWithElements',\n\t value: function _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n\t if (this._renderResult) {\n\t return this._renderResult;\n\t }\n\t var startContainer = startContainerP;\n\t var endContainer = endContainerP;\n\t var endOffset = endOffsetP;\n\t var outer = _Util2.default.parents(startContainer, commonAncestor);\n\t outer = outer[outer.length - 1];\n\t var contextContainer = outer ? outer : commonAncestor;\n\t\n\t // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n\t // but are different nodes:\n\t\n\t // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n\t // 1: First detect real start offset in startContainer:\n\t\n\t // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n\t // So first select that container:\n\t var originalStartOffset = _Util2.default.findOriginalOffset(startContainer);\n\t var originalEndOffset = _Util2.default.findOriginalOffset(endContainer);\n\t\n\t // We may run into Browser Bugs:\n\t\n\t // If both are not text nodes, use next sibling as endContainer\n\t if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n\t if (startContainer === endContainer) {\n\t endContainer = endContainer.nextElementSibling || endContainer;\n\t }\n\t }\n\t // IF start/end container is not type of text, select first child text node:\n\t // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n\t // Sometimes does not work correctly... (specially when DOM was modified)\n\t if (startContainer.nodeType !== Node.TEXT_NODE) {\n\t _Util2.default.walkDom(startContainer, function (el) {\n\t if (el.nodeType === Node.TEXT_NODE) {\n\t startContainer = el;\n\t return false;\n\t }\n\t return true;\n\t });\n\t }\n\t\n\t if (endContainer.nodeType !== Node.TEXT_NODE) {\n\t var toFindNode = startContainer;\n\t\n\t if (endOffset === 0) {\n\t toFindNode = endContainer.previousElementSibling || startContainer;\n\t }\n\t\n\t // Get the last text node:\n\t var endContainerContents = _Util2.default.closest(toFindNode, ':not([' + _Util.DATA_IS_SELECTION + '])').childNodes;\n\t if (endContainerContents.length) {\n\t var r = endContainerContents[endContainerContents.length - 1];\n\t if (r.nodeType === Node.TEXT_NODE) {\n\t endContainer = r;\n\t endOffset = r.length;\n\t } else {\n\t var f = r.lastChild;\n\t while (f !== null) {\n\t if (f && f.nodeType === Node.TEXT_NODE) {\n\t endContainer = f;\n\t endOffset = f.length;\n\t if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n\t endOffset = parseInt(f.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n\t }\n\t }\n\t f = f.lastChild;\n\t }\n\t }\n\t }\n\t // still no textNode?\n\t if (endContainer.nodeType !== Node.TEXT_NODE) {\n\t throw Error('Could not found endContainer, highlighting would be unstable');\n\t }\n\t }\n\t\n\t this._renderResult = new _RenderResult2.default(\n\t // Real offset is calculated by relative length and absolute length\n\t originalStartOffset + startOffset, originalEndOffset + endOffset,\n\t // get the path for this selection\n\t _Util2.default.getPath(startContainer, this.context), _Util2.default.getPath(endContainer, this.context));\n\t\n\t this._renderResult.instance = this;\n\t\n\t this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\t\n\t return this._renderResult;\n\t }\n\t\n\t /**\n\t * Renders a given selection\n\t *\n\t * @param {Node} startContainer\n\t * @param {Node} endContainer\n\t * @param {int} startOffset\n\t * @param {int} endOffset\n\t * @param {Node} contextContainer\n\t * @param {Boolean} outer\n\t * @private\n\t */\n\t\n\t }, {\n\t key: '_renderSelection',\n\t value: function _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n\t // if start and end-container are the same, mark text on the same node\n\t if (startContainer === endContainer) {\n\t this._markTextSameNode(startContainer, startOffset, endOffset);\n\t } else {\n\t var result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n\t var index = this.wrapperNodes.indexOf(result.endT);\n\t // remove endContainer, to keep order:\n\t this.wrapperNodes.splice(index, 1);\n\t if (!outer) {\n\t this.wrapSiblings(result.startT.nextSibling, endContainer);\n\t } else {\n\t this.walk(result.startT, endContainer, contextContainer);\n\t }\n\t this.wrapperNodes.push(result.endT);\n\t }\n\t }\n\t\n\t /**\n\t * Prepares to render a Selection with path selectors\n\t * ```\n\t * A Path looks like this:\n\t *\n\t * #selector;#textnode;#offset\n\t * ``\n\t * @param {string} startPath\n\t * @param {string} endPath\n\t * @returns {string}\n\t */\n\t\n\t }, {\n\t key: 'renderWithPath',\n\t value: function renderWithPath(startPath, endPath) {\n\t var startContainer = _Util2.default.deserializePath(startPath, this.context);\n\t var endContainer = _Util2.default.deserializePath(endPath, this.context);\n\t if (startContainer && endContainer && startContainer.node && endContainer.node) {\n\t var range = document.createRange();\n\t range.setStart(startContainer.node, startContainer.offset);\n\t range.setEnd(endContainer.node, endContainer.offset);\n\t var text = range.toString();\n\t var result = this.renderWithRange(range);\n\t result.text = text;\n\t return text;\n\t }\n\t throw new Error('Could not find start- and/or end-container in document');\n\t }\n\t\n\t /**\n\t * @returns {RenderResult}\n\t */\n\t\n\t }, {\n\t key: 'renderWithResult',\n\t\n\t\n\t /**\n\t * Renders a result (that returned from `renderWithRange`)\n\t * @param {RenderResult|Object} result\n\t * @returns {string}\n\t */\n\t value: function renderWithResult(result) {\n\t return this.renderWithPath(result.startContainerPath + ';' + result.startOffset, result.endContainerPath + ';' + result.endOffset);\n\t }\n\t\n\t /**\n\t * Prepares a selection with a range object\n\t * @param {Range} range\n\t * @returns {Object}\n\t */\n\t\n\t }, {\n\t key: 'renderWithRange',\n\t value: function renderWithRange(range) {\n\t var text = range.toString();\n\t var result = this._renderWithElements(range.startContainer, range.endContainer, range.commonAncestorContainer, range.startOffset, range.endOffset);\n\t result.text = text;\n\t return result;\n\t }\n\t\n\t /**\n\t * Removes bindings and classNames to nodes\n\t */\n\t\n\t }, {\n\t key: 'destroy',\n\t value: function destroy() {\n\t this.wrapperNodes.forEach(function (node) {\n\t delete node.marklibInstance;\n\t node.className = '';\n\t });\n\t this.removeEvent();\n\t }\n\t\n\t /**\n\t * @param {Node} el\n\t * @param {Rendering} instance\n\t * @returns {Node}\n\t */\n\t\n\t }, {\n\t key: 'result',\n\t get: function get() {\n\t return this._renderResult;\n\t }\n\t }], [{\n\t key: 'setMarklibInstance',\n\t value: function setMarklibInstance(el, instance) {\n\t el.marklibInstance = instance;\n\t return el;\n\t }\n\t\n\t /**\n\t * @param {Node} el\n\t * @returns {Rendering|null|undefined}\n\t */\n\t\n\t }, {\n\t key: 'getMarklibInstance',\n\t value: function getMarklibInstance(el) {\n\t return el ? el.marklibInstance : null;\n\t }\n\t }]);\n\t return Rendering;\n\t}(_RenderingEvents3.default);\n\t\n\texports.default = Rendering;\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.DATA_IS_SELECTION = exports.ATTR_DATA_ORIGINAL_INDEX = undefined;\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _Rendering = __webpack_require__(42);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/* global Node, NodeList, Element */\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar ATTR_DATA_ORIGINAL_INDEX = exports.ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n\t/**\n\t * @type {string}\n\t */\n\tvar DATA_IS_SELECTION = exports.DATA_IS_SELECTION = 'data-is-selection';\n\t/**\n\t * @type {string}\n\t */\n\tvar SERIALIZE_SEPARATOR = \";\";\n\t\n\t// polyfill for matchesSelector, IE 10/11 does not support Element.matches\n\tif (Element && !Element.prototype.matches) {\n\t var p = Element.prototype;\n\t p.matches = p.matchesSelector || p.mozMatchesSelector || p.msMatchesSelector || p.oMatchesSelector || p.webkitMatchesSelector;\n\t}\n\t\n\t/**\n\t * Utility class\n\t * Contains DOM/Node manipulation helpers\n\t */\n\t\n\tvar Util = function () {\n\t function Util() {\n\t (0, _classCallCheck3.default)(this, Util);\n\t }\n\t\n\t (0, _createClass3.default)(Util, null, [{\n\t key: 'nodeListFilter',\n\t\n\t\n\t /**\n\t * Filter for a NodeList\n\t * @param {NodeList} nodes\n\t * @param {Function} func\n\t *\n\t * @returns {Array.}\n\t */\n\t value: function nodeListFilter(nodes, func) {\n\t return Array.prototype.filter.call(nodes || [], func);\n\t }\n\t\n\t /**\n\t * Generates a unique id\n\t *\n\t * @return {String}\n\t */\n\t\n\t }, {\n\t key: 'guid',\n\t value: function guid() {\n\t var s4 = function s4() {\n\t return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\n\t };\n\t return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n\t }\n\t\n\t /**\n\t * Checks if a given node is empty\n\t * @param {HTMLElement} node\n\t *\n\t * @returns {*}\n\t */\n\t\n\t }, {\n\t key: 'nodeIsEmpty',\n\t value: function nodeIsEmpty(node) {\n\t return node.nodeValue.match(/^[\\s]*$/g);\n\t }\n\t\n\t /**\n\t * @param {HTMLElement} node\n\t * @param [optionalList]\n\t *\n\t * @return {int} the index of this node in context to it's siblings\n\t */\n\t\n\t }, {\n\t key: 'index',\n\t value: function index(node, optionalList) {\n\t var children = optionalList || (node.nodeType === Node.TEXT_NODE ? node.parentNode.childNodes : node.parentNode.children);\n\t return Array.prototype.indexOf.call(children || [], node);\n\t }\n\t\n\t /**\n\t * Wraps given `elms` in given `wrapper`\n\t *\n\t * @param {HTMLElement|Array.|Node} elms\n\t * @param {HTMLElement|Node} wrapper\n\t *\n\t * @return {HTMLElement}\n\t */\n\t\n\t }, {\n\t key: 'wrap',\n\t value: function wrap(elms, wrapper) {\n\t var thisElms = elms;\n\t\n\t if (!thisElms) {\n\t return wrapper;\n\t }\n\t // Convert `elms` to an array, if necessary.\n\t if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n\t thisElms = [thisElms];\n\t }\n\t for (var i = thisElms.length - 1; i >= 0; i--) {\n\t var child = i > 0 ? wrapper.cloneNode(true) : wrapper;\n\t var el = thisElms[i];\n\t // Cache the current parent and sibling.\n\t var parent = el.parentNode;\n\t var sibling = el.nextSibling;\n\t\n\t child.appendChild(el);\n\t if (sibling) {\n\t parent.insertBefore(child, sibling);\n\t } else {\n\t parent.appendChild(child);\n\t }\n\t }\n\t return wrapper;\n\t }\n\t\n\t /**\n\t * Will calculate an index depending on an already modified dom by marklib\n\t * @param {HTMLElement|Node} node\n\t *\n\t * @returns {int|boolean}\n\t */\n\t\n\t }, {\n\t key: 'calcIndex',\n\t value: function calcIndex(node) {\n\t var calculatedIndex = 0;\n\t var foundWrapper = false;\n\t var nodes = node.parentNode.childNodes;\n\t var length = nodes.length;\n\t for (var thisIndex = 0; thisIndex < length; thisIndex++) {\n\t var el = nodes[thisIndex];\n\t if (el === node) {\n\t break;\n\t }\n\t // reset index when original index is found\n\t var maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\t\n\t if (maybeIndexOfOriginal) {\n\t calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n\t foundWrapper = true;\n\t }\n\t calculatedIndex++;\n\t }\n\t return foundWrapper ? calculatedIndex : Util.index(node);\n\t }\n\t\n\t /**\n\t * @param {HTMLElement|Node} el\n\t * @param {String} [optionalSelector] will test given element against a selector\n\t * if matches, returns this element immediately\n\t *\n\t * @return {Array.} an array of all found parents of given element (and optional selector)\n\t */\n\t\n\t }, {\n\t key: 'parents',\n\t value: function parents(el, optionalSelector) {\n\t return Util.parentsCallback(el, function (element) {\n\t if (optionalSelector && (element === optionalSelector || typeof optionalSelector === 'string' && element.matches && element.matches(optionalSelector))) {\n\t return true;\n\t } else if (!optionalSelector) {\n\t return true;\n\t }\n\t return false;\n\t });\n\t }\n\t\n\t /**\n\t * @param {HTMLElement|Node} el\n\t * @param {Function} callback\n\t * @return {Array.} an array of all found parents of given element (and optional selector)\n\t */\n\t\n\t }, {\n\t key: 'parentsCallback',\n\t value: function parentsCallback(el, callback) {\n\t var element = el;\n\t var foundElements = [];\n\t while (element.parentNode !== null) {\n\t element = element.parentNode;\n\t if (callback(element)) {\n\t foundElements.push(element);\n\t }\n\t }\n\t return foundElements;\n\t }\n\t\n\t /**\n\t * Finds a parent node (the closest) with a given selector\n\t * @param {Node} el\n\t * @param {String} selector\n\t *\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'parent',\n\t value: function parent(el, selector) {\n\t var element = el;\n\t while (element.parentNode !== null) {\n\t element = element.parentNode;\n\t if (element.matches && element.matches(selector)) {\n\t return element;\n\t }\n\t }\n\t return false;\n\t }\n\t\n\t /**\n\t * Finds the closest element including itself matching a given selector\n\t * @param {Node} el\n\t * @param selector\n\t *\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'closest',\n\t value: function closest(el, selector) {\n\t return Util.closestCallback(el, function (element) {\n\t return element.matches && element.matches(selector);\n\t });\n\t }\n\t\n\t /**\n\t * Finds the closest element including itself matching a callback\n\t * @param {Node} el\n\t * @param {Function} callback\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'closestCallback',\n\t value: function closestCallback(el, callback) {\n\t var element = el;\n\t while (element !== null) {\n\t if (callback(element)) {\n\t return element;\n\t }\n\t element = element.parentNode;\n\t }\n\t return false;\n\t }\n\t\n\t /**\n\t * Finds the outermost fitting element that matches callback\n\t * @param {Node} el\n\t * @param {Function} callback\n\t * @returns {Node|boolean}\n\t */\n\t\n\t }, {\n\t key: 'outerMostCallback',\n\t value: function outerMostCallback(el, callback) {\n\t var element = el;\n\t var lastValid = false;\n\t while (element !== null) {\n\t if (callback(element)) {\n\t lastValid = element;\n\t }\n\t element = element.parentNode;\n\t }\n\t return lastValid;\n\t }\n\t\n\t /**\n\t * @param {HTMLElement} n\n\t *\n\t * @return {boolean}\n\t */\n\t\n\t }, {\n\t key: 'isMarkNode',\n\t value: function isMarkNode(n) {\n\t return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n\t }\n\t\n\t /**\n\t * Determines the correct paths and excludes all `marklib` generated content\n\t * TODO: To improve performance we could shorten the path if an ID is present in it.\n\t * @param {HTMLElement|Node} el\n\t * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n\t * @returns {string}\n\t */\n\t\n\t }, {\n\t key: 'getPath',\n\t value: function getPath(el, context) {\n\t var path = null;\n\t var node = el;\n\t\n\t var filterSiblings = function filterSiblings(thisEl) {\n\t return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n\t };\n\t\n\t while (node) {\n\t var name = null;\n\t // If node is a text-node, save index\n\t if (Node.TEXT_NODE === node.nodeType) {\n\t /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n\t * valid before the dom changes. We store the last known index position inside all wrapper elements\n\t * We select the outermost\n\t */\n\t\n\t // Extract original index of this node:\n\t // Outer most data-original-index is original index\n\t var outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n\t // if element is not yet wrapped in span, recalculate index based on parent container:\n\t // We have to do this because text node indexes != element indexes...\n\t var calculatedIndex = 0;\n\t if (!outerMostElement) {\n\t calculatedIndex = Util.calcIndex(node);\n\t }\n\t var index = outerMostElement ? parseInt(outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n\t name = SERIALIZE_SEPARATOR + index;\n\t } else {\n\t name = node.nodeName;\n\t }\n\t\n\t if (!name) {\n\t break;\n\t }\n\t\n\t name = name.toLowerCase();\n\t\n\t var parent = node.parentNode;\n\t\n\t if (Util.isMarkNode(node)) {\n\t if (parent !== context) {\n\t node = parent;\n\t continue;\n\t } else {\n\t break;\n\t }\n\t }\n\t\n\t // Select only siblings that are not part of selection and are of the same type\n\t // (because we use nth-of-type selector later)\n\t var siblings = Util.nodeListFilter(parent.children, filterSiblings);\n\t var nodeIndex = Util.index(node, siblings);\n\t\n\t if (siblings.length > 1 && nodeIndex >= 0) {\n\t name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n\t }\n\t\n\t path = name + (path ? '>' + path : '');\n\t\n\t if (parent === context) {\n\t break;\n\t }\n\t\n\t node = parent;\n\t }\n\t\n\t return path.replace(\"#document>\", \"\").replace('>;', ';');\n\t }\n\t\n\t /**\n\t * Will return the first original offset value that is found\n\t * @param {Node} element\n\t *\n\t * @returns {int}\n\t */\n\t\n\t }, {\n\t key: 'findOriginalOffset',\n\t value: function findOriginalOffset(element) {\n\t if (!element.parentNode.hasAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START)) {\n\t return 0;\n\t }\n\t var lengthElement = Util.parent(element, '[' + _Rendering.ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n\t return lengthElement ? parseInt(lengthElement.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n\t }\n\t\n\t /**\n\t * Deserialize a specific path and finds the right textNodes\n\t * This even works when DOM has been manipulated before by `marklib`\n\t * @param {string} path the serialized path (including offsets)\n\t * @param {Node|HTMLElement} context\n\t *\n\t * @return {Node}\n\t */\n\t\n\t }, {\n\t key: 'deserializePath',\n\t value: function deserializePath(path, context) {\n\t var pSplit = path.split(';');\n\t var p = pSplit[0];\n\t var objectIndex = parseInt(pSplit[1], 10);\n\t var charOffset = parseInt(pSplit[2], 10);\n\t var container = !p.trim() ? context : context.querySelector(p);\n\t\n\t var maybeFoundNode = null;\n\t\n\t Util.walkDom(container, function (n) {\n\t var atrOffsetStart = n.parentNode.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START);\n\t atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n\t var atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n\t atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n\t if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart && parseInt(atrOffsetStart, 10) + n.length >= charOffset) {\n\t var thisOffset = n.parentNode.hasAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset - parseInt(n.parentNode.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\t\n\t maybeFoundNode = {\n\t node: n,\n\t offset: thisOffset\n\t };\n\t\n\t return false;\n\t }\n\t return true;\n\t });\n\t\n\t return maybeFoundNode;\n\t }\n\t\n\t /**\n\t * Recursively walks the dom tree unless func returns false\n\t * This is a lot more efficient then using any jQuery operations\n\t *\n\t * Applies node to function\n\t * @param {Node} node\n\t * @param {Function} func\n\t *\n\t * @returns {*}\n\t */\n\t\n\t }, {\n\t key: 'walkDom',\n\t value: function walkDom(node, func) {\n\t if (!node) {\n\t return false;\n\t }\n\t var children = node.childNodes;\n\t if (!children) {\n\t return false;\n\t }\n\t for (var i = 0; i < children.length; i++) {\n\t if (!Util.walkDom(children[i], func)) {\n\t return false;\n\t }\n\t }\n\t return func(node);\n\t }\n\t\n\t /**\n\t * Extracts all TextNodes inside a container\n\t * @param {Node} el\n\t * @param {Function} func\n\t * @returns {Array.}\n\t */\n\t\n\t }, {\n\t key: 'walkTextNodes',\n\t value: function walkTextNodes(el, func) {\n\t Util.walkDom(el, function (node) {\n\t if (Node.TEXT_NODE === node.nodeType && !Util.nodeIsEmpty(node)) {\n\t func(node);\n\t }\n\t return true;\n\t });\n\t }\n\t\n\t /**\n\t * @param {Node} container\n\t * @param {Number} thisIndex\n\t * @returns {int|string} index of parent or original\n\t */\n\t\n\t }, {\n\t key: 'getIndexParentIfHas',\n\t value: function getIndexParentIfHas(container, thisIndex) {\n\t var p = container.parentNode;\n\t var index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n\t return index > thisIndex ? index : thisIndex;\n\t }\n\t\n\t /**\n\t * @param container\n\t * @returns {int} offset start of parent if has, else 0\n\t */\n\t\n\t }, {\n\t key: 'getOffsetParentIfHas',\n\t value: function getOffsetParentIfHas(container) {\n\t var p = container.parentNode;\n\t var offset = parseInt(p.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n\t return offset > 0 ? offset : 0;\n\t }\n\t }]);\n\t return Util;\n\t}();\n\n\texports.default = Util;\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\t\n\texports.__esModule = true;\n\t\n\tvar _iterator = __webpack_require__(98);\n\t\n\tvar _iterator2 = _interopRequireDefault(_iterator);\n\t\n\tvar _symbol = __webpack_require__(97);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n\t return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t} : function (obj) {\n\t return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(46)\n\t , TAG = __webpack_require__(6)('toStringTag')\n\t // ES3 wrong here\n\t , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\t\n\tmodule.exports = function(it){\n\t var O, T, B;\n\t return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t // @@toStringTag case\n\t : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n\t // builtinTag case\n\t : ARG ? cof(O)\n\t // ES3 arguments fallback\n\t : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n\t};\n\n/***/ },\n/* 46 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar ctx = __webpack_require__(27)\n\t , call = __webpack_require__(119)\n\t , isArrayIter = __webpack_require__(117)\n\t , anObject = __webpack_require__(13)\n\t , toLength = __webpack_require__(127)\n\t , getIterFn = __webpack_require__(71);\n\tmodule.exports = function(iterable, entries, fn, that){\n\t var iterFn = getIterFn(iterable)\n\t , f = ctx(fn, that, entries ? 2 : 1)\n\t , index = 0\n\t , length, step, iterator;\n\t if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n\t // fast case for arrays with default iterator\n\t if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n\t entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n\t } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n\t call(iterator, f, step.value, entries);\n\t }\n\t};\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(65)\n\t , $export = __webpack_require__(10)\n\t , redefine = __webpack_require__(50)\n\t , hide = __webpack_require__(17)\n\t , has = __webpack_require__(29)\n\t , Iterators = __webpack_require__(12)\n\t , $iterCreate = __webpack_require__(120)\n\t , setToStringTag = __webpack_require__(31)\n\t , getProto = __webpack_require__(2).getProto\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , methods, key;\n\t // Fix native\n\t if($native){\n\t var IteratorPrototype = getProto($default.call(new Base));\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // FF fix\n\t if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: !DEF_VALUES ? $default : getMethod('entries')\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(17);\n\n/***/ },\n/* 51 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * A Render Result\n\t */\n\t\n\tvar RenderResult = function () {\n\t /**\n\t * @param {int} startOffset\n\t * @param {int} endOffset\n\t * @param {String} startContainerPath\n\t * @param {String} endContainerPath\n\t */\n\t\n\t function RenderResult(startOffset, endOffset, startContainerPath, endContainerPath) {\n\t (0, _classCallCheck3.default)(this, RenderResult);\n\t\n\t this.startOffset = startOffset;\n\t this.endOffset = endOffset;\n\t this.startContainerPath = startContainerPath;\n\t this.endContainerPath = endContainerPath;\n\t this._renderingInstance = null;\n\t }\n\t\n\t /**\n\t * @param {Object} result\n\t * @return RenderResult\n\t */\n\t\n\t\n\t (0, _createClass3.default)(RenderResult, [{\n\t key: \"serialize\",\n\t\n\t\n\t /**\n\t * @returns {Object}\n\t */\n\t value: function serialize() {\n\t return {\n\t startOffset: this.startOffset,\n\t endOffset: this.endOffset,\n\t startContainerPath: this.startContainerPath,\n\t endContainerPath: this.endContainerPath\n\t };\n\t }\n\t\n\t /**\n\t * @param {String} text\n\t */\n\t\n\t }, {\n\t key: \"text\",\n\t set: function set(text) {\n\t this._text = text;\n\t }\n\t\n\t /**\n\t * @returns {String}\n\t */\n\t ,\n\t get: function get() {\n\t return this._text;\n\t }\n\t\n\t /**\n\t * @returns {null|Rendering}\n\t */\n\t\n\t }, {\n\t key: \"instance\",\n\t get: function get() {\n\t return this._renderingInstance;\n\t }\n\t\n\t /**\n\t * @param {null|Rendering} instance\n\t */\n\t ,\n\t set: function set(instance) {\n\t this._renderingInstance = instance;\n\t }\n\t }], [{\n\t key: \"fromObject\",\n\t value: function fromObject(result) {\n\t return new RenderResult(result.startOffset, result.endOffset, result.startContainerPath, result.endContainerPath);\n\t }\n\t }]);\n\t return RenderResult;\n\t}();\n\n\texports.default = RenderResult;\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.EVENT_PART_TREE_LEAVE = exports.EVENT_PART_TREE_ENTER = exports.EVENT_MOUSELEAVE = exports.EVENT_MOUSEENTER = exports.EVENT_CLICK = undefined;\n\t\n\tvar _slicedToArray2 = __webpack_require__(99);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _typeof2 = __webpack_require__(44);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tvar _set = __webpack_require__(96);\n\t\n\tvar _set2 = _interopRequireDefault(_set);\n\t\n\tvar _assign = __webpack_require__(92);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\tvar _getPrototypeOf = __webpack_require__(60);\n\t\n\tvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\t\n\tvar _classCallCheck2 = __webpack_require__(25);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(26);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _possibleConstructorReturn2 = __webpack_require__(62);\n\t\n\tvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\t\n\tvar _inherits2 = __webpack_require__(61);\n\t\n\tvar _inherits3 = _interopRequireDefault(_inherits2);\n\t\n\tvar _wolfy87Eventemitter = __webpack_require__(147);\n\t\n\tvar _wolfy87Eventemitter2 = _interopRequireDefault(_wolfy87Eventemitter);\n\t\n\tvar _Rendering = __webpack_require__(42);\n\t\n\tvar _Rendering2 = _interopRequireDefault(_Rendering);\n\t\n\tvar _Util = __webpack_require__(43);\n\t\n\tvar _Util2 = _interopRequireDefault(_Util);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_CLICK = exports.EVENT_CLICK = 'click';\n\t\n\t/**\n\t * @type {string}\n\t */\n\t/* global Set */\n\t\n\tvar EVENT_MOUSEENTER = exports.EVENT_MOUSEENTER = 'hover-enter';\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_MOUSELEAVE = exports.EVENT_MOUSELEAVE = 'hover-leave';\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_PART_TREE_ENTER = exports.EVENT_PART_TREE_ENTER = 'tree-enter';\n\t\n\t/**\n\t * @type {string}\n\t */\n\tvar EVENT_PART_TREE_LEAVE = exports.EVENT_PART_TREE_LEAVE = 'tree-leave';\n\t\n\t/**\n\t * Generic Event Handlings for Renderer\n\t */\n\t\n\tvar RenderingEvents = function (_EventEmitter) {\n\t (0, _inherits3.default)(RenderingEvents, _EventEmitter);\n\t\n\t\n\t /**\n\t * @param {Object} options\n\t * @param {Document} document\n\t */\n\t\n\t function RenderingEvents(options, document) {\n\t (0, _classCallCheck3.default)(this, RenderingEvents);\n\t\n\t\n\t /**\n\t * Options\n\t * @type {Object}\n\t */\n\t\n\t var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(RenderingEvents).call(this));\n\t\n\t _this.options = {\n\t hoverClass: 'marklib--hover',\n\t treeClass: 'marklib--tree',\n\t className: ['marking']\n\t };\n\t\n\t _this.options = (0, _assign2.default)(_this.options, options || {});\n\t\n\t if (typeof _this.options.className === 'string') {\n\t _this.options.className = _this.options.className.split(' ');\n\t }\n\t\n\t /**\n\t * A collection of all nodes that are part of all events\n\t * @type {Array}\n\t */\n\t _this.wrapperNodes = [];\n\t\n\t /**\n\t * @type {Document}\n\t */\n\t _this.document = document;\n\t return _this;\n\t }\n\t\n\t /**\n\t * Constructs a new Range from rendered result\n\t * @returns {Range}\n\t */\n\t\n\t\n\t (0, _createClass3.default)(RenderingEvents, [{\n\t key: 'range',\n\t get: function get() {\n\t var range = this.document.createRange();\n\t var textNodes = [];\n\t\n\t this.wrapperNodes.forEach(function (wrapper) {\n\t _Util2.default.walkTextNodes(wrapper, function (node) {\n\t textNodes.push(node);\n\t });\n\t });\n\t\n\t if (textNodes.length > 0) {\n\t var lastTextNode = textNodes[textNodes.length - 1];\n\t range.setStart(textNodes[0], 0);\n\t range.setEnd(lastTextNode, lastTextNode.length);\n\t return range;\n\t }\n\t\n\t return null;\n\t }\n\t }], [{\n\t key: 'globalEmitter',\n\t value: function globalEmitter() {\n\t return RenderingEvents.staticEventListener;\n\t }\n\t }]);\n\t return RenderingEvents;\n\t}(_wolfy87Eventemitter2.default);\n\t\n\texports.default = RenderingEvents;\n\t\n\t\n\tRenderingEvents.staticEventListener = new _wolfy87Eventemitter2.default();\n\t\n\tif (!global.__MARKLIB_EVENTS__) {\n\t global.__MARKLIB_EVENTS__ = true;\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.add(instance.options.hoverClass);\n\t });\n\t });\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.remove(instance.options.hoverClass);\n\t });\n\t });\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.add(instance.options.treeClass);\n\t });\n\t });\n\t\n\t RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, function (instance) {\n\t instance.wrapperNodes.forEach(function (node) {\n\t node.classList.remove(instance.options.treeClass);\n\t });\n\t });\n\t\n\t (function init() {\n\t var currentHoverInstances = new _set2.default();\n\t var betweenInstances = new _set2.default();\n\t\n\t function checkMarklibInstance(e) {\n\t var instance = _Rendering2.default.getMarklibInstance(e);\n\t // instanceof check will fail if used in test scenario where different DOMs are used\n\t // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n\t return instance && (instance instanceof _Rendering2.default || 'wrapperNodes' in instance);\n\t }\n\t\n\t function closestInstance(e) {\n\t var closest = _Util2.default.closestCallback(e.target, function (thisE) {\n\t return checkMarklibInstance(thisE);\n\t });\n\t if ((typeof closest === 'undefined' ? 'undefined' : (0, _typeof3.default)(closest)) === 'object') {\n\t return _Rendering2.default.getMarklibInstance(closest);\n\t }\n\t return false;\n\t }\n\t\n\t function getInstancesBetween(e, instance) {\n\t return _Util2.default.parentsCallback(e.target, function (el) {\n\t return checkMarklibInstance(el) && _Rendering2.default.getMarklibInstance(el) !== instance;\n\t }).map(function (el) {\n\t return _Rendering2.default.getMarklibInstance(el);\n\t });\n\t }\n\t\n\t function mouseOutClear() {\n\t currentHoverInstances.forEach(function (thisInstance) {\n\t _Rendering2.default.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n\t thisInstance.emit(EVENT_MOUSELEAVE);\n\t });\n\t currentHoverInstances.clear();\n\t\n\t betweenInstances.forEach(function (thisInstance) {\n\t _Rendering2.default.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n\t thisInstance.emit(EVENT_PART_TREE_LEAVE);\n\t });\n\t\n\t betweenInstances.clear();\n\t }\n\t\n\t /**\n\t * @param {Event} e\n\t * @returns {Array|boolean}\n\t */\n\t function findTarget(e) {\n\t var instance = closestInstance(e);\n\t if (instance) {\n\t var between = getInstancesBetween(e, instance);\n\t if (e.target.textContent !== instance.result.text && between.length > 0) {\n\t var allInstances = between;\n\t allInstances.unshift(instance);\n\t // take the smallest selection\n\t allInstances = allInstances.sort(function (a, b) {\n\t return a.result.text.length < b.result.text.length ? -1 : 1;\n\t });\n\t instance = allInstances[0];\n\t }\n\t return [instance, between];\n\t }\n\t return false;\n\t }\n\t\n\t global.addEventListener('click', function (e) {\n\t var target = findTarget(e);\n\t if (target) {\n\t var _target = (0, _slicedToArray3.default)(target, 2);\n\t\n\t var instance = _target[0];\n\t var between = _target[1];\n\t\n\t _Rendering2.default.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n\t instance.emit(EVENT_CLICK, e, between);\n\t }\n\t }, true);\n\t\n\t global.addEventListener('mouseover', function (e) {\n\t var target = findTarget(e);\n\t if (target) {\n\t (function () {\n\t var _target2 = (0, _slicedToArray3.default)(target, 2);\n\t\n\t var instance = _target2[0];\n\t var between = _target2[1];\n\t\n\t // find instances that lay in between the node\n\t\n\t mouseOutClear();\n\t between.forEach(function (instanceBetween) {\n\t betweenInstances.add(instanceBetween);\n\t instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n\t _Rendering2.default.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n\t });\n\t instance.emit(EVENT_MOUSEENTER, e, between);\n\t _Rendering2.default.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n\t currentHoverInstances.add(instance);\n\t })();\n\t } else {\n\t mouseOutClear();\n\t }\n\t }, true);\n\t })();\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 59 */,\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(105), __esModule: true };\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _setPrototypeOf = __webpack_require__(95);\n\t\n\tvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\t\n\tvar _create = __webpack_require__(93);\n\t\n\tvar _create2 = _interopRequireDefault(_create);\n\t\n\tvar _typeof2 = __webpack_require__(44);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (subClass, superClass) {\n\t if (typeof superClass !== \"function\" && superClass !== null) {\n\t throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n\t }\n\t\n\t subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n\t constructor: {\n\t value: subClass,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n\t};\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof2 = __webpack_require__(44);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (self, call) {\n\t if (!self) {\n\t throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t }\n\t\n\t return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(46);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 64 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 65 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar redefine = __webpack_require__(50);\n\tmodule.exports = function(target, src){\n\t for(var key in src)redefine(target, key, src[key]);\n\t return target;\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(16)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 68 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it, Constructor, name){\n\t if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n\t return it;\n\t};\n\n/***/ },\n/* 69 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(28);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(45)\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , Iterators = __webpack_require__(12);\n\tmodule.exports = __webpack_require__(4).getIteratorMethod = function(it){\n\t if(it != undefined)return it[ITERATOR]\n\t || it['@@iterator']\n\t || Iterators[classof(it)];\n\t};\n\n/***/ },\n/* 72 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RenderingEvents = exports.RenderResult = exports.Util = exports.Rendering = undefined;\n\t\n\tvar _Rendering = __webpack_require__(42);\n\t\n\tvar _Rendering2 = _interopRequireDefault(_Rendering);\n\t\n\tvar _Util = __webpack_require__(43);\n\t\n\tvar _Util2 = _interopRequireDefault(_Util);\n\t\n\tvar _RenderResult = __webpack_require__(57);\n\t\n\tvar _RenderResult2 = _interopRequireDefault(_RenderResult);\n\t\n\tvar _RenderingEvents = __webpack_require__(58);\n\t\n\tvar _RenderingEvents2 = _interopRequireDefault(_RenderingEvents);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.Rendering = _Rendering2.default;\n\texports.Util = _Util2.default;\n\texports.RenderResult = _RenderResult2.default;\n\texports.RenderingEvents = _RenderingEvents2.default;\n\n/***/ },\n/* 89 */,\n/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(100), __esModule: true };\n\n/***/ },\n/* 91 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(101), __esModule: true };\n\n/***/ },\n/* 92 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(102), __esModule: true };\n\n/***/ },\n/* 93 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(103), __esModule: true };\n\n/***/ },\n/* 94 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(104), __esModule: true };\n\n/***/ },\n/* 95 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(106), __esModule: true };\n\n/***/ },\n/* 96 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(107), __esModule: true };\n\n/***/ },\n/* 97 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(108), __esModule: true };\n\n/***/ },\n/* 98 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(109), __esModule: true };\n\n/***/ },\n/* 99 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(91);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(90);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function sliceIterator(arr, i) {\n\t var _arr = [];\n\t var _n = true;\n\t var _d = false;\n\t var _e = undefined;\n\t\n\t try {\n\t for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t _arr.push(_s.value);\n\t\n\t if (i && _arr.length === i) break;\n\t }\n\t } catch (err) {\n\t _d = true;\n\t _e = err;\n\t } finally {\n\t try {\n\t if (!_n && _i[\"return\"]) _i[\"return\"]();\n\t } finally {\n\t if (_d) throw _e;\n\t }\n\t }\n\t\n\t return _arr;\n\t }\n\t\n\t return function (arr, i) {\n\t if (Array.isArray(arr)) {\n\t return arr;\n\t } else if ((0, _isIterable3.default)(Object(arr))) {\n\t return sliceIterator(arr, i);\n\t } else {\n\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t }\n\t };\n\t}();\n\n/***/ },\n/* 100 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(34);\n\t__webpack_require__(33);\n\tmodule.exports = __webpack_require__(128);\n\n/***/ },\n/* 101 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(34);\n\t__webpack_require__(33);\n\tmodule.exports = __webpack_require__(129);\n\n/***/ },\n/* 102 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(131);\n\tmodule.exports = __webpack_require__(4).Object.assign;\n\n/***/ },\n/* 103 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ },\n/* 104 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ },\n/* 105 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(132);\n\tmodule.exports = __webpack_require__(4).Object.getPrototypeOf;\n\n/***/ },\n/* 106 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(133);\n\tmodule.exports = __webpack_require__(4).Object.setPrototypeOf;\n\n/***/ },\n/* 107 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(72);\n\t__webpack_require__(33);\n\t__webpack_require__(34);\n\t__webpack_require__(134);\n\t__webpack_require__(136);\n\tmodule.exports = __webpack_require__(4).Set;\n\n/***/ },\n/* 108 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(135);\n\t__webpack_require__(72);\n\tmodule.exports = __webpack_require__(4).Symbol;\n\n/***/ },\n/* 109 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(33);\n\t__webpack_require__(34);\n\tmodule.exports = __webpack_require__(6)('iterator');\n\n/***/ },\n/* 110 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 111 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 112 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(2)\n\t , hide = __webpack_require__(17)\n\t , redefineAll = __webpack_require__(66)\n\t , ctx = __webpack_require__(27)\n\t , strictNew = __webpack_require__(68)\n\t , defined = __webpack_require__(28)\n\t , forOf = __webpack_require__(47)\n\t , $iterDefine = __webpack_require__(48)\n\t , step = __webpack_require__(64)\n\t , ID = __webpack_require__(51)('id')\n\t , $has = __webpack_require__(29)\n\t , isObject = __webpack_require__(30)\n\t , setSpecies = __webpack_require__(125)\n\t , DESCRIPTORS = __webpack_require__(14)\n\t , isExtensible = Object.isExtensible || isObject\n\t , SIZE = DESCRIPTORS ? '_s' : 'size'\n\t , id = 0;\n\t\n\tvar fastKey = function(it, create){\n\t // return primitive with prefix\n\t if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\t if(!$has(it, ID)){\n\t // can't set id to frozen object\n\t if(!isExtensible(it))return 'F';\n\t // not necessary to add id\n\t if(!create)return 'E';\n\t // add missing object id\n\t hide(it, ID, ++id);\n\t // return object id with prefix\n\t } return 'O' + it[ID];\n\t};\n\t\n\tvar getEntry = function(that, key){\n\t // fast case\n\t var index = fastKey(key), entry;\n\t if(index !== 'F')return that._i[index];\n\t // frozen object case\n\t for(entry = that._f; entry; entry = entry.n){\n\t if(entry.k == key)return entry;\n\t }\n\t};\n\t\n\tmodule.exports = {\n\t getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n\t var C = wrapper(function(that, iterable){\n\t strictNew(that, C, NAME);\n\t that._i = $.create(null); // index\n\t that._f = undefined; // first entry\n\t that._l = undefined; // last entry\n\t that[SIZE] = 0; // size\n\t if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n\t });\n\t redefineAll(C.prototype, {\n\t // 23.1.3.1 Map.prototype.clear()\n\t // 23.2.3.2 Set.prototype.clear()\n\t clear: function clear(){\n\t for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n\t entry.r = true;\n\t if(entry.p)entry.p = entry.p.n = undefined;\n\t delete data[entry.i];\n\t }\n\t that._f = that._l = undefined;\n\t that[SIZE] = 0;\n\t },\n\t // 23.1.3.3 Map.prototype.delete(key)\n\t // 23.2.3.4 Set.prototype.delete(value)\n\t 'delete': function(key){\n\t var that = this\n\t , entry = getEntry(that, key);\n\t if(entry){\n\t var next = entry.n\n\t , prev = entry.p;\n\t delete that._i[entry.i];\n\t entry.r = true;\n\t if(prev)prev.n = next;\n\t if(next)next.p = prev;\n\t if(that._f == entry)that._f = next;\n\t if(that._l == entry)that._l = prev;\n\t that[SIZE]--;\n\t } return !!entry;\n\t },\n\t // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n\t // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n\t forEach: function forEach(callbackfn /*, that = undefined */){\n\t var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n\t , entry;\n\t while(entry = entry ? entry.n : this._f){\n\t f(entry.v, entry.k, this);\n\t // revert to the last existing entry\n\t while(entry && entry.r)entry = entry.p;\n\t }\n\t },\n\t // 23.1.3.7 Map.prototype.has(key)\n\t // 23.2.3.7 Set.prototype.has(value)\n\t has: function has(key){\n\t return !!getEntry(this, key);\n\t }\n\t });\n\t if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n\t get: function(){\n\t return defined(this[SIZE]);\n\t }\n\t });\n\t return C;\n\t },\n\t def: function(that, key, value){\n\t var entry = getEntry(that, key)\n\t , prev, index;\n\t // change existing entry\n\t if(entry){\n\t entry.v = value;\n\t // create new entry\n\t } else {\n\t that._l = entry = {\n\t i: index = fastKey(key, true), // <- index\n\t k: key, // <- key\n\t v: value, // <- value\n\t p: prev = that._l, // <- previous entry\n\t n: undefined, // <- next entry\n\t r: false // <- removed\n\t };\n\t if(!that._f)that._f = entry;\n\t if(prev)prev.n = entry;\n\t that[SIZE]++;\n\t // add to index\n\t if(index !== 'F')that._i[index] = entry;\n\t } return that;\n\t },\n\t getEntry: getEntry,\n\t setStrong: function(C, NAME, IS_MAP){\n\t // add .keys, .values, .entries, [@@iterator]\n\t // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n\t $iterDefine(C, NAME, function(iterated, kind){\n\t this._t = iterated; // target\n\t this._k = kind; // kind\n\t this._l = undefined; // previous\n\t }, function(){\n\t var that = this\n\t , kind = that._k\n\t , entry = that._l;\n\t // revert to the last existing entry\n\t while(entry && entry.r)entry = entry.p;\n\t // get next entry\n\t if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n\t // or finish the iteration\n\t that._t = undefined;\n\t return step(1);\n\t }\n\t // return step by kind\n\t if(kind == 'keys' )return step(0, entry.k);\n\t if(kind == 'values')return step(0, entry.v);\n\t return step(0, [entry.k, entry.v]);\n\t }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\t\n\t // add [@@species], 23.1.2.2, 23.2.2.2\n\t setSpecies(NAME);\n\t }\n\t};\n\n/***/ },\n/* 113 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/DavidBruant/Map-Set.prototype.toJSON\n\tvar forOf = __webpack_require__(47)\n\t , classof = __webpack_require__(45);\n\tmodule.exports = function(NAME){\n\t return function toJSON(){\n\t if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n\t var arr = [];\n\t forOf(this, false, arr.push, arr);\n\t return arr;\n\t };\n\t};\n\n/***/ },\n/* 114 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(2)\n\t , global = __webpack_require__(16)\n\t , $export = __webpack_require__(10)\n\t , fails = __webpack_require__(15)\n\t , hide = __webpack_require__(17)\n\t , redefineAll = __webpack_require__(66)\n\t , forOf = __webpack_require__(47)\n\t , strictNew = __webpack_require__(68)\n\t , isObject = __webpack_require__(30)\n\t , setToStringTag = __webpack_require__(31)\n\t , DESCRIPTORS = __webpack_require__(14);\n\t\n\tmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n\t var Base = global[NAME]\n\t , C = Base\n\t , ADDER = IS_MAP ? 'set' : 'add'\n\t , proto = C && C.prototype\n\t , O = {};\n\t if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n\t new C().entries().next();\n\t }))){\n\t // create collection constructor\n\t C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n\t redefineAll(C.prototype, methods);\n\t } else {\n\t C = wrapper(function(target, iterable){\n\t strictNew(target, C, NAME);\n\t target._c = new Base;\n\t if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n\t });\n\t $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n\t var IS_ADDER = KEY == 'add' || KEY == 'set';\n\t if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n\t if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n\t var result = this._c[KEY](a === 0 ? 0 : a, b);\n\t return IS_ADDER ? this : result;\n\t });\n\t });\n\t if('size' in proto)$.setDesc(C.prototype, 'size', {\n\t get: function(){\n\t return this._c.size;\n\t }\n\t });\n\t }\n\t\n\t setToStringTag(C, NAME);\n\t\n\t O[NAME] = C;\n\t $export($export.G + $export.W + $export.F, O);\n\t\n\t if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\t\n\t return C;\n\t};\n\n/***/ },\n/* 115 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(2);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ },\n/* 116 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(32)\n\t , getNames = __webpack_require__(2).getNames\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ },\n/* 117 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// check on default Array iterator\n\tvar Iterators = __webpack_require__(12)\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , ArrayProto = Array.prototype;\n\t\n\tmodule.exports = function(it){\n\t return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n\t};\n\n/***/ },\n/* 118 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(46);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 119 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// call something on iterator step with safe closing on error\n\tvar anObject = __webpack_require__(13);\n\tmodule.exports = function(iterator, fn, value, entries){\n\t try {\n\t return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n\t // 7.4.6 IteratorClose(iterator, completion)\n\t } catch(e){\n\t var ret = iterator['return'];\n\t if(ret !== undefined)anObject(ret.call(iterator));\n\t throw e;\n\t }\n\t};\n\n/***/ },\n/* 120 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(2)\n\t , descriptor = __webpack_require__(49)\n\t , setToStringTag = __webpack_require__(31)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(17)(IteratorPrototype, __webpack_require__(6)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 121 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(2)\n\t , toIObject = __webpack_require__(32);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 122 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.1 Object.assign(target, source, ...)\n\tvar $ = __webpack_require__(2)\n\t , toObject = __webpack_require__(70)\n\t , IObject = __webpack_require__(63);\n\t\n\t// should work with symbols and should have deterministic property order (V8 bug)\n\tmodule.exports = __webpack_require__(15)(function(){\n\t var a = Object.assign\n\t , A = {}\n\t , B = {}\n\t , S = Symbol()\n\t , K = 'abcdefghijklmnopqrst';\n\t A[S] = 7;\n\t K.split('').forEach(function(k){ B[k] = k; });\n\t return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n\t}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n\t var T = toObject(target)\n\t , $$ = arguments\n\t , $$len = $$.length\n\t , index = 1\n\t , getKeys = $.getKeys\n\t , getSymbols = $.getSymbols\n\t , isEnum = $.isEnum;\n\t while($$len > index){\n\t var S = IObject($$[index++])\n\t , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n\t , length = keys.length\n\t , j = 0\n\t , key;\n\t while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n\t }\n\t return T;\n\t} : Object.assign;\n\n/***/ },\n/* 123 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(10)\n\t , core = __webpack_require__(4)\n\t , fails = __webpack_require__(15);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 124 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar getDesc = __webpack_require__(2).getDesc\n\t , isObject = __webpack_require__(30)\n\t , anObject = __webpack_require__(13);\n\tvar check = function(O, proto){\n\t anObject(O);\n\t if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n\t};\n\tmodule.exports = {\n\t set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n\t function(test, buggy, set){\n\t try {\n\t set = __webpack_require__(27)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n\t set(test, []);\n\t buggy = !(test instanceof Array);\n\t } catch(e){ buggy = true; }\n\t return function setPrototypeOf(O, proto){\n\t check(O, proto);\n\t if(buggy)O.__proto__ = proto;\n\t else set(O, proto);\n\t return O;\n\t };\n\t }({}, false) : undefined),\n\t check: check\n\t};\n\n/***/ },\n/* 125 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar core = __webpack_require__(4)\n\t , $ = __webpack_require__(2)\n\t , DESCRIPTORS = __webpack_require__(14)\n\t , SPECIES = __webpack_require__(6)('species');\n\t\n\tmodule.exports = function(KEY){\n\t var C = core[KEY];\n\t if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n\t configurable: true,\n\t get: function(){ return this; }\n\t });\n\t};\n\n/***/ },\n/* 126 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(69)\n\t , defined = __webpack_require__(28);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 127 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(69)\n\t , min = Math.min;\n\tmodule.exports = function(it){\n\t return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 128 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(13)\n\t , get = __webpack_require__(71);\n\tmodule.exports = __webpack_require__(4).getIterator = function(it){\n\t var iterFn = get(it);\n\t if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n\t return anObject(iterFn.call(it));\n\t};\n\n/***/ },\n/* 129 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(45)\n\t , ITERATOR = __webpack_require__(6)('iterator')\n\t , Iterators = __webpack_require__(12);\n\tmodule.exports = __webpack_require__(4).isIterable = function(it){\n\t var O = Object(it);\n\t return O[ITERATOR] !== undefined\n\t || '@@iterator' in O\n\t || Iterators.hasOwnProperty(classof(O));\n\t};\n\n/***/ },\n/* 130 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(111)\n\t , step = __webpack_require__(64)\n\t , Iterators = __webpack_require__(12)\n\t , toIObject = __webpack_require__(32);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(48)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 131 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.1 Object.assign(target, source)\n\tvar $export = __webpack_require__(10);\n\t\n\t$export($export.S + $export.F, 'Object', {assign: __webpack_require__(122)});\n\n/***/ },\n/* 132 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(70);\n\t\n\t__webpack_require__(123)('getPrototypeOf', function($getPrototypeOf){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 133 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(10);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(124).set});\n\n/***/ },\n/* 134 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strong = __webpack_require__(112);\n\t\n\t// 23.2 Set Objects\n\t__webpack_require__(114)('Set', function(get){\n\t return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n\t}, {\n\t // 23.2.3.1 Set.prototype.add(value)\n\t add: function add(value){\n\t return strong.def(this, value = value === 0 ? 0 : value, value);\n\t }\n\t}, strong);\n\n/***/ },\n/* 135 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(2)\n\t , global = __webpack_require__(16)\n\t , has = __webpack_require__(29)\n\t , DESCRIPTORS = __webpack_require__(14)\n\t , $export = __webpack_require__(10)\n\t , redefine = __webpack_require__(50)\n\t , $fails = __webpack_require__(15)\n\t , shared = __webpack_require__(67)\n\t , setToStringTag = __webpack_require__(31)\n\t , uid = __webpack_require__(51)\n\t , wks = __webpack_require__(6)\n\t , keyOf = __webpack_require__(121)\n\t , $names = __webpack_require__(116)\n\t , enumKeys = __webpack_require__(115)\n\t , isArray = __webpack_require__(118)\n\t , anObject = __webpack_require__(13)\n\t , toIObject = __webpack_require__(32)\n\t , createDesc = __webpack_require__(49)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\t\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\t\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(65)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\t\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\t\n\tsetter = true;\n\t\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\t\n\t$export($export.S, 'Symbol', symbolStatics);\n\t\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\t\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 136 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/DavidBruant/Map-Set.prototype.toJSON\n\tvar $export = __webpack_require__(10);\n\t\n\t$export($export.P, 'Set', {toJSON: __webpack_require__(113)('Set')});\n\n/***/ },\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * EventEmitter v4.2.11 - git.io/ee\n\t * Unlicense - http://unlicense.org/\n\t * Oliver Caldwell - http://oli.me.uk/\n\t * @preserve\n\t */\n\t\n\t;(function () {\n\t 'use strict';\n\t\n\t /**\n\t * Class for managing events.\n\t * Can be extended to provide event functionality in other classes.\n\t *\n\t * @class EventEmitter Manages event registering and emitting.\n\t */\n\t function EventEmitter() {}\n\t\n\t // Shortcuts to improve speed and size\n\t var proto = EventEmitter.prototype;\n\t var exports = this;\n\t var originalGlobalValue = exports.EventEmitter;\n\t\n\t /**\n\t * Finds the index of the listener for the event in its storage array.\n\t *\n\t * @param {Function[]} listeners Array of listeners to search through.\n\t * @param {Function} listener Method to look for.\n\t * @return {Number} Index of the specified listener, -1 if not found\n\t * @api private\n\t */\n\t function indexOfListener(listeners, listener) {\n\t var i = listeners.length;\n\t while (i--) {\n\t if (listeners[i].listener === listener) {\n\t return i;\n\t }\n\t }\n\t\n\t return -1;\n\t }\n\t\n\t /**\n\t * Alias a method while keeping the context correct, to allow for overwriting of target method.\n\t *\n\t * @param {String} name The name of the target method.\n\t * @return {Function} The aliased method\n\t * @api private\n\t */\n\t function alias(name) {\n\t return function aliasClosure() {\n\t return this[name].apply(this, arguments);\n\t };\n\t }\n\t\n\t /**\n\t * Returns the listener array for the specified event.\n\t * Will initialise the event object and listener arrays if required.\n\t * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n\t * Each property in the object response is an array of listener functions.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Function[]|Object} All listener functions for the event.\n\t */\n\t proto.getListeners = function getListeners(evt) {\n\t var events = this._getEvents();\n\t var response;\n\t var key;\n\t\n\t // Return a concatenated array of all matching events if\n\t // the selector is a regular expression.\n\t if (evt instanceof RegExp) {\n\t response = {};\n\t for (key in events) {\n\t if (events.hasOwnProperty(key) && evt.test(key)) {\n\t response[key] = events[key];\n\t }\n\t }\n\t }\n\t else {\n\t response = events[evt] || (events[evt] = []);\n\t }\n\t\n\t return response;\n\t };\n\t\n\t /**\n\t * Takes a list of listener objects and flattens it into a list of listener functions.\n\t *\n\t * @param {Object[]} listeners Raw listener objects.\n\t * @return {Function[]} Just the listener functions.\n\t */\n\t proto.flattenListeners = function flattenListeners(listeners) {\n\t var flatListeners = [];\n\t var i;\n\t\n\t for (i = 0; i < listeners.length; i += 1) {\n\t flatListeners.push(listeners[i].listener);\n\t }\n\t\n\t return flatListeners;\n\t };\n\t\n\t /**\n\t * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Object} All listener functions for an event in an object.\n\t */\n\t proto.getListenersAsObject = function getListenersAsObject(evt) {\n\t var listeners = this.getListeners(evt);\n\t var response;\n\t\n\t if (listeners instanceof Array) {\n\t response = {};\n\t response[evt] = listeners;\n\t }\n\t\n\t return response || listeners;\n\t };\n\t\n\t /**\n\t * Adds a listener function to the specified event.\n\t * The listener will not be added if it is a duplicate.\n\t * If the listener returns true then it will be removed after it is called.\n\t * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.addListener = function addListener(evt, listener) {\n\t var listeners = this.getListenersAsObject(evt);\n\t var listenerIsWrapped = typeof listener === 'object';\n\t var key;\n\t\n\t for (key in listeners) {\n\t if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n\t listeners[key].push(listenerIsWrapped ? listener : {\n\t listener: listener,\n\t once: false\n\t });\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of addListener\n\t */\n\t proto.on = alias('addListener');\n\t\n\t /**\n\t * Semi-alias of addListener. It will add a listener that will be\n\t * automatically removed after its first execution.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.addOnceListener = function addOnceListener(evt, listener) {\n\t return this.addListener(evt, {\n\t listener: listener,\n\t once: true\n\t });\n\t };\n\t\n\t /**\n\t * Alias of addOnceListener.\n\t */\n\t proto.once = alias('addOnceListener');\n\t\n\t /**\n\t * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n\t * You need to tell it what event names should be matched by a regex.\n\t *\n\t * @param {String} evt Name of the event to create.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.defineEvent = function defineEvent(evt) {\n\t this.getListeners(evt);\n\t return this;\n\t };\n\t\n\t /**\n\t * Uses defineEvent to define multiple events.\n\t *\n\t * @param {String[]} evts An array of event names to define.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.defineEvents = function defineEvents(evts) {\n\t for (var i = 0; i < evts.length; i += 1) {\n\t this.defineEvent(evts[i]);\n\t }\n\t return this;\n\t };\n\t\n\t /**\n\t * Removes a listener function from the specified event.\n\t * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to remove the listener from.\n\t * @param {Function} listener Method to remove from the event.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.removeListener = function removeListener(evt, listener) {\n\t var listeners = this.getListenersAsObject(evt);\n\t var index;\n\t var key;\n\t\n\t for (key in listeners) {\n\t if (listeners.hasOwnProperty(key)) {\n\t index = indexOfListener(listeners[key], listener);\n\t\n\t if (index !== -1) {\n\t listeners[key].splice(index, 1);\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of removeListener\n\t */\n\t proto.off = alias('removeListener');\n\t\n\t /**\n\t * Adds listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n\t * You can also pass it a regular expression to add the array of listeners to all events that match it.\n\t * Yeah, this function does quite a bit. That's probably a bad thing.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.addListeners = function addListeners(evt, listeners) {\n\t // Pass through to manipulateListeners\n\t return this.manipulateListeners(false, evt, listeners);\n\t };\n\t\n\t /**\n\t * Removes listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be removed.\n\t * You can also pass it a regular expression to remove the listeners from all events that match it.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.removeListeners = function removeListeners(evt, listeners) {\n\t // Pass through to manipulateListeners\n\t return this.manipulateListeners(true, evt, listeners);\n\t };\n\t\n\t /**\n\t * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n\t * The first argument will determine if the listeners are removed (true) or added (false).\n\t * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be added/removed.\n\t * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n\t *\n\t * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n\t var i;\n\t var value;\n\t var single = remove ? this.removeListener : this.addListener;\n\t var multiple = remove ? this.removeListeners : this.addListeners;\n\t\n\t // If evt is an object then pass each of its properties to this method\n\t if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n\t for (i in evt) {\n\t if (evt.hasOwnProperty(i) && (value = evt[i])) {\n\t // Pass the single listener straight through to the singular method\n\t if (typeof value === 'function') {\n\t single.call(this, i, value);\n\t }\n\t else {\n\t // Otherwise pass back to the multiple function\n\t multiple.call(this, i, value);\n\t }\n\t }\n\t }\n\t }\n\t else {\n\t // So evt must be a string\n\t // And listeners must be an array of listeners\n\t // Loop over it and pass each one to the multiple method\n\t i = listeners.length;\n\t while (i--) {\n\t single.call(this, evt, listeners[i]);\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Removes all listeners from a specified event.\n\t * If you do not specify an event then all listeners will be removed.\n\t * That means every event will be emptied.\n\t * You can also pass a regex to remove all events that match it.\n\t *\n\t * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.removeEvent = function removeEvent(evt) {\n\t var type = typeof evt;\n\t var events = this._getEvents();\n\t var key;\n\t\n\t // Remove different things depending on the state of evt\n\t if (type === 'string') {\n\t // Remove all listeners for the specified event\n\t delete events[evt];\n\t }\n\t else if (evt instanceof RegExp) {\n\t // Remove all events matching the regex.\n\t for (key in events) {\n\t if (events.hasOwnProperty(key) && evt.test(key)) {\n\t delete events[key];\n\t }\n\t }\n\t }\n\t else {\n\t // Remove all listeners in all events\n\t delete this._events;\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of removeEvent.\n\t *\n\t * Added to mirror the node API.\n\t */\n\t proto.removeAllListeners = alias('removeEvent');\n\t\n\t /**\n\t * Emits an event of your choice.\n\t * When emitted, every listener attached to that event will be executed.\n\t * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n\t * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n\t * So they will not arrive within the array on the other side, they will be separate.\n\t * You can also pass a regular expression to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {Array} [args] Optional array of arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.emitEvent = function emitEvent(evt, args) {\n\t var listenersMap = this.getListenersAsObject(evt);\n\t var listeners;\n\t var listener;\n\t var i;\n\t var key;\n\t var response;\n\t\n\t for (key in listenersMap) {\n\t if (listenersMap.hasOwnProperty(key)) {\n\t listeners = listenersMap[key].slice(0);\n\t i = listeners.length;\n\t\n\t while (i--) {\n\t // If the listener returns true then it shall be removed from the event\n\t // The function is executed either with a basic call or an apply if there is an args array\n\t listener = listeners[i];\n\t\n\t if (listener.once === true) {\n\t this.removeListener(evt, listener.listener);\n\t }\n\t\n\t response = listener.listener.apply(this, args || []);\n\t\n\t if (response === this._getOnceReturnValue()) {\n\t this.removeListener(evt, listener.listener);\n\t }\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Alias of emitEvent\n\t */\n\t proto.trigger = alias('emitEvent');\n\t\n\t /**\n\t * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n\t * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {...*} Optional additional arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.emit = function emit(evt) {\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t return this.emitEvent(evt, args);\n\t };\n\t\n\t /**\n\t * Sets the current value to check against when executing listeners. If a\n\t * listeners return value matches the one set here then it will be removed\n\t * after execution. This value defaults to true.\n\t *\n\t * @param {*} value The new value to check for when executing listeners.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\t proto.setOnceReturnValue = function setOnceReturnValue(value) {\n\t this._onceReturnValue = value;\n\t return this;\n\t };\n\t\n\t /**\n\t * Fetches the current value to check against when executing listeners. If\n\t * the listeners return value matches this one then it should be removed\n\t * automatically. It will return true by default.\n\t *\n\t * @return {*|Boolean} The current value to check for or the default, true.\n\t * @api private\n\t */\n\t proto._getOnceReturnValue = function _getOnceReturnValue() {\n\t if (this.hasOwnProperty('_onceReturnValue')) {\n\t return this._onceReturnValue;\n\t }\n\t else {\n\t return true;\n\t }\n\t };\n\t\n\t /**\n\t * Fetches the events object and creates one if required.\n\t *\n\t * @return {Object} The events storage object.\n\t * @api private\n\t */\n\t proto._getEvents = function _getEvents() {\n\t return this._events || (this._events = {});\n\t };\n\t\n\t /**\n\t * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n\t *\n\t * @return {Function} Non conflicting EventEmitter class.\n\t */\n\t EventEmitter.noConflict = function noConflict() {\n\t exports.EventEmitter = originalGlobalValue;\n\t return EventEmitter;\n\t };\n\t\n\t // Expose the class either via AMD, CommonJS or the global object\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return EventEmitter;\n\t }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t }\n\t else if (typeof module === 'object' && module.exports){\n\t module.exports = EventEmitter;\n\t }\n\t else {\n\t exports.EventEmitter = EventEmitter;\n\t }\n\t}.call(this));\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** js/marklib.min.js\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/** WEBPACK FOOTER **\n ** webpack/bootstrap 83535630e4d67ecb22e8\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 2\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 4\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 6\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 10\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 12\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 14\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 15\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 16\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 17\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 25\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 26\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 27\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 29\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 30\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 32\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 33\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 34\n ** module chunks = 0 1\n **/","/* global Node */\n\nimport RenderResult from './RenderResult';\nimport RenderingEvents from './RenderingEvents';\nimport Util, { ATTR_DATA_ORIGINAL_INDEX, DATA_IS_SELECTION } from './util/Util';\n\n/**\n * @type {string}\n */\nconst TAG_NAME = 'x-marker';\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n/**\n * @type {string}\n */\nconst DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n/**\n * @type {string}\n */\nconst ATTR_DATA_START_END = 'data-is-start-end';\n/**\n * @type {string}\n */\nconst ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n/**\n * @type {string}\n */\nconst ATTR_DATA_ID = 'data-selection-id';\n\n/**\n * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n * @type {number}\n */\nconst DOCUMENT_POSITION_CONTAINED_BY = 16;\n\n\n/**\n * @type {string}\n */\nexport const EVENT_WRAPPED_NODE = 'wrapped-node';\n\n/**\n * Manages a single Render\n */\nclass Rendering extends RenderingEvents {\n\n /**\n * @param {Document} document\n * @param {object} options\n * @param {Node} context\n */\n constructor(document, options, context) {\n super(options, document);\n\n /**\n * ID of rendering, will be set on each element that is part of it\n * @type {String}\n */\n this.id = Util.guid();\n\n /**\n * StartContainer\n * @type {Node}\n */\n this.startContainer = null;\n\n /**\n * EndContainer\n * @type {Node}\n */\n this.endContainer = null;\n\n /**\n * @type {Node}\n */\n this.context = context || this.document;\n\n /**\n * Flag if this instance has been rendered\n * @type {RenderResult}\n * @private\n */\n this._renderResult = null;\n }\n\n /**\n * @returns {string} id of this rendering\n */\n getId() {\n return this.id;\n }\n\n /**\n * @param {string} id\n * @returns {Rendering}\n */\n setId(id) {\n this.id = id;\n\n if (this._renderResult) {\n this.wrapperNodes.forEach((node) => node.setAttribute(ATTR_DATA_ID, this.id));\n }\n\n return this;\n }\n\n /**\n * Creates a Template used as a wrapper and an indication that this is a highlight node\n * @param {Boolean} [omitHighlight]\n * @returns {Node}\n * @private\n */\n _createWrapTemplate(omitHighlight) {\n const el = this.document.createElement(TAG_NAME);\n const vTrue = \"true\";\n\n if (!omitHighlight) {\n el.className = this.options.className.join(' ');\n // save this marker instance to given node\n Rendering.setMarklibInstance(el, this);\n // keep track of highlight nodes\n this.wrapperNodes.push(el);\n el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n el.setAttribute(ATTR_DATA_ID, this.getId());\n }\n el.setAttribute(DATA_IS_SELECTION, vTrue);\n\n return el;\n }\n\n /**\n * Creates a Template to use as start and end marks\n * @param {String} text\n * @returns {Node}\n * @private\n */\n _createStartEndWrapTemplate(text) {\n const el = this._createWrapTemplate();\n el.setAttribute(ATTR_DATA_START_END, 'true');\n el.textContent = text;\n return el;\n }\n\n\n /**\n * Creates Start or End Container Element\n * @param initialNode\n * @param text\n * @param offset\n * @param index\n * @returns {Node}\n */\n _createStartOrEndContainer(initialNode, text, offset, index) {\n const wrapper = this._createStartEndWrapTemplate(text);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(initialNode, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\n return wrapper;\n }\n\n /**\n * Wraps given element\n * @param {Node|HTMLElement} el\n * @param [optionalLength]\n * @param [optionalIndex]\n * @param [optionalIsSameNode]\n * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n * @returns {Node}\n * @private\n */\n _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n const originalIndex = optionalIndex >= 0 ? optionalIndex : Util.calcIndex(el);\n const wrapper = this._createWrapTemplate(omitHighlight);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(el, originalIndex));\n const offsetLength = optionalLength >= 0 ? optionalLength : Util.getOffsetParentIfHas(el);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\n // Save a reference to original text node in wrapper\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\n if (optionalIsSameNode) {\n wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n }\n const wrap = Util.wrap(el, wrapper);\n\n this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\n return wrap;\n }\n\n /**\n * Create split container element\n * @param originalElement {Node} original text node element that is created a wrapper for\n * @param index\n * @param offset\n * @returns {Node}\n */\n _createSplitContainer(originalElement, index, offset) {\n const wrapper = this.document.createElement(TAG_NAME);\n wrapper.setAttribute(DATA_IS_SELECTION, 'true');\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(originalElement, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n return wrapper;\n }\n\n /**\n * Walks the tree\n * @param start\n * @param endContainer\n * @param nextParent\n */\n walk(start, endContainer, nextParent) {\n let nextParentNode = start;\n while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n const currentParentNode = nextParentNode;\n nextParentNode = nextParentNode.parentNode;\n if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n break;\n }\n }\n }\n\n\n /**\n * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n * If an Element node is found, it will wrap all children of this node inside a element as well.\n * It will stop if endContainer is found as a node\n *\n * @param {Node} start\n * @param {Node} endContainer\n * @returns {boolean} (true if endContainer was found)\n */\n wrapSiblings(start, endContainer) {\n let next = start;\n let found = false;\n\n // Capsule some logic\n const wrap = (n) => {\n const instance = Rendering.getMarklibInstance(n.parentNode);\n if (n.parentNode.hasAttribute(ATTR_DATA_START_END) &&\n n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) &&\n instance === this) {\n this._createWrap(n, undefined, undefined, undefined, true);\n } else {\n this._createWrap(n);\n }\n };\n\n // helper functions\n\n const wrapIf = (n) => {\n if (!Util.nodeIsEmpty(n)) {\n wrap(n);\n }\n };\n\n const walkIfContained = (e) => {\n if (e === endContainer) {\n return false;\n }\n if (Node.TEXT_NODE === e.nodeType) {\n wrapIf(e);\n }\n return true;\n };\n\n const walkIfNotContained = (el) => {\n wrapIf(el);\n };\n\n while (next !== null && next !== endContainer) {\n const currentNext = next;\n next = next.nextSibling;\n // Found a text node, directly wrap inside a span\n if (Node.TEXT_NODE === currentNext.nodeType) {\n wrapIf(currentNext);\n } else {\n if ((currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY)) {\n Util.walkDom(currentNext, walkIfContained);\n found = true;\n } else {\n Util.walkTextNodes(currentNext, walkIfNotContained);\n }\n if (found) {\n return true;\n }\n }\n }\n return found;\n }\n\n /**\n * Marks text of the same node\n * @param {Node} textNode\n * @param {int} startIndex\n * @param {int} endIndex\n * @private\n */\n _markTextSameNode(textNode, startIndex, endIndex) {\n const initialText = textNode.nodeValue;\n const initialIndex = Util.calcIndex(textNode);\n\n if (!initialText) {\n return false;\n }\n // If there is an unmarked part in the beginning of the text node,\n // cut off that part and put it into it's own textnode.\n if (startIndex > 0) {\n const textBefore = initialText.slice(0, startIndex);\n textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n // wrap cutted text node:\n Util.wrap(textNode.previousSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode)));\n }\n // If there is an unmarked part at the end of the text node,\n // cut off that part and put it into it's own textnode.\n if (endIndex < initialText.length) {\n const textAfter = initialText.slice(endIndex, initialText.length);\n textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n Util.wrap(textNode.nextSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode) + endIndex));\n }\n\n // Cutoff the unmarked parts and wrap the textnode into a span.\n textNode.nodeValue = initialText.slice(startIndex, endIndex);\n this.startContainer = this._createWrap(textNode,\n Util.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n this.endContainer = this.startContainer;\n return this.startContainer;\n }\n\n\n /**\n * Marks text of end and start containers if start and end nodes are different\n * Important: There might be no end container!\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @returns {{startT: (Node), endT: (Node)}}\n * @private\n */\n _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n // Get current for both start and end:\n const startContainerIndex = Util.calcIndex(startContainer);\n const endContainerIndex = Util.calcIndex(endContainer);\n\n // Split text\n const fullTextStartValue = startContainer.nodeValue;\n // init with startContainer because we may have not a text node here\n let startT = startContainer;\n\n if (undefined !== fullTextStartValue) {\n const partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n // Set new text to start node\n startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\n const offsetStart = Util.getOffsetParentIfHas(startContainer);\n // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n startT = this._createStartOrEndContainer(startContainer, partTextStartValue,\n offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n // Append this node after startContainer\n startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n this.startContainer = startT;\n\n if (startContainer.nodeValue) {\n // Wrap start container in detection node, offset is always 0 or parent offset.\n Util.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex,\n Util.getOffsetParentIfHas(startContainer)));\n }\n }\n\n // init with endContainer because we may have not a text node here\n let endT = endContainer;\n\n // 2. Extract end Text node,\n const fullTextEndValue = endContainer.nodeValue;\n // It's possible that end container value is null (if a whole paragraph is marked)\n if (undefined !== fullTextEndValue) {\n // Split text\n const partTextEndValue = fullTextEndValue.slice(0, endOffset);\n endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n // End Container start offset is always 0 or parent offset.\n endT = this._createStartOrEndContainer(endContainer, partTextEndValue,\n Util.getOffsetParentIfHas(endContainer), endContainerIndex);\n\n endContainer.parentNode.insertBefore(endT, endContainer);\n this.endContainer = endT;\n const offsetParent = Util.getOffsetParentIfHas(endContainer);\n Util.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex,\n offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n }\n\n return {\n startT,\n endT\n };\n }\n\n /**\n * Renders a selection\n * @param {Node} startContainerP\n * @param {Node} endContainerP\n * @param {Node} commonAncestor\n * @param {int} startOffset\n * @param {int} endOffsetP\n * @returns RenderResult\n * @private\n */\n _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n if (this._renderResult) {\n return this._renderResult;\n }\n let startContainer = startContainerP;\n let endContainer = endContainerP;\n let endOffset = endOffsetP;\n let outer = Util.parents(startContainer, commonAncestor);\n outer = outer[outer.length - 1];\n const contextContainer = outer ? outer : commonAncestor;\n\n // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n // but are different nodes:\n\n // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n // 1: First detect real start offset in startContainer:\n\n // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n // So first select that container:\n const originalStartOffset = Util.findOriginalOffset(startContainer);\n const originalEndOffset = Util.findOriginalOffset(endContainer);\n\n // We may run into Browser Bugs:\n\n // If both are not text nodes, use next sibling as endContainer\n if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n if (startContainer === endContainer) {\n endContainer = endContainer.nextElementSibling || endContainer;\n }\n }\n // IF start/end container is not type of text, select first child text node:\n // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n // Sometimes does not work correctly... (specially when DOM was modified)\n if (startContainer.nodeType !== Node.TEXT_NODE) {\n Util.walkDom(startContainer, (el) => {\n if (el.nodeType === Node.TEXT_NODE) {\n startContainer = el;\n return false;\n }\n return true;\n });\n }\n\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n let toFindNode = startContainer;\n\n if (endOffset === 0) {\n toFindNode = endContainer.previousElementSibling || startContainer;\n }\n\n // Get the last text node:\n const endContainerContents = Util.closest(toFindNode, ':not([' + DATA_IS_SELECTION + '])').childNodes;\n if (endContainerContents.length) {\n const r = endContainerContents[endContainerContents.length - 1];\n if (r.nodeType === Node.TEXT_NODE) {\n endContainer = r;\n endOffset = r.length;\n } else {\n let f = r.lastChild;\n while (f !== null) {\n if (f && f.nodeType === Node.TEXT_NODE) {\n endContainer = f;\n endOffset = f.length;\n if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n endOffset = parseInt(f.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n }\n }\n f = f.lastChild;\n }\n }\n }\n // still no textNode?\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n throw Error('Could not found endContainer, highlighting would be unstable');\n }\n }\n\n this._renderResult = new RenderResult(\n // Real offset is calculated by relative length and absolute length\n originalStartOffset + startOffset,\n originalEndOffset + endOffset,\n // get the path for this selection\n Util.getPath(startContainer, this.context),\n Util.getPath(endContainer, this.context)\n );\n\n this._renderResult.instance = this;\n\n\n this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\n return this._renderResult;\n }\n\n /**\n * Renders a given selection\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {Node} contextContainer\n * @param {Boolean} outer\n * @private\n */\n _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n // if start and end-container are the same, mark text on the same node\n if (startContainer === endContainer) {\n this._markTextSameNode(startContainer, startOffset, endOffset);\n } else {\n const result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n const index = this.wrapperNodes.indexOf(result.endT);\n // remove endContainer, to keep order:\n this.wrapperNodes.splice(index, 1);\n if (!outer) {\n this.wrapSiblings(result.startT.nextSibling, endContainer);\n } else {\n this.walk(result.startT, endContainer, contextContainer);\n }\n this.wrapperNodes.push(result.endT);\n }\n }\n\n /**\n * Prepares to render a Selection with path selectors\n * ```\n * A Path looks like this:\n *\n * #selector;#textnode;#offset\n * ``\n * @param {string} startPath\n * @param {string} endPath\n * @returns {string}\n */\n renderWithPath(startPath, endPath) {\n const startContainer = Util.deserializePath(startPath, this.context);\n const endContainer = Util.deserializePath(endPath, this.context);\n if (startContainer && endContainer && startContainer.node && endContainer.node) {\n const range = document.createRange();\n range.setStart(startContainer.node, startContainer.offset);\n range.setEnd(endContainer.node, endContainer.offset);\n const text = range.toString();\n const result = this.renderWithRange(range);\n result.text = text;\n return text;\n }\n throw new Error('Could not find start- and/or end-container in document');\n }\n\n /**\n * @returns {RenderResult}\n */\n get result() {\n return this._renderResult;\n }\n\n /**\n * Renders a result (that returned from `renderWithRange`)\n * @param {RenderResult|Object} result\n * @returns {string}\n */\n renderWithResult(result) {\n return this.renderWithPath(\n `${result.startContainerPath};${result.startOffset}`,\n `${result.endContainerPath};${result.endOffset}`);\n }\n\n /**\n * Prepares a selection with a range object\n * @param {Range} range\n * @returns {Object}\n */\n renderWithRange(range) {\n const text = range.toString();\n const result = this._renderWithElements(range.startContainer, range.endContainer,\n range.commonAncestorContainer, range.startOffset, range.endOffset);\n result.text = text;\n return result;\n }\n\n /**\n * Removes bindings and classNames to nodes\n */\n destroy() {\n this.wrapperNodes.forEach((node) => {\n delete node.marklibInstance;\n node.className = '';\n });\n this.removeEvent();\n }\n\n /**\n * @param {Node} el\n * @param {Rendering} instance\n * @returns {Node}\n */\n static setMarklibInstance(el, instance) {\n el.marklibInstance = instance;\n return el;\n }\n\n /**\n * @param {Node} el\n * @returns {Rendering|null|undefined}\n */\n static getMarklibInstance(el) {\n return el ? el.marklibInstance : null;\n }\n}\n\nexport default Rendering;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/Rendering.js\n **/","/* global Node, NodeList, Element */\n\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n/**\n * @type {string}\n */\nexport const DATA_IS_SELECTION = 'data-is-selection';\n/**\n * @type {string}\n */\nconst SERIALIZE_SEPARATOR = \";\";\n\nimport { ATTR_DATA_ORIGINAL_OFFSET_START } from '../Rendering';\n\n// polyfill for matchesSelector, IE 10/11 does not support Element.matches\nif (Element && !Element.prototype.matches) {\n const p = Element.prototype;\n p.matches = p.matchesSelector ||\n p.mozMatchesSelector || p.msMatchesSelector ||\n p.oMatchesSelector || p.webkitMatchesSelector;\n}\n\n/**\n * Utility class\n * Contains DOM/Node manipulation helpers\n */\nexport default\nclass Util {\n\n /**\n * Filter for a NodeList\n * @param {NodeList} nodes\n * @param {Function} func\n *\n * @returns {Array.}\n */\n static nodeListFilter(nodes, func) {\n return Array.prototype.filter.call(nodes || [], func);\n }\n\n\n /**\n * Generates a unique id\n *\n * @return {String}\n */\n static guid() {\n const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\n s4() + '-' + s4() + s4() + s4();\n }\n\n /**\n * Checks if a given node is empty\n * @param {HTMLElement} node\n *\n * @returns {*}\n */\n static nodeIsEmpty(node) {\n return node.nodeValue.match(/^[\\s]*$/g);\n }\n\n\n /**\n * @param {HTMLElement} node\n * @param [optionalList]\n *\n * @return {int} the index of this node in context to it's siblings\n */\n static index(node, optionalList) {\n const children = optionalList || (node.nodeType === Node.TEXT_NODE ?\n node.parentNode.childNodes : node.parentNode.children);\n return Array.prototype.indexOf.call(children || [], node);\n }\n\n /**\n * Wraps given `elms` in given `wrapper`\n *\n * @param {HTMLElement|Array.|Node} elms\n * @param {HTMLElement|Node} wrapper\n *\n * @return {HTMLElement}\n */\n static wrap(elms, wrapper) {\n let thisElms = elms;\n\n if (!thisElms) {\n return wrapper;\n }\n // Convert `elms` to an array, if necessary.\n if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n thisElms = [thisElms];\n }\n for (let i = thisElms.length - 1; i >= 0; i--) {\n const child = (i > 0) ? wrapper.cloneNode(true) : wrapper;\n const el = thisElms[i];\n // Cache the current parent and sibling.\n const parent = el.parentNode;\n const sibling = el.nextSibling;\n\n child.appendChild(el);\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n }\n return wrapper;\n }\n\n /**\n * Will calculate an index depending on an already modified dom by marklib\n * @param {HTMLElement|Node} node\n *\n * @returns {int|boolean}\n */\n static calcIndex(node) {\n let calculatedIndex = 0;\n let foundWrapper = false;\n const nodes = node.parentNode.childNodes;\n const length = nodes.length;\n for (let thisIndex = 0; thisIndex < length; thisIndex++) {\n const el = nodes[thisIndex];\n if (el === node) {\n break;\n }\n // reset index when original index is found\n const maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\n if (maybeIndexOfOriginal) {\n calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n foundWrapper = true;\n }\n calculatedIndex++;\n }\n return foundWrapper ? calculatedIndex : Util.index(node);\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {String} [optionalSelector] will test given element against a selector\n * if matches, returns this element immediately\n *\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parents(el, optionalSelector) {\n return Util.parentsCallback(el, (element) => {\n if (optionalSelector && ((element === optionalSelector) ||\n ((typeof optionalSelector === 'string') && element.matches &&\n element.matches(optionalSelector)))) {\n return true;\n } else if (!optionalSelector) {\n return true;\n }\n return false;\n });\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {Function} callback\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parentsCallback(el, callback) {\n let element = el;\n const foundElements = [];\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (callback(element)) {\n foundElements.push(element);\n }\n }\n return foundElements;\n }\n\n /**\n * Finds a parent node (the closest) with a given selector\n * @param {Node} el\n * @param {String} selector\n *\n * @returns {Node|boolean}\n */\n static parent(el, selector) {\n let element = el;\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (element.matches && element.matches(selector)) {\n return element;\n }\n }\n return false;\n }\n\n /**\n * Finds the closest element including itself matching a given selector\n * @param {Node} el\n * @param selector\n *\n * @returns {Node|boolean}\n */\n static closest(el, selector) {\n return Util.closestCallback(el, (element) => element.matches && element.matches(selector));\n }\n\n /**\n * Finds the closest element including itself matching a callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static closestCallback(el, callback) {\n let element = el;\n while (element !== null) {\n if (callback(element)) {\n return element;\n }\n element = element.parentNode;\n }\n return false;\n }\n\n /**\n * Finds the outermost fitting element that matches callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static outerMostCallback(el, callback) {\n let element = el;\n let lastValid = false;\n while (element !== null) {\n if (callback(element)) {\n lastValid = element;\n }\n element = element.parentNode;\n }\n return lastValid;\n }\n\n /**\n * @param {HTMLElement} n\n *\n * @return {boolean}\n */\n static isMarkNode(n) {\n return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n }\n\n /**\n * Determines the correct paths and excludes all `marklib` generated content\n * TODO: To improve performance we could shorten the path if an ID is present in it.\n * @param {HTMLElement|Node} el\n * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n * @returns {string}\n */\n static getPath(el, context) {\n let path = null;\n let node = el;\n\n const filterSiblings = (thisEl) => {\n return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n };\n\n while (node) {\n let name = null;\n // If node is a text-node, save index\n if (Node.TEXT_NODE === node.nodeType) {\n /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n * valid before the dom changes. We store the last known index position inside all wrapper elements\n * We select the outermost\n */\n\n // Extract original index of this node:\n // Outer most data-original-index is original index\n const outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n // if element is not yet wrapped in span, recalculate index based on parent container:\n // We have to do this because text node indexes != element indexes...\n let calculatedIndex = 0;\n if (!outerMostElement) {\n calculatedIndex = Util.calcIndex(node);\n }\n const index = outerMostElement ? parseInt(\n outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n name = SERIALIZE_SEPARATOR + index;\n } else {\n name = node.nodeName;\n }\n\n if (!name) {\n break;\n }\n\n name = name.toLowerCase();\n\n const parent = node.parentNode;\n\n if (Util.isMarkNode(node)) {\n if (parent !== context) {\n node = parent;\n continue;\n } else {\n break;\n }\n }\n\n // Select only siblings that are not part of selection and are of the same type\n // (because we use nth-of-type selector later)\n const siblings = Util.nodeListFilter(parent.children, filterSiblings);\n const nodeIndex = Util.index(node, siblings);\n\n if (siblings.length > 1 && nodeIndex >= 0) {\n name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n }\n\n path = name + (path ? '>' + path : '');\n\n\n if (parent === context) {\n break;\n }\n\n node = parent;\n }\n\n return path.replace(\"#document>\", \"\").replace('>;', ';');\n }\n\n /**\n * Will return the first original offset value that is found\n * @param {Node} element\n *\n * @returns {int}\n */\n static findOriginalOffset(element) {\n if (!element.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n return 0;\n }\n const lengthElement = Util.parent(element, '[' + ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n return lengthElement ? parseInt(lengthElement.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n }\n\n\n /**\n * Deserialize a specific path and finds the right textNodes\n * This even works when DOM has been manipulated before by `marklib`\n * @param {string} path the serialized path (including offsets)\n * @param {Node|HTMLElement} context\n *\n * @return {Node}\n */\n static deserializePath(path, context) {\n const pSplit = path.split(';');\n const p = pSplit[0];\n const objectIndex = parseInt(pSplit[1], 10);\n const charOffset = parseInt(pSplit[2], 10);\n const container = !p.trim() ? context : context.querySelector(p);\n\n let maybeFoundNode = null;\n\n Util.walkDom(container, (n) => {\n let atrOffsetStart = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START);\n atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n let atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart &&\n ((parseInt(atrOffsetStart, 10) + n.length) >= charOffset)) {\n const thisOffset = n.parentNode\n .hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset -\n parseInt(n.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\n maybeFoundNode = {\n node: n,\n offset: thisOffset\n };\n\n return false;\n }\n return true;\n });\n\n return maybeFoundNode;\n }\n\n\n /**\n * Recursively walks the dom tree unless func returns false\n * This is a lot more efficient then using any jQuery operations\n *\n * Applies node to function\n * @param {Node} node\n * @param {Function} func\n *\n * @returns {*}\n */\n static walkDom(node, func) {\n if (!node) {\n return false;\n }\n const children = node.childNodes;\n if (!children) {\n return false;\n }\n for (let i = 0; i < children.length; i++) {\n if (!Util.walkDom(children[i], func)) {\n return false;\n }\n }\n return func(node);\n }\n\n /**\n * Extracts all TextNodes inside a container\n * @param {Node} el\n * @param {Function} func\n * @returns {Array.}\n */\n static walkTextNodes(el, func) {\n Util.walkDom(el, (node) => {\n if (Node.TEXT_NODE === node.nodeType && !Util.nodeIsEmpty(node)) {\n func(node);\n }\n return true;\n });\n }\n\n /**\n * @param {Node} container\n * @param {Number} thisIndex\n * @returns {int|string} index of parent or original\n */\n static getIndexParentIfHas(container, thisIndex) {\n const p = container.parentNode;\n const index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n return index > thisIndex ? index : thisIndex;\n }\n\n /**\n * @param container\n * @returns {int} offset start of parent if has, else 0\n */\n static getOffsetParentIfHas(container) {\n const p = container.parentNode;\n const offset = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n return offset > 0 ? offset : 0;\n }\n\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/util/Util.js\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 44\n ** module chunks = 0 1\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./$.cof')\n , TAG = require('./$.wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.classof.js\n ** module id = 45\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 46\n ** module chunks = 0 1\n **/","var ctx = require('./$.ctx')\n , call = require('./$.iter-call')\n , isArrayIter = require('./$.is-array-iter')\n , anObject = require('./$.an-object')\n , toLength = require('./$.to-length')\n , getIterFn = require('./core.get-iterator-method');\nmodule.exports = function(iterable, entries, fn, that){\n var iterFn = getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n call(iterator, f, step.value, entries);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.for-of.js\n ** module id = 47\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 48\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 49\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 50\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 51\n ** module chunks = 0 1\n **/","/**\n * A Render Result\n */\nexport default class RenderResult {\n /**\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {String} startContainerPath\n * @param {String} endContainerPath\n */\n constructor(startOffset, endOffset, startContainerPath, endContainerPath) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.startContainerPath = startContainerPath;\n this.endContainerPath = endContainerPath;\n this._renderingInstance = null;\n }\n\n /**\n * @param {Object} result\n * @return RenderResult\n */\n static fromObject(result) {\n return new RenderResult(\n result.startOffset,\n result.endOffset,\n result.startContainerPath,\n result.endContainerPath\n );\n }\n\n /**\n * @returns {Object}\n */\n serialize() {\n return {\n startOffset: this.startOffset,\n endOffset: this.endOffset,\n startContainerPath: this.startContainerPath,\n endContainerPath: this.endContainerPath\n };\n }\n\n /**\n * @param {String} text\n */\n set text(text) {\n this._text = text;\n }\n\n /**\n * @returns {String}\n */\n get text() {\n return this._text;\n }\n\n /**\n * @returns {null|Rendering}\n */\n get instance() {\n return this._renderingInstance;\n }\n\n /**\n * @param {null|Rendering} instance\n */\n set instance(instance) {\n this._renderingInstance = instance;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderResult.js\n **/","/* global Set */\n\nimport EventEmitter from 'wolfy87-eventemitter';\nimport Rendering from './Rendering';\nimport Util from './util/Util';\n\n/**\n * @type {string}\n */\nexport const EVENT_CLICK = 'click';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSEENTER = 'hover-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSELEAVE = 'hover-leave';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_ENTER = 'tree-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_LEAVE = 'tree-leave';\n\n/**\n * Generic Event Handlings for Renderer\n */\nexport default class RenderingEvents extends EventEmitter {\n\n /**\n * @param {Object} options\n * @param {Document} document\n */\n constructor(options, document) {\n super();\n\n /**\n * Options\n * @type {Object}\n */\n this.options = {\n hoverClass: 'marklib--hover',\n treeClass: 'marklib--tree',\n className: ['marking']\n };\n\n this.options = Object.assign(this.options, options || {});\n\n if (typeof this.options.className === 'string') {\n this.options.className = this.options.className.split(' ');\n }\n\n /**\n * A collection of all nodes that are part of all events\n * @type {Array}\n */\n this.wrapperNodes = [];\n\n /**\n * @type {Document}\n */\n this.document = document;\n }\n\n /**\n * Constructs a new Range from rendered result\n * @returns {Range}\n */\n get range() {\n const range = this.document.createRange();\n const textNodes = [];\n\n this.wrapperNodes.forEach((wrapper) => {\n Util.walkTextNodes(wrapper, (node) => {\n textNodes.push(node);\n });\n });\n\n if (textNodes.length > 0) {\n const lastTextNode = textNodes[textNodes.length - 1];\n range.setStart(textNodes[0], 0);\n range.setEnd(lastTextNode, lastTextNode.length);\n return range;\n }\n\n return null;\n }\n\n static globalEmitter() {\n return RenderingEvents.staticEventListener;\n }\n}\n\nRenderingEvents.staticEventListener = new EventEmitter();\n\n\nif (!global.__MARKLIB_EVENTS__) {\n global.__MARKLIB_EVENTS__ = true;\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.treeClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.treeClass);\n });\n });\n\n (function init() {\n const currentHoverInstances = new Set();\n const betweenInstances = new Set();\n\n function checkMarklibInstance(e) {\n const instance = Rendering.getMarklibInstance(e);\n // instanceof check will fail if used in test scenario where different DOMs are used\n // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n return instance && (instance instanceof Rendering || 'wrapperNodes' in instance);\n }\n\n function closestInstance(e) {\n const closest = Util.closestCallback(\n e.target,\n (thisE) => checkMarklibInstance(thisE)\n );\n if (typeof closest === 'object') {\n return Rendering.getMarklibInstance(closest);\n }\n return false;\n }\n\n function getInstancesBetween(e, instance) {\n return Util.parentsCallback(\n e.target,\n (el) => checkMarklibInstance(el) && Rendering.getMarklibInstance(el) !== instance\n ).map(el => Rendering.getMarklibInstance(el));\n }\n\n function mouseOutClear() {\n currentHoverInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n thisInstance.emit(EVENT_MOUSELEAVE);\n });\n currentHoverInstances.clear();\n\n betweenInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n thisInstance.emit(EVENT_PART_TREE_LEAVE);\n });\n\n betweenInstances.clear();\n }\n\n /**\n * @param {Event} e\n * @returns {Array|boolean}\n */\n function findTarget(e) {\n let instance = closestInstance(e);\n if (instance) {\n const between = getInstancesBetween(e, instance);\n if (e.target.textContent !== instance.result.text && between.length > 0) {\n let allInstances = between;\n allInstances.unshift(instance);\n // take the smallest selection\n allInstances = allInstances.sort(\n (a, b) => a.result.text.length < b.result.text.length ? -1 : 1\n );\n instance = allInstances[0];\n }\n return [instance, between];\n }\n return false;\n }\n\n global.addEventListener('click', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n Rendering.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n instance.emit(EVENT_CLICK, e, between);\n }\n }, true);\n\n global.addEventListener('mouseover', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n\n // find instances that lay in between the node\n mouseOutClear();\n between.forEach((instanceBetween) => {\n betweenInstances.add(instanceBetween);\n instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n });\n instance.emit(EVENT_MOUSEENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n currentHoverInstances.add(instance);\n } else {\n mouseOutClear();\n }\n }, true);\n })();\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderingEvents.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 60\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 61\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 62\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 63\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 64\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 65\n ** module chunks = 0 1\n **/","var redefine = require('./$.redefine');\nmodule.exports = function(target, src){\n for(var key in src)redefine(target, key, src[key]);\n return target;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine-all.js\n ** module id = 66\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = function(it, Constructor, name){\n if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.strict-new.js\n ** module id = 68\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 70\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 71\n ** module chunks = 0 1\n **/","import Rendering from '../Rendering';\nimport Util from '../util/Util';\nimport RenderResult from '../RenderResult';\nimport RenderingEvents from '../RenderingEvents';\n\nexport { Rendering, Util, RenderResult, RenderingEvents };\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/modules/Marklib.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 90\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 91\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 93\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 95\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/set.js\n ** module id = 96\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 97\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 98\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 99\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 100\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 101\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/$.core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 102\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 103\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 104\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 105\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 106\n ** module chunks = 0 1\n **/","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nmodule.exports = require('../modules/$.core').Set;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/set.js\n ** module id = 107\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 108\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 109\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 110\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 111\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , ctx = require('./$.ctx')\n , strictNew = require('./$.strict-new')\n , defined = require('./$.defined')\n , forOf = require('./$.for-of')\n , $iterDefine = require('./$.iter-define')\n , step = require('./$.iter-step')\n , ID = require('./$.uid')('id')\n , $has = require('./$.has')\n , isObject = require('./$.is-object')\n , setSpecies = require('./$.set-species')\n , DESCRIPTORS = require('./$.descriptors')\n , isExtensible = Object.isExtensible || isObject\n , SIZE = DESCRIPTORS ? '_s' : 'size'\n , id = 0;\n\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!$has(it, ID)){\n // can't set id to frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add id\n if(!create)return 'E';\n // add missing object id\n hide(it, ID, ++id);\n // return object id with prefix\n } return 'O' + it[ID];\n};\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n strictNew(that, C, NAME);\n that._i = $.create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-strong.js\n ** module id = 112\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar forOf = require('./$.for-of')\n , classof = require('./$.classof');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n var arr = [];\n forOf(this, false, arr.push, arr);\n return arr;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-to-json.js\n ** module id = 113\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , global = require('./$.global')\n , $export = require('./$.export')\n , fails = require('./$.fails')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , forOf = require('./$.for-of')\n , strictNew = require('./$.strict-new')\n , isObject = require('./$.is-object')\n , setToStringTag = require('./$.set-to-string-tag')\n , DESCRIPTORS = require('./$.descriptors');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n } else {\n C = wrapper(function(target, iterable){\n strictNew(target, C, NAME);\n target._c = new Base;\n if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n });\n $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n if('size' in proto)$.setDesc(C.prototype, 'size', {\n get: function(){\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection.js\n ** module id = 114\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 115\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 116\n ** module chunks = 0 1\n **/","// check on default Array iterator\nvar Iterators = require('./$.iterators')\n , ITERATOR = require('./$.wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array-iter.js\n ** module id = 117\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 118\n ** module chunks = 0 1\n **/","// call something on iterator step with safe closing on error\nvar anObject = require('./$.an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-call.js\n ** module id = 119\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 120\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 121\n ** module chunks = 0 1\n **/","// 19.1.2.1 Object.assign(target, source, ...)\nvar $ = require('./$')\n , toObject = require('./$.to-object')\n , IObject = require('./$.iobject');\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = require('./$.fails')(function(){\n var a = Object.assign\n , A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , $$ = arguments\n , $$len = $$.length\n , index = 1\n , getKeys = $.getKeys\n , getSymbols = $.getSymbols\n , isEnum = $.isEnum;\n while($$len > index){\n var S = IObject($$[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n }\n return T;\n} : Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-assign.js\n ** module id = 122\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 123\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 124\n ** module chunks = 0 1\n **/","'use strict';\nvar core = require('./$.core')\n , $ = require('./$')\n , DESCRIPTORS = require('./$.descriptors')\n , SPECIES = require('./$.wks')('species');\n\nmodule.exports = function(KEY){\n var C = core[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-species.js\n ** module id = 125\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 126\n ** module chunks = 0 1\n **/","// 7.1.15 ToLength\nvar toInteger = require('./$.to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-length.js\n ** module id = 127\n ** module chunks = 0 1\n **/","var anObject = require('./$.an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./$.core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 128\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').isIterable = function(it){\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 129\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 130\n ** module chunks = 0 1\n **/","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./$.export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 131\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 132\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 133\n ** module chunks = 0 1\n **/","'use strict';\nvar strong = require('./$.collection-strong');\n\n// 23.2 Set Objects\nrequire('./$.collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.set.js\n ** module id = 134\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 135\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./$.export');\n\n$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.set.to-json.js\n ** module id = 136\n ** module chunks = 0 1\n **/","/*!\n * EventEmitter v4.2.11 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function () {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var exports = this;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n i = listeners.length;\n\n while (i--) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}.call(this));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/wolfy87-eventemitter/EventEmitter.js\n ** module id = 147\n ** module chunks = 0 1\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/build/js/site.js b/build/js/site.js index 51c8495..ac81f9e 100644 --- a/build/js/site.js +++ b/build/js/site.js @@ -3838,7 +3838,7 @@ return /******/ (function(modules) { // webpackBootstrap var maybeFoundNode = null; - Util.walkTextNodes(container, function (n) { + Util.walkDom(container, function (n) { var atrOffsetStart = n.parentNode.getAttribute(_Rendering.ATTR_DATA_ORIGINAL_OFFSET_START); atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart; var atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX); @@ -3854,63 +3854,56 @@ return /******/ (function(modules) { // webpackBootstrap return false; } return true; - }, null); + }); return maybeFoundNode; } /** - * Walks the dom tree unless func returns false - * Applies node to function + * Recursively walks the dom tree unless func returns false + * This is a lot more efficient then using any jQuery operations * + * Applies node to function * @param {Node} node * @param {Function} func - * @param {int} type, see `NodeFilter` - * @param {Object} [filter] skips empty text nodes by default * - * @returns {boolean} true if function did abort walk + * @returns {*} */ }, { key: 'walkDom', value: function walkDom(node, func) { - var _document; - - var type = arguments.length <= 2 || arguments[2] === undefined ? NodeFilter.SHOW_ALL : arguments[2]; - var filter = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3]; - if (!node) { return false; } - var args = [node, type, filter || function () { - return true; - }, false]; - args.push(false); - var walker = (_document = document).createTreeWalker.apply(_document, args); - while (walker.nextNode()) { - if (!func(walker.currentNode)) { - return true; + var children = node.childNodes; + if (!children) { + return false; + } + for (var i = 0; i < children.length; i++) { + if (!Util.walkDom(children[i], func)) { + return false; } } - return false; + return func(node); } /** * Extracts all TextNodes inside a container * @param {Node} el * @param {Function} func - * @param {Object} [filter] skips empty text nodes by default - * @returns {boolean} true if function did abort walk + * @returns {Array.} */ }, { key: 'walkTextNodes', value: function walkTextNodes(el, func) { - var filter = arguments.length <= 2 || arguments[2] === undefined ? function (node) { - return !Util.nodeIsEmpty(node); - } : arguments[2]; - - return Util.walkDom(el, func, NodeFilter.SHOW_TEXT, filter); + Util.walkDom(el, function (node) { + if (Node.TEXT_NODE === node.nodeType && !Util.nodeIsEmpty(node)) { + func(node); + } + return true; + }); } /** diff --git a/build/js/site.map b/build/js/site.map index db7be05..c9b9d8d 100644 --- a/build/js/site.map +++ b/build/js/site.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 850eba21b8437fa5bd74?56f6","webpack:///./src/main/modules/Marklib.js?dcc3","webpack:///./src/main/Rendering.js?6592","webpack:///./~/babel-runtime/core-js/object/get-prototype-of.js?b265","webpack:///./~/core-js/library/fn/object/get-prototype-of.js?5193","webpack:///./~/core-js/library/modules/es6.object.get-prototype-of.js?eaa3","webpack:///./~/core-js/library/modules/$.to-object.js?093c","webpack:///./~/core-js/library/modules/$.defined.js?7087","webpack:///./~/core-js/library/modules/$.object-sap.js?f39d","webpack:///./~/core-js/library/modules/$.export.js?b734","webpack:///./~/core-js/library/modules/$.global.js?4deb","webpack:///./~/core-js/library/modules/$.core.js?7680","webpack:///./~/core-js/library/modules/$.ctx.js?e797","webpack:///./~/core-js/library/modules/$.a-function.js?860b","webpack:///./~/core-js/library/modules/$.fails.js?6c29","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/modules/$.js?6ce7","webpack:///./~/babel-runtime/helpers/possibleConstructorReturn.js?aad9","webpack:///./~/babel-runtime/helpers/typeof.js?f4bd","webpack:///./~/babel-runtime/core-js/symbol/iterator.js?d16b","webpack:///./~/core-js/library/fn/symbol/iterator.js?238d","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./~/core-js/library/modules/$.string-at.js?a0b4","webpack:///./~/core-js/library/modules/$.to-integer.js?b29c","webpack:///./~/core-js/library/modules/$.iter-define.js?970f","webpack:///./~/core-js/library/modules/$.library.js?c05f","webpack:///./~/core-js/library/modules/$.redefine.js?2643","webpack:///./~/core-js/library/modules/$.hide.js?2cce","webpack:///./~/core-js/library/modules/$.property-desc.js?e1db","webpack:///./~/core-js/library/modules/$.descriptors.js?8327","webpack:///./~/core-js/library/modules/$.has.js?bcec","webpack:///./~/core-js/library/modules/$.iterators.js?9d0a","webpack:///./~/core-js/library/modules/$.iter-create.js?4401","webpack:///./~/core-js/library/modules/$.set-to-string-tag.js?d0fc","webpack:///./~/core-js/library/modules/$.wks.js?3e04","webpack:///./~/core-js/library/modules/$.shared.js?6ce8","webpack:///./~/core-js/library/modules/$.uid.js?f177","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/$.add-to-unscopables.js?af5b","webpack:///./~/core-js/library/modules/$.iter-step.js?76ef","webpack:///./~/core-js/library/modules/$.to-iobject.js?daca","webpack:///./~/core-js/library/modules/$.iobject.js?3ada","webpack:///./~/core-js/library/modules/$.cof.js?74ee","webpack:///./~/babel-runtime/core-js/symbol.js?a70d","webpack:///./~/core-js/library/fn/symbol/index.js?f07a","webpack:///./~/core-js/library/modules/es6.symbol.js?670a","webpack:///./~/core-js/library/modules/$.keyof.js?3b7d","webpack:///./~/core-js/library/modules/$.get-names.js?e4b8","webpack:///./~/core-js/library/modules/$.enum-keys.js?1c2a","webpack:///./~/core-js/library/modules/$.is-array.js?4d69","webpack:///./~/core-js/library/modules/$.an-object.js?2be9","webpack:///./~/core-js/library/modules/$.is-object.js?7453","webpack:///./~/babel-runtime/helpers/inherits.js?0578","webpack:///./~/babel-runtime/core-js/object/set-prototype-of.js?bb00","webpack:///./~/core-js/library/fn/object/set-prototype-of.js?f909","webpack:///./~/core-js/library/modules/es6.object.set-prototype-of.js?b195","webpack:///./~/core-js/library/modules/$.set-proto.js?759b","webpack:///./~/babel-runtime/core-js/object/create.js?aa4b","webpack:///./~/core-js/library/fn/object/create.js?738c","webpack:///./src/main/RenderResult.js?09ff","webpack:///./src/main/RenderingEvents.js?d122","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/core-js/library/fn/is-iterable.js?0bd2","webpack:///./~/core-js/library/modules/core.is-iterable.js?77cc","webpack:///./~/core-js/library/modules/$.classof.js?c1cb","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/core-js/library/fn/get-iterator.js?2cf7","webpack:///./~/core-js/library/modules/core.get-iterator.js?aca7","webpack:///./~/core-js/library/modules/core.get-iterator-method.js?9c88","webpack:///./~/babel-runtime/core-js/set.js?0724","webpack:///./~/core-js/library/fn/set.js?2c6c","webpack:///./~/core-js/library/modules/es6.set.js?dbba","webpack:///./~/core-js/library/modules/$.collection-strong.js?75b1","webpack:///./~/core-js/library/modules/$.redefine-all.js?0c0d","webpack:///./~/core-js/library/modules/$.strict-new.js?979f","webpack:///./~/core-js/library/modules/$.for-of.js?bf1d","webpack:///./~/core-js/library/modules/$.iter-call.js?581c","webpack:///./~/core-js/library/modules/$.is-array-iter.js?787a","webpack:///./~/core-js/library/modules/$.to-length.js?9639","webpack:///./~/core-js/library/modules/$.set-species.js?71c4","webpack:///./~/core-js/library/modules/$.collection.js?1dbc","webpack:///./~/core-js/library/modules/es7.set.to-json.js?e75b","webpack:///./~/core-js/library/modules/$.collection-to-json.js?9a82","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/core-js/library/fn/object/assign.js?80e4","webpack:///./~/core-js/library/modules/es6.object.assign.js?9007","webpack:///./~/core-js/library/modules/$.object-assign.js?ed5a","webpack:///./~/wolfy87-eventemitter/EventEmitter.js?ed18","webpack:///./src/main/util/Util.js?5bc4","webpack:///./src/main/modules/Site.js","webpack:///./~/babel-runtime/core-js/json/stringify.js","webpack:///./~/core-js/library/fn/json/stringify.js","webpack:///./~/babel-polyfill/lib/index.js","webpack:///./~/core-js/shim.js","webpack:///./~/core-js/modules/es5.js","webpack:///./~/core-js/modules/$.js","webpack:///./~/core-js/modules/$.export.js","webpack:///./~/core-js/modules/$.global.js","webpack:///./~/core-js/modules/$.core.js","webpack:///./~/core-js/modules/$.hide.js","webpack:///./~/core-js/modules/$.property-desc.js","webpack:///./~/core-js/modules/$.descriptors.js","webpack:///./~/core-js/modules/$.fails.js","webpack:///./~/core-js/modules/$.redefine.js","webpack:///./~/core-js/modules/$.uid.js","webpack:///./~/core-js/modules/$.ctx.js","webpack:///./~/core-js/modules/$.a-function.js","webpack:///./~/core-js/modules/$.html.js","webpack:///./~/core-js/modules/$.dom-create.js","webpack:///./~/core-js/modules/$.is-object.js","webpack:///./~/core-js/modules/$.has.js","webpack:///./~/core-js/modules/$.cof.js","webpack:///./~/core-js/modules/$.invoke.js","webpack:///./~/core-js/modules/$.an-object.js","webpack:///./~/core-js/modules/$.to-object.js","webpack:///./~/core-js/modules/$.defined.js","webpack:///./~/core-js/modules/$.to-iobject.js","webpack:///./~/core-js/modules/$.iobject.js","webpack:///./~/core-js/modules/$.to-integer.js","webpack:///./~/core-js/modules/$.to-index.js","webpack:///./~/core-js/modules/$.to-length.js","webpack:///./~/core-js/modules/$.array-methods.js","webpack:///./~/core-js/modules/$.array-species-create.js","webpack:///./~/core-js/modules/$.is-array.js","webpack:///./~/core-js/modules/$.wks.js","webpack:///./~/core-js/modules/$.shared.js","webpack:///./~/core-js/modules/$.array-includes.js","webpack:///./~/core-js/modules/es6.symbol.js","webpack:///./~/core-js/modules/$.set-to-string-tag.js","webpack:///./~/core-js/modules/$.keyof.js","webpack:///./~/core-js/modules/$.get-names.js","webpack:///./~/core-js/modules/$.enum-keys.js","webpack:///./~/core-js/modules/$.library.js","webpack:///./~/core-js/modules/es6.object.assign.js","webpack:///./~/core-js/modules/$.object-assign.js","webpack:///./~/core-js/modules/es6.object.is.js","webpack:///./~/core-js/modules/$.same-value.js","webpack:///./~/core-js/modules/es6.object.set-prototype-of.js","webpack:///./~/core-js/modules/$.set-proto.js","webpack:///./~/core-js/modules/es6.object.to-string.js","webpack:///./~/core-js/modules/$.classof.js","webpack:///./~/core-js/modules/es6.object.freeze.js","webpack:///./~/core-js/modules/$.object-sap.js","webpack:///./~/core-js/modules/es6.object.seal.js","webpack:///./~/core-js/modules/es6.object.prevent-extensions.js","webpack:///./~/core-js/modules/es6.object.is-frozen.js","webpack:///./~/core-js/modules/es6.object.is-sealed.js","webpack:///./~/core-js/modules/es6.object.is-extensible.js","webpack:///./~/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./~/core-js/modules/es6.object.get-prototype-of.js","webpack:///./~/core-js/modules/es6.object.keys.js","webpack:///./~/core-js/modules/es6.object.get-own-property-names.js","webpack:///./~/core-js/modules/es6.function.name.js","webpack:///./~/core-js/modules/es6.function.has-instance.js","webpack:///./~/core-js/modules/es6.number.constructor.js","webpack:///./~/core-js/modules/$.to-primitive.js","webpack:///./~/core-js/modules/$.string-trim.js","webpack:///./~/core-js/modules/es6.number.epsilon.js","webpack:///./~/core-js/modules/es6.number.is-finite.js","webpack:///./~/core-js/modules/es6.number.is-integer.js","webpack:///./~/core-js/modules/$.is-integer.js","webpack:///./~/core-js/modules/es6.number.is-nan.js","webpack:///./~/core-js/modules/es6.number.is-safe-integer.js","webpack:///./~/core-js/modules/es6.number.max-safe-integer.js","webpack:///./~/core-js/modules/es6.number.min-safe-integer.js","webpack:///./~/core-js/modules/es6.number.parse-float.js","webpack:///./~/core-js/modules/es6.number.parse-int.js","webpack:///./~/core-js/modules/es6.math.acosh.js","webpack:///./~/core-js/modules/$.math-log1p.js","webpack:///./~/core-js/modules/es6.math.asinh.js","webpack:///./~/core-js/modules/es6.math.atanh.js","webpack:///./~/core-js/modules/es6.math.cbrt.js","webpack:///./~/core-js/modules/$.math-sign.js","webpack:///./~/core-js/modules/es6.math.clz32.js","webpack:///./~/core-js/modules/es6.math.cosh.js","webpack:///./~/core-js/modules/es6.math.expm1.js","webpack:///./~/core-js/modules/$.math-expm1.js","webpack:///./~/core-js/modules/es6.math.fround.js","webpack:///./~/core-js/modules/es6.math.hypot.js","webpack:///./~/core-js/modules/es6.math.imul.js","webpack:///./~/core-js/modules/es6.math.log10.js","webpack:///./~/core-js/modules/es6.math.log1p.js","webpack:///./~/core-js/modules/es6.math.log2.js","webpack:///./~/core-js/modules/es6.math.sign.js","webpack:///./~/core-js/modules/es6.math.sinh.js","webpack:///./~/core-js/modules/es6.math.tanh.js","webpack:///./~/core-js/modules/es6.math.trunc.js","webpack:///./~/core-js/modules/es6.string.from-code-point.js","webpack:///./~/core-js/modules/es6.string.raw.js","webpack:///./~/core-js/modules/es6.string.trim.js","webpack:///./~/core-js/modules/es6.string.iterator.js","webpack:///./~/core-js/modules/$.string-at.js","webpack:///./~/core-js/modules/$.iter-define.js","webpack:///./~/core-js/modules/$.iterators.js","webpack:///./~/core-js/modules/$.iter-create.js","webpack:///./~/core-js/modules/es6.string.code-point-at.js","webpack:///./~/core-js/modules/es6.string.ends-with.js","webpack:///./~/core-js/modules/$.string-context.js","webpack:///./~/core-js/modules/$.is-regexp.js","webpack:///./~/core-js/modules/$.fails-is-regexp.js","webpack:///./~/core-js/modules/es6.string.includes.js","webpack:///./~/core-js/modules/es6.string.repeat.js","webpack:///./~/core-js/modules/$.string-repeat.js","webpack:///./~/core-js/modules/es6.string.starts-with.js","webpack:///./~/core-js/modules/es6.array.from.js","webpack:///./~/core-js/modules/$.iter-call.js","webpack:///./~/core-js/modules/$.is-array-iter.js","webpack:///./~/core-js/modules/core.get-iterator-method.js","webpack:///./~/core-js/modules/$.iter-detect.js","webpack:///./~/core-js/modules/es6.array.of.js","webpack:///./~/core-js/modules/es6.array.iterator.js","webpack:///./~/core-js/modules/$.add-to-unscopables.js","webpack:///./~/core-js/modules/$.iter-step.js","webpack:///./~/core-js/modules/es6.array.species.js","webpack:///./~/core-js/modules/$.set-species.js","webpack:///./~/core-js/modules/es6.array.copy-within.js","webpack:///./~/core-js/modules/$.array-copy-within.js","webpack:///./~/core-js/modules/es6.array.fill.js","webpack:///./~/core-js/modules/$.array-fill.js","webpack:///./~/core-js/modules/es6.array.find.js","webpack:///./~/core-js/modules/es6.array.find-index.js","webpack:///./~/core-js/modules/es6.regexp.constructor.js","webpack:///./~/core-js/modules/$.flags.js","webpack:///./~/core-js/modules/es6.regexp.flags.js","webpack:///./~/core-js/modules/es6.regexp.match.js","webpack:///./~/core-js/modules/$.fix-re-wks.js","webpack:///./~/core-js/modules/es6.regexp.replace.js","webpack:///./~/core-js/modules/es6.regexp.search.js","webpack:///./~/core-js/modules/es6.regexp.split.js","webpack:///./~/core-js/modules/es6.promise.js","webpack:///./~/core-js/modules/$.strict-new.js","webpack:///./~/core-js/modules/$.for-of.js","webpack:///./~/core-js/modules/$.species-constructor.js","webpack:///./~/core-js/modules/$.microtask.js","webpack:///./~/core-js/modules/$.task.js","webpack:///./~/core-js/modules/$.redefine-all.js","webpack:///./~/core-js/modules/es6.map.js","webpack:///./~/core-js/modules/$.collection-strong.js","webpack:///./~/core-js/modules/$.collection.js","webpack:///./~/core-js/modules/es6.set.js","webpack:///./~/core-js/modules/es6.weak-map.js","webpack:///./~/core-js/modules/$.collection-weak.js","webpack:///./~/core-js/modules/es6.weak-set.js","webpack:///./~/core-js/modules/es6.reflect.apply.js","webpack:///./~/core-js/modules/es6.reflect.construct.js","webpack:///./~/core-js/modules/es6.reflect.define-property.js","webpack:///./~/core-js/modules/es6.reflect.delete-property.js","webpack:///./~/core-js/modules/es6.reflect.enumerate.js","webpack:///./~/core-js/modules/es6.reflect.get.js","webpack:///./~/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./~/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.has.js","webpack:///./~/core-js/modules/es6.reflect.is-extensible.js","webpack:///./~/core-js/modules/es6.reflect.own-keys.js","webpack:///./~/core-js/modules/$.own-keys.js","webpack:///./~/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./~/core-js/modules/es6.reflect.set.js","webpack:///./~/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./~/core-js/modules/es7.array.includes.js","webpack:///./~/core-js/modules/es7.string.at.js","webpack:///./~/core-js/modules/es7.string.pad-left.js","webpack:///./~/core-js/modules/$.string-pad.js","webpack:///./~/core-js/modules/es7.string.pad-right.js","webpack:///./~/core-js/modules/es7.string.trim-left.js","webpack:///./~/core-js/modules/es7.string.trim-right.js","webpack:///./~/core-js/modules/es7.regexp.escape.js","webpack:///./~/core-js/modules/$.replacer.js","webpack:///./~/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./~/core-js/modules/es7.object.values.js","webpack:///./~/core-js/modules/$.object-to-array.js","webpack:///./~/core-js/modules/es7.object.entries.js","webpack:///./~/core-js/modules/es7.map.to-json.js","webpack:///./~/core-js/modules/$.collection-to-json.js","webpack:///./~/core-js/modules/es7.set.to-json.js","webpack:///./~/core-js/modules/js.array.statics.js","webpack:///./~/core-js/modules/web.timers.js","webpack:///./~/core-js/modules/$.partial.js","webpack:///./~/core-js/modules/$.path.js","webpack:///./~/core-js/modules/web.immediate.js","webpack:///./~/core-js/modules/web.dom.iterable.js","webpack:///./~/babel-regenerator-runtime/runtime.js","webpack:///./~/process/browser.js","webpack:///./~/ima.js-babel6-polyfill/index.js","webpack:///./~/flexcss/src/main/modules/All.js","webpack:///./~/flexcss/src/main/Form.js","webpack:///./~/flexcss/src/main/Tooltip.js","webpack:///./~/flexcss/src/main/util/Util.js","webpack:///./~/flexcss/src/main/DestroyableWidget.js","webpack:///./~/flexcss/src/main/util/Settings.js","webpack:///./~/isomorphic-fetch/fetch-npm-browserify.js","webpack:///./~/whatwg-fetch/fetch.js","webpack:///./~/flexcss/src/main/util/Event.js","webpack:///./~/flexcss/src/main/Modal.js","webpack:///./~/flexcss/src/main/Widget.js","webpack:///./~/flexcss/src/main/lib/FixedWindow.js","webpack:///./~/flexcss/src/main/lib/debounce.js","webpack:///./~/flexcss/src/main/Toggleable.js","webpack:///./~/flexcss/src/main/OffCanvas.js","webpack:///./~/flexcss/src/main/Dropdown.js","webpack:///./~/flexcss/src/main/LightBox.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SCjCS;SAAW;SAAM;SAAc,4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIxC,KAAM,WAAW,UAAX;;;;;;AAIC,KAAM,4EAAkC,4BAAlC;;;;AAIb,KAAM,gCAAgC,0BAAhC;;;;AAIN,KAAM,sBAAsB,mBAAtB;;;;AAIN,KAAM,8BAA8B,wBAA9B;;;;AAIN,KAAM,eAAe,mBAAf;;;;;;AAMN,KAAM,iCAAiC,EAAjC;;;;;AAMC,KAAM,kDAAqB,cAArB;;;;;;KAKP;;;;;;;;;;AAOF,cAPE,SAOF,CAAY,QAAZ,EAAsB,OAAtB,EAA+B,OAA/B,EAAwC;6CAPtC,WAOsC;;;;;;;;kGAPtC,sBAQQ,SAAS,WADqB;;AAOpC,eAAK,EAAL,GAAU,eAAK,IAAL,EAAV;;;;;;AAPoC,cAapC,CAAK,cAAL,GAAsB,IAAtB;;;;;;AAboC,cAmBpC,CAAK,YAAL,GAAoB,IAApB;;;;;AAnBoC,cAwBpC,CAAK,OAAL,GAAe,WAAW,MAAK,QAAL;;;;;;;AAxBU,cA+BpC,CAAK,aAAL,GAAqB,IAArB,CA/BoC;;MAAxC;;;;;;;gCAPE;;iCA4CM;AACJ,oBAAO,KAAK,EAAL,CADH;;;;;;;;;;+BAQF,IAAI;;;AACN,kBAAK,EAAL,GAAU,EAAV,CADM;;AAGN,iBAAI,KAAK,aAAL,EAAoB;AACpB,sBAAK,YAAL,CAAkB,OAAlB,CAA0B,UAAC,IAAD;4BAAU,KAAK,YAAL,CAAkB,YAAlB,EAAgC,OAAK,EAAL;kBAA1C,CAA1B,CADoB;cAAxB;;AAIA,oBAAO,IAAP,CAPM;;;;;;;;;;;;6CAgBU,eAAe;AAC/B,iBAAM,KAAK,KAAK,QAAL,CAAc,aAAd,CAA4B,QAA5B,CAAL,CADyB;AAE/B,iBAAM,QAAQ,MAAR,CAFyB;;AAI/B,iBAAI,CAAC,aAAD,EAAgB;AAChB,oBAAG,SAAH,GAAe,KAAK,OAAL,CAAa,SAAb,CAAuB,IAAvB,CAA4B,GAA5B,CAAf;;AADgB,0BAGhB,CAAU,kBAAV,CAA6B,EAA7B,EAAiC,IAAjC;;AAHgB,qBAKhB,CAAK,YAAL,CAAkB,IAAlB,CAAuB,EAAvB,EALgB;AAMhB,oBAAG,YAAH,CAAgB,2BAAhB,EAA6C,KAA7C,EANgB;AAOhB,oBAAG,YAAH,CAAgB,YAAhB,EAA8B,KAAK,KAAL,EAA9B,EAPgB;cAApB;AASA,gBAAG,YAAH,0BAAmC,KAAnC,EAb+B;;AAe/B,oBAAO,EAAP,CAf+B;;;;;;;;;;;;qDAwBP,MAAM;AAC9B,iBAAM,KAAK,KAAK,mBAAL,EAAL,CADwB;AAE9B,gBAAG,YAAH,CAAgB,mBAAhB,EAAqC,MAArC,EAF8B;AAG9B,gBAAG,WAAH,GAAiB,IAAjB,CAH8B;AAI9B,oBAAO,EAAP,CAJ8B;;;;;;;;;;;;;;oDAgBP,aAAa,MAAM,QAAQ,OAAO;AACzD,iBAAM,UAAU,KAAK,2BAAL,CAAiC,IAAjC,CAAV,CADmD;AAEzD,qBAAQ,YAAR,iCAA+C,eAAK,mBAAL,CAAyB,WAAzB,EAAsC,KAAtC,CAA/C,EAFyD;AAGzD,qBAAQ,YAAR,CAAqB,+BAArB,EAAsD,MAAtD,EAHyD;AAIzD,qBAAQ,YAAR,CAAqB,6BAArB,EAAoD,KAApD,EAJyD;;AAMzD,oBAAO,OAAP,CANyD;;;;;;;;;;;;;;;;qCAmBjD,IAAI,gBAAgB,eAAe,oBAAoB,eAAe;AAC9E,iBAAM,gBAAgB,iBAAiB,CAAjB,GAAqB,aAArB,GAAqC,eAAK,SAAL,CAAe,EAAf,CAArC,CADwD;AAE9E,iBAAM,UAAU,KAAK,mBAAL,CAAyB,aAAzB,CAAV,CAFwE;AAG9E,qBAAQ,YAAR,iCAA+C,eAAK,mBAAL,CAAyB,EAAzB,EAA6B,aAA7B,CAA/C,EAH8E;AAI9E,iBAAM,eAAe,kBAAkB,CAAlB,GAAsB,cAAtB,GAAuC,eAAK,oBAAL,CAA0B,EAA1B,CAAvC,CAJyD;AAK9E,qBAAQ,YAAR,CAAqB,+BAArB,EAAsD,YAAtD;;;AAL8E,oBAQ9E,CAAQ,YAAR,CAAqB,6BAArB,EAAoD,aAApD,EAR8E;;AAU9E,iBAAI,kBAAJ,EAAwB;AACpB,yBAAQ,YAAR,CAAqB,mBAArB,EAA0C,mBAA1C,EADoB;cAAxB;AAGA,iBAAM,OAAO,eAAK,IAAL,CAAU,EAAV,EAAc,OAAd,CAAP,CAbwE;;AAe9E,kBAAK,IAAL,CAAU,kBAAV,EAA8B,EAA9B,EAAkC,IAAlC,EAf8E;;AAiB9E,oBAAO,IAAP,CAjB8E;;;;;;;;;;;;;+CA2B5D,iBAAiB,OAAO,QAAQ;AAClD,iBAAM,UAAU,KAAK,QAAL,CAAc,aAAd,CAA4B,QAA5B,CAAV,CAD4C;AAElD,qBAAQ,YAAR,0BAAwC,MAAxC,EAFkD;AAGlD,qBAAQ,YAAR,iCAA+C,eAAK,mBAAL,CAAyB,eAAzB,EAA0C,KAA1C,CAA/C,EAHkD;AAIlD,qBAAQ,YAAR,CAAqB,+BAArB,EAAsD,MAAtD,EAJkD;AAKlD,qBAAQ,YAAR,CAAqB,6BAArB,EAAoD,KAApD,EALkD;AAMlD,oBAAO,OAAP,CANkD;;;;;;;;;;;;8BAejD,OAAO,cAAc,YAAY;AAClC,iBAAI,iBAAiB,KAAjB,CAD8B;AAElC,oBAAO,kBAAkB,mBAAmB,WAAW,UAAX,EAAuB;AAC/D,qBAAM,oBAAoB,cAApB,CADyD;AAE/D,kCAAiB,eAAe,UAAf,CAF8C;AAG/D,qBAAI,KAAK,YAAL,CAAkB,kBAAkB,WAAlB,EAA+B,YAAjD,CAAJ,EAAoE;AAChE,2BADgE;kBAApE;cAHJ;;;;;;;;;;;;;;;sCAmBS,OAAO,cAAc;;;AAC9B,iBAAI,OAAO,KAAP,CAD0B;AAE9B,iBAAI,QAAQ,KAAR;;;AAF0B,iBAKxB,OAAO,SAAP,IAAO,CAAC,CAAD,EAAO;AAChB,qBAAM,WAAW,UAAU,kBAAV,CAA6B,EAAE,UAAF,CAAxC,CADU;AAEhB,qBAAI,EAAE,UAAF,CAAa,YAAb,CAA0B,mBAA1B,KACA,EAAE,UAAF,CAAa,YAAb,CAA0B,2BAA1B,CADA,IAEA,mBAFA,EAEmB;AACnB,4BAAK,WAAL,CAAiB,CAAjB,EAAoB,SAApB,EAA+B,SAA/B,EAA0C,SAA1C,EAAqD,IAArD,EADmB;kBAFvB,MAIO;AACH,4BAAK,WAAL,CAAiB,CAAjB,EADG;kBAJP;cAFS;;;;AALiB,iBAkBxB,SAAS,SAAT,MAAS,CAAC,CAAD,EAAO;AAClB,qBAAI,CAAC,eAAK,WAAL,CAAiB,CAAjB,CAAD,EAAsB;AACtB,0BAAK,CAAL,EADsB;kBAA1B;cADW,CAlBe;;AAwB9B,iBAAM,kBAAkB,SAAlB,eAAkB,CAAC,CAAD,EAAO;AAC3B,qBAAI,MAAM,YAAN,EAAoB;AACpB,4BAAO,KAAP,CADoB;kBAAxB;AAGA,qBAAI,KAAK,SAAL,KAAmB,EAAE,QAAF,EAAY;AAC/B,4BAAO,CAAP,EAD+B;kBAAnC;AAGA,wBAAO,IAAP,CAP2B;cAAP,CAxBM;;AAkC9B,iBAAM,qBAAqB,SAArB,kBAAqB,CAAC,EAAD,EAAQ;AAC/B,wBAAO,EAAP,EAD+B;cAAR,CAlCG;;AAsC9B,oBAAO,SAAS,IAAT,IAAiB,SAAS,YAAT,EAAuB;AAC3C,qBAAM,cAAc,IAAd,CADqC;AAE3C,wBAAO,KAAK,WAAL;;AAFoC,qBAIvC,KAAK,SAAL,KAAmB,YAAY,QAAZ,EAAsB;AACzC,4BAAO,WAAP,EADyC;kBAA7C,MAEO;AACH,yBAAK,YAAY,uBAAZ,CAAoC,YAApC,IAAoD,8BAApD,EAAqF;AACtF,wCAAK,OAAL,CAAa,WAAb,EAA0B,eAA1B,EADsF;AAEtF,iCAAQ,IAAR,CAFsF;sBAA1F,MAGO;AACH,wCAAK,aAAL,CAAmB,WAAnB,EAAgC,kBAAhC,EADG;sBAHP;AAMA,yBAAI,KAAJ,EAAW;AACP,gCAAO,IAAP,CADO;sBAAX;kBATJ;cAJJ;AAkBA,oBAAO,KAAP,CAxD8B;;;;;;;;;;;;;2CAkEhB,UAAU,YAAY,UAAU;AAC9C,iBAAM,cAAc,SAAS,SAAT,CAD0B;AAE9C,iBAAM,eAAe,eAAK,SAAL,CAAe,QAAf,CAAf,CAFwC;;AAI9C,iBAAI,CAAC,WAAD,EAAc;AACd,wBAAO,KAAP,CADc;cAAlB;;;AAJ8C,iBAS1C,aAAa,CAAb,EAAgB;AAChB,qBAAM,aAAa,YAAY,KAAZ,CAAkB,CAAlB,EAAqB,UAArB,CAAb,CADU;AAEhB,0BAAS,UAAT,CAAoB,YAApB,CAAiC,KAAK,QAAL,CAAc,cAAd,CAA6B,UAA7B,CAAjC,EAA2E,QAA3E;;AAFgB,+BAIhB,CAAK,IAAL,CAAU,SAAS,eAAT,EAA0B,KAAK,qBAAL,CAA2B,QAA3B,EAChC,YADgC,EAClB,eAAK,oBAAL,CAA0B,QAA1B,CADkB,CAApC,EAJgB;cAApB;;;AAT8C,iBAkB1C,WAAW,YAAY,MAAZ,EAAoB;AAC/B,qBAAM,YAAY,YAAY,KAAZ,CAAkB,QAAlB,EAA4B,YAAY,MAAZ,CAAxC,CADyB;AAE/B,0BAAS,UAAT,CAAoB,YAApB,CAAiC,KAAK,QAAL,CAAc,cAAd,CAA6B,SAA7B,CAAjC,EAA0E,SAAS,WAAT,CAA1E,CAF+B;AAG/B,gCAAK,IAAL,CAAU,SAAS,WAAT,EAAsB,KAAK,qBAAL,CAA2B,QAA3B,EAC5B,YAD4B,EACd,eAAK,oBAAL,CAA0B,QAA1B,IAAsC,QAAtC,CADlB,EAH+B;cAAnC;;;AAlB8C,qBA0B9C,CAAS,SAAT,GAAqB,YAAY,KAAZ,CAAkB,UAAlB,EAA8B,QAA9B,CAArB,CA1B8C;AA2B9C,kBAAK,cAAL,GAAsB,KAAK,WAAL,CAAiB,QAAjB,EAClB,eAAK,oBAAL,CAA0B,QAA1B,IAAsC,UAAtC,EAAkD,YADhC,EAC8C,IAD9C,EACoD,UADpD,CA3BwB;AA6B9C,kBAAK,YAAL,GAAoB,KAAK,cAAL,CA7B0B;AA8B9C,oBAAO,KAAK,cAAL,CA9BuC;;;;;;;;;;;;;;;;;gDA6C3B,gBAAgB,cAAc,aAAa,WAAW;;AAEzE,iBAAM,sBAAsB,eAAK,SAAL,CAAe,cAAf,CAAtB,CAFmE;AAGzE,iBAAM,oBAAoB,eAAK,SAAL,CAAe,YAAf,CAApB;;;AAHmE,iBAMnE,qBAAqB,eAAe,SAAf;;AAN8C,iBAQrE,SAAS,cAAT,CARqE;;AAUzE,iBAAI,cAAc,kBAAd,EAAkC;AAClC,qBAAM,qBAAqB,mBAAmB,KAAnB,CAAyB,WAAzB,EAAsC,mBAAmB,MAAnB,CAA3D;;AAD4B,+BAGlC,CAAe,SAAf,GAA2B,mBAAmB,KAAnB,CAAyB,CAAzB,EAA4B,WAA5B,CAA3B,CAHkC;;AAKlC,qBAAM,cAAc,eAAK,oBAAL,CAA0B,cAA1B,CAAd;;AAL4B,uBAOlC,GAAS,KAAK,0BAAL,CAAgC,cAAhC,EAAgD,kBAAhD,EACL,gBAAgB,WAAhB,GAA8B,WAA9B,GAA4C,cAAc,WAAd,EAA2B,mBADlE,CAAT;;AAPkC,+BAUlC,CAAe,UAAf,CAA0B,YAA1B,CAAuC,MAAvC,EAA+C,eAAe,WAAf,CAA/C,CAVkC;AAWlC,sBAAK,cAAL,GAAsB,MAAtB,CAXkC;;AAalC,qBAAI,eAAe,SAAf,EAA0B;;AAE1B,oCAAK,IAAL,CAAU,cAAV,EAA0B,KAAK,qBAAL,CAA2B,cAA3B,EAA2C,mBAA3C,EACtB,eAAK,oBAAL,CAA0B,cAA1B,CADsB,CAA1B,EAF0B;kBAA9B;cAbJ;;;AAVyE,iBA+BrE,OAAO,YAAP;;;AA/BqE,iBAkCnE,mBAAmB,aAAa,SAAb;;AAlCgD,iBAoCrE,cAAc,gBAAd,EAAgC;;AAEhC,qBAAM,mBAAmB,iBAAiB,KAAjB,CAAuB,CAAvB,EAA0B,SAA1B,CAAnB,CAF0B;AAGhC,8BAAa,SAAb,GAAyB,iBAAiB,KAAjB,CAAuB,SAAvB,EAAkC,iBAAiB,MAAjB,CAA3D;;AAHgC,qBAKhC,GAAO,KAAK,0BAAL,CAAgC,YAAhC,EAA8C,gBAA9C,EACH,eAAK,oBAAL,CAA0B,YAA1B,CADG,EACsC,iBADtC,CAAP,CALgC;;AAQhC,8BAAa,UAAb,CAAwB,YAAxB,CAAqC,IAArC,EAA2C,YAA3C,EARgC;AAShC,sBAAK,YAAL,GAAoB,IAApB,CATgC;AAUhC,qBAAM,eAAe,eAAK,oBAAL,CAA0B,YAA1B,CAAf,CAV0B;AAWhC,gCAAK,IAAL,CAAU,YAAV,EAAwB,KAAK,qBAAL,CAA2B,YAA3B,EAAyC,iBAAzC,EACpB,iBAAiB,SAAjB,GAA6B,YAA7B,GAA4C,eAAe,SAAf,CADhD,EAXgC;cAApC;;AAeA,oBAAO;AACH,+BADG;AAEH,2BAFG;cAAP,CAnDyE;;;;;;;;;;;;;;;;6CAmEzD,iBAAiB,eAAe,gBAAgB,aAAa,YAAY;AACzF,iBAAI,KAAK,aAAL,EAAoB;AACpB,wBAAO,KAAK,aAAL,CADa;cAAxB;AAGA,iBAAI,iBAAiB,eAAjB,CAJqF;AAKzF,iBAAI,eAAe,aAAf,CALqF;AAMzF,iBAAI,YAAY,UAAZ,CANqF;AAOzF,iBAAI,QAAQ,eAAK,OAAL,CAAa,cAAb,EAA6B,cAA7B,CAAR,CAPqF;AAQzF,qBAAQ,MAAM,MAAM,MAAN,GAAe,CAAf,CAAd,CARyF;AASzF,iBAAM,mBAAmB,QAAQ,KAAR,GAAgB,cAAhB;;;;;;;;;;AATgE,iBAmBnF,sBAAsB,eAAK,kBAAL,CAAwB,cAAxB,CAAtB,CAnBmF;AAoBzF,iBAAM,oBAAoB,eAAK,kBAAL,CAAwB,YAAxB,CAApB;;;;;AApBmF,iBAyBrF,eAAe,QAAf,KAA4B,KAAK,SAAL,IAAkB,aAAa,QAAb,KAA0B,KAAK,SAAL,EAAgB;AACxF,qBAAI,mBAAmB,YAAnB,EAAiC;AACjC,oCAAe,aAAa,kBAAb,IAAmC,YAAnC,CADkB;kBAArC;cADJ;;;;AAzByF,iBAiCrF,eAAe,QAAf,KAA4B,KAAK,SAAL,EAAgB;AAC5C,gCAAK,OAAL,CAAa,cAAb,EAA6B,UAAC,EAAD,EAAQ;AACjC,yBAAI,GAAG,QAAH,KAAgB,KAAK,SAAL,EAAgB;AAChC,0CAAiB,EAAjB,CADgC;AAEhC,gCAAO,KAAP,CAFgC;sBAApC;AAIA,4BAAO,IAAP,CALiC;kBAAR,CAA7B,CAD4C;cAAhD;;AAUA,iBAAI,aAAa,QAAb,KAA0B,KAAK,SAAL,EAAgB;AAC1C,qBAAI,aAAa,cAAb,CADsC;;AAG1C,qBAAI,cAAc,CAAd,EAAiB;AACjB,kCAAa,aAAa,sBAAb,IAAuC,cAAvC,CADI;kBAArB;;;AAH0C,qBAQpC,uBAAuB,eAAK,OAAL,CAAa,UAAb,EAAyB,qCAA+B,IAA/B,CAAzB,CAA8D,UAA9D,CARa;AAS1C,qBAAI,qBAAqB,MAArB,EAA6B;AAC7B,yBAAM,IAAI,qBAAqB,qBAAqB,MAArB,GAA8B,CAA9B,CAAzB,CADuB;AAE7B,yBAAI,EAAE,QAAF,KAAe,KAAK,SAAL,EAAgB;AAC/B,wCAAe,CAAf,CAD+B;AAE/B,qCAAY,EAAE,MAAF,CAFmB;sBAAnC,MAGO;AACH,6BAAI,IAAI,EAAE,SAAF,CADL;AAEH,gCAAO,MAAM,IAAN,EAAY;AACf,iCAAI,KAAK,EAAE,QAAF,KAAe,KAAK,SAAL,EAAgB;AACpC,gDAAe,CAAf,CADoC;AAEpC,6CAAY,EAAE,MAAF,CAFwB;AAGpC,qCAAI,EAAE,UAAF,CAAa,YAAb,CAA0B,+BAA1B,CAAJ,EAAgE;AAC5D,iDAAY,SAAS,EAAE,UAAF,CACZ,YADY,CACC,+BADD,CAAT,EAC4C,EAD5C,IACkD,SADlD,CADgD;kCAAhE;8BAHJ;AAQA,iCAAI,EAAE,SAAF,CATW;0BAAnB;sBALJ;kBAFJ;;AAT0C,qBA8BtC,aAAa,QAAb,KAA0B,KAAK,SAAL,EAAgB;AAC1C,2BAAM,MAAM,8DAAN,CAAN,CAD0C;kBAA9C;cA9BJ;;AAmCA,kBAAK,aAAL,GAAqB;;AAEjB,mCAAsB,WAAtB,EACA,oBAAoB,SAApB;;AAEA,4BAAK,OAAL,CAAa,cAAb,EAA6B,KAAK,OAAL,CALZ,EAMjB,eAAK,OAAL,CAAa,YAAb,EAA2B,KAAK,OAAL,CANV,CAArB,CA9EyF;;AAuFzF,kBAAK,aAAL,CAAmB,QAAnB,GAA8B,IAA9B,CAvFyF;;AA0FzF,kBAAK,gBAAL,CAAsB,cAAtB,EAAsC,YAAtC,EAAoD,WAApD,EAAiE,SAAjE,EAA4E,gBAA5E,EAA8F,CAAC,CAAC,KAAD,CAA/F,CA1FyF;;AA4FzF,oBAAO,KAAK,aAAL,CA5FkF;;;;;;;;;;;;;;;;;0CA0G5E,gBAAgB,cAAc,aAAa,WAAW,kBAAkB,OAAO;;AAE5F,iBAAI,mBAAmB,YAAnB,EAAiC;AACjC,sBAAK,iBAAL,CAAuB,cAAvB,EAAuC,WAAvC,EAAoD,SAApD,EADiC;cAArC,MAEO;AACH,qBAAM,SAAS,KAAK,sBAAL,CAA4B,cAA5B,EAA4C,YAA5C,EAA0D,WAA1D,EAAuE,SAAvE,CAAT,CADH;AAEH,qBAAM,QAAQ,KAAK,YAAL,CAAkB,OAAlB,CAA0B,OAAO,IAAP,CAAlC;;AAFH,qBAIH,CAAK,YAAL,CAAkB,MAAlB,CAAyB,KAAzB,EAAgC,CAAhC,EAJG;AAKH,qBAAI,CAAC,KAAD,EAAQ;AACR,0BAAK,YAAL,CAAkB,OAAO,MAAP,CAAc,WAAd,EAA2B,YAA7C,EADQ;kBAAZ,MAEO;AACH,0BAAK,IAAL,CAAU,OAAO,MAAP,EAAe,YAAzB,EAAuC,gBAAvC,EADG;kBAFP;AAKA,sBAAK,YAAL,CAAkB,IAAlB,CAAuB,OAAO,IAAP,CAAvB,CAVG;cAFP;;;;;;;;;;;;;;;;;wCA2BW,WAAW,SAAS;AAC/B,iBAAM,iBAAiB,eAAK,eAAL,CAAqB,SAArB,EAAgC,KAAK,OAAL,CAAjD,CADyB;AAE/B,iBAAM,eAAe,eAAK,eAAL,CAAqB,OAArB,EAA8B,KAAK,OAAL,CAA7C,CAFyB;AAG/B,iBAAI,kBAAkB,YAAlB,IAAkC,eAAe,IAAf,IAAuB,aAAa,IAAb,EAAmB;AAC5E,qBAAM,QAAQ,SAAS,WAAT,EAAR,CADsE;AAE5E,uBAAM,QAAN,CAAe,eAAe,IAAf,EAAqB,eAAe,MAAf,CAApC,CAF4E;AAG5E,uBAAM,MAAN,CAAa,aAAa,IAAb,EAAmB,aAAa,MAAb,CAAhC,CAH4E;AAI5E,qBAAM,OAAO,MAAM,QAAN,EAAP,CAJsE;AAK5E,qBAAM,SAAS,KAAK,eAAL,CAAqB,KAArB,CAAT,CALsE;AAM5E,wBAAO,IAAP,GAAc,IAAd,CAN4E;AAO5E,wBAAO,IAAP,CAP4E;cAAhF;AASA,mBAAM,IAAI,KAAJ,CAAU,wDAAV,CAAN,CAZ+B;;;;;;;;;;;;;;;;0CA2BlB,QAAQ;AACrB,oBAAO,KAAK,cAAL,CACA,OAAO,kBAAP,SAA6B,OAAO,WAAP,EAC7B,OAAO,gBAAP,SAA2B,OAAO,SAAP,CAFlC,CADqB;;;;;;;;;;;yCAWT,OAAO;AACnB,iBAAM,OAAO,MAAM,QAAN,EAAP,CADa;AAEnB,iBAAM,SAAS,KAAK,mBAAL,CAAyB,MAAM,cAAN,EAAsB,MAAM,YAAN,EAC1D,MAAM,uBAAN,EAA+B,MAAM,WAAN,EAAmB,MAAM,SAAN,CADhD,CAFa;AAInB,oBAAO,IAAP,GAAc,IAAd,CAJmB;AAKnB,oBAAO,MAAP,CALmB;;;;;;;;;mCAWb;AACN,kBAAK,YAAL,CAAkB,OAAlB,CAA0B,UAAC,IAAD,EAAU;AAChC,wBAAO,KAAK,eAAL,CADyB;AAEhC,sBAAK,SAAL,GAAiB,EAAjB,CAFgC;cAAV,CAA1B,CADM;AAKN,kBAAK,WAAL,GALM;;;;;;;;;;;6BA/BG;AACT,oBAAO,KAAK,aAAL,CADE;;;;4CA4Ca,IAAI,UAAU;AACpC,gBAAG,eAAH,GAAqB,QAArB,CADoC;AAEpC,oBAAO,EAAP,CAFoC;;;;;;;;;;4CASd,IAAI;AAC1B,oBAAO,KAAK,GAAG,eAAH,GAAqB,IAA1B,CADmB;;;YA9jB5B;;;mBAmkBS,U;;;;;;ACjnBf,mBAAkB,uD;;;;;;ACAlB;AACA,gE;;;;;;ACDA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;AC7CA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;AC1BD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AChBA;;AAEA,uGAAsG,mBAAmB,EAAE,mBAAmB,oGAAoG;;AAElP;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,EAAC;AACD;AACA,G;;;;;;ACpBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,sD;;;;;;ACFA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,iD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B,2BAA0B;AAC1B,2BAA0B;AAC1B,sBAAqB;AACrB;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,8DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB,2BAA0B;AAC1B,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,G;;;;;;AC9JA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAgE,gBAAgB;AAChF;AACA,IAAG,2CAA2C,gCAAgC;AAC9E;AACA;AACA,G;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAoB,aAAa;AACjC,IAAG;AACH,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,G;;;;;;ACtDA;AACA;;AAEA,4BAA2B,uCAAiD,E;;;;;;ACH5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACVA,mBAAkB,wD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;;AAEA,2CAA0C,gCAAqC,E;;;;;;ACH/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,cAAa,gCAAgC;AAC7C,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,iB;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,WAAW;AAC1B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,SAAS;AACxB,iBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA,wBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,SAAS;AACxB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,gBAAe,qBAAqB;AACpC,gBAAe,WAAW;AAC1B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,MAAM;AACrB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe,cAAc;AAC7B,gBAAe,KAAK;AACpB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAe,EAAE;AACjB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA,kDAAiD;AACjD;;AAEA;AACA,4BAA2B,mBAAmB;AAC9C;AACA,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AA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AmHhD,cAAS,gBAAT,CAA0B,SAA1B,EAAqC,UAAC,CAAD,EAAO;AACxC,aAAI,EAAE,OAAF,KAAc,SAAd,EAAyB;AACzB,0BADyB;UAA7B;MADiC,CAArC,CAnHgD;;AAyHhD,cAAS,gBAAT,CAA0B,OAA1B,EAAmC,UAAC,CAAD,EAAO;AACtC,aAAI,EAAE,MAAF,CAAS,EAAT,KAAgB,aAAhB,EAA+B;AAC/B,oBAAO,YAAP,CAD+B;UAAnC,MAEO,IAAI,EAAE,MAAF,CAAS,EAAT,KAAgB,cAAhB,EAAgC;AACvC,uBAAU,OAAV,CAAkB,UAAC,KAAD;wBAAW,MAAM,OAAN;cAAX,CAAlB,CADuC;AAEvC,2BAAc,EAAd,CAFuC;AAGvC,yBAAY,EAAZ,CAHuC;AAIvC,0BAAa,OAAb,CAAqB,WAArB,EAAkC,yBAAe,EAAf,CAAlC,EAJuC;UAApC;MAHwB,CAAnC,CAzHgD;EAAN,CAA9C;;;;;;;;ACbA,mBAAkB,wD;;;;;;ACAlB;AACA,yCAAwC;AACxC;AACA,G;;;;;;ACHA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,8B;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2C;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA4C,gBAAgB,UAAU,GAAG;AACzE,IAAG;AACH;AACA;AACA;AACA,MAAK,UAAU;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,UAAU;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA,2BAA0B,SAAS;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,UAAU;AACnB;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8BAA6B,kCAAiC;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,sCAAsC;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,WAAW;AACpB;AACA;AACA,EAAC;;AAED;AACA,6BAA4B,gBAAgB,kBAAkB,GAAG;;AAEjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACnRD;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAqF,uBAAuB;AAC5G,oEAAmE;AACnE,iEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;ACxCA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;AACD;AACA,EAAC,E;;;;;;AC1BD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA,+FAA8F,E;;;;;;ACA9F;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,G;;;;;;ACFA,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,G;;;;;;ACfA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,eAAe;AACxB;AACA;AACA;AACA,uCAAsC;AACtC;AACA,+BAA8B;AAC9B,8BAA6B;AAC7B,gCAA+B;AAC/B,oCAAmC;AACnC,UAAS,+BAA+B;AACxC;AACA;AACA;AACA;AACA,G;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,G;;;;;;ACfA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,WAAW,eAAe;AAC/B;AACA,MAAK;AACL;AACA,G;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AACA;AACA;AACA,mBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACbA,wB;;;;;;ACAA;AACA;;AAEA,2CAA0C,iCAAqC,E;;;;;;ACH/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,cAAa,gCAAgC;AAC7C,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,iB;;;;;;AChCD;AACA;AACA,+BAA8B,6BAA8B,E;;;;;;ACF5D;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA,+BAA8B,6CAA6C,E;;;;;;ACF3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA,G;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,E;;;;;;ACTA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA,EAAC,E;;;;;;ACHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACfD;AACA;AACA;AACA;AACA;AACA;AACA,6EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAE,E;;;;;;ACZF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD,MAAK;AACL;AACA,wCAAuC,cAAc,OAAO;AAC5D,wCAAuC,cAAc,OAAO;AAC5D;AACA;AACA,oEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAwC,0BAA0B,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,E;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;AC5BA;AACA;;AAEA,+BAA8B,0BAA0B,E;;;;;;ACHxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;;AAEA,+BAA8B,oCAAqC,E;;;;;;ACHnE;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACTD;AACA;;AAEA,+BAA8B,mCAAmC,E;;;;;;ACHjE;AACA;;AAEA,+BAA8B,oCAAoC,E;;;;;;ACHlE;AACA;;AAEA,+BAA8B,uBAAuB,E;;;;;;ACHrD;AACA;;AAEA,+BAA8B,mBAAmB,E;;;;;;ACHjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACbD;AACA;AACA;AACA,G;;;;;;ACHA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA4B,aAAa,E;;;;;;ACPzC;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA,G;;;;;;ACHA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;;AAEA,6BAA4B,gCAAiC,E;;;;;;ACH7D;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACzBD;AACA;AACA;;AAEA;AACA,yCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,EAAC,E;;;;;;ACzBD;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AChBD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA,6BAA4B,gCAAiC,E;;;;;;ACH7D;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA,6BAA4B,+BAA+B,E;;;;;;ACH3D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACdD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACXD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC,E;;;;;;ACvBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC,E;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACND;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA,8FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACpBD,uBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK,UAAU;AACf,IAAG;AACH,G;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACXD;;AAEA;AACA;AACA;AACA,EAAC,E;;;;;;ACLD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO,MAAM;AACb;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA2E,kBAAkB,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,gCAAgC;AACpF;AACA;AACA,MAAK;AACL;AACA,kCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnCD;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;;AAEA;AACA;AACA,gCAA+B,qBAAqB;AACpD,gCAA+B,SAAS,EAAE;AAC1C,EAAC,UAAU;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,aAAa;AACxC,gCAA+B,aAAa;AAC5C;AACA,IAAG,UAAU;AACb;AACA,G;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AClBD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA;AACA;AACA;AACA,6FAAuF;AACvF;AACA;AACA,G;;;;;;ACNA;AACA,WAAU;AACV,G;;;;;;ACFA,mC;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAoB,aAAa;AACjC,IAAG;AACH,G;;;;;;ACZA;AACA;;AAEA,8BAA6B,qCAA6C;;AAE1E,wC;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,G;;;;;;AC1BA;AACA;;AAEA,8BAA6B,+BAAgC;;AAE7D,kC;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC,gBAAgB,EAAE;AACxD;AACA;AACA;AACA;AACA,EAAC;AACD,+B;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC,gBAAgB,EAAE;AACxD;AACA;AACA;AACA;AACA,EAAC;AACD,+B;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB,kBAAkB,EAAE;AAC1C,yBAAwB,gBAAgB;AACxC,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;;AAEA,oC;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACLD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA2B,UAAU;AACrC;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,+BAA8B,yCAAyC;AACvE;AACA;AACA,0BAAyB,oCAAoC;AAC7D;AACA;AACA,G;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,cAAc,WAAW;AACnE;AACA,yCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B,yBAAwB,2BAA2B;AACnD,QAAO;AACP;AACA;AACA,IAAG,UAAU,eAAe;AAC5B;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA,YAAW;AACX,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,oBAAmB,gCAAgC;AACnD,UAAS;AACT;AACA;AACA,QAAO;AACP,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAuB,qBAAqB;AAC5C;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH,mBAAkB,oBAAoB,KAAK;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA,2DAA0D,WAAW;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,oCAAmC;AACnC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,EAAC,E;;;;;;AChSD;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAgE,gBAAgB;AAChF;AACA,IAAG,2CAA2C,gCAAgC;AAC9E;AACA;AACA,G;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,sCAAqC,oBAAoB,EAAE;AAC3D;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA,IAAG;AACH,G;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AC1EA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA,yBAAwB,mEAAmE;AAC3F,EAAC;AACD;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC,gB;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B,2BAA0B;AAC1B,2BAA0B;AAC1B,sBAAqB;AACrB;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,8DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB,2BAA0B;AAC1B,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,G;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO,kCAAkC,gCAAgC,aAAa;AACtF,8BAA6B,mCAAmC,aAAa;AAC7E;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,4DAA2D;AAC3D;AACA,iDAAgD,iBAAiB,EAAE;AACnE;AACA,2DAA0D,aAAa,EAAE;AACzE;AACA;AACA,2B;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,G;;;;;;AC9EA;AACA;;AAEA;AACA;AACA,yBAAwB,mEAAmE;AAC3F,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC,U;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA4B,mEAAmE;AAC/F,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL,IAAG;AACH,E;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,2BAA0B;AAC1B;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL,4CAA2C;AAC3C;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA,G;;;;;;ACrFA;AACA;;AAEA;AACA;AACA,6BAA4B,mEAAmE;AAC/F,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC,qB;;;;;;ACXD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAAyC;AACzC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACrCD;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAqC,MAAM,SAAS,OAAO,SAAS;AACpE,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,E;;;;;;AClBD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACVD;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC;AACtC,IAAG;AACH,WAAU;AACV,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACzBD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAA+B,SAAS,E;;;;;;ACnBxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACTD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACTD;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACVD;AACA;;AAEA,gCAA+B,kCAAiC,E;;;;;;ACHhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,E;;;;;;ACfD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAA+B,SAAS,E;;;;;;AC5BxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,E;;;;;;ACdD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,sC;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACTD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACND;AACA;AACA,0DAAwD;;AAExD,+BAA8B,4BAA4B,gBAAgB,GAAG;;;;;;;ACJ7E;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC,E;;;;;;ACtBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,G;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;;AAEA,4BAA2B,wCAAiD,E;;;;;;ACH5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACVA;AACA;;AAEA,4BAA2B,wCAAiD,E;;;;;;ACH5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,sC;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACnBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,WAAW;AAC9B;AACA;AACA;AACA,G;;;;;;ACvBA,2C;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACLD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0E;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,MAAK;AACL,eAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAiC,kBAAkB;AACnD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAY;AACZ;AACA;;AAEA;AACA,aAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA,YAAW;AACX;AACA;AACA;;AAEA,YAAW;AACX;AACA;AACA;;AAEA,YAAW;AACX;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,+CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;;AAEL;AACA,+CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,+CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChpBA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC1FtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SCHQ;SAAM;SAAS;SAAO;SAAQ;SAAU;SAAM;SAAY;SAAW;SAAU,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqBxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,KAAM,gBAAgB,SAAhB;AACN,KAAM,uBAAuB,sBAAvB;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AP,EAA4B;AAC7B,wBAAO,mBAAP,GAA6B,mBAAmB,MAAnB,CADA;cAAjC;AAGA,oBAAO,OAAO,mBAAP,CAJG;;;;;;;;;8CAUc;AACxB,oBAAO,OAAO,8BAAP,CADiB;;;;;;;;;6CAOD;AACvB,oBAAO,OAAO,6BAAP,CADgB;;;;;;;;;uCAON;AACjB,oBAAO,OAAO,uBAAP,CADU;;;;YA5EnB;;;mBAiFS,S;;;;;;;ACvJf;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,wCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,gCAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAO;;AAEP;AACA,MAAK;AACL;AACA;AACA,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxWD,EAAC,SAAS,IAAT,GAAgB;AACb,SAAI,CAAC,OAAO,WAAP,IAAsB,OAAO,OAAO,WAAP,KAAuB,UAA9B,EAA0C;AACjE,aAAM,eAAc,SAAS,WAAT,CAAqB,KAArB,EAA4B,MAA5B,EAAoC;AACpD,iBAAI,eAAJ,CADoD;AAEpD,iBAAM,aAAa,UACf;AACI,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","file":"js/site.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[\"Marklib\"] = factory();\n\telse\n\t\troot[\"Marklib\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\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/** WEBPACK FOOTER **\n ** webpack/bootstrap 850eba21b8437fa5bd74\n **/","import Rendering from '../Rendering';\nimport Util from '../util/Util';\nimport RenderResult from '../RenderResult';\nimport RenderingEvents from '../RenderingEvents';\n\nexport { Rendering, Util, RenderResult, RenderingEvents };\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/modules/Marklib.js\n **/","/* global Node */\n\nimport RenderResult from './RenderResult';\nimport RenderingEvents from './RenderingEvents';\nimport Util, { ATTR_DATA_ORIGINAL_INDEX, DATA_IS_SELECTION } from './util/Util';\n\n/**\n * @type {string}\n */\nconst TAG_NAME = 'x-marker';\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_OFFSET_START = 'data-original-offset-start';\n/**\n * @type {string}\n */\nconst DATA_ORIGINAL_TEXT_NODE_INDEX = 'original-text-node-index';\n/**\n * @type {string}\n */\nconst ATTR_DATA_START_END = 'data-is-start-end';\n/**\n * @type {string}\n */\nconst ATTR_DATA_IS_HIGHLIGHT_NODE = 'data-is-highlight-node';\n/**\n * @type {string}\n */\nconst ATTR_DATA_ID = 'data-selection-id';\n\n/**\n * @see https://developer.mozilla.org/de/docs/Web/API/Node/compareDocumentPosition\n * @type {number}\n */\nconst DOCUMENT_POSITION_CONTAINED_BY = 16;\n\n\n/**\n * @type {string}\n */\nexport const EVENT_WRAPPED_NODE = 'wrapped-node';\n\n/**\n * Manages a single Render\n */\nclass Rendering extends RenderingEvents {\n\n /**\n * @param {Document} document\n * @param {object} options\n * @param {Node} context\n */\n constructor(document, options, context) {\n super(options, document);\n\n /**\n * ID of rendering, will be set on each element that is part of it\n * @type {String}\n */\n this.id = Util.guid();\n\n /**\n * StartContainer\n * @type {Node}\n */\n this.startContainer = null;\n\n /**\n * EndContainer\n * @type {Node}\n */\n this.endContainer = null;\n\n /**\n * @type {Node}\n */\n this.context = context || this.document;\n\n /**\n * Flag if this instance has been rendered\n * @type {RenderResult}\n * @private\n */\n this._renderResult = null;\n }\n\n /**\n * @returns {string} id of this rendering\n */\n getId() {\n return this.id;\n }\n\n /**\n * @param {string} id\n * @returns {Rendering}\n */\n setId(id) {\n this.id = id;\n\n if (this._renderResult) {\n this.wrapperNodes.forEach((node) => node.setAttribute(ATTR_DATA_ID, this.id));\n }\n\n return this;\n }\n\n /**\n * Creates a Template used as a wrapper and an indication that this is a highlight node\n * @param {Boolean} [omitHighlight]\n * @returns {Node}\n * @private\n */\n _createWrapTemplate(omitHighlight) {\n const el = this.document.createElement(TAG_NAME);\n const vTrue = \"true\";\n\n if (!omitHighlight) {\n el.className = this.options.className.join(' ');\n // save this marker instance to given node\n Rendering.setMarklibInstance(el, this);\n // keep track of highlight nodes\n this.wrapperNodes.push(el);\n el.setAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE, vTrue);\n el.setAttribute(ATTR_DATA_ID, this.getId());\n }\n el.setAttribute(DATA_IS_SELECTION, vTrue);\n\n return el;\n }\n\n /**\n * Creates a Template to use as start and end marks\n * @param {String} text\n * @returns {Node}\n * @private\n */\n _createStartEndWrapTemplate(text) {\n const el = this._createWrapTemplate();\n el.setAttribute(ATTR_DATA_START_END, 'true');\n el.textContent = text;\n return el;\n }\n\n\n /**\n * Creates Start or End Container Element\n * @param initialNode\n * @param text\n * @param offset\n * @param index\n * @returns {Node}\n */\n _createStartOrEndContainer(initialNode, text, offset, index) {\n const wrapper = this._createStartEndWrapTemplate(text);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(initialNode, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n\n return wrapper;\n }\n\n /**\n * Wraps given element\n * @param {Node|HTMLElement} el\n * @param [optionalLength]\n * @param [optionalIndex]\n * @param [optionalIsSameNode]\n * @param {Boolean} [omitHighlight] set to true to prevent node to be a highlight node\n * @returns {Node}\n * @private\n */\n _createWrap(el, optionalLength, optionalIndex, optionalIsSameNode, omitHighlight) {\n const originalIndex = optionalIndex >= 0 ? optionalIndex : Util.calcIndex(el);\n const wrapper = this._createWrapTemplate(omitHighlight);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(el, originalIndex));\n const offsetLength = optionalLength >= 0 ? optionalLength : Util.getOffsetParentIfHas(el);\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offsetLength);\n\n // Save a reference to original text node in wrapper\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, originalIndex);\n\n if (optionalIsSameNode) {\n wrapper.setAttribute(ATTR_DATA_START_END, ATTR_DATA_START_END);\n }\n const wrap = Util.wrap(el, wrapper);\n\n this.emit(EVENT_WRAPPED_NODE, el, wrap);\n\n return wrap;\n }\n\n /**\n * Create split container element\n * @param originalElement {Node} original text node element that is created a wrapper for\n * @param index\n * @param offset\n * @returns {Node}\n */\n _createSplitContainer(originalElement, index, offset) {\n const wrapper = this.document.createElement(TAG_NAME);\n wrapper.setAttribute(DATA_IS_SELECTION, 'true');\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_INDEX, Util.getIndexParentIfHas(originalElement, index));\n wrapper.setAttribute(ATTR_DATA_ORIGINAL_OFFSET_START, offset);\n wrapper.setAttribute(DATA_ORIGINAL_TEXT_NODE_INDEX, index);\n return wrapper;\n }\n\n /**\n * Walks the tree\n * @param start\n * @param endContainer\n * @param nextParent\n */\n walk(start, endContainer, nextParent) {\n let nextParentNode = start;\n while (nextParentNode && nextParentNode !== nextParent.parentNode) {\n const currentParentNode = nextParentNode;\n nextParentNode = nextParentNode.parentNode;\n if (this.wrapSiblings(currentParentNode.nextSibling, endContainer)) {\n break;\n }\n }\n }\n\n\n /**\n * Will Wrap all textNode siblings of a container (start) inside a defined Element (like a span)\n * If an Element node is found, it will wrap all children of this node inside a element as well.\n * It will stop if endContainer is found as a node\n *\n * @param {Node} start\n * @param {Node} endContainer\n * @returns {boolean} (true if endContainer was found)\n */\n wrapSiblings(start, endContainer) {\n let next = start;\n let found = false;\n\n // Capsule some logic\n const wrap = (n) => {\n const instance = Rendering.getMarklibInstance(n.parentNode);\n if (n.parentNode.hasAttribute(ATTR_DATA_START_END) &&\n n.parentNode.hasAttribute(ATTR_DATA_IS_HIGHLIGHT_NODE) &&\n instance === this) {\n this._createWrap(n, undefined, undefined, undefined, true);\n } else {\n this._createWrap(n);\n }\n };\n\n // helper functions\n\n const wrapIf = (n) => {\n if (!Util.nodeIsEmpty(n)) {\n wrap(n);\n }\n };\n\n const walkIfContained = (e) => {\n if (e === endContainer) {\n return false;\n }\n if (Node.TEXT_NODE === e.nodeType) {\n wrapIf(e);\n }\n return true;\n };\n\n const walkIfNotContained = (el) => {\n wrapIf(el);\n };\n\n while (next !== null && next !== endContainer) {\n const currentNext = next;\n next = next.nextSibling;\n // Found a text node, directly wrap inside a span\n if (Node.TEXT_NODE === currentNext.nodeType) {\n wrapIf(currentNext);\n } else {\n if ((currentNext.compareDocumentPosition(endContainer) & DOCUMENT_POSITION_CONTAINED_BY)) {\n Util.walkDom(currentNext, walkIfContained);\n found = true;\n } else {\n Util.walkTextNodes(currentNext, walkIfNotContained);\n }\n if (found) {\n return true;\n }\n }\n }\n return found;\n }\n\n /**\n * Marks text of the same node\n * @param {Node} textNode\n * @param {int} startIndex\n * @param {int} endIndex\n * @private\n */\n _markTextSameNode(textNode, startIndex, endIndex) {\n const initialText = textNode.nodeValue;\n const initialIndex = Util.calcIndex(textNode);\n\n if (!initialText) {\n return false;\n }\n // If there is an unmarked part in the beginning of the text node,\n // cut off that part and put it into it's own textnode.\n if (startIndex > 0) {\n const textBefore = initialText.slice(0, startIndex);\n textNode.parentNode.insertBefore(this.document.createTextNode(textBefore), textNode);\n // wrap cutted text node:\n Util.wrap(textNode.previousSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode)));\n }\n // If there is an unmarked part at the end of the text node,\n // cut off that part and put it into it's own textnode.\n if (endIndex < initialText.length) {\n const textAfter = initialText.slice(endIndex, initialText.length);\n textNode.parentNode.insertBefore(this.document.createTextNode(textAfter), textNode.nextSibling);\n Util.wrap(textNode.nextSibling, this._createSplitContainer(textNode,\n initialIndex, Util.getOffsetParentIfHas(textNode) + endIndex));\n }\n\n // Cutoff the unmarked parts and wrap the textnode into a span.\n textNode.nodeValue = initialText.slice(startIndex, endIndex);\n this.startContainer = this._createWrap(textNode,\n Util.getOffsetParentIfHas(textNode) + startIndex, initialIndex, true).parentNode;\n this.endContainer = this.startContainer;\n return this.startContainer;\n }\n\n\n /**\n * Marks text of end and start containers if start and end nodes are different\n * Important: There might be no end container!\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @returns {{startT: (Node), endT: (Node)}}\n * @private\n */\n _markTextDifferentNode(startContainer, endContainer, startOffset, endOffset) {\n // Get current for both start and end:\n const startContainerIndex = Util.calcIndex(startContainer);\n const endContainerIndex = Util.calcIndex(endContainer);\n\n // Split text\n const fullTextStartValue = startContainer.nodeValue;\n // init with startContainer because we may have not a text node here\n let startT = startContainer;\n\n if (undefined !== fullTextStartValue) {\n const partTextStartValue = fullTextStartValue.slice(startOffset, fullTextStartValue.length);\n // Set new text to start node\n startContainer.nodeValue = fullTextStartValue.slice(0, startOffset);\n\n const offsetStart = Util.getOffsetParentIfHas(startContainer);\n // Create a new node for splitted text, offset is the length of new startContainer.nodeValue:\n startT = this._createStartOrEndContainer(startContainer, partTextStartValue,\n offsetStart === startOffset ? offsetStart : offsetStart + startOffset, startContainerIndex);\n // Append this node after startContainer\n startContainer.parentNode.insertBefore(startT, startContainer.nextSibling);\n this.startContainer = startT;\n\n if (startContainer.nodeValue) {\n // Wrap start container in detection node, offset is always 0 or parent offset.\n Util.wrap(startContainer, this._createSplitContainer(startContainer, startContainerIndex,\n Util.getOffsetParentIfHas(startContainer)));\n }\n }\n\n // init with endContainer because we may have not a text node here\n let endT = endContainer;\n\n // 2. Extract end Text node,\n const fullTextEndValue = endContainer.nodeValue;\n // It's possible that end container value is null (if a whole paragraph is marked)\n if (undefined !== fullTextEndValue) {\n // Split text\n const partTextEndValue = fullTextEndValue.slice(0, endOffset);\n endContainer.nodeValue = fullTextEndValue.slice(endOffset, fullTextEndValue.length);\n // End Container start offset is always 0 or parent offset.\n endT = this._createStartOrEndContainer(endContainer, partTextEndValue,\n Util.getOffsetParentIfHas(endContainer), endContainerIndex);\n\n endContainer.parentNode.insertBefore(endT, endContainer);\n this.endContainer = endT;\n const offsetParent = Util.getOffsetParentIfHas(endContainer);\n Util.wrap(endContainer, this._createSplitContainer(endContainer, endContainerIndex,\n offsetParent === endOffset ? offsetParent : offsetParent + endOffset));\n }\n\n return {\n startT,\n endT\n };\n }\n\n /**\n * Renders a selection\n * @param {Node} startContainerP\n * @param {Node} endContainerP\n * @param {Node} commonAncestor\n * @param {int} startOffset\n * @param {int} endOffsetP\n * @returns RenderResult\n * @private\n */\n _renderWithElements(startContainerP, endContainerP, commonAncestor, startOffset, endOffsetP) {\n if (this._renderResult) {\n return this._renderResult;\n }\n let startContainer = startContainerP;\n let endContainer = endContainerP;\n let endOffset = endOffsetP;\n let outer = Util.parents(startContainer, commonAncestor);\n outer = outer[outer.length - 1];\n const contextContainer = outer ? outer : commonAncestor;\n\n // Same Element, means the selection is fully contained in a discrete area, start and endpoint have the same parent\n // but are different nodes:\n\n // Start and End offset have to be recalculated because dom might be already changed by highlighting in given node\n // 1: First detect real start offset in startContainer:\n\n // That works by selecting the highest wrapper and get original-offset-start data element, see \"findOriginalOffset\"\n // So first select that container:\n const originalStartOffset = Util.findOriginalOffset(startContainer);\n const originalEndOffset = Util.findOriginalOffset(endContainer);\n\n // We may run into Browser Bugs:\n\n // If both are not text nodes, use next sibling as endContainer\n if (startContainer.nodeType !== Node.TEXT_NODE && endContainer.nodeType !== Node.TEXT_NODE) {\n if (startContainer === endContainer) {\n endContainer = endContainer.nextElementSibling || endContainer;\n }\n }\n // IF start/end container is not type of text, select first child text node:\n // We run in some bugs with firefox here that selects no text-nodes sometimes, trying to fix this here\n // Sometimes does not work correctly... (specially when DOM was modified)\n if (startContainer.nodeType !== Node.TEXT_NODE) {\n Util.walkDom(startContainer, (el) => {\n if (el.nodeType === Node.TEXT_NODE) {\n startContainer = el;\n return false;\n }\n return true;\n });\n }\n\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n let toFindNode = startContainer;\n\n if (endOffset === 0) {\n toFindNode = endContainer.previousElementSibling || startContainer;\n }\n\n // Get the last text node:\n const endContainerContents = Util.closest(toFindNode, ':not([' + DATA_IS_SELECTION + '])').childNodes;\n if (endContainerContents.length) {\n const r = endContainerContents[endContainerContents.length - 1];\n if (r.nodeType === Node.TEXT_NODE) {\n endContainer = r;\n endOffset = r.length;\n } else {\n let f = r.lastChild;\n while (f !== null) {\n if (f && f.nodeType === Node.TEXT_NODE) {\n endContainer = f;\n endOffset = f.length;\n if (f.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n endOffset = parseInt(f.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) + endOffset;\n }\n }\n f = f.lastChild;\n }\n }\n }\n // still no textNode?\n if (endContainer.nodeType !== Node.TEXT_NODE) {\n throw Error('Could not found endContainer, highlighting would be unstable');\n }\n }\n\n this._renderResult = new RenderResult(\n // Real offset is calculated by relative length and absolute length\n originalStartOffset + startOffset,\n originalEndOffset + endOffset,\n // get the path for this selection\n Util.getPath(startContainer, this.context),\n Util.getPath(endContainer, this.context)\n );\n\n this._renderResult.instance = this;\n\n\n this._renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, !!outer);\n\n return this._renderResult;\n }\n\n /**\n * Renders a given selection\n *\n * @param {Node} startContainer\n * @param {Node} endContainer\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {Node} contextContainer\n * @param {Boolean} outer\n * @private\n */\n _renderSelection(startContainer, endContainer, startOffset, endOffset, contextContainer, outer) {\n // if start and end-container are the same, mark text on the same node\n if (startContainer === endContainer) {\n this._markTextSameNode(startContainer, startOffset, endOffset);\n } else {\n const result = this._markTextDifferentNode(startContainer, endContainer, startOffset, endOffset);\n const index = this.wrapperNodes.indexOf(result.endT);\n // remove endContainer, to keep order:\n this.wrapperNodes.splice(index, 1);\n if (!outer) {\n this.wrapSiblings(result.startT.nextSibling, endContainer);\n } else {\n this.walk(result.startT, endContainer, contextContainer);\n }\n this.wrapperNodes.push(result.endT);\n }\n }\n\n /**\n * Prepares to render a Selection with path selectors\n * ```\n * A Path looks like this:\n *\n * #selector;#textnode;#offset\n * ``\n * @param {string} startPath\n * @param {string} endPath\n * @returns {string}\n */\n renderWithPath(startPath, endPath) {\n const startContainer = Util.deserializePath(startPath, this.context);\n const endContainer = Util.deserializePath(endPath, this.context);\n if (startContainer && endContainer && startContainer.node && endContainer.node) {\n const range = document.createRange();\n range.setStart(startContainer.node, startContainer.offset);\n range.setEnd(endContainer.node, endContainer.offset);\n const text = range.toString();\n const result = this.renderWithRange(range);\n result.text = text;\n return text;\n }\n throw new Error('Could not find start- and/or end-container in document');\n }\n\n /**\n * @returns {RenderResult}\n */\n get result() {\n return this._renderResult;\n }\n\n /**\n * Renders a result (that returned from `renderWithRange`)\n * @param {RenderResult|Object} result\n * @returns {string}\n */\n renderWithResult(result) {\n return this.renderWithPath(\n `${result.startContainerPath};${result.startOffset}`,\n `${result.endContainerPath};${result.endOffset}`);\n }\n\n /**\n * Prepares a selection with a range object\n * @param {Range} range\n * @returns {Object}\n */\n renderWithRange(range) {\n const text = range.toString();\n const result = this._renderWithElements(range.startContainer, range.endContainer,\n range.commonAncestorContainer, range.startOffset, range.endOffset);\n result.text = text;\n return result;\n }\n\n /**\n * Removes bindings and classNames to nodes\n */\n destroy() {\n this.wrapperNodes.forEach((node) => {\n delete node.marklibInstance;\n node.className = '';\n });\n this.removeEvent();\n }\n\n /**\n * @param {Node} el\n * @param {Rendering} instance\n * @returns {Node}\n */\n static setMarklibInstance(el, instance) {\n el.marklibInstance = instance;\n return el;\n }\n\n /**\n * @param {Node} el\n * @returns {Rendering|null|undefined}\n */\n static getMarklibInstance(el) {\n return el ? el.marklibInstance : null;\n }\n}\n\nexport default Rendering;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/Rendering.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/get-prototype-of.js\n ** module id = 3\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.getPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/get-prototype-of.js\n ** module id = 4\n ** module chunks = 0 1\n **/","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./$.to-object');\n\nrequire('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){\n return function getPrototypeOf(it){\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.get-prototype-of.js\n ** module id = 5\n ** module chunks = 0 1\n **/","// 7.1.13 ToObject(argument)\nvar defined = require('./$.defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-object.js\n ** module id = 6\n ** module chunks = 0 1\n **/","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.defined.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// most Object methods by ES6 should accept primitives\nvar $export = require('./$.export')\n , core = require('./$.core')\n , fails = require('./$.fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-sap.js\n ** module id = 8\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , core = require('./$.core')\n , ctx = require('./$.ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && key in target;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(param){\n return this instanceof C ? new C(param) : C(param);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\nmodule.exports = $export;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.export.js\n ** module id = 9\n ** module chunks = 0 1\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.global.js\n ** module id = 10\n ** module chunks = 0 1\n **/","var core = module.exports = {version: '1.2.6'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.core.js\n ** module id = 11\n ** module chunks = 0 1\n **/","// optional / simple context binding\nvar aFunction = require('./$.a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.ctx.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.a-function.js\n ** module id = 13\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.fails.js\n ** module id = 14\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 15\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 17\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function defineProperty(it, key, desc){\n return $.setDesc(it, key, desc);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 18\n ** module chunks = 0 1\n **/","var $Object = Object;\nmodule.exports = {\n create: $Object.create,\n getProto: $Object.getPrototypeOf,\n isEnum: {}.propertyIsEnumerable,\n getDesc: $Object.getOwnPropertyDescriptor,\n setDesc: $Object.defineProperty,\n setDescs: $Object.defineProperties,\n getKeys: $Object.keys,\n getNames: $Object.getOwnPropertyNames,\n getSymbols: $Object.getOwnPropertySymbols,\n each: [].forEach\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.js\n ** module id = 19\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/possibleConstructorReturn.js\n ** module id = 20\n ** module chunks = 0 1\n **/","\"use strict\";\n\nvar _typeof = typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/typeof.js\n ** module id = 21\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol/iterator.js\n ** module id = 22\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/$.wks')('iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/","'use strict';\nvar $at = require('./$.string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./$.iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 24\n ** module chunks = 0 1\n **/","var toInteger = require('./$.to-integer')\n , defined = require('./$.defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.string-at.js\n ** module id = 25\n ** module chunks = 0 1\n **/","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-integer.js\n ** module id = 26\n ** module chunks = 0 1\n **/","'use strict';\nvar LIBRARY = require('./$.library')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , hide = require('./$.hide')\n , has = require('./$.has')\n , Iterators = require('./$.iterators')\n , $iterCreate = require('./$.iter-create')\n , setToStringTag = require('./$.set-to-string-tag')\n , getProto = require('./$').getProto\n , ITERATOR = require('./$.wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , methods, key;\n // Fix native\n if($native){\n var IteratorPrototype = getProto($default.call(new Base));\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // FF fix\n if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: !DEF_VALUES ? $default : getMethod('entries')\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-define.js\n ** module id = 27\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.library.js\n ** module id = 28\n ** module chunks = 0 1\n **/","module.exports = require('./$.hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine.js\n ** module id = 29\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , createDesc = require('./$.property-desc');\nmodule.exports = require('./$.descriptors') ? function(object, key, value){\n return $.setDesc(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.hide.js\n ** module id = 30\n ** module chunks = 0 1\n **/","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.property-desc.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./$.fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.descriptors.js\n ** module id = 32\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.has.js\n ** module id = 33\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iterators.js\n ** module id = 34\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , descriptor = require('./$.property-desc')\n , setToStringTag = require('./$.set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-create.js\n ** module id = 35\n ** module chunks = 0 1\n **/","var def = require('./$').setDesc\n , has = require('./$.has')\n , TAG = require('./$.wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","var store = require('./$.shared')('wks')\n , uid = require('./$.uid')\n , Symbol = require('./$.global').Symbol;\nmodule.exports = function(name){\n return store[name] || (store[name] =\n Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.wks.js\n ** module id = 37\n ** module chunks = 0 1\n **/","var global = require('./$.global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.shared.js\n ** module id = 38\n ** module chunks = 0 1\n **/","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","require('./es6.array.iterator');\nvar Iterators = require('./$.iterators');\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 40\n ** module chunks = 0 1\n **/","'use strict';\nvar addToUnscopables = require('./$.add-to-unscopables')\n , step = require('./$.iter-step')\n , Iterators = require('./$.iterators')\n , toIObject = require('./$.to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./$.iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 41\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.add-to-unscopables.js\n ** module id = 42\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-step.js\n ** module id = 43\n ** module chunks = 0 1\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./$.iobject')\n , defined = require('./$.defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-iobject.js\n ** module id = 44\n ** module chunks = 0 1\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./$.cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iobject.js\n ** module id = 45\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.cof.js\n ** module id = 46\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/symbol.js\n ** module id = 47\n ** module chunks = 0 1\n **/","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nmodule.exports = require('../../modules/$.core').Symbol;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/symbol/index.js\n ** module id = 48\n ** module chunks = 0 1\n **/","'use strict';\n// ECMAScript 6 symbols shim\nvar $ = require('./$')\n , global = require('./$.global')\n , has = require('./$.has')\n , DESCRIPTORS = require('./$.descriptors')\n , $export = require('./$.export')\n , redefine = require('./$.redefine')\n , $fails = require('./$.fails')\n , shared = require('./$.shared')\n , setToStringTag = require('./$.set-to-string-tag')\n , uid = require('./$.uid')\n , wks = require('./$.wks')\n , keyOf = require('./$.keyof')\n , $names = require('./$.get-names')\n , enumKeys = require('./$.enum-keys')\n , isArray = require('./$.is-array')\n , anObject = require('./$.an-object')\n , toIObject = require('./$.to-iobject')\n , createDesc = require('./$.property-desc')\n , getDesc = $.getDesc\n , setDesc = $.setDesc\n , _create = $.create\n , getNames = $names.get\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , setter = false\n , HIDDEN = wks('_hidden')\n , isEnum = $.isEnum\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , useNative = typeof $Symbol == 'function'\n , ObjectProto = Object.prototype;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(setDesc({}, 'a', {\n get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = getDesc(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n setDesc(it, key, D);\n if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n} : setDesc;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol.prototype);\n sym._k = tag;\n DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: function(value){\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n }\n });\n return sym;\n};\n\nvar isSymbol = function(it){\n return typeof it == 'symbol';\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(D && has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return setDesc(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key);\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n var D = getDesc(it = toIObject(it), key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var names = getNames(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n return result;\n};\nvar $stringify = function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , $$ = arguments\n , replacer, $replacer;\n while($$.length > i)args.push($$[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n};\nvar buggyJSON = $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n});\n\n// 19.4.1.1 Symbol([description])\nif(!useNative){\n $Symbol = function Symbol(){\n if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n };\n redefine($Symbol.prototype, 'toString', function toString(){\n return this._k;\n });\n\n isSymbol = function(it){\n return it instanceof $Symbol;\n };\n\n $.create = $create;\n $.isEnum = $propertyIsEnumerable;\n $.getDesc = $getOwnPropertyDescriptor;\n $.setDesc = $defineProperty;\n $.setDescs = $defineProperties;\n $.getNames = $names.get = $getOwnPropertyNames;\n $.getSymbols = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./$.library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n}\n\nvar symbolStatics = {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n return keyOf(SymbolRegistry, key);\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n};\n// 19.4.2.2 Symbol.hasInstance\n// 19.4.2.3 Symbol.isConcatSpreadable\n// 19.4.2.4 Symbol.iterator\n// 19.4.2.6 Symbol.match\n// 19.4.2.8 Symbol.replace\n// 19.4.2.9 Symbol.search\n// 19.4.2.10 Symbol.species\n// 19.4.2.11 Symbol.split\n// 19.4.2.12 Symbol.toPrimitive\n// 19.4.2.13 Symbol.toStringTag\n// 19.4.2.14 Symbol.unscopables\n$.each.call((\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n 'species,split,toPrimitive,toStringTag,unscopables'\n).split(','), function(it){\n var sym = wks(it);\n symbolStatics[it] = useNative ? sym : wrap(sym);\n});\n\nsetter = true;\n\n$export($export.G + $export.W, {Symbol: $Symbol});\n\n$export($export.S, 'Symbol', symbolStatics);\n\n$export($export.S + $export.F * !useNative, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.symbol.js\n ** module id = 49\n ** module chunks = 0 1\n **/","var $ = require('./$')\n , toIObject = require('./$.to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = $.getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.keyof.js\n ** module id = 50\n ** module chunks = 0 1\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./$.to-iobject')\n , getNames = require('./$').getNames\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return getNames(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.get = function getOwnPropertyNames(it){\n if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n return getNames(toIObject(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.get-names.js\n ** module id = 51\n ** module chunks = 0 1\n **/","// all enumerable object keys, includes symbols\nvar $ = require('./$');\nmodule.exports = function(it){\n var keys = $.getKeys(it)\n , getSymbols = $.getSymbols;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = $.isEnum\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n }\n return keys;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.enum-keys.js\n ** module id = 52\n ** module chunks = 0 1\n **/","// 7.2.2 IsArray(argument)\nvar cof = require('./$.cof');\nmodule.exports = Array.isArray || function(arg){\n return cof(arg) == 'Array';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array.js\n ** module id = 53\n ** module chunks = 0 1\n **/","var isObject = require('./$.is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.an-object.js\n ** module id = 54\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-object.js\n ** module id = 55\n ** module chunks = 0 1\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/inherits.js\n ** module id = 57\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/set-prototype-of.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/$.core').Object.setPrototypeOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/set-prototype-of.js\n ** module id = 59\n ** module chunks = 0 1\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./$.export');\n$export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.set-prototype-of.js\n ** module id = 60\n ** module chunks = 0 1\n **/","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar getDesc = require('./$').getDesc\n , isObject = require('./$.is-object')\n , anObject = require('./$.an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-proto.js\n ** module id = 61\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/create.js\n ** module id = 62\n ** module chunks = 0 1\n **/","var $ = require('../../modules/$');\nmodule.exports = function create(P, D){\n return $.create(P, D);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/create.js\n ** module id = 63\n ** module chunks = 0 1\n **/","/**\n * A Render Result\n */\nexport default class RenderResult {\n /**\n * @param {int} startOffset\n * @param {int} endOffset\n * @param {String} startContainerPath\n * @param {String} endContainerPath\n */\n constructor(startOffset, endOffset, startContainerPath, endContainerPath) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.startContainerPath = startContainerPath;\n this.endContainerPath = endContainerPath;\n this._renderingInstance = null;\n }\n\n /**\n * @param {Object} result\n * @return RenderResult\n */\n static fromObject(result) {\n return new RenderResult(\n result.startOffset,\n result.endOffset,\n result.startContainerPath,\n result.endContainerPath\n );\n }\n\n /**\n * @returns {Object}\n */\n serialize() {\n return {\n startOffset: this.startOffset,\n endOffset: this.endOffset,\n startContainerPath: this.startContainerPath,\n endContainerPath: this.endContainerPath\n };\n }\n\n /**\n * @param {String} text\n */\n set text(text) {\n this._text = text;\n }\n\n /**\n * @returns {String}\n */\n get text() {\n return this._text;\n }\n\n /**\n * @returns {null|Rendering}\n */\n get instance() {\n return this._renderingInstance;\n }\n\n /**\n * @param {null|Rendering} instance\n */\n set instance(instance) {\n this._renderingInstance = instance;\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderResult.js\n **/","/* global Set */\n\nimport EventEmitter from 'wolfy87-eventemitter';\nimport Rendering from './Rendering';\nimport Util from './util/Util';\n\n/**\n * @type {string}\n */\nexport const EVENT_CLICK = 'click';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSEENTER = 'hover-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_MOUSELEAVE = 'hover-leave';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_ENTER = 'tree-enter';\n\n/**\n * @type {string}\n */\nexport const EVENT_PART_TREE_LEAVE = 'tree-leave';\n\n/**\n * Generic Event Handlings for Renderer\n */\nexport default class RenderingEvents extends EventEmitter {\n\n /**\n * @param {Object} options\n * @param {Document} document\n */\n constructor(options, document) {\n super();\n\n /**\n * Options\n * @type {Object}\n */\n this.options = {\n hoverClass: 'marklib--hover',\n treeClass: 'marklib--tree',\n className: ['marking']\n };\n\n this.options = Object.assign(this.options, options || {});\n\n if (typeof this.options.className === 'string') {\n this.options.className = this.options.className.split(' ');\n }\n\n /**\n * A collection of all nodes that are part of all events\n * @type {Array}\n */\n this.wrapperNodes = [];\n\n /**\n * @type {Document}\n */\n this.document = document;\n }\n\n /**\n * Constructs a new Range from rendered result\n * @returns {Range}\n */\n get range() {\n const range = this.document.createRange();\n const textNodes = [];\n\n this.wrapperNodes.forEach((wrapper) => {\n Util.walkTextNodes(wrapper, (node) => {\n textNodes.push(node);\n });\n });\n\n if (textNodes.length > 0) {\n const lastTextNode = textNodes[textNodes.length - 1];\n range.setStart(textNodes[0], 0);\n range.setEnd(lastTextNode, lastTextNode.length);\n return range;\n }\n\n return null;\n }\n\n static globalEmitter() {\n return RenderingEvents.staticEventListener;\n }\n}\n\nRenderingEvents.staticEventListener = new EventEmitter();\n\n\nif (!global.__MARKLIB_EVENTS__) {\n global.__MARKLIB_EVENTS__ = true;\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSEENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_MOUSELEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.hoverClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_ENTER, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.add(instance.options.treeClass);\n });\n });\n\n RenderingEvents.globalEmitter().on(EVENT_PART_TREE_LEAVE, (instance) => {\n instance.wrapperNodes.forEach((node) => {\n node.classList.remove(instance.options.treeClass);\n });\n });\n\n (function init() {\n const currentHoverInstances = new Set();\n const betweenInstances = new Set();\n\n function checkMarklibInstance(e) {\n const instance = Rendering.getMarklibInstance(e);\n // instanceof check will fail if used in test scenario where different DOMs are used\n // see also http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n return instance && (instance instanceof Rendering || 'wrapperNodes' in instance);\n }\n\n function closestInstance(e) {\n const closest = Util.closestCallback(\n e.target,\n (thisE) => checkMarklibInstance(thisE)\n );\n if (typeof closest === 'object') {\n return Rendering.getMarklibInstance(closest);\n }\n return false;\n }\n\n function getInstancesBetween(e, instance) {\n return Util.parentsCallback(\n e.target,\n (el) => checkMarklibInstance(el) && Rendering.getMarklibInstance(el) !== instance\n ).map(el => Rendering.getMarklibInstance(el));\n }\n\n function mouseOutClear() {\n currentHoverInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_MOUSELEAVE, thisInstance);\n thisInstance.emit(EVENT_MOUSELEAVE);\n });\n currentHoverInstances.clear();\n\n betweenInstances.forEach((thisInstance) => {\n Rendering.globalEmitter().emit(EVENT_PART_TREE_LEAVE, thisInstance);\n thisInstance.emit(EVENT_PART_TREE_LEAVE);\n });\n\n betweenInstances.clear();\n }\n\n /**\n * @param {Event} e\n * @returns {Array|boolean}\n */\n function findTarget(e) {\n let instance = closestInstance(e);\n if (instance) {\n const between = getInstancesBetween(e, instance);\n if (e.target.textContent !== instance.result.text && between.length > 0) {\n let allInstances = between;\n allInstances.unshift(instance);\n // take the smallest selection\n allInstances = allInstances.sort(\n (a, b) => a.result.text.length < b.result.text.length ? -1 : 1\n );\n instance = allInstances[0];\n }\n return [instance, between];\n }\n return false;\n }\n\n global.addEventListener('click', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n Rendering.globalEmitter().emit(EVENT_CLICK, instance, e, between);\n instance.emit(EVENT_CLICK, e, between);\n }\n }, true);\n\n global.addEventListener('mouseover', (e) => {\n const target = findTarget(e);\n if (target) {\n const [instance, between] = target;\n\n // find instances that lay in between the node\n mouseOutClear();\n between.forEach((instanceBetween) => {\n betweenInstances.add(instanceBetween);\n instanceBetween.emit(EVENT_PART_TREE_ENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_PART_TREE_ENTER, instanceBetween, e, between);\n });\n instance.emit(EVENT_MOUSEENTER, e, between);\n Rendering.globalEmitter().emit(EVENT_MOUSEENTER, instance, e, between);\n currentHoverInstances.add(instance);\n } else {\n mouseOutClear();\n }\n }, true);\n })();\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/RenderingEvents.js\n **/","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 66\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 67\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 68\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').isIterable = function(it){\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./$.cof')\n , TAG = require('./$.wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.classof.js\n ** module id = 70\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 71\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 72\n ** module chunks = 0 1\n **/","var anObject = require('./$.an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./$.core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 73\n ** module chunks = 0 1\n **/","var classof = require('./$.classof')\n , ITERATOR = require('./$.wks')('iterator')\n , Iterators = require('./$.iterators');\nmodule.exports = require('./$.core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/set.js\n ** module id = 75\n ** module chunks = 0 1\n **/","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nmodule.exports = require('../modules/$.core').Set;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/set.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'use strict';\nvar strong = require('./$.collection-strong');\n\n// 23.2 Set Objects\nrequire('./$.collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.set.js\n ** module id = 77\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , ctx = require('./$.ctx')\n , strictNew = require('./$.strict-new')\n , defined = require('./$.defined')\n , forOf = require('./$.for-of')\n , $iterDefine = require('./$.iter-define')\n , step = require('./$.iter-step')\n , ID = require('./$.uid')('id')\n , $has = require('./$.has')\n , isObject = require('./$.is-object')\n , setSpecies = require('./$.set-species')\n , DESCRIPTORS = require('./$.descriptors')\n , isExtensible = Object.isExtensible || isObject\n , SIZE = DESCRIPTORS ? '_s' : 'size'\n , id = 0;\n\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!$has(it, ID)){\n // can't set id to frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add id\n if(!create)return 'E';\n // add missing object id\n hide(it, ID, ++id);\n // return object id with prefix\n } return 'O' + it[ID];\n};\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n strictNew(that, C, NAME);\n that._i = $.create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)$.setDesc(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-strong.js\n ** module id = 78\n ** module chunks = 0 1\n **/","var redefine = require('./$.redefine');\nmodule.exports = function(target, src){\n for(var key in src)redefine(target, key, src[key]);\n return target;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.redefine-all.js\n ** module id = 79\n ** module chunks = 0 1\n **/","module.exports = function(it, Constructor, name){\n if(!(it instanceof Constructor))throw TypeError(name + \": use the 'new' operator!\");\n return it;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.strict-new.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var ctx = require('./$.ctx')\n , call = require('./$.iter-call')\n , isArrayIter = require('./$.is-array-iter')\n , anObject = require('./$.an-object')\n , toLength = require('./$.to-length')\n , getIterFn = require('./core.get-iterator-method');\nmodule.exports = function(iterable, entries, fn, that){\n var iterFn = getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n call(iterator, f, step.value, entries);\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.for-of.js\n ** module id = 81\n ** module chunks = 0 1\n **/","// call something on iterator step with safe closing on error\nvar anObject = require('./$.an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.iter-call.js\n ** module id = 82\n ** module chunks = 0 1\n **/","// check on default Array iterator\nvar Iterators = require('./$.iterators')\n , ITERATOR = require('./$.wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.is-array-iter.js\n ** module id = 83\n ** module chunks = 0 1\n **/","// 7.1.15 ToLength\nvar toInteger = require('./$.to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.to-length.js\n ** module id = 84\n ** module chunks = 0 1\n **/","'use strict';\nvar core = require('./$.core')\n , $ = require('./$')\n , DESCRIPTORS = require('./$.descriptors')\n , SPECIES = require('./$.wks')('species');\n\nmodule.exports = function(KEY){\n var C = core[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.set-species.js\n ** module id = 85\n ** module chunks = 0 1\n **/","'use strict';\nvar $ = require('./$')\n , global = require('./$.global')\n , $export = require('./$.export')\n , fails = require('./$.fails')\n , hide = require('./$.hide')\n , redefineAll = require('./$.redefine-all')\n , forOf = require('./$.for-of')\n , strictNew = require('./$.strict-new')\n , isObject = require('./$.is-object')\n , setToStringTag = require('./$.set-to-string-tag')\n , DESCRIPTORS = require('./$.descriptors');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n } else {\n C = wrapper(function(target, iterable){\n strictNew(target, C, NAME);\n target._c = new Base;\n if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n });\n $.each.call('add,clear,delete,forEach,get,has,set,keys,values,entries'.split(','),function(KEY){\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n if('size' in proto)$.setDesc(C.prototype, 'size', {\n get: function(){\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./$.export');\n\n$export($export.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.set.to-json.js\n ** module id = 87\n ** module chunks = 0 1\n **/","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar forOf = require('./$.for-of')\n , classof = require('./$.classof');\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n var arr = [];\n forOf(this, false, arr.push, arr);\n return arr;\n };\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.collection-to-json.js\n ** module id = 88\n ** module chunks = 0 1\n **/","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 89\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/$.core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 90\n ** module chunks = 0 1\n **/","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./$.export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 19.1.2.1 Object.assign(target, source, ...)\nvar $ = require('./$')\n , toObject = require('./$.to-object')\n , IObject = require('./$.iobject');\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = require('./$.fails')(function(){\n var a = Object.assign\n , A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , $$ = arguments\n , $$len = $$.length\n , index = 1\n , getKeys = $.getKeys\n , getSymbols = $.getSymbols\n , isEnum = $.isEnum;\n while($$len > index){\n var S = IObject($$[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n }\n return T;\n} : Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/$.object-assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","/*!\n * EventEmitter v4.2.11 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function () {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var exports = this;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n i = listeners.length;\n\n while (i--) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}.call(this));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/wolfy87-eventemitter/EventEmitter.js\n ** module id = 93\n ** module chunks = 0 1\n **/","/* global Node, NodeList, Element */\n\n/**\n * @type {string}\n */\nexport const ATTR_DATA_ORIGINAL_INDEX = 'data-original-index';\n/**\n * @type {string}\n */\nexport const DATA_IS_SELECTION = 'data-is-selection';\n/**\n * @type {string}\n */\nconst SERIALIZE_SEPARATOR = \";\";\n\nimport { ATTR_DATA_ORIGINAL_OFFSET_START } from '../Rendering';\n\n// polyfill for matchesSelector, IE 10/11 does not support Element.matches\nif (Element && !Element.prototype.matches) {\n const p = Element.prototype;\n p.matches = p.matchesSelector ||\n p.mozMatchesSelector || p.msMatchesSelector ||\n p.oMatchesSelector || p.webkitMatchesSelector;\n}\n\n/**\n * Utility class\n * Contains DOM/Node manipulation helpers\n */\nexport default\nclass Util {\n\n /**\n * Filter for a NodeList\n * @param {NodeList} nodes\n * @param {Function} func\n *\n * @returns {Array.}\n */\n static nodeListFilter(nodes, func) {\n return Array.prototype.filter.call(nodes || [], func);\n }\n\n\n /**\n * Generates a unique id\n *\n * @return {String}\n */\n static guid() {\n const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n };\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\n s4() + '-' + s4() + s4() + s4();\n }\n\n /**\n * Checks if a given node is empty\n * @param {HTMLElement} node\n *\n * @returns {*}\n */\n static nodeIsEmpty(node) {\n return node.nodeValue.match(/^[\\s]*$/g);\n }\n\n\n /**\n * @param {HTMLElement} node\n * @param [optionalList]\n *\n * @return {int} the index of this node in context to it's siblings\n */\n static index(node, optionalList) {\n const children = optionalList || (node.nodeType === Node.TEXT_NODE ?\n node.parentNode.childNodes : node.parentNode.children);\n return Array.prototype.indexOf.call(children || [], node);\n }\n\n /**\n * Wraps given `elms` in given `wrapper`\n *\n * @param {HTMLElement|Array.|Node} elms\n * @param {HTMLElement|Node} wrapper\n *\n * @return {HTMLElement}\n */\n static wrap(elms, wrapper) {\n let thisElms = elms;\n\n if (!thisElms) {\n return wrapper;\n }\n // Convert `elms` to an array, if necessary.\n if (!(thisElms instanceof NodeList || thisElms instanceof Array)) {\n thisElms = [thisElms];\n }\n for (let i = thisElms.length - 1; i >= 0; i--) {\n const child = (i > 0) ? wrapper.cloneNode(true) : wrapper;\n const el = thisElms[i];\n // Cache the current parent and sibling.\n const parent = el.parentNode;\n const sibling = el.nextSibling;\n\n child.appendChild(el);\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n }\n return wrapper;\n }\n\n /**\n * Will calculate an index depending on an already modified dom by marklib\n * @param {HTMLElement|Node} node\n *\n * @returns {int|boolean}\n */\n static calcIndex(node) {\n let calculatedIndex = 0;\n let foundWrapper = false;\n const nodes = node.parentNode.childNodes;\n const length = nodes.length;\n for (let thisIndex = 0; thisIndex < length; thisIndex++) {\n const el = nodes[thisIndex];\n if (el === node) {\n break;\n }\n // reset index when original index is found\n const maybeIndexOfOriginal = el.getAttribute ? el.getAttribute(ATTR_DATA_ORIGINAL_INDEX) : null;\n\n if (maybeIndexOfOriginal) {\n calculatedIndex = parseInt(maybeIndexOfOriginal, 10);\n foundWrapper = true;\n }\n calculatedIndex++;\n }\n return foundWrapper ? calculatedIndex : Util.index(node);\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {String} [optionalSelector] will test given element against a selector\n * if matches, returns this element immediately\n *\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parents(el, optionalSelector) {\n return Util.parentsCallback(el, (element) => {\n if (optionalSelector && ((element === optionalSelector) ||\n ((typeof optionalSelector === 'string') && element.matches &&\n element.matches(optionalSelector)))) {\n return true;\n } else if (!optionalSelector) {\n return true;\n }\n return false;\n });\n }\n\n /**\n * @param {HTMLElement|Node} el\n * @param {Function} callback\n * @return {Array.} an array of all found parents of given element (and optional selector)\n */\n static parentsCallback(el, callback) {\n let element = el;\n const foundElements = [];\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (callback(element)) {\n foundElements.push(element);\n }\n }\n return foundElements;\n }\n\n /**\n * Finds a parent node (the closest) with a given selector\n * @param {Node} el\n * @param {String} selector\n *\n * @returns {Node|boolean}\n */\n static parent(el, selector) {\n let element = el;\n while (element.parentNode !== null) {\n element = element.parentNode;\n if (element.matches && element.matches(selector)) {\n return element;\n }\n }\n return false;\n }\n\n /**\n * Finds the closest element including itself matching a given selector\n * @param {Node} el\n * @param selector\n *\n * @returns {Node|boolean}\n */\n static closest(el, selector) {\n return Util.closestCallback(el, (element) => element.matches && element.matches(selector));\n }\n\n /**\n * Finds the closest element including itself matching a callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static closestCallback(el, callback) {\n let element = el;\n while (element !== null) {\n if (callback(element)) {\n return element;\n }\n element = element.parentNode;\n }\n return false;\n }\n\n /**\n * Finds the outermost fitting element that matches callback\n * @param {Node} el\n * @param {Function} callback\n * @returns {Node|boolean}\n */\n static outerMostCallback(el, callback) {\n let element = el;\n let lastValid = false;\n while (element !== null) {\n if (callback(element)) {\n lastValid = element;\n }\n element = element.parentNode;\n }\n return lastValid;\n }\n\n /**\n * @param {HTMLElement} n\n *\n * @return {boolean}\n */\n static isMarkNode(n) {\n return n instanceof HTMLElement && n.hasAttribute(DATA_IS_SELECTION);\n }\n\n /**\n * Determines the correct paths and excludes all `marklib` generated content\n * TODO: To improve performance we could shorten the path if an ID is present in it.\n * @param {HTMLElement|Node} el\n * @param {HTMLElement|Node} [context] if given extraction path is relative to this element\n * @returns {string}\n */\n static getPath(el, context) {\n let path = null;\n let node = el;\n\n const filterSiblings = (thisEl) => {\n return !Util.isMarkNode(thisEl) && thisEl.nodeName === node.nodeName;\n };\n\n while (node) {\n let name = null;\n // If node is a text-node, save index\n if (Node.TEXT_NODE === node.nodeType) {\n /* Because nodes may wrapped inside a highlighting node, we need to find the original index that was\n * valid before the dom changes. We store the last known index position inside all wrapper elements\n * We select the outermost\n */\n\n // Extract original index of this node:\n // Outer most data-original-index is original index\n const outerMostElement = Util.parents(node, '[' + ATTR_DATA_ORIGINAL_INDEX + ']').reverse()[0];\n // if element is not yet wrapped in span, recalculate index based on parent container:\n // We have to do this because text node indexes != element indexes...\n let calculatedIndex = 0;\n if (!outerMostElement) {\n calculatedIndex = Util.calcIndex(node);\n }\n const index = outerMostElement ? parseInt(\n outerMostElement.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10) : calculatedIndex;\n name = SERIALIZE_SEPARATOR + index;\n } else {\n name = node.nodeName;\n }\n\n if (!name) {\n break;\n }\n\n name = name.toLowerCase();\n\n const parent = node.parentNode;\n\n if (Util.isMarkNode(node)) {\n if (parent !== context) {\n node = parent;\n continue;\n } else {\n break;\n }\n }\n\n // Select only siblings that are not part of selection and are of the same type\n // (because we use nth-of-type selector later)\n const siblings = Util.nodeListFilter(parent.children, filterSiblings);\n const nodeIndex = Util.index(node, siblings);\n\n if (siblings.length > 1 && nodeIndex >= 0) {\n name += ':nth-of-type(' + (nodeIndex + 1) + ')';\n }\n\n path = name + (path ? '>' + path : '');\n\n\n if (parent === context) {\n break;\n }\n\n node = parent;\n }\n\n return path.replace(\"#document>\", \"\").replace('>;', ';');\n }\n\n /**\n * Will return the first original offset value that is found\n * @param {Node} element\n *\n * @returns {int}\n */\n static findOriginalOffset(element) {\n if (!element.parentNode.hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START)) {\n return 0;\n }\n const lengthElement = Util.parent(element, '[' + ATTR_DATA_ORIGINAL_OFFSET_START + ']');\n return lengthElement ? parseInt(lengthElement.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : 0;\n }\n\n\n /**\n * Deserialize a specific path and finds the right textNodes\n * This even works when DOM has been manipulated before by `marklib`\n * @param {string} path the serialized path (including offsets)\n * @param {Node|HTMLElement} context\n *\n * @return {Node}\n */\n static deserializePath(path, context) {\n const pSplit = path.split(';');\n const p = pSplit[0];\n const objectIndex = parseInt(pSplit[1], 10);\n const charOffset = parseInt(pSplit[2], 10);\n const container = !p.trim() ? context : context.querySelector(p);\n\n let maybeFoundNode = null;\n\n Util.walkTextNodes(container, (n) => {\n let atrOffsetStart = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START);\n atrOffsetStart = atrOffsetStart === null ? 0 : atrOffsetStart;\n let atrIndex = n.parentNode.getAttribute(ATTR_DATA_ORIGINAL_INDEX);\n atrIndex = atrIndex === null ? Util.calcIndex(n) : atrIndex;\n if (parseInt(atrIndex, 10) === objectIndex && charOffset >= atrOffsetStart &&\n ((parseInt(atrOffsetStart, 10) + n.length) >= charOffset)) {\n const thisOffset = n.parentNode\n .hasAttribute(ATTR_DATA_ORIGINAL_OFFSET_START) ? charOffset -\n parseInt(n.parentNode\n .getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10) : charOffset;\n\n maybeFoundNode = {\n node: n,\n offset: thisOffset\n };\n\n return false;\n }\n return true;\n }, null);\n\n return maybeFoundNode;\n }\n\n\n /**\n * Walks the dom tree unless func returns false\n * Applies node to function\n *\n * @param {Node} node\n * @param {Function} func\n * @param {int} type, see `NodeFilter`\n * @param {Object} [filter] skips empty text nodes by default\n *\n * @returns {boolean} true if function did abort walk\n */\n static walkDom(node, func, type = NodeFilter.SHOW_ALL, filter = null) {\n if (!node) {\n return false;\n }\n const args = [node, type, filter || (() => true), false];\n args.push(false);\n const walker = document.createTreeWalker(...args);\n while (walker.nextNode()) {\n if (!func(walker.currentNode)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Extracts all TextNodes inside a container\n * @param {Node} el\n * @param {Function} func\n * @param {Object} [filter] skips empty text nodes by default\n * @returns {boolean} true if function did abort walk\n */\n static walkTextNodes(el, func, filter = (node) => !Util.nodeIsEmpty(node)) {\n return Util.walkDom(el, func, NodeFilter.SHOW_TEXT, filter);\n }\n\n /**\n * @param {Node} container\n * @param {Number} thisIndex\n * @returns {int|string} index of parent or original\n */\n static getIndexParentIfHas(container, thisIndex) {\n const p = container.parentNode;\n const index = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_INDEX), 10);\n return index > thisIndex ? index : thisIndex;\n }\n\n /**\n * @param container\n * @returns {int} offset start of parent if has, else 0\n */\n static getOffsetParentIfHas(container) {\n const p = container.parentNode;\n const offset = parseInt(p.getAttribute(ATTR_DATA_ORIGINAL_OFFSET_START), 10);\n return offset > 0 ? offset : 0;\n }\n\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/util/Util.js\n **/","/* global localStorage, document */\n\nimport 'babel-polyfill';\nimport 'ima.js-babel6-polyfill';\nimport { Rendering } from 'modules/Marklib';\nimport { Tooltip } from 'flexcss';\n\nconst KEY_ENTER = 13;\n\n/**\n * Contains Module for the demonstration\n */\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const STORAGE_KEY = 'savedRanges';\n const ANIMATIONEND = 'animationend';\n let allRanges = [];\n const tooltip = new Tooltip(document.body);\n\n /**\n * Creates an animated rendering\n */\n function presentRendering(selector, classNames, speed) {\n const text = document.getElementById(selector).childNodes[0];\n const thisLength = text.length;\n\n const render = (autoMarkText, cp, length) => {\n let c = cp;\n const r = new Rendering(document, {\n className: classNames\n });\n const range = document.createRange();\n range.setStart(autoMarkText, 0);\n range.setEnd(autoMarkText, 1);\n r.renderWithRange(range);\n if (autoMarkText.parentNode.nextSibling) {\n const nextText = autoMarkText.parentNode.nextSibling.childNodes[0];\n setTimeout(() => {\n render(nextText, ++c, length);\n }, speed);\n }\n };\n\n return render(text, 0, thisLength);\n }\n\n presentRendering('automark', 'fadeInDown', 20);\n\n let savedRanges = JSON.parse(localStorage.getItem(STORAGE_KEY)) || [];\n let animated = false;\n\n /**\n * OnClick event for renderings\n */\n function onClick(instance) {\n const self = instance;\n self.wrapperNodes.forEach((n) => {\n n.addEventListener(ANIMATIONEND, function thisFunction(e) {\n e.target.classList.remove('bubble');\n e.target.removeEventListener(ANIMATIONEND, thisFunction);\n });\n n.classList.add('bubble');\n });\n\n if (tooltip.getCurrentTarget() === self.wrapperNodes[0]) {\n return;\n }\n\n tooltip.createTooltip(self.wrapperNodes[0], self.result.text, false);\n\n setTimeout(() => {\n if (tooltip.getCurrentTarget()) {\n document.addEventListener('click', function thisFunction() {\n if (tooltip.getCurrentTarget() && tooltip.getCurrentTarget() === self.wrapperNodes[0]) {\n tooltip.removeTooltip();\n }\n document.removeEventListener('click', thisFunction);\n });\n }\n }, 0);\n }\n\n Rendering.globalEmitter().on('click', onClick);\n\n\n savedRanges.forEach((range) => {\n const marker = new Rendering(document);\n try {\n marker.renderWithResult(range);\n allRanges.push(marker);\n } catch (e) {\n console.warn(\"Could not render:\", range, e);\n localStorage.setItem(STORAGE_KEY, JSON.stringify([]));\n console.error('Cleared local storage because of a rendering issue, the page might have been changed ;)');\n }\n });\n\n window.addEventListener('scroll', () => {\n const el = document.getElementById('secondParagraph');\n const r = el.getBoundingClientRect();\n const html = document.documentElement;\n if (r.top <= html.clientHeight && r.bottom >= 0 && !animated) {\n animated = true;\n\n el.classList.add('animate');\n if (!savedRanges.length) {\n presentRendering('secondParagraphItem', 'marking', 30);\n }\n }\n });\n\n const actionMark = () => {\n try {\n const selection = document.getSelection();\n const renderer = new Rendering(document);\n const result = renderer.renderWithRange(selection.getRangeAt(0));\n\n renderer.on('click', onClick);\n allRanges.push(renderer);\n\n selection.removeAllRanges();\n savedRanges.push(result.serialize());\n localStorage.setItem(STORAGE_KEY, JSON.stringify(savedRanges));\n } catch (e) {\n console.warn(\"Could not add selection: \", e);\n }\n };\n\n document.addEventListener(\"keydown\", (e) => {\n if (e.keyCode === KEY_ENTER) {\n actionMark();\n }\n });\n\n document.addEventListener(\"click\", (e) => {\n if (e.target.id === 'action-mark') {\n return actionMark();\n } else if (e.target.id === 'action-clear') {\n allRanges.forEach((range) => range.destroy());\n savedRanges = [];\n allRanges = [];\n localStorage.setItem(STORAGE_KEY, JSON.stringify([]));\n }\n });\n});\n\nexport default Rendering;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/main/modules/Site.js\n **/","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/json/stringify.js\n ** module id = 96\n ** module chunks = 1\n **/","var core = require('../../modules/$.core');\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n return (core.JSON && core.JSON.stringify || JSON.stringify).apply(JSON, arguments);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/json/stringify.js\n ** module id = 97\n ** module chunks = 1\n **/","\"use strict\";\n\nrequire(\"core-js/shim\");\n\nrequire(\"babel-regenerator-runtime\");\n\nif (global._babelPolyfill) {\n throw new Error(\"only one instance of babel-polyfill is allowed\");\n}\nglobal._babelPolyfill = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-polyfill/lib/index.js\n ** module id = 98\n ** module chunks = 1\n **/","require('./modules/es5');\nrequire('./modules/es6.symbol');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-left');\nrequire('./modules/es7.string.pad-right');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.regexp.escape');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/js.array.statics');\nrequire('./modules/web.timers');\nrequire('./modules/web.immediate');\nrequire('./modules/web.dom.iterable');\nmodule.exports = require('./modules/$.core');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/shim.js\n ** module id = 99\n ** module chunks = 1\n **/","'use strict';\nvar $ = require('./$')\n , $export = require('./$.export')\n , DESCRIPTORS = require('./$.descriptors')\n , createDesc = require('./$.property-desc')\n , html = require('./$.html')\n , cel = require('./$.dom-create')\n , has = require('./$.has')\n , cof = require('./$.cof')\n , invoke = require('./$.invoke')\n , fails = require('./$.fails')\n , anObject = require('./$.an-object')\n , aFunction = require('./$.a-function')\n , isObject = require('./$.is-object')\n , toObject = require('./$.to-object')\n , toIObject = require('./$.to-iobject')\n , toInteger = require('./$.to-integer')\n , toIndex = require('./$.to-index')\n , toLength = require('./$.to-length')\n , IObject = require('./$.iobject')\n , IE_PROTO = require('./$.uid')('__proto__')\n , createArrayMethod = require('./$.array-methods')\n , arrayIndexOf = require('./$.array-includes')(false)\n , ObjectProto = Object.prototype\n , ArrayProto = Array.prototype\n , arraySlice = ArrayProto.slice\n , arrayJoin = ArrayProto.join\n , defineProperty = $.setDesc\n , getOwnDescriptor = $.getDesc\n , defineProperties = $.setDescs\n , factories = {}\n , IE8_DOM_DEFINE;\n\nif(!DESCRIPTORS){\n IE8_DOM_DEFINE = !fails(function(){\n return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;\n });\n $.setDesc = function(O, P, Attributes){\n if(IE8_DOM_DEFINE)try {\n return defineProperty(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)anObject(O)[P] = Attributes.value;\n return O;\n };\n $.getDesc = function(O, P){\n if(IE8_DOM_DEFINE)try {\n return getOwnDescriptor(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);\n };\n $.setDescs = defineProperties = function(O, Properties){\n anObject(O);\n var keys = $.getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);\n return O;\n };\n}\n$export($export.S + $export.F * !DESCRIPTORS, 'Object', {\n // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $.getDesc,\n // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n defineProperty: $.setDesc,\n // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n defineProperties: defineProperties\n});\n\n // IE 8- don't enum bug keys\nvar keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +\n 'toLocaleString,toString,valueOf').split(',')\n // Additional keys for getOwnPropertyNames\n , keys2 = keys1.concat('length', 'prototype')\n , keysLen1 = keys1.length;\n\n// Create object with `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = cel('iframe')\n , i = keysLen1\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write('