{"version":3,"file":"js/2415-9acd789821d166df8f16.js","mappings":"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","sources":["webpack://app/./node_modules/call-bind/callBound.js","webpack://app/./node_modules/call-bind/index.js","webpack://app/./node_modules/deep-equal/index.js","webpack://app/./node_modules/define-properties/index.js","webpack://app/./node_modules/extend/index.js","webpack://app/./node_modules/fast-diff/diff.js","webpack://app/./node_modules/function-bind/implementation.js","webpack://app/./node_modules/function-bind/index.js","webpack://app/./node_modules/functions-have-names/index.js","webpack://app/./node_modules/get-intrinsic/index.js","webpack://app/./node_modules/has-property-descriptors/index.js","webpack://app/./node_modules/has-proto/index.js","webpack://app/./node_modules/has-symbols/index.js","webpack://app/./node_modules/has-symbols/shams.js","webpack://app/./node_modules/has-tostringtag/shams.js","webpack://app/./node_modules/has/src/index.js","webpack://app/./node_modules/is-arguments/index.js","webpack://app/./node_modules/is-date-object/index.js","webpack://app/./node_modules/is-regex/index.js","webpack://app/./node_modules/object-is/implementation.js","webpack://app/./node_modules/object-is/index.js","webpack://app/./node_modules/object-is/polyfill.js","webpack://app/./node_modules/object-is/shim.js","webpack://app/./node_modules/object-keys/implementation.js","webpack://app/./node_modules/object-keys/index.js","webpack://app/./node_modules/object-keys/isArguments.js","webpack://app/./node_modules/parchment/dist/parchment.js","webpack://app/./node_modules/quill-delta/lib/delta.js","webpack://app/./node_modules/quill-delta/lib/op.js","webpack://app/./node_modules/quill/blots/break.js","webpack://app/./node_modules/quill/blots/block.js","webpack://app/./node_modules/quill/blots/inline.js","webpack://app/./node_modules/quill/blots/text.js","webpack://app/./node_modules/quill/formats/code.js","webpack://app/./node_modules/regexp.prototype.flags/implementation.js","webpack://app/./node_modules/regexp.prototype.flags/index.js","webpack://app/./node_modules/regexp.prototype.flags/polyfill.js","webpack://app/./node_modules/regexp.prototype.flags/shim.js"],"sourcesContent":["'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n  var opts = options || {};\n\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (opts.strict ? is(actual, expected) : actual === expected) {\n    return true;\n  }\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n  if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n    return opts.strict ? is(actual, expected) : actual == expected;\n  }\n\n  /*\n   * 7.4. For all other Object pairs, including Array objects, equivalence is\n   * determined by having the same number of owned properties (as verified\n   * with Object.prototype.hasOwnProperty.call), the same set of keys\n   * (although not necessarily the same order), equivalent values for every\n   * corresponding key, and an identical 'prototype' property. Note: this\n   * accounts for both named and indexed properties on Arrays.\n   */\n  // eslint-disable-next-line no-use-before-define\n  return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n    return false;\n  }\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') {\n    return false;\n  }\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  /* eslint max-statements: [2, 50] */\n  var i, key;\n  if (typeof a !== typeof b) { return false; }\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) { return false; }\n\n  if (isArguments(a) !== isArguments(b)) { return false; }\n\n  var aIsRegex = isRegex(a);\n  var bIsRegex = isRegex(b);\n  if (aIsRegex !== bIsRegex) { return false; }\n  if (aIsRegex || bIsRegex) {\n    return a.source === b.source && flags(a) === flags(b);\n  }\n\n  if (isDate(a) && isDate(b)) {\n    return getTime.call(a) === getTime.call(b);\n  }\n\n  var aIsBuffer = isBuffer(a);\n  var bIsBuffer = isBuffer(b);\n  if (aIsBuffer !== bIsBuffer) { return false; }\n  if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n    if (a.length !== b.length) { return false; }\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) { return false; }\n    }\n    return true;\n  }\n\n  if (typeof a !== typeof b) { return false; }\n\n  try {\n    var ka = objectKeys(a);\n    var kb = objectKeys(b);\n  } catch (e) { // happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates hasOwnProperty)\n  if (ka.length !== kb.length) { return false; }\n\n  // the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  // ~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i]) { return false; }\n  }\n  // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) { return false; }\n  }\n\n  return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts.  Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n  // Check for equality (speedup).\n  if (text1 == text2) {\n    if (text1) {\n      return [[DIFF_EQUAL, text1]];\n    }\n    return [];\n  }\n\n  // Check cursor_pos within bounds\n  if (cursor_pos < 0 || text1.length < cursor_pos) {\n    cursor_pos = null;\n  }\n\n  // Trim off common prefix (speedup).\n  var commonlength = diff_commonPrefix(text1, text2);\n  var commonprefix = text1.substring(0, commonlength);\n  text1 = text1.substring(commonlength);\n  text2 = text2.substring(commonlength);\n\n  // Trim off common suffix (speedup).\n  commonlength = diff_commonSuffix(text1, text2);\n  var commonsuffix = text1.substring(text1.length - commonlength);\n  text1 = text1.substring(0, text1.length - commonlength);\n  text2 = text2.substring(0, text2.length - commonlength);\n\n  // Compute the diff on the middle block.\n  var diffs = diff_compute_(text1, text2);\n\n  // Restore the prefix and suffix.\n  if (commonprefix) {\n    diffs.unshift([DIFF_EQUAL, commonprefix]);\n  }\n  if (commonsuffix) {\n    diffs.push([DIFF_EQUAL, commonsuffix]);\n  }\n  diff_cleanupMerge(diffs);\n  if (cursor_pos != null) {\n    diffs = fix_cursor(diffs, cursor_pos);\n  }\n  diffs = fix_emoji(diffs);\n  return diffs;\n};\n\n\n/**\n * Find the differences between two texts.  Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n  var diffs;\n\n  if (!text1) {\n    // Just add some text (speedup).\n    return [[DIFF_INSERT, text2]];\n  }\n\n  if (!text2) {\n    // Just delete some text (speedup).\n    return [[DIFF_DELETE, text1]];\n  }\n\n  var longtext = text1.length > text2.length ? text1 : text2;\n  var shorttext = text1.length > text2.length ? text2 : text1;\n  var i = longtext.indexOf(shorttext);\n  if (i != -1) {\n    // Shorter text is inside the longer text (speedup).\n    diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n             [DIFF_EQUAL, shorttext],\n             [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n    // Swap insertions for deletions if diff is reversed.\n    if (text1.length > text2.length) {\n      diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n    }\n    return diffs;\n  }\n\n  if (shorttext.length == 1) {\n    // Single character string.\n    // After the previous speedup, the character can't be an equality.\n    return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n  }\n\n  // Check to see if the problem can be split in two.\n  var hm = diff_halfMatch_(text1, text2);\n  if (hm) {\n    // A half-match was found, sort out the return data.\n    var text1_a = hm[0];\n    var text1_b = hm[1];\n    var text2_a = hm[2];\n    var text2_b = hm[3];\n    var mid_common = hm[4];\n    // Send both pairs off for separate processing.\n    var diffs_a = diff_main(text1_a, text2_a);\n    var diffs_b = diff_main(text1_b, text2_b);\n    // Merge the results.\n    return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n  }\n\n  return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n  // Cache the text lengths to prevent multiple calls.\n  var text1_length = text1.length;\n  var text2_length = text2.length;\n  var max_d = Math.ceil((text1_length + text2_length) / 2);\n  var v_offset = max_d;\n  var v_length = 2 * max_d;\n  var v1 = new Array(v_length);\n  var v2 = new Array(v_length);\n  // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n  // integers and undefined.\n  for (var x = 0; x < v_length; x++) {\n    v1[x] = -1;\n    v2[x] = -1;\n  }\n  v1[v_offset + 1] = 0;\n  v2[v_offset + 1] = 0;\n  var delta = text1_length - text2_length;\n  // If the total number of characters is odd, then the front path will collide\n  // with the reverse path.\n  var front = (delta % 2 != 0);\n  // Offsets for start and end of k loop.\n  // Prevents mapping of space beyond the grid.\n  var k1start = 0;\n  var k1end = 0;\n  var k2start = 0;\n  var k2end = 0;\n  for (var d = 0; d < max_d; d++) {\n    // Walk the front path one step.\n    for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n      var k1_offset = v_offset + k1;\n      var x1;\n      if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n        x1 = v1[k1_offset + 1];\n      } else {\n        x1 = v1[k1_offset - 1] + 1;\n      }\n      var y1 = x1 - k1;\n      while (x1 < text1_length && y1 < text2_length &&\n             text1.charAt(x1) == text2.charAt(y1)) {\n        x1++;\n        y1++;\n      }\n      v1[k1_offset] = x1;\n      if (x1 > text1_length) {\n        // Ran off the right of the graph.\n        k1end += 2;\n      } else if (y1 > text2_length) {\n        // Ran off the bottom of the graph.\n        k1start += 2;\n      } else if (front) {\n        var k2_offset = v_offset + delta - k1;\n        if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n          // Mirror x2 onto top-left coordinate system.\n          var x2 = text1_length - v2[k2_offset];\n          if (x1 >= x2) {\n            // Overlap detected.\n            return diff_bisectSplit_(text1, text2, x1, y1);\n          }\n        }\n      }\n    }\n\n    // Walk the reverse path one step.\n    for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n      var k2_offset = v_offset + k2;\n      var x2;\n      if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n        x2 = v2[k2_offset + 1];\n      } else {\n        x2 = v2[k2_offset - 1] + 1;\n      }\n      var y2 = x2 - k2;\n      while (x2 < text1_length && y2 < text2_length &&\n             text1.charAt(text1_length - x2 - 1) ==\n             text2.charAt(text2_length - y2 - 1)) {\n        x2++;\n        y2++;\n      }\n      v2[k2_offset] = x2;\n      if (x2 > text1_length) {\n        // Ran off the left of the graph.\n        k2end += 2;\n      } else if (y2 > text2_length) {\n        // Ran off the top of the graph.\n        k2start += 2;\n      } else if (!front) {\n        var k1_offset = v_offset + delta - k2;\n        if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n          var x1 = v1[k1_offset];\n          var y1 = v_offset + x1 - k1_offset;\n          // Mirror x2 onto top-left coordinate system.\n          x2 = text1_length - x2;\n          if (x1 >= x2) {\n            // Overlap detected.\n            return diff_bisectSplit_(text1, text2, x1, y1);\n          }\n        }\n      }\n    }\n  }\n  // Diff took too long and hit the deadline or\n  // number of diffs equals number of characters, no commonality at all.\n  return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n  var text1a = text1.substring(0, x);\n  var text2a = text2.substring(0, y);\n  var text1b = text1.substring(x);\n  var text2b = text2.substring(y);\n\n  // Compute both diffs serially.\n  var diffs = diff_main(text1a, text2a);\n  var diffsb = diff_main(text1b, text2b);\n\n  return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n *     string.\n */\nfunction diff_commonPrefix(text1, text2) {\n  // Quick check for common null cases.\n  if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n    return 0;\n  }\n  // Binary search.\n  // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n  var pointermin = 0;\n  var pointermax = Math.min(text1.length, text2.length);\n  var pointermid = pointermax;\n  var pointerstart = 0;\n  while (pointermin < pointermid) {\n    if (text1.substring(pointerstart, pointermid) ==\n        text2.substring(pointerstart, pointermid)) {\n      pointermin = pointermid;\n      pointerstart = pointermin;\n    } else {\n      pointermax = pointermid;\n    }\n    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n  }\n  return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n  // Quick check for common null cases.\n  if (!text1 || !text2 ||\n      text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n    return 0;\n  }\n  // Binary search.\n  // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n  var pointermin = 0;\n  var pointermax = Math.min(text1.length, text2.length);\n  var pointermid = pointermax;\n  var pointerend = 0;\n  while (pointermin < pointermid) {\n    if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n        text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n      pointermin = pointermid;\n      pointerend = pointermin;\n    } else {\n      pointermax = pointermid;\n    }\n    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n  }\n  return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n *     text1, the suffix of text1, the prefix of text2, the suffix of\n *     text2 and the common middle.  Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n  var longtext = text1.length > text2.length ? text1 : text2;\n  var shorttext = text1.length > text2.length ? text2 : text1;\n  if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n    return null;  // Pointless.\n  }\n\n  /**\n   * Does a substring of shorttext exist within longtext such that the substring\n   * is at least half the length of longtext?\n   * Closure, but does not reference any external variables.\n   * @param {string} longtext Longer string.\n   * @param {string} shorttext Shorter string.\n   * @param {number} i Start index of quarter length substring within longtext.\n   * @return {Array.<string>} Five element Array, containing the prefix of\n   *     longtext, the suffix of longtext, the prefix of shorttext, the suffix\n   *     of shorttext and the common middle.  Or null if there was no match.\n   * @private\n   */\n  function diff_halfMatchI_(longtext, shorttext, i) {\n    // Start with a 1/4 length substring at position i as a seed.\n    var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n    var j = -1;\n    var best_common = '';\n    var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n    while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n      var prefixLength = diff_commonPrefix(longtext.substring(i),\n                                           shorttext.substring(j));\n      var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n                                           shorttext.substring(0, j));\n      if (best_common.length < suffixLength + prefixLength) {\n        best_common = shorttext.substring(j - suffixLength, j) +\n            shorttext.substring(j, j + prefixLength);\n        best_longtext_a = longtext.substring(0, i - suffixLength);\n        best_longtext_b = longtext.substring(i + prefixLength);\n        best_shorttext_a = shorttext.substring(0, j - suffixLength);\n        best_shorttext_b = shorttext.substring(j + prefixLength);\n      }\n    }\n    if (best_common.length * 2 >= longtext.length) {\n      return [best_longtext_a, best_longtext_b,\n              best_shorttext_a, best_shorttext_b, best_common];\n    } else {\n      return null;\n    }\n  }\n\n  // First check if the second quarter is the seed for a half-match.\n  var hm1 = diff_halfMatchI_(longtext, shorttext,\n                             Math.ceil(longtext.length / 4));\n  // Check again based on the third quarter.\n  var hm2 = diff_halfMatchI_(longtext, shorttext,\n                             Math.ceil(longtext.length / 2));\n  var hm;\n  if (!hm1 && !hm2) {\n    return null;\n  } else if (!hm2) {\n    hm = hm1;\n  } else if (!hm1) {\n    hm = hm2;\n  } else {\n    // Both matched.  Select the longest.\n    hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n  }\n\n  // A half-match was found, sort out the return data.\n  var text1_a, text1_b, text2_a, text2_b;\n  if (text1.length > text2.length) {\n    text1_a = hm[0];\n    text1_b = hm[1];\n    text2_a = hm[2];\n    text2_b = hm[3];\n  } else {\n    text2_a = hm[0];\n    text2_b = hm[1];\n    text1_a = hm[2];\n    text1_b = hm[3];\n  }\n  var mid_common = hm[4];\n  return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections.  Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n  diffs.push([DIFF_EQUAL, '']);  // Add a dummy entry at the end.\n  var pointer = 0;\n  var count_delete = 0;\n  var count_insert = 0;\n  var text_delete = '';\n  var text_insert = '';\n  var commonlength;\n  while (pointer < diffs.length) {\n    switch (diffs[pointer][0]) {\n      case DIFF_INSERT:\n        count_insert++;\n        text_insert += diffs[pointer][1];\n        pointer++;\n        break;\n      case DIFF_DELETE:\n        count_delete++;\n        text_delete += diffs[pointer][1];\n        pointer++;\n        break;\n      case DIFF_EQUAL:\n        // Upon reaching an equality, check for prior redundancies.\n        if (count_delete + count_insert > 1) {\n          if (count_delete !== 0 && count_insert !== 0) {\n            // Factor out any common prefixies.\n            commonlength = diff_commonPrefix(text_insert, text_delete);\n            if (commonlength !== 0) {\n              if ((pointer - count_delete - count_insert) > 0 &&\n                  diffs[pointer - count_delete - count_insert - 1][0] ==\n                  DIFF_EQUAL) {\n                diffs[pointer - count_delete - count_insert - 1][1] +=\n                    text_insert.substring(0, commonlength);\n              } else {\n                diffs.splice(0, 0, [DIFF_EQUAL,\n                                    text_insert.substring(0, commonlength)]);\n                pointer++;\n              }\n              text_insert = text_insert.substring(commonlength);\n              text_delete = text_delete.substring(commonlength);\n            }\n            // Factor out any common suffixies.\n            commonlength = diff_commonSuffix(text_insert, text_delete);\n            if (commonlength !== 0) {\n              diffs[pointer][1] = text_insert.substring(text_insert.length -\n                  commonlength) + diffs[pointer][1];\n              text_insert = text_insert.substring(0, text_insert.length -\n                  commonlength);\n              text_delete = text_delete.substring(0, text_delete.length -\n                  commonlength);\n            }\n          }\n          // Delete the offending records and add the merged ones.\n          if (count_delete === 0) {\n            diffs.splice(pointer - count_insert,\n                count_delete + count_insert, [DIFF_INSERT, text_insert]);\n          } else if (count_insert === 0) {\n            diffs.splice(pointer - count_delete,\n                count_delete + count_insert, [DIFF_DELETE, text_delete]);\n          } else {\n            diffs.splice(pointer - count_delete - count_insert,\n                count_delete + count_insert, [DIFF_DELETE, text_delete],\n                [DIFF_INSERT, text_insert]);\n          }\n          pointer = pointer - count_delete - count_insert +\n                    (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n        } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n          // Merge this equality with the previous one.\n          diffs[pointer - 1][1] += diffs[pointer][1];\n          diffs.splice(pointer, 1);\n        } else {\n          pointer++;\n        }\n        count_insert = 0;\n        count_delete = 0;\n        text_delete = '';\n        text_insert = '';\n        break;\n    }\n  }\n  if (diffs[diffs.length - 1][1] === '') {\n    diffs.pop();  // Remove the dummy entry at the end.\n  }\n\n  // Second pass: look for single edits surrounded on both sides by equalities\n  // which can be shifted sideways to eliminate an equality.\n  // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n  var changes = false;\n  pointer = 1;\n  // Intentionally ignore the first and last element (don't need checking).\n  while (pointer < diffs.length - 1) {\n    if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n        diffs[pointer + 1][0] == DIFF_EQUAL) {\n      // This is a single edit surrounded by equalities.\n      if (diffs[pointer][1].substring(diffs[pointer][1].length -\n          diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n        // Shift the edit over the previous equality.\n        diffs[pointer][1] = diffs[pointer - 1][1] +\n            diffs[pointer][1].substring(0, diffs[pointer][1].length -\n                                        diffs[pointer - 1][1].length);\n        diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n        diffs.splice(pointer - 1, 1);\n        changes = true;\n      } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n          diffs[pointer + 1][1]) {\n        // Shift the edit over the next equality.\n        diffs[pointer - 1][1] += diffs[pointer + 1][1];\n        diffs[pointer][1] =\n            diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n            diffs[pointer + 1][1];\n        diffs.splice(pointer + 1, 1);\n        changes = true;\n      }\n    }\n    pointer++;\n  }\n  // If shifts were made, the diff needs reordering and another shift sweep.\n  if (changes) {\n    diff_cleanupMerge(diffs);\n  }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n *   cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n *     => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n *   cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n *     => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n  if (cursor_pos === 0) {\n    return [DIFF_EQUAL, diffs];\n  }\n  for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n    var d = diffs[i];\n    if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n      var next_pos = current_pos + d[1].length;\n      if (cursor_pos === next_pos) {\n        return [i + 1, diffs];\n      } else if (cursor_pos < next_pos) {\n        // copy to prevent side effects\n        diffs = diffs.slice();\n        // split d into two diff changes\n        var split_pos = cursor_pos - current_pos;\n        var d_left = [d[0], d[1].slice(0, split_pos)];\n        var d_right = [d[0], d[1].slice(split_pos)];\n        diffs.splice(i, 1, d_left, d_right);\n        return [i + 1, diffs];\n      } else {\n        current_pos = next_pos;\n      }\n    }\n  }\n  throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n *   Check if a naive shift is possible:\n *     [0, X], [ 1, Y] -> [ 1, Y], [0, X]    (if X + Y === Y + X)\n *     [0, X], [-1, Y] -> [-1, Y], [0, X]    (if X + Y === Y + X) - holds same result\n * Case 2)\n *   Check if the following shifts are possible:\n *     [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n *     [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n *         ^            ^\n *         d          d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n  var norm = cursor_normalize_diff(diffs, cursor_pos);\n  var ndiffs = norm[1];\n  var cursor_pointer = norm[0];\n  var d = ndiffs[cursor_pointer];\n  var d_next = ndiffs[cursor_pointer + 1];\n\n  if (d == null) {\n    // Text was deleted from end of original string,\n    // cursor is now out of bounds in new string\n    return diffs;\n  } else if (d[0] !== DIFF_EQUAL) {\n    // A modification happened at the cursor location.\n    // This is the expected outcome, so we can return the original diff.\n    return diffs;\n  } else {\n    if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n      // Case 1)\n      // It is possible to perform a naive shift\n      ndiffs.splice(cursor_pointer, 2, d_next, d)\n      return merge_tuples(ndiffs, cursor_pointer, 2)\n    } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n      // Case 2)\n      // d[1] is a prefix of d_next[1]\n      // We can assume that d_next[0] !== 0, since d[0] === 0\n      // Shift edit locations..\n      ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n      var suffix = d_next[1].slice(d[1].length);\n      if (suffix.length > 0) {\n        ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n      }\n      return merge_tuples(ndiffs, cursor_pointer, 3)\n    } else {\n      // Not possible to perform any modification\n      return diffs;\n    }\n  }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n *     '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n  var compact = false;\n  var starts_with_pair_end = function(str) {\n    return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n  }\n  var ends_with_pair_start = function(str) {\n    return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n  }\n  for (var i = 2; i < diffs.length; i += 1) {\n    if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n        diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n        diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n      compact = true;\n\n      diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n      diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n      diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n    }\n  }\n  if (!compact) {\n    return diffs;\n  }\n  var fixed_diffs = [];\n  for (var i = 0; i < diffs.length; i += 1) {\n    if (diffs[i][1].length > 0) {\n      fixed_diffs.push(diffs[i]);\n    }\n  }\n  return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n  // Check from (start-1) to (start+length).\n  for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n    if (i + 1 < diffs.length) {\n      var left_d = diffs[i];\n      var right_d = diffs[i+1];\n      if (left_d[0] === right_d[1]) {\n        diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n      }\n    }\n  }\n  return diffs;\n}\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\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[\"Parchment\"] = factory();\n\telse\n\t\troot[\"Parchment\"] = factory();\n})(typeof self !== 'undefined' ? self : 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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 9);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n    __extends(ParchmentError, _super);\n    function ParchmentError(message) {\n        var _this = this;\n        message = '[Parchment] ' + message;\n        _this = _super.call(this, message) || this;\n        _this.message = message;\n        _this.name = _this.constructor.name;\n        return _this;\n    }\n    return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n    Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n    Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n    Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n    Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n    Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n    Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n    Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n    Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n    Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n    Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n    Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n    var match = query(input);\n    if (match == null) {\n        throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n    }\n    var BlotClass = match;\n    var node = \n    // @ts-ignore\n    input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n    return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n    if (bubble === void 0) { bubble = false; }\n    if (node == null)\n        return null;\n    // @ts-ignore\n    if (node[exports.DATA_KEY] != null)\n        return node[exports.DATA_KEY].blot;\n    if (bubble)\n        return find(node.parentNode, bubble);\n    return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n    if (scope === void 0) { scope = Scope.ANY; }\n    var match;\n    if (typeof query === 'string') {\n        match = types[query] || attributes[query];\n        // @ts-ignore\n    }\n    else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n        match = types['text'];\n    }\n    else if (typeof query === 'number') {\n        if (query & Scope.LEVEL & Scope.BLOCK) {\n            match = types['block'];\n        }\n        else if (query & Scope.LEVEL & Scope.INLINE) {\n            match = types['inline'];\n        }\n    }\n    else if (query instanceof HTMLElement) {\n        var names = (query.getAttribute('class') || '').split(/\\s+/);\n        for (var i in names) {\n            match = classes[names[i]];\n            if (match)\n                break;\n        }\n        match = match || tags[query.tagName];\n    }\n    if (match == null)\n        return null;\n    // @ts-ignore\n    if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n        return match;\n    return null;\n}\nexports.query = query;\nfunction register() {\n    var Definitions = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        Definitions[_i] = arguments[_i];\n    }\n    if (Definitions.length > 1) {\n        return Definitions.map(function (d) {\n            return register(d);\n        });\n    }\n    var Definition = Definitions[0];\n    if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n        throw new ParchmentError('Invalid definition');\n    }\n    else if (Definition.blotName === 'abstract') {\n        throw new ParchmentError('Cannot register abstract class');\n    }\n    types[Definition.blotName || Definition.attrName] = Definition;\n    if (typeof Definition.keyName === 'string') {\n        attributes[Definition.keyName] = Definition;\n    }\n    else {\n        if (Definition.className != null) {\n            classes[Definition.className] = Definition;\n        }\n        if (Definition.tagName != null) {\n            if (Array.isArray(Definition.tagName)) {\n                Definition.tagName = Definition.tagName.map(function (tagName) {\n                    return tagName.toUpperCase();\n                });\n            }\n            else {\n                Definition.tagName = Definition.tagName.toUpperCase();\n            }\n            var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n            tagNames.forEach(function (tag) {\n                if (tags[tag] == null || Definition.className == null) {\n                    tags[tag] = Definition;\n                }\n            });\n        }\n    }\n    return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(0);\nvar Attributor = /** @class */ (function () {\n    function Attributor(attrName, keyName, options) {\n        if (options === void 0) { options = {}; }\n        this.attrName = attrName;\n        this.keyName = keyName;\n        var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n        if (options.scope != null) {\n            // Ignore type bits, force attribute bit\n            this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n        }\n        else {\n            this.scope = Registry.Scope.ATTRIBUTE;\n        }\n        if (options.whitelist != null)\n            this.whitelist = options.whitelist;\n    }\n    Attributor.keys = function (node) {\n        return [].map.call(node.attributes, function (item) {\n            return item.name;\n        });\n    };\n    Attributor.prototype.add = function (node, value) {\n        if (!this.canAdd(node, value))\n            return false;\n        node.setAttribute(this.keyName, value);\n        return true;\n    };\n    Attributor.prototype.canAdd = function (node, value) {\n        var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n        if (match == null)\n            return false;\n        if (this.whitelist == null)\n            return true;\n        if (typeof value === 'string') {\n            return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n        }\n        else {\n            return this.whitelist.indexOf(value) > -1;\n        }\n    };\n    Attributor.prototype.remove = function (node) {\n        node.removeAttribute(this.keyName);\n    };\n    Attributor.prototype.value = function (node) {\n        var value = node.getAttribute(this.keyName);\n        if (this.canAdd(node, value) && value) {\n            return value;\n        }\n        return '';\n    };\n    return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(11);\nvar shadow_1 = __webpack_require__(5);\nvar Registry = __webpack_require__(0);\nvar ContainerBlot = /** @class */ (function (_super) {\n    __extends(ContainerBlot, _super);\n    function ContainerBlot(domNode) {\n        var _this = _super.call(this, domNode) || this;\n        _this.build();\n        return _this;\n    }\n    ContainerBlot.prototype.appendChild = function (other) {\n        this.insertBefore(other);\n    };\n    ContainerBlot.prototype.attach = function () {\n        _super.prototype.attach.call(this);\n        this.children.forEach(function (child) {\n            child.attach();\n        });\n    };\n    ContainerBlot.prototype.build = function () {\n        var _this = this;\n        this.children = new linked_list_1.default();\n        // Need to be reversed for if DOM nodes already in order\n        [].slice\n            .call(this.domNode.childNodes)\n            .reverse()\n            .forEach(function (node) {\n            try {\n                var child = makeBlot(node);\n                _this.insertBefore(child, _this.children.head || undefined);\n            }\n            catch (err) {\n                if (err instanceof Registry.ParchmentError)\n                    return;\n                else\n                    throw err;\n            }\n        });\n    };\n    ContainerBlot.prototype.deleteAt = function (index, length) {\n        if (index === 0 && length === this.length()) {\n            return this.remove();\n        }\n        this.children.forEachAt(index, length, function (child, offset, length) {\n            child.deleteAt(offset, length);\n        });\n    };\n    ContainerBlot.prototype.descendant = function (criteria, index) {\n        var _a = this.children.find(index), child = _a[0], offset = _a[1];\n        if ((criteria.blotName == null && criteria(child)) ||\n            (criteria.blotName != null && child instanceof criteria)) {\n            return [child, offset];\n        }\n        else if (child instanceof ContainerBlot) {\n            return child.descendant(criteria, offset);\n        }\n        else {\n            return [null, -1];\n        }\n    };\n    ContainerBlot.prototype.descendants = function (criteria, index, length) {\n        if (index === void 0) { index = 0; }\n        if (length === void 0) { length = Number.MAX_VALUE; }\n        var descendants = [];\n        var lengthLeft = length;\n        this.children.forEachAt(index, length, function (child, index, length) {\n            if ((criteria.blotName == null && criteria(child)) ||\n                (criteria.blotName != null && child instanceof criteria)) {\n                descendants.push(child);\n            }\n            if (child instanceof ContainerBlot) {\n                descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n            }\n            lengthLeft -= length;\n        });\n        return descendants;\n    };\n    ContainerBlot.prototype.detach = function () {\n        this.children.forEach(function (child) {\n            child.detach();\n        });\n        _super.prototype.detach.call(this);\n    };\n    ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n        this.children.forEachAt(index, length, function (child, offset, length) {\n            child.formatAt(offset, length, name, value);\n        });\n    };\n    ContainerBlot.prototype.insertAt = function (index, value, def) {\n        var _a = this.children.find(index), child = _a[0], offset = _a[1];\n        if (child) {\n            child.insertAt(offset, value, def);\n        }\n        else {\n            var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n            this.appendChild(blot);\n        }\n    };\n    ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n        if (this.statics.allowedChildren != null &&\n            !this.statics.allowedChildren.some(function (child) {\n                return childBlot instanceof child;\n            })) {\n            throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n        }\n        childBlot.insertInto(this, refBlot);\n    };\n    ContainerBlot.prototype.length = function () {\n        return this.children.reduce(function (memo, child) {\n            return memo + child.length();\n        }, 0);\n    };\n    ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n        this.children.forEach(function (child) {\n            targetParent.insertBefore(child, refNode);\n        });\n    };\n    ContainerBlot.prototype.optimize = function (context) {\n        _super.prototype.optimize.call(this, context);\n        if (this.children.length === 0) {\n            if (this.statics.defaultChild != null) {\n                var child = Registry.create(this.statics.defaultChild);\n                this.appendChild(child);\n                child.optimize(context);\n            }\n            else {\n                this.remove();\n            }\n        }\n    };\n    ContainerBlot.prototype.path = function (index, inclusive) {\n        if (inclusive === void 0) { inclusive = false; }\n        var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n        var position = [[this, index]];\n        if (child instanceof ContainerBlot) {\n            return position.concat(child.path(offset, inclusive));\n        }\n        else if (child != null) {\n            position.push([child, offset]);\n        }\n        return position;\n    };\n    ContainerBlot.prototype.removeChild = function (child) {\n        this.children.remove(child);\n    };\n    ContainerBlot.prototype.replace = function (target) {\n        if (target instanceof ContainerBlot) {\n            target.moveChildren(this);\n        }\n        _super.prototype.replace.call(this, target);\n    };\n    ContainerBlot.prototype.split = function (index, force) {\n        if (force === void 0) { force = false; }\n        if (!force) {\n            if (index === 0)\n                return this;\n            if (index === this.length())\n                return this.next;\n        }\n        var after = this.clone();\n        this.parent.insertBefore(after, this.next);\n        this.children.forEachAt(index, this.length(), function (child, offset, length) {\n            child = child.split(offset, force);\n            after.appendChild(child);\n        });\n        return after;\n    };\n    ContainerBlot.prototype.unwrap = function () {\n        this.moveChildren(this.parent, this.next);\n        this.remove();\n    };\n    ContainerBlot.prototype.update = function (mutations, context) {\n        var _this = this;\n        var addedNodes = [];\n        var removedNodes = [];\n        mutations.forEach(function (mutation) {\n            if (mutation.target === _this.domNode && mutation.type === 'childList') {\n                addedNodes.push.apply(addedNodes, mutation.addedNodes);\n                removedNodes.push.apply(removedNodes, mutation.removedNodes);\n            }\n        });\n        removedNodes.forEach(function (node) {\n            // Check node has actually been removed\n            // One exception is Chrome does not immediately remove IFRAMEs\n            // from DOM but MutationRecord is correct in its reported removal\n            if (node.parentNode != null &&\n                // @ts-ignore\n                node.tagName !== 'IFRAME' &&\n                document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n                return;\n            }\n            var blot = Registry.find(node);\n            if (blot == null)\n                return;\n            if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n                blot.detach();\n            }\n        });\n        addedNodes\n            .filter(function (node) {\n            return node.parentNode == _this.domNode;\n        })\n            .sort(function (a, b) {\n            if (a === b)\n                return 0;\n            if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n                return 1;\n            }\n            return -1;\n        })\n            .forEach(function (node) {\n            var refBlot = null;\n            if (node.nextSibling != null) {\n                refBlot = Registry.find(node.nextSibling);\n            }\n            var blot = makeBlot(node);\n            if (blot.next != refBlot || blot.next == null) {\n                if (blot.parent != null) {\n                    blot.parent.removeChild(_this);\n                }\n                _this.insertBefore(blot, refBlot || undefined);\n            }\n        });\n    };\n    return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n    var blot = Registry.find(node);\n    if (blot == null) {\n        try {\n            blot = Registry.create(node);\n        }\n        catch (e) {\n            blot = Registry.create(Registry.Scope.INLINE);\n            [].slice.call(node.childNodes).forEach(function (child) {\n                // @ts-ignore\n                blot.domNode.appendChild(child);\n            });\n            if (node.parentNode) {\n                node.parentNode.replaceChild(blot.domNode, node);\n            }\n            blot.attach();\n        }\n    }\n    return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(1);\nvar store_1 = __webpack_require__(6);\nvar container_1 = __webpack_require__(2);\nvar Registry = __webpack_require__(0);\nvar FormatBlot = /** @class */ (function (_super) {\n    __extends(FormatBlot, _super);\n    function FormatBlot(domNode) {\n        var _this = _super.call(this, domNode) || this;\n        _this.attributes = new store_1.default(_this.domNode);\n        return _this;\n    }\n    FormatBlot.formats = function (domNode) {\n        if (typeof this.tagName === 'string') {\n            return true;\n        }\n        else if (Array.isArray(this.tagName)) {\n            return domNode.tagName.toLowerCase();\n        }\n        return undefined;\n    };\n    FormatBlot.prototype.format = function (name, value) {\n        var format = Registry.query(name);\n        if (format instanceof attributor_1.default) {\n            this.attributes.attribute(format, value);\n        }\n        else if (value) {\n            if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n                this.replaceWith(name, value);\n            }\n        }\n    };\n    FormatBlot.prototype.formats = function () {\n        var formats = this.attributes.values();\n        var format = this.statics.formats(this.domNode);\n        if (format != null) {\n            formats[this.statics.blotName] = format;\n        }\n        return formats;\n    };\n    FormatBlot.prototype.replaceWith = function (name, value) {\n        var replacement = _super.prototype.replaceWith.call(this, name, value);\n        this.attributes.copy(replacement);\n        return replacement;\n    };\n    FormatBlot.prototype.update = function (mutations, context) {\n        var _this = this;\n        _super.prototype.update.call(this, mutations, context);\n        if (mutations.some(function (mutation) {\n            return mutation.target === _this.domNode && mutation.type === 'attributes';\n        })) {\n            this.attributes.build();\n        }\n    };\n    FormatBlot.prototype.wrap = function (name, value) {\n        var wrapper = _super.prototype.wrap.call(this, name, value);\n        if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n            this.attributes.move(wrapper);\n        }\n        return wrapper;\n    };\n    return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(5);\nvar Registry = __webpack_require__(0);\nvar LeafBlot = /** @class */ (function (_super) {\n    __extends(LeafBlot, _super);\n    function LeafBlot() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    LeafBlot.value = function (domNode) {\n        return true;\n    };\n    LeafBlot.prototype.index = function (node, offset) {\n        if (this.domNode === node ||\n            this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n            return Math.min(offset, 1);\n        }\n        return -1;\n    };\n    LeafBlot.prototype.position = function (index, inclusive) {\n        var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n        if (index > 0)\n            offset += 1;\n        return [this.parent.domNode, offset];\n    };\n    LeafBlot.prototype.value = function () {\n        return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n        var _a;\n    };\n    LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n    return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(0);\nvar ShadowBlot = /** @class */ (function () {\n    function ShadowBlot(domNode) {\n        this.domNode = domNode;\n        // @ts-ignore\n        this.domNode[Registry.DATA_KEY] = { blot: this };\n    }\n    Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n        // Hack for accessing inherited static methods\n        get: function () {\n            return this.constructor;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ShadowBlot.create = function (value) {\n        if (this.tagName == null) {\n            throw new Registry.ParchmentError('Blot definition missing tagName');\n        }\n        var node;\n        if (Array.isArray(this.tagName)) {\n            if (typeof value === 'string') {\n                value = value.toUpperCase();\n                if (parseInt(value).toString() === value) {\n                    value = parseInt(value);\n                }\n            }\n            if (typeof value === 'number') {\n                node = document.createElement(this.tagName[value - 1]);\n            }\n            else if (this.tagName.indexOf(value) > -1) {\n                node = document.createElement(value);\n            }\n            else {\n                node = document.createElement(this.tagName[0]);\n            }\n        }\n        else {\n            node = document.createElement(this.tagName);\n        }\n        if (this.className) {\n            node.classList.add(this.className);\n        }\n        return node;\n    };\n    ShadowBlot.prototype.attach = function () {\n        if (this.parent != null) {\n            this.scroll = this.parent.scroll;\n        }\n    };\n    ShadowBlot.prototype.clone = function () {\n        var domNode = this.domNode.cloneNode(false);\n        return Registry.create(domNode);\n    };\n    ShadowBlot.prototype.detach = function () {\n        if (this.parent != null)\n            this.parent.removeChild(this);\n        // @ts-ignore\n        delete this.domNode[Registry.DATA_KEY];\n    };\n    ShadowBlot.prototype.deleteAt = function (index, length) {\n        var blot = this.isolate(index, length);\n        blot.remove();\n    };\n    ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n        var blot = this.isolate(index, length);\n        if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n            blot.wrap(name, value);\n        }\n        else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n            var parent_1 = Registry.create(this.statics.scope);\n            blot.wrap(parent_1);\n            parent_1.format(name, value);\n        }\n    };\n    ShadowBlot.prototype.insertAt = function (index, value, def) {\n        var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n        var ref = this.split(index);\n        this.parent.insertBefore(blot, ref);\n    };\n    ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n        if (refBlot === void 0) { refBlot = null; }\n        if (this.parent != null) {\n            this.parent.children.remove(this);\n        }\n        var refDomNode = null;\n        parentBlot.children.insertBefore(this, refBlot);\n        if (refBlot != null) {\n            refDomNode = refBlot.domNode;\n        }\n        if (this.domNode.parentNode != parentBlot.domNode ||\n            this.domNode.nextSibling != refDomNode) {\n            parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n        }\n        this.parent = parentBlot;\n        this.attach();\n    };\n    ShadowBlot.prototype.isolate = function (index, length) {\n        var target = this.split(index);\n        target.split(length);\n        return target;\n    };\n    ShadowBlot.prototype.length = function () {\n        return 1;\n    };\n    ShadowBlot.prototype.offset = function (root) {\n        if (root === void 0) { root = this.parent; }\n        if (this.parent == null || this == root)\n            return 0;\n        return this.parent.children.offset(this) + this.parent.offset(root);\n    };\n    ShadowBlot.prototype.optimize = function (context) {\n        // TODO clean up once we use WeakMap\n        // @ts-ignore\n        if (this.domNode[Registry.DATA_KEY] != null) {\n            // @ts-ignore\n            delete this.domNode[Registry.DATA_KEY].mutations;\n        }\n    };\n    ShadowBlot.prototype.remove = function () {\n        if (this.domNode.parentNode != null) {\n            this.domNode.parentNode.removeChild(this.domNode);\n        }\n        this.detach();\n    };\n    ShadowBlot.prototype.replace = function (target) {\n        if (target.parent == null)\n            return;\n        target.parent.insertBefore(this, target.next);\n        target.remove();\n    };\n    ShadowBlot.prototype.replaceWith = function (name, value) {\n        var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n        replacement.replace(this);\n        return replacement;\n    };\n    ShadowBlot.prototype.split = function (index, force) {\n        return index === 0 ? this : this.next;\n    };\n    ShadowBlot.prototype.update = function (mutations, context) {\n        // Nothing to do by default\n    };\n    ShadowBlot.prototype.wrap = function (name, value) {\n        var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n        if (this.parent != null) {\n            this.parent.insertBefore(wrapper, this.next);\n        }\n        wrapper.appendChild(this);\n        return wrapper;\n    };\n    ShadowBlot.blotName = 'abstract';\n    return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(1);\nvar class_1 = __webpack_require__(7);\nvar style_1 = __webpack_require__(8);\nvar Registry = __webpack_require__(0);\nvar AttributorStore = /** @class */ (function () {\n    function AttributorStore(domNode) {\n        this.attributes = {};\n        this.domNode = domNode;\n        this.build();\n    }\n    AttributorStore.prototype.attribute = function (attribute, value) {\n        // verb\n        if (value) {\n            if (attribute.add(this.domNode, value)) {\n                if (attribute.value(this.domNode) != null) {\n                    this.attributes[attribute.attrName] = attribute;\n                }\n                else {\n                    delete this.attributes[attribute.attrName];\n                }\n            }\n        }\n        else {\n            attribute.remove(this.domNode);\n            delete this.attributes[attribute.attrName];\n        }\n    };\n    AttributorStore.prototype.build = function () {\n        var _this = this;\n        this.attributes = {};\n        var attributes = attributor_1.default.keys(this.domNode);\n        var classes = class_1.default.keys(this.domNode);\n        var styles = style_1.default.keys(this.domNode);\n        attributes\n            .concat(classes)\n            .concat(styles)\n            .forEach(function (name) {\n            var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n            if (attr instanceof attributor_1.default) {\n                _this.attributes[attr.attrName] = attr;\n            }\n        });\n    };\n    AttributorStore.prototype.copy = function (target) {\n        var _this = this;\n        Object.keys(this.attributes).forEach(function (key) {\n            var value = _this.attributes[key].value(_this.domNode);\n            target.format(key, value);\n        });\n    };\n    AttributorStore.prototype.move = function (target) {\n        var _this = this;\n        this.copy(target);\n        Object.keys(this.attributes).forEach(function (key) {\n            _this.attributes[key].remove(_this.domNode);\n        });\n        this.attributes = {};\n    };\n    AttributorStore.prototype.values = function () {\n        var _this = this;\n        return Object.keys(this.attributes).reduce(function (attributes, name) {\n            attributes[name] = _this.attributes[name].value(_this.domNode);\n            return attributes;\n        }, {});\n    };\n    return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(1);\nfunction match(node, prefix) {\n    var className = node.getAttribute('class') || '';\n    return className.split(/\\s+/).filter(function (name) {\n        return name.indexOf(prefix + \"-\") === 0;\n    });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n    __extends(ClassAttributor, _super);\n    function ClassAttributor() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ClassAttributor.keys = function (node) {\n        return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n            return name\n                .split('-')\n                .slice(0, -1)\n                .join('-');\n        });\n    };\n    ClassAttributor.prototype.add = function (node, value) {\n        if (!this.canAdd(node, value))\n            return false;\n        this.remove(node);\n        node.classList.add(this.keyName + \"-\" + value);\n        return true;\n    };\n    ClassAttributor.prototype.remove = function (node) {\n        var matches = match(node, this.keyName);\n        matches.forEach(function (name) {\n            node.classList.remove(name);\n        });\n        if (node.classList.length === 0) {\n            node.removeAttribute('class');\n        }\n    };\n    ClassAttributor.prototype.value = function (node) {\n        var result = match(node, this.keyName)[0] || '';\n        var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n        return this.canAdd(node, value) ? value : '';\n    };\n    return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(1);\nfunction camelize(name) {\n    var parts = name.split('-');\n    var rest = parts\n        .slice(1)\n        .map(function (part) {\n        return part[0].toUpperCase() + part.slice(1);\n    })\n        .join('');\n    return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n    __extends(StyleAttributor, _super);\n    function StyleAttributor() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    StyleAttributor.keys = function (node) {\n        return (node.getAttribute('style') || '').split(';').map(function (value) {\n            var arr = value.split(':');\n            return arr[0].trim();\n        });\n    };\n    StyleAttributor.prototype.add = function (node, value) {\n        if (!this.canAdd(node, value))\n            return false;\n        // @ts-ignore\n        node.style[camelize(this.keyName)] = value;\n        return true;\n    };\n    StyleAttributor.prototype.remove = function (node) {\n        // @ts-ignore\n        node.style[camelize(this.keyName)] = '';\n        if (!node.getAttribute('style')) {\n            node.removeAttribute('style');\n        }\n    };\n    StyleAttributor.prototype.value = function (node) {\n        // @ts-ignore\n        var value = node.style[camelize(this.keyName)];\n        return this.canAdd(node, value) ? value : '';\n    };\n    return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(10);\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(2);\nvar format_1 = __webpack_require__(3);\nvar leaf_1 = __webpack_require__(4);\nvar scroll_1 = __webpack_require__(12);\nvar inline_1 = __webpack_require__(13);\nvar block_1 = __webpack_require__(14);\nvar embed_1 = __webpack_require__(15);\nvar text_1 = __webpack_require__(16);\nvar attributor_1 = __webpack_require__(1);\nvar class_1 = __webpack_require__(7);\nvar style_1 = __webpack_require__(8);\nvar store_1 = __webpack_require__(6);\nvar Registry = __webpack_require__(0);\nvar Parchment = {\n    Scope: Registry.Scope,\n    create: Registry.create,\n    find: Registry.find,\n    query: Registry.query,\n    register: Registry.register,\n    Container: container_1.default,\n    Format: format_1.default,\n    Leaf: leaf_1.default,\n    Embed: embed_1.default,\n    Scroll: scroll_1.default,\n    Block: block_1.default,\n    Inline: inline_1.default,\n    Text: text_1.default,\n    Attributor: {\n        Attribute: attributor_1.default,\n        Class: class_1.default,\n        Style: style_1.default,\n        Store: store_1.default,\n    },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n    function LinkedList() {\n        this.head = this.tail = null;\n        this.length = 0;\n    }\n    LinkedList.prototype.append = function () {\n        var nodes = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            nodes[_i] = arguments[_i];\n        }\n        this.insertBefore(nodes[0], null);\n        if (nodes.length > 1) {\n            this.append.apply(this, nodes.slice(1));\n        }\n    };\n    LinkedList.prototype.contains = function (node) {\n        var cur, next = this.iterator();\n        while ((cur = next())) {\n            if (cur === node)\n                return true;\n        }\n        return false;\n    };\n    LinkedList.prototype.insertBefore = function (node, refNode) {\n        if (!node)\n            return;\n        node.next = refNode;\n        if (refNode != null) {\n            node.prev = refNode.prev;\n            if (refNode.prev != null) {\n                refNode.prev.next = node;\n            }\n            refNode.prev = node;\n            if (refNode === this.head) {\n                this.head = node;\n            }\n        }\n        else if (this.tail != null) {\n            this.tail.next = node;\n            node.prev = this.tail;\n            this.tail = node;\n        }\n        else {\n            node.prev = null;\n            this.head = this.tail = node;\n        }\n        this.length += 1;\n    };\n    LinkedList.prototype.offset = function (target) {\n        var index = 0, cur = this.head;\n        while (cur != null) {\n            if (cur === target)\n                return index;\n            index += cur.length();\n            cur = cur.next;\n        }\n        return -1;\n    };\n    LinkedList.prototype.remove = function (node) {\n        if (!this.contains(node))\n            return;\n        if (node.prev != null)\n            node.prev.next = node.next;\n        if (node.next != null)\n            node.next.prev = node.prev;\n        if (node === this.head)\n            this.head = node.next;\n        if (node === this.tail)\n            this.tail = node.prev;\n        this.length -= 1;\n    };\n    LinkedList.prototype.iterator = function (curNode) {\n        if (curNode === void 0) { curNode = this.head; }\n        // TODO use yield when we can\n        return function () {\n            var ret = curNode;\n            if (curNode != null)\n                curNode = curNode.next;\n            return ret;\n        };\n    };\n    LinkedList.prototype.find = function (index, inclusive) {\n        if (inclusive === void 0) { inclusive = false; }\n        var cur, next = this.iterator();\n        while ((cur = next())) {\n            var length_1 = cur.length();\n            if (index < length_1 ||\n                (inclusive && index === length_1 && (cur.next == null || cur.next.length() !== 0))) {\n                return [cur, index];\n            }\n            index -= length_1;\n        }\n        return [null, 0];\n    };\n    LinkedList.prototype.forEach = function (callback) {\n        var cur, next = this.iterator();\n        while ((cur = next())) {\n            callback(cur);\n        }\n    };\n    LinkedList.prototype.forEachAt = function (index, length, callback) {\n        if (length <= 0)\n            return;\n        var _a = this.find(index), startNode = _a[0], offset = _a[1];\n        var cur, curIndex = index - offset, next = this.iterator(startNode);\n        while ((cur = next()) && curIndex < index + length) {\n            var curLength = cur.length();\n            if (index > curIndex) {\n                callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n            }\n            else {\n                callback(cur, 0, Math.min(curLength, index + length - curIndex));\n            }\n            curIndex += curLength;\n        }\n    };\n    LinkedList.prototype.map = function (callback) {\n        return this.reduce(function (memo, cur) {\n            memo.push(callback(cur));\n            return memo;\n        }, []);\n    };\n    LinkedList.prototype.reduce = function (callback, memo) {\n        var cur, next = this.iterator();\n        while ((cur = next())) {\n            memo = callback(memo, cur);\n        }\n        return memo;\n    };\n    return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(2);\nvar Registry = __webpack_require__(0);\nvar OBSERVER_CONFIG = {\n    attributes: true,\n    characterData: true,\n    characterDataOldValue: true,\n    childList: true,\n    subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n    __extends(ScrollBlot, _super);\n    function ScrollBlot(node) {\n        var _this = _super.call(this, node) || this;\n        _this.scroll = _this;\n        _this.observer = new MutationObserver(function (mutations) {\n            _this.update(mutations);\n        });\n        _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n        _this.attach();\n        return _this;\n    }\n    ScrollBlot.prototype.detach = function () {\n        _super.prototype.detach.call(this);\n        this.observer.disconnect();\n    };\n    ScrollBlot.prototype.deleteAt = function (index, length) {\n        this.update();\n        if (index === 0 && length === this.length()) {\n            this.children.forEach(function (child) {\n                child.remove();\n            });\n        }\n        else {\n            _super.prototype.deleteAt.call(this, index, length);\n        }\n    };\n    ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n        this.update();\n        _super.prototype.formatAt.call(this, index, length, name, value);\n    };\n    ScrollBlot.prototype.insertAt = function (index, value, def) {\n        this.update();\n        _super.prototype.insertAt.call(this, index, value, def);\n    };\n    ScrollBlot.prototype.optimize = function (mutations, context) {\n        var _this = this;\n        if (mutations === void 0) { mutations = []; }\n        if (context === void 0) { context = {}; }\n        _super.prototype.optimize.call(this, context);\n        // We must modify mutations directly, cannot make copy and then modify\n        var records = [].slice.call(this.observer.takeRecords());\n        // Array.push currently seems to be implemented by a non-tail recursive function\n        // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n        while (records.length > 0)\n            mutations.push(records.pop());\n        // TODO use WeakMap\n        var mark = function (blot, markParent) {\n            if (markParent === void 0) { markParent = true; }\n            if (blot == null || blot === _this)\n                return;\n            if (blot.domNode.parentNode == null)\n                return;\n            // @ts-ignore\n            if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n                // @ts-ignore\n                blot.domNode[Registry.DATA_KEY].mutations = [];\n            }\n            if (markParent)\n                mark(blot.parent);\n        };\n        var optimize = function (blot) {\n            // Post-order traversal\n            if (\n            // @ts-ignore\n            blot.domNode[Registry.DATA_KEY] == null ||\n                // @ts-ignore\n                blot.domNode[Registry.DATA_KEY].mutations == null) {\n                return;\n            }\n            if (blot instanceof container_1.default) {\n                blot.children.forEach(optimize);\n            }\n            blot.optimize(context);\n        };\n        var remaining = mutations;\n        for (var i = 0; remaining.length > 0; i += 1) {\n            if (i >= MAX_OPTIMIZE_ITERATIONS) {\n                throw new Error('[Parchment] Maximum optimize iterations reached');\n            }\n            remaining.forEach(function (mutation) {\n                var blot = Registry.find(mutation.target, true);\n                if (blot == null)\n                    return;\n                if (blot.domNode === mutation.target) {\n                    if (mutation.type === 'childList') {\n                        mark(Registry.find(mutation.previousSibling, false));\n                        [].forEach.call(mutation.addedNodes, function (node) {\n                            var child = Registry.find(node, false);\n                            mark(child, false);\n                            if (child instanceof container_1.default) {\n                                child.children.forEach(function (grandChild) {\n                                    mark(grandChild, false);\n                                });\n                            }\n                        });\n                    }\n                    else if (mutation.type === 'attributes') {\n                        mark(blot.prev);\n                    }\n                }\n                mark(blot);\n            });\n            this.children.forEach(optimize);\n            remaining = [].slice.call(this.observer.takeRecords());\n            records = remaining.slice();\n            while (records.length > 0)\n                mutations.push(records.pop());\n        }\n    };\n    ScrollBlot.prototype.update = function (mutations, context) {\n        var _this = this;\n        if (context === void 0) { context = {}; }\n        mutations = mutations || this.observer.takeRecords();\n        // TODO use WeakMap\n        mutations\n            .map(function (mutation) {\n            var blot = Registry.find(mutation.target, true);\n            if (blot == null)\n                return null;\n            // @ts-ignore\n            if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n                // @ts-ignore\n                blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n                return blot;\n            }\n            else {\n                // @ts-ignore\n                blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n                return null;\n            }\n        })\n            .forEach(function (blot) {\n            if (blot == null ||\n                blot === _this ||\n                //@ts-ignore\n                blot.domNode[Registry.DATA_KEY] == null)\n                return;\n            // @ts-ignore\n            blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n        });\n        // @ts-ignore\n        if (this.domNode[Registry.DATA_KEY].mutations != null) {\n            // @ts-ignore\n            _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n        }\n        this.optimize(mutations, context);\n    };\n    ScrollBlot.blotName = 'scroll';\n    ScrollBlot.defaultChild = 'block';\n    ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n    ScrollBlot.tagName = 'DIV';\n    return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(3);\nvar Registry = __webpack_require__(0);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n    if (Object.keys(obj1).length !== Object.keys(obj2).length)\n        return false;\n    // @ts-ignore\n    for (var prop in obj1) {\n        // @ts-ignore\n        if (obj1[prop] !== obj2[prop])\n            return false;\n    }\n    return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n    __extends(InlineBlot, _super);\n    function InlineBlot() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    InlineBlot.formats = function (domNode) {\n        if (domNode.tagName === InlineBlot.tagName)\n            return undefined;\n        return _super.formats.call(this, domNode);\n    };\n    InlineBlot.prototype.format = function (name, value) {\n        var _this = this;\n        if (name === this.statics.blotName && !value) {\n            this.children.forEach(function (child) {\n                if (!(child instanceof format_1.default)) {\n                    child = child.wrap(InlineBlot.blotName, true);\n                }\n                _this.attributes.copy(child);\n            });\n            this.unwrap();\n        }\n        else {\n            _super.prototype.format.call(this, name, value);\n        }\n    };\n    InlineBlot.prototype.formatAt = function (index, length, name, value) {\n        if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n            var blot = this.isolate(index, length);\n            blot.format(name, value);\n        }\n        else {\n            _super.prototype.formatAt.call(this, index, length, name, value);\n        }\n    };\n    InlineBlot.prototype.optimize = function (context) {\n        _super.prototype.optimize.call(this, context);\n        var formats = this.formats();\n        if (Object.keys(formats).length === 0) {\n            return this.unwrap(); // unformatted span\n        }\n        var next = this.next;\n        if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n            next.moveChildren(this);\n            next.remove();\n        }\n    };\n    InlineBlot.blotName = 'inline';\n    InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n    InlineBlot.tagName = 'SPAN';\n    return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(3);\nvar Registry = __webpack_require__(0);\nvar BlockBlot = /** @class */ (function (_super) {\n    __extends(BlockBlot, _super);\n    function BlockBlot() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    BlockBlot.formats = function (domNode) {\n        var tagName = Registry.query(BlockBlot.blotName).tagName;\n        if (domNode.tagName === tagName)\n            return undefined;\n        return _super.formats.call(this, domNode);\n    };\n    BlockBlot.prototype.format = function (name, value) {\n        if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n            return;\n        }\n        else if (name === this.statics.blotName && !value) {\n            this.replaceWith(BlockBlot.blotName);\n        }\n        else {\n            _super.prototype.format.call(this, name, value);\n        }\n    };\n    BlockBlot.prototype.formatAt = function (index, length, name, value) {\n        if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n            this.format(name, value);\n        }\n        else {\n            _super.prototype.formatAt.call(this, index, length, name, value);\n        }\n    };\n    BlockBlot.prototype.insertAt = function (index, value, def) {\n        if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n            // Insert text or inline\n            _super.prototype.insertAt.call(this, index, value, def);\n        }\n        else {\n            var after = this.split(index);\n            var blot = Registry.create(value, def);\n            after.parent.insertBefore(blot, after);\n        }\n    };\n    BlockBlot.prototype.update = function (mutations, context) {\n        if (navigator.userAgent.match(/Trident/)) {\n            this.build();\n        }\n        else {\n            _super.prototype.update.call(this, mutations, context);\n        }\n    };\n    BlockBlot.blotName = 'block';\n    BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n    BlockBlot.tagName = 'P';\n    return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(4);\nvar EmbedBlot = /** @class */ (function (_super) {\n    __extends(EmbedBlot, _super);\n    function EmbedBlot() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    EmbedBlot.formats = function (domNode) {\n        return undefined;\n    };\n    EmbedBlot.prototype.format = function (name, value) {\n        // super.formatAt wraps, which is what we want in general,\n        // but this allows subclasses to overwrite for formats\n        // that just apply to particular embeds\n        _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n    };\n    EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n        if (index === 0 && length === this.length()) {\n            this.format(name, value);\n        }\n        else {\n            _super.prototype.formatAt.call(this, index, length, name, value);\n        }\n    };\n    EmbedBlot.prototype.formats = function () {\n        return this.statics.formats(this.domNode);\n    };\n    return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(4);\nvar Registry = __webpack_require__(0);\nvar TextBlot = /** @class */ (function (_super) {\n    __extends(TextBlot, _super);\n    function TextBlot(node) {\n        var _this = _super.call(this, node) || this;\n        _this.text = _this.statics.value(_this.domNode);\n        return _this;\n    }\n    TextBlot.create = function (value) {\n        return document.createTextNode(value);\n    };\n    TextBlot.value = function (domNode) {\n        var text = domNode.data;\n        // @ts-ignore\n        if (text['normalize'])\n            text = text['normalize']();\n        return text;\n    };\n    TextBlot.prototype.deleteAt = function (index, length) {\n        this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n    };\n    TextBlot.prototype.index = function (node, offset) {\n        if (this.domNode === node) {\n            return offset;\n        }\n        return -1;\n    };\n    TextBlot.prototype.insertAt = function (index, value, def) {\n        if (def == null) {\n            this.text = this.text.slice(0, index) + value + this.text.slice(index);\n            this.domNode.data = this.text;\n        }\n        else {\n            _super.prototype.insertAt.call(this, index, value, def);\n        }\n    };\n    TextBlot.prototype.length = function () {\n        return this.text.length;\n    };\n    TextBlot.prototype.optimize = function (context) {\n        _super.prototype.optimize.call(this, context);\n        this.text = this.statics.value(this.domNode);\n        if (this.text.length === 0) {\n            this.remove();\n        }\n        else if (this.next instanceof TextBlot && this.next.prev === this) {\n            this.insertAt(this.length(), this.next.value());\n            this.next.remove();\n        }\n    };\n    TextBlot.prototype.position = function (index, inclusive) {\n        if (inclusive === void 0) { inclusive = false; }\n        return [this.domNode, index];\n    };\n    TextBlot.prototype.split = function (index, force) {\n        if (force === void 0) { force = false; }\n        if (!force) {\n            if (index === 0)\n                return this;\n            if (index === this.length())\n                return this.next;\n        }\n        var after = Registry.create(this.domNode.splitText(index));\n        this.parent.insertBefore(after, this.next);\n        this.text = this.statics.value(this.domNode);\n        return after;\n    };\n    TextBlot.prototype.update = function (mutations, context) {\n        var _this = this;\n        if (mutations.some(function (mutation) {\n            return mutation.type === 'characterData' && mutation.target === _this.domNode;\n        })) {\n            this.text = this.statics.value(this.domNode);\n        }\n    };\n    TextBlot.prototype.value = function () {\n        return this.text;\n    };\n    TextBlot.blotName = 'text';\n    TextBlot.scope = Registry.Scope.INLINE_BLOT;\n    return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=parchment.js.map","var diff = require('fast-diff');\nvar equal = require('deep-equal');\nvar extend = require('extend');\nvar op = require('./op');\n\n\nvar NULL_CHARACTER = String.fromCharCode(0);  // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n  // Assume we are given a well formed ops\n  if (Array.isArray(ops)) {\n    this.ops = ops;\n  } else if (ops != null && Array.isArray(ops.ops)) {\n    this.ops = ops.ops;\n  } else {\n    this.ops = [];\n  }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n  var newOp = {};\n  if (text.length === 0) return this;\n  newOp.insert = text;\n  if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n    newOp.attributes = attributes;\n  }\n  return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n  if (length <= 0) return this;\n  return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n  if (length <= 0) return this;\n  var newOp = { retain: length };\n  if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n    newOp.attributes = attributes;\n  }\n  return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n  var index = this.ops.length;\n  var lastOp = this.ops[index - 1];\n  newOp = extend(true, {}, newOp);\n  if (typeof lastOp === 'object') {\n    if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n      this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n      return this;\n    }\n    // Since it does not matter if we insert before or after deleting at the same index,\n    // always prefer to insert first\n    if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n      index -= 1;\n      lastOp = this.ops[index - 1];\n      if (typeof lastOp !== 'object') {\n        this.ops.unshift(newOp);\n        return this;\n      }\n    }\n    if (equal(newOp.attributes, lastOp.attributes)) {\n      if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n        this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n        if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n        return this;\n      } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n        this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n        if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n        return this;\n      }\n    }\n  }\n  if (index === this.ops.length) {\n    this.ops.push(newOp);\n  } else {\n    this.ops.splice(index, 0, newOp);\n  }\n  return this;\n};\n\nDelta.prototype.chop = function () {\n  var lastOp = this.ops[this.ops.length - 1];\n  if (lastOp && lastOp.retain && !lastOp.attributes) {\n    this.ops.pop();\n  }\n  return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n  return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n  this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n  return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n  var passed = [], failed = [];\n  this.forEach(function(op) {\n    var target = predicate(op) ? passed : failed;\n    target.push(op);\n  });\n  return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n  return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n  return this.reduce(function (length, elem) {\n    if (elem.insert) {\n      return length + op.length(elem);\n    } else if (elem.delete) {\n      return length - elem.delete;\n    }\n    return length;\n  }, 0);\n};\n\nDelta.prototype.length = function () {\n  return this.reduce(function (length, elem) {\n    return length + op.length(elem);\n  }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n  start = start || 0;\n  if (typeof end !== 'number') end = Infinity;\n  var ops = [];\n  var iter = op.iterator(this.ops);\n  var index = 0;\n  while (index < end && iter.hasNext()) {\n    var nextOp;\n    if (index < start) {\n      nextOp = iter.next(start - index);\n    } else {\n      nextOp = iter.next(end - index);\n      ops.push(nextOp);\n    }\n    index += op.length(nextOp);\n  }\n  return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n  var thisIter = op.iterator(this.ops);\n  var otherIter = op.iterator(other.ops);\n  var ops = [];\n  var firstOther = otherIter.peek();\n  if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n    var firstLeft = firstOther.retain;\n    while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n      firstLeft -= thisIter.peekLength();\n      ops.push(thisIter.next());\n    }\n    if (firstOther.retain - firstLeft > 0) {\n      otherIter.next(firstOther.retain - firstLeft);\n    }\n  }\n  var delta = new Delta(ops);\n  while (thisIter.hasNext() || otherIter.hasNext()) {\n    if (otherIter.peekType() === 'insert') {\n      delta.push(otherIter.next());\n    } else if (thisIter.peekType() === 'delete') {\n      delta.push(thisIter.next());\n    } else {\n      var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n      var thisOp = thisIter.next(length);\n      var otherOp = otherIter.next(length);\n      if (typeof otherOp.retain === 'number') {\n        var newOp = {};\n        if (typeof thisOp.retain === 'number') {\n          newOp.retain = length;\n        } else {\n          newOp.insert = thisOp.insert;\n        }\n        // Preserve null when composing with a retain, otherwise remove it for inserts\n        var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n        if (attributes) newOp.attributes = attributes;\n        delta.push(newOp);\n\n        // Optimization if rest of other is just retain\n        if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n          var rest = new Delta(thisIter.rest());\n          return delta.concat(rest).chop();\n        }\n\n      // Other op should be delete, we could be an insert or retain\n      // Insert + delete cancels out\n      } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n        delta.push(otherOp);\n      }\n    }\n  }\n  return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n  var delta = new Delta(this.ops.slice());\n  if (other.ops.length > 0) {\n    delta.push(other.ops[0]);\n    delta.ops = delta.ops.concat(other.ops.slice(1));\n  }\n  return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n  if (this.ops === other.ops) {\n    return new Delta();\n  }\n  var strings = [this, other].map(function (delta) {\n    return delta.map(function (op) {\n      if (op.insert != null) {\n        return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n      }\n      var prep = (delta === other) ? 'on' : 'with';\n      throw new Error('diff() called ' + prep + ' non-document');\n    }).join('');\n  });\n  var delta = new Delta();\n  var diffResult = diff(strings[0], strings[1], index);\n  var thisIter = op.iterator(this.ops);\n  var otherIter = op.iterator(other.ops);\n  diffResult.forEach(function (component) {\n    var length = component[1].length;\n    while (length > 0) {\n      var opLength = 0;\n      switch (component[0]) {\n        case diff.INSERT:\n          opLength = Math.min(otherIter.peekLength(), length);\n          delta.push(otherIter.next(opLength));\n          break;\n        case diff.DELETE:\n          opLength = Math.min(length, thisIter.peekLength());\n          thisIter.next(opLength);\n          delta['delete'](opLength);\n          break;\n        case diff.EQUAL:\n          opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n          var thisOp = thisIter.next(opLength);\n          var otherOp = otherIter.next(opLength);\n          if (equal(thisOp.insert, otherOp.insert)) {\n            delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n          } else {\n            delta.push(otherOp)['delete'](opLength);\n          }\n          break;\n      }\n      length -= opLength;\n    }\n  });\n  return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n  newline = newline || '\\n';\n  var iter = op.iterator(this.ops);\n  var line = new Delta();\n  var i = 0;\n  while (iter.hasNext()) {\n    if (iter.peekType() !== 'insert') return;\n    var thisOp = iter.peek();\n    var start = op.length(thisOp) - iter.peekLength();\n    var index = typeof thisOp.insert === 'string' ?\n      thisOp.insert.indexOf(newline, start) - start : -1;\n    if (index < 0) {\n      line.push(iter.next());\n    } else if (index > 0) {\n      line.push(iter.next(index));\n    } else {\n      if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n        return;\n      }\n      i += 1;\n      line = new Delta();\n    }\n  }\n  if (line.length() > 0) {\n    predicate(line, {}, i);\n  }\n};\n\nDelta.prototype.transform = function (other, priority) {\n  priority = !!priority;\n  if (typeof other === 'number') {\n    return this.transformPosition(other, priority);\n  }\n  var thisIter = op.iterator(this.ops);\n  var otherIter = op.iterator(other.ops);\n  var delta = new Delta();\n  while (thisIter.hasNext() || otherIter.hasNext()) {\n    if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n      delta.retain(op.length(thisIter.next()));\n    } else if (otherIter.peekType() === 'insert') {\n      delta.push(otherIter.next());\n    } else {\n      var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n      var thisOp = thisIter.next(length);\n      var otherOp = otherIter.next(length);\n      if (thisOp['delete']) {\n        // Our delete either makes their delete redundant or removes their retain\n        continue;\n      } else if (otherOp['delete']) {\n        delta.push(otherOp);\n      } else {\n        // We retain either their retain or insert\n        delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n      }\n    }\n  }\n  return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n  priority = !!priority;\n  var thisIter = op.iterator(this.ops);\n  var offset = 0;\n  while (thisIter.hasNext() && offset <= index) {\n    var length = thisIter.peekLength();\n    var nextType = thisIter.peekType();\n    thisIter.next();\n    if (nextType === 'delete') {\n      index -= Math.min(length, index - offset);\n      continue;\n    } else if (nextType === 'insert' && (offset < index || !priority)) {\n      index += length;\n    }\n    offset += length;\n  }\n  return index;\n};\n\n\nmodule.exports = Delta;\n","var equal = require('deep-equal');\nvar extend = require('extend');\n\n\nvar lib = {\n  attributes: {\n    compose: function (a, b, keepNull) {\n      if (typeof a !== 'object') a = {};\n      if (typeof b !== 'object') b = {};\n      var attributes = extend(true, {}, b);\n      if (!keepNull) {\n        attributes = Object.keys(attributes).reduce(function (copy, key) {\n          if (attributes[key] != null) {\n            copy[key] = attributes[key];\n          }\n          return copy;\n        }, {});\n      }\n      for (var key in a) {\n        if (a[key] !== undefined && b[key] === undefined) {\n          attributes[key] = a[key];\n        }\n      }\n      return Object.keys(attributes).length > 0 ? attributes : undefined;\n    },\n\n    diff: function(a, b) {\n      if (typeof a !== 'object') a = {};\n      if (typeof b !== 'object') b = {};\n      var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n        if (!equal(a[key], b[key])) {\n          attributes[key] = b[key] === undefined ? null : b[key];\n        }\n        return attributes;\n      }, {});\n      return Object.keys(attributes).length > 0 ? attributes : undefined;\n    },\n\n    transform: function (a, b, priority) {\n      if (typeof a !== 'object') return b;\n      if (typeof b !== 'object') return undefined;\n      if (!priority) return b;  // b simply overwrites us without priority\n      var attributes = Object.keys(b).reduce(function (attributes, key) {\n        if (a[key] === undefined) attributes[key] = b[key];  // null is a valid value\n        return attributes;\n      }, {});\n      return Object.keys(attributes).length > 0 ? attributes : undefined;\n    }\n  },\n\n  iterator: function (ops) {\n    return new Iterator(ops);\n  },\n\n  length: function (op) {\n    if (typeof op['delete'] === 'number') {\n      return op['delete'];\n    } else if (typeof op.retain === 'number') {\n      return op.retain;\n    } else {\n      return typeof op.insert === 'string' ? op.insert.length : 1;\n    }\n  }\n};\n\n\nfunction Iterator(ops) {\n  this.ops = ops;\n  this.index = 0;\n  this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n  return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n  if (!length) length = Infinity;\n  var nextOp = this.ops[this.index];\n  if (nextOp) {\n    var offset = this.offset;\n    var opLength = lib.length(nextOp)\n    if (length >= opLength - offset) {\n      length = opLength - offset;\n      this.index += 1;\n      this.offset = 0;\n    } else {\n      this.offset += length;\n    }\n    if (typeof nextOp['delete'] === 'number') {\n      return { 'delete': length };\n    } else {\n      var retOp = {};\n      if (nextOp.attributes) {\n        retOp.attributes = nextOp.attributes;\n      }\n      if (typeof nextOp.retain === 'number') {\n        retOp.retain = length;\n      } else if (typeof nextOp.insert === 'string') {\n        retOp.insert = nextOp.insert.substr(offset, length);\n      } else {\n        // offset should === 0, length should === 1\n        retOp.insert = nextOp.insert;\n      }\n      return retOp;\n    }\n  } else {\n    return { retain: Infinity };\n  }\n};\n\nIterator.prototype.peek = function () {\n  return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n  if (this.ops[this.index]) {\n    // Should never return 0 if our index is being managed correctly\n    return lib.length(this.ops[this.index]) - this.offset;\n  } else {\n    return Infinity;\n  }\n};\n\nIterator.prototype.peekType = function () {\n  if (this.ops[this.index]) {\n    if (typeof this.ops[this.index]['delete'] === 'number') {\n      return 'delete';\n    } else if (typeof this.ops[this.index].retain === 'number') {\n      return 'retain';\n    } else {\n      return 'insert';\n    }\n  }\n  return 'retain';\n};\n\nIterator.prototype.rest = function () {\n  if (!this.hasNext()) {\n    return [];\n  } else if (this.offset === 0) {\n    return this.ops.slice(this.index);\n  } else {\n    var offset = this.offset;\n    var index = this.index;\n    var next = this.next();\n    var rest = this.ops.slice(this.index);\n    this.offset = offset;\n    this.index = index;\n    return [next].concat(rest);\n  }\n};\n\n\nmodule.exports = lib;\n","import Parchment from 'parchment';\n\n\nclass Break extends Parchment.Embed {\n  static value() {\n    return undefined;\n  }\n\n  insertInto(parent, ref) {\n    if (parent.children.length === 0) {\n      super.insertInto(parent, ref);\n    } else {\n      this.remove();\n    }\n  }\n\n  length() {\n    return 0;\n  }\n\n  value() {\n    return '';\n  }\n}\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\n\nexport default Break;\n","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Break from './break';\nimport Inline from './inline';\nimport TextBlot from './text';\n\n\nconst NEWLINE_LENGTH = 1;\n\n\nclass BlockEmbed extends Parchment.Embed {\n  attach() {\n    super.attach();\n    this.attributes = new Parchment.Attributor.Store(this.domNode);\n  }\n\n  delta() {\n    return new Delta().insert(this.value(), extend(this.formats(), this.attributes.values()));\n  }\n\n  format(name, value) {\n    let attribute = Parchment.query(name, Parchment.Scope.BLOCK_ATTRIBUTE);\n    if (attribute != null) {\n      this.attributes.attribute(attribute, value);\n    }\n  }\n\n  formatAt(index, length, name, value) {\n    this.format(name, value);\n  }\n\n  insertAt(index, value, def) {\n    if (typeof value === 'string' && value.endsWith('\\n')) {\n      let block = Parchment.create(Block.blotName);\n      this.parent.insertBefore(block, index === 0 ? this : this.next);\n      block.insertAt(0, value.slice(0, -1));\n    } else {\n      super.insertAt(index, value, def);\n    }\n  }\n}\nBlockEmbed.scope = Parchment.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nclass Block extends Parchment.Block {\n  constructor(domNode) {\n    super(domNode);\n    this.cache = {};\n  }\n\n  delta() {\n    if (this.cache.delta == null) {\n      this.cache.delta = this.descendants(Parchment.Leaf).reduce((delta, leaf) => {\n        if (leaf.length() === 0) {\n          return delta;\n        } else {\n          return delta.insert(leaf.value(), bubbleFormats(leaf));\n        }\n      }, new Delta()).insert('\\n', bubbleFormats(this));\n    }\n    return this.cache.delta;\n  }\n\n  deleteAt(index, length) {\n    super.deleteAt(index, length);\n    this.cache = {};\n  }\n\n  formatAt(index, length, name, value) {\n    if (length <= 0) return;\n    if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n      if (index + length === this.length()) {\n        this.format(name, value);\n      }\n    } else {\n      super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n    }\n    this.cache = {};\n  }\n\n  insertAt(index, value, def) {\n    if (def != null) return super.insertAt(index, value, def);\n    if (value.length === 0) return;\n    let lines = value.split('\\n');\n    let text = lines.shift();\n    if (text.length > 0) {\n      if (index < this.length() - 1 || this.children.tail == null) {\n        super.insertAt(Math.min(index, this.length() - 1), text);\n      } else {\n        this.children.tail.insertAt(this.children.tail.length(), text);\n      }\n      this.cache = {};\n    }\n    let block = this;\n    lines.reduce(function(index, line) {\n      block = block.split(index, true);\n      block.insertAt(0, line);\n      return line.length;\n    }, index + text.length);\n  }\n\n  insertBefore(blot, ref) {\n    let head = this.children.head;\n    super.insertBefore(blot, ref);\n    if (head instanceof Break) {\n      head.remove();\n    }\n    this.cache = {};\n  }\n\n  length() {\n    if (this.cache.length == null) {\n      this.cache.length = super.length() + NEWLINE_LENGTH;\n    }\n    return this.cache.length;\n  }\n\n  moveChildren(target, ref) {\n    super.moveChildren(target, ref);\n    this.cache = {};\n  }\n\n  optimize(context) {\n    super.optimize(context);\n    this.cache = {};\n  }\n\n  path(index) {\n    return super.path(index, true);\n  }\n\n  removeChild(child) {\n    super.removeChild(child);\n    this.cache = {};\n  }\n\n  split(index, force = false) {\n    if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n      let clone = this.clone();\n      if (index === 0) {\n        this.parent.insertBefore(clone, this);\n        return this;\n      } else {\n        this.parent.insertBefore(clone, this.next);\n        return clone;\n      }\n    } else {\n      let next = super.split(index, force);\n      this.cache = {};\n      return next;\n    }\n  }\n}\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [Inline, Parchment.Embed, TextBlot];\n\n\nfunction bubbleFormats(blot, formats = {}) {\n  if (blot == null) return formats;\n  if (typeof blot.formats === 'function') {\n    formats = extend(formats, blot.formats());\n  }\n  if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n    return formats;\n  }\n  return bubbleFormats(blot.parent, formats);\n}\n\n\nexport { bubbleFormats, BlockEmbed, Block as default };\n","import Text from './text';\nimport Parchment from 'parchment';\n\n\nclass Inline extends Parchment.Inline {\n  static compare(self, other) {\n    let selfIndex = Inline.order.indexOf(self);\n    let otherIndex = Inline.order.indexOf(other);\n    if (selfIndex >= 0 || otherIndex >= 0) {\n      return selfIndex - otherIndex;\n    } else if (self === other) {\n      return 0;\n    } else if (self < other) {\n      return -1;\n    } else {\n      return 1;\n    }\n  }\n\n  formatAt(index, length, name, value) {\n    if (Inline.compare(this.statics.blotName, name) < 0 && Parchment.query(name, Parchment.Scope.BLOT)) {\n      let blot = this.isolate(index, length);\n      if (value) {\n        blot.wrap(name, value);\n      }\n    } else {\n      super.formatAt(index, length, name, value);\n    }\n  }\n\n  optimize(context) {\n    super.optimize(context);\n    if (this.parent instanceof Inline &&\n        Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n      let parent = this.parent.isolate(this.offset(), this.length());\n      this.moveChildren(parent);\n      parent.wrap(this);\n    }\n  }\n}\nInline.allowedChildren = [Inline, Parchment.Embed, Text];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = [\n  'cursor', 'inline',   // Must be lower\n  'underline', 'strike', 'italic', 'bold', 'script',\n  'link', 'code'        // Must be higher\n];\n\n\nexport default Inline;\n","import Parchment from 'parchment';\n\nclass TextBlot extends Parchment.Text { }\n\nexport default TextBlot;\n","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Inline from '../blots/inline';\nimport TextBlot from '../blots/text';\n\n\nclass Code extends Inline {}\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\n\nclass CodeBlock extends Block {\n  static create(value) {\n    let domNode = super.create(value);\n    domNode.setAttribute('spellcheck', false);\n    return domNode;\n  }\n\n  static formats() {\n    return true;\n  }\n\n  delta() {\n    let text = this.domNode.textContent;\n    if (text.endsWith('\\n')) {      // Should always be true\n      text = text.slice(0, -1);\n    }\n    return text.split('\\n').reduce((delta, frag) => {\n      return delta.insert(frag).insert('\\n', this.formats());\n    }, new Delta());\n  }\n\n  format(name, value) {\n    if (name === this.statics.blotName && value) return;\n    let [text, ] = this.descendant(TextBlot, this.length() - 1);\n    if (text != null) {\n      text.deleteAt(text.length() - 1, 1);\n    }\n    super.format(name, value);\n  }\n\n  formatAt(index, length, name, value) {\n    if (length === 0) return;\n    if (Parchment.query(name, Parchment.Scope.BLOCK) == null ||\n        (name === this.statics.blotName && value === this.statics.formats(this.domNode))) {\n      return;\n    }\n    let nextNewline = this.newlineIndex(index);\n    if (nextNewline < 0 || nextNewline >= index + length) return;\n    let prevNewline = this.newlineIndex(index, true) + 1;\n    let isolateLength = nextNewline - prevNewline + 1;\n    let blot = this.isolate(prevNewline, isolateLength);\n    let next = blot.next;\n    blot.format(name, value);\n    if (next instanceof CodeBlock) {\n      next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n    }\n  }\n\n  insertAt(index, value, def) {\n    if (def != null) return;\n    let [text, offset] = this.descendant(TextBlot, index);\n    text.insertAt(offset, value);\n  }\n\n  length() {\n    let length = this.domNode.textContent.length;\n    if (!this.domNode.textContent.endsWith('\\n')) {\n      return length + 1;\n    }\n    return length;\n  }\n\n  newlineIndex(searchIndex, reverse = false) {\n    if (!reverse) {\n      let offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n      return offset > -1 ? searchIndex + offset : -1;\n    } else {\n      return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n    }\n  }\n\n  optimize(context) {\n    if (!this.domNode.textContent.endsWith('\\n')) {\n      this.appendChild(Parchment.create('text', '\\n'));\n    }\n    super.optimize(context);\n    let next = this.next;\n    if (next != null && next.prev === this &&\n        next.statics.blotName === this.statics.blotName &&\n        this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n      next.optimize(context);\n      next.moveChildren(this);\n      next.remove();\n    }\n  }\n\n  replace(target) {\n    super.replace(target);\n    [].slice.call(this.domNode.querySelectorAll('*')).forEach(function(node) {\n      let blot = Parchment.find(node);\n      if (blot == null) {\n        node.parentNode.removeChild(node);\n      } else if (blot instanceof Parchment.Embed) {\n        blot.remove();\n      } else {\n        blot.unwrap();\n      }\n    });\n  }\n}\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = '  ';\n\n\nexport { Code, CodeBlock as default };\n","'use strict';\n\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.unicodeSets) {\n\t\tresult += 'v';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n"],"names":["GetIntrinsic","callBind","$indexOf","module","exports","name","allowMissing","intrinsic","bind","$apply","$call","$reflectApply","call","$gOPD","$defineProperty","$max","value","e","originalFunction","func","arguments","configurable","length","applyBind","apply","objectKeys","isArguments","is","isRegex","flags","isDate","getTime","Date","prototype","deepEqual","actual","expected","options","opts","strict","a","b","i","key","isUndefinedOrNull","aIsRegex","bIsRegex","source","aIsBuffer","isBuffer","bIsBuffer","ka","kb","sort","objEquiv","undefined","x","copy","slice","keys","hasSymbols","Symbol","toStr","Object","toString","concat","Array","origDefineProperty","defineProperty","hasPropertyDescriptors","supportsDescriptors","object","predicate","fn","enumerable","writable","defineProperties","map","predicates","props","getOwnPropertySymbols","hasOwn","hasOwnProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","newValue","getProperty","extend","src","copyIsArray","clone","deep","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","indexOf","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","Math","floor","j","best_common","prefixLength","suffixLength","text1_a","text1_b","text2_a","text2_b","hm1","ceil","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","delta","front","k1start","k1end","k2start","k2end","d","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","unshift","push","diff_cleanupMerge","norm","current_pos","next_pos","split_pos","d_left","d_right","splice","Error","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","suffix","fix_cursor","compact","starts_with_pair_end","str","charCodeAt","ends_with_pair_start","fixed_diffs","fix_emoji","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","min","pointermid","pointerstart","pointerend","pointer","count_delete","count_insert","text_delete","text_insert","pop","changes","diff","start","left_d","right_d","INSERT","DELETE","EQUAL","max","concatty","that","this","TypeError","bound","args","arrLike","offset","slicy","boundLength","boundArgs","Function","joiner","joiny","result","Empty","implementation","functionsHaveNames","functionsHaveConfigurableNames","desc","$bind","boundFunctionsHaveNames","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasProto","getProto","getPrototypeOf","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","iterator","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","parseInt","Promise","Proxy","RangeError","ReferenceError","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","parts","string","first","last","match","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","test","foo","$Object","origSymbol","hasSymbolSham","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","getDay","tryDateObject","has","isRegexMarker","badStringifier","throwRegexMarker","valueOf","toPrimitive","numberIsNaN","define","getPolyfill","shim","polyfill","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","k","isObject","isFunction","isString","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","factory","self","modules","installedModules","moduleId","l","m","c","getter","n","__esModule","property","p","s","__webpack_require__","extendStatics","__extends","setPrototypeOf","__","create","ParchmentError","_super","message","_this","Scope","attributes","classes","tags","types","query","scope","ANY","Text","Node","TEXT_NODE","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","split","tagName","TYPE","DATA_KEY","input","BlotClass","node","find","bubble","blot","parentNode","register","Definitions","_i","Definition","blotName","attrName","keyName","className","toUpperCase","forEach","tag","Registry","Attributor","attributeBit","ATTRIBUTE","whitelist","item","add","canAdd","setAttribute","BLOT","remove","removeAttribute","default","linked_list_1","shadow_1","ContainerBlot","domNode","build","appendChild","other","insertBefore","attach","children","child","childNodes","reverse","makeBlot","head","err","deleteAt","index","forEachAt","descendant","criteria","_a","descendants","MAX_VALUE","lengthLeft","detach","formatAt","insertAt","def","childBlot","refBlot","statics","allowedChildren","some","insertInto","reduce","memo","moveChildren","targetParent","refNode","optimize","context","defaultChild","path","inclusive","position","removeChild","force","next","after","parent","unwrap","update","mutations","addedNodes","removedNodes","mutation","type","document","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","filter","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","attributor_1","store_1","container_1","FormatBlot","formats","toLowerCase","format","attribute","replaceWith","values","replacement","wrap","wrapper","move","LeafBlot","INLINE_BLOT","ShadowBlot","createElement","classList","scroll","cloneNode","isolate","parent_1","ref","parentBlot","refDomNode","root","class_1","style_1","AttributorStore","styles","attr","prefix","ClassAttributor","join","camelize","rest","StyleAttributor","trim","style","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","Parchment","Container","Format","Leaf","Embed","Scroll","Block","Inline","Attribute","Class","Style","Store","LinkedList","tail","append","nodes","contains","cur","prev","curNode","ret","length_1","callback","startNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","observer","MutationObserver","observe","disconnect","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","BLOCK_BLOT","InlineBlot","obj1","obj2","prop","isEqual","BlockBlot","navigator","userAgent","EmbedBlot","TextBlot","text","createTextNode","data","splitText","equal","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","newOp","retain","lastOp","chop","partition","passed","failed","initial","changeLength","elem","delete","end","Infinity","iter","hasNext","nextOp","compose","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","strings","diffResult","component","opLength","eachLine","newline","line","transform","priority","transformPosition","nextType","lib","keepNull","Iterator","retOp","substr","Break","super","BlockEmbed","endsWith","block","cache","leaf","bubbleFormats","lines","shift","compare","selfIndex","order","otherIndex","Code","CodeBlock","textContent","frag","nextNewline","newlineIndex","prevNewline","isolateLength","searchIndex","lastIndexOf","querySelectorAll","TAB","hasIndices","global","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","flagsBound","calls","TypeErr","regex","proto"],"sourceRoot":""}