<NME> expected.js
<BEF> var pseudoClass = 'after';
var sectionSmallSize = function () {
  return 0.2;
};
var pInMedia = function () {
  return 0.8 + 'em';
};
var getSomeProp = function () {
  return ['text-decoration'];
};
var data = {
  prop: 'background',
  sel: ['section', 'p > a']
};
var image = 'bg.jpg';

(function () {
  var _1 = {},
      _2 = {},
      _3 = {},
      _4 = {},
      _5 = {},
      _6 = {},
      _7 = {};
  _2['content'] = '" "';
  _2['display'] = 'table';
  _2['clear'] = 'both';
  _3['font-size'] = sectionSmallSize() + "em";
  _4['font-size'] = pInMedia;
  _2['display'] = 'table';
  _2['content'] = '" "';

  var _1 = cssx.s('_1');

  _1.add("section::" + pseudoClass, _2);

  _1['section small'] = _3;
  _1['@media screen and (max-width: 1000px)'] = _6;
  _1[data.sel.join(', ')] = _7;
  return _1;
}.apply(this))
;
<MSG> Adding update and query API

<DFF> @@ -30,7 +30,7 @@ var image = 'bg.jpg';
   _2['display'] = 'table';
   _2['content'] = '" "';
 
-  var _1 = cssx.s('_1');
+  var _1 = cssx('_1');
 
   _1.add("section::" + pseudoClass, _2);
 

{'commit': 'diff --git a/packages/cssx-transpiler/lib/cssx-transpiler.js b/packages/cssx-transpiler/lib/cssx-transpiler.js\nindex 1e00c54..3869534 100644\n--- a/packages/cssx-transpiler/lib/cssx-transpiler.js\n+++ b/packages/cssx-transpiler/lib/cssx-transpiler.js\n@@ -42038,10 +42038,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \t        t.variableDeclarator(\n \t          t.identifier(stylesheetId),\n \t          t.callExpression(\n-\t            t.MemberExpression(\n-\t              t.identifier(settings.CSSXCalleeObj),\n-\t              t.identifier(settings.CSSXNewStylesheet)\n-\t            ),\n+\t            t.identifier(settings.CSSXCalleeObj),\n \t            [t.stringLiteral(stylesheetId)]\n \t          )\n \t        )\n@@ -42105,8 +42102,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \tmodule.exports = {\n \t  CSSXCalleeObj: \'cssx\',\n \t  CSSXCalleeProp: \'add\',\n-\t  CSSXClientNestedMethodName: \'n\',\n-\t  CSSXNewStylesheet: \'s\'\n+\t  CSSXClientNestedMethodName: \'n\'\n \t};\n \n \ndiff --git a/packages/cssx-transpiler/lib/cssx-transpiler.js.map b/packages/cssx-transpiler/lib/cssx-transpiler.js.map\nindex cc2e941..d355012 100644\n--- a/packages/cssx-transpiler/lib/cssx-transpiler.js.map\n+++ b/packages/cssx-transpiler/lib/cssx-transpiler.js.map\n@@ -1 +1 @@\n-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap c22f415fdcecb7494bf6","webpack:///./packages/cssx-transpiler/src/index.js","webpack:///./packages/cssx-transpiler/src/core/AST.js","webpack:///./packages/cssx-transpiler/src/vendor/babylon.js","webpack:///./packages/cssx-transpiler/src/core/traverse.js","webpack:///./packages/cssx-transpiler/src/helpers/isArray.js","webpack:///./~/babel-generator/lib/index.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/class-call-check.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/interop-require-default.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/interop-require-wildcard.js","webpack:///./~/babel-generator/~/detect-indent/index.js","webpack:///./~/babel-generator/~/repeating/index.js","webpack:///./~/babel-generator/~/repeating/~/is-finite/index.js","webpack:///./~/babel-generator/~/repeating/~/is-finite/~/number-is-nan/index.js","webpack:///./~/babel-generator/lib/whitespace.js","webpack:///./~/babel-generator/lib/source-map.js","webpack:///./~/babel-generator/~/source-map/source-map.js","webpack:///./~/babel-generator/~/source-map/lib/source-map-generator.js","webpack:///./~/babel-generator/~/source-map/lib/base64-vlq.js","webpack:///./~/babel-generator/~/source-map/lib/base64.js","webpack:///./~/babel-generator/~/source-map/lib/util.js","webpack:///./~/babel-generator/~/source-map/lib/array-set.js","webpack:///./~/babel-generator/~/source-map/lib/mapping-list.js","webpack:///./~/babel-generator/~/source-map/lib/source-map-consumer.js","webpack:///./~/babel-generator/~/source-map/lib/binary-search.js","webpack:///./~/babel-generator/~/source-map/lib/quick-sort.js","webpack:///./~/babel-generator/~/source-map/lib/source-node.js","webpack:///./~/babel-types/lib/index.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-types/~/babel-runtime/core-js/get-iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/get-iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-step.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iterators.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-define.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.library.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.redefine.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.hide.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.property-desc.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.descriptors.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.has.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-create.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.wks.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.shared.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.uid.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.string-at.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-integer.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.classof.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-require-default.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-require-wildcard.js","webpack:///./~/babel-types/~/babel-runtime/helpers/defaults.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/get-own-property-names.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-names.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-names.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.get-names.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/define-property.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/define-property.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-export-wildcard.js","webpack:///./~/babel-types/~/to-fast-properties/index.js","webpack:///./~/babel-types/~/lodash/array/compact.js","webpack:///./~/babel-types/~/lodash/lang/clone.js","webpack:///./~/babel-types/~/lodash/internal/baseClone.js","webpack:///./~/babel-types/~/lodash/internal/arrayCopy.js","webpack:///./~/babel-types/~/lodash/internal/arrayEach.js","webpack:///./~/babel-types/~/lodash/internal/baseAssign.js","webpack:///./~/babel-types/~/lodash/internal/baseCopy.js","webpack:///./~/babel-types/~/lodash/object/keys.js","webpack:///./~/babel-types/~/lodash/internal/getNative.js","webpack:///./~/babel-types/~/lodash/lang/isNative.js","webpack:///./~/babel-types/~/lodash/lang/isFunction.js","webpack:///./~/babel-types/~/lodash/lang/isObject.js","webpack:///./~/babel-types/~/lodash/internal/isObjectLike.js","webpack:///./~/babel-types/~/lodash/internal/isArrayLike.js","webpack:///./~/babel-types/~/lodash/internal/getLength.js","webpack:///./~/babel-types/~/lodash/internal/baseProperty.js","webpack:///./~/babel-types/~/lodash/internal/isLength.js","webpack:///./~/babel-types/~/lodash/internal/shimKeys.js","webpack:///./~/babel-types/~/lodash/lang/isArguments.js","webpack:///./~/babel-types/~/lodash/lang/isArray.js","webpack:///./~/babel-types/~/lodash/internal/isIndex.js","webpack:///./~/babel-types/~/lodash/object/keysIn.js","webpack:///./~/babel-types/~/lodash/internal/baseForOwn.js","webpack:///./~/babel-types/~/lodash/internal/baseFor.js","webpack:///./~/babel-types/~/lodash/internal/createBaseFor.js","webpack:///./~/babel-types/~/lodash/internal/toObject.js","webpack:///./~/babel-types/~/lodash/internal/initCloneArray.js","webpack:///./~/babel-types/~/lodash/internal/initCloneByTag.js","webpack:///./~/babel-types/~/lodash/internal/bufferClone.js","webpack:///./~/babel-types/~/lodash/internal/initCloneObject.js","webpack:///./~/babel-types/~/lodash/internal/bindCallback.js","webpack:///./~/babel-types/~/lodash/utility/identity.js","webpack:///./~/babel-types/~/lodash/internal/isIterateeCall.js","webpack:///./~/babel-types/~/lodash/collection/each.js","webpack:///./~/babel-types/~/lodash/collection/forEach.js","webpack:///./~/babel-types/~/lodash/internal/baseEach.js","webpack:///./~/babel-types/~/lodash/internal/createBaseEach.js","webpack:///./~/babel-types/~/lodash/internal/createForEach.js","webpack:///./~/babel-types/~/lodash/array/uniq.js","webpack:///./~/babel-types/~/lodash/internal/baseCallback.js","webpack:///./~/babel-types/~/lodash/internal/baseMatches.js","webpack:///./~/babel-types/~/lodash/internal/baseIsMatch.js","webpack:///./~/babel-types/~/lodash/internal/baseIsEqual.js","webpack:///./~/babel-types/~/lodash/internal/baseIsEqualDeep.js","webpack:///./~/babel-types/~/lodash/internal/equalArrays.js","webpack:///./~/babel-types/~/lodash/internal/arraySome.js","webpack:///./~/babel-types/~/lodash/internal/equalByTag.js","webpack:///./~/babel-types/~/lodash/internal/equalObjects.js","webpack:///./~/babel-types/~/lodash/lang/isTypedArray.js","webpack:///./~/babel-types/~/lodash/internal/getMatchData.js","webpack:///./~/babel-types/~/lodash/internal/isStrictComparable.js","webpack:///./~/babel-types/~/lodash/object/pairs.js","webpack:///./~/babel-types/~/lodash/internal/baseMatchesProperty.js","webpack:///./~/babel-types/~/lodash/internal/baseGet.js","webpack:///./~/babel-types/~/lodash/internal/baseSlice.js","webpack:///./~/babel-types/~/lodash/internal/isKey.js","webpack:///./~/babel-types/~/lodash/array/last.js","webpack:///./~/babel-types/~/lodash/internal/toPath.js","webpack:///./~/babel-types/~/lodash/internal/baseToString.js","webpack:///./~/babel-types/~/lodash/utility/property.js","webpack:///./~/babel-types/~/lodash/internal/basePropertyDeep.js","webpack:///./~/babel-types/~/lodash/internal/baseUniq.js","webpack:///./~/babel-types/~/lodash/internal/baseIndexOf.js","webpack:///./~/babel-types/~/lodash/internal/indexOfNaN.js","webpack:///./~/babel-types/~/lodash/internal/cacheIndexOf.js","webpack:///./~/babel-types/~/lodash/internal/createCache.js","webpack:///./~/babel-types/~/lodash/internal/SetCache.js","webpack:///./~/babel-types/~/lodash/internal/cachePush.js","webpack:///./~/babel-types/~/lodash/internal/sortedUniq.js","webpack:///./~/babel-types/lib/definitions/init.js","webpack:///./~/babel-types/lib/definitions/index.js","webpack:///./~/babel-types/lib/definitions/core.js","webpack:///./~/babel-types/lib/constants.js","webpack:///./~/babel-types/~/babel-runtime/core-js/symbol/for.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/for.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.symbol.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.keyof.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.enum-keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-array.js","webpack:///./~/babel-types/lib/definitions/es2015.js","webpack:///./~/babel-types/lib/definitions/flow.js","webpack:///./~/babel-types/lib/definitions/jsx.js","webpack:///./~/babel-types/lib/definitions/misc.js","webpack:///./~/babel-types/lib/definitions/experimental.js","webpack:///./~/babel-types/lib/react.js","webpack:///./~/babel-types/lib/retrievers.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./~/babel-types/lib/validators.js","webpack:///./~/babel-types/~/esutils/lib/utils.js","webpack:///./~/babel-types/~/esutils/lib/ast.js","webpack:///./~/babel-types/~/esutils/lib/code.js","webpack:///./~/babel-types/~/esutils/lib/keyword.js","webpack:///./~/babel-types/lib/converters.js","webpack:///./~/babel-types/~/babel-runtime/core-js/number/max-safe-integer.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/number/max-safe-integer.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.number.max-safe-integer.js","webpack:///./~/babel-types/~/lodash/lang/isPlainObject.js","webpack:///./~/babel-types/~/lodash/internal/baseForIn.js","webpack:///./~/babel-types/~/lodash/lang/isNumber.js","webpack:///./~/babel-types/~/lodash/lang/isRegExp.js","webpack:///./~/babel-types/~/lodash/lang/isString.js","webpack:///./~/babel-types/~/babel-traverse/lib/index.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/get-own-property-symbols.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-symbols.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-require.js","webpack:///./~/babel-types/~/babel-traverse/lib/context.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/babel-types/~/babel-runtime/helpers/class-call-check.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/lib/virtual-types.js","webpack:///./~/babel-types/~/babel-traverse/~/debug/browser.js","webpack:///./~/babel-types/~/babel-traverse/~/debug/debug.js","webpack:///./~/babel-types/~/babel-traverse/~/debug/~/ms/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/constants.js","webpack:///./~/babel-types/~/babel-traverse/~/invariant/browser.js","webpack:///./~/babel-types/~/lodash/object/assign.js","webpack:///./~/babel-types/~/lodash/internal/assignWith.js","webpack:///./~/babel-types/~/lodash/internal/createAssigner.js","webpack:///./~/babel-types/~/lodash/function/restParam.js","webpack:///./~/babel-types/~/babel-traverse/lib/scope/index.js","webpack:///./~/babel-types/~/babel-runtime/core-js/symbol.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/index.js","webpack:///./~/babel-types/~/lodash/collection/includes.js","webpack:///./~/babel-types/~/lodash/object/values.js","webpack:///./~/babel-types/~/lodash/internal/baseValues.js","webpack:///./~/babel-types/~/babel-traverse/~/repeating/index.js","webpack:///./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/index.js","webpack:///./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/~/number-is-nan/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/scope/lib/renamer.js","webpack:///./~/babel-types/~/babel-traverse/lib/scope/binding.js","webpack:///./~/babel-types/~/lodash/object/defaults.js","webpack:///./~/babel-types/~/lodash/internal/assignDefaults.js","webpack:///./~/babel-types/~/lodash/internal/createDefaults.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-messages/lib/index.js","webpack:///(webpack)/~/node-libs-browser/~/util/util.js","webpack:///(webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js","webpack:///(webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js","webpack:///./~/babel-types/~/babel-traverse/~/globals/index.js","webpack:///./~/babel-types/~/babel-traverse/~/globals/globals.json","webpack:///./~/babel-types/~/babel-traverse/lib/path/ancestry.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/inference/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/inference/inferers.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/inference/inferer-reference.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/replacement.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/lib/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/~/left-pad/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/js-tokens/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/escape-string-regexp/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/ansi-styles/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/~/ansi-regex/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/~/ansi-regex/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/supports-color/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babylon/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/evaluation.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/conversion.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/introspection.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/context.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/removal.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/lib/removal-hooks.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/modification.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/lib/hoister.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/family.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/comments.js","webpack:///./~/babel-types/~/babel-traverse/lib/visitors.js","webpack:///./~/babel-types/~/babel-traverse/lib/hub.js","webpack:///./~/babel-types/lib/flow.js","webpack:///./~/babel-generator/lib/position.js","webpack:///./~/babel-generator/~/babel-messages/lib/index.js","webpack:///./~/babel-generator/lib/printer.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/get-iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/get-iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-step.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iterators.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-define.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.library.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.redefine.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.hide.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.property-desc.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.descriptors.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.has.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-create.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.wks.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.shared.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.uid.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.string-at.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-integer.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.classof.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/babel-generator/lib/buffer.js","webpack:///./~/babel-generator/~/trim-right/index.js","webpack:///./~/babel-generator/lib/node/index.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/keys.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/keys.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-generator/lib/node/whitespace.js","webpack:///./~/babel-generator/~/lodash/lang/isBoolean.js","webpack:///./~/babel-generator/~/lodash/internal/isObjectLike.js","webpack:///./~/babel-generator/~/lodash/collection/each.js","webpack:///./~/babel-generator/~/lodash/collection/forEach.js","webpack:///./~/babel-generator/~/lodash/internal/arrayEach.js","webpack:///./~/babel-generator/~/lodash/internal/baseEach.js","webpack:///./~/babel-generator/~/lodash/internal/baseForOwn.js","webpack:///./~/babel-generator/~/lodash/internal/baseFor.js","webpack:///./~/babel-generator/~/lodash/internal/createBaseFor.js","webpack:///./~/babel-generator/~/lodash/internal/toObject.js","webpack:///./~/babel-generator/~/lodash/lang/isObject.js","webpack:///./~/babel-generator/~/lodash/object/keys.js","webpack:///./~/babel-generator/~/lodash/internal/getNative.js","webpack:///./~/babel-generator/~/lodash/lang/isNative.js","webpack:///./~/babel-generator/~/lodash/lang/isFunction.js","webpack:///./~/babel-generator/~/lodash/internal/isArrayLike.js","webpack:///./~/babel-generator/~/lodash/internal/getLength.js","webpack:///./~/babel-generator/~/lodash/internal/baseProperty.js","webpack:///./~/babel-generator/~/lodash/internal/isLength.js","webpack:///./~/babel-generator/~/lodash/internal/shimKeys.js","webpack:///./~/babel-generator/~/lodash/lang/isArguments.js","webpack:///./~/babel-generator/~/lodash/lang/isArray.js","webpack:///./~/babel-generator/~/lodash/internal/isIndex.js","webpack:///./~/babel-generator/~/lodash/object/keysIn.js","webpack:///./~/babel-generator/~/lodash/internal/createBaseEach.js","webpack:///./~/babel-generator/~/lodash/internal/createForEach.js","webpack:///./~/babel-generator/~/lodash/internal/bindCallback.js","webpack:///./~/babel-generator/~/lodash/utility/identity.js","webpack:///./~/babel-generator/~/lodash/collection/map.js","webpack:///./~/babel-generator/~/lodash/internal/arrayMap.js","webpack:///./~/babel-generator/~/lodash/internal/baseCallback.js","webpack:///./~/babel-generator/~/lodash/internal/baseMatches.js","webpack:///./~/babel-generator/~/lodash/internal/baseIsMatch.js","webpack:///./~/babel-generator/~/lodash/internal/baseIsEqual.js","webpack:///./~/babel-generator/~/lodash/internal/baseIsEqualDeep.js","webpack:///./~/babel-generator/~/lodash/internal/equalArrays.js","webpack:///./~/babel-generator/~/lodash/internal/arraySome.js","webpack:///./~/babel-generator/~/lodash/internal/equalByTag.js","webpack:///./~/babel-generator/~/lodash/internal/equalObjects.js","webpack:///./~/babel-generator/~/lodash/lang/isTypedArray.js","webpack:///./~/babel-generator/~/lodash/internal/getMatchData.js","webpack:///./~/babel-generator/~/lodash/internal/isStrictComparable.js","webpack:///./~/babel-generator/~/lodash/object/pairs.js","webpack:///./~/babel-generator/~/lodash/internal/baseMatchesProperty.js","webpack:///./~/babel-generator/~/lodash/internal/baseGet.js","webpack:///./~/babel-generator/~/lodash/internal/baseSlice.js","webpack:///./~/babel-generator/~/lodash/internal/isKey.js","webpack:///./~/babel-generator/~/lodash/array/last.js","webpack:///./~/babel-generator/~/lodash/internal/toPath.js","webpack:///./~/babel-generator/~/lodash/internal/baseToString.js","webpack:///./~/babel-generator/~/lodash/utility/property.js","webpack:///./~/babel-generator/~/lodash/internal/basePropertyDeep.js","webpack:///./~/babel-generator/~/lodash/internal/baseMap.js","webpack:///./~/babel-generator/lib/node/parentheses.js","webpack:///./~/babel-generator/lib/generators/template-literals.js","webpack:///./~/babel-generator/lib/generators/expressions.js","webpack:///./~/babel-generator/~/is-integer/index.js","webpack:///./~/babel-generator/~/is-integer/~/is-finite/index.js","webpack:///./~/babel-generator/~/is-integer/~/is-finite/~/number-is-nan/index.js","webpack:///./~/babel-generator/~/lodash/lang/isNumber.js","webpack:///./~/babel-generator/lib/generators/statements.js","webpack:///./~/babel-generator/lib/generators/classes.js","webpack:///./~/babel-generator/lib/generators/methods.js","webpack:///./~/babel-generator/lib/generators/modules.js","webpack:///./~/babel-generator/lib/generators/types.js","webpack:///./~/babel-generator/lib/generators/flow.js","webpack:///./~/babel-generator/lib/generators/base.js","webpack:///./~/babel-generator/lib/generators/jsx.js","webpack:///./packages/cssx-transpiler/src/helpers/merge.js","webpack:///./packages/cssx-transpiler/src/helpers/randomId.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXDefinition.js","webpack:///./packages/cssx-transpiler/src/helpers/injectAt.js","webpack:///./packages/cssx-transpiler/src/settings.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXElement.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXProperty.js","webpack:///./packages/cssx-transpiler/src/core/parseExpressions.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXRule.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXRules.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXSelector.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXValue.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXMediaQueryElement.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXNestedElement.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXKeyframesElement.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;ACvCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;aCxBA,yBAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,iBAAiB,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,8BAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAC3yB;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,8UAA8U;AACjV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,uDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,+BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;;AAErC;;AAEA;AACA;AACA;AACA,wBAAuB,EAAE,cAAc,EAAE;AACzC,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAiC,wCAAwC;AACzE;AACA;AACA,uCAAsC,kCAAkC;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,4IAA2I;AAC3I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,oOAAoO;AACvO;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qFAAqF;AACxF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oLAAmL;AACnL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kLAAiL;AACjL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,uJAAuJ;AAC1J;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,iIAAiI;AACpI;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAiB,eAAe;AAChC,oBAAmB;;AAEnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uDAAsD;;AAEtD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC,2CAA2C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0KAAyK;AACzK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,2BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yBAAwB,aAAa,aAAa;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,gBAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa,YAAY;AACzB;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,+GAA+G;AAClH;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,iGAAiG;AACpG;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,EAAE,oEAAoE;AACvE;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,0GAA0G;AAC7G;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,eAAe;AACzD;;AAEA;;AAEA;AACA;AACA,EAAC,EAAE,kQAAkQ;AACrQ;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iDAAgD;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,+FAA+F;AAClG;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC,oCAAmC;AACnC,6BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,qBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,wLAAwL;AAC3L;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,4CAA4C;AAC/C;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,wDAAwD;AAC3D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,0FAAyF;AACzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,yFAAyF;AAC5F;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2EAA0E,mBAAmB;AAC7F;AACA;;AAEA;AACA,2DAA0D;AAC1D,2DAA0D;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG,2DAA2D;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;AACrB;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,wCAAuC;AACvC,iEAAgE;AAChE;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,+LAA+L;AAClM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX,4BAA2B;AAC3B,4BAA2B;AAC3B,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC,EAAE,iFAAiF;AACpF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAkB,YAAY,gBAAgB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,KAAK;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0EAAyE;AACzE,yEAAwE;AACxE,wEAAuE;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,OAAO;AAC5D;AACA;AACA;AACA,8BAA6B;AAC7B,QAAO;AACP,gCAA+B;AAC/B,UAAS;AACT,6BAA4B;AAC5B,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAmD;AACnD;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yDAAwD;AACxD;AACA,wDAAuD;AACvD;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yBAAwB;AACxB;AACA,qBAAoB;AACpB;AACA,4EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,8MAA8M;AACjN;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mBAAkB,aAAa,kBAAkB;AACjD,mBAAkB,QAAQ,gBAAgB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,qCAAoC,aAAa;AACjD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,sEAAqE;;AAErE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA8B,gCAAgC;AAC9D;AACA,mBAAkB,mBAAmB;AACrC,mBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAgC,qCAAqC;AACrE;AACA,2BAA0B,IAAI,qCAAqC;AACnE,2BAA0B;AAC1B,+BAA8B,qCAAqC;AACnE;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,IAAI,qCAAqC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA0B,mCAAmC;AAC7D,gCAA+B,mCAAmC;AAClE,mCAAkC,gDAAgD;AAClF,oCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,6DAA6D;AAC9F;AACA;AACA;AACA,kCAAiC,sDAAsD;AACvF;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yEAAwE;;AAExE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iCAAiC;AAC3C;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B;AACA,YAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,qCAAqC;AAClD;AACA;AACA;AACA,WAAU,6BAA6B;AACvC,mBAAkB,6BAA6B;AAC/C,eAAc,mDAAmD;AACjE,aAAY,mDAAmD;AAC/D,eAAc,mDAAmD;AACjE,EAAC,EAAE,4CAA4C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC,EAAE,8DAA8D;AACjE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC,GAAG;AACJ,mBAAkB;AAClB,EAAC,EAAE,qCAAqC;AACxC,mBAAkB;AAClB,EAAC,EAAE,sCAAsC;AACzC,mBAAkB;AAClB,EAAC,EAAE,gDAAgD;AACnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,EAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,EAAC,EAAE,uGAAuG;AAC1G;AACA;AACA;AACA;AACA,EAAC,EAAE,qBAAqB;AACxB;AACA;AACA,EAAC,EAAE,yEAAyE;AAC5E;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ,6BAA4B;AAC5B,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,mBAAmB;AACtB;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,0BAA0B;AAC7B,kBAAiB;;AAEjB;AACA;AACA;AACA,EAAC,GAAG;AACJ,8BAA6B;AAC7B,sCAAqC;AACrC,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,oBAAoB;AACvB;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC;AACD,EAAC,EAAE,eAAe;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf;AACA,EAAC,EAAE,2CAA2C;AAC9C;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,wCAAuC;AACvC,EAAC,GAAG;AACJ,wBAAuB;AACvB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,EAAC,EAAE,qDAAqD;AACxD;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,aAAa;AAChB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA;AACA,EAAC,EAAE,sFAAsF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,EAAE,uKAAuK;AAC1K;AACA,WAAU;AACV;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,EAAE,cAAc;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA;AACA,EAAC,EAAE,4DAA4D;AAC/D;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG;AACA,EAAC,EAAE,mCAAmC;AACtC;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC;AACA,EAAC,EAAE,gBAAgB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,kCAAkC;AACrC;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,6CAA6C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,iEAAiE;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,2GAA2G;AAC9G;AACA;AACA,+BAA8B,6CAA6C;AAC3E,EAAC,EAAE,mCAAmC;AACtC;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC;AACD,EAAC,EAAE,wCAAwC;AAC3C;AACA;AACA;AACA,EAAC,EAAE,6CAA6C,EAAE,GAAG;AACrD,EAAC,E;;;;;;ACl/OD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACxCA;AACA;AACA;;;;;;;ACFA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA4C;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA,G;;;;;;AChLA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA,2B;;;;;;ACtBA,mBAAkB,uD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA,mBAAkB,wD;;;;;;ACAlB;AACA,gE;;;;;;ACDA;AACA;AACA,+BAA8B,4CAA6C,E;;;;;;ACF3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;AC7CA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA,G;;;;;;ACzBA;AACA;AACA,G;;;;;;ACFA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;;;;;;ACvBA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACjHA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,cAAc,cAAc;;AAE7C;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB;;AAErB;AACA,sBAAqB;;AAErB,qDAAoD;;AAEpD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA,qC;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C,SAAS;AACrD;;AAEA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC3YA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;;;;;;AC5IA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB,mBAAkB;;AAElB,sBAAqB;AACrB,uBAAsB;;AAEtB,mBAAkB;AAClB,mBAAkB;;AAElB,mBAAkB;AAClB,oBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACnEA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAgD,QAAQ;AACxD;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AChXA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAwC,SAAS;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACvGA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC/EA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAwD;AACxD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAwD;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yDAAwD,YAAY;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,wCAAwC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,mBAAmB,EAAE;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,gCAA+B,MAAM;AACrC;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAwD;AACxD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD,wBAAuB,+CAA+C;AACtE;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA,wBAAuB,4BAA4B;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;ACzjCA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC/GA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,cAAa,SAAS;AACtB;AACA,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;;;;;;AClHA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA,yCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;AAEA;AACA,4CAA2C,SAAS;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,+CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA,gBAAe;AACf;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL,aAAY;AACZ;;AAEA;AACA;;;;;;;ACvZA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4IAA2I;AAC3I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,uKAAsK;AACtK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yJAAwJ;AACxJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wLAAuL;AACvL;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qLAAoL;AACpL;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,8D;;;;;;ACvkBA,mBAAkB,wD;;;;;;ACAlB;AACA,sD;;;;;;ACDA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;AC7CA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,0C;;;;;;ACFA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACnBA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,kBAAiB,iBAAiB;AAClC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2B;;;;;;ACxBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,mBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACnBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA;;AAEA,2B;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC/HA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9DA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,eAAc,iBAAiB;AAC/B;AACA,KAAI;AACJ;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,oBAAoB;AACjC;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB,YAAW,uBAAuB;AAClC,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,aAAY,SAAS,GAAG,SAAS,GAAG,SAAS;AAC7C,YAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACrGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,aAAY,2BAA2B;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,OAAO,OAAO,SAAS,EAAE,EAAE;AACjC,OAAM,OAAO,OAAO,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3DA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;;AAEA,gBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,0B;;;;;;ACdA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAiE,aAAa;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sEAAqE,eAAe;AACpF;AACA;;AAEA;AACA;;AAEA,0IAAyI;AACzI;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sEAAqE,eAAe;AACpF;AACA;;AAEA;AACA;;AAEA,kJAAiJ;AACjJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oEAAmE,eAAe;AAClF;AACA;;AAEA;AACA,gJAA+I;AAC/I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,6DAA6D;;AAE3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kMAAiM;AACjM;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gB;;;;;;ACpPA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AC3rBD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+C;;;;;;AClDA,mBAAkB,yD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACbA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AC1VD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACxTD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AC1ID;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACtBD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACtFD;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,iDAAgD,gBAAgB;AAChE;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,0BAA0B;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,E;;;;;;ACrFA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACvHA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa;AACb,cAAa;AACb,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uKAAsK;AACtK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,oBAAmB;AACnB,qBAAoB;AACpB,oBAAmB,cAAc;AACjC;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAkB,cAAc;AAChC,oBAAmB,YAAY;AAC/B;AACA;;AAEA;AACA;AACA,oBAAmB,cAAc;AACjC,oBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,WAAW;AAC9B;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA;;AAEA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yCAAwC,cAAc;AACtD;;AAEA;AACA;AACA;;AAEA;AACA,6GAA4G,kBAAkB;AAC9H;;AAEA;AACA;AACA;;AAEA;AACA,yDAAwD,aAAa;AACrE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;AC5QA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;;;;;;;AChCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;;;;;;;AC/IA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAwC;AACxC;;AAEA;AACA;AACA;AACA,sCAAqC;AACrC;;AAEA;AACA,yCAAwC;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;;AAEA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA,wCAAuC;AACvC;;AAEA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,wCAAuC;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;;;;;;ACtIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA8B,cAAc;;AAE5C;AACA;AACA;AACA;;AAEA,oCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA8B,cAAc;;AAE5C;AACA,oCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,+BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;;;;;;ACpKA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mBAAkB,QAAQ,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,oBAAoB;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wJAAuJ;AACvJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP,uDAAsD;;AAEtD,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;AClXA,mBAAkB,yD;;;;;;ACAlB;AACA,mC;;;;;;ACDA;AACA;;AAEA,+BAA8B,mCAAmC,E;;;;;;ACHjE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACtEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,uIAAsI;AACtI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,sJAAqJ;AACrJ;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+IAA8I;AAC9I;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qJAAoJ;AACpJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+IAA8I;AAC9I;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA,G;;;;;;ACvNA,mBAAkB,yD;;;;;;ACAlB;AACA,uE;;;;;;ACDA;;AAEA;AACA;AACA;;AAEA,2B;;;;;;ACNA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yIAAwI;AACxI;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kJAAiJ;AACjJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kJAAiJ;AACjJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;;AC/MA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC1FtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,oCAAmC;AACnC,qDAAoD;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8JAA6J;AAC7J;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qC;;;;;;AC1PA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,2CAA0C;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAuC,aAAa;AACpD,uCAAsC,aAAa;AACnD;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,qB;;;;;;;ACvJA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,SAAS;AAC1B,6BAA4B;AAC5B;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACpMA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;AC5HA;;AAEA;AACA,+BAA8B;AAC9B,Y;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA,cAAa,mBAAmB,GAAG,YAAY,GAAG,iBAAiB;AACnE,WAAU;AACV;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,cAAa,mBAAmB,GAAG,YAAY,GAAG,iBAAiB;AACnE,WAAU;AACV;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;;;;;;AC1CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,0CAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yIAAwI;AACxI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,0KAAyK;AACzK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP,0LAAyL;AACzL;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,gKAA+J;AAC/J;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,iCAAgC,WAAW;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA8B,oBAAoB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,yKAAwK;AACxK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,uKAAsK;AACtK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4JAA2J;AAC3J;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0LAAyL;AACzL;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL,gKAA+J;AAC/J;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL,0LAAyL;AACzL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL,4LAA2L;AAC3L;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4LAA2L;AAC3L;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,6JAA4J;AAC5J;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sKAAqK;AACrK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,6KAA4K;AAC5K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,4KAA2K;AAC3K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,I;;;;;;AC9sCA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA,iD;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;;;;;;ACvBA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;ACHA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAW;;AAEX;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,YAAW;;AAEX;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACxJA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;AChGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA,gBAAe,mBAAmB,GAAG,YAAY,GAAG,iBAAiB;AACrE,WAAU;AACV;AACA;;AAEA;;;;;;;ACxBA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACrBA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qIAAoI,kBAAkB;AACtJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qFAAoF,aAAa;AACjG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH,E;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,wBAAuB,SAAS;AAChC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;;AAGA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AC5tCA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6JAA4J;AAC5J;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA,6BAA4B,cAAc;AAC1C;;AAEA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,oKAAmK;AACnK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;AC9RA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,0CAAyC;AACzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sEAAqE,oBAAoB;AACzF,E;;;;;;AClJA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,E;;;;;;AChMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,2CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA,+KAA8K;AAC9K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAAyB,aAAa;AACtC;AACA,IAAG,8BAA8B,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,+BAA8B,qBAAqB;AACnD;AACA;AACA,IAAG,mCAAmC,qBAAqB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAgD,aAAa;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,qC;;;;;;AC7NA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,wBAAuB,oBAAoB;AAC3C;;AAEA;;AAEA,iLAAgL;AAChL;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8JAA6J;AAC7J;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA,E;;;;;;ACtSA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,mFAAkF;;AAElF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,qC;;;;;;ACjJA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC/BA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;;;;;AChBA;AACA;;AAEA;AACA;AACA,6FAA4F,MAAM,OAAO,IAAI,GAAG,IAAI,KAAK,iJAAiJ,8BAA8B,IAAI,8CAA8C,sJAAsJ,EAAE,MAAM,WAAW,IAAI,EAAE,2BAA2B,EAAE,mBAAmB,IAAI,GAAG,IAAI,OAAO,IAAI,YAAY,SAAS;;AAEpmB;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA,EAAC;;AAED,4CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,aAAa;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACnHA;;AAEA,+BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAC;;;;;;;;AChED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA,8BAA6B,YAAY,IAAI,IAAI,MAAM,IAAI;AAC3D;;;;;;;ACHA;AACA;AACA,yCAAwC;AACxC;;;;;;;ACHA;AACA;AACA,8BAA6B,YAAY,IAAI,IAAI,MAAM,IAAI;AAC3D;;;;;;;ACHA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC;;;;;;;;aCjDD,yBAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,iBAAiB,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,8BAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAC3yB;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,0TAA0T;AAC7T;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,uDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,+BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;;AAErC;;AAEA;AACA;AACA;AACA,wBAAuB,EAAE,cAAc,EAAE;AACzC,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAiC,wCAAwC;AACzE;AACA;AACA,uCAAsC,kCAAkC;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,4IAA2I;AAC3I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,oOAAoO;AACvO;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qFAAqF;AACxF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oLAAmL;AACnL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kLAAiL;AACjL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,uJAAuJ;AAC1J;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,iIAAiI;AACpI;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAiB,eAAe;AAChC,oBAAmB;;AAEnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uDAAsD;;AAEtD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC,2CAA2C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0KAAyK;AACzK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,2BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yBAAwB,aAAa,aAAa;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,gBAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa,YAAY;AACzB;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,+GAA+G;AAClH;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,0FAAyF;AACzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,yFAAyF;AAC5F;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2EAA0E,mBAAmB;AAC7F;AACA;;AAEA;AACA,2DAA0D;AAC1D,2DAA0D;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG,2DAA2D;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;AACrB;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,wCAAuC;AACvC,iEAAgE;AAChE;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,+LAA+L;AAClM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX,4BAA2B;AAC3B,4BAA2B;AAC3B,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC,EAAE,iFAAiF;AACpF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAkB,YAAY,gBAAgB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,KAAK;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0EAAyE;AACzE,yEAAwE;AACxE,wEAAuE;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,OAAO;AAC5D;AACA;AACA;AACA,8BAA6B;AAC7B,QAAO;AACP,gCAA+B;AAC/B,UAAS;AACT,6BAA4B;AAC5B,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAmD;AACnD;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yDAAwD;AACxD;AACA,wDAAuD;AACvD;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yBAAwB;AACxB;AACA,qBAAoB;AACpB;AACA,4EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,8MAA8M;AACjN;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mBAAkB,aAAa,kBAAkB;AACjD,mBAAkB,QAAQ,gBAAgB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,qCAAoC,aAAa;AACjD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,sEAAqE;;AAErE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA8B,gCAAgC;AAC9D;AACA,mBAAkB,mBAAmB;AACrC,mBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAgC,qCAAqC;AACrE;AACA,2BAA0B,IAAI,qCAAqC;AACnE,2BAA0B;AAC1B,+BAA8B,qCAAqC;AACnE;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,IAAI,qCAAqC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA0B,mCAAmC;AAC7D,gCAA+B,mCAAmC;AAClE,mCAAkC,gDAAgD;AAClF,oCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,6DAA6D;AAC9F;AACA;AACA;AACA,kCAAiC,sDAAsD;AACvF;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yEAAwE;;AAExE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iCAAiC;AAC3C;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B;AACA,YAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,qCAAqC;AAClD;AACA;AACA;AACA,WAAU,6BAA6B;AACvC,mBAAkB,6BAA6B;AAC/C,eAAc,mDAAmD;AACjE,aAAY,mDAAmD;AAC/D,eAAc,mDAAmD;AACjE,EAAC,EAAE,4CAA4C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC,EAAE,8DAA8D;AACjE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC,GAAG;AACJ,mBAAkB;AAClB,EAAC,EAAE,qCAAqC;AACxC,mBAAkB;AAClB,EAAC,EAAE,sCAAsC;AACzC,mBAAkB;AAClB,EAAC,EAAE,gDAAgD;AACnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,EAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,EAAC,EAAE,uGAAuG;AAC1G;AACA;AACA;AACA;AACA,EAAC,EAAE,qBAAqB;AACxB;AACA;AACA,EAAC,EAAE,yEAAyE;AAC5E;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ,6BAA4B;AAC5B,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,mBAAmB;AACtB;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,0BAA0B;AAC7B,kBAAiB;;AAEjB;AACA;AACA;AACA,EAAC,GAAG;AACJ,8BAA6B;AAC7B,sCAAqC;AACrC,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,oBAAoB;AACvB;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC;AACD,EAAC,EAAE,eAAe;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf;AACA,EAAC,EAAE,2CAA2C;AAC9C;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,wCAAuC;AACvC,EAAC,GAAG;AACJ,wBAAuB;AACvB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,EAAC,EAAE,qDAAqD;AACxD;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,aAAa;AAChB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA;AACA,EAAC,EAAE,sFAAsF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,EAAE,uKAAuK;AAC1K;AACA,WAAU;AACV;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,EAAE,cAAc;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA;AACA,EAAC,EAAE,4DAA4D;AAC/D;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG;AACA,EAAC,EAAE,mCAAmC;AACtC;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC;AACA,EAAC,EAAE,gBAAgB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,kCAAkC;AACrC;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,6CAA6C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,iEAAiE;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,2GAA2G;AAC9G;AACA;AACA,+BAA8B,6CAA6C;AAC3E,EAAC,EAAE,mCAAmC;AACtC;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC;AACD,EAAC,EAAE,wCAAwC;AAC3C;AACA;AACA;AACA,EAAC,EAAE,6CAA6C,EAAE,GAAG;AACrD,EAAC,E;;;;;;ACp/MD;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,0CAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA,qCAAoC;AACpC,qCAAoC;AACpC,yCAAwC;AACxC;AACA;;AAEA,0BAAyB,oBAAoB,aAAa;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wKAAuK;AACvK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yEAAwE,eAAe;AACvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA,iCAAgC,eAAe;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAmJ;AACnJ;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACtWA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,E;;;;;;ACjDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,iJAAgJ;AAChJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yJAAwJ;AACxJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,oKAAmK;AACnK;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,eAAc;AACd,kEAAiE,mBAAmB;;AAEpF,eAAc,eAAe,KAAK;AAClC,2CAA0C,oBAAoB;;AAE9D;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC3eA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sIAAqI;AACrI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wJAAuJ;AACvJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,E;;;;;;ACvRA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iLAAgL;AAChL;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;ACpEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;AACD,uB;;;;;;AChEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wIAAuI;AACvI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL,qJAAoJ;AACpJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,E;;;;;;AC5RA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL,+KAA8K;AAC9K;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;AC/JA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mDAAkD;AAClD;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,sJAAqJ;AACrJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACzKA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,E;;;;;;ACvDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,MAAM,mBAAmB,UAAU,MAAM,EAAE;AAC/D,qCAAoC,MAAM,mBAAmB,MAAM,mBAAmB,MAAM;AAC5F,iDAAgD,MAAM,uBAAuB,MAAM,kBAAkB,MAAM;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0IAAyI;AACzI;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kLAAiL;AACjL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,oJAAmJ;AACnJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8IAA6I;AAC7I;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,qBAAqB;AACtC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;AC/VA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACdA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,E;;;;;;AClIA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACrDA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qIAAoI,kBAAkB;AACtJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qFAAoF,aAAa;AACjG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH,E;;;;;;AC7FA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,oEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAuE;;AAEvE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wEAAuE;;AAEvE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAe,kBAAkB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAuE;;AAEvE;AACA;AACA;;AAEA;AACA,wEAAuE;;AAEvE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA,6BAA4B;AAC5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,mDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA8C,iBAAiB;AAC/D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6IAA4I;AAC5I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA,kBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,qC;;;;;;ACtYA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA,2C;;;;;;ACFA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,2C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;;AAEA;AACA,8FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACfA,mBAAkB,yD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;;AAEA,2CAA0C,iCAAqC,E;;;;;;ACH/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,cAAa,gCAAgC;AAC7C,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,iB;;;;;;AChCD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,6CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA,wBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAAyB;AACzB;AACA,iBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAwB;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,gBAAgB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACxUA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;ACTA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,E;;;;;;ACrGA,mBAAkB,yD;;;;;;ACAlB;AACA,sD;;;;;;ACDA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,GAAE;AACF,uEAAsE;;AAEtE;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA,oBAAmB,8BAA8B;AACjD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,gBAAe;AACf;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC,E;;;;;;ACtPD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,eAAc,iBAAiB;AAC/B;AACA,KAAI;AACJ;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,oBAAoB;AACjC;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,uBAAuB;AAClC;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iBAAiB;AAC3B;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACrGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,aAAY,2BAA2B;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,OAAO,OAAO,SAAS,EAAE,EAAE;AACjC,OAAM,OAAO,OAAO,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACtBA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS,aAAa;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,eAAc;AACd;AACA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAoC,eAAe;AACnD;AACA;;AAEA,mCAAkC,eAAe,gCAAgC,eAAe;AAChG;AACA;;AAEA;AACA;;AAEA;AACA,qBAAoB;AACpB;AACA;AACA;;AAEA,oCAAmC;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0CAAyC,aAAa;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAAyC,mBAAmB;AAC5D;AACA;;AAEA,+DAA8D,aAAa;AAC3E;AACA;;AAEA,qCAAoC,eAAe,uGAAuG,eAAe,8BAA8B,aAAa,yBAAyB,aAAa,uCAAuC,aAAa;AAC9S;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,E;;;;;;ACtRA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,mBAAmB;AACpC;;AAEA;AACA,qBAAoB;AACpB;AACA,oBAAmB;AACnB;AACA;;AAEA;AACA,E;;;;;;AClCA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2FAA0F,eAAe;;AAEzG;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAwC,uBAAuB;;AAE/D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uEAAsE;AACtE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,wEAAuE,8BAA8B,+CAA+C,+BAA+B;;AAEnL;AACA;AACA;AACA,4CAA2C,wCAAwC,kCAAkC,wDAAwD;AAC7K;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACtRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;ACHA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAgB;AAChB;;AAEA;AACA,uBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc;;AAEd;AACA;AACA;AACA;AACA,eAAc;;AAEd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kEAAiE,eAAe,kCAAkC,eAAe;AACjI;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;;AAEd;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,eAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,gDAA+C,eAAe;AAC9D;AACA;;AAEA;AACA,uBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4KAA2K;AAC3K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACnTA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA8C,kBAAkB;AAChE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,eAAc;AACd;AACA;AACA,iBAAgB;AAChB,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAAyC,gBAAgB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAAyC,gBAAgB;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,E;;;;;;ACjFA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA,E;;;;;;AChGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAkB;AAClB;AACA;AACA,2CAA0C,kBAAkB;AAC5D;AACA;AACA,mBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAkB;AAClB;AACA,yCAAwC,kBAAkB;AAC1D;AACA,mBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;AC9JA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAc;AACd;;AAEA;AACA;AACA,kCAAiC,eAAe;AAChD;AACA;;AAEA,eAAc;AACd;;AAEA;;AAEA;AACA,0CAAyC,gBAAgB;AACzD;AACA;;AAEA;AACA,0CAAyC,gBAAgB;;AAEzD;AACA;AACA;AACA;AACA,IAAG;AACH,iBAAgB,eAAe,KAAK,SAAS,UAAU,KAAK,EAAE;AAC9D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,E;;;;;;AC/JA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA2C,kBAAkB;AAC7D;AACA;AACA;AACA,wCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qCAAoC,mBAAmB;AACvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAoC,kBAAkB;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,eAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA,eAAc;AACd;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAoC,mBAAmB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;AC1UA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAc;AACd;AACA;AACA;;AAEA,gDAA+C,eAAe;AAC9D;;AAEA,0CAAyC,eAAe;AACxD;AACA;AACA,IAAG;AACH,iBAAgB;AAChB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACnDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc;AACd;AACA,eAAc;AACd;;AAEA;AACA,eAAc;AACd;AACA,eAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sKAAqK;AACrK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACtGA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;ACZA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,2CAA0C,aAAa;AACvD;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,oCAAoC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACpHA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACZA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,wCAAuC,gBAAgB,EAAE;AACzD,sCAAqC,cAAc,EAAE;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACvDA;AACA,2CAA0C;AAC1C;AACA,sBAAqB;AACrB;AACA;;;;;;;ACLA;AACA;;AAEA;AACA,oDAAmD;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;;;;;;AC3CA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACZA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACZA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACnCA","file":"cssx-transpiler.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\\n\\tif(typeof exports === \'object\' && typeof module === \'object\')\\n\\t\\tmodule.exports = factory();\\n\\telse if(typeof define === \'function\' && define.amd)\\n\\t\\tdefine(\\"CSSXTranspiler\\", [], factory);\\n\\telse if(typeof exports === \'object\')\\n\\t\\texports[\\"CSSXTranspiler\\"] = factory();\\n\\telse\\n\\t\\troot[\\"CSSXTranspiler\\"] = factory();\\n})(this, function() {\\nreturn \\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/universalModuleDefinition\\n **/"," \\t// The module cache\\n \\tvar installedModules = {};\\n\\n \\t// The require function\\n \\tfunction __webpack_require__(moduleId) {\\n\\n \\t\\t// Check if module is in cache\\n \\t\\tif(installedModules[moduleId])\\n \\t\\t\\treturn installedModules[moduleId].exports;\\n\\n \\t\\t// Create a new module (and put it into the cache)\\n \\t\\tvar module = installedModules[moduleId] = {\\n \\t\\t\\texports: {},\\n \\t\\t\\tid: moduleId,\\n \\t\\t\\tloaded: false\\n \\t\\t};\\n\\n \\t\\t// Execute the module function\\n \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n\\n \\t\\t// Flag the module as loaded\\n \\t\\tmodule.loaded = true;\\n\\n \\t\\t// Return the exports of the module\\n \\t\\treturn module.exports;\\n \\t}\\n\\n\\n \\t// expose the modules object (__webpack_modules__)\\n \\t__webpack_require__.m = modules;\\n\\n \\t// expose the module cache\\n \\t__webpack_require__.c = installedModules;\\n\\n \\t// __webpack_public_path__\\n \\t__webpack_require__.p = \\"\\";\\n\\n \\t// Load entry module and return exports\\n \\treturn __webpack_require__(0);\\n\\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/bootstrap c22f415fdcecb7494bf6\\n **/","var AST = require(\'./core/AST\');\\nvar traverse = require(\'./core/traverse\');\\nvar generate = require(\'babel-generator\').default;\\nvar merge = require(\'./helpers/merge\');\\nvar randomId = require(\'./helpers/randomId\');\\n\\nvar visitors = {\\n  CSSXDefinition: require(\'./visitors/CSSXDefinition\'),\\n  CSSXElement: require(\'./visitors/CSSXElement\'),\\n  CSSXProperty: require(\'./visitors/CSSXProperty\'),\\n  CSSXRule: require(\'./visitors/CSSXRule\'),\\n  CSSXRules: require(\'./visitors/CSSXRules\'),\\n  CSSXSelector: require(\'./visitors/CSSXSelector\'),\\n  CSSXValue: require(\'./visitors/CSSXValue\'),\\n  CSSXMediaQueryElement: require(\'./visitors/CSSXMediaQueryElement\'),\\n  CSSXKeyframesElement: require(\'./visitors/CSSXKeyframesElement\')\\n};\\n\\nmodule.exports = function (code, options) {\\n  var ast = AST(code);\\n  var opts = merge(\\n    {\\n      minified: false,\\n      compact: false,\\n      concise: false,\\n      quotes: \'single\',\\n      sourceMaps: false\\n    },\\n    options || {}\\n  );\\n\\n  traverse(ast.program, visitors, opts);\\n  return generate(ast, opts, code).code;\\n};\\n\\nmodule.exports.ast = AST;\\n\\nmodule.exports.reset = function () {\\n  randomId.resetIDs();\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/index.js\\n ** module id = 0\\n ** module chunks = 0\\n **/","var babylon = require(\'../vendor/babylon\');\\n\\nvar BABYLON_PLUGINS = [\\n  \'jsx\',\\n  \'cssx\',\\n  \'flow\',\\n  \'asyncFunctions\',\\n  \'classConstructorCall\',\\n  \'doExpressions\',\\n  \'trailingFunctionCommas\',\\n  \'objectRestSpread\',\\n  \'decorators\',\\n  \'classProperties\',\\n  \'exportExtensions\',\\n  \'exponentiationOperator\',\\n  \'asyncGenerators\',\\n  \'functionBind\',\\n  \'functionSent\'\\n];\\n\\nmodule.exports = function (code) {\\n  return babylon.parse(code, {\\n    plugins: BABYLON_PLUGINS\\n  });\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/core/AST.js\\n ** module id = 1\\n ** module chunks = 0\\n **/","(function(f){if(typeof exports===\\"object\\"&&typeof module!==\\"undefined\\"){module.exports=f()}else if(typeof define===\\"function\\"&&define.amd){define([],f)}else{var g;if(typeof window!==\\"undefined\\"){g=window}else if(typeof global!==\\"undefined\\"){g=global}else if(typeof self!==\\"undefined\\"){g=self}else{g=this}g.babylon = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module \'\\"+o+\\"\'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.parse = parse;\\n\\nvar _parser = require(\\"./parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nrequire(\\"./parser/util\\");\\n\\nrequire(\\"./parser/statement\\");\\n\\nrequire(\\"./parser/lval\\");\\n\\nrequire(\\"./parser/expression\\");\\n\\nrequire(\\"./parser/node\\");\\n\\nrequire(\\"./parser/location\\");\\n\\nrequire(\\"./parser/comments\\");\\n\\nvar _tokenizerTypes = require(\\"./tokenizer/types\\");\\n\\nrequire(\\"./tokenizer\\");\\n\\nrequire(\\"./tokenizer/context\\");\\n\\nvar _pluginsFlow = require(\\"./plugins/flow\\");\\n\\nvar _pluginsFlow2 = _interopRequireDefault(_pluginsFlow);\\n\\nvar _pluginsJsx = require(\\"./plugins/jsx\\");\\n\\nvar _pluginsJsx2 = _interopRequireDefault(_pluginsJsx);\\n\\nvar _pluginsCssx = require(\\"./plugins/cssx\\");\\n\\nvar _pluginsCssx2 = _interopRequireDefault(_pluginsCssx);\\n\\n_parser.plugins.flow = _pluginsFlow2[\\"default\\"];\\n_parser.plugins.jsx = _pluginsJsx2[\\"default\\"];\\n_parser.plugins.cssx = _pluginsCssx2[\\"default\\"];\\n\\nfunction parse(input, options) {\\n  return new _parser2[\\"default\\"](options, input).parse();\\n}\\n\\nexports.tokTypes = _tokenizerTypes.types;\\n},{\\"./parser\\":5,\\"./parser/comments\\":3,\\"./parser/expression\\":4,\\"./parser/location\\":6,\\"./parser/lval\\":7,\\"./parser/node\\":8,\\"./parser/statement\\":9,\\"./parser/util\\":10,\\"./plugins/cssx\\":14,\\"./plugins/flow\\":20,\\"./plugins/jsx\\":21,\\"./tokenizer\\":24,\\"./tokenizer/context\\":23,\\"./tokenizer/types\\":26,\\"babel-runtime/helpers/interop-require-default\\":35}],2:[function(require,module,exports){\\n/* @flow */\\n// A second optional argument can be given to further configure\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.getOptions = getOptions;\\nvar defaultOptions /*: {\\n                     sourceType: string,\\n                     allowReturnOutsideFunction: boolean,\\n                     allowImportExportEverywhere: boolean,\\n                     allowSuperOutsideMethod: boolean,\\n                     plugins: Array<string>,\\n                     strictMode: any\\n                   }*/ = {\\n  // Source type (\\"script\\" or \\"module\\") for different semantics\\n  sourceType: \\"script\\",\\n  // When enabled, a return at the top level is not considered an\\n  // error.\\n  allowReturnOutsideFunction: false,\\n  // When enabled, import/export statements are not constrained to\\n  // appearing at the top of the program.\\n  allowImportExportEverywhere: false,\\n  // TODO\\n  allowSuperOutsideMethod: false,\\n  // An array of plugins to enable\\n  plugins: [],\\n  // TODO\\n  strictMode: null\\n};\\n\\nexports.defaultOptions = defaultOptions;\\n// Interpret and default an options object\\n\\nfunction getOptions(opts /*:: ?: Object*/) /*: Object*/ {\\n  var options = {};\\n  for (var key in defaultOptions) {\\n    options[key] = opts && key in opts ? opts[key] : defaultOptions[key];\\n  }\\n  return options;\\n}\\n\\n// the parser process. These options are recognized:\\n},{}],3:[function(require,module,exports){\\n/* @flow */\\n\\n/**\\n * Based on the comment attachment algorithm used in espree and estraverse.\\n *\\n * Redistribution and use in source and binary forms, with or without\\n * modification, are permitted provided that the following conditions are met:\\n *\\n * * Redistributions of source code must retain the above copyright\\n *   notice, this list of conditions and the following disclaimer.\\n * * Redistributions in binary form must reproduce the above copyright\\n *   notice, this list of conditions and the following disclaimer in the\\n *   documentation and/or other materials provided with the distribution.\\n *\\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nfunction last(stack) {\\n  return stack[stack.length - 1];\\n}\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\npp.addComment = function (comment) {\\n  this.state.trailingComments.push(comment);\\n  this.state.leadingComments.push(comment);\\n};\\n\\npp.processComment = function (node) {\\n  if (node.type === \\"Program\\" && node.body.length > 0) return;\\n\\n  var stack = this.state.commentStack;\\n\\n  var lastChild = undefined,\\n      trailingComments = undefined,\\n      i = undefined;\\n\\n  if (this.state.trailingComments.length > 0) {\\n    // If the first comment in trailingComments comes after the\\n    // current node, then we\'re good - all comments in the array will\\n    // come after the node and so it\'s safe to add them as official\\n    // trailingComments.\\n    if (this.state.trailingComments[0].start >= node.end) {\\n      trailingComments = this.state.trailingComments;\\n      this.state.trailingComments = [];\\n    } else {\\n      // Otherwise, if the first comment doesn\'t come after the\\n      // current node, that means we have a mix of leading and trailing\\n      // comments in the array and that leadingComments contains the\\n      // same items as trailingComments. Reset trailingComments to\\n      // zero items and we\'ll handle this by evaluating leadingComments\\n      // later.\\n      this.state.trailingComments.length = 0;\\n    }\\n  } else {\\n    var lastInStack = last(stack);\\n    if (stack.length > 0 && lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) {\\n      trailingComments = lastInStack.trailingComments;\\n      lastInStack.trailingComments = null;\\n    }\\n  }\\n\\n  // Eating the stack.\\n  while (stack.length > 0 && last(stack).start >= node.start) {\\n    lastChild = stack.pop();\\n  }\\n\\n  if (lastChild) {\\n    if (lastChild.leadingComments) {\\n      if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) {\\n        node.leadingComments = lastChild.leadingComments;\\n        lastChild.leadingComments = null;\\n      } else {\\n        // A leading comment for an anonymous class had been stolen by its first ClassMethod,\\n        // so this takes back the leading comment.\\n        // See also: https://github.com/eslint/espree/issues/158\\n        for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\\n          if (lastChild.leadingComments[i].end <= node.start) {\\n            node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\\n            break;\\n          }\\n        }\\n      }\\n    }\\n  } else if (this.state.leadingComments.length > 0) {\\n    if (last(this.state.leadingComments).end <= node.start) {\\n      node.leadingComments = this.state.leadingComments;\\n      this.state.leadingComments = [];\\n    } else {\\n      // https://github.com/eslint/espree/issues/2\\n      //\\n      // In special cases, such as return (without a value) and\\n      // debugger, all comments will end up as leadingComments and\\n      // will otherwise be eliminated. This step runs when the\\n      // commentStack is empty and there are comments left\\n      // in leadingComments.\\n      //\\n      // This loop figures out the stopping point between the actual\\n      // leading and trailing comments by finding the location of the\\n      // first comment that comes after the given node.\\n      for (i = 0; i < this.state.leadingComments.length; i++) {\\n        if (this.state.leadingComments[i].end > node.start) {\\n          break;\\n        }\\n      }\\n\\n      // Split the array based on the location of the first comment\\n      // that comes after the node. Keep in mind that this could\\n      // result in an empty array, and if so, the array must be\\n      // deleted.\\n      node.leadingComments = this.state.leadingComments.slice(0, i);\\n      if ((node.leadingComments /*: Array<any>*/).length === 0) {\\n        node.leadingComments = null;\\n      }\\n\\n      // Similarly, trailing comments are attached later. The variable\\n      // must be reset to null if there are no trailing comments.\\n      trailingComments = this.state.leadingComments.slice(i);\\n      if (trailingComments.length === 0) {\\n        trailingComments = null;\\n      }\\n    }\\n  }\\n\\n  if (trailingComments) {\\n    if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) {\\n      node.innerComments = trailingComments;\\n    } else {\\n      node.trailingComments = trailingComments;\\n    }\\n  }\\n\\n  stack.push(node);\\n};\\n},{\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],4:[function(require,module,exports){\\n// A recursive descent parser operates by defining functions for all\\n// syntactic elements, and recursively calling those, each function\\n// advancing the input stream and returning an AST node. Precedence\\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\\n// instead of `(!x)[1]` is handled by the fact that the parser\\n// function that parses unary prefix operators is called first, and\\n// in turn calls the function that parses `[]` subscripts — that\\n// way, it\'ll receive the node for `x[1]` already parsed, and wraps\\n// *that* in the unary operator node.\\n//\\n// Acorn uses an [operator precedence parser][opp] to handle binary\\n// operator precedence, because it is much more compact than using\\n// the technique outlined above, which uses different, nesting\\n// functions to specify precedence, for all of the ten binary\\n// precedence levels that JavaScript defines.\\n//\\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\\n\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Check if property name clashes with already added.\\n// Object/class getters and setters are not allowed to clash —\\n// either with each other or with an init property — and in\\n// strict mode, init properties are also not allowed to be repeated.\\n\\npp.checkPropClash = function (prop, propHash) {\\n  if (prop.computed) return;\\n\\n  var key = prop.key;\\n  var name = undefined;\\n  switch (key.type) {\\n    case \\"Identifier\\":\\n      name = key.name;\\n      break;\\n\\n    case \\"StringLiteral\\":\\n    case \\"NumericLiteral\\":\\n      name = String(key.value);\\n      break;\\n\\n    default:\\n      return;\\n  }\\n\\n  if (name === \\"__proto__\\" && prop.kind === \\"init\\") {\\n    if (propHash.proto) this.raise(key.start, \\"Redefinition of __proto__ property\\");\\n    propHash.proto = true;\\n  }\\n};\\n\\n// ### Expression parsing\\n\\n// These nest, from the most general expression type at the top to\\n// \'atomic\', nondivisible expression types at the bottom. Most of\\n// the functions will simply let the function (s) below them parse,\\n// and, *if* the syntactic construct they handle is present, wrap\\n// the AST node that the inner parser gave them in another node.\\n\\n// Parse a full expression. The optional arguments are used to\\n// forbid the `in` operator (in for loops initalization expressions)\\n// and provide reference for storing \'=\' operator inside shorthand\\n// property assignment in contexts where both object expression\\n// and object pattern might appear (so it\'s possible to raise\\n// delayed syntax error at correct position).\\n\\npp.parseExpression = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeAssign(noIn, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types.comma)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.expressions = [expr];\\n    while (this.eat(_tokenizerTypes.types.comma)) {\\n      node.expressions.push(this.parseMaybeAssign(noIn, refShorthandDefaultPos));\\n    }\\n    this.toReferencedList(node.expressions);\\n    return this.finishNode(node, \\"SequenceExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse an assignment expression. This includes applications of\\n// operators like `+=`.\\n\\npp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) {\\n  if (this.match(_tokenizerTypes.types._yield) && this.state.inGenerator) {\\n    return this.parseYield();\\n  }\\n\\n  var failOnShorthandAssign = undefined;\\n  if (refShorthandDefaultPos) {\\n    failOnShorthandAssign = false;\\n  } else {\\n    refShorthandDefaultPos = { start: 0 };\\n    failOnShorthandAssign = true;\\n  }\\n\\n  var startPos = this.state.start;\\n  var startLoc = this.state.startLoc;\\n\\n  if (this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.name)) {\\n    this.state.potentialArrowAt = this.state.start;\\n  }\\n\\n  var left = this.parseMaybeConditional(noIn, refShorthandDefaultPos);\\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc);\\n  if (this.state.type.isAssign) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.left = this.match(_tokenizerTypes.types.eq) ? this.toAssignable(left) : left;\\n    refShorthandDefaultPos.start = 0; // reset because shorthand default was used correctly\\n\\n    this.checkLVal(left);\\n\\n    if (left.extra && left.extra.parenthesized) {\\n      var errorMsg = undefined;\\n      if (left.type === \\"ObjectPattern\\") {\\n        errorMsg = \\"`({a}) = 0` use `({a} = 0)`\\";\\n      } else if (left.type === \\"ArrayPattern\\") {\\n        errorMsg = \\"`([a]) = 0` use `([a] = 0)`\\";\\n      }\\n      if (errorMsg) {\\n        this.raise(left.start, \\"You\'re trying to assign to a parenthesized expression, eg. instead of \\" + errorMsg);\\n      }\\n    }\\n\\n    this.next();\\n    node.right = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"AssignmentExpression\\");\\n  } else if (failOnShorthandAssign && refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n\\n  return left;\\n};\\n\\n// Parse a ternary conditional (`?:`) operator.\\n\\npp.parseMaybeConditional = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprOps(noIn, refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.test = expr;\\n    node.consequent = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.colon);\\n    node.alternate = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"ConditionalExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Start the precedence parser.\\n\\npp.parseExprOps = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeUnary(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  } else {\\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\\n  }\\n};\\n\\n// Parse binary operators with the operator precedence parsing\\n// algorithm. `left` is the left-hand side of the operator.\\n// `minPrec` provides context that allows the function to stop and\\n// defer further parser to one of its callers when it encounters an\\n// operator that has a lower precedence than the set it is parsing.\\n\\npp.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, noIn) {\\n  var prec = this.state.type.binop;\\n  if (prec != null && (!noIn || !this.match(_tokenizerTypes.types._in))) {\\n    if (prec > minPrec) {\\n      var node = this.startNodeAt(leftStartPos, leftStartLoc);\\n      node.left = left;\\n      node.operator = this.state.value;\\n\\n      if (node.operator === \\"**\\" && left.type === \\"UnaryExpression\\" && left.extra && !left.extra.parenthesizedArgument) {\\n        this.raise(left.argument.start, \\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\\");\\n      }\\n\\n      var op = this.state.type;\\n      this.next();\\n\\n      var startPos = this.state.start;\\n      var startLoc = this.state.startLoc;\\n      node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec, noIn);\\n\\n      this.finishNode(node, op === _tokenizerTypes.types.logicalOR || op === _tokenizerTypes.types.logicalAND ? \\"LogicalExpression\\" : \\"BinaryExpression\\");\\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);\\n    }\\n  }\\n  return left;\\n};\\n\\n// Parse unary operators, both prefix and postfix.\\n\\npp.parseMaybeUnary = function (refShorthandDefaultPos) {\\n  if (this.state.type.prefix) {\\n    var node = this.startNode();\\n    var update = this.match(_tokenizerTypes.types.incDec);\\n    node.operator = this.state.value;\\n    node.prefix = true;\\n    this.next();\\n\\n    var argType = this.state.type;\\n    this.addExtra(node, \\"parenthesizedArgument\\", argType === _tokenizerTypes.types.parenL);\\n    node.argument = this.parseMaybeUnary();\\n\\n    if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n      this.unexpected(refShorthandDefaultPos.start);\\n    }\\n\\n    if (update) {\\n      this.checkLVal(node.argument);\\n    } else if (this.state.strict && node.operator === \\"delete\\" && node.argument.type === \\"Identifier\\") {\\n      this.raise(node.start, \\"Deleting local variable in strict mode\\");\\n    }\\n\\n    return this.finishNode(node, update ? \\"UpdateExpression\\" : \\"UnaryExpression\\");\\n  }\\n\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprSubscripts(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  while (this.state.type.postfix && !this.canInsertSemicolon()) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.prefix = false;\\n    node.argument = expr;\\n    this.checkLVal(expr);\\n    this.next();\\n    expr = this.finishNode(node, \\"UpdateExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse call, dot, and `[]`-subscript expressions.\\n\\npp.parseExprSubscripts = function (refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var potentialArrowAt = this.state.potentialArrowAt;\\n  var expr = this.parseExprAtom(refShorthandDefaultPos);\\n\\n  if (expr.type === \\"ArrowFunctionExpression\\" && expr.start === potentialArrowAt) {\\n    return expr;\\n  }\\n\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  }\\n\\n  return this.parseSubscripts(expr, startPos, startLoc);\\n};\\n\\npp.parseSubscripts = function (base, startPos, startLoc, noCalls) {\\n  for (;;) {\\n    if (!noCalls && this.eat(_tokenizerTypes.types.doubleColon)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.callee = this.parseNoCallExpr();\\n      return this.parseSubscripts(this.finishNode(node, \\"BindExpression\\"), startPos, startLoc, noCalls);\\n    } else if (this.eat(_tokenizerTypes.types.dot)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseIdentifier(true);\\n      node.computed = false;\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (this.eat(_tokenizerTypes.types.bracketL)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseExpression();\\n      node.computed = true;\\n      this.expect(_tokenizerTypes.types.bracketR);\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (!noCalls && this.match(_tokenizerTypes.types.parenL)) {\\n      var possibleAsync = this.state.potentialArrowAt === base.start && base.type === \\"Identifier\\" && base.name === \\"async\\" && !this.canInsertSemicolon();\\n      this.next();\\n\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.callee = base;\\n      node.arguments = this.parseCallExpressionArguments(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"), possibleAsync);\\n      base = this.finishNode(node, \\"CallExpression\\");\\n\\n      if (possibleAsync && this.shouldParseAsyncArrow()) {\\n        return this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node);\\n      } else {\\n        this.toReferencedList(node.arguments);\\n      }\\n    } else if (this.match(_tokenizerTypes.types.backQuote)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.tag = base;\\n      node.quasi = this.parseTemplate();\\n      base = this.finishNode(node, \\"TaggedTemplateExpression\\");\\n    } else {\\n      return base;\\n    }\\n  }\\n};\\n\\npp.parseCallExpressionArguments = function (close, allowTrailingComma, possibleAsyncArrow) {\\n  var innerParenStart = undefined;\\n\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    // we need to make sure that if this is an async arrow functions, that we don\'t allow inner parens inside the params\\n    if (this.match(_tokenizerTypes.types.parenL) && !innerParenStart) {\\n      innerParenStart = this.state.start;\\n    }\\n\\n    elts.push(this.parseExprListItem());\\n  }\\n\\n  // we found an async arrow function so let\'s not allow any inner parens\\n  if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\\n    this.unexpected();\\n  }\\n\\n  return elts;\\n};\\n\\npp.shouldParseAsyncArrow = function () {\\n  return this.match(_tokenizerTypes.types.arrow);\\n};\\n\\npp.parseAsyncArrowFromCallExpression = function (node, call) {\\n  if (!this.hasPlugin(\\"asyncFunctions\\")) this.unexpected();\\n  this.expect(_tokenizerTypes.types.arrow);\\n  return this.parseArrowExpression(node, call.arguments, true);\\n};\\n\\n// Parse a no-call expression (like argument of `new` or `::` operators).\\n\\npp.parseNoCallExpr = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\\n};\\n\\n// Parse an atomic expression — either a single token that is an\\n// expression, an expression started by a keyword like `function` or\\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\\n// or `{}`.\\n\\npp.parseExprAtom = function (refShorthandDefaultPos) {\\n  var node = undefined,\\n      canBeArrow = this.state.potentialArrowAt === this.state.start;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._super:\\n      if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) {\\n        this.raise(this.state.start, \\"\'super\' outside of function or class\\");\\n      }\\n\\n      node = this.startNode();\\n      this.next();\\n      if (!this.match(_tokenizerTypes.types.parenL) && !this.match(_tokenizerTypes.types.bracketL) && !this.match(_tokenizerTypes.types.dot)) {\\n        this.unexpected();\\n      }\\n      if (this.match(_tokenizerTypes.types.parenL) && this.state.inMethod !== \\"constructor\\" && !this.options.allowSuperOutsideMethod) {\\n        this.raise(node.start, \\"super() outside of class constructor\\");\\n      }\\n      return this.finishNode(node, \\"Super\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"ThisExpression\\");\\n\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      node = this.startNode();\\n      var allowAwait = this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"await\\" && this.state.inAsync;\\n      var allowYield = this.shouldAllowYieldIdentifier();\\n      var id = this.parseIdentifier(allowAwait || allowYield);\\n\\n      if (this.hasPlugin(\\"asyncFunctions\\")) {\\n        if (id.name === \\"await\\") {\\n          if (this.state.inAsync || this.inModule) {\\n            return this.parseAwait(node);\\n          }\\n        } else if (id.name === \\"async\\" && this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.next();\\n          return this.parseFunction(node, false, false, true);\\n        } else if (canBeArrow && id.name === \\"async\\" && this.match(_tokenizerTypes.types.name)) {\\n          var params = [this.parseIdentifier()];\\n          this.expect(_tokenizerTypes.types.arrow);\\n          // let foo = bar => {};\\n          return this.parseArrowExpression(node, params, true);\\n        }\\n      }\\n\\n      if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n        return this.parseArrowExpression(node, [id]);\\n      }\\n\\n      return id;\\n\\n    case _tokenizerTypes.types._do:\\n      if (this.hasPlugin(\\"doExpressions\\")) {\\n        var _node = this.startNode();\\n        this.next();\\n        var oldInFunction = this.state.inFunction;\\n        var oldLabels = this.state.labels;\\n        this.state.labels = [];\\n        this.state.inFunction = false;\\n        _node.body = this.parseBlock(false, true);\\n        this.state.inFunction = oldInFunction;\\n        this.state.labels = oldLabels;\\n        return this.finishNode(_node, \\"DoExpression\\");\\n      }\\n\\n    case _tokenizerTypes.types.regexp:\\n      var value = this.state.value;\\n      node = this.parseLiteral(value.value, \\"RegExpLiteral\\");\\n      node.pattern = value.pattern;\\n      node.flags = value.flags;\\n      return node;\\n\\n    case _tokenizerTypes.types.num:\\n      return this.parseLiteral(this.state.value, \\"NumericLiteral\\");\\n\\n    case _tokenizerTypes.types.string:\\n      return this.parseLiteral(this.state.value, \\"StringLiteral\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteral\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node = this.startNode();\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteral\\");\\n\\n    case _tokenizerTypes.types.parenL:\\n      return this.parseParenAndDistinguishExpression(null, null, canBeArrow);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      node = this.startNode();\\n      this.next();\\n      node.elements = this.parseExprList(_tokenizerTypes.types.bracketR, true, true, refShorthandDefaultPos);\\n      this.toReferencedList(node.elements);\\n      return this.finishNode(node, \\"ArrayExpression\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(false, refShorthandDefaultPos);\\n\\n    case _tokenizerTypes.types._function:\\n      return this.parseFunctionExpression();\\n\\n    case _tokenizerTypes.types.at:\\n      this.parseDecorators();\\n\\n    case _tokenizerTypes.types._class:\\n      node = this.startNode();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, false);\\n\\n    case _tokenizerTypes.types._new:\\n      return this.parseNew();\\n\\n    case _tokenizerTypes.types.backQuote:\\n      return this.parseTemplate();\\n\\n    case _tokenizerTypes.types.doubleColon:\\n      node = this.startNode();\\n      this.next();\\n      node.object = null;\\n      var callee = node.callee = this.parseNoCallExpr();\\n      if (callee.type === \\"MemberExpression\\") {\\n        return this.finishNode(node, \\"BindExpression\\");\\n      } else {\\n        this.raise(callee.start, \\"Binding should be performed on object property.\\");\\n      }\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseFunctionExpression = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n  if (this.state.inGenerator && this.eat(_tokenizerTypes.types.dot) && this.hasPlugin(\\"functionSent\\")) {\\n    return this.parseMetaProperty(node, meta, \\"sent\\");\\n  } else {\\n    return this.parseFunction(node, false);\\n  }\\n};\\n\\npp.parseMetaProperty = function (node, meta, propertyName) {\\n  node.meta = meta;\\n  node.property = this.parseIdentifier(true);\\n\\n  if (node.property.name !== propertyName) {\\n    this.raise(node.property.start, \\"The only valid meta property for new is \\" + meta.name + \\".\\" + propertyName);\\n  }\\n\\n  return this.finishNode(node, \\"MetaProperty\\");\\n};\\n\\npp.parseLiteral = function (value, type) {\\n  var node = this.startNode();\\n  this.addExtra(node, \\"rawValue\\", value);\\n  this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n  node.value = value;\\n  this.next();\\n  return this.finishNode(node, type);\\n};\\n\\npp.parseParenExpression = function () {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var val = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  return val;\\n};\\n\\npp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow, isAsync, allowOptionalCommaStart) {\\n  startPos = startPos || this.state.start;\\n  startLoc = startLoc || this.state.startLoc;\\n\\n  var val = undefined;\\n  this.next();\\n\\n  var innerStartPos = this.state.start,\\n      innerStartLoc = this.state.startLoc;\\n  var exprList = [],\\n      first = true;\\n  var refShorthandDefaultPos = { start: 0 },\\n      spreadStart = undefined,\\n      optionalCommaStart = undefined;\\n  while (!this.match(_tokenizerTypes.types.parenR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.match(_tokenizerTypes.types.parenR) && this.hasPlugin(\\"trailingFunctionCommas\\")) {\\n        optionalCommaStart = this.state.start;\\n        break;\\n      }\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      var spreadNodeStartPos = this.state.start,\\n          spreadNodeStartLoc = this.state.startLoc;\\n      spreadStart = this.state.start;\\n      exprList.push(this.parseParenItem(this.parseRest(), spreadNodeStartLoc, spreadNodeStartPos));\\n      break;\\n    } else {\\n      exprList.push(this.parseMaybeAssign(false, refShorthandDefaultPos, this.parseParenItem));\\n    }\\n  }\\n\\n  var innerEndPos = this.state.start;\\n  var innerEndLoc = this.state.startLoc;\\n  this.expect(_tokenizerTypes.types.parenR);\\n\\n  if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n    for (var _i = 0; _i < exprList.length; _i++) {\\n      var param = exprList[_i];\\n      if (param.extra && param.extra.parenthesized) this.unexpected(param.extra.parenStart);\\n    }\\n\\n    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, isAsync);\\n  }\\n\\n  if (!exprList.length) {\\n    if (isAsync) {\\n      return;\\n    } else {\\n      this.unexpected(this.state.lastTokStart);\\n    }\\n  }\\n  if (optionalCommaStart && !allowOptionalCommaStart) this.unexpected(optionalCommaStart);\\n  if (spreadStart) this.unexpected(spreadStart);\\n  if (refShorthandDefaultPos.start) this.unexpected(refShorthandDefaultPos.start);\\n\\n  if (exprList.length > 1) {\\n    val = this.startNodeAt(innerStartPos, innerStartLoc);\\n    val.expressions = exprList;\\n    this.toReferencedList(val.expressions);\\n    this.finishNodeAt(val, \\"SequenceExpression\\", innerEndPos, innerEndLoc);\\n  } else {\\n    val = exprList[0];\\n  }\\n\\n  this.addExtra(val, \\"parenthesized\\", true);\\n  this.addExtra(val, \\"parenStart\\", startPos);\\n\\n  return val;\\n};\\n\\npp.parseParenItem = function (node) {\\n  return node;\\n};\\n\\n// New\'s precedence is slightly tricky. It must allow its argument\\n// to be a `[]` or dot subscript expression, but not a call — at\\n// least, not without wrapping it in parentheses. Thus, it uses the\\n\\npp.parseNew = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n\\n  if (this.eat(_tokenizerTypes.types.dot)) {\\n    return this.parseMetaProperty(node, meta, \\"target\\");\\n  }\\n\\n  node.callee = this.parseNoCallExpr();\\n\\n  if (this.eat(_tokenizerTypes.types.parenL)) {\\n    node.arguments = this.parseExprList(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n    this.toReferencedList(node.arguments);\\n  } else {\\n    node.arguments = [];\\n  }\\n\\n  return this.finishNode(node, \\"NewExpression\\");\\n};\\n\\n// Parse template expression.\\n\\npp.parseTemplateElement = function () {\\n  var elem = this.startNode();\\n  elem.value = {\\n    raw: this.input.slice(this.state.start, this.state.end).replace(/\\\\r\\\\n?/g, \\"\\\\n\\"),\\n    cooked: this.state.value\\n  };\\n  this.next();\\n  elem.tail = this.match(_tokenizerTypes.types.backQuote);\\n  return this.finishNode(elem, \\"TemplateElement\\");\\n};\\n\\npp.parseTemplate = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.expressions = [];\\n  var curElt = this.parseTemplateElement();\\n  node.quasis = [curElt];\\n  while (!curElt.tail) {\\n    this.expect(_tokenizerTypes.types.dollarBraceL);\\n    node.expressions.push(this.parseExpression());\\n    this.expect(_tokenizerTypes.types.braceR);\\n    node.quasis.push(curElt = this.parseTemplateElement());\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"TemplateLiteral\\");\\n};\\n\\n// Parse an object literal or binding pattern.\\n\\npp.parseObj = function (isPattern, refShorthandDefaultPos) {\\n  var decorators = [];\\n  var propHash = _Object$create(null);\\n  var first = true;\\n  var node = this.startNode();\\n\\n  node.properties = [];\\n  this.next();\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    while (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n    }\\n\\n    var prop = this.startNode(),\\n        isGenerator = false,\\n        isAsync = false,\\n        startPos = undefined,\\n        startLoc = undefined;\\n    if (decorators.length) {\\n      prop.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    if (this.hasPlugin(\\"objectRestSpread\\") && this.match(_tokenizerTypes.types.ellipsis)) {\\n      prop = this.parseSpread();\\n      prop.type = isPattern ? \\"RestProperty\\" : \\"SpreadProperty\\";\\n      node.properties.push(prop);\\n      continue;\\n    }\\n\\n    prop.method = false;\\n    prop.shorthand = false;\\n\\n    if (isPattern || refShorthandDefaultPos) {\\n      startPos = this.state.start;\\n      startLoc = this.state.startLoc;\\n    }\\n\\n    if (!isPattern) {\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n    }\\n\\n    if (!isPattern && this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\")) {\\n      if (isGenerator) this.unexpected();\\n\\n      var asyncId = this.parseIdentifier();\\n      if (this.match(_tokenizerTypes.types.colon) || this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.braceR)) {\\n        prop.key = asyncId;\\n      } else {\\n        isAsync = true;\\n        if (this.hasPlugin(\\"asyncGenerators\\")) isGenerator = this.eat(_tokenizerTypes.types.star);\\n        this.parsePropertyName(prop);\\n      }\\n    } else {\\n      this.parsePropertyName(prop);\\n    }\\n\\n    this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos);\\n    this.checkPropClash(prop, propHash);\\n\\n    if (prop.shorthand) {\\n      this.addExtra(prop, \\"shorthand\\", true);\\n    }\\n\\n    node.properties.push(prop);\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no property\\");\\n  }\\n\\n  return this.finishNode(node, isPattern ? \\"ObjectPattern\\" : \\"ObjectExpression\\");\\n};\\n\\npp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos) {\\n  if (isAsync || isGenerator || this.match(_tokenizerTypes.types.parenL)) {\\n    if (isPattern) this.unexpected();\\n    prop.kind = \\"method\\";\\n    prop.method = true;\\n    this.parseMethod(prop, isGenerator, isAsync);\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.colon)) {\\n    prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refShorthandDefaultPos);\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\" && (prop.key.name === \\"get\\" || prop.key.name === \\"set\\") && !this.match(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    if (isGenerator || isAsync || isPattern) this.unexpected();\\n    prop.kind = prop.key.name;\\n    this.parsePropertyName(prop);\\n    this.parseMethod(prop, false);\\n    var paramCount = prop.kind === \\"get\\" ? 0 : 1;\\n    if (prop.params.length !== paramCount) {\\n      var start = prop.start;\\n      if (prop.kind === \\"get\\") {\\n        this.raise(start, \\"getter should have no params\\");\\n      } else {\\n        this.raise(start, \\"setter should have exactly one param\\");\\n      }\\n    }\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\") {\\n    if (isPattern) {\\n      var illegalBinding = this.isKeyword(prop.key.name);\\n      if (!illegalBinding && this.state.strict) {\\n        illegalBinding = _utilIdentifier.reservedWords.strictBind(prop.key.name) || _utilIdentifier.reservedWords.strict(prop.key.name);\\n      }\\n      if (illegalBinding) {\\n        this.raise(prop.key.start, \\"Binding \\" + prop.key.name);\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else if (this.match(_tokenizerTypes.types.eq) && refShorthandDefaultPos) {\\n      if (!refShorthandDefaultPos.start) {\\n        refShorthandDefaultPos.start = this.state.start;\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else {\\n      prop.value = prop.key.__clone();\\n    }\\n    prop.shorthand = true;\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.parsePropertyName = function (prop) {\\n  if (this.eat(_tokenizerTypes.types.bracketL)) {\\n    prop.computed = true;\\n    prop.key = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return prop.key;\\n  } else {\\n    prop.computed = false;\\n    return prop.key = this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n  }\\n};\\n\\n// Initialize empty function node.\\n\\npp.initFunction = function (node, isAsync) {\\n  node.id = null;\\n  node.generator = false;\\n  node.expression = false;\\n  if (this.hasPlugin(\\"asyncFunctions\\")) {\\n    node.async = !!isAsync;\\n  }\\n};\\n\\n// Parse object or class method.\\n\\npp.parseMethod = function (node, isGenerator, isAsync) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = node.kind || true;\\n  this.initFunction(node, isAsync);\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n  node.generator = isGenerator;\\n  this.parseFunctionBody(node);\\n  this.state.inMethod = oldInMethod;\\n  return node;\\n};\\n\\n// Parse arrow function expression with given parameters.\\n\\npp.parseArrowExpression = function (node, params, isAsync) {\\n  this.initFunction(node, isAsync);\\n  node.params = this.toAssignableList(params, true);\\n  this.parseFunctionBody(node, true);\\n  return this.finishNode(node, \\"ArrowFunctionExpression\\");\\n};\\n\\n// Parse function body and check parameters.\\n\\npp.parseFunctionBody = function (node, allowExpression) {\\n  var isExpression = allowExpression && !this.match(_tokenizerTypes.types.braceL);\\n\\n  var oldInAsync = this.state.inAsync;\\n  this.state.inAsync = node.async;\\n  if (isExpression) {\\n    node.body = this.parseMaybeAssign();\\n    node.expression = true;\\n  } else {\\n    // Start a new scope with regard to labels and the `inFunction`\\n    // flag (restore them to their old value afterwards).\\n    var oldInFunc = this.state.inFunction,\\n        oldInGen = this.state.inGenerator,\\n        oldLabels = this.state.labels;\\n    this.state.inFunction = true;this.state.inGenerator = node.generator;this.state.labels = [];\\n    node.body = this.parseBlock(true);\\n    node.expression = false;\\n    this.state.inFunction = oldInFunc;this.state.inGenerator = oldInGen;this.state.labels = oldLabels;\\n  }\\n  this.state.inAsync = oldInAsync;\\n\\n  // If this is a strict mode function, verify that argument names\\n  // are not repeated, and it does not try to bind the words `eval`\\n  // or `arguments`.\\n  var checkLVal = this.state.strict;\\n  var checkLValStrict = false;\\n  var isStrict = false;\\n\\n  // arrow function\\n  if (allowExpression) checkLVal = true;\\n\\n  // normal function\\n  if (!isExpression && node.body.directives.length) {\\n    for (var _iterator = (node.body.directives /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i2 >= _iterator.length) break;\\n        _ref = _iterator[_i2++];\\n      } else {\\n        _i2 = _iterator.next();\\n        if (_i2.done) break;\\n        _ref = _i2.value;\\n      }\\n\\n      var directive = _ref;\\n\\n      if (directive.value.value === \\"use strict\\") {\\n        isStrict = true;\\n        checkLVal = true;\\n        checkLValStrict = true;\\n        break;\\n      }\\n    }\\n  }\\n\\n  //\\n  if (isStrict && node.id && node.id.type === \\"Identifier\\" && node.id.name === \\"yield\\") {\\n    this.raise(node.id.start, \\"Binding yield in strict mode\\");\\n  }\\n\\n  if (checkLVal) {\\n    var nameHash = _Object$create(null);\\n    var oldStrict = this.state.strict;\\n    if (checkLValStrict) this.state.strict = true;\\n    if (node.id) {\\n      this.checkLVal(node.id, true);\\n    }\\n    for (var _iterator2 = (node.params /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i3 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i3++];\\n      } else {\\n        _i3 = _iterator2.next();\\n        if (_i3.done) break;\\n        _ref2 = _i3.value;\\n      }\\n\\n      var param = _ref2;\\n\\n      this.checkLVal(param, true, nameHash);\\n    }\\n    this.state.strict = oldStrict;\\n  }\\n};\\n\\n// Parses a comma-separated list of expressions, and returns them as\\n// an array. `close` is the token type that ends the list, and\\n// `allowEmpty` can be turned on to allow subsequent commas with\\n// nothing in between them to be parsed as `null` (which is needed\\n// for array literals).\\n\\npp.parseExprList = function (close, allowTrailingComma, allowEmpty, refShorthandDefaultPos) {\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    elts.push(this.parseExprListItem(allowEmpty, refShorthandDefaultPos));\\n  }\\n  return elts;\\n};\\n\\npp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) {\\n  var elt = undefined;\\n  if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n    elt = null;\\n  } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n    elt = this.parseSpread(refShorthandDefaultPos);\\n  } else {\\n    elt = this.parseMaybeAssign(false, refShorthandDefaultPos);\\n  }\\n  return elt;\\n};\\n\\n// Parse the next token as an identifier. If `liberal` is true (used\\n// when parsing properties), it will also convert keywords into\\n// identifiers.\\n\\npp.parseIdentifier = function (liberal) {\\n  var node = this.startNode();\\n\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    if (!liberal && this.state.strict && _utilIdentifier.reservedWords.strict(this.state.value)) {\\n      this.raise(this.state.start, \\"The keyword \'\\" + this.state.value + \\"\' is reserved\\");\\n    }\\n\\n    node.name = this.state.value;\\n  } else if (liberal && this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n\\n  if (!liberal && node.name === \\"await\\" && this.state.inAsync) {\\n    this.raise(node.start, \\"invalid use of await inside of an async function\\");\\n  }\\n\\n  this.next();\\n  return this.finishNode(node, \\"Identifier\\");\\n};\\n\\n// Parses await expression inside async function.\\n\\npp.parseAwait = function (node) {\\n  if (!this.state.inAsync) {\\n    this.unexpected();\\n  }\\n  if (this.isLineTerminator()) {\\n    this.unexpected();\\n  }\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    this.raise(node.start, \\"await* has been removed from the async functions proposal. Use Promise.all() instead.\\");\\n  }\\n  node.argument = this.parseMaybeUnary();\\n  return this.finishNode(node, \\"AwaitExpression\\");\\n};\\n\\n// Parses yield expression inside generator.\\n\\npp.parseYield = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon() || !this.match(_tokenizerTypes.types.star) && !this.state.type.startsExpr) {\\n    node.delegate = false;\\n    node.argument = null;\\n  } else {\\n    node.delegate = this.eat(_tokenizerTypes.types.star);\\n    node.argument = this.parseMaybeAssign();\\n  }\\n  return this.finishNode(node, \\"YieldExpression\\");\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/identifier\\":27,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/core-js/object/create\\":31,\\"babel-runtime/helpers/interop-require-default\\":35}],5:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _options = require(\\"../options\\");\\n\\nvar _tokenizer = require(\\"../tokenizer\\");\\n\\nvar _tokenizer2 = _interopRequireDefault(_tokenizer);\\n\\nvar plugins = {};\\n\\nexports.plugins = plugins;\\n\\nvar Parser = (function (_Tokenizer) {\\n  _inherits(Parser, _Tokenizer);\\n\\n  function Parser(options /*: Object*/, input /*: string*/) {\\n    _classCallCheck(this, Parser);\\n\\n    options = _options.getOptions(options);\\n    _Tokenizer.call(this, options, input);\\n\\n    this.options = options;\\n    this.inModule = this.options.sourceType === \\"module\\";\\n    this.isReservedWord = _utilIdentifier.reservedWords[6];\\n    this.input = input;\\n    this.plugins = this.loadPlugins(this.options.plugins);\\n\\n    // If enabled, skip leading hashbang line.\\n    if (this.state.pos === 0 && this.input[0] === \\"#\\" && this.input[1] === \\"!\\") {\\n      this.skipLineComment(2);\\n    }\\n  }\\n\\n  Parser.prototype.hasPlugin = function hasPlugin(name /*: string*/) /*: boolean*/ {\\n    return !!(this.plugins[\\"*\\"] || this.plugins[name]);\\n  };\\n\\n  Parser.prototype.extend = function extend(name /*: string*/, f /*: Function*/) {\\n    this[name] = f(this[name]);\\n  };\\n\\n  Parser.prototype.loadPlugins = function loadPlugins(plugins /*: Array<string>*/) /*: Object*/ {\\n    var pluginMap = {};\\n\\n    if (plugins.indexOf(\\"flow\\") >= 0) {\\n      // ensure flow plugin loads last\\n      plugins = plugins.filter(function (plugin) {\\n        return plugin !== \\"flow\\";\\n      });\\n      plugins.push(\\"flow\\");\\n    }\\n\\n    for (var _iterator = plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var _name = _ref;\\n\\n      if (!pluginMap[_name]) {\\n        pluginMap[_name] = true;\\n\\n        var plugin = exports.plugins[_name];\\n        if (plugin) plugin(this);\\n      }\\n    }\\n\\n    return pluginMap;\\n  };\\n\\n  Parser.prototype.parse = function parse() /*: {\\n                                                type: \\"File\\",\\n                                                program: {\\n                                                  type: \\"Program\\",\\n                                                  body: Array<Object>\\n                                                }\\n                                              }*/ {\\n    var file = this.startNode();\\n    var program = this.startNode();\\n    this.nextToken();\\n    return this.parseTopLevel(file, program);\\n  };\\n\\n  return Parser;\\n})(_tokenizer2[\\"default\\"]);\\n\\nexports[\\"default\\"] = Parser;\\n},{\\"../options\\":2,\\"../tokenizer\\":24,\\"../util/identifier\\":27,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/helpers/class-call-check\\":33,\\"babel-runtime/helpers/inherits\\":34,\\"babel-runtime/helpers/interop-require-default\\":35}],6:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// This function is used to raise exceptions on parse errors. It\\n// takes an offset integer (into the current `input`) to indicate\\n// the location of the error, attaches the position to the end\\n// of the error message, and then raises a `SyntaxError` with that\\n// message.\\n\\npp.raise = function (pos, message) {\\n  var loc = _utilLocation.getLineInfo(this.input, pos);\\n  message += \\" (\\" + loc.line + \\":\\" + loc.column + \\")\\";\\n  var err = new SyntaxError(message);\\n  err.pos = pos;\\n  err.loc = loc;\\n  throw err;\\n};\\n},{\\"../util/location\\":28,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],7:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Convert existing expression atom to assignable pattern\\n// if possible.\\n\\npp.toAssignable = function (node, isBinding) {\\n  if (node) {\\n    switch (node.type) {\\n      case \\"Identifier\\":\\n      case \\"ObjectPattern\\":\\n      case \\"ArrayPattern\\":\\n      case \\"AssignmentPattern\\":\\n        break;\\n\\n      case \\"ObjectExpression\\":\\n        node.type = \\"ObjectPattern\\";\\n        for (var _iterator = (node.properties /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n          var _ref;\\n\\n          if (_isArray) {\\n            if (_i >= _iterator.length) break;\\n            _ref = _iterator[_i++];\\n          } else {\\n            _i = _iterator.next();\\n            if (_i.done) break;\\n            _ref = _i.value;\\n          }\\n\\n          var prop = _ref;\\n\\n          if (prop.type === \\"ObjectMethod\\") {\\n            if (prop.kind === \\"get\\" || prop.kind === \\"set\\") {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain getter or setter\\");\\n            } else {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain methods\\");\\n            }\\n          } else {\\n            this.toAssignable(prop, isBinding);\\n          }\\n        }\\n        break;\\n\\n      case \\"ObjectProperty\\":\\n        this.toAssignable(node.value, isBinding);\\n        break;\\n\\n      case \\"SpreadProperty\\":\\n        node.type = \\"RestProperty\\";\\n        break;\\n\\n      case \\"ArrayExpression\\":\\n        node.type = \\"ArrayPattern\\";\\n        this.toAssignableList(node.elements, isBinding);\\n        break;\\n\\n      case \\"AssignmentExpression\\":\\n        if (node.operator === \\"=\\") {\\n          node.type = \\"AssignmentPattern\\";\\n          delete node.operator;\\n        } else {\\n          this.raise(node.left.end, \\"Only \'=\' operator can be used for specifying default value.\\");\\n        }\\n        break;\\n\\n      case \\"MemberExpression\\":\\n        if (!isBinding) break;\\n\\n      default:\\n        this.raise(node.start, \\"Assigning to rvalue\\");\\n    }\\n  }\\n  return node;\\n};\\n\\n// Convert list of expression atoms to binding list.\\n\\npp.toAssignableList = function (exprList, isBinding) {\\n  var end = exprList.length;\\n  if (end) {\\n    var last = exprList[end - 1];\\n    if (last && last.type === \\"RestElement\\") {\\n      --end;\\n    } else if (last && last.type === \\"SpreadElement\\") {\\n      last.type = \\"RestElement\\";\\n      var arg = last.argument;\\n      this.toAssignable(arg, isBinding);\\n      if (arg.type !== \\"Identifier\\" && arg.type !== \\"MemberExpression\\" && arg.type !== \\"ArrayPattern\\") {\\n        this.unexpected(arg.start);\\n      }\\n      --end;\\n    }\\n  }\\n  for (var i = 0; i < end; i++) {\\n    var elt = exprList[i];\\n    if (elt) this.toAssignable(elt, isBinding);\\n  }\\n  return exprList;\\n};\\n\\n// Convert list of expression atoms to a list of\\n\\npp.toReferencedList = function (exprList) {\\n  return exprList;\\n};\\n\\n// Parses spread element.\\n\\npp.parseSpread = function (refShorthandDefaultPos) {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseMaybeAssign(refShorthandDefaultPos);\\n  return this.finishNode(node, \\"SpreadElement\\");\\n};\\n\\npp.parseRest = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseBindingIdentifier();\\n  return this.finishNode(node, \\"RestElement\\");\\n};\\n\\npp.shouldAllowYieldIdentifier = function () {\\n  return this.match(_tokenizerTypes.types._yield) && !this.state.strict && !this.state.inGenerator;\\n};\\n\\npp.parseBindingIdentifier = function () {\\n  return this.parseIdentifier(this.shouldAllowYieldIdentifier());\\n};\\n\\n// Parses lvalue (assignable) atom.\\n\\npp.parseBindingAtom = function () {\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.strict || this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      return this.parseIdentifier(true);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      var node = this.startNode();\\n      this.next();\\n      node.elements = this.parseBindingList(_tokenizerTypes.types.bracketR, true, true);\\n      return this.finishNode(node, \\"ArrayPattern\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(true);\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseBindingList = function (close, allowEmpty, allowTrailingComma) {\\n  var elts = [];\\n  var first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n    if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n      elts.push(null);\\n    } else if (allowTrailingComma && this.eat(close)) {\\n      break;\\n    } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      elts.push(this.parseAssignableListItemTypes(this.parseRest()));\\n      this.expect(close);\\n      break;\\n    } else {\\n      var left = this.parseMaybeDefault();\\n      this.parseAssignableListItemTypes(left);\\n      elts.push(this.parseMaybeDefault(null, null, left));\\n    }\\n  }\\n  return elts;\\n};\\n\\npp.parseAssignableListItemTypes = function (param) {\\n  return param;\\n};\\n\\n// Parses assignment pattern around given atom if possible.\\n\\npp.parseMaybeDefault = function (startPos, startLoc, left) {\\n  startLoc = startLoc || this.state.startLoc;\\n  startPos = startPos || this.state.start;\\n  left = left || this.parseBindingAtom();\\n  if (!this.eat(_tokenizerTypes.types.eq)) return left;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.left = left;\\n  node.right = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"AssignmentPattern\\");\\n};\\n\\n// Verify that a node is an lval — something that can be assigned\\n// to.\\n\\npp.checkLVal = function (expr, isBinding, checkClashes) {\\n  switch (expr.type) {\\n    case \\"Identifier\\":\\n      if (this.state.strict && (_utilIdentifier.reservedWords.strictBind(expr.name) || _utilIdentifier.reservedWords.strict(expr.name))) {\\n        this.raise(expr.start, (isBinding ? \\"Binding \\" : \\"Assigning to \\") + expr.name + \\" in strict mode\\");\\n      }\\n\\n      if (checkClashes) {\\n        // we need to prefix this with an underscore for the cases where we have a key of\\n        // `__proto__`. there\'s a bug in old V8 where the following wouldn\'t work:\\n        //\\n        //   > var obj = Object.create(null);\\n        //   undefined\\n        //   > obj.__proto__\\n        //   null\\n        //   > obj.__proto__ = true;\\n        //   true\\n        //   > obj.__proto__\\n        //   null\\n        var key = \\"_\\" + expr.name;\\n\\n        if (checkClashes[key]) {\\n          this.raise(expr.start, \\"Argument name clash in strict mode\\");\\n        } else {\\n          checkClashes[key] = true;\\n        }\\n      }\\n      break;\\n\\n    case \\"MemberExpression\\":\\n      if (isBinding) this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" member expression\\");\\n      break;\\n\\n    case \\"ObjectPattern\\":\\n      for (var _iterator2 = (expr.properties /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var prop = _ref2;\\n\\n        if (prop.type === \\"ObjectProperty\\") prop = prop.value;\\n        this.checkLVal(prop, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"ArrayPattern\\":\\n      for (var _iterator3 = (expr.elements /*: Array<Object>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n        var _ref3;\\n\\n        if (_isArray3) {\\n          if (_i3 >= _iterator3.length) break;\\n          _ref3 = _iterator3[_i3++];\\n        } else {\\n          _i3 = _iterator3.next();\\n          if (_i3.done) break;\\n          _ref3 = _i3.value;\\n        }\\n\\n        var elem = _ref3;\\n\\n        if (elem) this.checkLVal(elem, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"AssignmentPattern\\":\\n      this.checkLVal(expr.left, isBinding, checkClashes);\\n      break;\\n\\n    case \\"RestProperty\\":\\n    case \\"RestElement\\":\\n      this.checkLVal(expr.argument, isBinding, checkClashes);\\n      break;\\n\\n    default:\\n      this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" rvalue\\");\\n  }\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/identifier\\":27,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/helpers/interop-require-default\\":35}],8:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\n// Start an AST node, attaching a start offset.\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\nvar Node = (function () {\\n  function Node(pos /*:: ?: number*/, loc /*:: ?: SourceLocation*/) {\\n    _classCallCheck(this, Node);\\n\\n    this.type = \\"\\";\\n    this.start = pos;\\n    this.end = 0;\\n    this.loc = new _utilLocation.SourceLocation(loc);\\n  }\\n\\n  Node.prototype.__clone = function __clone() /*: Node*/ {\\n    var node2 = new Node();\\n    for (var key in this) {\\n      node2[key] = this[key];\\n    }return node2;\\n  };\\n\\n  return Node;\\n})();\\n\\npp.startNode = function () {\\n  return new Node(this.state.start, this.state.startLoc);\\n};\\n\\npp.startNodeAt = function (pos, loc) {\\n  return new Node(pos, loc);\\n};\\n\\nfunction finishNodeAt(node, type, pos, loc) {\\n  node.type = type;\\n  node.end = pos;\\n  node.loc.end = loc;\\n  this.processComment(node);\\n  return node;\\n}\\n\\n// Finish an AST node, adding `type` and `end` properties.\\n\\npp.finishNode = function (node, type) {\\n  return finishNodeAt.call(this, node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);\\n};\\n\\n// Finish node at given position\\n\\npp.finishNodeAt = function (node, type, pos, loc) {\\n  return finishNodeAt.call(this, node, type, pos, loc);\\n};\\n},{\\"../util/location\\":28,\\"./index\\":5,\\"babel-runtime/helpers/class-call-check\\":33,\\"babel-runtime/helpers/interop-require-default\\":35}],9:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ### Statement parsing\\n\\n// Parse a program. Initializes the parser, reads any number of\\n// statements, and wraps them in a Program node.  Optionally takes a\\n// `program` argument.  If present, the statements will be appended\\n// to its body instead of creating a new node.\\n\\npp.parseTopLevel = function (file, program) {\\n  program.sourceType = this.options.sourceType;\\n\\n  this.parseBlockBody(program, true, true, _tokenizerTypes.types.eof);\\n\\n  file.program = this.finishNode(program, \\"Program\\");\\n  file.comments = this.state.comments;\\n  file.tokens = this.state.tokens;\\n\\n  return this.finishNode(file, \\"File\\");\\n};\\n\\nvar loopLabel = { kind: \\"loop\\" },\\n    switchLabel = { kind: \\"switch\\" };\\n\\n// TODO\\n\\npp.stmtToDirective = function (stmt) {\\n  var expr = stmt.expression;\\n\\n  var directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\\n  var directive = this.startNodeAt(stmt.start, stmt.loc.start);\\n\\n  var raw = this.input.slice(expr.start, expr.end);\\n  var val = directiveLiteral.value = raw.slice(1, -1); // remove quotes\\n\\n  this.addExtra(directiveLiteral, \\"raw\\", raw);\\n  this.addExtra(directiveLiteral, \\"rawValue\\", val);\\n\\n  directive.value = this.finishNodeAt(directiveLiteral, \\"DirectiveLiteral\\", expr.end, expr.loc.end);\\n\\n  return this.finishNodeAt(directive, \\"Directive\\", stmt.end, stmt.loc.end);\\n};\\n\\n// Parse a single statement.\\n//\\n// If expecting a statement and finding a slash operator, parse a\\n// regular expression literal. This is to handle cases like\\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\\n// does not help.\\n\\npp.parseStatement = function (declaration, topLevel) {\\n  if (this.match(_tokenizerTypes.types.at)) {\\n    this.parseDecorators(true);\\n  }\\n\\n  var starttype = this.state.type,\\n      node = this.startNode();\\n\\n  // Most types of statements are recognized by the keyword they\\n  // start with. Many are trivial to parse, some require a bit of\\n  // complexity.\\n\\n  switch (starttype) {\\n    case _tokenizerTypes.types._break:case _tokenizerTypes.types._continue:\\n      return this.parseBreakContinueStatement(node, starttype.keyword);\\n    case _tokenizerTypes.types._debugger:\\n      return this.parseDebuggerStatement(node);\\n    case _tokenizerTypes.types._do:\\n      return this.parseDoStatement(node);\\n    case _tokenizerTypes.types._for:\\n      return this.parseForStatement(node);\\n    case _tokenizerTypes.types._function:\\n      if (!declaration) this.unexpected();\\n      return this.parseFunctionStatement(node);\\n\\n    case _tokenizerTypes.types._class:\\n      if (!declaration) this.unexpected();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, true);\\n\\n    case _tokenizerTypes.types._if:\\n      return this.parseIfStatement(node);\\n    case _tokenizerTypes.types._return:\\n      return this.parseReturnStatement(node);\\n    case _tokenizerTypes.types._switch:\\n      return this.parseSwitchStatement(node);\\n    case _tokenizerTypes.types._throw:\\n      return this.parseThrowStatement(node);\\n    case _tokenizerTypes.types._try:\\n      return this.parseTryStatement(node);\\n\\n    case _tokenizerTypes.types._let:\\n    case _tokenizerTypes.types._const:\\n      if (!declaration) this.unexpected(); // NOTE: falls through to _var\\n\\n    case _tokenizerTypes.types._var:\\n      return this.parseVarStatement(node, starttype);\\n\\n    case _tokenizerTypes.types._while:\\n      return this.parseWhileStatement(node);\\n    case _tokenizerTypes.types._with:\\n      return this.parseWithStatement(node);\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseBlock();\\n    case _tokenizerTypes.types.semi:\\n      return this.parseEmptyStatement(node);\\n    case _tokenizerTypes.types._export:\\n    case _tokenizerTypes.types._import:\\n      if (!this.options.allowImportExportEverywhere) {\\n        if (!topLevel) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may only appear at the top level\\");\\n        }\\n\\n        if (!this.inModule) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may appear only with \'sourceType: module\'\\");\\n        }\\n      }\\n      return starttype === _tokenizerTypes.types._import ? this.parseImport(node) : this.parseExport(node);\\n\\n    case _tokenizerTypes.types.name:\\n      if (this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"async\\") {\\n        // peek ahead and see if next token is a function\\n        var state = this.state.clone();\\n        this.next();\\n        if (this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.expect(_tokenizerTypes.types._function);\\n          return this.parseFunction(node, true, false, true);\\n        } else {\\n          this.state = state;\\n        }\\n      }\\n  }\\n\\n  // If the statement does not start with a statement keyword or a\\n  // brace, it\'s an ExpressionStatement or LabeledStatement. We\\n  // simply start parsing an expression, and afterwards, if the\\n  // next token is a colon and the expression was a simple\\n  // Identifier node, we switch to interpreting it as a label.\\n  var maybeName = this.state.value;\\n  var expr = this.parseExpression();\\n\\n  if (starttype === _tokenizerTypes.types.name && expr.type === \\"Identifier\\" && this.eat(_tokenizerTypes.types.colon)) {\\n    return this.parseLabeledStatement(node, maybeName, expr);\\n  } else {\\n    return this.parseExpressionStatement(node, expr);\\n  }\\n};\\n\\npp.takeDecorators = function (node) {\\n  if (this.state.decorators.length) {\\n    node.decorators = this.state.decorators;\\n    this.state.decorators = [];\\n  }\\n};\\n\\npp.parseDecorators = function (allowExport) {\\n  while (this.match(_tokenizerTypes.types.at)) {\\n    this.state.decorators.push(this.parseDecorator());\\n  }\\n\\n  if (allowExport && this.match(_tokenizerTypes.types._export)) {\\n    return;\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._class)) {\\n    this.raise(this.state.start, \\"Leading decorators must be attached to a class declaration\\");\\n  }\\n};\\n\\npp.parseDecorator = function () {\\n  if (!this.hasPlugin(\\"decorators\\")) {\\n    this.unexpected();\\n  }\\n  var node = this.startNode();\\n  this.next();\\n  node.expression = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"Decorator\\");\\n};\\n\\npp.parseBreakContinueStatement = function (node, keyword) {\\n  var isBreak = keyword === \\"break\\";\\n  this.next();\\n\\n  if (this.isLineTerminator()) {\\n    node.label = null;\\n  } else if (!this.match(_tokenizerTypes.types.name)) {\\n    this.unexpected();\\n  } else {\\n    node.label = this.parseIdentifier();\\n    this.semicolon();\\n  }\\n\\n  // Verify that there is an actual destination to break or\\n  // continue to.\\n  var i = undefined;\\n  for (i = 0; i < this.state.labels.length; ++i) {\\n    var lab = this.state.labels[i];\\n    if (node.label == null || lab.name === node.label.name) {\\n      if (lab.kind != null && (isBreak || lab.kind === \\"loop\\")) break;\\n      if (node.label && isBreak) break;\\n    }\\n  }\\n  if (i === this.state.labels.length) this.raise(node.start, \\"Unsyntactic \\" + keyword);\\n  return this.finishNode(node, isBreak ? \\"BreakStatement\\" : \\"ContinueStatement\\");\\n};\\n\\npp.parseDebuggerStatement = function (node) {\\n  this.next();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DebuggerStatement\\");\\n};\\n\\npp.parseDoStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  this.expect(_tokenizerTypes.types._while);\\n  node.test = this.parseParenExpression();\\n  this.eat(_tokenizerTypes.types.semi);\\n  return this.finishNode(node, \\"DoWhileStatement\\");\\n};\\n\\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\\n// loop is non-trivial. Basically, we have to parse the init `var`\\n// statement or expression, disallowing the `in` operator (see\\n// the second parameter to `parseExpression`), and then check\\n// whether the next token is `in` or `of`. When there is no init\\n// part (semicolon immediately after the opening parenthesis), it\\n// is a regular `for` loop.\\n\\npp.parseForStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  this.expect(_tokenizerTypes.types.parenL);\\n\\n  if (this.match(_tokenizerTypes.types.semi)) {\\n    return this.parseFor(node, null);\\n  }\\n\\n  if (this.match(_tokenizerTypes.types._var) || this.match(_tokenizerTypes.types._let) || this.match(_tokenizerTypes.types._const)) {\\n    var _init = this.startNode(),\\n        varKind = this.state.type;\\n    this.next();\\n    this.parseVar(_init, true, varKind);\\n    this.finishNode(_init, \\"VariableDeclaration\\");\\n\\n    if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n      if (_init.declarations.length === 1 && !_init.declarations[0].init) {\\n        return this.parseForIn(node, _init);\\n      }\\n    }\\n\\n    return this.parseFor(node, _init);\\n  }\\n\\n  var refShorthandDefaultPos = { start: 0 };\\n  var init = this.parseExpression(true, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n    this.toAssignable(init);\\n    this.checkLVal(init);\\n    return this.parseForIn(node, init);\\n  } else if (refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n  return this.parseFor(node, init);\\n};\\n\\npp.parseFunctionStatement = function (node) {\\n  this.next();\\n  return this.parseFunction(node, true);\\n};\\n\\npp.parseIfStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  node.consequent = this.parseStatement(false);\\n  node.alternate = this.eat(_tokenizerTypes.types._else) ? this.parseStatement(false) : null;\\n  return this.finishNode(node, \\"IfStatement\\");\\n};\\n\\npp.parseReturnStatement = function (node) {\\n  if (!this.state.inFunction && !this.options.allowReturnOutsideFunction) {\\n    this.raise(this.state.start, \\"\'return\' outside of function\\");\\n  }\\n\\n  this.next();\\n\\n  // In `return` (and `break`/`continue`), the keywords with\\n  // optional arguments, we eagerly look for a semicolon or the\\n  // possibility to insert one.\\n\\n  if (this.isLineTerminator()) {\\n    node.argument = null;\\n  } else {\\n    node.argument = this.parseExpression();\\n    this.semicolon();\\n  }\\n\\n  return this.finishNode(node, \\"ReturnStatement\\");\\n};\\n\\npp.parseSwitchStatement = function (node) {\\n  this.next();\\n  node.discriminant = this.parseParenExpression();\\n  node.cases = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.state.labels.push(switchLabel);\\n\\n  // Statements under must be grouped (by label) in SwitchCase\\n  // nodes. `cur` is used to keep the node that we are currently\\n  // adding statements to.\\n\\n  var cur = undefined;\\n  for (var sawDefault = undefined; !this.match(_tokenizerTypes.types.braceR);) {\\n    if (this.match(_tokenizerTypes.types._case) || this.match(_tokenizerTypes.types._default)) {\\n      var isCase = this.match(_tokenizerTypes.types._case);\\n      if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n      node.cases.push(cur = this.startNode());\\n      cur.consequent = [];\\n      this.next();\\n      if (isCase) {\\n        cur.test = this.parseExpression();\\n      } else {\\n        if (sawDefault) this.raise(this.state.lastTokStart, \\"Multiple default clauses\\");\\n        sawDefault = true;\\n        cur.test = null;\\n      }\\n      this.expect(_tokenizerTypes.types.colon);\\n    } else {\\n      if (cur) {\\n        cur.consequent.push(this.parseStatement(true));\\n      } else {\\n        this.unexpected();\\n      }\\n    }\\n  }\\n  if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n  this.next(); // Closing brace\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"SwitchStatement\\");\\n};\\n\\npp.parseThrowStatement = function (node) {\\n  this.next();\\n  if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) this.raise(this.state.lastTokEnd, \\"Illegal newline after throw\\");\\n  node.argument = this.parseExpression();\\n  this.semicolon();\\n  return this.finishNode(node, \\"ThrowStatement\\");\\n};\\n\\n// Reused empty array added for node fields that are always empty.\\n\\nvar empty = [];\\n\\npp.parseTryStatement = function (node) {\\n  this.next();\\n\\n  node.block = this.parseBlock();\\n  node.handler = null;\\n\\n  if (this.match(_tokenizerTypes.types._catch)) {\\n    var clause = this.startNode();\\n    this.next();\\n\\n    this.expect(_tokenizerTypes.types.parenL);\\n    clause.param = this.parseBindingAtom();\\n    this.checkLVal(clause.param, true, _Object$create(null));\\n    this.expect(_tokenizerTypes.types.parenR);\\n\\n    clause.body = this.parseBlock();\\n    node.handler = this.finishNode(clause, \\"CatchClause\\");\\n  }\\n\\n  node.guardedHandlers = empty;\\n  node.finalizer = this.eat(_tokenizerTypes.types._finally) ? this.parseBlock() : null;\\n\\n  if (!node.handler && !node.finalizer) {\\n    this.raise(node.start, \\"Missing catch or finally clause\\");\\n  }\\n\\n  return this.finishNode(node, \\"TryStatement\\");\\n};\\n\\npp.parseVarStatement = function (node, kind) {\\n  this.next();\\n  this.parseVar(node, false, kind);\\n  this.semicolon();\\n  return this.finishNode(node, \\"VariableDeclaration\\");\\n};\\n\\npp.parseWhileStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"WhileStatement\\");\\n};\\n\\npp.parseWithStatement = function (node) {\\n  if (this.state.strict) this.raise(this.state.start, \\"\'with\' in strict mode\\");\\n  this.next();\\n  node.object = this.parseParenExpression();\\n  node.body = this.parseStatement(false);\\n  return this.finishNode(node, \\"WithStatement\\");\\n};\\n\\npp.parseEmptyStatement = function (node) {\\n  this.next();\\n  return this.finishNode(node, \\"EmptyStatement\\");\\n};\\n\\npp.parseLabeledStatement = function (node, maybeName, expr) {\\n  for (var _iterator = (this.state.labels /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var label = _ref;\\n\\n    if (label.name === maybeName) {\\n      this.raise(expr.start, \\"Label \'\\" + maybeName + \\"\' is already declared\\");\\n    }\\n  }\\n\\n  var kind = this.state.type.isLoop ? \\"loop\\" : this.match(_tokenizerTypes.types._switch) ? \\"switch\\" : null;\\n  for (var i = this.state.labels.length - 1; i >= 0; i--) {\\n    var label = this.state.labels[i];\\n    if (label.statementStart === node.start) {\\n      label.statementStart = this.state.start;\\n      label.kind = kind;\\n    } else {\\n      break;\\n    }\\n  }\\n\\n  this.state.labels.push({ name: maybeName, kind: kind, statementStart: this.state.start });\\n  node.body = this.parseStatement(true);\\n  this.state.labels.pop();\\n  node.label = expr;\\n  return this.finishNode(node, \\"LabeledStatement\\");\\n};\\n\\npp.parseExpressionStatement = function (node, expr) {\\n  node.expression = expr;\\n  this.semicolon();\\n  return this.finishNode(node, \\"ExpressionStatement\\");\\n};\\n\\n// Parse a semicolon-enclosed block of statements, handling `\\"use\\n// strict\\"` declarations when `allowStrict` is true (used for\\n// function bodies).\\n\\npp.parseBlock = function (allowDirectives /*:: ?*/) {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.parseBlockBody(node, allowDirectives, false, _tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"BlockStatement\\");\\n};\\n\\n// TODO\\n\\npp.parseBlockBody = function (node, allowDirectives, topLevel, end) {\\n  node.body = [];\\n  node.directives = [];\\n\\n  var parsedNonDirective = false;\\n  var oldStrict = undefined;\\n  var octalPosition = undefined;\\n\\n  while (!this.eat(end)) {\\n    if (!parsedNonDirective && this.state.containsOctal && !octalPosition) {\\n      octalPosition = this.state.octalPosition;\\n    }\\n\\n    var stmt = this.parseStatement(true, topLevel);\\n\\n    if (allowDirectives && !parsedNonDirective && stmt.type === \\"ExpressionStatement\\" && stmt.expression.type === \\"StringLiteral\\" && !stmt.expression.extra.parenthesized) {\\n      var directive = this.stmtToDirective(stmt);\\n      node.directives.push(directive);\\n\\n      if (oldStrict === undefined && directive.value.value === \\"use strict\\") {\\n        oldStrict = this.state.strict;\\n        this.setStrict(true);\\n\\n        if (octalPosition) {\\n          this.raise(octalPosition, \\"Octal literal in strict mode\\");\\n        }\\n      }\\n\\n      continue;\\n    }\\n\\n    parsedNonDirective = true;\\n    node.body.push(stmt);\\n  }\\n\\n  if (oldStrict === false) {\\n    this.setStrict(false);\\n  }\\n};\\n\\n// Parse a regular `for` loop. The disambiguation code in\\n// `parseStatement` will already have parsed the init statement or\\n// expression.\\n\\npp.parseFor = function (node, init) {\\n  node.init = init;\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.test = this.match(_tokenizerTypes.types.semi) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.update = this.match(_tokenizerTypes.types.parenR) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"ForStatement\\");\\n};\\n\\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\\n// same from parser\'s perspective.\\n\\npp.parseForIn = function (node, init) {\\n  var type = this.match(_tokenizerTypes.types._in) ? \\"ForInStatement\\" : \\"ForOfStatement\\";\\n  this.next();\\n  node.left = init;\\n  node.right = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, type);\\n};\\n\\n// Parse a list of variable declarations.\\n\\npp.parseVar = function (node, isFor, kind) {\\n  node.declarations = [];\\n  node.kind = kind.keyword;\\n  for (;;) {\\n    var decl = this.startNode();\\n    this.parseVarHead(decl);\\n    if (this.eat(_tokenizerTypes.types.eq)) {\\n      decl.init = this.parseMaybeAssign(isFor);\\n    } else if (kind === _tokenizerTypes.types._const && !(this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\"))) {\\n      this.unexpected();\\n    } else if (decl.id.type !== \\"Identifier\\" && !(isFor && (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")))) {\\n      this.raise(this.state.lastTokEnd, \\"Complex binding patterns require an initialization value\\");\\n    } else {\\n      decl.init = null;\\n    }\\n    node.declarations.push(this.finishNode(decl, \\"VariableDeclarator\\"));\\n    if (!this.eat(_tokenizerTypes.types.comma)) break;\\n  }\\n  return node;\\n};\\n\\npp.parseVarHead = function (decl) {\\n  decl.id = this.parseBindingAtom();\\n  this.checkLVal(decl.id, true);\\n};\\n\\n// Parse a function declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = false;\\n\\n  this.initFunction(node, isAsync);\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    if (node.async && !this.hasPlugin(\\"asyncGenerators\\")) {\\n      this.unexpected();\\n    } else {\\n      node.generator = true;\\n      this.next();\\n    }\\n  }\\n\\n  if (isStatement && !optionalId && !this.match(_tokenizerTypes.types.name) && !this.match(_tokenizerTypes.types._yield)) {\\n    this.unexpected();\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._yield)) {\\n    node.id = this.parseBindingIdentifier();\\n  }\\n\\n  this.parseFunctionParams(node);\\n  this.parseFunctionBody(node, allowExpressionBody);\\n\\n  this.state.inMethod = oldInMethod;\\n\\n  return this.finishNode(node, isStatement ? \\"FunctionDeclaration\\" : \\"FunctionExpression\\");\\n};\\n\\npp.parseFunctionParams = function (node) {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n};\\n\\n// Parse a class declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseClass = function (node, isStatement, optionalId) {\\n  this.next();\\n  this.parseClassId(node, isStatement, optionalId);\\n  this.parseClassSuper(node);\\n  this.parseClassBody(node);\\n  return this.finishNode(node, isStatement ? \\"ClassDeclaration\\" : \\"ClassExpression\\");\\n};\\n\\npp.isClassProperty = function () {\\n  return this.match(_tokenizerTypes.types.eq) || this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\npp.parseClassBody = function (node) {\\n  // class bodies are implicitly strict\\n  var oldStrict = this.state.strict;\\n  this.state.strict = true;\\n\\n  var hadConstructorCall = false;\\n  var hadConstructor = false;\\n  var decorators = [];\\n  var classBody = this.startNode();\\n\\n  classBody.body = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (this.eat(_tokenizerTypes.types.semi)) {\\n      continue;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n      continue;\\n    }\\n\\n    var method = this.startNode();\\n\\n    // steal the decorators if there are any\\n    if (decorators.length) {\\n      method.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    var isConstructorCall = false;\\n    var isMaybeStatic = this.match(_tokenizerTypes.types.name) && this.state.value === \\"static\\";\\n    var isGenerator = this.eat(_tokenizerTypes.types.star);\\n    var isGetSet = false;\\n    var isAsync = false;\\n\\n    this.parsePropertyName(method);\\n\\n    method[\\"static\\"] = isMaybeStatic && !this.match(_tokenizerTypes.types.parenL);\\n    if (method[\\"static\\"]) {\\n      if (isGenerator) this.unexpected();\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n      this.parsePropertyName(method);\\n    }\\n\\n    if (!isGenerator && method.key.type === \\"Identifier\\" && !method.computed) {\\n      if (this.isClassProperty()) {\\n        classBody.body.push(this.parseClassProperty(method));\\n        continue;\\n      }\\n\\n      if (this.hasPlugin(\\"classConstructorCall\\") && method.key.name === \\"call\\" && this.match(_tokenizerTypes.types.name) && this.state.value === \\"constructor\\") {\\n        isConstructorCall = true;\\n        this.parsePropertyName(method);\\n      }\\n    }\\n\\n    var isAsyncMethod = this.hasPlugin(\\"asyncFunctions\\") && !this.match(_tokenizerTypes.types.parenL) && !method.computed && method.key.type === \\"Identifier\\" && method.key.name === \\"async\\";\\n    if (isAsyncMethod) {\\n      if (this.hasPlugin(\\"asyncGenerators\\") && this.eat(_tokenizerTypes.types.star)) isGenerator = true;\\n      isAsync = true;\\n      this.parsePropertyName(method);\\n    }\\n\\n    method.kind = \\"method\\";\\n\\n    if (!method.computed) {\\n      var key = method.key;\\n\\n      // handle get/set methods\\n      // eg. class Foo { get bar() {} set bar() {} }\\n      if (!isAsync && !isGenerator && key.type === \\"Identifier\\" && !this.match(_tokenizerTypes.types.parenL) && (key.name === \\"get\\" || key.name === \\"set\\")) {\\n        isGetSet = true;\\n        method.kind = key.name;\\n        key = this.parsePropertyName(method);\\n      }\\n\\n      // disallow invalid constructors\\n      var isConstructor = !isConstructorCall && !method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"constructor\\" || key.type === \\"StringLiteral\\" && key.value === \\"constructor\\");\\n      if (isConstructor) {\\n        if (hadConstructor) this.raise(key.start, \\"Duplicate constructor in the same class\\");\\n        if (isGetSet) this.raise(key.start, \\"Constructor can\'t have get/set modifier\\");\\n        if (isGenerator) this.raise(key.start, \\"Constructor can\'t be a generator\\");\\n        if (isAsync) this.raise(key.start, \\"Constructor can\'t be an async function\\");\\n        method.kind = \\"constructor\\";\\n        hadConstructor = true;\\n      }\\n\\n      // disallow static prototype method\\n      var isStaticPrototype = method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"prototype\\" || key.type === \\"StringLiteral\\" && key.value === \\"prototype\\");\\n      if (isStaticPrototype) {\\n        this.raise(key.start, \\"Classes may not have static property named prototype\\");\\n      }\\n    }\\n\\n    // convert constructor to a constructor call\\n    if (isConstructorCall) {\\n      if (hadConstructorCall) this.raise(method.start, \\"Duplicate constructor call in the same class\\");\\n      method.kind = \\"constructorCall\\";\\n      hadConstructorCall = true;\\n    }\\n\\n    // disallow decorators on class constructors\\n    if ((method.kind === \\"constructor\\" || method.kind === \\"constructorCall\\") && method.decorators) {\\n      this.raise(method.start, \\"You can\'t attach decorators to a class constructor\\");\\n    }\\n\\n    this.parseClassMethod(classBody, method, isGenerator, isAsync);\\n\\n    // get methods aren\'t allowed to have any parameters\\n    // set methods must have exactly 1 parameter\\n    if (isGetSet) {\\n      var paramCount = method.kind === \\"get\\" ? 0 : 1;\\n      if (method.params.length !== paramCount) {\\n        var start = method.start;\\n        if (method.kind === \\"get\\") {\\n          this.raise(start, \\"getter should have no params\\");\\n        } else {\\n          this.raise(start, \\"setter should have exactly one param\\");\\n        }\\n      }\\n    }\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no method\\");\\n  }\\n\\n  node.body = this.finishNode(classBody, \\"ClassBody\\");\\n\\n  this.state.strict = oldStrict;\\n};\\n\\npp.parseClassProperty = function (node) {\\n  if (this.match(_tokenizerTypes.types.eq)) {\\n    if (!this.hasPlugin(\\"classProperties\\")) this.unexpected();\\n    this.next();\\n    node.value = this.parseMaybeAssign();\\n  } else {\\n    node.value = null;\\n  }\\n  if (!this.eat(_tokenizerTypes.types.semi)) {\\n    this.raise(node.value && node.value.end || node.key.end, \\"A semicolon is required after a class property\\");\\n  }\\n  return this.finishNode(node, \\"ClassProperty\\");\\n};\\n\\npp.parseClassMethod = function (classBody, method, isGenerator, isAsync) {\\n  this.parseMethod(method, isGenerator, isAsync);\\n  classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n};\\n\\npp.parseClassId = function (node, isStatement, optionalId) {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    node.id = this.parseIdentifier();\\n  } else {\\n    if (optionalId || !isStatement) {\\n      node.id = null;\\n    } else {\\n      this.unexpected();\\n    }\\n  }\\n};\\n\\npp.parseClassSuper = function (node) {\\n  node.superClass = this.eat(_tokenizerTypes.types._extends) ? this.parseExprSubscripts() : null;\\n};\\n\\n// Parses module export declaration.\\n\\npp.parseExport = function (node) {\\n  this.next();\\n  // export * from \'...\'\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    if (this.hasPlugin(\\"exportExtensions\\") && this.eatContextual(\\"as\\")) {\\n      specifier.exported = this.parseIdentifier();\\n      node.specifiers = [this.finishNode(specifier, \\"ExportNamespaceSpecifier\\")];\\n      this.parseExportSpecifiersMaybe(node);\\n      this.parseExportFrom(node, true);\\n    } else {\\n      this.parseExportFrom(node, true);\\n      return this.finishNode(node, \\"ExportAllDeclaration\\");\\n    }\\n  } else if (this.hasPlugin(\\"exportExtensions\\") && this.isExportDefaultSpecifier()) {\\n    var specifier = this.startNode();\\n    specifier.exported = this.parseIdentifier(true);\\n    node.specifiers = [this.finishNode(specifier, \\"ExportDefaultSpecifier\\")];\\n    if (this.match(_tokenizerTypes.types.comma) && this.lookahead().type === _tokenizerTypes.types.star) {\\n      this.expect(_tokenizerTypes.types.comma);\\n      var _specifier = this.startNode();\\n      this.expect(_tokenizerTypes.types.star);\\n      this.expectContextual(\\"as\\");\\n      _specifier.exported = this.parseIdentifier();\\n      node.specifiers.push(this.finishNode(_specifier, \\"ExportNamespaceSpecifier\\"));\\n    } else {\\n      this.parseExportSpecifiersMaybe(node);\\n    }\\n    this.parseExportFrom(node, true);\\n  } else if (this.eat(_tokenizerTypes.types._default)) {\\n    // export default ...\\n    var expr = this.startNode();\\n    var needsSemi = false;\\n    if (this.eat(_tokenizerTypes.types._function)) {\\n      expr = this.parseFunction(expr, true, false, false, true);\\n    } else if (this.match(_tokenizerTypes.types._class)) {\\n      expr = this.parseClass(expr, true, true);\\n    } else {\\n      needsSemi = true;\\n      expr = this.parseMaybeAssign();\\n    }\\n    node.declaration = expr;\\n    if (needsSemi) this.semicolon();\\n    this.checkExport(node);\\n    return this.finishNode(node, \\"ExportDefaultDeclaration\\");\\n  } else if (this.state.type.keyword || this.shouldParseExportDeclaration()) {\\n    node.specifiers = [];\\n    node.source = null;\\n    node.declaration = this.parseExportDeclaration(node);\\n  } else {\\n    // export { x, y as z } [from \'...\']\\n    node.declaration = null;\\n    node.specifiers = this.parseExportSpecifiers();\\n    this.parseExportFrom(node);\\n  }\\n  this.checkExport(node);\\n  return this.finishNode(node, \\"ExportNamedDeclaration\\");\\n};\\n\\npp.parseExportDeclaration = function () {\\n  return this.parseStatement(true);\\n};\\n\\npp.isExportDefaultSpecifier = function () {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    return this.state.value !== \\"type\\" && this.state.value !== \\"async\\" && this.state.value !== \\"interface\\";\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._default)) {\\n    return false;\\n  }\\n\\n  var lookahead = this.lookahead();\\n  return lookahead.type === _tokenizerTypes.types.comma || lookahead.type === _tokenizerTypes.types.name && lookahead.value === \\"from\\";\\n};\\n\\npp.parseExportSpecifiersMaybe = function (node) {\\n  if (this.eat(_tokenizerTypes.types.comma)) {\\n    node.specifiers = node.specifiers.concat(this.parseExportSpecifiers());\\n  }\\n};\\n\\npp.parseExportFrom = function (node, expect /*:: ?*/) {\\n  if (this.eatContextual(\\"from\\")) {\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n    this.checkExport(node);\\n  } else {\\n    if (expect) {\\n      this.unexpected();\\n    } else {\\n      node.source = null;\\n    }\\n  }\\n\\n  this.semicolon();\\n};\\n\\npp.shouldParseExportDeclaration = function () {\\n  return this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\");\\n};\\n\\npp.checkExport = function (node) {\\n  if (this.state.decorators.length) {\\n    var isClass = node.declaration && (node.declaration.type === \\"ClassDeclaration\\" || node.declaration.type === \\"ClassExpression\\");\\n    if (!node.declaration || !isClass) {\\n      this.raise(node.start, \\"You can only use decorators on an export when exporting a class\\");\\n    }\\n    this.takeDecorators(node.declaration);\\n  }\\n};\\n\\n// Parses a comma-separated list of module exports.\\n\\npp.parseExportSpecifiers = function () {\\n  var nodes = [];\\n  var first = true;\\n  var needsFrom = undefined;\\n\\n  // export { x, y as z } [from \'...\']\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var isDefault = this.match(_tokenizerTypes.types._default);\\n    if (isDefault && !needsFrom) needsFrom = true;\\n\\n    var node = this.startNode();\\n    node.local = this.parseIdentifier(isDefault);\\n    node.exported = this.eatContextual(\\"as\\") ? this.parseIdentifier(true) : node.local.__clone();\\n    nodes.push(this.finishNode(node, \\"ExportSpecifier\\"));\\n  }\\n\\n  // https://github.com/ember-cli/ember-cli/pull/3739\\n  if (needsFrom && !this.isContextual(\\"from\\")) {\\n    this.unexpected();\\n  }\\n\\n  return nodes;\\n};\\n\\n// Parses import declaration.\\n\\npp.parseImport = function (node) {\\n  this.next();\\n\\n  // import \'...\'\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.specifiers = [];\\n    node.source = this.parseExprAtom();\\n  } else {\\n    node.specifiers = [];\\n    this.parseImportSpecifiers(node);\\n    this.expectContextual(\\"from\\");\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n  }\\n  this.semicolon();\\n  return this.finishNode(node, \\"ImportDeclaration\\");\\n};\\n\\n// Parses a comma-separated list of module imports.\\n\\npp.parseImportSpecifiers = function (node) {\\n  var first = true;\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    // import defaultObj, { x, y as z } from \'...\'\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc));\\n    if (!this.eat(_tokenizerTypes.types.comma)) return;\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    this.expectContextual(\\"as\\");\\n    specifier.local = this.parseIdentifier();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportNamespaceSpecifier\\"));\\n    return;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var specifier = this.startNode();\\n    specifier.imported = this.parseIdentifier(true);\\n    specifier.local = this.eatContextual(\\"as\\") ? this.parseIdentifier() : specifier.imported.__clone();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportSpecifier\\"));\\n  }\\n};\\n\\npp.parseImportSpecifierDefault = function (id, startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.local = id;\\n  this.checkLVal(node.local, true);\\n  return this.finishNode(node, \\"ImportDefaultSpecifier\\");\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/whitespace\\":29,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/core-js/object/create\\":31,\\"babel-runtime/helpers/interop-require-default\\":35}],10:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ## Parser utilities\\n\\n// TODO\\n\\npp.addExtra = function (node, key, val) {\\n  if (!node) return;\\n\\n  var extra = node.extra = node.extra || {};\\n  extra[key] = val;\\n};\\n\\n// TODO\\n\\npp.isRelational = function (op) {\\n  return this.match(_tokenizerTypes.types.relational) && this.state.value === op;\\n};\\n\\n// TODO\\n\\npp.expectRelational = function (op) {\\n  if (this.isRelational(op)) {\\n    this.next();\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\n// Tests whether parsed token is a contextual keyword.\\n\\npp.isContextual = function (name) {\\n  return this.match(_tokenizerTypes.types.name) && this.state.value === name;\\n};\\n\\n// Consumes contextual keyword if possible.\\n\\npp.eatContextual = function (name) {\\n  return this.state.value === name && this.eat(_tokenizerTypes.types.name);\\n};\\n\\n// Asserts that following token is given contextual keyword.\\n\\npp.expectContextual = function (name) {\\n  if (!this.eatContextual(name)) this.unexpected();\\n};\\n\\n// Test whether a semicolon can be inserted at the current position.\\n\\npp.canInsertSemicolon = function () {\\n  return this.match(_tokenizerTypes.types.eof) || this.match(_tokenizerTypes.types.braceR) || _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n};\\n\\n// TODO\\n\\npp.isLineTerminator = function () {\\n  return this.eat(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\n// Consume a semicolon, or, failing that, see if we are allowed to\\n// pretend that there is a semicolon at this position.\\n\\npp.semicolon = function () {\\n  if (!this.isLineTerminator()) this.unexpected();\\n};\\n\\n// Expect a token of a given type. If found, consume it, otherwise,\\n// raise an unexpected token error.\\n\\npp.expect = function (type) {\\n  return this.eat(type) || this.unexpected();\\n};\\n\\n// Raise an unexpected token error.\\n\\npp.unexpected = function (pos) {\\n  this.raise(pos != null ? pos : this.state.start, \\"Unexpected token\\");\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/whitespace\\":29,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],11:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\n_tokenizerContext.types.cssx = new _tokenizerContext.TokContext(\'cssx\');\\n_tokenizerContext.types.cssxDefinition = new _tokenizerContext.TokContext(\'cssxDefinition\');\\n_tokenizerContext.types.cssxSelector = new _tokenizerContext.TokContext(\'cssxSelector\');\\n_tokenizerContext.types.cssxRules = new _tokenizerContext.TokContext(\'cssxRules\');\\n_tokenizerContext.types.cssxProperty = new _tokenizerContext.TokContext(\'cssxProperty\');\\n_tokenizerContext.types.cssxValue = new _tokenizerContext.TokContext(\'cssxValue\');\\n_tokenizerContext.types.cssxMediaQuery = new _tokenizerContext.TokContext(\'CSSXMediaQuery\');\\n_tokenizerContext.types.cssxKeyframes = new _tokenizerContext.TokContext(\'CSSXKeyframes\');\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\nvar registerInOut = function registerInOut(name, context) {\\n  pp[\'cssx\' + name + \'In\'] = function () {\\n    var curContext = this.curContext();\\n\\n    if (curContext === context) return;\\n    this.state.context.push(context);\\n  };\\n\\n  pp[\'cssx\' + name + \'Out\'] = function () {\\n    var curContext = this.curContext();\\n\\n    if (curContext !== context) {\\n      this.raise(this.state.start, \'CSSX: Not in \' + context.token + \' context\');\\n    };\\n    this.state.context.length -= 1;\\n  };\\n};\\n\\nregisterInOut(\'\', _tokenizerContext.types.cssx);\\nregisterInOut(\'MediaQuery\', _tokenizerContext.types.cssxMediaQuery);\\nregisterInOut(\'Keyframes\', _tokenizerContext.types.cssxKeyframes);\\nregisterInOut(\'Definition\', _tokenizerContext.types.cssxDefinition);\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"babel-runtime/helpers/interop-require-default\\":35}],12:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\nvar PARSER_OPTIONS = {\\n  locations: true,\\n  ranges: true\\n};\\n\\npp.cssxExpressionRegister = function (expressions) {\\n  if (expressions && expressions.length > 0) {\\n    this.state._cssxExpressions = expressions;\\n  }\\n};\\npp.cssxExpressionSet = function (node) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  var length = undefined,\\n      codeStr = undefined,\\n      exprNode = undefined;\\n\\n  if (this.state._cssxExpressions && this.state._cssxExpressions.length > 0) {\\n    node.expressions = this.state._cssxExpressions.map(function (expr) {\\n      length = expr.end - expr.start;\\n      codeStr = _this.state.input.substr(expr.start, length).substr(1, length - 2);\\n      if (codeStr === \'\') return false;\\n      return {\\n        start: expr.start,\\n        end: expr.end,\\n        contextLoc: {\\n          start: expr.inner.start,\\n          end: expr.inner.end\\n        }\\n      };\\n    }).filter(function (expr) {\\n      return expr !== false;\\n    });\\n  }\\n  this.state._cssxExpressions = false;\\n};\\n},{\\"../../parser\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],13:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _tokenizer = require(\\"../../tokenizer\\");\\n\\nvar _utilities = require(\'./utilities\');\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\nvar MediaQueryEntryPoint = \'@media \';\\nvar keyframesEntryPoint = [\'@keyframes\', \'@-webkit-keyframes\', \'@-moz-keyframes\', \'@-o-keyframes\'];\\n\\npp.cssxIsMediaQuery = function () {\\n  if (this.state.value.toString().indexOf(MediaQueryEntryPoint) === 0) {\\n    return true;\\n  }\\n  return false;\\n};\\n\\npp.cssxIsKeyFramesEntryPoint = function () {\\n  var value = this.state.value.toString().split(\' \')[0];\\n  if (keyframesEntryPoint.indexOf(value) >= 0) {\\n    return true;\\n  }\\n  return false;\\n};\\n\\npp.cssxGetPreviousToken = function () {\\n  var steps = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\\n\\n  return this.state.tokens[this.state.tokens.length - (steps + 1)];\\n};\\n\\npp.cssxMatchPreviousToken = function (type, step) {\\n  var previous = this.cssxGetPreviousToken(step);\\n\\n  if (previous && previous.type === type) return true;\\n  return false;\\n};\\n\\npp.cssxMatchNextToken = function () {\\n  var next = undefined,\\n      nextA = undefined,\\n      nextB = undefined,\\n      old = undefined;\\n\\n  if (arguments.length === 1) {\\n    next = this.lookahead();\\n    if (next && next.type === arguments[0]) return true;\\n    return false;\\n  } else if (arguments.length === 2) {\\n    old = this.state;\\n    this.state = old.clone(true);\\n\\n    this.isLookahead = true;\\n    this.next();\\n    nextA = this.state.clone(true);\\n    this.next();\\n    nextB = this.state.clone(true);\\n    this.isLookahead = false;\\n    this.state = old;\\n    if (nextA && nextA.type === arguments[0] && nextB && nextB.type === arguments[1]) {\\n      return true;\\n    }\\n    return false;\\n  }\\n};\\n\\npp.cssxLookahead = function () {\\n  var numOfTokens = arguments.length <= 0 || arguments[0] === undefined ? 2 : arguments[0];\\n\\n  var old = this.state;\\n  var stack = [];\\n\\n  this.state = old.clone(true);\\n\\n  this.isLookahead = true;\\n  while (numOfTokens > 0) {\\n    this.next();\\n    stack.push(this.state.clone(true));\\n    --numOfTokens;\\n  }\\n  this.isLookahead = false;\\n  this.state = old;\\n\\n  return {\\n    stack: stack,\\n    last: stack[stack.length - 1],\\n    first: stack[0]\\n  };\\n};\\n\\npp.cssxClonePosition = function (loc) {\\n  return {\\n    line: loc.line,\\n    column: loc.column\\n  };\\n};\\n\\npp.cssxDebugComments = function (comments) {\\n  if (!comments || comments.length === 0) return null;\\n  return JSON.stringify(comments.map(function (c) {\\n    return { type: c.type, value: c.value };\\n  }));\\n};\\n\\npp.cssxClearSpaceAtTheEnd = function (value) {\\n  if (value.charAt(value.length - 1) === \' \') {\\n    --this.state.pos;\\n    return value.substr(0, value.length - 1);\\n  }\\n  return value;\\n};\\n\\npp.cssxFinishTokenAt = function (type, val, pos, loc) {\\n  this.state.end = pos;\\n  this.state.endLoc = loc;\\n  var prevType = this.state.type;\\n  this.state.type = type;\\n  this.state.value = val;\\n\\n  this.updateContext(prevType);\\n};\\n\\npp.replaceCurrentTokenType = function (type) {\\n  this.state.type = type;\\n};\\n\\npp.cssxStoreNextCharAsToken = function (type) {\\n  var curContext = this.curContext();\\n\\n  ++this.state.pos;\\n  this.finishToken(type);\\n\\n  this.state.tokens.push(new _tokenizer.Token(this.state));\\n  if (!curContext || !curContext.preserveSpace) this.skipSpace();\\n  this.cssxSyncLocPropsToCurPos();\\n};\\n\\npp.cssxStoreCurrentToken = function () {\\n  this.state.tokens.push(new _tokenizer.Token(this.state));\\n  this.cssxSyncLocPropsToCurPos();\\n};\\n\\npp.cssxSyncLocPropsToCurPos = function (p) {\\n  var pos = typeof p === \'undefined\' ? this.state.pos : p;\\n\\n  this.state.start = this.state.end = pos;\\n  this.state.startLoc = this.state.endLoc = _utilities.posToLoc(pos, this.state.input);\\n};\\n\\npp.cssxSyncEndTokenStateToCurPos = function (p) {\\n  var pos = typeof p === \'undefined\' ? this.state.pos : p;\\n  var meta = _utilities.posToLoc(this.state.pos, this.state.input, true);\\n\\n  this.state.endLoc.line = meta.line;\\n  this.state.endLoc.column = meta.column;\\n  this.state.lineStart = meta.lineStart;\\n  this.state.curLine = meta.curLine;\\n};\\n},{\\"../../parser\\":5,\\"../../tokenizer\\":24,\\"./utilities\\":19,\\"babel-runtime/helpers/interop-require-default\\":35}],14:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = CSSX;\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilLocation = require(\\"../../util/location\\");\\n\\nvar _utilities = require(\\"./utilities\\");\\n\\nrequire(\\"./types\\");\\n\\nrequire(\\"./context\\");\\n\\nrequire(\\"./parsers\\");\\n\\nrequire(\\"./readers\\");\\n\\nrequire(\\"./helpers\\");\\n\\nrequire(\\"./expressions\\");\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\nfunction CSSX(instance) {\\n\\n  instance.extend(\'parseStatement\', function (inner) {\\n    return function (declaration, topLevel) {\\n      var result = undefined;\\n\\n      if (this.cssxMatchPreviousToken(_tokenizerTypes.types.cssxStart) && this.curContext() !== _tokenizerContext.types.cssxDefinition) {\\n        this.cssxDefinitionIn();\\n        return this.cssxParse();\\n      } else if (this.match(_tokenizerTypes.types.cssxSelector)) {\\n        if (this.cssxIsMediaQuery()) {\\n          return this.cssxParseMediaQueryElement();\\n        } else if (this.cssxIsKeyFramesEntryPoint()) {\\n          return this.cssxParseKeyframesElement();\\n        }\\n        return this.cssxParseElement();\\n      }\\n      return inner.call(this, declaration, topLevel);\\n    };\\n  });\\n\\n  instance.extend(\'parseBlock\', function (inner) {\\n    return function (allowDirectives /*:: ?*/) {\\n      // istanbul ignore next\\n\\n      var _this = this;\\n\\n      var fallback = function fallback() {\\n        return inner.call(_this, allowDirectives);\\n      };\\n      var context = this.curContext(),\\n          blockStmtNode;\\n      var rules = [],\\n          lastToken;\\n\\n      if (context === _tokenizerContext.types.cssxRules && this.match(_tokenizerTypes.types.cssxRulesStart)) {\\n\\n        blockStmtNode = this.startNode();\\n        // no rules\\n        if (this.match(_tokenizerTypes.types.cssxRulesStart) && this.lookahead().type === _tokenizerTypes.types.braceR) {\\n          this.next();\\n        } else {\\n          // reading the style         \\n          while (!this.match(_tokenizerTypes.types.cssxRulesEnd) && !this.match(_tokenizerTypes.types.eof)) {\\n            rules.push(this.cssxParseRule(this.cssxReadProperty(), this.cssxReadValue()));\\n          }\\n          if (this.state.pos >= this.input.length) this.finishToken(_tokenizerTypes.types.eof);\\n        }\\n        blockStmtNode.body = rules;\\n        lastToken = this.cssxGetPreviousToken();\\n        return this.finishNodeAt(blockStmtNode, \'CSSXRules\', lastToken.end, lastToken.loc.end);\\n      }\\n\\n      return fallback();\\n    };\\n  });\\n\\n  instance.extend(\'readToken\', function (inner) {\\n    return function (code) {\\n      // istanbul ignore next\\n\\n      var _this2 = this;\\n\\n      var fallback = function fallback() {\\n        return inner.call(_this2, code);\\n      };\\n      var context = this.curContext();\\n\\n      if (this.isLookahead) return fallback();\\n\\n      if (this.match(_tokenizerTypes.types.cssxSelector) && this.cssxMatchNextToken(_tokenizerTypes.types.braceL)) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.cssxRulesStart);\\n      } else if (this.match(_tokenizerTypes.types.cssxSelector) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n        this.finishToken(_tokenizerTypes.types.cssxRulesEnd);\\n        return;\\n      } else if (this.match(_tokenizerTypes.types.cssxRulesStart)) {\\n        // no styles\\n        if (this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n          return this.cssxStoreNextCharAsToken(_tokenizerTypes.types.cssxRulesEnd);\\n        } else {\\n          return this.finishToken(_tokenizerTypes.types.cssxRulesStart);\\n        }\\n        // matching the : between the property and the value\\n      } else if (this.match(_tokenizerTypes.types.cssxProperty) && code === 58) {\\n          // 58 = :       \\n          return this.cssxStoreNextCharAsToken(_tokenizerTypes.types.colon);\\n          // matching the semicolon at the end of the rule\\n        } else if (this.match(_tokenizerTypes.types.cssxValue) && code === 59) {\\n            // 59 = ;\\n            this.cssxStoreNextCharAsToken(_tokenizerTypes.types.semi);\\n            // eding with semicolon\\n            if (this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n              this.cssxStoreNextCharAsToken(_tokenizerTypes.types.cssxRulesEnd);\\n            }\\n            return;\\n          } else if (this.match(_tokenizerTypes.types.cssxValue) && this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n            // ending without semicolon\\n            return this.cssxStoreNextCharAsToken(_tokenizerTypes.types.cssxRulesEnd);\\n          } else if (this.match(_tokenizerTypes.types.cssxRulesEnd) && context === _tokenizerContext.types.cssxMediaQuery || this.match(_tokenizerTypes.types.cssxRulesEnd) && context === _tokenizerContext.types.cssxKeyframes) {\\n            // end of media query\\n            return;\\n          } else if (this.match(_tokenizerTypes.types.cssxRulesEnd) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR) || this.match(_tokenizerTypes.types.cssxMediaQueryEnd) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR) || this.match(_tokenizerTypes.types.cssxKeyframesEnd) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n            ++this.state.pos;\\n            this.finishToken(_tokenizerTypes.types.cssxEnd);\\n            return;\\n          }\\n\\n      // cssx entry point\\n      if (this.cssxEntryPoint()) {\\n        return;\\n      }\\n\\n      // looping through the cssx elements\\n      if (context === _tokenizerContext.types.cssxDefinition || context === _tokenizerContext.types.cssxMediaQuery || context === _tokenizerContext.types.cssxKeyframes) {\\n        this.skipSpace();\\n        return this.cssxReadSelector();\\n      }\\n\\n      return fallback();\\n    };\\n  });\\n\\n  instance.extend(\'getTokenFromCode\', function (inner) {\\n    return function (code) {\\n      // istanbul ignore next\\n\\n      var _this3 = this;\\n\\n      var fallback = function fallback() {\\n        return inner.call(_this3, code);\\n      };\\n\\n      // when the selector starts with #\\n      if (code === 35 && (this.match(_tokenizerTypes.types.cssxStart) || this.match(_tokenizerTypes.types.cssxRulesEnd))) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.string, \'#\');\\n      }\\n\\n      return fallback();\\n    };\\n  });\\n\\n  instance.extend(\\"parseExprAtom\\", function (inner) {\\n    return function (refShortHandDefaultPos) {\\n      if (this.match(_tokenizerTypes.types.cssxStart)) {\\n        this.cssxDefinitionIn();\\n        return this.cssxParse();\\n      }\\n      return inner.call(this, refShortHandDefaultPos);\\n    };\\n  });\\n\\n  instance.extend(\'processComment\', function (inner) {\\n    return function (node) {\\n      var last;\\n\\n      if (node.type === \'CSSXRule\') {\\n        this.state.trailingComments.length = 0;\\n        this.state.leadingComments.length = 0;\\n      }\\n\\n      return inner.call(this, node);\\n    };\\n  });\\n}\\n\\n;\\n\\npp.cssxEntryPoint = function (code) {\\n  var nextToken = this.lookahead();\\n  var name = undefined,\\n      parenL = undefined,\\n      future = undefined,\\n      cState = undefined;\\n\\n  if (nextToken.type === _tokenizerTypes.types.name && nextToken.value === \'cssx\' && this.cssxMatchNextToken(_tokenizerTypes.types.name, _tokenizerTypes.types.parenL)) {\\n    cState = this.state.clone();\\n    future = this.cssxLookahead(2);\\n    name = future.first;\\n    parenL = future.last;\\n    this.cssxIn();\\n    this.state.pos = parenL.end;\\n    this.finishToken(_tokenizerTypes.types.cssxStart);\\n    this.cssxSyncEndTokenStateToCurPos();\\n    if (this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n      this.state = cState;\\n      return false;\\n    }\\n    this.cssxStoreCurrentToken();\\n    return true;\\n  }\\n  return false;\\n};\\n\\npp.cssxRulesEntryPoint = function (code) {\\n  return this.match(_tokenizerTypes.types.braceL) && this.cssxMatchNextToken(_tokenizerTypes.types.name, _tokenizerTypes.types.colon);\\n};\\n\\n/* useful watchers\\n\\nwatch(\'this.state.type.label\')\\nwatch(\'this.state.pos\')\\nwatch(\'this.state.start\')\\nwatch(\'this.state.end\')\\nwatch(\'this.state.startLoc\')\\nwatch(\'this.state.endLoc\')\\nwatch(\'this.state.input.substr(0, this.state.pos)\')\\nwatch(\'this.state.context.map(function(i){return i.token}).join(\\",\\")\')\\nwatch(\'this.lookahead().type.label\')\\n\\nwatch(\'String.fromCharCode(ch) + \\" / \\" + ch\')\\n\\n*/\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26,\\"../../util/location\\":28,\\"./context\\":11,\\"./expressions\\":12,\\"./helpers\\":13,\\"./parsers\\":15,\\"./readers\\":16,\\"./types\\":18,\\"./utilities\\":19,\\"babel-runtime/helpers/interop-require-default\\":35}],15:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.cssxParse = function () {\\n  var lastToken = this.cssxGetPreviousToken();\\n  var definition = this.startNodeAt(lastToken.start, lastToken.loc.start);\\n\\n  this.skipSpace();\\n  this.cssxReadSelector();\\n  this.parseBlockBody(definition, true, false, _tokenizerTypes.types.cssxEnd);\\n  this.finishNode(definition, \'CSSXDefinition\');\\n  return definition;\\n};\\n\\npp.cssxParseExpression = function () {\\n  var exprNode = undefined,\\n      lastToken = undefined,\\n      result = undefined;\\n\\n  lastToken = this.cssxGetPreviousToken();\\n  exprNode = this.startNodeAt(lastToken.start, lastToken.loc.start);\\n  exprNode.body = [];\\n\\n  while (this.match(_tokenizerTypes.types.cssxSelector)) {\\n    if (this.cssxIsMediaQuery()) {\\n      exprNode.body.push(this.cssxParseMediaQueryElement());\\n    } else if (this.cssxIsKeyFramesEntryPoint()) {\\n      exprNode.body.push(this.cssxParseKeyframesElement());\\n    } else {\\n      exprNode.body.push(this.cssxParseElement());\\n    }\\n  }\\n\\n  result = this.finishNodeAt(exprNode, \'CSSXExpression\', this.state.end, this.state.endLoc);\\n  this.next();\\n  return result;\\n};\\n\\npp.cssxParseElement = function () {\\n  var elementNode = undefined,\\n      selectorNode = undefined,\\n      result = undefined,\\n      lastToken = undefined;\\n\\n  elementNode = this.startNodeAt(this.state.start, this.state.startLoc);\\n  selectorNode = this.startNodeAt(this.state.start, this.state.startLoc);\\n\\n  selectorNode.value = this.state.value;\\n  this.cssxExpressionSet(selectorNode);\\n  elementNode.selector = this.finishNodeAt(selectorNode, \'CSSXSelector\', this.state.end, this.state.endLoc);\\n  this.next();\\n  if (!this.match(_tokenizerTypes.types.cssxRulesEnd)) {\\n    elementNode.body = this.parseBlock();\\n  }\\n  lastToken = this.cssxGetPreviousToken();\\n  result = this.finishNodeAt(elementNode, \'CSSXElement\', lastToken.end, lastToken.loc.end);\\n  this.nextToken();\\n  return result;\\n};\\n\\npp.cssxParseMediaQueryElement = function () {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  return this.cssxParseNestedSelectors({\\n    name: \'CSSXMediaQueryElement\',\\n    context: {\\n      \\"in\\": function _in() {\\n        return _this.cssxMediaQueryIn();\\n      }\\n    },\\n    tokens: {\\n      el: _tokenizerTypes.types.cssxMediaQuery,\\n      start: _tokenizerTypes.types.cssxMediaQueryStart,\\n      end: _tokenizerTypes.types.cssxMediaQueryEnd\\n    },\\n    errors: {\\n      unclosed: \'CSSX: unclosed media query block\',\\n      expectSelector: \'CSSX: expected css selector after media query definition\'\\n    }\\n  });\\n};\\n\\npp.cssxParseKeyframesElement = function () {\\n  // istanbul ignore next\\n\\n  var _this2 = this;\\n\\n  return this.cssxParseNestedSelectors({\\n    name: \'CSSXKeyframesElement\',\\n    context: {\\n      \\"in\\": function _in() {\\n        return _this2.cssxKeyframesIn();\\n      }\\n    },\\n    tokens: {\\n      el: _tokenizerTypes.types.cssxKeyframes,\\n      start: _tokenizerTypes.types.cssxKeyframesStart,\\n      end: _tokenizerTypes.types.cssxKeyframesEnd\\n    },\\n    errors: {\\n      unclosed: \'CSSX: unclosed @keyframes block\',\\n      expectSelector: \'CSSX: expected keyframe as a start of the @keyframes block\'\\n    }\\n  });\\n};\\n\\npp.cssxParseNestedSelectors = function (options) {\\n  var nestedElement = undefined,\\n      result = undefined;\\n  nestedElement = this.startNodeAt(this.state.start, this.state.startLoc);\\n  nestedElement.query = this.state.value;\\n\\n  this.cssxExpressionSet(nestedElement);\\n  options.context[\\"in\\"]();\\n  this.cssxFinishTokenAt(options.tokens.el, this.state.value, this.state.end, this.state.endLoc);\\n  this.cssxStoreCurrentToken();\\n\\n  if (!this.cssxMatchNextToken(_tokenizerTypes.types.braceL)) {\\n    this.raise(this.state.pos, \'CSSX: expected { after query definition\');\\n  }\\n\\n  ++this.state.pos;\\n  this.finishToken(options.tokens.start);\\n\\n  if (this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n    // empty media query\\n    this.cssxStoreCurrentToken();\\n    this.skipSpace();\\n    this.cssxSyncLocPropsToCurPos();\\n  } else {\\n    this.next();\\n    nestedElement.body = [];\\n    if (this.match(_tokenizerTypes.types.cssxSelector)) {\\n      nestedElement.body.push(this.cssxParseElement());\\n      while (!this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n        if (this.match(_tokenizerTypes.types.cssxRulesEnd)) {\\n          this.cssxReadSelector();\\n        }\\n        if (this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n          this.raise(this.state.pos, options.errors.unclosed);\\n        }\\n        nestedElement.body.push(this.cssxParseElement());\\n      }\\n    } else {\\n      this.raise(this.state.pos, options.errors.expectSelector);\\n    }\\n  }\\n\\n  ++this.state.pos;\\n  this.finishToken(options.tokens.end);\\n  result = this.finishNodeAt(nestedElement, options.name, this.state.end, this.state.endLoc);\\n  this.next();\\n  return result;\\n};\\n\\npp.cssxParseRule = function (propertyNode, valueNode) {\\n  var node = this.startNodeAt(propertyNode.start, propertyNode.loc.start);\\n  var pos = valueNode.end;\\n  var locEnd = this.cssxClonePosition(valueNode.loc.end);\\n\\n  if (this.match(_tokenizerTypes.types.semi) || this.match(_tokenizerTypes.types.cssxRulesEnd) && this.cssxMatchPreviousToken(_tokenizerTypes.types.semi, 1)) {\\n    ++locEnd.column;\\n    ++pos;\\n  }\\n\\n  node.label = propertyNode;\\n  node.body = valueNode;\\n\\n  return this.finishNodeAt(node, \'CSSXRule\', pos, locEnd);\\n};\\n\\npp.cssxParseRuleChild = function (type, value, pos, loc) {\\n  var node = this.startNodeAt(pos, loc);\\n\\n  this.cssxExpressionSet(node);\\n  node.name = value;\\n  return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);\\n};\\n},{\\"../../parser\\":5,\\"../../tokenizer/types\\":26,\\"babel-runtime/helpers/interop-require-default\\":35}],16:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilIdentifier = require(\\"../../util/identifier\\");\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _settings = require(\\"./settings\\");\\n\\nvar _utilities = require(\'./utilities\');\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.cssxReadWord = function (readUntil) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  var word = \'\';\\n  var first = true;\\n  var chunkStart = undefined,\\n      cut = undefined,\\n      toggle = undefined;\\n  var readingDataURI = false;\\n  var readingNth = false;\\n  var readingExpression = false;\\n  var dataURIPattern = [\'url(data:\', 41]; // 41 = )\\n  var expressionPattern = [96, 96]; // 96 = `\\n  var nthPattern = [40, 41]; // 40 = (, 41 = )\\n  var expression = false;\\n  var expressions = [];\\n  var numOfCharRead = 0;\\n\\n  chunkStart = this.state.pos;\\n  cut = function () {\\n    return _this.input.slice(chunkStart, _this.state.pos);\\n  };\\n  this.state.containsEsc = false;\\n\\n  while (this.state.pos < this.input.length) {\\n    var ch = this.fullCharCodeAtPos();\\n\\n    if (cut() === dataURIPattern[0]) readingDataURI = true;\\n    if (ch === dataURIPattern[1]) readingDataURI = false;\\n\\n    if (ch === nthPattern[0]) readingNth = true;\\n\\n    if (readUntil.call(this, ch) || readingDataURI || readingNth || ch === expressionPattern[0] || expression !== false) {\\n\\n      var inc = ch <= 0xffff ? 1 : 2;\\n      this.state.pos += inc;\\n\\n      // expression block end detection\\n      if (ch === expressionPattern[1] && expression) {\\n        expression.end = this.state.pos;\\n        expression.inner.end = numOfCharRead + 1;\\n        expressions.push(expression);\\n        expression = false;\\n        // expression block start detection\\n      } else if (ch === expressionPattern[0] && !expression) {\\n          expression = {\\n            start: this.state.pos - 1,\\n            inner: { start: numOfCharRead }\\n          };\\n        }\\n\\n      // new line detection\\n      if (ch === 10) {\\n        // new line\\n        ++this.state.curLine;\\n        this.state.lineStart = this.state.pos;\\n      }\\n    } else if (ch === 92) {\\n      // \\"\\\\\\"\\n      this.state.containsEsc = true;\\n\\n      word += this.input.slice(chunkStart, this.state.pos);\\n      var escStart = this.state.pos;\\n\\n      if (this.input.charCodeAt(++this.state.pos) !== 117) {\\n        // \\"u\\"\\n        this.raise(this.state.pos, \\"CSSX: expecting Unicode escape sequence \\\\\\\\uXXXX\\");\\n      }\\n\\n      ++this.state.pos;\\n      var esc = this.readCodePoint();\\n      if (!(first ? _utilIdentifier.isIdentifierStart : _utilIdentifier.isIdentifierChar)(esc, true)) {\\n        this.raise(escStart, \\"CSSX: invalid Unicode escape\\");\\n      }\\n\\n      word += codePointToString(esc);\\n      chunkStart = this.state.pos;\\n    } else {\\n      break;\\n    }\\n    if (ch === nthPattern[1]) readingNth = false;\\n    first = false;\\n    ++numOfCharRead;\\n  }\\n  word = word + cut();\\n  return { str: word, expressions: expressions };\\n};\\n\\npp.cssxReadSelector = function (lastToken) {\\n  var startLoc = undefined,\\n      pos = undefined,\\n      value = undefined,\\n      node = undefined,\\n      word = undefined;\\n  this.state.context.push(_tokenizerContext.types.cssxSelector);\\n  startLoc = this.state.curPosition();\\n  pos = this.state.pos;\\n\\n  word = this.cssxReadWord(pp.cssxReadSelectorCharUntil);\\n  value = this.cssxClearSpaceAtTheEnd(word.str);\\n\\n  this.cssxExpressionRegister(word.expressions);\\n  this.state.startLoc = startLoc;\\n  this.state.start = pos;\\n  this.finishToken(_tokenizerTypes.types.cssxSelector, value);\\n  this.skipSpace();\\n};\\n\\npp.cssxReadProperty = function () {\\n  var loc = undefined,\\n      pos = undefined,\\n      property = undefined,\\n      node = undefined,\\n      word = undefined;\\n\\n  if (this.match(_tokenizerTypes.types.cssxRulesStart)) this.next();\\n\\n  loc = this.state.curPosition();\\n  pos = this.state.pos;\\n\\n  word = this.cssxReadWord(pp.cssxReadPropCharUntil);\\n  property = word.str;\\n\\n  if (property === \'\') {\\n    this.raise(this.state.pos, \'CSSX: no CSS property provided\');\\n  }\\n\\n  this.cssxExpressionRegister(word.expressions);\\n  this.state.startLoc = loc;\\n  this.state.start = pos;\\n\\n  this.finishToken(_tokenizerTypes.types.cssxProperty, property);\\n\\n  if (this.lookahead().type !== _tokenizerTypes.types.colon) {\\n    this.raise(this.state.pos, \'CSSX: expecting a colon after CSS property\');\\n  }\\n  this.next();\\n  node = this.cssxParseRuleChild(\'CSSXProperty\', property, pos, loc);\\n\\n  return node;\\n};\\n\\npp.cssxReadValue = function () {\\n  var startLoc = undefined,\\n      endLoc = undefined,\\n      pos = undefined,\\n      value = undefined,\\n      node = undefined,\\n      word = undefined;\\n\\n  startLoc = this.state.curPosition();\\n  pos = this.state.pos;\\n  word = this.cssxReadWord(pp.cssxReadValueCharUntil);\\n  value = this.cssxClearSpaceAtTheEnd(word.str); // changes state.pos\\n\\n  this.cssxExpressionRegister(word.expressions);\\n  this.state.start = pos;\\n  this.state.startLoc = startLoc;\\n  this.finishToken(_tokenizerTypes.types.cssxValue, value);\\n  this.next();\\n  node = this.cssxParseRuleChild(\'CSSXValue\', value, pos, startLoc);\\n\\n  return node;\\n};\\n\\npp.cssxReadSelectorCharUntil = function (code) {\\n  if (_settings.CSSXSelectorAllowedCodes.indexOf(code) >= 0 || _utilities.isNumber(code)) {\\n    // check for allow characters\\n    return true;\\n  } else if (code === 123) {\\n    // end the selector with {\\n    return false;\\n  }\\n  return _utilIdentifier.isIdentifierChar(code);\\n};\\n\\npp.cssxReadValueCharUntil = function (code) {\\n  return _settings.CSSXValueAllowedCodes.indexOf(code) >= 0 ? true : _utilIdentifier.isIdentifierChar(code);\\n};\\n\\npp.cssxReadPropCharUntil = function (code) {\\n  return _settings.CSSXPropertyAllowedCodes.indexOf(code) >= 0 ? true : _utilIdentifier.isIdentifierChar(code);\\n};\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26,\\"../../util/identifier\\":27,\\"./settings\\":17,\\"./utilities\\":19,\\"babel-runtime/helpers/interop-require-default\\":35}],17:[function(require,module,exports){\\n\'use strict\';\\n\\nexports.__esModule = true;\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _utilities = require(\'./utilities\');\\n\\nvar CSSXPropertyAllowedCodes = [\'-\'].map(_utilities.stringToCode);\\n\\nvar CSSXValueAllowedCodes = [\' \', \'\\\\n\', \'\\\\t\', \'#\', \'.\', \'-\', \'(\', \')\', \'[\', \']\', \'\\\\\'\', \'\\"\', \'%\', \',\', \':\', \'/\', \'\\\\\\\\\', \'!\', \'?\'].map(_utilities.stringToCode);\\n\\nvar CSSXSelectorAllowedCodes = [\' \', \'*\', \'>\', \'+\', \'~\', \'.\', \':\', \'=\', \'[\', \']\', \'\\"\', \'-\', \'!\', \'?\', \'@\', \'#\', \'$\', \'%\', \'^\', \'&\', \'\\\\\'\', \'|\', \',\', \'\\\\n\'].map(_utilities.stringToCode);\\n\\nexports[\'default\'] = {\\n  CSSXPropertyAllowedCodes: CSSXPropertyAllowedCodes,\\n  CSSXValueAllowedCodes: CSSXValueAllowedCodes,\\n  CSSXSelectorAllowedCodes: CSSXSelectorAllowedCodes\\n};\\nmodule.exports = exports[\'default\'];\\n},{\\"../../tokenizer/types\\":26,\\"./utilities\\":19}],18:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\n_tokenizerTypes.types.cssxStart = new _tokenizerTypes.TokenType(\'CSSXStart\');\\n_tokenizerTypes.types.cssxEnd = new _tokenizerTypes.TokenType(\'CSSXEnd\');\\n_tokenizerTypes.types.cssxSelector = new _tokenizerTypes.TokenType(\'CSSXSelector\');\\n_tokenizerTypes.types.cssxRulesStart = new _tokenizerTypes.TokenType(\'CSSXRulesStart\');\\n_tokenizerTypes.types.cssxRulesEnd = new _tokenizerTypes.TokenType(\'CSSXRulesEnd\');\\n_tokenizerTypes.types.cssxProperty = new _tokenizerTypes.TokenType(\'CSSXProperty\');\\n_tokenizerTypes.types.cssxValue = new _tokenizerTypes.TokenType(\'CSSXValue\');\\n_tokenizerTypes.types.cssxMediaQuery = new _tokenizerTypes.TokenType(\'CSSXMediaQuery\');\\n_tokenizerTypes.types.cssxMediaQueryStart = new _tokenizerTypes.TokenType(\'CSSXMediaQueryStart\');\\n_tokenizerTypes.types.cssxMediaQueryEnd = new _tokenizerTypes.TokenType(\'CSSXMediaQueryEnd\');\\n_tokenizerTypes.types.cssxKeyframes = new _tokenizerTypes.TokenType(\'CSSXKeyframes\');\\n_tokenizerTypes.types.cssxKeyframesStart = new _tokenizerTypes.TokenType(\'CSSXKeyframesStart\');\\n_tokenizerTypes.types.cssxKeyframesEnd = new _tokenizerTypes.TokenType(\'CSSXKeyframesEnd\');\\n\\n_tokenizerTypes.types.cssxRulesStart.updateContext = function (prevType) {\\n  if (prevType === _tokenizerTypes.types.cssxSelector) this.state.context.push(_tokenizerContext.types.cssxRules);\\n};\\n_tokenizerTypes.types.cssxRulesEnd.updateContext = function (prevType) {\\n  if (prevType === _tokenizerTypes.types.cssxValue || prevType === _tokenizerTypes.types.cssxRulesStart || prevType === _tokenizerTypes.types.semi) {\\n    this.state.context.length -= 1; // out of cssxRules\\n  }\\n};\\n_tokenizerTypes.types.cssxEnd.updateContext = function (prevType) {\\n  this.cssxDefinitionOut();\\n  this.cssxOut();\\n};\\n_tokenizerTypes.types.cssxSelector.updateContext = function (prevType) {\\n  this.state.context.length -= 1;\\n};\\n\\n_tokenizerTypes.types.cssxMediaQueryEnd.updateContext = function (prevType) {\\n  this.cssxMediaQueryOut();\\n};\\n\\n_tokenizerTypes.types.cssxKeyframesEnd.updateContext = function (prevType) {\\n  this.cssxKeyframesOut();\\n};\\n},{\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26}],19:[function(require,module,exports){\\n\'use strict\';\\n\\nexports.__esModule = true;\\nexports.stringToCode = stringToCode;\\nexports.posToLoc = posToLoc;\\nexports.isNumber = isNumber;\\n\\nfunction stringToCode(ch) {\\n  return String(ch).charCodeAt(0);\\n}\\n\\n;\\n\\nfunction posToLoc(pos, input, verbose) {\\n  var line = 1,\\n      loopPos = 0,\\n      linePos = 0,\\n      lineStart = 0;\\n\\n  while (loopPos < input.length && loopPos !== pos) {\\n    if (input.charAt(loopPos) === \'\\\\n\') {\\n      linePos = 0;\\n      lineStart = loopPos + 1;\\n      ++line;\\n    } else {\\n      ++linePos;\\n    }\\n    ++loopPos;\\n  }\\n  if (!verbose) {\\n    return { line: line, column: linePos };\\n  } else {\\n    return {\\n      line: line,\\n      curLine: line,\\n      column: linePos,\\n      lineStart: lineStart\\n    };\\n  }\\n}\\n\\n;\\n\\nfunction isNumber(code) {\\n  return code > 47 && code < 58;\\n}\\n\\n;\\n},{}],20:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _parser = require(\\"../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.flowParseTypeInitialiser = function (tok, allowLeadingPipeOrAnd) {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  this.expect(tok || _tokenizerTypes.types.colon);\\n  if (allowLeadingPipeOrAnd) {\\n    if (this.match(_tokenizerTypes.types.bitwiseAND) || this.match(_tokenizerTypes.types.bitwiseOR)) {\\n      this.next();\\n    }\\n  }\\n  var type = this.flowParseType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseDeclareClass = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node, true);\\n  return this.finishNode(node, \\"DeclareClass\\");\\n};\\n\\npp.flowParseDeclareFunction = function (node) {\\n  this.next();\\n\\n  var id = node.id = this.parseIdentifier();\\n\\n  var typeNode = this.startNode();\\n  var typeContainer = this.startNode();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    typeNode.typeParameters = null;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var tmp = this.flowParseFunctionTypeParams();\\n  typeNode.params = tmp.params;\\n  typeNode.rest = tmp.rest;\\n  this.expect(_tokenizerTypes.types.parenR);\\n  typeNode.returnType = this.flowParseTypeInitialiser();\\n\\n  typeContainer.typeAnnotation = this.finishNode(typeNode, \\"FunctionTypeAnnotation\\");\\n  id.typeAnnotation = this.finishNode(typeContainer, \\"TypeAnnotation\\");\\n\\n  this.finishNode(id, id.type);\\n\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"DeclareFunction\\");\\n};\\n\\npp.flowParseDeclare = function (node) {\\n  if (this.match(_tokenizerTypes.types._class)) {\\n    return this.flowParseDeclareClass(node);\\n  } else if (this.match(_tokenizerTypes.types._function)) {\\n    return this.flowParseDeclareFunction(node);\\n  } else if (this.match(_tokenizerTypes.types._var)) {\\n    return this.flowParseDeclareVariable(node);\\n  } else if (this.isContextual(\\"module\\")) {\\n    return this.flowParseDeclareModule(node);\\n  } else if (this.isContextual(\\"type\\")) {\\n    return this.flowParseDeclareTypeAlias(node);\\n  } else if (this.isContextual(\\"interface\\")) {\\n    return this.flowParseDeclareInterface(node);\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseDeclareVariable = function (node) {\\n  this.next();\\n  node.id = this.flowParseTypeAnnotatableIdentifier();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DeclareVariable\\");\\n};\\n\\npp.flowParseDeclareModule = function (node) {\\n  this.next();\\n\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.id = this.parseExprAtom();\\n  } else {\\n    node.id = this.parseIdentifier();\\n  }\\n\\n  var bodyNode = node.body = this.startNode();\\n  var body = bodyNode.body = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var node2 = this.startNode();\\n\\n    // todo: declare check\\n    this.next();\\n\\n    body.push(this.flowParseDeclare(node2));\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  this.finishNode(bodyNode, \\"BlockStatement\\");\\n  return this.finishNode(node, \\"DeclareModule\\");\\n};\\n\\npp.flowParseDeclareTypeAlias = function (node) {\\n  this.next();\\n  this.flowParseTypeAlias(node);\\n  return this.finishNode(node, \\"DeclareTypeAlias\\");\\n};\\n\\npp.flowParseDeclareInterface = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node);\\n  return this.finishNode(node, \\"DeclareInterface\\");\\n};\\n\\n// Interfaces\\n\\npp.flowParseInterfaceish = function (node, allowStatic) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node[\\"extends\\"] = [];\\n  node.mixins = [];\\n\\n  if (this.eat(_tokenizerTypes.types._extends)) {\\n    do {\\n      node[\\"extends\\"].push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  if (this.isContextual(\\"mixins\\")) {\\n    this.next();\\n    do {\\n      node.mixins.push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  node.body = this.flowParseObjectType(allowStatic);\\n};\\n\\npp.flowParseInterfaceExtends = function () {\\n  var node = this.startNode();\\n\\n  node.id = this.parseIdentifier();\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  return this.finishNode(node, \\"InterfaceExtends\\");\\n};\\n\\npp.flowParseInterface = function (node) {\\n  this.flowParseInterfaceish(node, false);\\n  return this.finishNode(node, \\"InterfaceDeclaration\\");\\n};\\n\\n// Type aliases\\n\\npp.flowParseTypeAlias = function (node) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node.right = this.flowParseTypeInitialiser(_tokenizerTypes.types.eq,\\n  /*allowLeadingPipeOrAnd*/true);\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"TypeAlias\\");\\n};\\n\\n// Type annotations\\n\\npp.flowParseTypeParameterDeclaration = function () {\\n  var node = this.startNode();\\n  node.params = [];\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseTypeAnnotatableIdentifier());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  return this.finishNode(node, \\"TypeParameterDeclaration\\");\\n};\\n\\npp.flowParseExistentialTypeParam = function () {\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var node = this.startNode();\\n    this.next();\\n    return this.finishNode(node, \\"ExistentialTypeParam\\");\\n  }\\n};\\n\\npp.flowParseTypeParameterInstantiation = function () {\\n  var node = this.startNode(),\\n      oldInType = this.state.inType;\\n  node.params = [];\\n\\n  this.state.inType = true;\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseType());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  this.state.inType = oldInType;\\n\\n  return this.finishNode(node, \\"TypeParameterInstantiation\\");\\n};\\n\\npp.flowParseObjectPropertyKey = function () {\\n  return this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n};\\n\\npp.flowParseObjectTypeIndexer = function (node, isStatic) {\\n  node[\\"static\\"] = isStatic;\\n\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  node.id = this.flowParseObjectPropertyKey();\\n  node.key = this.flowParseTypeInitialiser();\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  node.value = this.flowParseTypeInitialiser();\\n\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeIndexer\\");\\n};\\n\\npp.flowParseObjectTypeMethodish = function (node) {\\n  node.params = [];\\n  node.rest = null;\\n  node.typeParameters = null;\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    node.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    node.rest = this.flowParseFunctionTypeParam();\\n  }\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.returnType = this.flowParseTypeInitialiser();\\n\\n  return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n};\\n\\npp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(startPos, startLoc));\\n  node[\\"static\\"] = isStatic;\\n  node.key = key;\\n  node.optional = false;\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeProperty\\");\\n};\\n\\npp.flowParseObjectTypeCallProperty = function (node, isStatic) {\\n  var valueNode = this.startNode();\\n  node[\\"static\\"] = isStatic;\\n  node.value = this.flowParseObjectTypeMethodish(valueNode);\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeCallProperty\\");\\n};\\n\\npp.flowParseObjectType = function (allowStatic) {\\n  var nodeStart = this.startNode();\\n  var node = undefined;\\n  var propertyKey = undefined;\\n  var isStatic = undefined;\\n\\n  nodeStart.callProperties = [];\\n  nodeStart.properties = [];\\n  nodeStart.indexers = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var optional = false;\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node = this.startNode();\\n    if (allowStatic && this.isContextual(\\"static\\")) {\\n      this.next();\\n      isStatic = true;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.bracketL)) {\\n      nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic));\\n    } else if (this.match(_tokenizerTypes.types.parenL) || this.isRelational(\\"<\\")) {\\n      nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, allowStatic));\\n    } else {\\n      if (isStatic && this.match(_tokenizerTypes.types.colon)) {\\n        propertyKey = this.parseIdentifier();\\n      } else {\\n        propertyKey = this.flowParseObjectPropertyKey();\\n      }\\n      if (this.isRelational(\\"<\\") || this.match(_tokenizerTypes.types.parenL)) {\\n        // This is a method property\\n        nodeStart.properties.push(this.flowParseObjectTypeMethod(startPos, startLoc, isStatic, propertyKey));\\n      } else {\\n        if (this.eat(_tokenizerTypes.types.question)) {\\n          optional = true;\\n        }\\n        node.key = propertyKey;\\n        node.value = this.flowParseTypeInitialiser();\\n        node.optional = optional;\\n        node[\\"static\\"] = isStatic;\\n        this.flowObjectTypeSemicolon();\\n        nodeStart.properties.push(this.finishNode(node, \\"ObjectTypeProperty\\"));\\n      }\\n    }\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  return this.finishNode(nodeStart, \\"ObjectTypeAnnotation\\");\\n};\\n\\npp.flowObjectTypeSemicolon = function () {\\n  if (!this.eat(_tokenizerTypes.types.semi) && !this.eat(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseGenericType = function (startPos, startLoc, id) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n\\n  node.typeParameters = null;\\n  node.id = id;\\n\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var node2 = this.startNodeAt(startPos, startLoc);\\n    node2.qualification = node.id;\\n    node2.id = this.parseIdentifier();\\n    node.id = this.finishNode(node2, \\"QualifiedTypeIdentifier\\");\\n  }\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  }\\n\\n  return this.finishNode(node, \\"GenericTypeAnnotation\\");\\n};\\n\\npp.flowParseTypeofType = function () {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types._typeof);\\n  node.argument = this.flowParsePrimaryType();\\n  return this.finishNode(node, \\"TypeofTypeAnnotation\\");\\n};\\n\\npp.flowParseTupleType = function () {\\n  var node = this.startNode();\\n  node.types = [];\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  // We allow trailing commas\\n  while (this.state.pos < this.input.length && !this.match(_tokenizerTypes.types.bracketR)) {\\n    node.types.push(this.flowParseType());\\n    if (this.match(_tokenizerTypes.types.bracketR)) break;\\n    this.expect(_tokenizerTypes.types.comma);\\n  }\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  return this.finishNode(node, \\"TupleTypeAnnotation\\");\\n};\\n\\npp.flowParseFunctionTypeParam = function () {\\n  var optional = false;\\n  var node = this.startNode();\\n  node.name = this.parseIdentifier();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    optional = true;\\n  }\\n  node.optional = optional;\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"FunctionTypeParam\\");\\n};\\n\\npp.flowParseFunctionTypeParams = function () {\\n  var ret = { params: [], rest: null };\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    ret.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    ret.rest = this.flowParseFunctionTypeParam();\\n  }\\n  return ret;\\n};\\n\\npp.flowIdentToTypeAnnotation = function (startPos, startLoc, node, id) {\\n  switch (id.name) {\\n    case \\"any\\":\\n      return this.finishNode(node, \\"AnyTypeAnnotation\\");\\n\\n    case \\"void\\":\\n      return this.finishNode(node, \\"VoidTypeAnnotation\\");\\n\\n    case \\"bool\\":\\n    case \\"boolean\\":\\n      return this.finishNode(node, \\"BooleanTypeAnnotation\\");\\n\\n    case \\"mixed\\":\\n      return this.finishNode(node, \\"MixedTypeAnnotation\\");\\n\\n    case \\"number\\":\\n      return this.finishNode(node, \\"NumberTypeAnnotation\\");\\n\\n    case \\"string\\":\\n      return this.finishNode(node, \\"StringTypeAnnotation\\");\\n\\n    default:\\n      return this.flowParseGenericType(startPos, startLoc, id);\\n  }\\n};\\n\\n// The parsing of types roughly parallels the parsing of expressions, and\\n// primary types are kind of like primary expressions...they\'re the\\n// primitives with which other types are constructed.\\npp.flowParsePrimaryType = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.startNode();\\n  var tmp = undefined;\\n  var type = undefined;\\n  var isGroupedType = false;\\n\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.name:\\n      return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier());\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.flowParseObjectType();\\n\\n    case _tokenizerTypes.types.bracketL:\\n      return this.flowParseTupleType();\\n\\n    case _tokenizerTypes.types.relational:\\n      if (this.state.value === \\"<\\") {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n        this.expect(_tokenizerTypes.types.parenL);\\n        tmp = this.flowParseFunctionTypeParams();\\n        node.params = tmp.params;\\n        node.rest = tmp.rest;\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        this.expect(_tokenizerTypes.types.arrow);\\n\\n        node.returnType = this.flowParseType();\\n\\n        return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n      }\\n\\n    case _tokenizerTypes.types.parenL:\\n      this.next();\\n\\n      // Check to see if this is actually a grouped type\\n      if (!this.match(_tokenizerTypes.types.parenR) && !this.match(_tokenizerTypes.types.ellipsis)) {\\n        if (this.match(_tokenizerTypes.types.name)) {\\n          var token = this.lookahead().type;\\n          isGroupedType = token !== _tokenizerTypes.types.question && token !== _tokenizerTypes.types.colon;\\n        } else {\\n          isGroupedType = true;\\n        }\\n      }\\n\\n      if (isGroupedType) {\\n        type = this.flowParseType();\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        // If we see a => next then someone was probably confused about\\n        // function types, so we can provide a better error message\\n        if (this.eat(_tokenizerTypes.types.arrow)) {\\n          this.raise(node, \\"Unexpected token =>. It looks like \\" + \\"you are trying to write a function type, but you ended up \\" + \\"writing a grouped type followed by an =>, which is a syntax \\" + \\"error. Remember, function type parameters are named so function \\" + \\"types look like (name1: type1, name2: type2) => returnType. You \\" + \\"probably wrote (type1) => returnType\\");\\n        }\\n\\n        return type;\\n      }\\n\\n      tmp = this.flowParseFunctionTypeParams();\\n      node.params = tmp.params;\\n      node.rest = tmp.rest;\\n\\n      this.expect(_tokenizerTypes.types.parenR);\\n\\n      this.expect(_tokenizerTypes.types.arrow);\\n\\n      node.returnType = this.flowParseType();\\n      node.typeParameters = null;\\n\\n      return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.string:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"StringLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.num:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"NumericLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node.value = this.match(_tokenizerTypes.types._null);\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node.value = this.match(_tokenizerTypes.types._this);\\n      this.next();\\n      return this.finishNode(node, \\"ThisTypeAnnotation\\");\\n\\n    default:\\n      if (this.state.type.keyword === \\"typeof\\") {\\n        return this.flowParseTypeofType();\\n      }\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.flowParsePostfixType = function () {\\n  var node = this.startNode();\\n  var type = node.elementType = this.flowParsePrimaryType();\\n  if (this.match(_tokenizerTypes.types.bracketL)) {\\n    this.expect(_tokenizerTypes.types.bracketL);\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return this.finishNode(node, \\"ArrayTypeAnnotation\\");\\n  } else {\\n    return type;\\n  }\\n};\\n\\npp.flowParsePrefixType = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    node.typeAnnotation = this.flowParsePrefixType();\\n    return this.finishNode(node, \\"NullableTypeAnnotation\\");\\n  } else {\\n    return this.flowParsePostfixType();\\n  }\\n};\\n\\npp.flowParseIntersectionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParsePrefixType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseAND)) {\\n    node.types.push(this.flowParsePrefixType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"IntersectionTypeAnnotation\\");\\n};\\n\\npp.flowParseUnionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParseIntersectionType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseOR)) {\\n    node.types.push(this.flowParseIntersectionType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"UnionTypeAnnotation\\");\\n};\\n\\npp.flowParseType = function () {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  var type = this.flowParseUnionType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseTypeAnnotation = function () {\\n  var node = this.startNode();\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"TypeAnnotation\\");\\n};\\n\\npp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) {\\n  var ident = this.parseIdentifier();\\n  var isOptionalParam = false;\\n\\n  if (canBeOptionalParam && this.eat(_tokenizerTypes.types.question)) {\\n    this.expect(_tokenizerTypes.types.question);\\n    isOptionalParam = true;\\n  }\\n\\n  if (requireTypeAnnotation || this.match(_tokenizerTypes.types.colon)) {\\n    ident.typeAnnotation = this.flowParseTypeAnnotation();\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  if (isOptionalParam) {\\n    ident.optional = true;\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  return ident;\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  // plain function return types: function name(): string {}\\n  instance.extend(\\"parseFunctionBody\\", function (inner) {\\n    return function (node, allowExpression) {\\n      if (this.match(_tokenizerTypes.types.colon) && !allowExpression) {\\n        // if allowExpression is true then we\'re parsing an arrow function and if\\n        // there\'s a return type then it\'s been handled elsewhere\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, allowExpression);\\n    };\\n  });\\n\\n  // interfaces\\n  instance.extend(\\"parseStatement\\", function (inner) {\\n    return function (declaration, topLevel) {\\n      // strict mode handling of `interface` since it\'s a reserved word\\n      if (this.state.strict && this.match(_tokenizerTypes.types.name) && this.state.value === \\"interface\\") {\\n        var node = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(node);\\n      } else {\\n        return inner.call(this, declaration, topLevel);\\n      }\\n    };\\n  });\\n\\n  // declares, interfaces and type aliases\\n  instance.extend(\\"parseExpressionStatement\\", function (inner) {\\n    return function (node, expr) {\\n      if (expr.type === \\"Identifier\\") {\\n        if (expr.name === \\"declare\\") {\\n          if (this.match(_tokenizerTypes.types._class) || this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._function) || this.match(_tokenizerTypes.types._var)) {\\n            return this.flowParseDeclare(node);\\n          }\\n        } else if (this.match(_tokenizerTypes.types.name)) {\\n          if (expr.name === \\"interface\\") {\\n            return this.flowParseInterface(node);\\n          } else if (expr.name === \\"type\\") {\\n            return this.flowParseTypeAlias(node);\\n          }\\n        }\\n      }\\n\\n      return inner.call(this, node, expr);\\n    };\\n  });\\n\\n  // export type\\n  instance.extend(\\"shouldParseExportDeclaration\\", function (inner) {\\n    return function () {\\n      return this.isContextual(\\"type\\") || this.isContextual(\\"interface\\") || inner.call(this);\\n    };\\n  });\\n\\n  instance.extend(\\"parseParenItem\\", function () {\\n    return function (node, startLoc, startPos, forceArrow /*:: ?*/) {\\n      var canBeArrow = this.state.potentialArrowAt = startPos;\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        var typeCastNode = this.startNodeAt(startLoc, startPos);\\n        typeCastNode.expression = node;\\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\\n\\n        if (forceArrow && !this.match(_tokenizerTypes.types.arrow)) {\\n          this.unexpected();\\n        }\\n\\n        if (canBeArrow && this.eat(_tokenizerTypes.types.arrow)) {\\n          // ((lol): number => {});\\n          var params = node.type === \\"SequenceExpression\\" ? node.expressions : [node];\\n          var func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), params);\\n          func.returnType = typeCastNode.typeAnnotation;\\n          return func;\\n        } else {\\n          return this.finishNode(typeCastNode, \\"TypeCastExpression\\");\\n        }\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseExport\\", function (inner) {\\n    return function (node) {\\n      node = inner.call(this, node);\\n      if (node.type === \\"ExportNamedDeclaration\\") {\\n        node.exportKind = node.exportKind || \\"value\\";\\n      }\\n      return node;\\n    };\\n  });\\n\\n  instance.extend(\\"parseExportDeclaration\\", function (inner) {\\n    return function (node) {\\n      if (this.isContextual(\\"type\\")) {\\n        node.exportKind = \\"type\\";\\n\\n        var declarationNode = this.startNode();\\n        this.next();\\n\\n        if (this.match(_tokenizerTypes.types.braceL)) {\\n          // export type { foo, bar };\\n          node.specifiers = this.parseExportSpecifiers();\\n          this.parseExportFrom(node);\\n          return null;\\n        } else {\\n          // export type Foo = Bar;\\n          return this.flowParseTypeAlias(declarationNode);\\n        }\\n      } else if (this.isContextual(\\"interface\\")) {\\n        node.exportKind = \\"type\\";\\n        var declarationNode = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(declarationNode);\\n      } else {\\n        return inner.call(this, node);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseClassId\\", function (inner) {\\n    return function (node) {\\n      inner.apply(this, arguments);\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n    };\\n  });\\n\\n  // don\'t consider `void` to be a keyword as then it\'ll use the void token type\\n  // and set startExpr\\n  instance.extend(\\"isKeyword\\", function (inner) {\\n    return function (name) {\\n      if (this.state.inType && name === \\"void\\") {\\n        return false;\\n      } else {\\n        return inner.call(this, name);\\n      }\\n    };\\n  });\\n\\n  // ensure that inside flow types, we bypass the jsx parser plugin\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      if (this.state.inType && (code === 62 || code === 60)) {\\n        return this.finishOp(_tokenizerTypes.types.relational, 1);\\n      } else {\\n        return inner.call(this, code);\\n      }\\n    };\\n  });\\n\\n  // don\'t lex any token as a jsx one inside a flow type\\n  instance.extend(\\"jsx_readToken\\", function (inner) {\\n    return function () {\\n      if (!this.state.inType) return inner.call(this);\\n    };\\n  });\\n\\n  function typeCastToParameter(node) {\\n    node.expression.typeAnnotation = node.typeAnnotation;\\n    return node.expression;\\n  }\\n\\n  instance.extend(\\"toAssignable\\", function (inner) {\\n    return function (node) {\\n      if (node.type === \\"TypeCastExpression\\") {\\n        return typeCastToParameter(node);\\n      } else {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // turn type casts that we found in function parameter head into type annotated params\\n  instance.extend(\\"toAssignableList\\", function (inner) {\\n    return function (exprList, isBinding) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr.type === \\"TypeCastExpression\\") {\\n          exprList[i] = typeCastToParameter(expr);\\n        }\\n      }\\n      return inner.call(this, exprList, isBinding);\\n    };\\n  });\\n\\n  // this is a list of nodes, from something like a call expression, we need to filter the\\n  // type casts that we\'ve found that are illegal in this context\\n  instance.extend(\\"toReferencedList\\", function () {\\n    return function (exprList) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr._exprListItem && expr.type === \\"TypeCastExpression\\") {\\n          this.raise(expr.start, \\"Unexpected type cast\\");\\n        }\\n      }\\n\\n      return exprList;\\n    };\\n  });\\n\\n  // parse an item inside a expression list eg. `(NODE, NODE)` where NODE represents\\n  // the position where this function is cal;ed\\n  instance.extend(\\"parseExprListItem\\", function (inner) {\\n    return function (allowEmpty, refShorthandDefaultPos) {\\n      var container = this.startNode();\\n      var node = inner.call(this, allowEmpty, refShorthandDefaultPos);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        container._exprListItem = true;\\n        container.expression = node;\\n        container.typeAnnotation = this.flowParseTypeAnnotation();\\n        return this.finishNode(container, \\"TypeCastExpression\\");\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"checkLVal\\", function (inner) {\\n    return function (node) {\\n      if (node.type !== \\"TypeCastExpression\\") {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // parse class property type annotations\\n  instance.extend(\\"parseClassProperty\\", function (inner) {\\n    return function (node) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      return inner.call(this, node);\\n    };\\n  });\\n\\n  // determine whether or not we\'re currently in the position where a class property would appear\\n  instance.extend(\\"isClassProperty\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // parse type parameters for class methods\\n  instance.extend(\\"parseClassMethod\\", function () {\\n    return function (classBody, method, isGenerator, isAsync) {\\n      if (this.isRelational(\\"<\\")) {\\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      this.parseMethod(method, isGenerator, isAsync);\\n      classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n    };\\n  });\\n\\n  // parse a the super class type parameters and implements\\n  instance.extend(\\"parseClassSuper\\", function (inner) {\\n    return function (node, isStatement) {\\n      inner.call(this, node, isStatement);\\n      if (node.superClass && this.isRelational(\\"<\\")) {\\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\\n      }\\n      if (this.isContextual(\\"implements\\")) {\\n        this.next();\\n        var implemented = node[\\"implements\\"] = [];\\n        do {\\n          var _node = this.startNode();\\n          _node.id = this.parseIdentifier();\\n          if (this.isRelational(\\"<\\")) {\\n            _node.typeParameters = this.flowParseTypeParameterInstantiation();\\n          } else {\\n            _node.typeParameters = null;\\n          }\\n          implemented.push(this.finishNode(_node, \\"ClassImplements\\"));\\n        } while (this.eat(_tokenizerTypes.types.comma));\\n      }\\n    };\\n  });\\n\\n  // parse type parameters for object method shorthand\\n  instance.extend(\\"parseObjPropValue\\", function (inner) {\\n    return function (prop) {\\n      var typeParameters = undefined;\\n\\n      // method shorthand\\n      if (this.isRelational(\\"<\\")) {\\n        typeParameters = this.flowParseTypeParameterDeclaration();\\n        if (!this.match(_tokenizerTypes.types.parenL)) this.unexpected();\\n      }\\n\\n      inner.apply(this, arguments);\\n\\n      // add typeParameters if we found them\\n      if (typeParameters) {\\n        (prop.value || prop).typeParameters = typeParameters;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseAssignableListItemTypes\\", function () {\\n    return function (param) {\\n      if (this.eat(_tokenizerTypes.types.question)) {\\n        param.optional = true;\\n      }\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        param.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      this.finishNode(param, param.type);\\n      return param;\\n    };\\n  });\\n\\n  // parse typeof and type imports\\n  instance.extend(\\"parseImportSpecifiers\\", function (inner) {\\n    return function (node) {\\n      node.importKind = \\"value\\";\\n\\n      var kind = null;\\n      if (this.match(_tokenizerTypes.types._typeof)) {\\n        kind = \\"typeof\\";\\n      } else if (this.isContextual(\\"type\\")) {\\n        kind = \\"type\\";\\n      }\\n      if (kind) {\\n        var lh = this.lookahead();\\n        if (lh.type === _tokenizerTypes.types.name && lh.value !== \\"from\\" || lh.type === _tokenizerTypes.types.braceL || lh.type === _tokenizerTypes.types.star) {\\n          this.next();\\n          node.importKind = kind;\\n        }\\n      }\\n\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse function type parameters - function foo<T>() {}\\n  instance.extend(\\"parseFunctionParams\\", function (inner) {\\n    return function (node) {\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse flow type annotations on variable declarator heads - let foo: string = bar\\n  instance.extend(\\"parseVarHead\\", function (inner) {\\n    return function (decl) {\\n      inner.call(this, decl);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\\n        this.finishNode(decl.id, decl.id.type);\\n      }\\n    };\\n  });\\n\\n  // parse the return type of an async arrow function - let foo = (async (): number => {});\\n  instance.extend(\\"parseAsyncArrowFromCallExpression\\", function (inner) {\\n    return function (node, call) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, call);\\n    };\\n  });\\n\\n  // todo description\\n  instance.extend(\\"shouldParseAsyncArrow\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // handle return types for arrow functions\\n  instance.extend(\\"parseParenAndDistinguishExpression\\", function (inner) {\\n    return function (startPos, startLoc, canBeArrow, isAsync) {\\n      startPos = startPos || this.state.start;\\n      startLoc = startLoc || this.state.startLoc;\\n\\n      if (canBeArrow && this.lookahead().type === _tokenizerTypes.types.parenR) {\\n        // let foo = (): number => {};\\n        this.expect(_tokenizerTypes.types.parenL);\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        var node = this.startNodeAt(startPos, startLoc);\\n        if (this.match(_tokenizerTypes.types.colon)) node.returnType = this.flowParseTypeAnnotation();\\n        this.expect(_tokenizerTypes.types.arrow);\\n        return this.parseArrowExpression(node, [], isAsync);\\n      } else {\\n        // let foo = (foo): number => {};\\n        var node = inner.call(this, startPos, startLoc, canBeArrow, isAsync, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n\\n        if (this.match(_tokenizerTypes.types.colon)) {\\n          var state = this.state.clone();\\n          try {\\n            return this.parseParenItem(node, startPos, startLoc, true);\\n          } catch (err) {\\n            if (err instanceof SyntaxError) {\\n              this.state = state;\\n              return node;\\n            } else {\\n              throw err;\\n            }\\n          }\\n        } else {\\n          return node;\\n        }\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../parser\\":5,\\"../tokenizer/types\\":26,\\"babel-runtime/helpers/interop-require-default\\":35}],21:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _xhtml = require(\\"./xhtml\\");\\n\\nvar _xhtml2 = _interopRequireDefault(_xhtml);\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilIdentifier = require(\\"../../util/identifier\\");\\n\\nvar _utilWhitespace = require(\\"../../util/whitespace\\");\\n\\nvar HEX_NUMBER = /^[\\\\da-fA-F]+$/;\\nvar DECIMAL_NUMBER = /^\\\\d+$/;\\n\\n_tokenizerContext.types.j_oTag = new _tokenizerContext.TokContext(\\"<tag\\", false);\\n_tokenizerContext.types.j_cTag = new _tokenizerContext.TokContext(\\"</tag\\", false);\\n_tokenizerContext.types.j_expr = new _tokenizerContext.TokContext(\\"<tag>...</tag>\\", true, true);\\n\\n_tokenizerTypes.types.jsxName = new _tokenizerTypes.TokenType(\\"jsxName\\");\\n_tokenizerTypes.types.jsxText = new _tokenizerTypes.TokenType(\\"jsxText\\", { beforeExpr: true });\\n_tokenizerTypes.types.jsxTagStart = new _tokenizerTypes.TokenType(\\"jsxTagStart\\");\\n_tokenizerTypes.types.jsxTagEnd = new _tokenizerTypes.TokenType(\\"jsxTagEnd\\");\\n\\n_tokenizerTypes.types.jsxTagStart.updateContext = function () {\\n  this.state.context.push(_tokenizerContext.types.j_expr); // treat as beginning of JSX expression\\n  this.state.context.push(_tokenizerContext.types.j_oTag); // start opening tag context\\n  this.state.exprAllowed = false;\\n};\\n\\n_tokenizerTypes.types.jsxTagEnd.updateContext = function (prevType) {\\n  var out = this.state.context.pop();\\n  if (out === _tokenizerContext.types.j_oTag && prevType === _tokenizerTypes.types.slash || out === _tokenizerContext.types.j_cTag) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = this.curContext() === _tokenizerContext.types.j_expr;\\n  } else {\\n    this.state.exprAllowed = true;\\n  }\\n};\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\n// Reads inline JSX contents token.\\n\\npp.jsxReadToken = function () {\\n  var out = \\"\\";\\n  var chunkStart = this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated JSX contents\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n\\n    switch (ch) {\\n      case 60: // \\"<\\"\\n      case 123:\\n        // \\"{\\"\\n        if (this.state.pos === this.state.start) {\\n          if (ch === 60 && this.state.exprAllowed) {\\n            ++this.state.pos;\\n            return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n          }\\n          return this.getTokenFromCode(ch);\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_tokenizerTypes.types.jsxText, out);\\n\\n      case 38:\\n        // \\"&\\"\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.jsxReadEntity();\\n        chunkStart = this.state.pos;\\n        break;\\n\\n      default:\\n        if (_utilWhitespace.isNewLine(ch)) {\\n          out += this.input.slice(chunkStart, this.state.pos);\\n          out += this.jsxReadNewLine(true);\\n          chunkStart = this.state.pos;\\n        } else {\\n          ++this.state.pos;\\n        }\\n    }\\n  }\\n};\\n\\npp.jsxReadNewLine = function (normalizeCRLF) {\\n  var ch = this.input.charCodeAt(this.state.pos);\\n  var out = undefined;\\n  ++this.state.pos;\\n  if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {\\n    ++this.state.pos;\\n    out = normalizeCRLF ? \\"\\\\n\\" : \\"\\\\r\\\\n\\";\\n  } else {\\n    out = String.fromCharCode(ch);\\n  }\\n  ++this.state.curLine;\\n  this.state.lineStart = this.state.pos;\\n\\n  return out;\\n};\\n\\npp.jsxReadString = function (quote) {\\n  var out = \\"\\";\\n  var chunkStart = ++this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated string constant\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n    if (ch === quote) break;\\n    if (ch === 38) {\\n      // \\"&\\"\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadEntity();\\n      chunkStart = this.state.pos;\\n    } else if (_utilWhitespace.isNewLine(ch)) {\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadNewLine(false);\\n      chunkStart = this.state.pos;\\n    } else {\\n      ++this.state.pos;\\n    }\\n  }\\n  out += this.input.slice(chunkStart, this.state.pos++);\\n  return this.finishToken(_tokenizerTypes.types.string, out);\\n};\\n\\npp.jsxReadEntity = function () {\\n  var str = \\"\\";\\n  var count = 0;\\n  var entity = undefined;\\n  var ch = this.input[this.state.pos];\\n\\n  var startPos = ++this.state.pos;\\n  while (this.state.pos < this.input.length && count++ < 10) {\\n    ch = this.input[this.state.pos++];\\n    if (ch === \\";\\") {\\n      if (str[0] === \\"#\\") {\\n        if (str[1] === \\"x\\") {\\n          str = str.substr(2);\\n          if (HEX_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 16));\\n        } else {\\n          str = str.substr(1);\\n          if (DECIMAL_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 10));\\n        }\\n      } else {\\n        entity = _xhtml2[\\"default\\"][str];\\n      }\\n      break;\\n    }\\n    str += ch;\\n  }\\n  if (!entity) {\\n    this.state.pos = startPos;\\n    return \\"&\\";\\n  }\\n  return entity;\\n};\\n\\n// Read a JSX identifier (valid tag or attribute name).\\n//\\n// Optimized version since JSX identifiers can\\"t contain\\n// escape characters and so can be read as single slice.\\n// Also assumes that first character was already checked\\n// by isIdentifierStart in readToken.\\n\\npp.jsxReadWord = function () {\\n  var ch = undefined;\\n  var start = this.state.pos;\\n  do {\\n    ch = this.input.charCodeAt(++this.state.pos);\\n  } while (_utilIdentifier.isIdentifierChar(ch) || ch === 45); // \\"-\\"\\n  return this.finishToken(_tokenizerTypes.types.jsxName, this.input.slice(start, this.state.pos));\\n};\\n\\n// Transforms JSX element name to string.\\n\\nfunction getQualifiedJSXName(object) {\\n  if (object.type === \\"JSXIdentifier\\") {\\n    return object.name;\\n  }\\n\\n  if (object.type === \\"JSXNamespacedName\\") {\\n    return object.namespace.name + \\":\\" + object.name.name;\\n  }\\n\\n  if (object.type === \\"JSXMemberExpression\\") {\\n    return getQualifiedJSXName(object.object) + \\".\\" + getQualifiedJSXName(object.property);\\n  }\\n}\\n\\n// Parse next token as JSX identifier\\n\\npp.jsxParseIdentifier = function () {\\n  var node = this.startNode();\\n  if (this.match(_tokenizerTypes.types.jsxName)) {\\n    node.name = this.state.value;\\n  } else if (this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"JSXIdentifier\\");\\n};\\n\\n// Parse namespaced identifier.\\n\\npp.jsxParseNamespacedName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var name = this.jsxParseIdentifier();\\n  if (!this.eat(_tokenizerTypes.types.colon)) return name;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.namespace = name;\\n  node.name = this.jsxParseIdentifier();\\n  return this.finishNode(node, \\"JSXNamespacedName\\");\\n};\\n\\n// Parses element name in any form - namespaced, member\\n// or single identifier.\\n\\npp.jsxParseElementName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.jsxParseNamespacedName();\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var newNode = this.startNodeAt(startPos, startLoc);\\n    newNode.object = node;\\n    newNode.property = this.jsxParseIdentifier();\\n    node = this.finishNode(newNode, \\"JSXMemberExpression\\");\\n  }\\n  return node;\\n};\\n\\n// Parses any type of JSX attribute value.\\n\\npp.jsxParseAttributeValue = function () {\\n  var node = undefined;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.braceL:\\n      node = this.jsxParseExpressionContainer();\\n      if (node.expression.type === \\"JSXEmptyExpression\\") {\\n        this.raise(node.start, \\"JSX attributes must only be assigned a non-empty expression\\");\\n      } else {\\n        return node;\\n      }\\n\\n    case _tokenizerTypes.types.jsxTagStart:\\n    case _tokenizerTypes.types.string:\\n      node = this.parseExprAtom();\\n      node.extra = null;\\n      return node;\\n\\n    default:\\n      this.raise(this.state.start, \\"JSX value should be either an expression or a quoted JSX text\\");\\n  }\\n};\\n\\n// JSXEmptyExpression is unique type since it doesn\'t actually parse anything,\\n// and so it should start at the end of last read token (left brace) and finish\\n// at the beginning of the next one (right brace).\\n\\npp.jsxParseEmptyExpression = function () {\\n  var node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc);\\n  return this.finishNodeAt(node, \\"JSXEmptyExpression\\", this.start, this.startLoc);\\n};\\n\\n// Parses JSX expression enclosed into curly brackets.\\n\\npp.jsxParseExpressionContainer = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.braceR)) {\\n    node.expression = this.jsxParseEmptyExpression();\\n  } else {\\n    node.expression = this.parseExpression();\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"JSXExpressionContainer\\");\\n};\\n\\n// Parses following JSX attribute name-value pair.\\n\\npp.jsxParseAttribute = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.braceL)) {\\n    this.expect(_tokenizerTypes.types.ellipsis);\\n    node.argument = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.braceR);\\n    return this.finishNode(node, \\"JSXSpreadAttribute\\");\\n  }\\n  node.name = this.jsxParseNamespacedName();\\n  node.value = this.eat(_tokenizerTypes.types.eq) ? this.jsxParseAttributeValue() : null;\\n  return this.finishNode(node, \\"JSXAttribute\\");\\n};\\n\\n// Parses JSX opening tag starting after \\"<\\".\\n\\npp.jsxParseOpeningElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.attributes = [];\\n  node.name = this.jsxParseElementName();\\n  while (!this.match(_tokenizerTypes.types.slash) && !this.match(_tokenizerTypes.types.jsxTagEnd)) {\\n    node.attributes.push(this.jsxParseAttribute());\\n  }\\n  node.selfClosing = this.eat(_tokenizerTypes.types.slash);\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXOpeningElement\\");\\n};\\n\\n// Parses JSX closing tag starting after \\"</\\".\\n\\npp.jsxParseClosingElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.name = this.jsxParseElementName();\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXClosingElement\\");\\n};\\n\\n// Parses entire JSX element, including it\\"s opening tag\\n// (starting after \\"<\\"), attributes, contents and closing tag.\\n\\npp.jsxParseElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  var children = [];\\n  var openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\\n  var closingElement = null;\\n\\n  if (!openingElement.selfClosing) {\\n    contents: for (;;) {\\n      switch (this.state.type) {\\n        case _tokenizerTypes.types.jsxTagStart:\\n          startPos = this.state.start;startLoc = this.state.startLoc;\\n          this.next();\\n          if (this.eat(_tokenizerTypes.types.slash)) {\\n            closingElement = this.jsxParseClosingElementAt(startPos, startLoc);\\n            break contents;\\n          }\\n          children.push(this.jsxParseElementAt(startPos, startLoc));\\n          break;\\n\\n        case _tokenizerTypes.types.jsxText:\\n          children.push(this.parseExprAtom());\\n          break;\\n\\n        case _tokenizerTypes.types.braceL:\\n          children.push(this.jsxParseExpressionContainer());\\n          break;\\n\\n        default:\\n          this.unexpected();\\n      }\\n    }\\n\\n    if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\\n      this.raise(closingElement.start, \\"Expected corresponding JSX closing tag for <\\" + getQualifiedJSXName(openingElement.name) + \\">\\");\\n    }\\n  }\\n\\n  node.openingElement = openingElement;\\n  node.closingElement = closingElement;\\n  node.children = children;\\n  if (this.match(_tokenizerTypes.types.relational) && this.state.value === \\"<\\") {\\n    this.raise(this.state.start, \\"Adjacent JSX elements must be wrapped in an enclosing tag\\");\\n  }\\n  return this.finishNode(node, \\"JSXElement\\");\\n};\\n\\n// Parses entire JSX element from current position.\\n\\npp.jsxParseElement = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  this.next();\\n  return this.jsxParseElementAt(startPos, startLoc);\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  instance.extend(\\"parseExprAtom\\", function (inner) {\\n    return function (refShortHandDefaultPos) {\\n      if (this.match(_tokenizerTypes.types.jsxText)) {\\n        var node = this.parseLiteral(this.state.value, \\"JSXText\\");\\n        // https://github.com/babel/babel/issues/2078\\n        node.extra = null;\\n        return node;\\n      } else if (this.match(_tokenizerTypes.types.jsxTagStart)) {\\n        return this.jsxParseElement();\\n      } else {\\n        return inner.call(this, refShortHandDefaultPos);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      var context = this.curContext();\\n\\n      if (context === _tokenizerContext.types.j_expr) {\\n        return this.jsxReadToken();\\n      }\\n\\n      if (context === _tokenizerContext.types.j_oTag || context === _tokenizerContext.types.j_cTag) {\\n        if (_utilIdentifier.isIdentifierStart(code)) {\\n          return this.jsxReadWord();\\n        }\\n\\n        if (code === 62) {\\n          ++this.state.pos;\\n          return this.finishToken(_tokenizerTypes.types.jsxTagEnd);\\n        }\\n\\n        if ((code === 34 || code === 39) && context === _tokenizerContext.types.j_oTag) {\\n          return this.jsxReadString(code);\\n        }\\n      }\\n\\n      if (code === 60 && this.state.exprAllowed) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n      }\\n\\n      return inner.call(this, code);\\n    };\\n  });\\n\\n  instance.extend(\\"updateContext\\", function (inner) {\\n    return function (prevType) {\\n      if (this.match(_tokenizerTypes.types.braceL)) {\\n        var curContext = this.curContext();\\n        if (curContext === _tokenizerContext.types.j_oTag) {\\n          this.state.context.push(_tokenizerContext.types.b_expr);\\n        } else if (curContext === _tokenizerContext.types.j_expr) {\\n          this.state.context.push(_tokenizerContext.types.b_tmpl);\\n        } else {\\n          inner.call(this, prevType);\\n        }\\n        this.state.exprAllowed = true;\\n      } else if (this.match(_tokenizerTypes.types.slash) && prevType === _tokenizerTypes.types.jsxTagStart) {\\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\\n        this.state.context.push(_tokenizerContext.types.j_cTag); // reconsider as closing tag context\\n        this.state.exprAllowed = false;\\n      } else {\\n        return inner.call(this, prevType);\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26,\\"../../util/identifier\\":27,\\"../../util/whitespace\\":29,\\"./xhtml\\":22,\\"babel-runtime/helpers/interop-require-default\\":35}],22:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = {\\n  quot: \\"\\\\\\"\\",\\n  amp: \\"&\\",\\n  apos: \\"\'\\",\\n  lt: \\"<\\",\\n  gt: \\">\\",\\n  nbsp: \\"\xa0\\",\\n  iexcl: \\"¡\\",\\n  cent: \\"¢\\",\\n  pound: \\"£\\",\\n  curren: \\"¤\\",\\n  yen: \\"¥\\",\\n  brvbar: \\"¦\\",\\n  sect: \\"§\\",\\n  uml: \\"¨\\",\\n  copy: \\"©\\",\\n  ordf: \\"ª\\",\\n  laquo: \\"«\\",\\n  not: \\"¬\\",\\n  shy: \\"\xad\\",\\n  reg: \\"®\\",\\n  macr: \\"¯\\",\\n  deg: \\"°\\",\\n  plusmn: \\"±\\",\\n  sup2: \\"²\\",\\n  sup3: \\"³\\",\\n  acute: \\"´\\",\\n  micro: \\"µ\\",\\n  para: \\"¶\\",\\n  middot: \\"·\\",\\n  cedil: \\"¸\\",\\n  sup1: \\"¹\\",\\n  ordm: \\"º\\",\\n  raquo: \\"»\\",\\n  frac14: \\"¼\\",\\n  frac12: \\"½\\",\\n  frac34: \\"¾\\",\\n  iquest: \\"¿\\",\\n  Agrave: \\"À\\",\\n  Aacute: \\"Á\\",\\n  Acirc: \\"Â\\",\\n  Atilde: \\"Ã\\",\\n  Auml: \\"Ä\\",\\n  Aring: \\"Å\\",\\n  AElig: \\"Æ\\",\\n  Ccedil: \\"Ç\\",\\n  Egrave: \\"È\\",\\n  Eacute: \\"É\\",\\n  Ecirc: \\"Ê\\",\\n  Euml: \\"Ë\\",\\n  Igrave: \\"Ì\\",\\n  Iacute: \\"Í\\",\\n  Icirc: \\"Î\\",\\n  Iuml: \\"Ï\\",\\n  ETH: \\"Ð\\",\\n  Ntilde: \\"Ñ\\",\\n  Ograve: \\"Ò\\",\\n  Oacute: \\"Ó\\",\\n  Ocirc: \\"Ô\\",\\n  Otilde: \\"Õ\\",\\n  Ouml: \\"Ö\\",\\n  times: \\"×\\",\\n  Oslash: \\"Ø\\",\\n  Ugrave: \\"Ù\\",\\n  Uacute: \\"Ú\\",\\n  Ucirc: \\"Û\\",\\n  Uuml: \\"Ü\\",\\n  Yacute: \\"Ý\\",\\n  THORN: \\"Þ\\",\\n  szlig: \\"ß\\",\\n  agrave: \\"à\\",\\n  aacute: \\"á\\",\\n  acirc: \\"â\\",\\n  atilde: \\"ã\\",\\n  auml: \\"ä\\",\\n  aring: \\"å\\",\\n  aelig: \\"æ\\",\\n  ccedil: \\"ç\\",\\n  egrave: \\"è\\",\\n  eacute: \\"é\\",\\n  ecirc: \\"ê\\",\\n  euml: \\"ë\\",\\n  igrave: \\"ì\\",\\n  iacute: \\"í\\",\\n  icirc: \\"î\\",\\n  iuml: \\"ï\\",\\n  eth: \\"ð\\",\\n  ntilde: \\"ñ\\",\\n  ograve: \\"ò\\",\\n  oacute: \\"ó\\",\\n  ocirc: \\"ô\\",\\n  otilde: \\"õ\\",\\n  ouml: \\"ö\\",\\n  divide: \\"÷\\",\\n  oslash: \\"ø\\",\\n  ugrave: \\"ù\\",\\n  uacute: \\"ú\\",\\n  ucirc: \\"û\\",\\n  uuml: \\"ü\\",\\n  yacute: \\"ý\\",\\n  thorn: \\"þ\\",\\n  yuml: \\"ÿ\\",\\n  OElig: \\"Œ\\",\\n  oelig: \\"œ\\",\\n  Scaron: \\"Š\\",\\n  scaron: \\"š\\",\\n  Yuml: \\"Ÿ\\",\\n  fnof: \\"ƒ\\",\\n  circ: \\"ˆ\\",\\n  tilde: \\"˜\\",\\n  Alpha: \\"Α\\",\\n  Beta: \\"Β\\",\\n  Gamma: \\"Γ\\",\\n  Delta: \\"Δ\\",\\n  Epsilon: \\"Ε\\",\\n  Zeta: \\"Ζ\\",\\n  Eta: \\"Η\\",\\n  Theta: \\"Θ\\",\\n  Iota: \\"Ι\\",\\n  Kappa: \\"Κ\\",\\n  Lambda: \\"Λ\\",\\n  Mu: \\"Μ\\",\\n  Nu: \\"Ν\\",\\n  Xi: \\"Ξ\\",\\n  Omicron: \\"Ο\\",\\n  Pi: \\"Π\\",\\n  Rho: \\"Ρ\\",\\n  Sigma: \\"Σ\\",\\n  Tau: \\"Τ\\",\\n  Upsilon: \\"Υ\\",\\n  Phi: \\"Φ\\",\\n  Chi: \\"Χ\\",\\n  Psi: \\"Ψ\\",\\n  Omega: \\"Ω\\",\\n  alpha: \\"α\\",\\n  beta: \\"β\\",\\n  gamma: \\"γ\\",\\n  delta: \\"δ\\",\\n  epsilon: \\"ε\\",\\n  zeta: \\"ζ\\",\\n  eta: \\"η\\",\\n  theta: \\"θ\\",\\n  iota: \\"ι\\",\\n  kappa: \\"κ\\",\\n  lambda: \\"λ\\",\\n  mu: \\"μ\\",\\n  nu: \\"ν\\",\\n  xi: \\"ξ\\",\\n  omicron: \\"ο\\",\\n  pi: \\"π\\",\\n  rho: \\"ρ\\",\\n  sigmaf: \\"ς\\",\\n  sigma: \\"σ\\",\\n  tau: \\"τ\\",\\n  upsilon: \\"υ\\",\\n  phi: \\"φ\\",\\n  chi: \\"χ\\",\\n  psi: \\"ψ\\",\\n  omega: \\"ω\\",\\n  thetasym: \\"ϑ\\",\\n  upsih: \\"ϒ\\",\\n  piv: \\"ϖ\\",\\n  ensp: \\"\u2002\\",\\n  emsp: \\"\u2003\\",\\n  thinsp: \\"\u2009\\",\\n  zwnj: \\"\u200c\\",\\n  zwj: \\"\u200d\\",\\n  lrm: \\"\u200e\\",\\n  rlm: \\"\u200f\\",\\n  ndash: \\"–\\",\\n  mdash: \\"—\\",\\n  lsquo: \\"‘\\",\\n  rsquo: \\"’\\",\\n  sbquo: \\"‚\\",\\n  ldquo: \\"“\\",\\n  rdquo: \\"”\\",\\n  bdquo: \\"„\\",\\n  dagger: \\"†\\",\\n  Dagger: \\"‡\\",\\n  bull: \\"•\\",\\n  hellip: \\"…\\",\\n  permil: \\"‰\\",\\n  prime: \\"′\\",\\n  Prime: \\"″\\",\\n  lsaquo: \\"‹\\",\\n  rsaquo: \\"›\\",\\n  oline: \\"‾\\",\\n  frasl: \\"⁄\\",\\n  euro: \\"€\\",\\n  image: \\"ℑ\\",\\n  weierp: \\"℘\\",\\n  real: \\"ℜ\\",\\n  trade: \\"™\\",\\n  alefsym: \\"ℵ\\",\\n  larr: \\"←\\",\\n  uarr: \\"↑\\",\\n  rarr: \\"→\\",\\n  darr: \\"↓\\",\\n  harr: \\"↔\\",\\n  crarr: \\"↵\\",\\n  lArr: \\"⇐\\",\\n  uArr: \\"⇑\\",\\n  rArr: \\"⇒\\",\\n  dArr: \\"⇓\\",\\n  hArr: \\"⇔\\",\\n  forall: \\"∀\\",\\n  part: \\"∂\\",\\n  exist: \\"∃\\",\\n  empty: \\"∅\\",\\n  nabla: \\"∇\\",\\n  isin: \\"∈\\",\\n  notin: \\"∉\\",\\n  ni: \\"∋\\",\\n  prod: \\"∏\\",\\n  sum: \\"∑\\",\\n  minus: \\"−\\",\\n  lowast: \\"∗\\",\\n  radic: \\"√\\",\\n  prop: \\"∝\\",\\n  infin: \\"∞\\",\\n  ang: \\"∠\\",\\n  and: \\"∧\\",\\n  or: \\"∨\\",\\n  cap: \\"∩\\",\\n  cup: \\"∪\\",\\n  \\"int\\": \\"∫\\",\\n  there4: \\"∴\\",\\n  sim: \\"∼\\",\\n  cong: \\"≅\\",\\n  asymp: \\"≈\\",\\n  ne: \\"≠\\",\\n  equiv: \\"≡\\",\\n  le: \\"≤\\",\\n  ge: \\"≥\\",\\n  sub: \\"⊂\\",\\n  sup: \\"⊃\\",\\n  nsub: \\"⊄\\",\\n  sube: \\"⊆\\",\\n  supe: \\"⊇\\",\\n  oplus: \\"⊕\\",\\n  otimes: \\"⊗\\",\\n  perp: \\"⊥\\",\\n  sdot: \\"⋅\\",\\n  lceil: \\"⌈\\",\\n  rceil: \\"⌉\\",\\n  lfloor: \\"⌊\\",\\n  rfloor: \\"⌋\\",\\n  lang: \\"〈\\",\\n  rang: \\"〉\\",\\n  loz: \\"◊\\",\\n  spades: \\"♠\\",\\n  clubs: \\"♣\\",\\n  hearts: \\"♥\\",\\n  diams: \\"♦\\"\\n};\\nmodule.exports = exports[\\"default\\"];\\n},{}],23:[function(require,module,exports){\\n/* @flow */\\n\\n// The algorithm used to determine whether a regexp can appear at a\\n// given point in the program is loosely based on sweet.js\' approach.\\n// See https://github.com/mozilla/sweet.js/wiki/design\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar TokContext = function TokContext(token /*: string*/, isExpr /*:: ?: boolean*/, preserveSpace /*:: ?: boolean*/, override /*:: ?: Function*/) {\\n  _classCallCheck(this, TokContext);\\n\\n  this.token = token;\\n  this.isExpr = !!isExpr;\\n  this.preserveSpace = !!preserveSpace;\\n  this.override = override;\\n};\\n\\nexports.TokContext = TokContext;\\nvar types /*: {\\n            [key: string]: TokContext;\\n          }*/ = {\\n  b_stat: new TokContext(\\"{\\", false),\\n  b_expr: new TokContext(\\"{\\", true),\\n  b_tmpl: new TokContext(\\"${\\", true),\\n  p_stat: new TokContext(\\"(\\", false),\\n  p_expr: new TokContext(\\"(\\", true),\\n  q_tmpl: new TokContext(\\"`\\", true, true, function (p) {\\n    return p.readTmplToken();\\n  }),\\n  f_expr: new TokContext(\\"function\\", true)\\n};\\n\\nexports.types = types;\\n// Token-specific context update code\\n\\n_types.types.parenR.updateContext = _types.types.braceR.updateContext = function () {\\n  if (this.state.context.length === 1) {\\n    this.state.exprAllowed = true;\\n    return;\\n  }\\n\\n  var out = this.state.context.pop();\\n  if (out === types.b_stat && this.curContext() === types.f_expr) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = false;\\n  } else if (out === types.b_tmpl) {\\n    this.state.exprAllowed = true;\\n  } else {\\n    this.state.exprAllowed = !out.isExpr;\\n  }\\n};\\n\\n_types.types.name.updateContext = function (prevType) {\\n  this.state.exprAllowed = false;\\n\\n  if (prevType === _types.types._let || prevType === _types.types._const || prevType === _types.types._var) {\\n    if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.end))) {\\n      this.state.exprAllowed = true;\\n    }\\n  }\\n};\\n\\n_types.types.braceL.updateContext = function (prevType) {\\n  this.state.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.dollarBraceL.updateContext = function () {\\n  this.state.context.push(types.b_tmpl);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.parenL.updateContext = function (prevType) {\\n  var statementParens = prevType === _types.types._if || prevType === _types.types._for || prevType === _types.types._with || prevType === _types.types._while;\\n  this.state.context.push(statementParens ? types.p_stat : types.p_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.incDec.updateContext = function () {\\n  // tokExprAllowed stays unchanged\\n};\\n\\n_types.types._function.updateContext = function () {\\n  if (this.curContext() !== types.b_stat) {\\n    this.state.context.push(types.f_expr);\\n  }\\n\\n  this.state.exprAllowed = false;\\n};\\n\\n_types.types.backQuote.updateContext = function () {\\n  if (this.curContext() === types.q_tmpl) {\\n    this.state.context.pop();\\n  } else {\\n    this.state.context.push(types.q_tmpl);\\n  }\\n  this.state.exprAllowed = false;\\n};\\n},{\\"../util/whitespace\\":29,\\"./types\\":26,\\"babel-runtime/helpers/class-call-check\\":33}],24:[function(require,module,exports){\\n/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar _state = require(\\"./state\\");\\n\\nvar _state2 = _interopRequireDefault(_state);\\n\\n// Object type used to represent tokens. Note that normally, tokens\\n// simply exist as properties on the parser object. This is only\\n// used for the onToken callback and the external tokenizer.\\n\\n/*:: import type { TokenType } from \\"./types\\";*/\\nvar Token = function Token(state) {\\n  _classCallCheck(this, Token);\\n\\n  this.type = state.type;\\n  this.value = state.value;\\n  this.start = state.start;\\n  this.end = state.end;\\n  this.loc = new _utilLocation.SourceLocation(state.startLoc, state.endLoc);\\n}\\n\\n// ## Tokenizer\\n\\n;\\n\\nexports.Token = Token;\\nfunction codePointToString(code) {\\n  // UTF-16 Decoding\\n  if (code <= 0xFFFF) {\\n    return String.fromCharCode(code);\\n  } else {\\n    return String.fromCharCode((code - 0x10000 >> 10) + 0xD800, (code - 0x10000 & 1023) + 0xDC00);\\n  }\\n}\\n\\nvar Tokenizer = (function () {\\n  function Tokenizer(options, input) {\\n    _classCallCheck(this, Tokenizer);\\n\\n    this.state = new _state2[\\"default\\"]();\\n    this.state.init(options, input);\\n  }\\n\\n  // Move to the next token\\n\\n  Tokenizer.prototype.next = function next() {\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(new Token(this.state));\\n    }\\n\\n    this.state.lastTokEnd = this.state.end;\\n    this.state.lastTokStart = this.state.start;\\n    this.state.lastTokEndLoc = this.state.endLoc;\\n    this.state.lastTokStartLoc = this.state.startLoc;\\n    this.nextToken();\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.eat = function eat(type) {\\n    if (this.match(type)) {\\n      this.next();\\n      return true;\\n    } else {\\n      return false;\\n    }\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.match = function match(type) {\\n    return this.state.type === type;\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.isKeyword = function isKeyword(word) {\\n    return _utilIdentifier.isKeyword(word);\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.lookahead = function lookahead() {\\n    var old = this.state;\\n    this.state = old.clone(true);\\n\\n    this.isLookahead = true;\\n    this.next();\\n    this.isLookahead = false;\\n\\n    var curr = this.state.clone(true);\\n    this.state = old;\\n    return curr;\\n  };\\n\\n  // Toggle strict mode. Re-reads the next number or string to please\\n  // pedantic tests (`\\"use strict\\"; 010;` should fail).\\n\\n  Tokenizer.prototype.setStrict = function setStrict(strict) {\\n    this.state.strict = strict;\\n    if (!this.match(_types.types.num) && !this.match(_types.types.string)) return;\\n    this.state.pos = this.state.start;\\n    while (this.state.pos < this.state.lineStart) {\\n      this.state.lineStart = this.input.lastIndexOf(\\"\\\\n\\", this.state.lineStart - 2) + 1;\\n      --this.state.curLine;\\n    }\\n    this.nextToken();\\n  };\\n\\n  Tokenizer.prototype.curContext = function curContext() {\\n    return this.state.context[this.state.context.length - 1];\\n  };\\n\\n  // Read a single token, updating the parser object\'s token-related\\n  // properties.\\n\\n  Tokenizer.prototype.nextToken = function nextToken() {\\n    var curContext = this.curContext();\\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\\n\\n    this.state.containsOctal = false;\\n    this.state.octalPosition = null;\\n    this.state.start = this.state.pos;\\n    this.state.startLoc = this.state.curPosition();\\n    if (this.state.pos >= this.input.length) return this.finishToken(_types.types.eof);\\n\\n    if (curContext.override) {\\n      return curContext.override(this);\\n    } else {\\n      return this.readToken(this.fullCharCodeAtPos());\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken = function readToken(code) {\\n    // Identifier or keyword. \'\\\\uXXXX\' sequences are allowed in\\n    // identifiers, so \'\\\\\' also dispatches to that.\\n    if (_utilIdentifier.isIdentifierStart(code) || code === 92 /* \'\\\\\' */) {\\n        return this.readWord();\\n      } else {\\n      return this.getTokenFromCode(code);\\n    }\\n  };\\n\\n  Tokenizer.prototype.fullCharCodeAtPos = function fullCharCodeAtPos() {\\n    var code = this.input.charCodeAt(this.state.pos);\\n    if (code <= 0xd7ff || code >= 0xe000) return code;\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    return (code << 10) + next - 0x35fdc00;\\n  };\\n\\n  Tokenizer.prototype.pushComment = function pushComment(block, text, start, end, startLoc, endLoc) {\\n    var comment = {\\n      type: block ? \\"CommentBlock\\" : \\"CommentLine\\",\\n      value: text,\\n      start: start,\\n      end: end,\\n      loc: new _utilLocation.SourceLocation(startLoc, endLoc)\\n    };\\n\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(comment);\\n      this.state.comments.push(comment);\\n    }\\n\\n    this.addComment(comment);\\n  };\\n\\n  Tokenizer.prototype.skipBlockComment = function skipBlockComment() {\\n    var startLoc = this.state.curPosition();\\n    var start = this.state.pos,\\n        end = this.input.indexOf(\\"*/\\", this.state.pos += 2);\\n    if (end === -1) this.raise(this.state.pos - 2, \\"Unterminated comment\\");\\n\\n    this.state.pos = end + 2;\\n    _utilWhitespace.lineBreakG.lastIndex = start;\\n    var match = undefined;\\n    while ((match = _utilWhitespace.lineBreakG.exec(this.input)) && match.index < this.state.pos) {\\n      ++this.state.curLine;\\n      this.state.lineStart = match.index + match[0].length;\\n    }\\n\\n    this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  Tokenizer.prototype.skipLineComment = function skipLineComment(startSkip) {\\n    var start = this.state.pos;\\n    var startLoc = this.state.curPosition();\\n    var ch = this.input.charCodeAt(this.state.pos += startSkip);\\n    while (this.state.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {\\n      ++this.state.pos;\\n      ch = this.input.charCodeAt(this.state.pos);\\n    }\\n\\n    this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  // Called at the start of the parse and after every token. Skips\\n  // whitespace and comments, and.\\n\\n  Tokenizer.prototype.skipSpace = function skipSpace() {\\n    loop: while (this.state.pos < this.input.length) {\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      switch (ch) {\\n        case 32:case 160:\\n          // \' \'\\n          ++this.state.pos;\\n          break;\\n\\n        case 13:\\n          if (this.input.charCodeAt(this.state.pos + 1) === 10) {\\n            ++this.state.pos;\\n          }\\n\\n        case 10:case 8232:case 8233:\\n          ++this.state.pos;\\n          ++this.state.curLine;\\n          this.state.lineStart = this.state.pos;\\n          break;\\n\\n        case 47:\\n          // \'/\'\\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\\n            case 42:\\n              // \'*\'\\n              this.skipBlockComment();\\n              break;\\n\\n            case 47:\\n              this.skipLineComment(2);\\n              break;\\n\\n            default:\\n              break loop;\\n          }\\n          break;\\n\\n        default:\\n          if (ch > 8 && ch < 14 || ch >= 5760 && _utilWhitespace.nonASCIIwhitespace.test(String.fromCharCode(ch))) {\\n            ++this.state.pos;\\n          } else {\\n            break loop;\\n          }\\n      }\\n    }\\n  };\\n\\n  // Called at the end of every token. Sets `end`, `val`, and\\n  // maintains `context` and `exprAllowed`, and skips the space after\\n  // the token, so that the next one\'s `start` will point at the\\n  // right position.\\n\\n  Tokenizer.prototype.finishToken = function finishToken(type, val) {\\n    this.state.end = this.state.pos;\\n    this.state.endLoc = this.state.curPosition();\\n    var prevType = this.state.type;\\n    this.state.type = type;\\n    this.state.value = val;\\n\\n    this.updateContext(prevType);\\n  };\\n\\n  // ### Token reading\\n\\n  // This is the function that is called to fetch the next token. It\\n  // is somewhat obscure, because it works in character codes rather\\n  // than characters, and because operator parsing has been inlined\\n  // into it.\\n  //\\n  // All in the name of speed.\\n  //\\n\\n  Tokenizer.prototype.readToken_dot = function readToken_dot() {\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next >= 48 && next <= 57) {\\n      return this.readNumber(true);\\n    }\\n\\n    var next2 = this.input.charCodeAt(this.state.pos + 2);\\n    if (next === 46 && next2 === 46) {\\n      // 46 = dot \'.\'\\n      this.state.pos += 3;\\n      return this.finishToken(_types.types.ellipsis);\\n    } else {\\n      ++this.state.pos;\\n      return this.finishToken(_types.types.dot);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_slash = function readToken_slash() {\\n    // \'/\'\\n    if (this.state.exprAllowed) {\\n      ++this.state.pos;\\n      return this.readRegexp();\\n    }\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.slash, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_mult_modulo = function readToken_mult_modulo(code) {\\n    // \'%*\'\\n    var type = code === 42 ? _types.types.star : _types.types.modulo;\\n    var width = 1;\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === 42 && this.hasPlugin(\\"exponentiationOperator\\")) {\\n      // \'*\'\\n      width++;\\n      next = this.input.charCodeAt(this.state.pos + 2);\\n      type = _types.types.exponent;\\n    }\\n\\n    if (next === 61) {\\n      width++;\\n      type = _types.types.assign;\\n    }\\n\\n    return this.finishOp(type, width);\\n  };\\n\\n  Tokenizer.prototype.readToken_pipe_amp = function readToken_pipe_amp(code) {\\n    // \'|&\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === code) return this.finishOp(code === 124 ? _types.types.logicalOR : _types.types.logicalAND, 2);\\n    if (next === 61) return this.finishOp(_types.types.assign, 2);\\n    return this.finishOp(code === 124 ? _types.types.bitwiseOR : _types.types.bitwiseAND, 1);\\n  };\\n\\n  Tokenizer.prototype.readToken_caret = function readToken_caret() {\\n    // \'^\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.bitwiseXOR, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_plus_min = function readToken_plus_min(code) {\\n    // \'+-\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === code) {\\n      if (next === 45 && this.input.charCodeAt(this.state.pos + 2) === 62 && _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.pos))) {\\n        // A `-->` line comment\\n        this.skipLineComment(3);\\n        this.skipSpace();\\n        return this.nextToken();\\n      }\\n      return this.finishOp(_types.types.incDec, 2);\\n    }\\n\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.plusMin, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_lt_gt = function readToken_lt_gt(code) {\\n    // \'<>\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    var size = 1;\\n\\n    if (next === code) {\\n      size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2;\\n      if (this.input.charCodeAt(this.state.pos + size) === 61) return this.finishOp(_types.types.assign, size + 1);\\n      return this.finishOp(_types.types.bitShift, size);\\n    }\\n\\n    if (next === 33 && code === 60 && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) {\\n      if (this.inModule) this.unexpected();\\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\\n      this.skipLineComment(4);\\n      this.skipSpace();\\n      return this.nextToken();\\n    }\\n\\n    if (next === 61) {\\n      size = this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2;\\n    }\\n\\n    return this.finishOp(_types.types.relational, size);\\n  };\\n\\n  Tokenizer.prototype.readToken_eq_excl = function readToken_eq_excl(code) {\\n    // \'=!\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) return this.finishOp(_types.types.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);\\n    if (code === 61 && next === 62) {\\n      // \'=>\'\\n      this.state.pos += 2;\\n      return this.finishToken(_types.types.arrow);\\n    }\\n    return this.finishOp(code === 61 ? _types.types.eq : _types.types.prefix, 1);\\n  };\\n\\n  Tokenizer.prototype.getTokenFromCode = function getTokenFromCode(code) {\\n    switch (code) {\\n      // The interpretation of a dot depends on whether it is followed\\n      // by a digit or another two dots.\\n      case 46:\\n        // \'.\'\\n        return this.readToken_dot();\\n\\n      // Punctuation tokens.\\n      case 40:\\n        ++this.state.pos;return this.finishToken(_types.types.parenL);\\n      case 41:\\n        ++this.state.pos;return this.finishToken(_types.types.parenR);\\n      case 59:\\n        ++this.state.pos;return this.finishToken(_types.types.semi);\\n      case 44:\\n        ++this.state.pos;return this.finishToken(_types.types.comma);\\n      case 91:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketL);\\n      case 93:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketR);\\n      case 123:\\n        ++this.state.pos;return this.finishToken(_types.types.braceL);\\n      case 125:\\n        ++this.state.pos;return this.finishToken(_types.types.braceR);\\n\\n      case 58:\\n        if (this.hasPlugin(\\"functionBind\\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\\n          return this.finishOp(_types.types.doubleColon, 2);\\n        } else {\\n          ++this.state.pos;\\n          return this.finishToken(_types.types.colon);\\n        }\\n\\n      case 63:\\n        ++this.state.pos;return this.finishToken(_types.types.question);\\n      case 64:\\n        ++this.state.pos;return this.finishToken(_types.types.at);\\n\\n      case 96:\\n        // \'`\'\\n        ++this.state.pos;\\n        return this.finishToken(_types.types.backQuote);\\n\\n      case 48:\\n        // \'0\'\\n        var next = this.input.charCodeAt(this.state.pos + 1);\\n        if (next === 120 || next === 88) return this.readRadixNumber(16); // \'0x\', \'0X\' - hex number\\n        if (next === 111 || next === 79) return this.readRadixNumber(8); // \'0o\', \'0O\' - octal number\\n        if (next === 98 || next === 66) return this.readRadixNumber(2); // \'0b\', \'0B\' - binary number\\n      // Anything else beginning with a digit is an integer, octal\\n      // number, or float.\\n      case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:\\n        // 1-9\\n        return this.readNumber(false);\\n\\n      // Quotes produce strings.\\n      case 34:case 39:\\n        // \'\\"\', \\"\'\\"\\n        return this.readString(code);\\n\\n      // Operators are parsed inline in tiny state machines. \'=\' (61) is\\n      // often referred to. `finishOp` simply skips the amount of\\n      // characters it is given as second argument, and returns a token\\n      // of the type given by its first argument.\\n\\n      case 47:\\n        // \'/\'\\n        return this.readToken_slash();\\n\\n      case 37:case 42:\\n        // \'%*\'\\n        return this.readToken_mult_modulo(code);\\n\\n      case 124:case 38:\\n        // \'|&\'\\n        return this.readToken_pipe_amp(code);\\n\\n      case 94:\\n        // \'^\'\\n        return this.readToken_caret();\\n\\n      case 43:case 45:\\n        // \'+-\'\\n        return this.readToken_plus_min(code);\\n\\n      case 60:case 62:\\n        // \'<>\'\\n        return this.readToken_lt_gt(code);\\n\\n      case 61:case 33:\\n        // \'=!\'\\n        return this.readToken_eq_excl(code);\\n\\n      case 126:\\n        // \'~\'\\n        return this.finishOp(_types.types.prefix, 1);\\n    }\\n\\n    this.raise(this.state.pos, \\"Unexpected character \'\\" + codePointToString(code) + \\"\'\\");\\n  };\\n\\n  Tokenizer.prototype.finishOp = function finishOp(type, size) {\\n    var str = this.input.slice(this.state.pos, this.state.pos + size);\\n    this.state.pos += size;\\n    return this.finishToken(type, str);\\n  };\\n\\n  Tokenizer.prototype.readRegexp = function readRegexp() {\\n    var escaped = undefined,\\n        inClass = undefined,\\n        start = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(start, \\"Unterminated regular expression\\");\\n      var ch = this.input.charAt(this.state.pos);\\n      if (_utilWhitespace.lineBreak.test(ch)) {\\n        this.raise(start, \\"Unterminated regular expression\\");\\n      }\\n      if (escaped) {\\n        escaped = false;\\n      } else {\\n        if (ch === \\"[\\") {\\n          inClass = true;\\n        } else if (ch === \\"]\\" && inClass) {\\n          inClass = false;\\n        } else if (ch === \\"/\\" && !inClass) {\\n          break;\\n        }\\n        escaped = ch === \\"\\\\\\\\\\";\\n      }\\n      ++this.state.pos;\\n    }\\n    var content = this.input.slice(start, this.state.pos);\\n    ++this.state.pos;\\n    // Need to use `readWord1` because \'\\\\uXXXX\' sequences are allowed\\n    // here (don\'t ask).\\n    var mods = this.readWord1();\\n    if (mods) {\\n      var validFlags = /^[gmsiyu]*$/;\\n      if (!validFlags.test(mods)) this.raise(start, \\"Invalid regular expression flag\\");\\n    }\\n    return this.finishToken(_types.types.regexp, {\\n      pattern: content,\\n      flags: mods\\n    });\\n  };\\n\\n  // Read an integer in the given radix. Return null if zero digits\\n  // were read, the integer value otherwise. When `len` is given, this\\n  // will return `null` unless the integer has exactly `len` digits.\\n\\n  Tokenizer.prototype.readInt = function readInt(radix, len) {\\n    var start = this.state.pos,\\n        total = 0;\\n    for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {\\n      var code = this.input.charCodeAt(this.state.pos),\\n          val = undefined;\\n      if (code >= 97) {\\n        val = code - 97 + 10; // a\\n      } else if (code >= 65) {\\n          val = code - 65 + 10; // A\\n        } else if (code >= 48 && code <= 57) {\\n            val = code - 48; // 0-9\\n          } else {\\n              val = Infinity;\\n            }\\n      if (val >= radix) break;\\n      ++this.state.pos;\\n      total = total * radix + val;\\n    }\\n    if (this.state.pos === start || len != null && this.state.pos - start !== len) return null;\\n\\n    return total;\\n  };\\n\\n  Tokenizer.prototype.readRadixNumber = function readRadixNumber(radix) {\\n    this.state.pos += 2; // 0x\\n    var val = this.readInt(radix);\\n    if (val == null) this.raise(this.state.start + 2, \\"Expected number in radix \\" + radix);\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read an integer, octal integer, or floating-point number.\\n\\n  Tokenizer.prototype.readNumber = function readNumber(startsWithDot) {\\n    var start = this.state.pos,\\n        isFloat = false,\\n        octal = this.input.charCodeAt(this.state.pos) === 48;\\n    if (!startsWithDot && this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n    var next = this.input.charCodeAt(this.state.pos);\\n    if (next === 46) {\\n      // \'.\'\\n      ++this.state.pos;\\n      this.readInt(10);\\n      isFloat = true;\\n      next = this.input.charCodeAt(this.state.pos);\\n    }\\n    if (next === 69 || next === 101) {\\n      // \'eE\'\\n      next = this.input.charCodeAt(++this.state.pos);\\n      if (next === 43 || next === 45) ++this.state.pos; // \'+-\'\\n      if (this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n      isFloat = true;\\n    }\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n\\n    var str = this.input.slice(start, this.state.pos),\\n        val = undefined;\\n    if (isFloat) {\\n      val = parseFloat(str);\\n    } else if (!octal || str.length === 1) {\\n      val = parseInt(str, 10);\\n    } else if (/[89]/.test(str) || this.state.strict) {\\n      this.raise(start, \\"Invalid number\\");\\n    } else {\\n      val = parseInt(str, 8);\\n    }\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read a string value, interpreting backslash-escapes.\\n\\n  Tokenizer.prototype.readCodePoint = function readCodePoint() {\\n    var ch = this.input.charCodeAt(this.state.pos),\\n        code = undefined;\\n\\n    if (ch === 123) {\\n      var codePos = ++this.state.pos;\\n      code = this.readHexChar(this.input.indexOf(\\"}\\", this.state.pos) - this.state.pos);\\n      ++this.state.pos;\\n      if (code > 0x10FFFF) this.raise(codePos, \\"Code point out of bounds\\");\\n    } else {\\n      code = this.readHexChar(4);\\n    }\\n    return code;\\n  };\\n\\n  Tokenizer.prototype.readString = function readString(quote) {\\n    var out = \\"\\",\\n        chunkStart = ++this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated string constant\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === quote) break;\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(false);\\n        chunkStart = this.state.pos;\\n      } else {\\n        if (_utilWhitespace.isNewLine(ch)) this.raise(this.state.start, \\"Unterminated string constant\\");\\n        ++this.state.pos;\\n      }\\n    }\\n    out += this.input.slice(chunkStart, this.state.pos++);\\n    return this.finishToken(_types.types.string, out);\\n  };\\n\\n  // Reads template string tokens.\\n\\n  Tokenizer.prototype.readTmplToken = function readTmplToken() {\\n    var out = \\"\\",\\n        chunkStart = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated template\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) {\\n        // \'`\', \'${\'\\n        if (this.state.pos === this.state.start && this.match(_types.types.template)) {\\n          if (ch === 36) {\\n            this.state.pos += 2;\\n            return this.finishToken(_types.types.dollarBraceL);\\n          } else {\\n            ++this.state.pos;\\n            return this.finishToken(_types.types.backQuote);\\n          }\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_types.types.template, out);\\n      }\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(true);\\n        chunkStart = this.state.pos;\\n      } else if (_utilWhitespace.isNewLine(ch)) {\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        ++this.state.pos;\\n        switch (ch) {\\n          case 13:\\n            if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos;\\n          case 10:\\n            out += \\"\\\\n\\";\\n            break;\\n          default:\\n            out += String.fromCharCode(ch);\\n            break;\\n        }\\n        ++this.state.curLine;\\n        this.state.lineStart = this.state.pos;\\n        chunkStart = this.state.pos;\\n      } else {\\n        ++this.state.pos;\\n      }\\n    }\\n  };\\n\\n  // Used to read escaped characters\\n\\n  Tokenizer.prototype.readEscapedChar = function readEscapedChar(inTemplate) {\\n    var ch = this.input.charCodeAt(++this.state.pos);\\n    ++this.state.pos;\\n    switch (ch) {\\n      case 110:\\n        return \\"\\\\n\\"; // \'n\' -> \'\\\\n\'\\n      case 114:\\n        return \\"\\\\r\\"; // \'r\' -> \'\\\\r\'\\n      case 120:\\n        return String.fromCharCode(this.readHexChar(2)); // \'x\'\\n      case 117:\\n        return codePointToString(this.readCodePoint()); // \'u\'\\n      case 116:\\n        return \\"\\\\t\\"; // \'t\' -> \'\\\\t\'\\n      case 98:\\n        return \\"\\\\b\\"; // \'b\' -> \'\\\\b\'\\n      case 118:\\n        return \\"\\\\u000b\\"; // \'v\' -> \'\\\\u000b\'\\n      case 102:\\n        return \\"\\\\f\\"; // \'f\' -> \'\\\\f\'\\n      case 13:\\n        if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos; // \'\\\\r\\\\n\'\\n      case 10:\\n        // \' \\\\n\'\\n        this.state.lineStart = this.state.pos;\\n        ++this.state.curLine;\\n        return \\"\\";\\n      default:\\n        if (ch >= 48 && ch <= 55) {\\n          var octalStr = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/)[0];\\n          var octal = parseInt(octalStr, 8);\\n          if (octal > 255) {\\n            octalStr = octalStr.slice(0, -1);\\n            octal = parseInt(octalStr, 8);\\n          }\\n          if (octal > 0) {\\n            if (!this.state.containsOctal) {\\n              this.state.containsOctal = true;\\n              this.state.octalPosition = this.state.pos - 2;\\n            }\\n            if (this.state.strict || inTemplate) {\\n              this.raise(this.state.pos - 2, \\"Octal literal in strict mode\\");\\n            }\\n          }\\n          this.state.pos += octalStr.length - 1;\\n          return String.fromCharCode(octal);\\n        }\\n        return String.fromCharCode(ch);\\n    }\\n  };\\n\\n  // Used to read character escape sequences (\'\\\\x\', \'\\\\u\', \'\\\\U\').\\n\\n  Tokenizer.prototype.readHexChar = function readHexChar(len) {\\n    var codePos = this.state.pos;\\n    var n = this.readInt(16, len);\\n    if (n === null) this.raise(codePos, \\"Bad character escape sequence\\");\\n    return n;\\n  };\\n\\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\\n  // to whether the word contained a \'\\\\u\' escape.\\n  //\\n  // Incrementally adds only escaped chars, adding other chunks as-is\\n  // as a micro-optimization.\\n\\n  Tokenizer.prototype.readWord1 = function readWord1() {\\n    this.state.containsEsc = false;\\n    var word = \\"\\",\\n        first = true,\\n        chunkStart = this.state.pos;\\n    while (this.state.pos < this.input.length) {\\n      var ch = this.fullCharCodeAtPos();\\n      if (_utilIdentifier.isIdentifierChar(ch)) {\\n        this.state.pos += ch <= 0xffff ? 1 : 2;\\n      } else if (ch === 92) {\\n        // \\"\\\\\\"\\n        this.state.containsEsc = true;\\n\\n        word += this.input.slice(chunkStart, this.state.pos);\\n        var escStart = this.state.pos;\\n\\n        if (this.input.charCodeAt(++this.state.pos) !== 117) {\\n          // \\"u\\"\\n          this.raise(this.state.pos, \\"Expecting Unicode escape sequence \\\\\\\\uXXXX\\");\\n        }\\n\\n        ++this.state.pos;\\n        var esc = this.readCodePoint();\\n        if (!(first ? _utilIdentifier.isIdentifierStart : _utilIdentifier.isIdentifierChar)(esc, true)) {\\n          this.raise(escStart, \\"Invalid Unicode escape\\");\\n        }\\n\\n        word += codePointToString(esc);\\n        chunkStart = this.state.pos;\\n      } else {\\n        break;\\n      }\\n      first = false;\\n    }\\n    return word + this.input.slice(chunkStart, this.state.pos);\\n  };\\n\\n  // Read an identifier or keyword token. Will check for reserved\\n  // words when necessary.\\n\\n  Tokenizer.prototype.readWord = function readWord() {\\n    var word = this.readWord1();\\n    var type = _types.types.name;\\n    if (!this.state.containsEsc && this.isKeyword(word)) {\\n      type = _types.keywords[word];\\n    }\\n    return this.finishToken(type, word);\\n  };\\n\\n  Tokenizer.prototype.braceIsBlock = function braceIsBlock(prevType) {\\n    if (prevType === _types.types.colon) {\\n      var _parent = this.curContext();\\n      if (_parent === _context.types.b_stat || _parent === _context.types.b_expr) {\\n        return !_parent.isExpr;\\n      }\\n    }\\n\\n    if (prevType === _types.types._return) {\\n      return _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n    }\\n\\n    if (prevType === _types.types._else || prevType === _types.types.semi || prevType === _types.types.eof || prevType === _types.types.parenR) {\\n      return true;\\n    }\\n\\n    if (prevType === _types.types.braceL) {\\n      return this.curContext() === _context.types.b_stat;\\n    }\\n\\n    return !this.state.exprAllowed;\\n  };\\n\\n  Tokenizer.prototype.updateContext = function updateContext(prevType) {\\n    var update = undefined,\\n        type = this.state.type;\\n    if (type.keyword && prevType === _types.types.dot) {\\n      this.state.exprAllowed = false;\\n    } else if (update = type.updateContext) {\\n      update.call(this, prevType);\\n    } else {\\n      this.state.exprAllowed = type.beforeExpr;\\n    }\\n  };\\n\\n  return Tokenizer;\\n})();\\n\\nexports[\\"default\\"] = Tokenizer;\\n},{\\"../util/identifier\\":27,\\"../util/location\\":28,\\"../util/whitespace\\":29,\\"./context\\":23,\\"./state\\":25,\\"./types\\":26,\\"babel-runtime/helpers/class-call-check\\":33,\\"babel-runtime/helpers/interop-require-default\\":35}],25:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _types = require(\\"./types\\");\\n\\n/*:: import type { TokContext } from \\"./context\\";*/\\n/*:: import type { Token } from \\"./index\\";*/\\nvar State = (function () {\\n  function State() {\\n    _classCallCheck(this, State);\\n  }\\n\\n  State.prototype.init = function init(options /*: Object*/, input /*: string*/) {\\n    this.strict = options.strictMode === false ? false : options.sourceType === \\"module\\";\\n\\n    this.input = input;\\n\\n    this.potentialArrowAt = -1;\\n\\n    this.inMethod = this.inFunction = this.inGenerator = this.inAsync = false;\\n\\n    this.labels = [];\\n\\n    this.decorators = [];\\n\\n    this.tokens = [];\\n\\n    this.comments = [];\\n\\n    this.trailingComments = [];\\n    this.leadingComments = [];\\n    this.commentStack = [];\\n\\n    this.pos = this.lineStart = 0;\\n    this.curLine = 1;\\n\\n    this.type = _types.types.eof;\\n    this.value = null;\\n    this.start = this.end = this.pos;\\n    this.startLoc = this.endLoc = this.curPosition();\\n\\n    this.lastTokEndLoc = this.lastTokStartLoc = null;\\n    this.lastTokStart = this.lastTokEnd = this.pos;\\n\\n    this.context = [_context.types.b_stat];\\n    this.exprAllowed = true;\\n\\n    this.containsEsc = this.containsOctal = false;\\n    this.octalPosition = null;\\n\\n    return this;\\n  };\\n\\n  // TODO\\n\\n  State.prototype.curPosition = function curPosition() {\\n    return new _utilLocation.Position(this.curLine, this.pos - this.lineStart);\\n  };\\n\\n  State.prototype.clone = function clone(skipArrays /*:: ?*/) {\\n    var state = new State();\\n    for (var key in this) {\\n      var val = this[key];\\n\\n      if ((!skipArrays || key === \\"context\\") && Array.isArray(val)) {\\n        val = val.slice();\\n      }\\n\\n      state[key] = val;\\n    }\\n    return state;\\n  };\\n\\n  return State;\\n})();\\n\\nexports[\\"default\\"] = State;\\nmodule.exports = exports[\\"default\\"];\\n\\n// TODO\\n\\n// Used to signify the start of a potential arrow function\\n\\n// Flags to track whether we are in a function, a generator.\\n\\n// Labels in scope.\\n\\n// Leading decorators.\\n\\n// Token store.\\n\\n// Comment store.\\n\\n// Comment attachment store\\n\\n// The current position of the tokenizer in the input.\\n\\n// Properties of the current token:\\n// Its type\\n\\n// For tokens that include more information than their type, the value\\n\\n// Its start and end offset\\n\\n// And, if locations are used, the {line, column} object\\n// corresponding to those offsets\\n\\n// Position information for the previous token\\n\\n// The context stack is used to superficially track syntactic\\n// context to predict whether a regular expression is allowed in a\\n// given position.\\n\\n// Used to signal to callers of `readWord1` whether the word\\n// contained any escape sequences. This is needed because words with\\n// escape sequences must not be interpreted as keywords.\\n\\n// TODO\\n},{\\"../util/location\\":28,\\"./context\\":23,\\"./types\\":26,\\"babel-runtime/helpers/class-call-check\\":33}],26:[function(require,module,exports){\\n// ## Token types\\n\\n// The assignment of fine-grained, information-carrying type objects\\n// allows the tokenizer to store the information it has about a\\n// token in a way that is very cheap for the parser to look up.\\n\\n// All token type variables start with an underscore, to make them\\n// easy to recognize.\\n\\n// The `beforeExpr` property is used to disambiguate between regular\\n// expressions and divisions. It is set on all token types that can\\n// be followed by an expression (thus, a slash after them would be a\\n// regular expression).\\n//\\n// `isLoop` marks a keyword as starting a loop, which is important\\n// to know when parsing a label, in order to allow or disallow\\n// continue jumps to that label.\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar TokenType = function TokenType(label) {\\n  var conf = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  _classCallCheck(this, TokenType);\\n\\n  this.label = label;\\n  this.keyword = conf.keyword;\\n  this.beforeExpr = !!conf.beforeExpr;\\n  this.startsExpr = !!conf.startsExpr;\\n  this.rightAssociative = !!conf.rightAssociative;\\n  this.isLoop = !!conf.isLoop;\\n  this.isAssign = !!conf.isAssign;\\n  this.prefix = !!conf.prefix;\\n  this.postfix = !!conf.postfix;\\n  this.binop = conf.binop || null;\\n  this.updateContext = null;\\n};\\n\\nexports.TokenType = TokenType;\\n\\nfunction binop(name, prec) {\\n  return new TokenType(name, { beforeExpr: true, binop: prec });\\n}\\nvar beforeExpr = { beforeExpr: true },\\n    startsExpr = { startsExpr: true };\\n\\nvar types = {\\n  num: new TokenType(\\"num\\", startsExpr),\\n  regexp: new TokenType(\\"regexp\\", startsExpr),\\n  string: new TokenType(\\"string\\", startsExpr),\\n  name: new TokenType(\\"name\\", startsExpr),\\n  eof: new TokenType(\\"eof\\"),\\n\\n  // Punctuation token types.\\n  bracketL: new TokenType(\\"[\\", { beforeExpr: true, startsExpr: true }),\\n  bracketR: new TokenType(\\"]\\"),\\n  braceL: new TokenType(\\"{\\", { beforeExpr: true, startsExpr: true }),\\n  braceR: new TokenType(\\"}\\"),\\n  parenL: new TokenType(\\"(\\", { beforeExpr: true, startsExpr: true }),\\n  parenR: new TokenType(\\")\\"),\\n  comma: new TokenType(\\",\\", beforeExpr),\\n  semi: new TokenType(\\";\\", beforeExpr),\\n  colon: new TokenType(\\":\\", beforeExpr),\\n  doubleColon: new TokenType(\\"::\\", beforeExpr),\\n  dot: new TokenType(\\".\\"),\\n  question: new TokenType(\\"?\\", beforeExpr),\\n  arrow: new TokenType(\\"=>\\", beforeExpr),\\n  template: new TokenType(\\"template\\"),\\n  ellipsis: new TokenType(\\"...\\", beforeExpr),\\n  backQuote: new TokenType(\\"`\\", startsExpr),\\n  dollarBraceL: new TokenType(\\"${\\", { beforeExpr: true, startsExpr: true }),\\n  at: new TokenType(\\"@\\"),\\n\\n  // Operators. These carry several kinds of properties to help the\\n  // parser use them properly (the presence of these properties is\\n  // what categorizes them as operators).\\n  //\\n  // `binop`, when present, specifies that this operator is a binary\\n  // operator, and will refer to its precedence.\\n  //\\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\\n  // unary operator.\\n  //\\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\\n  // binary operators with a very low precedence, that should result\\n  // in AssignmentExpression nodes.\\n\\n  eq: new TokenType(\\"=\\", { beforeExpr: true, isAssign: true }),\\n  assign: new TokenType(\\"_=\\", { beforeExpr: true, isAssign: true }),\\n  incDec: new TokenType(\\"++/--\\", { prefix: true, postfix: true, startsExpr: true }),\\n  prefix: new TokenType(\\"prefix\\", { beforeExpr: true, prefix: true, startsExpr: true }),\\n  logicalOR: binop(\\"||\\", 1),\\n  logicalAND: binop(\\"&&\\", 2),\\n  bitwiseOR: binop(\\"|\\", 3),\\n  bitwiseXOR: binop(\\"^\\", 4),\\n  bitwiseAND: binop(\\"&\\", 5),\\n  equality: binop(\\"==/!=\\", 6),\\n  relational: binop(\\"</>\\", 7),\\n  bitShift: binop(\\"<</>>\\", 8),\\n  plusMin: new TokenType(\\"+/-\\", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }),\\n  modulo: binop(\\"%\\", 10),\\n  star: binop(\\"*\\", 10),\\n  slash: binop(\\"/\\", 10),\\n  exponent: new TokenType(\\"**\\", { beforeExpr: true, binop: 11, rightAssociative: true })\\n};\\n\\nexports.types = types;\\n// Map keyword names to token types.\\n\\nvar keywords = {};\\n\\nexports.keywords = keywords;\\n// Succinct definitions of keyword token types\\nfunction kw(name) {\\n  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  options.keyword = name;\\n  keywords[name] = types[\\"_\\" + name] = new TokenType(name, options);\\n}\\n\\nkw(\\"break\\");\\nkw(\\"case\\", beforeExpr);\\nkw(\\"catch\\");\\nkw(\\"continue\\");\\nkw(\\"debugger\\");\\nkw(\\"default\\", beforeExpr);\\nkw(\\"do\\", { isLoop: true, beforeExpr: true });\\nkw(\\"else\\", beforeExpr);\\nkw(\\"finally\\");\\nkw(\\"for\\", { isLoop: true });\\nkw(\\"function\\", startsExpr);\\nkw(\\"if\\");\\nkw(\\"return\\", beforeExpr);\\nkw(\\"switch\\");\\nkw(\\"throw\\", beforeExpr);\\nkw(\\"try\\");\\nkw(\\"var\\");\\nkw(\\"let\\");\\nkw(\\"const\\");\\nkw(\\"while\\", { isLoop: true });\\nkw(\\"with\\");\\nkw(\\"new\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"this\\", startsExpr);\\nkw(\\"super\\", startsExpr);\\nkw(\\"class\\");\\nkw(\\"extends\\", beforeExpr);\\nkw(\\"export\\");\\nkw(\\"import\\");\\nkw(\\"yield\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"null\\", startsExpr);\\nkw(\\"true\\", startsExpr);\\nkw(\\"false\\", startsExpr);\\nkw(\\"in\\", { beforeExpr: true, binop: 7 });\\nkw(\\"instanceof\\", { beforeExpr: true, binop: 7 });\\nkw(\\"typeof\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"void\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"delete\\", { beforeExpr: true, prefix: true, startsExpr: true });\\n},{\\"babel-runtime/helpers/class-call-check\\":33}],27:[function(require,module,exports){\\n// This is a trick taken from Esprima. It turns out that, on\\n// non-Chrome browsers, to check whether a string is in a set, a\\n// predicate containing a big ugly `switch` statement is faster than\\n// a regular expression, and on Chrome the two are about on par.\\n// This function uses `eval` (non-lexical) to produce such a\\n// predicate from a space-separated string of words.\\n//\\n// It starts by sorting the words by length.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isIdentifierStart = isIdentifierStart;\\nexports.isIdentifierChar = isIdentifierChar;\\nfunction makePredicate(words) {\\n  words = words.split(\\" \\");\\n  return function (str) {\\n    return words.indexOf(str) >= 0;\\n  };\\n}\\n\\n// Reserved word lists for various dialects of the language\\n\\nvar reservedWords = {\\n  6: makePredicate(\\"enum await\\"),\\n  strict: makePredicate(\\"implements interface let package private protected public static yield\\"),\\n  strictBind: makePredicate(\\"eval arguments\\")\\n};\\n\\nexports.reservedWords = reservedWords;\\n// And the keywords\\n\\nvar isKeyword = makePredicate(\\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super\\");\\n\\nexports.isKeyword = isKeyword;\\n// ## Character categories\\n\\n// Big ugly regular expressions that match characters in the\\n// whitespace, identifier, and identifier-start categories. These\\n// are only applied when a character is found to actually have a\\n// code point above 128.\\n// Generated by `tools/generate-identifier-regex.js`.\\n\\nvar nonASCIIidentifierStartChars = \\"ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ\\";\\nvar nonASCIIidentifierChars = \\"\u200c\u200d·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏ᦰ-ᧀᧈᧉ᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷼-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-꣄꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︭︳︴﹍-﹏０-９＿\\";\\n\\nvar nonASCIIidentifierStart = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + \\"]\\");\\nvar nonASCIIidentifier = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \\"]\\");\\n\\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\\n\\n// These are a run-length and offset encoded representation of the\\n// >0xffff code points that are a valid part of identifiers. The\\n// offset starts at 0x10000, and each pair of numbers represents an\\n// offset to the next range, and then a size of the range. They were\\n// generated by tools/generate-identifier-regex.js\\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 17, 26, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 99, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 98, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 26, 45, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 955, 52, 76, 44, 33, 24, 27, 35, 42, 34, 4, 0, 13, 47, 15, 3, 22, 0, 38, 17, 2, 24, 133, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 32, 4, 287, 47, 21, 1, 2, 0, 185, 46, 82, 47, 21, 0, 60, 42, 502, 63, 32, 0, 449, 56, 1288, 920, 104, 110, 2962, 1070, 13266, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 881, 68, 12, 0, 67, 12, 16481, 1, 3071, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 4149, 196, 1340, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42710, 42, 4148, 12, 221, 16355, 541];\\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 1306, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 52, 0, 13, 2, 49, 13, 16, 9, 83, 11, 168, 11, 6, 9, 8, 2, 57, 0, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 316, 19, 13, 9, 214, 6, 3, 8, 112, 16, 16, 9, 82, 12, 9, 9, 535, 9, 20855, 9, 135, 4, 60, 6, 26, 9, 1016, 45, 17, 3, 19723, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 4305, 6, 792618, 239];\\n\\n// This has a complexity linear to the value of the code. The\\n// assumption is that looking up astral identifier characters is\\n// rare.\\nfunction isInAstralSet(code, set) {\\n  var pos = 0x10000;\\n  for (var i = 0; i < set.length; i += 2) {\\n    pos += set[i];\\n    if (pos > code) return false;\\n\\n    pos += set[i + 1];\\n    if (pos >= code) return true;\\n  }\\n}\\n\\n// Test whether a given character code starts an identifier.\\n\\nfunction isIdentifierStart(code) {\\n  if (code < 65) return code === 36;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes);\\n}\\n\\n// Test whether a given character is part of an identifier.\\n\\nfunction isIdentifierChar(code) {\\n  if (code < 48) return code === 36;\\n  if (code < 58) return true;\\n  if (code < 65) return false;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\\n}\\n},{}],28:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getLineInfo = getLineInfo;\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\n// These are used when `options.locations` is on, for the\\n// `startLoc` and `endLoc` properties.\\n\\nvar Position = function Position(line, col) {\\n  _classCallCheck(this, Position);\\n\\n  this.line = line;\\n  this.column = col;\\n};\\n\\nexports.Position = Position;\\n\\nvar SourceLocation = function SourceLocation(start, end) {\\n  _classCallCheck(this, SourceLocation);\\n\\n  this.start = start;\\n  this.end = end;\\n}\\n\\n// The `getLineInfo` function is mostly useful when the\\n// `locations` option is off (for performance reasons) and you\\n// want to find the line/column position for a given character\\n// offset. `input` should be the code string that the offset refers\\n// into.\\n\\n;\\n\\nexports.SourceLocation = SourceLocation;\\n\\nfunction getLineInfo(input, offset) {\\n  for (var line = 1, cur = 0;;) {\\n    _whitespace.lineBreakG.lastIndex = cur;\\n    var match = _whitespace.lineBreakG.exec(input);\\n    if (match && match.index < offset) {\\n      ++line;\\n      cur = match.index + match[0].length;\\n    } else {\\n      return new Position(line, offset - cur);\\n    }\\n  }\\n}\\n},{\\"./whitespace\\":29,\\"babel-runtime/helpers/class-call-check\\":33}],29:[function(require,module,exports){\\n/* @flow */\\n\\n// Matches a whole line break (where CRLF is considered a single\\n// line break). Used to count lines.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isNewLine = isNewLine;\\nvar lineBreak = /\\\\r\\\\n?|\\\\n|\\\\u2028|\\\\u2029/;\\nexports.lineBreak = lineBreak;\\nvar lineBreakG = new RegExp(lineBreak.source, \\"g\\");\\n\\nexports.lineBreakG = lineBreakG;\\n\\nfunction isNewLine(code /*: number*/) /*: boolean*/ {\\n  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029;\\n}\\n\\nvar nonASCIIwhitespace = /[\\\\u1680\\\\u180e\\\\u2000-\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\ufeff]/;\\nexports.nonASCIIwhitespace = nonASCIIwhitespace;\\n},{}],30:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n},{\\"core-js/library/fn/get-iterator\\":36}],31:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/create\\":37}],32:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/set-prototype-of\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/set-prototype-of\\":38}],33:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n},{}],34:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _Object$setPrototypeOf = require(\\"babel-runtime/core-js/object/set-prototype-of\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (subClass, superClass) {\\n  if (typeof superClass !== \\"function\\" && superClass !== null) {\\n    throw new TypeError(\\"Super expression must either be null or a function, not \\" + typeof superClass);\\n  }\\n\\n  subClass.prototype = _Object$create(superClass && superClass.prototype, {\\n    constructor: {\\n      value: subClass,\\n      enumerable: false,\\n      writable: true,\\n      configurable: true\\n    }\\n  });\\n  if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\\n};\\n\\nexports.__esModule = true;\\n},{\\"babel-runtime/core-js/object/create\\":31,\\"babel-runtime/core-js/object/set-prototype-of\\":32}],35:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n},{}],36:[function(require,module,exports){\\nrequire(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n},{\\"../modules/core.get-iterator\\":72,\\"../modules/es6.string.iterator\\":75,\\"../modules/web.dom.iterable\\":76}],37:[function(require,module,exports){\\nvar $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n},{\\"../../modules/$\\":59}],38:[function(require,module,exports){\\nrequire(\'../../modules/es6.object.set-prototype-of\');\\nmodule.exports = require(\'../../modules/$.core\').Object.setPrototypeOf;\\n},{\\"../../modules/$.core\\":44,\\"../../modules/es6.object.set-prototype-of\\":74}],39:[function(require,module,exports){\\nmodule.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n},{}],40:[function(require,module,exports){\\nmodule.exports = function(){ /* empty */ };\\n},{}],41:[function(require,module,exports){\\nvar isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n},{\\"./$.is-object\\":54}],42:[function(require,module,exports){\\n// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n},{\\"./$.cof\\":43,\\"./$.wks\\":70}],43:[function(require,module,exports){\\nvar toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n},{}],44:[function(require,module,exports){\\nvar core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n},{}],45:[function(require,module,exports){\\n// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n},{\\"./$.a-function\\":39}],46:[function(require,module,exports){\\n// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n},{}],47:[function(require,module,exports){\\n// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n},{\\"./$.fails\\":49}],48:[function(require,module,exports){\\nvar global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n},{\\"./$.core\\":44,\\"./$.ctx\\":45,\\"./$.global\\":50}],49:[function(require,module,exports){\\nmodule.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n},{}],50:[function(require,module,exports){\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n},{}],51:[function(require,module,exports){\\nvar hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n},{}],52:[function(require,module,exports){\\nvar $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n},{\\"./$\\":59,\\"./$.descriptors\\":47,\\"./$.property-desc\\":61}],53:[function(require,module,exports){\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n},{\\"./$.cof\\":43}],54:[function(require,module,exports){\\nmodule.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n},{}],55:[function(require,module,exports){\\n\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n},{\\"./$\\":59,\\"./$.hide\\":52,\\"./$.property-desc\\":61,\\"./$.set-to-string-tag\\":64,\\"./$.wks\\":70}],56:[function(require,module,exports){\\n\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n},{\\"./$\\":59,\\"./$.export\\":48,\\"./$.has\\":51,\\"./$.hide\\":52,\\"./$.iter-create\\":55,\\"./$.iterators\\":58,\\"./$.library\\":60,\\"./$.redefine\\":62,\\"./$.set-to-string-tag\\":64,\\"./$.wks\\":70}],57:[function(require,module,exports){\\nmodule.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n},{}],58:[function(require,module,exports){\\nmodule.exports = {};\\n},{}],59:[function(require,module,exports){\\nvar $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n},{}],60:[function(require,module,exports){\\nmodule.exports = true;\\n},{}],61:[function(require,module,exports){\\nmodule.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n},{}],62:[function(require,module,exports){\\nmodule.exports = require(\'./$.hide\');\\n},{\\"./$.hide\\":52}],63:[function(require,module,exports){\\n// Works with __proto__ only. Old v8 can\'t work with null proto objects.\\n/* eslint-disable no-proto */\\nvar getDesc  = require(\'./$\').getDesc\\n  , isObject = require(\'./$.is-object\')\\n  , anObject = require(\'./$.an-object\');\\nvar check = function(O, proto){\\n  anObject(O);\\n  if(!isObject(proto) && proto !== null)throw TypeError(proto + \\": can\'t set as prototype!\\");\\n};\\nmodule.exports = {\\n  set: Object.setPrototypeOf || (\'__proto__\' in {} ? // eslint-disable-line\\n    function(test, buggy, set){\\n      try {\\n        set = require(\'./$.ctx\')(Function.call, getDesc(Object.prototype, \'__proto__\').set, 2);\\n        set(test, []);\\n        buggy = !(test instanceof Array);\\n      } catch(e){ buggy = true; }\\n      return function setPrototypeOf(O, proto){\\n        check(O, proto);\\n        if(buggy)O.__proto__ = proto;\\n        else set(O, proto);\\n        return O;\\n      };\\n    }({}, false) : undefined),\\n  check: check\\n};\\n},{\\"./$\\":59,\\"./$.an-object\\":41,\\"./$.ctx\\":45,\\"./$.is-object\\":54}],64:[function(require,module,exports){\\nvar def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n},{\\"./$\\":59,\\"./$.has\\":51,\\"./$.wks\\":70}],65:[function(require,module,exports){\\nvar global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n},{\\"./$.global\\":50}],66:[function(require,module,exports){\\nvar toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n},{\\"./$.defined\\":46,\\"./$.to-integer\\":67}],67:[function(require,module,exports){\\n// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n},{}],68:[function(require,module,exports){\\n// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n},{\\"./$.defined\\":46,\\"./$.iobject\\":53}],69:[function(require,module,exports){\\nvar id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n},{}],70:[function(require,module,exports){\\nvar store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n},{\\"./$.global\\":50,\\"./$.shared\\":65,\\"./$.uid\\":69}],71:[function(require,module,exports){\\nvar classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n},{\\"./$.classof\\":42,\\"./$.core\\":44,\\"./$.iterators\\":58,\\"./$.wks\\":70}],72:[function(require,module,exports){\\nvar anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n},{\\"./$.an-object\\":41,\\"./$.core\\":44,\\"./core.get-iterator-method\\":71}],73:[function(require,module,exports){\\n\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n},{\\"./$.add-to-unscopables\\":40,\\"./$.iter-define\\":56,\\"./$.iter-step\\":57,\\"./$.iterators\\":58,\\"./$.to-iobject\\":68}],74:[function(require,module,exports){\\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\\nvar $export = require(\'./$.export\');\\n$export($export.S, \'Object\', {setPrototypeOf: require(\'./$.set-proto\').set});\\n},{\\"./$.export\\":48,\\"./$.set-proto\\":63}],75:[function(require,module,exports){\\n\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n},{\\"./$.iter-define\\":56,\\"./$.string-at\\":66}],76:[function(require,module,exports){\\nrequire(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n},{\\"./$.iterators\\":58,\\"./es6.array.iterator\\":73}]},{},[1])(1)\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/vendor/babylon.js\\n ** module id = 2\\n ** module chunks = 0\\n **/","var isArray = require(\'../helpers/isArray\');\\n\\nvar IGNORE = \'start,end,loc\';\\nvar UNKNOWN_NODE = \'unknown\';\\n\\nvar isIgnored = function (key) {\\n  return IGNORE.indexOf(key) >= 0;\\n};\\nvar getType = function (node) {\\n  return node && node.type ? node.type : UNKNOWN_NODE;\\n};\\n\\nmodule.exports = function (tree, visitors) {\\n  var context = {};\\n\\n  var traverse = function (node, parent, index) {\\n    var key, i;\\n    var type = getType(node);\\n    var visitor = visitors[type];\\n\\n    visitor && visitor.enter ? visitor.enter(node, parent, index, context) : null;\\n    if (isArray(node)) {\\n      for (i = 0; i < node.length; i++) {\\n        traverse(node[i], node, i);\\n      }\\n    } else {\\n      for (key in node) {\\n        if (!isIgnored(key)) {\\n          if (typeof node[key] === \'object\') {\\n            traverse(node[key], node, key);\\n          }\\n        }\\n      }\\n    }\\n    visitor && visitor.exit ? visitor.exit(node, parent, index, context) : null;\\n  };\\n\\n  traverse(tree, null, null);\\n};\\n\\nmodule.exports.isIgnored = isIgnored;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/core/traverse.js\\n ** module id = 3\\n ** module chunks = 0\\n **/","module.exports = function (v) {\\n  return Object.prototype.toString.call(v) === \'[object Array]\';\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/isArray.js\\n ** module id = 4\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _detectIndent = require(\\"detect-indent\\");\\n\\nvar _detectIndent2 = _interopRequireDefault(_detectIndent);\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\nvar _whitespace2 = _interopRequireDefault(_whitespace);\\n\\nvar _sourceMap = require(\\"./source-map\\");\\n\\nvar _sourceMap2 = _interopRequireDefault(_sourceMap);\\n\\nvar _position = require(\\"./position\\");\\n\\nvar _position2 = _interopRequireDefault(_position);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _printer = require(\\"./printer\\");\\n\\nvar _printer2 = _interopRequireDefault(_printer);\\n\\n/**\\n * Babel\'s code generator, turns an ast into code, maintaining sourcemaps,\\n * user preferences, and valid output.\\n */\\n\\nvar CodeGenerator = (function (_Printer) {\\n  _inherits(CodeGenerator, _Printer);\\n\\n  function CodeGenerator(ast, opts, code) {\\n    _classCallCheck(this, CodeGenerator);\\n\\n    opts = opts || {};\\n\\n    var comments = ast.comments || [];\\n    var tokens = ast.tokens || [];\\n    var format = CodeGenerator.normalizeOptions(code, opts, tokens);\\n\\n    var position = new _position2[\\"default\\"]();\\n\\n    _Printer.call(this, position, format);\\n\\n    this.comments = comments;\\n    this.position = position;\\n    this.tokens = tokens;\\n    this.format = format;\\n    this.opts = opts;\\n    this.ast = ast;\\n    this._inForStatementInitCounter = 0;\\n\\n    this.whitespace = new _whitespace2[\\"default\\"](tokens);\\n    this.map = new _sourceMap2[\\"default\\"](position, opts, code);\\n  }\\n\\n  /**\\n   * Normalize generator options, setting defaults.\\n   *\\n   * - Detects code indentation.\\n   * - If `opts.compact = \\"auto\\"` and the code is over 100KB, `compact` will be set to `true`.\\n    */\\n\\n  CodeGenerator.normalizeOptions = function normalizeOptions(code, opts, tokens) {\\n    var style = \\"  \\";\\n    if (code) {\\n      var _indent = _detectIndent2[\\"default\\"](code).indent;\\n      if (_indent && _indent !== \\" \\") style = _indent;\\n    }\\n\\n    var format = {\\n      auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\\n      auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\\n      shouldPrintComment: opts.shouldPrintComment,\\n      retainLines: opts.retainLines,\\n      comments: opts.comments == null || opts.comments,\\n      compact: opts.compact,\\n      minified: opts.minified,\\n      concise: opts.concise,\\n      quotes: opts.quotes || CodeGenerator.findCommonStringDelimiter(code, tokens),\\n      indent: {\\n        adjustMultilineComment: true,\\n        style: style,\\n        base: 0\\n      }\\n    };\\n\\n    if (format.minified) {\\n      format.compact = true;\\n    }\\n\\n    if (format.compact === \\"auto\\") {\\n      format.compact = code.length > 100000; // 100KB\\n\\n      if (format.compact) {\\n        console.error(\\"[BABEL] \\" + messages.get(\\"codeGeneratorDeopt\\", opts.filename, \\"100KB\\"));\\n      }\\n    }\\n\\n    if (format.compact) {\\n      format.indent.adjustMultilineComment = false;\\n    }\\n\\n    return format;\\n  };\\n\\n  /**\\n   * Determine if input code uses more single or double quotes.\\n   */\\n\\n  CodeGenerator.findCommonStringDelimiter = function findCommonStringDelimiter(code, tokens) {\\n    var occurences = {\\n      single: 0,\\n      double: 0\\n    };\\n\\n    var checked = 0;\\n\\n    for (var i = 0; i < tokens.length; i++) {\\n      var token = tokens[i];\\n      if (token.type.label !== \\"string\\") continue;\\n\\n      var raw = code.slice(token.start, token.end);\\n      if (raw[0] === \\"\'\\") {\\n        occurences.single++;\\n      } else {\\n        occurences.double++;\\n      }\\n\\n      checked++;\\n      if (checked >= 3) break;\\n    }\\n    if (occurences.single > occurences.double) {\\n      return \\"single\\";\\n    } else {\\n      return \\"double\\";\\n    }\\n  };\\n\\n  /**\\n   * Generate code and sourcemap from ast.\\n   *\\n   * Appends comments that weren\'t attached to any node to the end of the generated output.\\n   */\\n\\n  CodeGenerator.prototype.generate = function generate() {\\n    this.print(this.ast);\\n    this.printAuxAfterComment();\\n\\n    return {\\n      map: this.map.get(),\\n      code: this.get()\\n    };\\n  };\\n\\n  return CodeGenerator;\\n})(_printer2[\\"default\\"]);\\n\\nexports.CodeGenerator = CodeGenerator;\\n\\nexports[\\"default\\"] = function (ast /*: Object*/, opts /*: Object*/, code /*: string*/) /*: Object*/ {\\n  var gen = new CodeGenerator(ast, opts, code);\\n  return gen.generate();\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/index.js\\n ** module id = 5\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _Object$setPrototypeOf = require(\\"babel-runtime/core-js/object/set-prototype-of\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (subClass, superClass) {\\n  if (typeof superClass !== \\"function\\" && superClass !== null) {\\n    throw new TypeError(\\"Super expression must either be null or a function, not \\" + typeof superClass);\\n  }\\n\\n  subClass.prototype = _Object$create(superClass && superClass.prototype, {\\n    constructor: {\\n      value: subClass,\\n      enumerable: false,\\n      writable: true,\\n      configurable: true\\n    }\\n  });\\n  if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/inherits.js\\n ** module id = 6\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/create.js\\n ** module id = 7\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/create.js\\n ** module id = 8\\n ** module chunks = 0\\n **/","var $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.js\\n ** module id = 9\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/set-prototype-of\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/set-prototype-of.js\\n ** module id = 10\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.set-prototype-of\');\\nmodule.exports = require(\'../../modules/$.core\').Object.setPrototypeOf;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js\\n ** module id = 11\\n ** module chunks = 0\\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\\nvar $export = require(\'./$.export\');\\n$export($export.S, \'Object\', {setPrototypeOf: require(\'./$.set-proto\').set});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js\\n ** module id = 12\\n ** module chunks = 0\\n **/","var global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.export.js\\n ** module id = 13\\n ** module chunks = 0\\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.global.js\\n ** module id = 14\\n ** module chunks = 0\\n **/","var core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.core.js\\n ** module id = 15\\n ** module chunks = 0\\n **/","// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.ctx.js\\n ** module id = 16\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.a-function.js\\n ** module id = 17\\n ** module chunks = 0\\n **/","// Works with __proto__ only. Old v8 can\'t work with null proto objects.\\n/* eslint-disable no-proto */\\nvar getDesc  = require(\'./$\').getDesc\\n  , isObject = require(\'./$.is-object\')\\n  , anObject = require(\'./$.an-object\');\\nvar check = function(O, proto){\\n  anObject(O);\\n  if(!isObject(proto) && proto !== null)throw TypeError(proto + \\": can\'t set as prototype!\\");\\n};\\nmodule.exports = {\\n  set: Object.setPrototypeOf || (\'__proto__\' in {} ? // eslint-disable-line\\n    function(test, buggy, set){\\n      try {\\n        set = require(\'./$.ctx\')(Function.call, getDesc(Object.prototype, \'__proto__\').set, 2);\\n        set(test, []);\\n        buggy = !(test instanceof Array);\\n      } catch(e){ buggy = true; }\\n      return function setPrototypeOf(O, proto){\\n        check(O, proto);\\n        if(buggy)O.__proto__ = proto;\\n        else set(O, proto);\\n        return O;\\n      };\\n    }({}, false) : undefined),\\n  check: check\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-proto.js\\n ** module id = 18\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.is-object.js\\n ** module id = 19\\n ** module chunks = 0\\n **/","var isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.an-object.js\\n ** module id = 20\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/class-call-check.js\\n ** module id = 21\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/interop-require-default.js\\n ** module id = 22\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  if (obj && obj.__esModule) {\\n    return obj;\\n  } else {\\n    var newObj = {};\\n\\n    if (obj != null) {\\n      for (var key in obj) {\\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\\n      }\\n    }\\n\\n    newObj[\\"default\\"] = obj;\\n    return newObj;\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/interop-require-wildcard.js\\n ** module id = 23\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar repeating = require(\'repeating\');\\n\\n// detect either spaces or tabs but not both to properly handle tabs\\n// for indentation and spaces for alignment\\nvar INDENT_RE = /^(?:( )+|\\\\t+)/;\\n\\nfunction getMostUsed(indents) {\\n\\tvar result = 0;\\n\\tvar maxUsed = 0;\\n\\tvar maxWeight = 0;\\n\\n\\tfor (var n in indents) {\\n\\t\\tvar indent = indents[n];\\n\\t\\tvar u = indent[0];\\n\\t\\tvar w = indent[1];\\n\\n\\t\\tif (u > maxUsed || u === maxUsed && w > maxWeight) {\\n\\t\\t\\tmaxUsed = u;\\n\\t\\t\\tmaxWeight = w;\\n\\t\\t\\tresult = +n;\\n\\t\\t}\\n\\t}\\n\\n\\treturn result;\\n}\\n\\nmodule.exports = function (str) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string\');\\n\\t}\\n\\n\\t// used to see if tabs or spaces are the most used\\n\\tvar tabs = 0;\\n\\tvar spaces = 0;\\n\\n\\t// remember the size of previous line\'s indentation\\n\\tvar prev = 0;\\n\\n\\t// remember how many indents/unindents as occurred for a given size\\n\\t// and how much lines follow a given indentation\\n\\t//\\n\\t// indents = {\\n\\t//    3: [1, 0],\\n\\t//    4: [1, 5],\\n\\t//    5: [1, 0],\\n\\t//   12: [1, 0],\\n\\t// }\\n\\tvar indents = {};\\n\\n\\t// pointer to the array of last used indent\\n\\tvar current;\\n\\n\\t// whether the last action was an indent (opposed to an unindent)\\n\\tvar isIndent;\\n\\n\\tstr.split(/\\\\n/g).forEach(function (line) {\\n\\t\\tif (!line) {\\n\\t\\t\\t// ignore empty lines\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\n\\t\\tvar indent;\\n\\t\\tvar matches = line.match(INDENT_RE);\\n\\n\\t\\tif (!matches) {\\n\\t\\t\\tindent = 0;\\n\\t\\t} else {\\n\\t\\t\\tindent = matches[0].length;\\n\\n\\t\\t\\tif (matches[1]) {\\n\\t\\t\\t\\tspaces++;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\ttabs++;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tvar diff = indent - prev;\\n\\t\\tprev = indent;\\n\\n\\t\\tif (diff) {\\n\\t\\t\\t// an indent or unindent has been detected\\n\\n\\t\\t\\tisIndent = diff > 0;\\n\\n\\t\\t\\tcurrent = indents[isIndent ? diff : -diff];\\n\\n\\t\\t\\tif (current) {\\n\\t\\t\\t\\tcurrent[0]++;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tcurrent = indents[diff] = [1, 0];\\n\\t\\t\\t}\\n\\t\\t} else if (current) {\\n\\t\\t\\t// if the last action was an indent, increment the weight\\n\\t\\t\\tcurrent[1] += +isIndent;\\n\\t\\t}\\n\\t});\\n\\n\\tvar amount = getMostUsed(indents);\\n\\n\\tvar type;\\n\\tvar actual;\\n\\tif (!amount) {\\n\\t\\ttype = null;\\n\\t\\tactual = \'\';\\n\\t} else if (spaces >= tabs) {\\n\\t\\ttype = \'space\';\\n\\t\\tactual = repeating(\' \', amount);\\n\\t} else {\\n\\t\\ttype = \'tab\';\\n\\t\\tactual = repeating(\'\\\\t\', amount);\\n\\t}\\n\\n\\treturn {\\n\\t\\tamount: amount,\\n\\t\\ttype: type,\\n\\t\\tindent: actual\\n\\t};\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/detect-indent/index.js\\n ** module id = 24\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar isFinite = require(\'is-finite\');\\n\\nmodule.exports = function (str, n) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string as the first argument\');\\n\\t}\\n\\n\\tif (n < 0 || !isFinite(n)) {\\n\\t\\tthrow new TypeError(\'Expected a finite positive number\');\\n\\t}\\n\\n\\tvar ret = \'\';\\n\\n\\tdo {\\n\\t\\tif (n & 1) {\\n\\t\\t\\tret += str;\\n\\t\\t}\\n\\n\\t\\tstr += str;\\n\\t} while (n = n >> 1);\\n\\n\\treturn ret;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/repeating/index.js\\n ** module id = 25\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar numberIsNan = require(\'number-is-nan\');\\n\\nmodule.exports = Number.isFinite || function (val) {\\n\\treturn !(typeof val !== \'number\' || numberIsNan(val) || val === Infinity || val === -Infinity);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/repeating/~/is-finite/index.js\\n ** module id = 26\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = Number.isNaN || function (x) {\\n\\treturn x !== x;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/repeating/~/is-finite/~/number-is-nan/index.js\\n ** module id = 27\\n ** module chunks = 0\\n **/","/**\\n * Get whitespace around tokens.\\n */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar Whitespace = (function () {\\n  function Whitespace(tokens) {\\n    _classCallCheck(this, Whitespace);\\n\\n    this.tokens = tokens;\\n    this.used = {};\\n  }\\n\\n  /**\\n   * Count all the newlines before a node.\\n   */\\n\\n  Whitespace.prototype.getNewlinesBefore = function getNewlinesBefore(node) {\\n    var startToken = undefined;\\n    var endToken = undefined;\\n    var tokens = this.tokens;\\n\\n    var index = this._findToken(function (token) {\\n      return token.start - node.start;\\n    }, 0, tokens.length);\\n    if (index >= 0) {\\n      while (index && node.start === tokens[index - 1].start) --index;\\n      startToken = tokens[index - 1];\\n      endToken = tokens[index];\\n    }\\n\\n    return this.getNewlinesBetween(startToken, endToken);\\n  };\\n\\n  /**\\n   * Count all the newlines after a node.\\n   */\\n\\n  Whitespace.prototype.getNewlinesAfter = function getNewlinesAfter(node) {\\n    var startToken = undefined;\\n    var endToken = undefined;\\n    var tokens = this.tokens;\\n\\n    var index = this._findToken(function (token) {\\n      return token.end - node.end;\\n    }, 0, tokens.length);\\n    if (index >= 0) {\\n      while (index && node.end === tokens[index - 1].end) --index;\\n      startToken = tokens[index];\\n      endToken = tokens[index + 1];\\n      if (endToken.type.label === \\",\\") endToken = tokens[index + 2];\\n    }\\n\\n    if (endToken && endToken.type.label === \\"eof\\") {\\n      return 1;\\n    } else {\\n      var lines = this.getNewlinesBetween(startToken, endToken);\\n      if (node.type === \\"CommentLine\\" && !lines) {\\n        // line comment\\n        return 1;\\n      } else {\\n        return lines;\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Count all the newlines between two tokens.\\n   */\\n\\n  Whitespace.prototype.getNewlinesBetween = function getNewlinesBetween(startToken, endToken) {\\n    if (!endToken || !endToken.loc) return 0;\\n\\n    var start = startToken ? startToken.loc.end.line : 1;\\n    var end = endToken.loc.start.line;\\n    var lines = 0;\\n\\n    for (var line = start; line < end; line++) {\\n      if (typeof this.used[line] === \\"undefined\\") {\\n        this.used[line] = true;\\n        lines++;\\n      }\\n    }\\n\\n    return lines;\\n  };\\n\\n  /**\\n   * Find a token between start and end.\\n   */\\n\\n  Whitespace.prototype._findToken = function _findToken(test /*: Function*/, start /*: number*/, end /*: number*/) /*: number*/ {\\n    var middle = start + end >>> 1;\\n    var match /*: number*/ = test(this.tokens[middle]);\\n    if (match < 0 && end > middle) {\\n      return this._findToken(test, middle + 1, end);\\n    } else if (match > 0 && start < middle) {\\n      return this._findToken(test, start, middle);\\n    } else if (match === 0) {\\n      return middle;\\n    }\\n    return -1;\\n  };\\n\\n  return Whitespace;\\n})();\\n\\nexports[\\"default\\"] = Whitespace;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/whitespace.js\\n ** module id = 28\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _sourceMap = require(\\"source-map\\");\\n\\nvar _sourceMap2 = _interopRequireDefault(_sourceMap);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Build a sourcemap.\\n */\\n\\nvar SourceMap = (function () {\\n  function SourceMap(position, opts, code) {\\n    _classCallCheck(this, SourceMap);\\n\\n    this.position = position;\\n    this.opts = opts;\\n    this.last = { generated: {}, original: {} };\\n\\n    if (opts.sourceMaps) {\\n      this.map = new _sourceMap2[\\"default\\"].SourceMapGenerator({\\n        file: opts.sourceMapTarget,\\n        sourceRoot: opts.sourceRoot\\n      });\\n\\n      this.map.setSourceContent(opts.sourceFileName, code);\\n    } else {\\n      this.map = null;\\n    }\\n  }\\n\\n  /**\\n   * Get the sourcemap.\\n   */\\n\\n  SourceMap.prototype.get = function get() {\\n    var map = this.map;\\n    if (map) {\\n      return map.toJSON();\\n    } else {\\n      return map;\\n    }\\n  };\\n\\n  /**\\n   * Mark a node\'s generated position, and add it to the sourcemap.\\n   */\\n\\n  SourceMap.prototype.mark = function mark(node) {\\n    var loc = node.loc;\\n    if (!loc) return; // no location info\\n\\n    var map = this.map;\\n    if (!map) return; // no source map\\n\\n    if (t.isProgram(node) || t.isFile(node)) return; // illegal mapping nodes\\n\\n    var position = this.position;\\n\\n    var generated = {\\n      line: position.line,\\n      column: position.column\\n    };\\n\\n    var original = loc.start;\\n\\n    // Avoid emitting duplicates on either side. Duplicated\\n    // original values creates unnecesssarily large source maps\\n    // and increases compile time. Duplicates on the generated\\n    // side can lead to incorrect mappings.\\n    if (comparePosition(original, this.last.original) || comparePosition(generated, this.last.generated)) {\\n      return;\\n    }\\n\\n    this.last = {\\n      source: this.opts.sourceFileName,\\n      generated: generated,\\n      original: original\\n    };\\n\\n    map.addMapping(this.last);\\n  };\\n\\n  return SourceMap;\\n})();\\n\\nexports[\\"default\\"] = SourceMap;\\n\\nfunction comparePosition(a, b) {\\n  return a.line === b.line && a.column === b.column;\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/source-map.js\\n ** module id = 29\\n ** module chunks = 0\\n **/","/*\\n * Copyright 2009-2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE.txt or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\nexports.SourceMapGenerator = require(\'./lib/source-map-generator\').SourceMapGenerator;\\nexports.SourceMapConsumer = require(\'./lib/source-map-consumer\').SourceMapConsumer;\\nexports.SourceNode = require(\'./lib/source-node\').SourceNode;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/source-map.js\\n ** module id = 30\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var base64VLQ = require(\'./base64-vlq\');\\n  var util = require(\'./util\');\\n  var ArraySet = require(\'./array-set\').ArraySet;\\n  var MappingList = require(\'./mapping-list\').MappingList;\\n\\n  /**\\n   * An instance of the SourceMapGenerator represents a source map which is\\n   * being built incrementally. You may pass an object with the following\\n   * properties:\\n   *\\n   *   - file: The filename of the generated source.\\n   *   - sourceRoot: A root for all relative URLs in this source map.\\n   */\\n  function SourceMapGenerator(aArgs) {\\n    if (!aArgs) {\\n      aArgs = {};\\n    }\\n    this._file = util.getArg(aArgs, \'file\', null);\\n    this._sourceRoot = util.getArg(aArgs, \'sourceRoot\', null);\\n    this._skipValidation = util.getArg(aArgs, \'skipValidation\', false);\\n    this._sources = new ArraySet();\\n    this._names = new ArraySet();\\n    this._mappings = new MappingList();\\n    this._sourcesContents = null;\\n  }\\n\\n  SourceMapGenerator.prototype._version = 3;\\n\\n  /**\\n   * Creates a new SourceMapGenerator based on a SourceMapConsumer\\n   *\\n   * @param aSourceMapConsumer The SourceMap.\\n   */\\n  SourceMapGenerator.fromSourceMap =\\n    function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\\n      var sourceRoot = aSourceMapConsumer.sourceRoot;\\n      var generator = new SourceMapGenerator({\\n        file: aSourceMapConsumer.file,\\n        sourceRoot: sourceRoot\\n      });\\n      aSourceMapConsumer.eachMapping(function (mapping) {\\n        var newMapping = {\\n          generated: {\\n            line: mapping.generatedLine,\\n            column: mapping.generatedColumn\\n          }\\n        };\\n\\n        if (mapping.source != null) {\\n          newMapping.source = mapping.source;\\n          if (sourceRoot != null) {\\n            newMapping.source = util.relative(sourceRoot, newMapping.source);\\n          }\\n\\n          newMapping.original = {\\n            line: mapping.originalLine,\\n            column: mapping.originalColumn\\n          };\\n\\n          if (mapping.name != null) {\\n            newMapping.name = mapping.name;\\n          }\\n        }\\n\\n        generator.addMapping(newMapping);\\n      });\\n      aSourceMapConsumer.sources.forEach(function (sourceFile) {\\n        var content = aSourceMapConsumer.sourceContentFor(sourceFile);\\n        if (content != null) {\\n          generator.setSourceContent(sourceFile, content);\\n        }\\n      });\\n      return generator;\\n    };\\n\\n  /**\\n   * Add a single mapping from original source line and column to the generated\\n   * source\'s line and column for this source map being created. The mapping\\n   * object should have the following properties:\\n   *\\n   *   - generated: An object with the generated line and column positions.\\n   *   - original: An object with the original line and column positions.\\n   *   - source: The original source file (relative to the sourceRoot).\\n   *   - name: An optional original token name for this mapping.\\n   */\\n  SourceMapGenerator.prototype.addMapping =\\n    function SourceMapGenerator_addMapping(aArgs) {\\n      var generated = util.getArg(aArgs, \'generated\');\\n      var original = util.getArg(aArgs, \'original\', null);\\n      var source = util.getArg(aArgs, \'source\', null);\\n      var name = util.getArg(aArgs, \'name\', null);\\n\\n      if (!this._skipValidation) {\\n        this._validateMapping(generated, original, source, name);\\n      }\\n\\n      if (source != null && !this._sources.has(source)) {\\n        this._sources.add(source);\\n      }\\n\\n      if (name != null && !this._names.has(name)) {\\n        this._names.add(name);\\n      }\\n\\n      this._mappings.add({\\n        generatedLine: generated.line,\\n        generatedColumn: generated.column,\\n        originalLine: original != null && original.line,\\n        originalColumn: original != null && original.column,\\n        source: source,\\n        name: name\\n      });\\n    };\\n\\n  /**\\n   * Set the source content for a source file.\\n   */\\n  SourceMapGenerator.prototype.setSourceContent =\\n    function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\\n      var source = aSourceFile;\\n      if (this._sourceRoot != null) {\\n        source = util.relative(this._sourceRoot, source);\\n      }\\n\\n      if (aSourceContent != null) {\\n        // Add the source content to the _sourcesContents map.\\n        // Create a new _sourcesContents map if the property is null.\\n        if (!this._sourcesContents) {\\n          this._sourcesContents = {};\\n        }\\n        this._sourcesContents[util.toSetString(source)] = aSourceContent;\\n      } else if (this._sourcesContents) {\\n        // Remove the source file from the _sourcesContents map.\\n        // If the _sourcesContents map is empty, set the property to null.\\n        delete this._sourcesContents[util.toSetString(source)];\\n        if (Object.keys(this._sourcesContents).length === 0) {\\n          this._sourcesContents = null;\\n        }\\n      }\\n    };\\n\\n  /**\\n   * Applies the mappings of a sub-source-map for a specific source file to the\\n   * source map being generated. Each mapping to the supplied source file is\\n   * rewritten using the supplied source map. Note: The resolution for the\\n   * resulting mappings is the minimium of this map and the supplied map.\\n   *\\n   * @param aSourceMapConsumer The source map to be applied.\\n   * @param aSourceFile Optional. The filename of the source file.\\n   *        If omitted, SourceMapConsumer\'s file property will be used.\\n   * @param aSourceMapPath Optional. The dirname of the path to the source map\\n   *        to be applied. If relative, it is relative to the SourceMapConsumer.\\n   *        This parameter is needed when the two source maps aren\'t in the same\\n   *        directory, and the source map to be applied contains relative source\\n   *        paths. If so, those relative source paths need to be rewritten\\n   *        relative to the SourceMapGenerator.\\n   */\\n  SourceMapGenerator.prototype.applySourceMap =\\n    function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\\n      var sourceFile = aSourceFile;\\n      // If aSourceFile is omitted, we will use the file property of the SourceMap\\n      if (aSourceFile == null) {\\n        if (aSourceMapConsumer.file == null) {\\n          throw new Error(\\n            \'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, \' +\\n            \'or the source map\\\\\'s \\"file\\" property. Both were omitted.\'\\n          );\\n        }\\n        sourceFile = aSourceMapConsumer.file;\\n      }\\n      var sourceRoot = this._sourceRoot;\\n      // Make \\"sourceFile\\" relative if an absolute Url is passed.\\n      if (sourceRoot != null) {\\n        sourceFile = util.relative(sourceRoot, sourceFile);\\n      }\\n      // Applying the SourceMap can add and remove items from the sources and\\n      // the names array.\\n      var newSources = new ArraySet();\\n      var newNames = new ArraySet();\\n\\n      // Find mappings for the \\"sourceFile\\"\\n      this._mappings.unsortedForEach(function (mapping) {\\n        if (mapping.source === sourceFile && mapping.originalLine != null) {\\n          // Check if it can be mapped by the source map, then update the mapping.\\n          var original = aSourceMapConsumer.originalPositionFor({\\n            line: mapping.originalLine,\\n            column: mapping.originalColumn\\n          });\\n          if (original.source != null) {\\n            // Copy mapping\\n            mapping.source = original.source;\\n            if (aSourceMapPath != null) {\\n              mapping.source = util.join(aSourceMapPath, mapping.source)\\n            }\\n            if (sourceRoot != null) {\\n              mapping.source = util.relative(sourceRoot, mapping.source);\\n            }\\n            mapping.originalLine = original.line;\\n            mapping.originalColumn = original.column;\\n            if (original.name != null) {\\n              mapping.name = original.name;\\n            }\\n          }\\n        }\\n\\n        var source = mapping.source;\\n        if (source != null && !newSources.has(source)) {\\n          newSources.add(source);\\n        }\\n\\n        var name = mapping.name;\\n        if (name != null && !newNames.has(name)) {\\n          newNames.add(name);\\n        }\\n\\n      }, this);\\n      this._sources = newSources;\\n      this._names = newNames;\\n\\n      // Copy sourcesContents of applied map.\\n      aSourceMapConsumer.sources.forEach(function (sourceFile) {\\n        var content = aSourceMapConsumer.sourceContentFor(sourceFile);\\n        if (content != null) {\\n          if (aSourceMapPath != null) {\\n            sourceFile = util.join(aSourceMapPath, sourceFile);\\n          }\\n          if (sourceRoot != null) {\\n            sourceFile = util.relative(sourceRoot, sourceFile);\\n          }\\n          this.setSourceContent(sourceFile, content);\\n        }\\n      }, this);\\n    };\\n\\n  /**\\n   * A mapping can have one of the three levels of data:\\n   *\\n   *   1. Just the generated position.\\n   *   2. The Generated position, original position, and original source.\\n   *   3. Generated and original position, original source, as well as a name\\n   *      token.\\n   *\\n   * To maintain consistency, we validate that any new mapping being added falls\\n   * in to one of these categories.\\n   */\\n  SourceMapGenerator.prototype._validateMapping =\\n    function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\\n                                                aName) {\\n      if (aGenerated && \'line\' in aGenerated && \'column\' in aGenerated\\n          && aGenerated.line > 0 && aGenerated.column >= 0\\n          && !aOriginal && !aSource && !aName) {\\n        // Case 1.\\n        return;\\n      }\\n      else if (aGenerated && \'line\' in aGenerated && \'column\' in aGenerated\\n               && aOriginal && \'line\' in aOriginal && \'column\' in aOriginal\\n               && aGenerated.line > 0 && aGenerated.column >= 0\\n               && aOriginal.line > 0 && aOriginal.column >= 0\\n               && aSource) {\\n        // Cases 2 and 3.\\n        return;\\n      }\\n      else {\\n        throw new Error(\'Invalid mapping: \' + JSON.stringify({\\n          generated: aGenerated,\\n          source: aSource,\\n          original: aOriginal,\\n          name: aName\\n        }));\\n      }\\n    };\\n\\n  /**\\n   * Serialize the accumulated mappings in to the stream of base 64 VLQs\\n   * specified by the source map format.\\n   */\\n  SourceMapGenerator.prototype._serializeMappings =\\n    function SourceMapGenerator_serializeMappings() {\\n      var previousGeneratedColumn = 0;\\n      var previousGeneratedLine = 1;\\n      var previousOriginalColumn = 0;\\n      var previousOriginalLine = 0;\\n      var previousName = 0;\\n      var previousSource = 0;\\n      var result = \'\';\\n      var mapping;\\n      var nameIdx;\\n      var sourceIdx;\\n\\n      var mappings = this._mappings.toArray();\\n      for (var i = 0, len = mappings.length; i < len; i++) {\\n        mapping = mappings[i];\\n\\n        if (mapping.generatedLine !== previousGeneratedLine) {\\n          previousGeneratedColumn = 0;\\n          while (mapping.generatedLine !== previousGeneratedLine) {\\n            result += \';\';\\n            previousGeneratedLine++;\\n          }\\n        }\\n        else {\\n          if (i > 0) {\\n            if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\\n              continue;\\n            }\\n            result += \',\';\\n          }\\n        }\\n\\n        result += base64VLQ.encode(mapping.generatedColumn\\n                                   - previousGeneratedColumn);\\n        previousGeneratedColumn = mapping.generatedColumn;\\n\\n        if (mapping.source != null) {\\n          sourceIdx = this._sources.indexOf(mapping.source);\\n          result += base64VLQ.encode(sourceIdx - previousSource);\\n          previousSource = sourceIdx;\\n\\n          // lines are stored 0-based in SourceMap spec version 3\\n          result += base64VLQ.encode(mapping.originalLine - 1\\n                                     - previousOriginalLine);\\n          previousOriginalLine = mapping.originalLine - 1;\\n\\n          result += base64VLQ.encode(mapping.originalColumn\\n                                     - previousOriginalColumn);\\n          previousOriginalColumn = mapping.originalColumn;\\n\\n          if (mapping.name != null) {\\n            nameIdx = this._names.indexOf(mapping.name);\\n            result += base64VLQ.encode(nameIdx - previousName);\\n            previousName = nameIdx;\\n          }\\n        }\\n      }\\n\\n      return result;\\n    };\\n\\n  SourceMapGenerator.prototype._generateSourcesContent =\\n    function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\\n      return aSources.map(function (source) {\\n        if (!this._sourcesContents) {\\n          return null;\\n        }\\n        if (aSourceRoot != null) {\\n          source = util.relative(aSourceRoot, source);\\n        }\\n        var key = util.toSetString(source);\\n        return Object.prototype.hasOwnProperty.call(this._sourcesContents,\\n                                                    key)\\n          ? this._sourcesContents[key]\\n          : null;\\n      }, this);\\n    };\\n\\n  /**\\n   * Externalize the source map.\\n   */\\n  SourceMapGenerator.prototype.toJSON =\\n    function SourceMapGenerator_toJSON() {\\n      var map = {\\n        version: this._version,\\n        sources: this._sources.toArray(),\\n        names: this._names.toArray(),\\n        mappings: this._serializeMappings()\\n      };\\n      if (this._file != null) {\\n        map.file = this._file;\\n      }\\n      if (this._sourceRoot != null) {\\n        map.sourceRoot = this._sourceRoot;\\n      }\\n      if (this._sourcesContents) {\\n        map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\\n      }\\n\\n      return map;\\n    };\\n\\n  /**\\n   * Render the source map being generated to a string.\\n   */\\n  SourceMapGenerator.prototype.toString =\\n    function SourceMapGenerator_toString() {\\n      return JSON.stringify(this.toJSON());\\n    };\\n\\n  exports.SourceMapGenerator = SourceMapGenerator;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/source-map-generator.js\\n ** module id = 31\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n *\\n * Based on the Base 64 VLQ implementation in Closure Compiler:\\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\\n *\\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\\n * Redistribution and use in source and binary forms, with or without\\n * modification, are permitted provided that the following conditions are\\n * met:\\n *\\n *  * Redistributions of source code must retain the above copyright\\n *    notice, this list of conditions and the following disclaimer.\\n *  * Redistributions in binary form must reproduce the above\\n *    copyright notice, this list of conditions and the following\\n *    disclaimer in the documentation and/or other materials provided\\n *    with the distribution.\\n *  * Neither the name of Google Inc. nor the names of its\\n *    contributors may be used to endorse or promote products derived\\n *    from this software without specific prior written permission.\\n *\\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\\n * \\"AS IS\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n{\\n  var base64 = require(\'./base64\');\\n\\n  // A single base 64 digit can contain 6 bits of data. For the base 64 variable\\n  // length quantities we use in the source map spec, the first bit is the sign,\\n  // the next four bits are the actual value, and the 6th bit is the\\n  // continuation bit. The continuation bit tells us whether there are more\\n  // digits in this value following this digit.\\n  //\\n  //   Continuation\\n  //   |    Sign\\n  //   |    |\\n  //   V    V\\n  //   101011\\n\\n  var VLQ_BASE_SHIFT = 5;\\n\\n  // binary: 100000\\n  var VLQ_BASE = 1 << VLQ_BASE_SHIFT;\\n\\n  // binary: 011111\\n  var VLQ_BASE_MASK = VLQ_BASE - 1;\\n\\n  // binary: 100000\\n  var VLQ_CONTINUATION_BIT = VLQ_BASE;\\n\\n  /**\\n   * Converts from a two-complement value to a value where the sign bit is\\n   * placed in the least significant bit.  For example, as decimals:\\n   *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\\n   *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\\n   */\\n  function toVLQSigned(aValue) {\\n    return aValue < 0\\n      ? ((-aValue) << 1) + 1\\n      : (aValue << 1) + 0;\\n  }\\n\\n  /**\\n   * Converts to a two-complement value from a value where the sign bit is\\n   * placed in the least significant bit.  For example, as decimals:\\n   *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\\n   *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\\n   */\\n  function fromVLQSigned(aValue) {\\n    var isNegative = (aValue & 1) === 1;\\n    var shifted = aValue >> 1;\\n    return isNegative\\n      ? -shifted\\n      : shifted;\\n  }\\n\\n  /**\\n   * Returns the base 64 VLQ encoded value.\\n   */\\n  exports.encode = function base64VLQ_encode(aValue) {\\n    var encoded = \\"\\";\\n    var digit;\\n\\n    var vlq = toVLQSigned(aValue);\\n\\n    do {\\n      digit = vlq & VLQ_BASE_MASK;\\n      vlq >>>= VLQ_BASE_SHIFT;\\n      if (vlq > 0) {\\n        // There are still more digits in this value, so we must make sure the\\n        // continuation bit is marked.\\n        digit |= VLQ_CONTINUATION_BIT;\\n      }\\n      encoded += base64.encode(digit);\\n    } while (vlq > 0);\\n\\n    return encoded;\\n  };\\n\\n  /**\\n   * Decodes the next base 64 VLQ value from the given string and returns the\\n   * value and the rest of the string via the out parameter.\\n   */\\n  exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\\n    var strLen = aStr.length;\\n    var result = 0;\\n    var shift = 0;\\n    var continuation, digit;\\n\\n    do {\\n      if (aIndex >= strLen) {\\n        throw new Error(\\"Expected more digits in base 64 VLQ value.\\");\\n      }\\n\\n      digit = base64.decode(aStr.charCodeAt(aIndex++));\\n      if (digit === -1) {\\n        throw new Error(\\"Invalid base64 digit: \\" + aStr.charAt(aIndex - 1));\\n      }\\n\\n      continuation = !!(digit & VLQ_CONTINUATION_BIT);\\n      digit &= VLQ_BASE_MASK;\\n      result = result + (digit << shift);\\n      shift += VLQ_BASE_SHIFT;\\n    } while (continuation);\\n\\n    aOutParam.value = fromVLQSigned(result);\\n    aOutParam.rest = aIndex;\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/base64-vlq.js\\n ** module id = 32\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var intToCharMap = \'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\'.split(\'\');\\n\\n  /**\\n   * Encode an integer in the range of 0 to 63 to a single base 64 digit.\\n   */\\n  exports.encode = function (number) {\\n    if (0 <= number && number < intToCharMap.length) {\\n      return intToCharMap[number];\\n    }\\n    throw new TypeError(\\"Must be between 0 and 63: \\" + number);\\n  };\\n\\n  /**\\n   * Decode a single base 64 character code digit to an integer. Returns -1 on\\n   * failure.\\n   */\\n  exports.decode = function (charCode) {\\n    var bigA = 65;     // \'A\'\\n    var bigZ = 90;     // \'Z\'\\n\\n    var littleA = 97;  // \'a\'\\n    var littleZ = 122; // \'z\'\\n\\n    var zero = 48;     // \'0\'\\n    var nine = 57;     // \'9\'\\n\\n    var plus = 43;     // \'+\'\\n    var slash = 47;    // \'/\'\\n\\n    var littleOffset = 26;\\n    var numberOffset = 52;\\n\\n    // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\\n    if (bigA <= charCode && charCode <= bigZ) {\\n      return (charCode - bigA);\\n    }\\n\\n    // 26 - 51: abcdefghijklmnopqrstuvwxyz\\n    if (littleA <= charCode && charCode <= littleZ) {\\n      return (charCode - littleA + littleOffset);\\n    }\\n\\n    // 52 - 61: 0123456789\\n    if (zero <= charCode && charCode <= nine) {\\n      return (charCode - zero + numberOffset);\\n    }\\n\\n    // 62: +\\n    if (charCode == plus) {\\n      return 62;\\n    }\\n\\n    // 63: /\\n    if (charCode == slash) {\\n      return 63;\\n    }\\n\\n    // Invalid base64 digit.\\n    return -1;\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/base64.js\\n ** module id = 33\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  /**\\n   * This is a helper function for getting values from parameter/options\\n   * objects.\\n   *\\n   * @param args The object we are extracting values from\\n   * @param name The name of the property we are getting.\\n   * @param defaultValue An optional value to return if the property is missing\\n   * from the object. If this is not specified and the property is missing, an\\n   * error will be thrown.\\n   */\\n  function getArg(aArgs, aName, aDefaultValue) {\\n    if (aName in aArgs) {\\n      return aArgs[aName];\\n    } else if (arguments.length === 3) {\\n      return aDefaultValue;\\n    } else {\\n      throw new Error(\'\\"\' + aName + \'\\" is a required argument.\');\\n    }\\n  }\\n  exports.getArg = getArg;\\n\\n  var urlRegexp = /^(?:([\\\\w+\\\\-.]+):)?\\\\/\\\\/(?:(\\\\w+:\\\\w+)@)?([\\\\w.]*)(?::(\\\\d+))?(\\\\S*)$/;\\n  var dataUrlRegexp = /^data:.+\\\\,.+$/;\\n\\n  function urlParse(aUrl) {\\n    var match = aUrl.match(urlRegexp);\\n    if (!match) {\\n      return null;\\n    }\\n    return {\\n      scheme: match[1],\\n      auth: match[2],\\n      host: match[3],\\n      port: match[4],\\n      path: match[5]\\n    };\\n  }\\n  exports.urlParse = urlParse;\\n\\n  function urlGenerate(aParsedUrl) {\\n    var url = \'\';\\n    if (aParsedUrl.scheme) {\\n      url += aParsedUrl.scheme + \':\';\\n    }\\n    url += \'//\';\\n    if (aParsedUrl.auth) {\\n      url += aParsedUrl.auth + \'@\';\\n    }\\n    if (aParsedUrl.host) {\\n      url += aParsedUrl.host;\\n    }\\n    if (aParsedUrl.port) {\\n      url += \\":\\" + aParsedUrl.port\\n    }\\n    if (aParsedUrl.path) {\\n      url += aParsedUrl.path;\\n    }\\n    return url;\\n  }\\n  exports.urlGenerate = urlGenerate;\\n\\n  /**\\n   * Normalizes a path, or the path portion of a URL:\\n   *\\n   * - Replaces consequtive slashes with one slash.\\n   * - Removes unnecessary \'.\' parts.\\n   * - Removes unnecessary \'<dir>/..\' parts.\\n   *\\n   * Based on code in the Node.js \'path\' core module.\\n   *\\n   * @param aPath The path or url to normalize.\\n   */\\n  function normalize(aPath) {\\n    var path = aPath;\\n    var url = urlParse(aPath);\\n    if (url) {\\n      if (!url.path) {\\n        return aPath;\\n      }\\n      path = url.path;\\n    }\\n    var isAbsolute = exports.isAbsolute(path);\\n\\n    var parts = path.split(/\\\\/+/);\\n    for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\\n      part = parts[i];\\n      if (part === \'.\') {\\n        parts.splice(i, 1);\\n      } else if (part === \'..\') {\\n        up++;\\n      } else if (up > 0) {\\n        if (part === \'\') {\\n          // The first part is blank if the path is absolute. Trying to go\\n          // above the root is a no-op. Therefore we can remove all \'..\' parts\\n          // directly after the root.\\n          parts.splice(i + 1, up);\\n          up = 0;\\n        } else {\\n          parts.splice(i, 2);\\n          up--;\\n        }\\n      }\\n    }\\n    path = parts.join(\'/\');\\n\\n    if (path === \'\') {\\n      path = isAbsolute ? \'/\' : \'.\';\\n    }\\n\\n    if (url) {\\n      url.path = path;\\n      return urlGenerate(url);\\n    }\\n    return path;\\n  }\\n  exports.normalize = normalize;\\n\\n  /**\\n   * Joins two paths/URLs.\\n   *\\n   * @param aRoot The root path or URL.\\n   * @param aPath The path or URL to be joined with the root.\\n   *\\n   * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\\n   *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\\n   *   first.\\n   * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\\n   *   is updated with the result and aRoot is returned. Otherwise the result\\n   *   is returned.\\n   *   - If aPath is absolute, the result is aPath.\\n   *   - Otherwise the two paths are joined with a slash.\\n   * - Joining for example \'http://\' and \'www.example.com\' is also supported.\\n   */\\n  function join(aRoot, aPath) {\\n    if (aRoot === \\"\\") {\\n      aRoot = \\".\\";\\n    }\\n    if (aPath === \\"\\") {\\n      aPath = \\".\\";\\n    }\\n    var aPathUrl = urlParse(aPath);\\n    var aRootUrl = urlParse(aRoot);\\n    if (aRootUrl) {\\n      aRoot = aRootUrl.path || \'/\';\\n    }\\n\\n    // `join(foo, \'//www.example.org\')`\\n    if (aPathUrl && !aPathUrl.scheme) {\\n      if (aRootUrl) {\\n        aPathUrl.scheme = aRootUrl.scheme;\\n      }\\n      return urlGenerate(aPathUrl);\\n    }\\n\\n    if (aPathUrl || aPath.match(dataUrlRegexp)) {\\n      return aPath;\\n    }\\n\\n    // `join(\'http://\', \'www.example.com\')`\\n    if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\\n      aRootUrl.host = aPath;\\n      return urlGenerate(aRootUrl);\\n    }\\n\\n    var joined = aPath.charAt(0) === \'/\'\\n      ? aPath\\n      : normalize(aRoot.replace(/\\\\/+$/, \'\') + \'/\' + aPath);\\n\\n    if (aRootUrl) {\\n      aRootUrl.path = joined;\\n      return urlGenerate(aRootUrl);\\n    }\\n    return joined;\\n  }\\n  exports.join = join;\\n\\n  exports.isAbsolute = function (aPath) {\\n    return aPath.charAt(0) === \'/\' || !!aPath.match(urlRegexp);\\n  };\\n\\n  /**\\n   * Make a path relative to a URL or another path.\\n   *\\n   * @param aRoot The root path or URL.\\n   * @param aPath The path or URL to be made relative to aRoot.\\n   */\\n  function relative(aRoot, aPath) {\\n    if (aRoot === \\"\\") {\\n      aRoot = \\".\\";\\n    }\\n\\n    aRoot = aRoot.replace(/\\\\/$/, \'\');\\n\\n    // It is possible for the path to be above the root. In this case, simply\\n    // checking whether the root is a prefix of the path won\'t work. Instead, we\\n    // need to remove components from the root one by one, until either we find\\n    // a prefix that fits, or we run out of components to remove.\\n    var level = 0;\\n    while (aPath.indexOf(aRoot + \'/\') !== 0) {\\n      var index = aRoot.lastIndexOf(\\"/\\");\\n      if (index < 0) {\\n        return aPath;\\n      }\\n\\n      // If the only part of the root that is left is the scheme (i.e. http://,\\n      // file:///, etc.), one or more slashes (/), or simply nothing at all, we\\n      // have exhausted all components, so the path is not relative to the root.\\n      aRoot = aRoot.slice(0, index);\\n      if (aRoot.match(/^([^\\\\/]+:\\\\/)?\\\\/*$/)) {\\n        return aPath;\\n      }\\n\\n      ++level;\\n    }\\n\\n    // Make sure we add a \\"../\\" for each component we removed from the root.\\n    return Array(level + 1).join(\\"../\\") + aPath.substr(aRoot.length + 1);\\n  }\\n  exports.relative = relative;\\n\\n  /**\\n   * Because behavior goes wacky when you set `__proto__` on objects, we\\n   * have to prefix all the strings in our set with an arbitrary character.\\n   *\\n   * See https://github.com/mozilla/source-map/pull/31 and\\n   * https://github.com/mozilla/source-map/issues/30\\n   *\\n   * @param String aStr\\n   */\\n  function toSetString(aStr) {\\n    return \'$\' + aStr;\\n  }\\n  exports.toSetString = toSetString;\\n\\n  function fromSetString(aStr) {\\n    return aStr.substr(1);\\n  }\\n  exports.fromSetString = fromSetString;\\n\\n  /**\\n   * Comparator between two mappings where the original positions are compared.\\n   *\\n   * Optionally pass in `true` as `onlyCompareGenerated` to consider two\\n   * mappings with the same original source/line/column, but different generated\\n   * line and column the same. Useful when searching for a mapping with a\\n   * stubbed out mapping.\\n   */\\n  function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\\n    var cmp = mappingA.source - mappingB.source;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalLine - mappingB.originalLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalColumn - mappingB.originalColumn;\\n    if (cmp !== 0 || onlyCompareOriginal) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedColumn - mappingB.generatedColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedLine - mappingB.generatedLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    return mappingA.name - mappingB.name;\\n  }\\n  exports.compareByOriginalPositions = compareByOriginalPositions;\\n\\n  /**\\n   * Comparator between two mappings with deflated source and name indices where\\n   * the generated positions are compared.\\n   *\\n   * Optionally pass in `true` as `onlyCompareGenerated` to consider two\\n   * mappings with the same generated line and column, but different\\n   * source/name/original line and column the same. Useful when searching for a\\n   * mapping with a stubbed out mapping.\\n   */\\n  function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\\n    var cmp = mappingA.generatedLine - mappingB.generatedLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedColumn - mappingB.generatedColumn;\\n    if (cmp !== 0 || onlyCompareGenerated) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.source - mappingB.source;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalLine - mappingB.originalLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalColumn - mappingB.originalColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    return mappingA.name - mappingB.name;\\n  }\\n  exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\\n\\n  function strcmp(aStr1, aStr2) {\\n    if (aStr1 === aStr2) {\\n      return 0;\\n    }\\n\\n    if (aStr1 > aStr2) {\\n      return 1;\\n    }\\n\\n    return -1;\\n  }\\n\\n  /**\\n   * Comparator between two mappings with inflated source and name strings where\\n   * the generated positions are compared.\\n   */\\n  function compareByGeneratedPositionsInflated(mappingA, mappingB) {\\n    var cmp = mappingA.generatedLine - mappingB.generatedLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedColumn - mappingB.generatedColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = strcmp(mappingA.source, mappingB.source);\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalLine - mappingB.originalLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalColumn - mappingB.originalColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    return strcmp(mappingA.name, mappingB.name);\\n  }\\n  exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/util.js\\n ** module id = 34\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var util = require(\'./util\');\\n\\n  /**\\n   * A data structure which is a combination of an array and a set. Adding a new\\n   * member is O(1), testing for membership is O(1), and finding the index of an\\n   * element is O(1). Removing elements from the set is not supported. Only\\n   * strings are supported for membership.\\n   */\\n  function ArraySet() {\\n    this._array = [];\\n    this._set = {};\\n  }\\n\\n  /**\\n   * Static method for creating ArraySet instances from an existing array.\\n   */\\n  ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\\n    var set = new ArraySet();\\n    for (var i = 0, len = aArray.length; i < len; i++) {\\n      set.add(aArray[i], aAllowDuplicates);\\n    }\\n    return set;\\n  };\\n\\n  /**\\n   * Return how many unique items are in this ArraySet. If duplicates have been\\n   * added, than those do not count towards the size.\\n   *\\n   * @returns Number\\n   */\\n  ArraySet.prototype.size = function ArraySet_size() {\\n    return Object.getOwnPropertyNames(this._set).length;\\n  };\\n\\n  /**\\n   * Add the given string to this set.\\n   *\\n   * @param String aStr\\n   */\\n  ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\\n    var sStr = util.toSetString(aStr);\\n    var isDuplicate = this._set.hasOwnProperty(sStr);\\n    var idx = this._array.length;\\n    if (!isDuplicate || aAllowDuplicates) {\\n      this._array.push(aStr);\\n    }\\n    if (!isDuplicate) {\\n      this._set[sStr] = idx;\\n    }\\n  };\\n\\n  /**\\n   * Is the given string a member of this set?\\n   *\\n   * @param String aStr\\n   */\\n  ArraySet.prototype.has = function ArraySet_has(aStr) {\\n    var sStr = util.toSetString(aStr);\\n    return this._set.hasOwnProperty(sStr);\\n  };\\n\\n  /**\\n   * What is the index of the given string in the array?\\n   *\\n   * @param String aStr\\n   */\\n  ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\\n    var sStr = util.toSetString(aStr);\\n    if (this._set.hasOwnProperty(sStr)) {\\n      return this._set[sStr];\\n    }\\n    throw new Error(\'\\"\' + aStr + \'\\" is not in the set.\');\\n  };\\n\\n  /**\\n   * What is the element at the given index?\\n   *\\n   * @param Number aIdx\\n   */\\n  ArraySet.prototype.at = function ArraySet_at(aIdx) {\\n    if (aIdx >= 0 && aIdx < this._array.length) {\\n      return this._array[aIdx];\\n    }\\n    throw new Error(\'No element indexed by \' + aIdx);\\n  };\\n\\n  /**\\n   * Returns the array representation of this set (which has the proper indices\\n   * indicated by indexOf). Note that this is a copy of the internal array used\\n   * for storing the members so that no one can mess with internal state.\\n   */\\n  ArraySet.prototype.toArray = function ArraySet_toArray() {\\n    return this._array.slice();\\n  };\\n\\n  exports.ArraySet = ArraySet;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/array-set.js\\n ** module id = 35\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2014 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var util = require(\'./util\');\\n\\n  /**\\n   * Determine whether mappingB is after mappingA with respect to generated\\n   * position.\\n   */\\n  function generatedPositionAfter(mappingA, mappingB) {\\n    // Optimized for most common case\\n    var lineA = mappingA.generatedLine;\\n    var lineB = mappingB.generatedLine;\\n    var columnA = mappingA.generatedColumn;\\n    var columnB = mappingB.generatedColumn;\\n    return lineB > lineA || lineB == lineA && columnB >= columnA ||\\n           util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\\n  }\\n\\n  /**\\n   * A data structure to provide a sorted view of accumulated mappings in a\\n   * performance conscious manner. It trades a neglibable overhead in general\\n   * case for a large speedup in case of mappings being added in order.\\n   */\\n  function MappingList() {\\n    this._array = [];\\n    this._sorted = true;\\n    // Serves as infimum\\n    this._last = {generatedLine: -1, generatedColumn: 0};\\n  }\\n\\n  /**\\n   * Iterate through internal items. This method takes the same arguments that\\n   * `Array.prototype.forEach` takes.\\n   *\\n   * NOTE: The order of the mappings is NOT guaranteed.\\n   */\\n  MappingList.prototype.unsortedForEach =\\n    function MappingList_forEach(aCallback, aThisArg) {\\n      this._array.forEach(aCallback, aThisArg);\\n    };\\n\\n  /**\\n   * Add the given source mapping.\\n   *\\n   * @param Object aMapping\\n   */\\n  MappingList.prototype.add = function MappingList_add(aMapping) {\\n    if (generatedPositionAfter(this._last, aMapping)) {\\n      this._last = aMapping;\\n      this._array.push(aMapping);\\n    } else {\\n      this._sorted = false;\\n      this._array.push(aMapping);\\n    }\\n  };\\n\\n  /**\\n   * Returns the flat, sorted array of mappings. The mappings are sorted by\\n   * generated position.\\n   *\\n   * WARNING: This method returns internal data without copying, for\\n   * performance. The return value must NOT be mutated, and should be treated as\\n   * an immutable borrow. If you want to take ownership, you must make your own\\n   * copy.\\n   */\\n  MappingList.prototype.toArray = function MappingList_toArray() {\\n    if (!this._sorted) {\\n      this._array.sort(util.compareByGeneratedPositionsInflated);\\n      this._sorted = true;\\n    }\\n    return this._array;\\n  };\\n\\n  exports.MappingList = MappingList;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/mapping-list.js\\n ** module id = 36\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var util = require(\'./util\');\\n  var binarySearch = require(\'./binary-search\');\\n  var ArraySet = require(\'./array-set\').ArraySet;\\n  var base64VLQ = require(\'./base64-vlq\');\\n  var quickSort = require(\'./quick-sort\').quickSort;\\n\\n  function SourceMapConsumer(aSourceMap) {\\n    var sourceMap = aSourceMap;\\n    if (typeof aSourceMap === \'string\') {\\n      sourceMap = JSON.parse(aSourceMap.replace(/^\\\\)\\\\]\\\\}\'/, \'\'));\\n    }\\n\\n    return sourceMap.sections != null\\n      ? new IndexedSourceMapConsumer(sourceMap)\\n      : new BasicSourceMapConsumer(sourceMap);\\n  }\\n\\n  SourceMapConsumer.fromSourceMap = function(aSourceMap) {\\n    return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\\n  }\\n\\n  /**\\n   * The version of the source mapping spec that we are consuming.\\n   */\\n  SourceMapConsumer.prototype._version = 3;\\n\\n  // `__generatedMappings` and `__originalMappings` are arrays that hold the\\n  // parsed mapping coordinates from the source map\'s \\"mappings\\" attribute. They\\n  // are lazily instantiated, accessed via the `_generatedMappings` and\\n  // `_originalMappings` getters respectively, and we only parse the mappings\\n  // and create these arrays once queried for a source location. We jump through\\n  // these hoops because there can be many thousands of mappings, and parsing\\n  // them is expensive, so we only want to do it if we must.\\n  //\\n  // Each object in the arrays is of the form:\\n  //\\n  //     {\\n  //       generatedLine: The line number in the generated code,\\n  //       generatedColumn: The column number in the generated code,\\n  //       source: The path to the original source file that generated this\\n  //               chunk of code,\\n  //       originalLine: The line number in the original source that\\n  //                     corresponds to this chunk of generated code,\\n  //       originalColumn: The column number in the original source that\\n  //                       corresponds to this chunk of generated code,\\n  //       name: The name of the original symbol which generated this chunk of\\n  //             code.\\n  //     }\\n  //\\n  // All properties except for `generatedLine` and `generatedColumn` can be\\n  // `null`.\\n  //\\n  // `_generatedMappings` is ordered by the generated positions.\\n  //\\n  // `_originalMappings` is ordered by the original positions.\\n\\n  SourceMapConsumer.prototype.__generatedMappings = null;\\n  Object.defineProperty(SourceMapConsumer.prototype, \'_generatedMappings\', {\\n    get: function () {\\n      if (!this.__generatedMappings) {\\n        this._parseMappings(this._mappings, this.sourceRoot);\\n      }\\n\\n      return this.__generatedMappings;\\n    }\\n  });\\n\\n  SourceMapConsumer.prototype.__originalMappings = null;\\n  Object.defineProperty(SourceMapConsumer.prototype, \'_originalMappings\', {\\n    get: function () {\\n      if (!this.__originalMappings) {\\n        this._parseMappings(this._mappings, this.sourceRoot);\\n      }\\n\\n      return this.__originalMappings;\\n    }\\n  });\\n\\n  SourceMapConsumer.prototype._charIsMappingSeparator =\\n    function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\\n      var c = aStr.charAt(index);\\n      return c === \\";\\" || c === \\",\\";\\n    };\\n\\n  /**\\n   * Parse the mappings in a string in to a data structure which we can easily\\n   * query (the ordered arrays in the `this.__generatedMappings` and\\n   * `this.__originalMappings` properties).\\n   */\\n  SourceMapConsumer.prototype._parseMappings =\\n    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\\n      throw new Error(\\"Subclasses must implement _parseMappings\\");\\n    };\\n\\n  SourceMapConsumer.GENERATED_ORDER = 1;\\n  SourceMapConsumer.ORIGINAL_ORDER = 2;\\n\\n  SourceMapConsumer.GREATEST_LOWER_BOUND = 1;\\n  SourceMapConsumer.LEAST_UPPER_BOUND = 2;\\n\\n  /**\\n   * Iterate over each mapping between an original source/line/column and a\\n   * generated line/column in this source map.\\n   *\\n   * @param Function aCallback\\n   *        The function that is called with each mapping.\\n   * @param Object aContext\\n   *        Optional. If specified, this object will be the value of `this` every\\n   *        time that `aCallback` is called.\\n   * @param aOrder\\n   *        Either `SourceMapConsumer.GENERATED_ORDER` or\\n   *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\\n   *        iterate over the mappings sorted by the generated file\'s line/column\\n   *        order or the original\'s source/line/column order, respectively. Defaults to\\n   *        `SourceMapConsumer.GENERATED_ORDER`.\\n   */\\n  SourceMapConsumer.prototype.eachMapping =\\n    function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\\n      var context = aContext || null;\\n      var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\\n\\n      var mappings;\\n      switch (order) {\\n      case SourceMapConsumer.GENERATED_ORDER:\\n        mappings = this._generatedMappings;\\n        break;\\n      case SourceMapConsumer.ORIGINAL_ORDER:\\n        mappings = this._originalMappings;\\n        break;\\n      default:\\n        throw new Error(\\"Unknown order of iteration.\\");\\n      }\\n\\n      var sourceRoot = this.sourceRoot;\\n      mappings.map(function (mapping) {\\n        var source = mapping.source === null ? null : this._sources.at(mapping.source);\\n        if (source != null && sourceRoot != null) {\\n          source = util.join(sourceRoot, source);\\n        }\\n        return {\\n          source: source,\\n          generatedLine: mapping.generatedLine,\\n          generatedColumn: mapping.generatedColumn,\\n          originalLine: mapping.originalLine,\\n          originalColumn: mapping.originalColumn,\\n          name: mapping.name === null ? null : this._names.at(mapping.name)\\n        };\\n      }, this).forEach(aCallback, context);\\n    };\\n\\n  /**\\n   * Returns all generated line and column information for the original source,\\n   * line, and column provided. If no column is provided, returns all mappings\\n   * corresponding to a either the line we are searching for or the next\\n   * closest line that has any mappings. Otherwise, returns all mappings\\n   * corresponding to the given line and either the column we are searching for\\n   * or the next closest column that has any offsets.\\n   *\\n   * The only argument is an object with the following properties:\\n   *\\n   *   - source: The filename of the original source.\\n   *   - line: The line number in the original source.\\n   *   - column: Optional. the column number in the original source.\\n   *\\n   * and an array of objects is returned, each with the following properties:\\n   *\\n   *   - line: The line number in the generated source, or null.\\n   *   - column: The column number in the generated source, or null.\\n   */\\n  SourceMapConsumer.prototype.allGeneratedPositionsFor =\\n    function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\\n      var line = util.getArg(aArgs, \'line\');\\n\\n      // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\\n      // returns the index of the closest mapping less than the needle. By\\n      // setting needle.originalColumn to 0, we thus find the last mapping for\\n      // the given line, provided such a mapping exists.\\n      var needle = {\\n        source: util.getArg(aArgs, \'source\'),\\n        originalLine: line,\\n        originalColumn: util.getArg(aArgs, \'column\', 0)\\n      };\\n\\n      if (this.sourceRoot != null) {\\n        needle.source = util.relative(this.sourceRoot, needle.source);\\n      }\\n      if (!this._sources.has(needle.source)) {\\n        return [];\\n      }\\n      needle.source = this._sources.indexOf(needle.source);\\n\\n      var mappings = [];\\n\\n      var index = this._findMapping(needle,\\n                                    this._originalMappings,\\n                                    \\"originalLine\\",\\n                                    \\"originalColumn\\",\\n                                    util.compareByOriginalPositions,\\n                                    binarySearch.LEAST_UPPER_BOUND);\\n      if (index >= 0) {\\n        var mapping = this._originalMappings[index];\\n\\n        if (aArgs.column === undefined) {\\n          var originalLine = mapping.originalLine;\\n\\n          // Iterate until either we run out of mappings, or we run into\\n          // a mapping for a different line than the one we found. Since\\n          // mappings are sorted, this is guaranteed to find all mappings for\\n          // the line we found.\\n          while (mapping && mapping.originalLine === originalLine) {\\n            mappings.push({\\n              line: util.getArg(mapping, \'generatedLine\', null),\\n              column: util.getArg(mapping, \'generatedColumn\', null),\\n              lastColumn: util.getArg(mapping, \'lastGeneratedColumn\', null)\\n            });\\n\\n            mapping = this._originalMappings[++index];\\n          }\\n        } else {\\n          var originalColumn = mapping.originalColumn;\\n\\n          // Iterate until either we run out of mappings, or we run into\\n          // a mapping for a different line than the one we were searching for.\\n          // Since mappings are sorted, this is guaranteed to find all mappings for\\n          // the line we are searching for.\\n          while (mapping &&\\n                 mapping.originalLine === line &&\\n                 mapping.originalColumn == originalColumn) {\\n            mappings.push({\\n              line: util.getArg(mapping, \'generatedLine\', null),\\n              column: util.getArg(mapping, \'generatedColumn\', null),\\n              lastColumn: util.getArg(mapping, \'lastGeneratedColumn\', null)\\n            });\\n\\n            mapping = this._originalMappings[++index];\\n          }\\n        }\\n      }\\n\\n      return mappings;\\n    };\\n\\n  exports.SourceMapConsumer = SourceMapConsumer;\\n\\n  /**\\n   * A BasicSourceMapConsumer instance represents a parsed source map which we can\\n   * query for information about the original file positions by giving it a file\\n   * position in the generated source.\\n   *\\n   * The only parameter is the raw source map (either as a JSON string, or\\n   * already parsed to an object). According to the spec, source maps have the\\n   * following attributes:\\n   *\\n   *   - version: Which version of the source map spec this map is following.\\n   *   - sources: An array of URLs to the original source files.\\n   *   - names: An array of identifiers which can be referrenced by individual mappings.\\n   *   - sourceRoot: Optional. The URL root from which all sources are relative.\\n   *   - sourcesContent: Optional. An array of contents of the original source files.\\n   *   - mappings: A string of base64 VLQs which contain the actual mappings.\\n   *   - file: Optional. The generated file this source map is associated with.\\n   *\\n   * Here is an example source map, taken from the source map spec[0]:\\n   *\\n   *     {\\n   *       version : 3,\\n   *       file: \\"out.js\\",\\n   *       sourceRoot : \\"\\",\\n   *       sources: [\\"foo.js\\", \\"bar.js\\"],\\n   *       names: [\\"src\\", \\"maps\\", \\"are\\", \\"fun\\"],\\n   *       mappings: \\"AA,AB;;ABCDE;\\"\\n   *     }\\n   *\\n   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\\n   */\\n  function BasicSourceMapConsumer(aSourceMap) {\\n    var sourceMap = aSourceMap;\\n    if (typeof aSourceMap === \'string\') {\\n      sourceMap = JSON.parse(aSourceMap.replace(/^\\\\)\\\\]\\\\}\'/, \'\'));\\n    }\\n\\n    var version = util.getArg(sourceMap, \'version\');\\n    var sources = util.getArg(sourceMap, \'sources\');\\n    // Sass 3.3 leaves out the \'names\' array, so we deviate from the spec (which\\n    // requires the array) to play nice here.\\n    var names = util.getArg(sourceMap, \'names\', []);\\n    var sourceRoot = util.getArg(sourceMap, \'sourceRoot\', null);\\n    var sourcesContent = util.getArg(sourceMap, \'sourcesContent\', null);\\n    var mappings = util.getArg(sourceMap, \'mappings\');\\n    var file = util.getArg(sourceMap, \'file\', null);\\n\\n    // Once again, Sass deviates from the spec and supplies the version as a\\n    // string rather than a number, so we use loose equality checking here.\\n    if (version != this._version) {\\n      throw new Error(\'Unsupported version: \' + version);\\n    }\\n\\n    sources = sources\\n      // Some source maps produce relative source paths like \\"./foo.js\\" instead of\\n      // \\"foo.js\\".  Normalize these first so that future comparisons will succeed.\\n      // See bugzil.la/1090768.\\n      .map(util.normalize)\\n      // Always ensure that absolute sources are internally stored relative to\\n      // the source root, if the source root is absolute. Not doing this would\\n      // be particularly problematic when the source root is a prefix of the\\n      // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\\n      .map(function (source) {\\n        return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\\n          ? util.relative(sourceRoot, source)\\n          : source;\\n      });\\n\\n    // Pass `true` below to allow duplicate names and sources. While source maps\\n    // are intended to be compressed and deduplicated, the TypeScript compiler\\n    // sometimes generates source maps with duplicates in them. See Github issue\\n    // #72 and bugzil.la/889492.\\n    this._names = ArraySet.fromArray(names, true);\\n    this._sources = ArraySet.fromArray(sources, true);\\n\\n    this.sourceRoot = sourceRoot;\\n    this.sourcesContent = sourcesContent;\\n    this._mappings = mappings;\\n    this.file = file;\\n  }\\n\\n  BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\\n  BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\\n\\n  /**\\n   * Create a BasicSourceMapConsumer from a SourceMapGenerator.\\n   *\\n   * @param SourceMapGenerator aSourceMap\\n   *        The source map that will be consumed.\\n   * @returns BasicSourceMapConsumer\\n   */\\n  BasicSourceMapConsumer.fromSourceMap =\\n    function SourceMapConsumer_fromSourceMap(aSourceMap) {\\n      var smc = Object.create(BasicSourceMapConsumer.prototype);\\n\\n      var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\\n      var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\\n      smc.sourceRoot = aSourceMap._sourceRoot;\\n      smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\\n                                                              smc.sourceRoot);\\n      smc.file = aSourceMap._file;\\n\\n      // Because we are modifying the entries (by converting string sources and\\n      // names to indices into the sources and names ArraySets), we have to make\\n      // a copy of the entry or else bad things happen. Shared mutable state\\n      // strikes again! See github issue #191.\\n\\n      var generatedMappings = aSourceMap._mappings.toArray().slice();\\n      var destGeneratedMappings = smc.__generatedMappings = [];\\n      var destOriginalMappings = smc.__originalMappings = [];\\n\\n      for (var i = 0, length = generatedMappings.length; i < length; i++) {\\n        var srcMapping = generatedMappings[i];\\n        var destMapping = new Mapping;\\n        destMapping.generatedLine = srcMapping.generatedLine;\\n        destMapping.generatedColumn = srcMapping.generatedColumn;\\n\\n        if (srcMapping.source) {\\n          destMapping.source = sources.indexOf(srcMapping.source);\\n          destMapping.originalLine = srcMapping.originalLine;\\n          destMapping.originalColumn = srcMapping.originalColumn;\\n\\n          if (srcMapping.name) {\\n            destMapping.name = names.indexOf(srcMapping.name);\\n          }\\n\\n          destOriginalMappings.push(destMapping);\\n        }\\n\\n        destGeneratedMappings.push(destMapping);\\n      }\\n\\n      quickSort(smc.__originalMappings, util.compareByOriginalPositions);\\n\\n      return smc;\\n    };\\n\\n  /**\\n   * The version of the source mapping spec that we are consuming.\\n   */\\n  BasicSourceMapConsumer.prototype._version = 3;\\n\\n  /**\\n   * The list of original sources.\\n   */\\n  Object.defineProperty(BasicSourceMapConsumer.prototype, \'sources\', {\\n    get: function () {\\n      return this._sources.toArray().map(function (s) {\\n        return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\\n      }, this);\\n    }\\n  });\\n\\n  /**\\n   * Provide the JIT with a nice shape / hidden class.\\n   */\\n  function Mapping() {\\n    this.generatedLine = 0;\\n    this.generatedColumn = 0;\\n    this.source = null;\\n    this.originalLine = null;\\n    this.originalColumn = null;\\n    this.name = null;\\n  }\\n\\n  /**\\n   * Parse the mappings in a string in to a data structure which we can easily\\n   * query (the ordered arrays in the `this.__generatedMappings` and\\n   * `this.__originalMappings` properties).\\n   */\\n  BasicSourceMapConsumer.prototype._parseMappings =\\n    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\\n      var generatedLine = 1;\\n      var previousGeneratedColumn = 0;\\n      var previousOriginalLine = 0;\\n      var previousOriginalColumn = 0;\\n      var previousSource = 0;\\n      var previousName = 0;\\n      var length = aStr.length;\\n      var index = 0;\\n      var cachedSegments = {};\\n      var temp = {};\\n      var originalMappings = [];\\n      var generatedMappings = [];\\n      var mapping, str, segment, end, value;\\n\\n      while (index < length) {\\n        if (aStr.charAt(index) === \';\') {\\n          generatedLine++;\\n          index++;\\n          previousGeneratedColumn = 0;\\n        }\\n        else if (aStr.charAt(index) === \',\') {\\n          index++;\\n        }\\n        else {\\n          mapping = new Mapping();\\n          mapping.generatedLine = generatedLine;\\n\\n          // Because each offset is encoded relative to the previous one,\\n          // many segments often have the same encoding. We can exploit this\\n          // fact by caching the parsed variable length fields of each segment,\\n          // allowing us to avoid a second parse if we encounter the same\\n          // segment again.\\n          for (end = index; end < length; end++) {\\n            if (this._charIsMappingSeparator(aStr, end)) {\\n              break;\\n            }\\n          }\\n          str = aStr.slice(index, end);\\n\\n          segment = cachedSegments[str];\\n          if (segment) {\\n            index += str.length;\\n          } else {\\n            segment = [];\\n            while (index < end) {\\n              base64VLQ.decode(aStr, index, temp);\\n              value = temp.value;\\n              index = temp.rest;\\n              segment.push(value);\\n            }\\n\\n            if (segment.length === 2) {\\n              throw new Error(\'Found a source, but no line and column\');\\n            }\\n\\n            if (segment.length === 3) {\\n              throw new Error(\'Found a source and line, but no column\');\\n            }\\n\\n            cachedSegments[str] = segment;\\n          }\\n\\n          // Generated column.\\n          mapping.generatedColumn = previousGeneratedColumn + segment[0];\\n          previousGeneratedColumn = mapping.generatedColumn;\\n\\n          if (segment.length > 1) {\\n            // Original source.\\n            mapping.source = previousSource + segment[1];\\n            previousSource += segment[1];\\n\\n            // Original line.\\n            mapping.originalLine = previousOriginalLine + segment[2];\\n            previousOriginalLine = mapping.originalLine;\\n            // Lines are stored 0-based\\n            mapping.originalLine += 1;\\n\\n            // Original column.\\n            mapping.originalColumn = previousOriginalColumn + segment[3];\\n            previousOriginalColumn = mapping.originalColumn;\\n\\n            if (segment.length > 4) {\\n              // Original name.\\n              mapping.name = previousName + segment[4];\\n              previousName += segment[4];\\n            }\\n          }\\n\\n          generatedMappings.push(mapping);\\n          if (typeof mapping.originalLine === \'number\') {\\n            originalMappings.push(mapping);\\n          }\\n        }\\n      }\\n\\n      quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\\n      this.__generatedMappings = generatedMappings;\\n\\n      quickSort(originalMappings, util.compareByOriginalPositions);\\n      this.__originalMappings = originalMappings;\\n    };\\n\\n  /**\\n   * Find the mapping that best matches the hypothetical \\"needle\\" mapping that\\n   * we are searching for in the given \\"haystack\\" of mappings.\\n   */\\n  BasicSourceMapConsumer.prototype._findMapping =\\n    function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\\n                                           aColumnName, aComparator, aBias) {\\n      // To return the position we are searching for, we must first find the\\n      // mapping for the given position and then return the opposite position it\\n      // points to. Because the mappings are sorted, we can use binary search to\\n      // find the best mapping.\\n\\n      if (aNeedle[aLineName] <= 0) {\\n        throw new TypeError(\'Line must be greater than or equal to 1, got \'\\n                            + aNeedle[aLineName]);\\n      }\\n      if (aNeedle[aColumnName] < 0) {\\n        throw new TypeError(\'Column must be greater than or equal to 0, got \'\\n                            + aNeedle[aColumnName]);\\n      }\\n\\n      return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\\n    };\\n\\n  /**\\n   * Compute the last column for each generated mapping. The last column is\\n   * inclusive.\\n   */\\n  BasicSourceMapConsumer.prototype.computeColumnSpans =\\n    function SourceMapConsumer_computeColumnSpans() {\\n      for (var index = 0; index < this._generatedMappings.length; ++index) {\\n        var mapping = this._generatedMappings[index];\\n\\n        // Mappings do not contain a field for the last generated columnt. We\\n        // can come up with an optimistic estimate, however, by assuming that\\n        // mappings are contiguous (i.e. given two consecutive mappings, the\\n        // first mapping ends where the second one starts).\\n        if (index + 1 < this._generatedMappings.length) {\\n          var nextMapping = this._generatedMappings[index + 1];\\n\\n          if (mapping.generatedLine === nextMapping.generatedLine) {\\n            mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\\n            continue;\\n          }\\n        }\\n\\n        // The last mapping for each line spans the entire line.\\n        mapping.lastGeneratedColumn = Infinity;\\n      }\\n    };\\n\\n  /**\\n   * Returns the original source, line, and column information for the generated\\n   * source\'s line and column positions provided. The only argument is an object\\n   * with the following properties:\\n   *\\n   *   - line: The line number in the generated source.\\n   *   - column: The column number in the generated source.\\n   *   - bias: Either \'SourceMapConsumer.GREATEST_LOWER_BOUND\' or\\n   *     \'SourceMapConsumer.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   *     Defaults to \'SourceMapConsumer.GREATEST_LOWER_BOUND\'.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - source: The original source file, or null.\\n   *   - line: The line number in the original source, or null.\\n   *   - column: The column number in the original source, or null.\\n   *   - name: The original identifier, or null.\\n   */\\n  BasicSourceMapConsumer.prototype.originalPositionFor =\\n    function SourceMapConsumer_originalPositionFor(aArgs) {\\n      var needle = {\\n        generatedLine: util.getArg(aArgs, \'line\'),\\n        generatedColumn: util.getArg(aArgs, \'column\')\\n      };\\n\\n      var index = this._findMapping(\\n        needle,\\n        this._generatedMappings,\\n        \\"generatedLine\\",\\n        \\"generatedColumn\\",\\n        util.compareByGeneratedPositionsDeflated,\\n        util.getArg(aArgs, \'bias\', SourceMapConsumer.GREATEST_LOWER_BOUND)\\n      );\\n\\n      if (index >= 0) {\\n        var mapping = this._generatedMappings[index];\\n\\n        if (mapping.generatedLine === needle.generatedLine) {\\n          var source = util.getArg(mapping, \'source\', null);\\n          if (source !== null) {\\n            source = this._sources.at(source);\\n            if (this.sourceRoot != null) {\\n              source = util.join(this.sourceRoot, source);\\n            }\\n          }\\n          var name = util.getArg(mapping, \'name\', null);\\n          if (name !== null) {\\n            name = this._names.at(name);\\n          }\\n          return {\\n            source: source,\\n            line: util.getArg(mapping, \'originalLine\', null),\\n            column: util.getArg(mapping, \'originalColumn\', null),\\n            name: name\\n          };\\n        }\\n      }\\n\\n      return {\\n        source: null,\\n        line: null,\\n        column: null,\\n        name: null\\n      };\\n    };\\n\\n  /**\\n   * Return true if we have the source content for every source in the source\\n   * map, false otherwise.\\n   */\\n  BasicSourceMapConsumer.prototype.hasContentsOfAllSources =\\n    function BasicSourceMapConsumer_hasContentsOfAllSources() {\\n      if (!this.sourcesContent) {\\n        return false;\\n      }\\n      return this.sourcesContent.length >= this._sources.size() &&\\n        !this.sourcesContent.some(function (sc) { return sc == null; });\\n    };\\n\\n  /**\\n   * Returns the original source content. The only argument is the url of the\\n   * original source file. Returns null if no original source content is\\n   * available.\\n   */\\n  BasicSourceMapConsumer.prototype.sourceContentFor =\\n    function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\\n      if (!this.sourcesContent) {\\n        return null;\\n      }\\n\\n      if (this.sourceRoot != null) {\\n        aSource = util.relative(this.sourceRoot, aSource);\\n      }\\n\\n      if (this._sources.has(aSource)) {\\n        return this.sourcesContent[this._sources.indexOf(aSource)];\\n      }\\n\\n      var url;\\n      if (this.sourceRoot != null\\n          && (url = util.urlParse(this.sourceRoot))) {\\n        // XXX: file:// URIs and absolute paths lead to unexpected behavior for\\n        // many users. We can help them out when they expect file:// URIs to\\n        // behave like it would if they were running a local HTTP server. See\\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\\n        var fileUriAbsPath = aSource.replace(/^file:\\\\/\\\\//, \\"\\");\\n        if (url.scheme == \\"file\\"\\n            && this._sources.has(fileUriAbsPath)) {\\n          return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\\n        }\\n\\n        if ((!url.path || url.path == \\"/\\")\\n            && this._sources.has(\\"/\\" + aSource)) {\\n          return this.sourcesContent[this._sources.indexOf(\\"/\\" + aSource)];\\n        }\\n      }\\n\\n      // This function is used recursively from\\n      // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\\n      // don\'t want to throw if we can\'t find the source - we just want to\\n      // return null, so we provide a flag to exit gracefully.\\n      if (nullOnMissing) {\\n        return null;\\n      }\\n      else {\\n        throw new Error(\'\\"\' + aSource + \'\\" is not in the SourceMap.\');\\n      }\\n    };\\n\\n  /**\\n   * Returns the generated line and column information for the original source,\\n   * line, and column positions provided. The only argument is an object with\\n   * the following properties:\\n   *\\n   *   - source: The filename of the original source.\\n   *   - line: The line number in the original source.\\n   *   - column: The column number in the original source.\\n   *   - bias: Either \'SourceMapConsumer.GREATEST_LOWER_BOUND\' or\\n   *     \'SourceMapConsumer.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   *     Defaults to \'SourceMapConsumer.GREATEST_LOWER_BOUND\'.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - line: The line number in the generated source, or null.\\n   *   - column: The column number in the generated source, or null.\\n   */\\n  BasicSourceMapConsumer.prototype.generatedPositionFor =\\n    function SourceMapConsumer_generatedPositionFor(aArgs) {\\n      var source = util.getArg(aArgs, \'source\');\\n      if (this.sourceRoot != null) {\\n        source = util.relative(this.sourceRoot, source);\\n      }\\n      if (!this._sources.has(source)) {\\n        return {\\n          line: null,\\n          column: null,\\n          lastColumn: null\\n        };\\n      }\\n      source = this._sources.indexOf(source);\\n\\n      var needle = {\\n        source: source,\\n        originalLine: util.getArg(aArgs, \'line\'),\\n        originalColumn: util.getArg(aArgs, \'column\')\\n      };\\n\\n      var index = this._findMapping(\\n        needle,\\n        this._originalMappings,\\n        \\"originalLine\\",\\n        \\"originalColumn\\",\\n        util.compareByOriginalPositions,\\n        util.getArg(aArgs, \'bias\', SourceMapConsumer.GREATEST_LOWER_BOUND)\\n      );\\n\\n      if (index >= 0) {\\n        var mapping = this._originalMappings[index];\\n\\n        if (mapping.source === needle.source) {\\n          return {\\n            line: util.getArg(mapping, \'generatedLine\', null),\\n            column: util.getArg(mapping, \'generatedColumn\', null),\\n            lastColumn: util.getArg(mapping, \'lastGeneratedColumn\', null)\\n          };\\n        }\\n      }\\n\\n      return {\\n        line: null,\\n        column: null,\\n        lastColumn: null\\n      };\\n    };\\n\\n  exports.BasicSourceMapConsumer = BasicSourceMapConsumer;\\n\\n  /**\\n   * An IndexedSourceMapConsumer instance represents a parsed source map which\\n   * we can query for information. It differs from BasicSourceMapConsumer in\\n   * that it takes \\"indexed\\" source maps (i.e. ones with a \\"sections\\" field) as\\n   * input.\\n   *\\n   * The only parameter is a raw source map (either as a JSON string, or already\\n   * parsed to an object). According to the spec for indexed source maps, they\\n   * have the following attributes:\\n   *\\n   *   - version: Which version of the source map spec this map is following.\\n   *   - file: Optional. The generated file this source map is associated with.\\n   *   - sections: A list of section definitions.\\n   *\\n   * Each value under the \\"sections\\" field has two fields:\\n   *   - offset: The offset into the original specified at which this section\\n   *       begins to apply, defined as an object with a \\"line\\" and \\"column\\"\\n   *       field.\\n   *   - map: A source map definition. This source map could also be indexed,\\n   *       but doesn\'t have to be.\\n   *\\n   * Instead of the \\"map\\" field, it\'s also possible to have a \\"url\\" field\\n   * specifying a URL to retrieve a source map from, but that\'s currently\\n   * unsupported.\\n   *\\n   * Here\'s an example source map, taken from the source map spec[0], but\\n   * modified to omit a section which uses the \\"url\\" field.\\n   *\\n   *  {\\n   *    version : 3,\\n   *    file: \\"app.js\\",\\n   *    sections: [{\\n   *      offset: {line:100, column:10},\\n   *      map: {\\n   *        version : 3,\\n   *        file: \\"section.js\\",\\n   *        sources: [\\"foo.js\\", \\"bar.js\\"],\\n   *        names: [\\"src\\", \\"maps\\", \\"are\\", \\"fun\\"],\\n   *        mappings: \\"AAAA,E;;ABCDE;\\"\\n   *      }\\n   *    }],\\n   *  }\\n   *\\n   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\\n   */\\n  function IndexedSourceMapConsumer(aSourceMap) {\\n    var sourceMap = aSourceMap;\\n    if (typeof aSourceMap === \'string\') {\\n      sourceMap = JSON.parse(aSourceMap.replace(/^\\\\)\\\\]\\\\}\'/, \'\'));\\n    }\\n\\n    var version = util.getArg(sourceMap, \'version\');\\n    var sections = util.getArg(sourceMap, \'sections\');\\n\\n    if (version != this._version) {\\n      throw new Error(\'Unsupported version: \' + version);\\n    }\\n\\n    this._sources = new ArraySet();\\n    this._names = new ArraySet();\\n\\n    var lastOffset = {\\n      line: -1,\\n      column: 0\\n    };\\n    this._sections = sections.map(function (s) {\\n      if (s.url) {\\n        // The url field will require support for asynchronicity.\\n        // See https://github.com/mozilla/source-map/issues/16\\n        throw new Error(\'Support for url field in sections not implemented.\');\\n      }\\n      var offset = util.getArg(s, \'offset\');\\n      var offsetLine = util.getArg(offset, \'line\');\\n      var offsetColumn = util.getArg(offset, \'column\');\\n\\n      if (offsetLine < lastOffset.line ||\\n          (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\\n        throw new Error(\'Section offsets must be ordered and non-overlapping.\');\\n      }\\n      lastOffset = offset;\\n\\n      return {\\n        generatedOffset: {\\n          // The offset fields are 0-based, but we use 1-based indices when\\n          // encoding/decoding from VLQ.\\n          generatedLine: offsetLine + 1,\\n          generatedColumn: offsetColumn + 1\\n        },\\n        consumer: new SourceMapConsumer(util.getArg(s, \'map\'))\\n      }\\n    });\\n  }\\n\\n  IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\\n  IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\\n\\n  /**\\n   * The version of the source mapping spec that we are consuming.\\n   */\\n  IndexedSourceMapConsumer.prototype._version = 3;\\n\\n  /**\\n   * The list of original sources.\\n   */\\n  Object.defineProperty(IndexedSourceMapConsumer.prototype, \'sources\', {\\n    get: function () {\\n      var sources = [];\\n      for (var i = 0; i < this._sections.length; i++) {\\n        for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\\n          sources.push(this._sections[i].consumer.sources[j]);\\n        }\\n      }\\n      return sources;\\n    }\\n  });\\n\\n  /**\\n   * Returns the original source, line, and column information for the generated\\n   * source\'s line and column positions provided. The only argument is an object\\n   * with the following properties:\\n   *\\n   *   - line: The line number in the generated source.\\n   *   - column: The column number in the generated source.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - source: The original source file, or null.\\n   *   - line: The line number in the original source, or null.\\n   *   - column: The column number in the original source, or null.\\n   *   - name: The original identifier, or null.\\n   */\\n  IndexedSourceMapConsumer.prototype.originalPositionFor =\\n    function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\\n      var needle = {\\n        generatedLine: util.getArg(aArgs, \'line\'),\\n        generatedColumn: util.getArg(aArgs, \'column\')\\n      };\\n\\n      // Find the section containing the generated position we\'re trying to map\\n      // to an original position.\\n      var sectionIndex = binarySearch.search(needle, this._sections,\\n        function(needle, section) {\\n          var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\\n          if (cmp) {\\n            return cmp;\\n          }\\n\\n          return (needle.generatedColumn -\\n                  section.generatedOffset.generatedColumn);\\n        });\\n      var section = this._sections[sectionIndex];\\n\\n      if (!section) {\\n        return {\\n          source: null,\\n          line: null,\\n          column: null,\\n          name: null\\n        };\\n      }\\n\\n      return section.consumer.originalPositionFor({\\n        line: needle.generatedLine -\\n          (section.generatedOffset.generatedLine - 1),\\n        column: needle.generatedColumn -\\n          (section.generatedOffset.generatedLine === needle.generatedLine\\n           ? section.generatedOffset.generatedColumn - 1\\n           : 0),\\n        bias: aArgs.bias\\n      });\\n    };\\n\\n  /**\\n   * Return true if we have the source content for every source in the source\\n   * map, false otherwise.\\n   */\\n  IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\\n    function IndexedSourceMapConsumer_hasContentsOfAllSources() {\\n      return this._sections.every(function (s) {\\n        return s.consumer.hasContentsOfAllSources();\\n      });\\n    };\\n\\n  /**\\n   * Returns the original source content. The only argument is the url of the\\n   * original source file. Returns null if no original source content is\\n   * available.\\n   */\\n  IndexedSourceMapConsumer.prototype.sourceContentFor =\\n    function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\\n      for (var i = 0; i < this._sections.length; i++) {\\n        var section = this._sections[i];\\n\\n        var content = section.consumer.sourceContentFor(aSource, true);\\n        if (content) {\\n          return content;\\n        }\\n      }\\n      if (nullOnMissing) {\\n        return null;\\n      }\\n      else {\\n        throw new Error(\'\\"\' + aSource + \'\\" is not in the SourceMap.\');\\n      }\\n    };\\n\\n  /**\\n   * Returns the generated line and column information for the original source,\\n   * line, and column positions provided. The only argument is an object with\\n   * the following properties:\\n   *\\n   *   - source: The filename of the original source.\\n   *   - line: The line number in the original source.\\n   *   - column: The column number in the original source.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - line: The line number in the generated source, or null.\\n   *   - column: The column number in the generated source, or null.\\n   */\\n  IndexedSourceMapConsumer.prototype.generatedPositionFor =\\n    function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\\n      for (var i = 0; i < this._sections.length; i++) {\\n        var section = this._sections[i];\\n\\n        // Only consider this section if the requested source is in the list of\\n        // sources of the consumer.\\n        if (section.consumer.sources.indexOf(util.getArg(aArgs, \'source\')) === -1) {\\n          continue;\\n        }\\n        var generatedPosition = section.consumer.generatedPositionFor(aArgs);\\n        if (generatedPosition) {\\n          var ret = {\\n            line: generatedPosition.line +\\n              (section.generatedOffset.generatedLine - 1),\\n            column: generatedPosition.column +\\n              (section.generatedOffset.generatedLine === generatedPosition.line\\n               ? section.generatedOffset.generatedColumn - 1\\n               : 0)\\n          };\\n          return ret;\\n        }\\n      }\\n\\n      return {\\n        line: null,\\n        column: null\\n      };\\n    };\\n\\n  /**\\n   * Parse the mappings in a string in to a data structure which we can easily\\n   * query (the ordered arrays in the `this.__generatedMappings` and\\n   * `this.__originalMappings` properties).\\n   */\\n  IndexedSourceMapConsumer.prototype._parseMappings =\\n    function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\\n      this.__generatedMappings = [];\\n      this.__originalMappings = [];\\n      for (var i = 0; i < this._sections.length; i++) {\\n        var section = this._sections[i];\\n        var sectionMappings = section.consumer._generatedMappings;\\n        for (var j = 0; j < sectionMappings.length; j++) {\\n          var mapping = sectionMappings[j];\\n\\n          var source = section.consumer._sources.at(mapping.source);\\n          if (section.consumer.sourceRoot !== null) {\\n            source = util.join(section.consumer.sourceRoot, source);\\n          }\\n          this._sources.add(source);\\n          source = this._sources.indexOf(source);\\n\\n          var name = section.consumer._names.at(mapping.name);\\n          this._names.add(name);\\n          name = this._names.indexOf(name);\\n\\n          // The mappings coming from the consumer for the section have\\n          // generated positions relative to the start of the section, so we\\n          // need to offset them to be relative to the start of the concatenated\\n          // generated file.\\n          var adjustedMapping = {\\n            source: source,\\n            generatedLine: mapping.generatedLine +\\n              (section.generatedOffset.generatedLine - 1),\\n            generatedColumn: mapping.generatedColumn +\\n              (section.generatedOffset.generatedLine === mapping.generatedLine\\n              ? section.generatedOffset.generatedColumn - 1\\n              : 0),\\n            originalLine: mapping.originalLine,\\n            originalColumn: mapping.originalColumn,\\n            name: name\\n          };\\n\\n          this.__generatedMappings.push(adjustedMapping);\\n          if (typeof adjustedMapping.originalLine === \'number\') {\\n            this.__originalMappings.push(adjustedMapping);\\n          }\\n        }\\n      }\\n\\n      quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\\n      quickSort(this.__originalMappings, util.compareByOriginalPositions);\\n    };\\n\\n  exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/source-map-consumer.js\\n ** module id = 37\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  exports.GREATEST_LOWER_BOUND = 1;\\n  exports.LEAST_UPPER_BOUND = 2;\\n\\n  /**\\n   * Recursive implementation of binary search.\\n   *\\n   * @param aLow Indices here and lower do not contain the needle.\\n   * @param aHigh Indices here and higher do not contain the needle.\\n   * @param aNeedle The element being searched for.\\n   * @param aHaystack The non-empty array being searched.\\n   * @param aCompare Function which takes two elements and returns -1, 0, or 1.\\n   * @param aBias Either \'binarySearch.GREATEST_LOWER_BOUND\' or\\n   *     \'binarySearch.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   */\\n  function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\\n    // This function terminates when one of the following is true:\\n    //\\n    //   1. We find the exact element we are looking for.\\n    //\\n    //   2. We did not find the exact element, but we can return the index of\\n    //      the next-closest element.\\n    //\\n    //   3. We did not find the exact element, and there is no next-closest\\n    //      element than the one we are searching for, so we return -1.\\n    var mid = Math.floor((aHigh - aLow) / 2) + aLow;\\n    var cmp = aCompare(aNeedle, aHaystack[mid], true);\\n    if (cmp === 0) {\\n      // Found the element we are looking for.\\n      return mid;\\n    }\\n    else if (cmp > 0) {\\n      // Our needle is greater than aHaystack[mid].\\n      if (aHigh - mid > 1) {\\n        // The element is in the upper half.\\n        return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\\n      }\\n\\n      // The exact needle element was not found in this haystack. Determine if\\n      // we are in termination case (3) or (2) and return the appropriate thing.\\n      if (aBias == exports.LEAST_UPPER_BOUND) {\\n        return aHigh < aHaystack.length ? aHigh : -1;\\n      } else {\\n        return mid;\\n      }\\n    }\\n    else {\\n      // Our needle is less than aHaystack[mid].\\n      if (mid - aLow > 1) {\\n        // The element is in the lower half.\\n        return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\\n      }\\n\\n      // we are in termination case (3) or (2) and return the appropriate thing.\\n      if (aBias == exports.LEAST_UPPER_BOUND) {\\n        return mid;\\n      } else {\\n        return aLow < 0 ? -1 : aLow;\\n      }\\n    }\\n  }\\n\\n  /**\\n   * This is an implementation of binary search which will always try and return\\n   * the index of the closest element if there is no exact hit. This is because\\n   * mappings between original and generated line/col pairs are single points,\\n   * and there is an implicit region between each of them, so a miss just means\\n   * that you aren\'t on the very start of a region.\\n   *\\n   * @param aNeedle The element you are looking for.\\n   * @param aHaystack The array that is being searched.\\n   * @param aCompare A function which takes the needle and an element in the\\n   *     array and returns -1, 0, or 1 depending on whether the needle is less\\n   *     than, equal to, or greater than the element, respectively.\\n   * @param aBias Either \'binarySearch.GREATEST_LOWER_BOUND\' or\\n   *     \'binarySearch.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   *     Defaults to \'binarySearch.GREATEST_LOWER_BOUND\'.\\n   */\\n  exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\\n    if (aHaystack.length === 0) {\\n      return -1;\\n    }\\n\\n    var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\\n                                aCompare, aBias || exports.GREATEST_LOWER_BOUND);\\n    if (index < 0) {\\n      return -1;\\n    }\\n\\n    // We have found either the exact element, or the next-closest element than\\n    // the one we are searching for. However, there may be more than one such\\n    // element. Make sure we always return the smallest of these.\\n    while (index - 1 >= 0) {\\n      if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\\n        break;\\n      }\\n      --index;\\n    }\\n\\n    return index;\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/binary-search.js\\n ** module id = 38\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  // It turns out that some (most?) JavaScript engines don\'t self-host\\n  // `Array.prototype.sort`. This makes sense because C++ will likely remain\\n  // faster than JS when doing raw CPU-intensive sorting. However, when using a\\n  // custom comparator function, calling back and forth between the VM\'s C++ and\\n  // JIT\'d JS is rather slow *and* loses JIT type information, resulting in\\n  // worse generated code for the comparator function than would be optimal. In\\n  // fact, when sorting with a comparator, these costs outweigh the benefits of\\n  // sorting in C++. By using our own JS-implemented Quick Sort (below), we get\\n  // a ~3500ms mean speed-up in `bench/bench.html`.\\n\\n  /**\\n   * Swap the elements indexed by `x` and `y` in the array `ary`.\\n   *\\n   * @param {Array} ary\\n   *        The array.\\n   * @param {Number} x\\n   *        The index of the first item.\\n   * @param {Number} y\\n   *        The index of the second item.\\n   */\\n  function swap(ary, x, y) {\\n    var temp = ary[x];\\n    ary[x] = ary[y];\\n    ary[y] = temp;\\n  }\\n\\n  /**\\n   * Returns a random integer within the range `low .. high` inclusive.\\n   *\\n   * @param {Number} low\\n   *        The lower bound on the range.\\n   * @param {Number} high\\n   *        The upper bound on the range.\\n   */\\n  function randomIntInRange(low, high) {\\n    return Math.round(low + (Math.random() * (high - low)));\\n  }\\n\\n  /**\\n   * The Quick Sort algorithm.\\n   *\\n   * @param {Array} ary\\n   *        An array to sort.\\n   * @param {function} comparator\\n   *        Function to use to compare two items.\\n   * @param {Number} p\\n   *        Start index of the array\\n   * @param {Number} r\\n   *        End index of the array\\n   */\\n  function doQuickSort(ary, comparator, p, r) {\\n    // If our lower bound is less than our upper bound, we (1) partition the\\n    // array into two pieces and (2) recurse on each half. If it is not, this is\\n    // the empty array and our base case.\\n\\n    if (p < r) {\\n      // (1) Partitioning.\\n      //\\n      // The partitioning chooses a pivot between `p` and `r` and moves all\\n      // elements that are less than or equal to the pivot to the before it, and\\n      // all the elements that are greater than it after it. The effect is that\\n      // once partition is done, the pivot is in the exact place it will be when\\n      // the array is put in sorted order, and it will not need to be moved\\n      // again. This runs in O(n) time.\\n\\n      // Always choose a random pivot so that an input array which is reverse\\n      // sorted does not cause O(n^2) running time.\\n      var pivotIndex = randomIntInRange(p, r);\\n      var i = p - 1;\\n\\n      swap(ary, pivotIndex, r);\\n      var pivot = ary[r];\\n\\n      // Immediately after `j` is incremented in this loop, the following hold\\n      // true:\\n      //\\n      //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\\n      //\\n      //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\\n      for (var j = p; j < r; j++) {\\n        if (comparator(ary[j], pivot) <= 0) {\\n          i += 1;\\n          swap(ary, i, j);\\n        }\\n      }\\n\\n      swap(ary, i + 1, j);\\n      var q = i + 1;\\n\\n      // (2) Recurse on each half.\\n\\n      doQuickSort(ary, comparator, p, q - 1);\\n      doQuickSort(ary, comparator, q + 1, r);\\n    }\\n  }\\n\\n  /**\\n   * Sort the given array in-place with the given comparator function.\\n   *\\n   * @param {Array} ary\\n   *        An array to sort.\\n   * @param {function} comparator\\n   *        Function to use to compare two items.\\n   */\\n  exports.quickSort = function (ary, comparator) {\\n    doQuickSort(ary, comparator, 0, ary.length - 1);\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/quick-sort.js\\n ** module id = 39\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var SourceMapGenerator = require(\'./source-map-generator\').SourceMapGenerator;\\n  var util = require(\'./util\');\\n\\n  // Matches a Windows-style `\\\\r\\\\n` newline or a `\\\\n` newline used by all other\\n  // operating systems these days (capturing the result).\\n  var REGEX_NEWLINE = /(\\\\r?\\\\n)/;\\n\\n  // Newline character code for charCodeAt() comparisons\\n  var NEWLINE_CODE = 10;\\n\\n  // Private symbol for identifying `SourceNode`s when multiple versions of\\n  // the source-map library are loaded. This MUST NOT CHANGE across\\n  // versions!\\n  var isSourceNode = \\"$$$isSourceNode$$$\\";\\n\\n  /**\\n   * SourceNodes provide a way to abstract over interpolating/concatenating\\n   * snippets of generated JavaScript source code while maintaining the line and\\n   * column information associated with the original source code.\\n   *\\n   * @param aLine The original line number.\\n   * @param aColumn The original column number.\\n   * @param aSource The original source\'s filename.\\n   * @param aChunks Optional. An array of strings which are snippets of\\n   *        generated JS, or other SourceNodes.\\n   * @param aName The original identifier.\\n   */\\n  function SourceNode(aLine, aColumn, aSource, aChunks, aName) {\\n    this.children = [];\\n    this.sourceContents = {};\\n    this.line = aLine == null ? null : aLine;\\n    this.column = aColumn == null ? null : aColumn;\\n    this.source = aSource == null ? null : aSource;\\n    this.name = aName == null ? null : aName;\\n    this[isSourceNode] = true;\\n    if (aChunks != null) this.add(aChunks);\\n  }\\n\\n  /**\\n   * Creates a SourceNode from generated code and a SourceMapConsumer.\\n   *\\n   * @param aGeneratedCode The generated code\\n   * @param aSourceMapConsumer The SourceMap for the generated code\\n   * @param aRelativePath Optional. The path that relative sources in the\\n   *        SourceMapConsumer should be relative to.\\n   */\\n  SourceNode.fromStringWithSourceMap =\\n    function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\\n      // The SourceNode we want to fill with the generated code\\n      // and the SourceMap\\n      var node = new SourceNode();\\n\\n      // All even indices of this array are one line of the generated code,\\n      // while all odd indices are the newlines between two adjacent lines\\n      // (since `REGEX_NEWLINE` captures its match).\\n      // Processed fragments are removed from this array, by calling `shiftNextLine`.\\n      var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\\n      var shiftNextLine = function() {\\n        var lineContents = remainingLines.shift();\\n        // The last line of a file might not have a newline.\\n        var newLine = remainingLines.shift() || \\"\\";\\n        return lineContents + newLine;\\n      };\\n\\n      // We need to remember the position of \\"remainingLines\\"\\n      var lastGeneratedLine = 1, lastGeneratedColumn = 0;\\n\\n      // The generate SourceNodes we need a code range.\\n      // To extract it current and last mapping is used.\\n      // Here we store the last mapping.\\n      var lastMapping = null;\\n\\n      aSourceMapConsumer.eachMapping(function (mapping) {\\n        if (lastMapping !== null) {\\n          // We add the code from \\"lastMapping\\" to \\"mapping\\":\\n          // First check if there is a new line in between.\\n          if (lastGeneratedLine < mapping.generatedLine) {\\n            // Associate first line with \\"lastMapping\\"\\n            addMappingWithCode(lastMapping, shiftNextLine());\\n            lastGeneratedLine++;\\n            lastGeneratedColumn = 0;\\n            // The remaining code is added without mapping\\n          } else {\\n            // There is no new line in between.\\n            // Associate the code between \\"lastGeneratedColumn\\" and\\n            // \\"mapping.generatedColumn\\" with \\"lastMapping\\"\\n            var nextLine = remainingLines[0];\\n            var code = nextLine.substr(0, mapping.generatedColumn -\\n                                          lastGeneratedColumn);\\n            remainingLines[0] = nextLine.substr(mapping.generatedColumn -\\n                                                lastGeneratedColumn);\\n            lastGeneratedColumn = mapping.generatedColumn;\\n            addMappingWithCode(lastMapping, code);\\n            // No more remaining code, continue\\n            lastMapping = mapping;\\n            return;\\n          }\\n        }\\n        // We add the generated code until the first mapping\\n        // to the SourceNode without any mapping.\\n        // Each line is added as separate string.\\n        while (lastGeneratedLine < mapping.generatedLine) {\\n          node.add(shiftNextLine());\\n          lastGeneratedLine++;\\n        }\\n        if (lastGeneratedColumn < mapping.generatedColumn) {\\n          var nextLine = remainingLines[0];\\n          node.add(nextLine.substr(0, mapping.generatedColumn));\\n          remainingLines[0] = nextLine.substr(mapping.generatedColumn);\\n          lastGeneratedColumn = mapping.generatedColumn;\\n        }\\n        lastMapping = mapping;\\n      }, this);\\n      // We have processed all mappings.\\n      if (remainingLines.length > 0) {\\n        if (lastMapping) {\\n          // Associate the remaining code in the current line with \\"lastMapping\\"\\n          addMappingWithCode(lastMapping, shiftNextLine());\\n        }\\n        // and add the remaining lines without any mapping\\n        node.add(remainingLines.join(\\"\\"));\\n      }\\n\\n      // Copy sourcesContent into SourceNode\\n      aSourceMapConsumer.sources.forEach(function (sourceFile) {\\n        var content = aSourceMapConsumer.sourceContentFor(sourceFile);\\n        if (content != null) {\\n          if (aRelativePath != null) {\\n            sourceFile = util.join(aRelativePath, sourceFile);\\n          }\\n          node.setSourceContent(sourceFile, content);\\n        }\\n      });\\n\\n      return node;\\n\\n      function addMappingWithCode(mapping, code) {\\n        if (mapping === null || mapping.source === undefined) {\\n          node.add(code);\\n        } else {\\n          var source = aRelativePath\\n            ? util.join(aRelativePath, mapping.source)\\n            : mapping.source;\\n          node.add(new SourceNode(mapping.originalLine,\\n                                  mapping.originalColumn,\\n                                  source,\\n                                  code,\\n                                  mapping.name));\\n        }\\n      }\\n    };\\n\\n  /**\\n   * Add a chunk of generated JS to this source node.\\n   *\\n   * @param aChunk A string snippet of generated JS code, another instance of\\n   *        SourceNode, or an array where each member is one of those things.\\n   */\\n  SourceNode.prototype.add = function SourceNode_add(aChunk) {\\n    if (Array.isArray(aChunk)) {\\n      aChunk.forEach(function (chunk) {\\n        this.add(chunk);\\n      }, this);\\n    }\\n    else if (aChunk[isSourceNode] || typeof aChunk === \\"string\\") {\\n      if (aChunk) {\\n        this.children.push(aChunk);\\n      }\\n    }\\n    else {\\n      throw new TypeError(\\n        \\"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \\" + aChunk\\n      );\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Add a chunk of generated JS to the beginning of this source node.\\n   *\\n   * @param aChunk A string snippet of generated JS code, another instance of\\n   *        SourceNode, or an array where each member is one of those things.\\n   */\\n  SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\\n    if (Array.isArray(aChunk)) {\\n      for (var i = aChunk.length-1; i >= 0; i--) {\\n        this.prepend(aChunk[i]);\\n      }\\n    }\\n    else if (aChunk[isSourceNode] || typeof aChunk === \\"string\\") {\\n      this.children.unshift(aChunk);\\n    }\\n    else {\\n      throw new TypeError(\\n        \\"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \\" + aChunk\\n      );\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Walk over the tree of JS snippets in this node and its children. The\\n   * walking function is called once for each snippet of JS and is passed that\\n   * snippet and the its original associated source\'s line/column location.\\n   *\\n   * @param aFn The traversal function.\\n   */\\n  SourceNode.prototype.walk = function SourceNode_walk(aFn) {\\n    var chunk;\\n    for (var i = 0, len = this.children.length; i < len; i++) {\\n      chunk = this.children[i];\\n      if (chunk[isSourceNode]) {\\n        chunk.walk(aFn);\\n      }\\n      else {\\n        if (chunk !== \'\') {\\n          aFn(chunk, { source: this.source,\\n                       line: this.line,\\n                       column: this.column,\\n                       name: this.name });\\n        }\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\\n   * each of `this.children`.\\n   *\\n   * @param aSep The separator.\\n   */\\n  SourceNode.prototype.join = function SourceNode_join(aSep) {\\n    var newChildren;\\n    var i;\\n    var len = this.children.length;\\n    if (len > 0) {\\n      newChildren = [];\\n      for (i = 0; i < len-1; i++) {\\n        newChildren.push(this.children[i]);\\n        newChildren.push(aSep);\\n      }\\n      newChildren.push(this.children[i]);\\n      this.children = newChildren;\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Call String.prototype.replace on the very right-most source snippet. Useful\\n   * for trimming whitespace from the end of a source node, etc.\\n   *\\n   * @param aPattern The pattern to replace.\\n   * @param aReplacement The thing to replace the pattern with.\\n   */\\n  SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\\n    var lastChild = this.children[this.children.length - 1];\\n    if (lastChild[isSourceNode]) {\\n      lastChild.replaceRight(aPattern, aReplacement);\\n    }\\n    else if (typeof lastChild === \'string\') {\\n      this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\\n    }\\n    else {\\n      this.children.push(\'\'.replace(aPattern, aReplacement));\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Set the source content for a source file. This will be added to the SourceMapGenerator\\n   * in the sourcesContent field.\\n   *\\n   * @param aSourceFile The filename of the source file\\n   * @param aSourceContent The content of the source file\\n   */\\n  SourceNode.prototype.setSourceContent =\\n    function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\\n      this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\\n    };\\n\\n  /**\\n   * Walk over the tree of SourceNodes. The walking function is called for each\\n   * source file content and is passed the filename and source content.\\n   *\\n   * @param aFn The traversal function.\\n   */\\n  SourceNode.prototype.walkSourceContents =\\n    function SourceNode_walkSourceContents(aFn) {\\n      for (var i = 0, len = this.children.length; i < len; i++) {\\n        if (this.children[i][isSourceNode]) {\\n          this.children[i].walkSourceContents(aFn);\\n        }\\n      }\\n\\n      var sources = Object.keys(this.sourceContents);\\n      for (var i = 0, len = sources.length; i < len; i++) {\\n        aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\\n      }\\n    };\\n\\n  /**\\n   * Return the string representation of this source node. Walks over the tree\\n   * and concatenates all the various snippets together to one string.\\n   */\\n  SourceNode.prototype.toString = function SourceNode_toString() {\\n    var str = \\"\\";\\n    this.walk(function (chunk) {\\n      str += chunk;\\n    });\\n    return str;\\n  };\\n\\n  /**\\n   * Returns the string representation of this source node along with a source\\n   * map.\\n   */\\n  SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\\n    var generated = {\\n      code: \\"\\",\\n      line: 1,\\n      column: 0\\n    };\\n    var map = new SourceMapGenerator(aArgs);\\n    var sourceMappingActive = false;\\n    var lastOriginalSource = null;\\n    var lastOriginalLine = null;\\n    var lastOriginalColumn = null;\\n    var lastOriginalName = null;\\n    this.walk(function (chunk, original) {\\n      generated.code += chunk;\\n      if (original.source !== null\\n          && original.line !== null\\n          && original.column !== null) {\\n        if(lastOriginalSource !== original.source\\n           || lastOriginalLine !== original.line\\n           || lastOriginalColumn !== original.column\\n           || lastOriginalName !== original.name) {\\n          map.addMapping({\\n            source: original.source,\\n            original: {\\n              line: original.line,\\n              column: original.column\\n            },\\n            generated: {\\n              line: generated.line,\\n              column: generated.column\\n            },\\n            name: original.name\\n          });\\n        }\\n        lastOriginalSource = original.source;\\n        lastOriginalLine = original.line;\\n        lastOriginalColumn = original.column;\\n        lastOriginalName = original.name;\\n        sourceMappingActive = true;\\n      } else if (sourceMappingActive) {\\n        map.addMapping({\\n          generated: {\\n            line: generated.line,\\n            column: generated.column\\n          }\\n        });\\n        lastOriginalSource = null;\\n        sourceMappingActive = false;\\n      }\\n      for (var idx = 0, length = chunk.length; idx < length; idx++) {\\n        if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\\n          generated.line++;\\n          generated.column = 0;\\n          // Mappings end at eol\\n          if (idx + 1 === length) {\\n            lastOriginalSource = null;\\n            sourceMappingActive = false;\\n          } else if (sourceMappingActive) {\\n            map.addMapping({\\n              source: original.source,\\n              original: {\\n                line: original.line,\\n                column: original.column\\n              },\\n              generated: {\\n                line: generated.line,\\n                column: generated.column\\n              },\\n              name: original.name\\n            });\\n          }\\n        } else {\\n          generated.column++;\\n        }\\n      }\\n    });\\n    this.walkSourceContents(function (sourceFile, sourceContent) {\\n      map.setSourceContent(sourceFile, sourceContent);\\n    });\\n\\n    return { code: generated.code, map: map };\\n  };\\n\\n  exports.SourceNode = SourceNode;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/source-node.js\\n ** module id = 40\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _Object$keys = require(\\"babel-runtime/core-js/object/keys\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _defaults = require(\\"babel-runtime/helpers/defaults\\")[\\"default\\"];\\n\\nvar _interopExportWildcard = require(\\"babel-runtime/helpers/interop-export-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.is = is;\\nexports.isType = isType;\\nexports.validate = validate;\\nexports.shallowEqual = shallowEqual;\\nexports.appendToMemberExpression = appendToMemberExpression;\\nexports.prependToMemberExpression = prependToMemberExpression;\\nexports.ensureBlock = ensureBlock;\\nexports.clone = clone;\\nexports.cloneWithoutLoc = cloneWithoutLoc;\\nexports.cloneDeep = cloneDeep;\\nexports.buildMatchMemberExpression = buildMatchMemberExpression;\\nexports.removeComments = removeComments;\\nexports.inheritsComments = inheritsComments;\\nexports.inheritTrailingComments = inheritTrailingComments;\\nexports.inheritLeadingComments = inheritLeadingComments;\\nexports.inheritInnerComments = inheritInnerComments;\\nexports.inherits = inherits;\\nexports.assertNode = assertNode;\\nexports.isNode = isNode;\\n\\nvar _toFastProperties = require(\\"to-fast-properties\\");\\n\\nvar _toFastProperties2 = _interopRequireDefault(_toFastProperties);\\n\\nvar _lodashArrayCompact = require(\\"lodash/array/compact\\");\\n\\nvar _lodashArrayCompact2 = _interopRequireDefault(_lodashArrayCompact);\\n\\nvar _lodashLangClone = require(\\"lodash/lang/clone\\");\\n\\nvar _lodashLangClone2 = _interopRequireDefault(_lodashLangClone);\\n\\nvar _lodashCollectionEach = require(\\"lodash/collection/each\\");\\n\\nvar _lodashCollectionEach2 = _interopRequireDefault(_lodashCollectionEach);\\n\\nvar _lodashArrayUniq = require(\\"lodash/array/uniq\\");\\n\\nvar _lodashArrayUniq2 = _interopRequireDefault(_lodashArrayUniq);\\n\\nrequire(\\"./definitions/init\\");\\n\\nvar _definitions = require(\\"./definitions\\");\\n\\nvar _react2 = require(\\"./react\\");\\n\\nvar _react = _interopRequireWildcard(_react2);\\n\\nvar t = exports;\\n\\n/**\\n * Registers `is[Type]` and `assert[Type]` generated functions for a given `type`.\\n * Pass `skipAliasCheck` to force it to directly compare `node.type` with `type`.\\n */\\n\\nfunction registerType(type /*: string*/) {\\n  var is = t[\\"is\\" + type] = function (node, opts) {\\n    return t.is(type, node, opts);\\n  };\\n\\n  t[\\"assert\\" + type] = function (node, opts) {\\n    opts = opts || {};\\n    if (!is(node, opts)) {\\n      throw new Error(\\"Expected type \\" + JSON.stringify(type) + \\" with option \\" + JSON.stringify(opts));\\n    }\\n  };\\n}\\n\\n//\\n\\nvar _constants = require(\\"./constants\\");\\n\\n_defaults(exports, _interopExportWildcard(_constants, _defaults));\\n\\nexports.VISITOR_KEYS = _definitions.VISITOR_KEYS;\\nexports.ALIAS_KEYS = _definitions.ALIAS_KEYS;\\nexports.NODE_FIELDS = _definitions.NODE_FIELDS;\\nexports.BUILDER_KEYS = _definitions.BUILDER_KEYS;\\nexports.DEPRECATED_KEYS = _definitions.DEPRECATED_KEYS;\\nexports.react = _react;\\n\\n/**\\n * Registers `is[Type]` and `assert[Type]` for all types.\\n */\\n\\nfor (var type in t.VISITOR_KEYS) {\\n  registerType(type);\\n}\\n\\n/**\\n * Flip `ALIAS_KEYS` for faster access in the reverse direction.\\n */\\n\\nt.FLIPPED_ALIAS_KEYS = {};\\n\\n_lodashCollectionEach2[\\"default\\"](t.ALIAS_KEYS, function (aliases, type) {\\n  _lodashCollectionEach2[\\"default\\"](aliases, function (alias) {\\n    var types = t.FLIPPED_ALIAS_KEYS[alias] = t.FLIPPED_ALIAS_KEYS[alias] || [];\\n    types.push(type);\\n  });\\n});\\n\\n/**\\n * Registers `is[Alias]` and `assert[Alias]` functions for all aliases.\\n */\\n\\n_lodashCollectionEach2[\\"default\\"](t.FLIPPED_ALIAS_KEYS, function (types, type) {\\n  t[type.toUpperCase() + \\"_TYPES\\"] = types;\\n  registerType(type);\\n});\\n\\nvar TYPES = _Object$keys(t.VISITOR_KEYS).concat(_Object$keys(t.FLIPPED_ALIAS_KEYS)).concat(_Object$keys(t.DEPRECATED_KEYS));\\n\\nexports.TYPES = TYPES;\\n/**\\n * Returns whether `node` is of given `type`.\\n *\\n * For better performance, use this instead of `is[Type]` when `type` is unknown.\\n * Optionally, pass `skipAliasCheck` to directly compare `node.type` with `type`.\\n */\\n\\nfunction is(type /*: string*/, node /*: Object*/, opts /*:: ?: Object*/) /*: boolean*/ {\\n  if (!node) return false;\\n\\n  var matches = isType(node.type, type);\\n  if (!matches) return false;\\n\\n  if (typeof opts === \\"undefined\\") {\\n    return true;\\n  } else {\\n    return t.shallowEqual(node, opts);\\n  }\\n}\\n\\n/**\\n * Test if a `nodeType` is a `targetType` or if `targetType` is an alias of `nodeType`.\\n */\\n\\nfunction isType(nodeType /*: string*/, targetType /*: string*/) /*: boolean*/ {\\n  if (nodeType === targetType) return true;\\n\\n  var aliases /*: ?Array<string>*/ = t.FLIPPED_ALIAS_KEYS[targetType];\\n  if (aliases) {\\n    if (aliases[0] === nodeType) return true;\\n\\n    for (var _iterator = aliases, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var alias = _ref;\\n\\n      if (nodeType === alias) return true;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Description\\n */\\n\\n_lodashCollectionEach2[\\"default\\"](t.BUILDER_KEYS, function (keys, type) {\\n  function builder() {\\n    if (arguments.length > keys.length) {\\n      throw new Error(\\"t.\\" + type + \\": Too many arguments passed. Received \\" + arguments.length + \\" but can receive no more than \\" + keys.length);\\n    }\\n\\n    var node = {};\\n    node.type = type;\\n\\n    var i = 0;\\n\\n    for (var _iterator2 = (keys /*: Array<string>*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var key = _ref2;\\n\\n      var field = t.NODE_FIELDS[type][key];\\n\\n      var arg = arguments[i++];\\n      if (arg === undefined) arg = _lodashLangClone2[\\"default\\"](field[\\"default\\"]);\\n\\n      node[key] = arg;\\n    }\\n\\n    for (var key in node) {\\n      validate(node, key, node[key]);\\n    }\\n\\n    return node;\\n  }\\n\\n  t[type] = builder;\\n  t[type[0].toLowerCase() + type.slice(1)] = builder;\\n});\\n\\n/**\\n * Description\\n */\\n\\nvar _loop = function (type) {\\n  var proxy = function proxy(fn) {\\n    return function () {\\n      console.trace(\\"The node type \\" + type + \\" has been renamed to \\" + newType);\\n      return fn.apply(this, arguments);\\n    };\\n  };\\n\\n  var newType = t.DEPRECATED_KEYS[type];\\n\\n  t[type] = t[type[0].toLowerCase() + type.slice(1)] = proxy(t[newType]);\\n  t[\\"is\\" + type] = proxy(t[\\"is\\" + newType]);\\n  t[\\"assert\\" + type] = proxy(t[\\"assert\\" + newType]);\\n};\\n\\nfor (var type in t.DEPRECATED_KEYS) {\\n  _loop(type);\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction validate(node /*:: ?: Object*/, key /*: string*/, val /*: any*/) {\\n  if (!node) return;\\n\\n  var fields = t.NODE_FIELDS[node.type];\\n  if (!fields) return;\\n\\n  var field = fields[key];\\n  if (!field || !field.validate) return;\\n  if (field.optional && val == null) return;\\n\\n  field.validate(node, key, val);\\n}\\n\\n/**\\n * Test if an object is shallowly equal.\\n */\\n\\nfunction shallowEqual(actual /*: Object*/, expected /*: Object*/) /*: boolean*/ {\\n  var keys = _Object$keys(expected);\\n\\n  for (var _iterator3 = (keys /*: Array<string>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n    var _ref3;\\n\\n    if (_isArray3) {\\n      if (_i3 >= _iterator3.length) break;\\n      _ref3 = _iterator3[_i3++];\\n    } else {\\n      _i3 = _iterator3.next();\\n      if (_i3.done) break;\\n      _ref3 = _i3.value;\\n    }\\n\\n    var key = _ref3;\\n\\n    if (actual[key] !== expected[key]) {\\n      return false;\\n    }\\n  }\\n\\n  return true;\\n}\\n\\n/**\\n * Append a node to a member expression.\\n */\\n\\nfunction appendToMemberExpression(member /*: Object*/, append /*: Object*/, computed /*:: ?: boolean*/) /*: Object*/ {\\n  member.object = t.memberExpression(member.object, member.property, member.computed);\\n  member.property = append;\\n  member.computed = !!computed;\\n  return member;\\n}\\n\\n/**\\n * Prepend a node to a member expression.\\n */\\n\\nfunction prependToMemberExpression(member /*: Object*/, prepend /*: Object*/) /*: Object*/ {\\n  member.object = t.memberExpression(prepend, member.object);\\n  return member;\\n}\\n\\n/**\\n * Ensure the `key` (defaults to \\"body\\") of a `node` is a block.\\n * Casting it to a block if it is not.\\n */\\n\\nfunction ensureBlock(node /*: Object*/) /*: Object*/ {\\n  var key /*: string*/ = arguments.length <= 1 || arguments[1] === undefined ? \\"body\\" : arguments[1];\\n\\n  return node[key] = t.toBlock(node[key], node);\\n}\\n\\n/**\\n * Create a shallow clone of a `node` excluding `_private` properties.\\n */\\n\\nfunction clone(node /*: Object*/) /*: Object*/ {\\n  var newNode = {};\\n  for (var key in node) {\\n    if (key[0] === \\"_\\") continue;\\n    newNode[key] = node[key];\\n  }\\n  return newNode;\\n}\\n\\n/**\\n * Create a shallow clone of a `node` excluding `_private` and location properties.\\n */\\n\\nfunction cloneWithoutLoc(node /*: Object*/) /*: Object*/ {\\n  var newNode = clone(node);\\n  delete newNode.loc;\\n  return newNode;\\n}\\n\\n/**\\n * Create a deep clone of a `node` and all of it\'s child nodes\\n * exluding `_private` properties.\\n */\\n\\nfunction cloneDeep(node /*: Object*/) /*: Object*/ {\\n  var newNode = {};\\n\\n  for (var key in node) {\\n    if (key[0] === \\"_\\") continue;\\n\\n    var val = node[key];\\n\\n    if (val) {\\n      if (val.type) {\\n        val = t.cloneDeep(val);\\n      } else if (Array.isArray(val)) {\\n        val = val.map(t.cloneDeep);\\n      }\\n    }\\n\\n    newNode[key] = val;\\n  }\\n\\n  return newNode;\\n}\\n\\n/**\\n * Build a function that when called will return whether or not the\\n * input `node` `MemberExpression` matches the input `match`.\\n *\\n * For example, given the match `React.createClass` it would match the\\n * parsed nodes of `React.createClass` and `React[\\"createClass\\"]`.\\n */\\n\\nfunction buildMatchMemberExpression(match /*:string*/, allowPartial /*:: ?: boolean*/) /*: Function*/ {\\n  var parts = match.split(\\".\\");\\n\\n  return function (member) {\\n    // not a member expression\\n    if (!t.isMemberExpression(member)) return false;\\n\\n    var search = [member];\\n    var i = 0;\\n\\n    while (search.length) {\\n      var node = search.shift();\\n\\n      if (allowPartial && i === parts.length) {\\n        return true;\\n      }\\n\\n      if (t.isIdentifier(node)) {\\n        // this part doesn\'t match\\n        if (parts[i] !== node.name) return false;\\n      } else if (t.isStringLiteral(node)) {\\n        // this part doesn\'t match\\n        if (parts[i] !== node.value) return false;\\n      } else if (t.isMemberExpression(node)) {\\n        if (node.computed && !t.isStringLiteral(node.property)) {\\n          // we can\'t deal with this\\n          return false;\\n        } else {\\n          search.push(node.object);\\n          search.push(node.property);\\n          continue;\\n        }\\n      } else {\\n        // we can\'t deal with this\\n        return false;\\n      }\\n\\n      // too many parts\\n      if (++i > parts.length) {\\n        return false;\\n      }\\n    }\\n\\n    return true;\\n  };\\n}\\n\\n/**\\n * Remove comment properties from a node.\\n */\\n\\nfunction removeComments(node /*: Object*/) /*: Object*/ {\\n  for (var _iterator4 = t.COMMENT_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n    var _ref4;\\n\\n    if (_isArray4) {\\n      if (_i4 >= _iterator4.length) break;\\n      _ref4 = _iterator4[_i4++];\\n    } else {\\n      _i4 = _iterator4.next();\\n      if (_i4.done) break;\\n      _ref4 = _i4.value;\\n    }\\n\\n    var key = _ref4;\\n\\n    delete node[key];\\n  }\\n  return node;\\n}\\n\\n/**\\n * Inherit all unique comments from `parent` node to `child` node.\\n */\\n\\nfunction inheritsComments(child /*: Object*/, parent /*: Object*/) /*: Object*/ {\\n  inheritTrailingComments(child, parent);\\n  inheritLeadingComments(child, parent);\\n  inheritInnerComments(child, parent);\\n  return child;\\n}\\n\\nfunction inheritTrailingComments(child /*: Object*/, parent /*: Object*/) {\\n  _inheritComments(\\"trailingComments\\", child, parent);\\n}\\n\\nfunction inheritLeadingComments(child /*: Object*/, parent /*: Object*/) {\\n  _inheritComments(\\"leadingComments\\", child, parent);\\n}\\n\\nfunction inheritInnerComments(child /*: Object*/, parent /*: Object*/) {\\n  _inheritComments(\\"innerComments\\", child, parent);\\n}\\n\\nfunction _inheritComments(key, child, parent) {\\n  if (child && parent) {\\n    child[key] = _lodashArrayUniq2[\\"default\\"](_lodashArrayCompact2[\\"default\\"]([].concat(child[key], parent[key])));\\n  }\\n}\\n\\n/**\\n * Inherit all contextual properties from `parent` node to `child` node.\\n */\\n\\nfunction inherits(child /*: Object*/, parent /*: Object*/) /*: Object*/ {\\n  if (!child || !parent) return child;\\n\\n  // optionally inherit specific properties if not null\\n  for (var _iterator5 = (t.INHERIT_KEYS.optional /*: Array<string>*/), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n    var _ref5;\\n\\n    if (_isArray5) {\\n      if (_i5 >= _iterator5.length) break;\\n      _ref5 = _iterator5[_i5++];\\n    } else {\\n      _i5 = _iterator5.next();\\n      if (_i5.done) break;\\n      _ref5 = _i5.value;\\n    }\\n\\n    var key = _ref5;\\n\\n    if (child[key] == null) {\\n      child[key] = parent[key];\\n    }\\n  }\\n\\n  // force inherit \\"private\\" properties\\n  for (var key in parent) {\\n    if (key[0] === \\"_\\") child[key] = parent[key];\\n  }\\n\\n  // force inherit select properties\\n  for (var _iterator6 = (t.INHERIT_KEYS.force /*: Array<string>*/), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\\n    var _ref6;\\n\\n    if (_isArray6) {\\n      if (_i6 >= _iterator6.length) break;\\n      _ref6 = _iterator6[_i6++];\\n    } else {\\n      _i6 = _iterator6.next();\\n      if (_i6.done) break;\\n      _ref6 = _i6.value;\\n    }\\n\\n    var key = _ref6;\\n\\n    child[key] = parent[key];\\n  }\\n\\n  t.inheritsComments(child, parent);\\n\\n  return child;\\n}\\n\\n/**\\n * TODO\\n */\\n\\nfunction assertNode(node /*:: ?*/) {\\n  if (!isNode(node)) {\\n    // $FlowFixMe\\n    throw new TypeError(\\"Not a valid node \\" + (node && node.type));\\n  }\\n}\\n\\n/**\\n * TODO\\n */\\n\\nfunction isNode(node /*:: ?*/) /*: boolean*/ {\\n  return !!(node && _definitions.VISITOR_KEYS[node.type]);\\n}\\n\\n// Optimize property access.\\n_toFastProperties2[\\"default\\"](t);\\n_toFastProperties2[\\"default\\"](t.VISITOR_KEYS);\\n\\n//\\n\\nvar _retrievers = require(\\"./retrievers\\");\\n\\n_defaults(exports, _interopExportWildcard(_retrievers, _defaults));\\n\\nvar _validators = require(\\"./validators\\");\\n\\n_defaults(exports, _interopExportWildcard(_validators, _defaults));\\n\\nvar _converters = require(\\"./converters\\");\\n\\n_defaults(exports, _interopExportWildcard(_converters, _defaults));\\n\\nvar _flow = require(\\"./flow\\");\\n\\n_defaults(exports, _interopExportWildcard(_flow, _defaults));\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/index.js\\n ** module id = 41\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/keys\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/keys.js\\n ** module id = 42\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.keys\');\\nmodule.exports = require(\'../../modules/$.core\').Object.keys;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/keys.js\\n ** module id = 43\\n ** module chunks = 0\\n **/","// 19.1.2.14 Object.keys(O)\\nvar toObject = require(\'./$.to-object\');\\n\\nrequire(\'./$.object-sap\')(\'keys\', function($keys){\\n  return function keys(it){\\n    return $keys(toObject(it));\\n  };\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\\n ** module id = 44\\n ** module chunks = 0\\n **/","// 7.1.13 ToObject(argument)\\nvar defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return Object(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-object.js\\n ** module id = 45\\n ** module chunks = 0\\n **/","// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.defined.js\\n ** module id = 46\\n ** module chunks = 0\\n **/","// most Object methods by ES6 should accept primitives\\nvar $export = require(\'./$.export\')\\n  , core    = require(\'./$.core\')\\n  , fails   = require(\'./$.fails\');\\nmodule.exports = function(KEY, exec){\\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\\n    , exp = {};\\n  exp[KEY] = exec(fn);\\n  $export($export.S + $export.F * fails(function(){ fn(1); }), \'Object\', exp);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.object-sap.js\\n ** module id = 47\\n ** module chunks = 0\\n **/","var global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.export.js\\n ** module id = 48\\n ** module chunks = 0\\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.global.js\\n ** module id = 49\\n ** module chunks = 0\\n **/","var core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.core.js\\n ** module id = 50\\n ** module chunks = 0\\n **/","// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.ctx.js\\n ** module id = 51\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.a-function.js\\n ** module id = 52\\n ** module chunks = 0\\n **/","module.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.fails.js\\n ** module id = 53\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/get-iterator.js\\n ** module id = 54\\n ** module chunks = 0\\n **/","require(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/get-iterator.js\\n ** module id = 55\\n ** module chunks = 0\\n **/","require(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\\n ** module id = 56\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\\n ** module id = 57\\n ** module chunks = 0\\n **/","module.exports = function(){ /* empty */ };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js\\n ** module id = 58\\n ** module chunks = 0\\n **/","module.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-step.js\\n ** module id = 59\\n ** module chunks = 0\\n **/","module.exports = {};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iterators.js\\n ** module id = 60\\n ** module chunks = 0\\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js\\n ** module id = 61\\n ** module chunks = 0\\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iobject.js\\n ** module id = 62\\n ** module chunks = 0\\n **/","var toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.cof.js\\n ** module id = 63\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-define.js\\n ** module id = 64\\n ** module chunks = 0\\n **/","module.exports = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.library.js\\n ** module id = 65\\n ** module chunks = 0\\n **/","module.exports = require(\'./$.hide\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.redefine.js\\n ** module id = 66\\n ** module chunks = 0\\n **/","var $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.hide.js\\n ** module id = 67\\n ** module chunks = 0\\n **/","var $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.js\\n ** module id = 68\\n ** module chunks = 0\\n **/","module.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.property-desc.js\\n ** module id = 69\\n ** module chunks = 0\\n **/","// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.descriptors.js\\n ** module id = 70\\n ** module chunks = 0\\n **/","var hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.has.js\\n ** module id = 71\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-create.js\\n ** module id = 72\\n ** module chunks = 0\\n **/","var def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js\\n ** module id = 73\\n ** module chunks = 0\\n **/","var store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.wks.js\\n ** module id = 74\\n ** module chunks = 0\\n **/","var global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.shared.js\\n ** module id = 75\\n ** module chunks = 0\\n **/","var id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.uid.js\\n ** module id = 76\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\\n ** module id = 77\\n ** module chunks = 0\\n **/","var toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.string-at.js\\n ** module id = 78\\n ** module chunks = 0\\n **/","// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-integer.js\\n ** module id = 79\\n ** module chunks = 0\\n **/","var anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\\n ** module id = 80\\n ** module chunks = 0\\n **/","var isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.an-object.js\\n ** module id = 81\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-object.js\\n ** module id = 82\\n ** module chunks = 0\\n **/","var classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\\n ** module id = 83\\n ** module chunks = 0\\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.classof.js\\n ** module id = 84\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-require-default.js\\n ** module id = 85\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  if (obj && obj.__esModule) {\\n    return obj;\\n  } else {\\n    var newObj = {};\\n\\n    if (obj != null) {\\n      for (var key in obj) {\\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\\n      }\\n    }\\n\\n    newObj[\\"default\\"] = obj;\\n    return newObj;\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-require-wildcard.js\\n ** module id = 86\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _Object$getOwnPropertyNames = require(\\"babel-runtime/core-js/object/get-own-property-names\\")[\\"default\\"];\\n\\nvar _Object$getOwnPropertyDescriptor = require(\\"babel-runtime/core-js/object/get-own-property-descriptor\\")[\\"default\\"];\\n\\nvar _Object$defineProperty = require(\\"babel-runtime/core-js/object/define-property\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (obj, defaults) {\\n  var keys = _Object$getOwnPropertyNames(defaults);\\n\\n  for (var i = 0; i < keys.length; i++) {\\n    var key = keys[i];\\n\\n    var value = _Object$getOwnPropertyDescriptor(defaults, key);\\n\\n    if (value && value.configurable && obj[key] === undefined) {\\n      _Object$defineProperty(obj, key, value);\\n    }\\n  }\\n\\n  return obj;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/defaults.js\\n ** module id = 87\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/get-own-property-names\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/get-own-property-names.js\\n ** module id = 88\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nrequire(\'../../modules/es6.object.get-own-property-names\');\\nmodule.exports = function getOwnPropertyNames(it){\\n  return $.getNames(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-names.js\\n ** module id = 89\\n ** module chunks = 0\\n **/","// 19.1.2.7 Object.getOwnPropertyNames(O)\\nrequire(\'./$.object-sap\')(\'getOwnPropertyNames\', function(){\\n  return require(\'./$.get-names\').get;\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-names.js\\n ** module id = 90\\n ** module chunks = 0\\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\\nvar toIObject = require(\'./$.to-iobject\')\\n  , getNames  = require(\'./$\').getNames\\n  , toString  = {}.toString;\\n\\nvar windowNames = typeof window == \'object\' && Object.getOwnPropertyNames\\n  ? Object.getOwnPropertyNames(window) : [];\\n\\nvar getWindowNames = function(it){\\n  try {\\n    return getNames(it);\\n  } catch(e){\\n    return windowNames.slice();\\n  }\\n};\\n\\nmodule.exports.get = function getOwnPropertyNames(it){\\n  if(windowNames && toString.call(it) == \'[object Window]\')return getWindowNames(it);\\n  return getNames(toIObject(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.get-names.js\\n ** module id = 91\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/get-own-property-descriptor\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/get-own-property-descriptor.js\\n ** module id = 92\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nrequire(\'../../modules/es6.object.get-own-property-descriptor\');\\nmodule.exports = function getOwnPropertyDescriptor(it, key){\\n  return $.getDesc(it, key);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-descriptor.js\\n ** module id = 93\\n ** module chunks = 0\\n **/","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\\nvar toIObject = require(\'./$.to-iobject\');\\n\\nrequire(\'./$.object-sap\')(\'getOwnPropertyDescriptor\', function($getOwnPropertyDescriptor){\\n  return function getOwnPropertyDescriptor(it, key){\\n    return $getOwnPropertyDescriptor(toIObject(it), key);\\n  };\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-descriptor.js\\n ** module id = 94\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/define-property\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/define-property.js\\n ** module id = 95\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nmodule.exports = function defineProperty(it, key, desc){\\n  return $.setDesc(it, key, desc);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/define-property.js\\n ** module id = 96\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj, defaults) {\\n  var newObj = defaults({}, obj);\\n  delete newObj[\\"default\\"];\\n  return newObj;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-export-wildcard.js\\n ** module id = 97\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function toFastProperties(obj) {\\n\\t/*jshint -W027*/\\n\\tfunction f() {}\\n\\tf.prototype = obj;\\n\\tnew f();\\n\\treturn;\\n\\teval(obj);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/to-fast-properties/index.js\\n ** module id = 98\\n ** module chunks = 0\\n **/","/**\\n * Creates an array with all falsey values removed. The values `false`, `null`,\\n * `0`, `\\"\\"`, `undefined`, and `NaN` are falsey.\\n *\\n * @static\\n * @memberOf _\\n * @category Array\\n * @param {Array} array The array to compact.\\n * @returns {Array} Returns the new array of filtered values.\\n * @example\\n *\\n * _.compact([0, 1, false, 2, \'\', 3]);\\n * // => [1, 2, 3]\\n */\\nfunction compact(array) {\\n  var index = -1,\\n      length = array ? array.length : 0,\\n      resIndex = -1,\\n      result = [];\\n\\n  while (++index < length) {\\n    var value = array[index];\\n    if (value) {\\n      result[++resIndex] = value;\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = compact;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/array/compact.js\\n ** module id = 99\\n ** module chunks = 0\\n **/","var baseClone = require(\'../internal/baseClone\'),\\n    bindCallback = require(\'../internal/bindCallback\'),\\n    isIterateeCall = require(\'../internal/isIterateeCall\');\\n\\n/**\\n * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,\\n * otherwise they are assigned by reference. If `customizer` is provided it\'s\\n * invoked to produce the cloned values. If `customizer` returns `undefined`\\n * cloning is handled by the method instead. The `customizer` is bound to\\n * `thisArg` and invoked with up to three argument; (value [, index|key, object]).\\n *\\n * **Note:** This method is loosely based on the\\n * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).\\n * The enumerable properties of `arguments` objects and objects created by\\n * constructors other than `Object` are cloned to plain `Object` objects. An\\n * empty object is returned for uncloneable values such as functions, DOM nodes,\\n * Maps, Sets, and WeakMaps.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to clone.\\n * @param {boolean} [isDeep] Specify a deep clone.\\n * @param {Function} [customizer] The function to customize cloning values.\\n * @param {*} [thisArg] The `this` binding of `customizer`.\\n * @returns {*} Returns the cloned value.\\n * @example\\n *\\n * var users = [\\n *   { \'user\': \'barney\' },\\n *   { \'user\': \'fred\' }\\n * ];\\n *\\n * var shallow = _.clone(users);\\n * shallow[0] === users[0];\\n * // => true\\n *\\n * var deep = _.clone(users, true);\\n * deep[0] === users[0];\\n * // => false\\n *\\n * // using a customizer callback\\n * var el = _.clone(document.body, function(value) {\\n *   if (_.isElement(value)) {\\n *     return value.cloneNode(false);\\n *   }\\n * });\\n *\\n * el === document.body\\n * // => false\\n * el.nodeName\\n * // => BODY\\n * el.childNodes.length;\\n * // => 0\\n */\\nfunction clone(value, isDeep, customizer, thisArg) {\\n  if (isDeep && typeof isDeep != \'boolean\' && isIterateeCall(value, isDeep, customizer)) {\\n    isDeep = false;\\n  }\\n  else if (typeof isDeep == \'function\') {\\n    thisArg = customizer;\\n    customizer = isDeep;\\n    isDeep = false;\\n  }\\n  return typeof customizer == \'function\'\\n    ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 3))\\n    : baseClone(value, isDeep);\\n}\\n\\nmodule.exports = clone;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/clone.js\\n ** module id = 100\\n ** module chunks = 0\\n **/","var arrayCopy = require(\'./arrayCopy\'),\\n    arrayEach = require(\'./arrayEach\'),\\n    baseAssign = require(\'./baseAssign\'),\\n    baseForOwn = require(\'./baseForOwn\'),\\n    initCloneArray = require(\'./initCloneArray\'),\\n    initCloneByTag = require(\'./initCloneByTag\'),\\n    initCloneObject = require(\'./initCloneObject\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    funcTag = \'[object Function]\',\\n    mapTag = \'[object Map]\',\\n    numberTag = \'[object Number]\',\\n    objectTag = \'[object Object]\',\\n    regexpTag = \'[object RegExp]\',\\n    setTag = \'[object Set]\',\\n    stringTag = \'[object String]\',\\n    weakMapTag = \'[object WeakMap]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to identify `toStringTag` values supported by `_.clone`. */\\nvar cloneableTags = {};\\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\\ncloneableTags[arrayBufferTag] = cloneableTags[boolTag] =\\ncloneableTags[dateTag] = cloneableTags[float32Tag] =\\ncloneableTags[float64Tag] = cloneableTags[int8Tag] =\\ncloneableTags[int16Tag] = cloneableTags[int32Tag] =\\ncloneableTags[numberTag] = cloneableTags[objectTag] =\\ncloneableTags[regexpTag] = cloneableTags[stringTag] =\\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\\ncloneableTags[errorTag] = cloneableTags[funcTag] =\\ncloneableTags[mapTag] = cloneableTags[setTag] =\\ncloneableTags[weakMapTag] = false;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * The base implementation of `_.clone` without support for argument juggling\\n * and `this` binding `customizer` functions.\\n *\\n * @private\\n * @param {*} value The value to clone.\\n * @param {boolean} [isDeep] Specify a deep clone.\\n * @param {Function} [customizer] The function to customize cloning values.\\n * @param {string} [key] The key of `value`.\\n * @param {Object} [object] The object `value` belongs to.\\n * @param {Array} [stackA=[]] Tracks traversed source objects.\\n * @param {Array} [stackB=[]] Associates clones with source counterparts.\\n * @returns {*} Returns the cloned value.\\n */\\nfunction baseClone(value, isDeep, customizer, key, object, stackA, stackB) {\\n  var result;\\n  if (customizer) {\\n    result = object ? customizer(value, key, object) : customizer(value);\\n  }\\n  if (result !== undefined) {\\n    return result;\\n  }\\n  if (!isObject(value)) {\\n    return value;\\n  }\\n  var isArr = isArray(value);\\n  if (isArr) {\\n    result = initCloneArray(value);\\n    if (!isDeep) {\\n      return arrayCopy(value, result);\\n    }\\n  } else {\\n    var tag = objToString.call(value),\\n        isFunc = tag == funcTag;\\n\\n    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\\n      result = initCloneObject(isFunc ? {} : value);\\n      if (!isDeep) {\\n        return baseAssign(result, value);\\n      }\\n    } else {\\n      return cloneableTags[tag]\\n        ? initCloneByTag(value, tag, isDeep)\\n        : (object ? value : {});\\n    }\\n  }\\n  // Check for circular references and return its corresponding clone.\\n  stackA || (stackA = []);\\n  stackB || (stackB = []);\\n\\n  var length = stackA.length;\\n  while (length--) {\\n    if (stackA[length] == value) {\\n      return stackB[length];\\n    }\\n  }\\n  // Add the source value to the stack of traversed objects and associate it with its clone.\\n  stackA.push(value);\\n  stackB.push(result);\\n\\n  // Recursively populate clone (susceptible to call stack limits).\\n  (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {\\n    result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB);\\n  });\\n  return result;\\n}\\n\\nmodule.exports = baseClone;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseClone.js\\n ** module id = 101\\n ** module chunks = 0\\n **/","/**\\n * Copies the values of `source` to `array`.\\n *\\n * @private\\n * @param {Array} source The array to copy values from.\\n * @param {Array} [array=[]] The array to copy values to.\\n * @returns {Array} Returns `array`.\\n */\\nfunction arrayCopy(source, array) {\\n  var index = -1,\\n      length = source.length;\\n\\n  array || (array = Array(length));\\n  while (++index < length) {\\n    array[index] = source[index];\\n  }\\n  return array;\\n}\\n\\nmodule.exports = arrayCopy;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/arrayCopy.js\\n ** module id = 102\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.forEach` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns `array`.\\n */\\nfunction arrayEach(array, iteratee) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (iteratee(array[index], index, array) === false) {\\n      break;\\n    }\\n  }\\n  return array;\\n}\\n\\nmodule.exports = arrayEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/arrayEach.js\\n ** module id = 103\\n ** module chunks = 0\\n **/","var baseCopy = require(\'./baseCopy\'),\\n    keys = require(\'../object/keys\');\\n\\n/**\\n * The base implementation of `_.assign` without support for argument juggling,\\n * multiple sources, and `customizer` functions.\\n *\\n * @private\\n * @param {Object} object The destination object.\\n * @param {Object} source The source object.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseAssign(object, source) {\\n  return source == null\\n    ? object\\n    : baseCopy(source, keys(source), object);\\n}\\n\\nmodule.exports = baseAssign;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseAssign.js\\n ** module id = 104\\n ** module chunks = 0\\n **/","/**\\n * Copies properties of `source` to `object`.\\n *\\n * @private\\n * @param {Object} source The object to copy properties from.\\n * @param {Array} props The property names to copy.\\n * @param {Object} [object={}] The object to copy properties to.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseCopy(source, props, object) {\\n  object || (object = {});\\n\\n  var index = -1,\\n      length = props.length;\\n\\n  while (++index < length) {\\n    var key = props[index];\\n    object[key] = source[key];\\n  }\\n  return object;\\n}\\n\\nmodule.exports = baseCopy;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseCopy.js\\n ** module id = 105\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObject = require(\'../lang/isObject\'),\\n    shimKeys = require(\'../internal/shimKeys\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeKeys = getNative(Object, \'keys\');\\n\\n/**\\n * Creates an array of the own enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects. See the\\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\\n * for more details.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keys(new Foo);\\n * // => [\'a\', \'b\'] (iteration order is not guaranteed)\\n *\\n * _.keys(\'hi\');\\n * // => [\'0\', \'1\']\\n */\\nvar keys = !nativeKeys ? shimKeys : function(object) {\\n  var Ctor = object == null ? undefined : object.constructor;\\n  if ((typeof Ctor == \'function\' && Ctor.prototype === object) ||\\n      (typeof object != \'function\' && isArrayLike(object))) {\\n    return shimKeys(object);\\n  }\\n  return isObject(object) ? nativeKeys(object) : [];\\n};\\n\\nmodule.exports = keys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/keys.js\\n ** module id = 106\\n ** module chunks = 0\\n **/","var isNative = require(\'../lang/isNative\');\\n\\n/**\\n * Gets the native function at `key` of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {string} key The key of the method to get.\\n * @returns {*} Returns the function if it\'s native, else `undefined`.\\n */\\nfunction getNative(object, key) {\\n  var value = object == null ? undefined : object[key];\\n  return isNative(value) ? value : undefined;\\n}\\n\\nmodule.exports = getNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/getNative.js\\n ** module id = 107\\n ** module chunks = 0\\n **/","var isFunction = require(\'./isFunction\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used to detect host constructors (Safari > 5). */\\nvar reIsHostCtor = /^\\\\[object .+?Constructor\\\\]$/;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to resolve the decompiled source of functions. */\\nvar fnToString = Function.prototype.toString;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Used to detect if a method is native. */\\nvar reIsNative = RegExp(\'^\' +\\n  fnToString.call(hasOwnProperty).replace(/[\\\\\\\\^$.*+?()[\\\\]{}|]/g, \'\\\\\\\\$&\')\\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g, \'$1.*?\') + \'$\'\\n);\\n\\n/**\\n * Checks if `value` is a native function.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\\n * @example\\n *\\n * _.isNative(Array.prototype.push);\\n * // => true\\n *\\n * _.isNative(_);\\n * // => false\\n */\\nfunction isNative(value) {\\n  if (value == null) {\\n    return false;\\n  }\\n  if (isFunction(value)) {\\n    return reIsNative.test(fnToString.call(value));\\n  }\\n  return isObjectLike(value) && reIsHostCtor.test(value);\\n}\\n\\nmodule.exports = isNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isNative.js\\n ** module id = 108\\n ** module chunks = 0\\n **/","var isObject = require(\'./isObject\');\\n\\n/** `Object#toString` result references. */\\nvar funcTag = \'[object Function]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Function` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isFunction(_);\\n * // => true\\n *\\n * _.isFunction(/abc/);\\n * // => false\\n */\\nfunction isFunction(value) {\\n  // The use of `Object#toString` avoids issues with the `typeof` operator\\n  // in older versions of Chrome and Safari which return \'function\' for regexes\\n  // and Safari 8 which returns \'object\' for typed array constructors.\\n  return isObject(value) && objToString.call(value) == funcTag;\\n}\\n\\nmodule.exports = isFunction;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isFunction.js\\n ** module id = 109\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String(\'\')`)\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(1);\\n * // => false\\n */\\nfunction isObject(value) {\\n  // Avoid a V8 JIT bug in Chrome 19-20.\\n  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\\n  var type = typeof value;\\n  return !!value && (type == \'object\' || type == \'function\');\\n}\\n\\nmodule.exports = isObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isObject.js\\n ** module id = 110\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is object-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n */\\nfunction isObjectLike(value) {\\n  return !!value && typeof value == \'object\';\\n}\\n\\nmodule.exports = isObjectLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isObjectLike.js\\n ** module id = 111\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\');\\n\\n/**\\n * Checks if `value` is array-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\\n */\\nfunction isArrayLike(value) {\\n  return value != null && isLength(getLength(value));\\n}\\n\\nmodule.exports = isArrayLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isArrayLike.js\\n ** module id = 112\\n ** module chunks = 0\\n **/","var baseProperty = require(\'./baseProperty\');\\n\\n/**\\n * Gets the \\"length\\" property value of `object`.\\n *\\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {*} Returns the \\"length\\" value.\\n */\\nvar getLength = baseProperty(\'length\');\\n\\nmodule.exports = getLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/getLength.js\\n ** module id = 113\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.property` without support for deep paths.\\n *\\n * @private\\n * @param {string} key The key of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseProperty(key) {\\n  return function(object) {\\n    return object == null ? undefined : object[key];\\n  };\\n}\\n\\nmodule.exports = baseProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseProperty.js\\n ** module id = 114\\n ** module chunks = 0\\n **/","/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like length.\\n *\\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\\n */\\nfunction isLength(value) {\\n  return typeof value == \'number\' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\\n}\\n\\nmodule.exports = isLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isLength.js\\n ** module id = 115\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'./isIndex\'),\\n    isLength = require(\'./isLength\'),\\n    keysIn = require(\'../object/keysIn\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A fallback implementation of `Object.keys` which creates an array of the\\n * own enumerable property names of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n */\\nfunction shimKeys(object) {\\n  var props = keysIn(object),\\n      propsLength = props.length,\\n      length = propsLength && object.length;\\n\\n  var allowIndexes = !!length && isLength(length) &&\\n    (isArray(object) || isArguments(object));\\n\\n  var index = -1,\\n      result = [];\\n\\n  while (++index < propsLength) {\\n    var key = props[index];\\n    if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = shimKeys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/shimKeys.js\\n ** module id = 116\\n ** module chunks = 0\\n **/","var isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Native method references. */\\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\\n\\n/**\\n * Checks if `value` is classified as an `arguments` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArguments(function() { return arguments; }());\\n * // => true\\n *\\n * _.isArguments([1, 2, 3]);\\n * // => false\\n */\\nfunction isArguments(value) {\\n  return isObjectLike(value) && isArrayLike(value) &&\\n    hasOwnProperty.call(value, \'callee\') && !propertyIsEnumerable.call(value, \'callee\');\\n}\\n\\nmodule.exports = isArguments;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isArguments.js\\n ** module id = 117\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar arrayTag = \'[object Array]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeIsArray = getNative(Array, \'isArray\');\\n\\n/**\\n * Checks if `value` is classified as an `Array` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArray([1, 2, 3]);\\n * // => true\\n *\\n * _.isArray(function() { return arguments; }());\\n * // => false\\n */\\nvar isArray = nativeIsArray || function(value) {\\n  return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\\n};\\n\\nmodule.exports = isArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isArray.js\\n ** module id = 118\\n ** module chunks = 0\\n **/","/** Used to detect unsigned integer values. */\\nvar reIsUint = /^\\\\d+$/;\\n\\n/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like index.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\\n */\\nfunction isIndex(value, length) {\\n  value = (typeof value == \'number\' || reIsUint.test(value)) ? +value : -1;\\n  length = length == null ? MAX_SAFE_INTEGER : length;\\n  return value > -1 && value % 1 == 0 && value < length;\\n}\\n\\nmodule.exports = isIndex;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isIndex.js\\n ** module id = 119\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'../internal/isIndex\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Creates an array of the own and inherited enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keysIn(new Foo);\\n * // => [\'a\', \'b\', \'c\'] (iteration order is not guaranteed)\\n */\\nfunction keysIn(object) {\\n  if (object == null) {\\n    return [];\\n  }\\n  if (!isObject(object)) {\\n    object = Object(object);\\n  }\\n  var length = object.length;\\n  length = (length && isLength(length) &&\\n    (isArray(object) || isArguments(object)) && length) || 0;\\n\\n  var Ctor = object.constructor,\\n      index = -1,\\n      isProto = typeof Ctor == \'function\' && Ctor.prototype === object,\\n      result = Array(length),\\n      skipIndexes = length > 0;\\n\\n  while (++index < length) {\\n    result[index] = (index + \'\');\\n  }\\n  for (var key in object) {\\n    if (!(skipIndexes && isIndex(key, length)) &&\\n        !(key == \'constructor\' && (isProto || !hasOwnProperty.call(object, key)))) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = keysIn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/keysIn.js\\n ** module id = 120\\n ** module chunks = 0\\n **/","var baseFor = require(\'./baseFor\'),\\n    keys = require(\'../object/keys\');\\n\\n/**\\n * The base implementation of `_.forOwn` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseForOwn(object, iteratee) {\\n  return baseFor(object, iteratee, keys);\\n}\\n\\nmodule.exports = baseForOwn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseForOwn.js\\n ** module id = 121\\n ** module chunks = 0\\n **/","var createBaseFor = require(\'./createBaseFor\');\\n\\n/**\\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\\n * each property. Iteratee functions may exit iteration early by explicitly\\n * returning `false`.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @param {Function} keysFunc The function to get the keys of `object`.\\n * @returns {Object} Returns `object`.\\n */\\nvar baseFor = createBaseFor();\\n\\nmodule.exports = baseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseFor.js\\n ** module id = 122\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a base function for `_.forIn` or `_.forInRight`.\\n *\\n * @private\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseFor(fromRight) {\\n  return function(object, iteratee, keysFunc) {\\n    var iterable = toObject(object),\\n        props = keysFunc(object),\\n        length = props.length,\\n        index = fromRight ? length : -1;\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      var key = props[index];\\n      if (iteratee(iterable[key], key, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return object;\\n  };\\n}\\n\\nmodule.exports = createBaseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createBaseFor.js\\n ** module id = 123\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Converts `value` to an object if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Object} Returns the object.\\n */\\nfunction toObject(value) {\\n  return isObject(value) ? value : Object(value);\\n}\\n\\nmodule.exports = toObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/toObject.js\\n ** module id = 124\\n ** module chunks = 0\\n **/","/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Initializes an array clone.\\n *\\n * @private\\n * @param {Array} array The array to clone.\\n * @returns {Array} Returns the initialized clone.\\n */\\nfunction initCloneArray(array) {\\n  var length = array.length,\\n      result = new array.constructor(length);\\n\\n  // Add array properties assigned by `RegExp#exec`.\\n  if (length && typeof array[0] == \'string\' && hasOwnProperty.call(array, \'index\')) {\\n    result.index = array.index;\\n    result.input = array.input;\\n  }\\n  return result;\\n}\\n\\nmodule.exports = initCloneArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/initCloneArray.js\\n ** module id = 125\\n ** module chunks = 0\\n **/","var bufferClone = require(\'./bufferClone\');\\n\\n/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    numberTag = \'[object Number]\',\\n    regexpTag = \'[object RegExp]\',\\n    stringTag = \'[object String]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to match `RegExp` flags from their coerced string values. */\\nvar reFlags = /\\\\w*$/;\\n\\n/**\\n * Initializes an object clone based on its `toStringTag`.\\n *\\n * **Note:** This function only supports cloning values with tags of\\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\\n *\\n * @private\\n * @param {Object} object The object to clone.\\n * @param {string} tag The `toStringTag` of the object to clone.\\n * @param {boolean} [isDeep] Specify a deep clone.\\n * @returns {Object} Returns the initialized clone.\\n */\\nfunction initCloneByTag(object, tag, isDeep) {\\n  var Ctor = object.constructor;\\n  switch (tag) {\\n    case arrayBufferTag:\\n      return bufferClone(object);\\n\\n    case boolTag:\\n    case dateTag:\\n      return new Ctor(+object);\\n\\n    case float32Tag: case float64Tag:\\n    case int8Tag: case int16Tag: case int32Tag:\\n    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\\n      var buffer = object.buffer;\\n      return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length);\\n\\n    case numberTag:\\n    case stringTag:\\n      return new Ctor(object);\\n\\n    case regexpTag:\\n      var result = new Ctor(object.source, reFlags.exec(object));\\n      result.lastIndex = object.lastIndex;\\n  }\\n  return result;\\n}\\n\\nmodule.exports = initCloneByTag;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/initCloneByTag.js\\n ** module id = 126\\n ** module chunks = 0\\n **/","/** Native method references. */\\nvar ArrayBuffer = global.ArrayBuffer,\\n    Uint8Array = global.Uint8Array;\\n\\n/**\\n * Creates a clone of the given array buffer.\\n *\\n * @private\\n * @param {ArrayBuffer} buffer The array buffer to clone.\\n * @returns {ArrayBuffer} Returns the cloned array buffer.\\n */\\nfunction bufferClone(buffer) {\\n  var result = new ArrayBuffer(buffer.byteLength),\\n      view = new Uint8Array(result);\\n\\n  view.set(new Uint8Array(buffer));\\n  return result;\\n}\\n\\nmodule.exports = bufferClone;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/bufferClone.js\\n ** module id = 127\\n ** module chunks = 0\\n **/","/**\\n * Initializes an object clone.\\n *\\n * @private\\n * @param {Object} object The object to clone.\\n * @returns {Object} Returns the initialized clone.\\n */\\nfunction initCloneObject(object) {\\n  var Ctor = object.constructor;\\n  if (!(typeof Ctor == \'function\' && Ctor instanceof Ctor)) {\\n    Ctor = Object;\\n  }\\n  return new Ctor;\\n}\\n\\nmodule.exports = initCloneObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/initCloneObject.js\\n ** module id = 128\\n ** module chunks = 0\\n **/","var identity = require(\'../utility/identity\');\\n\\n/**\\n * A specialized version of `baseCallback` which only supports `this` binding\\n * and specifying the number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {Function} func The function to bind.\\n * @param {*} thisArg The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction bindCallback(func, thisArg, argCount) {\\n  if (typeof func != \'function\') {\\n    return identity;\\n  }\\n  if (thisArg === undefined) {\\n    return func;\\n  }\\n  switch (argCount) {\\n    case 1: return function(value) {\\n      return func.call(thisArg, value);\\n    };\\n    case 3: return function(value, index, collection) {\\n      return func.call(thisArg, value, index, collection);\\n    };\\n    case 4: return function(accumulator, value, index, collection) {\\n      return func.call(thisArg, accumulator, value, index, collection);\\n    };\\n    case 5: return function(value, other, key, object, source) {\\n      return func.call(thisArg, value, other, key, object, source);\\n    };\\n  }\\n  return function() {\\n    return func.apply(thisArg, arguments);\\n  };\\n}\\n\\nmodule.exports = bindCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/bindCallback.js\\n ** module id = 129\\n ** module chunks = 0\\n **/","/**\\n * This method returns the first argument provided to it.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {*} value Any value.\\n * @returns {*} Returns `value`.\\n * @example\\n *\\n * var object = { \'user\': \'fred\' };\\n *\\n * _.identity(object) === object;\\n * // => true\\n */\\nfunction identity(value) {\\n  return value;\\n}\\n\\nmodule.exports = identity;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/utility/identity.js\\n ** module id = 130\\n ** module chunks = 0\\n **/","var isArrayLike = require(\'./isArrayLike\'),\\n    isIndex = require(\'./isIndex\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if the provided arguments are from an iteratee call.\\n *\\n * @private\\n * @param {*} value The potential iteratee value argument.\\n * @param {*} index The potential iteratee index or key argument.\\n * @param {*} object The potential iteratee object argument.\\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\\n */\\nfunction isIterateeCall(value, index, object) {\\n  if (!isObject(object)) {\\n    return false;\\n  }\\n  var type = typeof index;\\n  if (type == \'number\'\\n      ? (isArrayLike(object) && isIndex(index, object.length))\\n      : (type == \'string\' && index in object)) {\\n    var other = object[index];\\n    return value === value ? (value === other) : (other !== other);\\n  }\\n  return false;\\n}\\n\\nmodule.exports = isIterateeCall;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isIterateeCall.js\\n ** module id = 131\\n ** module chunks = 0\\n **/","module.exports = require(\'./forEach\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/collection/each.js\\n ** module id = 132\\n ** module chunks = 0\\n **/","var arrayEach = require(\'../internal/arrayEach\'),\\n    baseEach = require(\'../internal/baseEach\'),\\n    createForEach = require(\'../internal/createForEach\');\\n\\n/**\\n * Iterates over elements of `collection` invoking `iteratee` for each element.\\n * The `iteratee` is bound to `thisArg` and invoked with three arguments:\\n * (value, index|key, collection). Iteratee functions may exit iteration early\\n * by explicitly returning `false`.\\n *\\n * **Note:** As with other \\"Collections\\" methods, objects with a \\"length\\" property\\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\\n * may be used for object iteration.\\n *\\n * @static\\n * @memberOf _\\n * @alias each\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array|Object|string} Returns `collection`.\\n * @example\\n *\\n * _([1, 2]).forEach(function(n) {\\n *   console.log(n);\\n * }).value();\\n * // => logs each value from left to right and returns the array\\n *\\n * _.forEach({ \'a\': 1, \'b\': 2 }, function(n, key) {\\n *   console.log(n, key);\\n * });\\n * // => logs each value-key pair and returns the object (iteration order is not guaranteed)\\n */\\nvar forEach = createForEach(arrayEach, baseEach);\\n\\nmodule.exports = forEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/collection/forEach.js\\n ** module id = 133\\n ** module chunks = 0\\n **/","var baseForOwn = require(\'./baseForOwn\'),\\n    createBaseEach = require(\'./createBaseEach\');\\n\\n/**\\n * The base implementation of `_.forEach` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array|Object|string} Returns `collection`.\\n */\\nvar baseEach = createBaseEach(baseForOwn);\\n\\nmodule.exports = baseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseEach.js\\n ** module id = 134\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a `baseEach` or `baseEachRight` function.\\n *\\n * @private\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseEach(eachFunc, fromRight) {\\n  return function(collection, iteratee) {\\n    var length = collection ? getLength(collection) : 0;\\n    if (!isLength(length)) {\\n      return eachFunc(collection, iteratee);\\n    }\\n    var index = fromRight ? length : -1,\\n        iterable = toObject(collection);\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      if (iteratee(iterable[index], index, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return collection;\\n  };\\n}\\n\\nmodule.exports = createBaseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createBaseEach.js\\n ** module id = 135\\n ** module chunks = 0\\n **/","var bindCallback = require(\'./bindCallback\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/**\\n * Creates a function for `_.forEach` or `_.forEachRight`.\\n *\\n * @private\\n * @param {Function} arrayFunc The function to iterate over an array.\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @returns {Function} Returns the new each function.\\n */\\nfunction createForEach(arrayFunc, eachFunc) {\\n  return function(collection, iteratee, thisArg) {\\n    return (typeof iteratee == \'function\' && thisArg === undefined && isArray(collection))\\n      ? arrayFunc(collection, iteratee)\\n      : eachFunc(collection, bindCallback(iteratee, thisArg, 3));\\n  };\\n}\\n\\nmodule.exports = createForEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createForEach.js\\n ** module id = 136\\n ** module chunks = 0\\n **/","var baseCallback = require(\'../internal/baseCallback\'),\\n    baseUniq = require(\'../internal/baseUniq\'),\\n    isIterateeCall = require(\'../internal/isIterateeCall\'),\\n    sortedUniq = require(\'../internal/sortedUniq\');\\n\\n/**\\n * Creates a duplicate-free version of an array, using\\n * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\\n * for equality comparisons, in which only the first occurence of each element\\n * is kept. Providing `true` for `isSorted` performs a faster search algorithm\\n * for sorted arrays. If an iteratee function is provided it\'s invoked for\\n * each element in the array to generate the criterion by which uniqueness\\n * is computed. The `iteratee` is bound to `thisArg` and invoked with three\\n * arguments: (value, index, array).\\n *\\n * If a property name is provided for `iteratee` the created `_.property`\\n * style callback returns the property value of the given element.\\n *\\n * If a value is also provided for `thisArg` the created `_.matchesProperty`\\n * style callback returns `true` for elements that have a matching property\\n * value, else `false`.\\n *\\n * If an object is provided for `iteratee` the created `_.matches` style\\n * callback returns `true` for elements that have the properties of the given\\n * object, else `false`.\\n *\\n * @static\\n * @memberOf _\\n * @alias unique\\n * @category Array\\n * @param {Array} array The array to inspect.\\n * @param {boolean} [isSorted] Specify the array is sorted.\\n * @param {Function|Object|string} [iteratee] The function invoked per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array} Returns the new duplicate-value-free array.\\n * @example\\n *\\n * _.uniq([2, 1, 2]);\\n * // => [2, 1]\\n *\\n * // using `isSorted`\\n * _.uniq([1, 1, 2], true);\\n * // => [1, 2]\\n *\\n * // using an iteratee function\\n * _.uniq([1, 2.5, 1.5, 2], function(n) {\\n *   return this.floor(n);\\n * }, Math);\\n * // => [1, 2.5]\\n *\\n * // using the `_.property` callback shorthand\\n * _.uniq([{ \'x\': 1 }, { \'x\': 2 }, { \'x\': 1 }], \'x\');\\n * // => [{ \'x\': 1 }, { \'x\': 2 }]\\n */\\nfunction uniq(array, isSorted, iteratee, thisArg) {\\n  var length = array ? array.length : 0;\\n  if (!length) {\\n    return [];\\n  }\\n  if (isSorted != null && typeof isSorted != \'boolean\') {\\n    thisArg = iteratee;\\n    iteratee = isIterateeCall(array, isSorted, thisArg) ? undefined : isSorted;\\n    isSorted = false;\\n  }\\n  iteratee = iteratee == null ? iteratee : baseCallback(iteratee, thisArg, 3);\\n  return (isSorted)\\n    ? sortedUniq(array, iteratee)\\n    : baseUniq(array, iteratee);\\n}\\n\\nmodule.exports = uniq;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/array/uniq.js\\n ** module id = 137\\n ** module chunks = 0\\n **/","var baseMatches = require(\'./baseMatches\'),\\n    baseMatchesProperty = require(\'./baseMatchesProperty\'),\\n    bindCallback = require(\'./bindCallback\'),\\n    identity = require(\'../utility/identity\'),\\n    property = require(\'../utility/property\');\\n\\n/**\\n * The base implementation of `_.callback` which supports specifying the\\n * number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {*} [func=_.identity] The value to convert to a callback.\\n * @param {*} [thisArg] The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction baseCallback(func, thisArg, argCount) {\\n  var type = typeof func;\\n  if (type == \'function\') {\\n    return thisArg === undefined\\n      ? func\\n      : bindCallback(func, thisArg, argCount);\\n  }\\n  if (func == null) {\\n    return identity;\\n  }\\n  if (type == \'object\') {\\n    return baseMatches(func);\\n  }\\n  return thisArg === undefined\\n    ? property(func)\\n    : baseMatchesProperty(func, thisArg);\\n}\\n\\nmodule.exports = baseCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseCallback.js\\n ** module id = 138\\n ** module chunks = 0\\n **/","var baseIsMatch = require(\'./baseIsMatch\'),\\n    getMatchData = require(\'./getMatchData\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.matches` which does not clone `source`.\\n *\\n * @private\\n * @param {Object} source The object of property values to match.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatches(source) {\\n  var matchData = getMatchData(source);\\n  if (matchData.length == 1 && matchData[0][2]) {\\n    var key = matchData[0][0],\\n        value = matchData[0][1];\\n\\n    return function(object) {\\n      if (object == null) {\\n        return false;\\n      }\\n      return object[key] === value && (value !== undefined || (key in toObject(object)));\\n    };\\n  }\\n  return function(object) {\\n    return baseIsMatch(object, matchData);\\n  };\\n}\\n\\nmodule.exports = baseMatches;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseMatches.js\\n ** module id = 139\\n ** module chunks = 0\\n **/","var baseIsEqual = require(\'./baseIsEqual\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.isMatch` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to inspect.\\n * @param {Array} matchData The propery names, values, and compare flags to match.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\\n */\\nfunction baseIsMatch(object, matchData, customizer) {\\n  var index = matchData.length,\\n      length = index,\\n      noCustomizer = !customizer;\\n\\n  if (object == null) {\\n    return !length;\\n  }\\n  object = toObject(object);\\n  while (index--) {\\n    var data = matchData[index];\\n    if ((noCustomizer && data[2])\\n          ? data[1] !== object[data[0]]\\n          : !(data[0] in object)\\n        ) {\\n      return false;\\n    }\\n  }\\n  while (++index < length) {\\n    data = matchData[index];\\n    var key = data[0],\\n        objValue = object[key],\\n        srcValue = data[1];\\n\\n    if (noCustomizer && data[2]) {\\n      if (objValue === undefined && !(key in object)) {\\n        return false;\\n      }\\n    } else {\\n      var result = customizer ? customizer(objValue, srcValue, key) : undefined;\\n      if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {\\n        return false;\\n      }\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = baseIsMatch;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIsMatch.js\\n ** module id = 140\\n ** module chunks = 0\\n **/","var baseIsEqualDeep = require(\'./baseIsEqualDeep\'),\\n    isObject = require(\'../lang/isObject\'),\\n    isObjectLike = require(\'./isObjectLike\');\\n\\n/**\\n * The base implementation of `_.isEqual` without support for `this` binding\\n * `customizer` functions.\\n *\\n * @private\\n * @param {*} value The value to compare.\\n * @param {*} other The other value to compare.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\\n */\\nfunction baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {\\n  if (value === other) {\\n    return true;\\n  }\\n  if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\\n    return value !== value && other !== other;\\n  }\\n  return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);\\n}\\n\\nmodule.exports = baseIsEqual;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIsEqual.js\\n ** module id = 141\\n ** module chunks = 0\\n **/","var equalArrays = require(\'./equalArrays\'),\\n    equalByTag = require(\'./equalByTag\'),\\n    equalObjects = require(\'./equalObjects\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isTypedArray = require(\'../lang/isTypedArray\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    objectTag = \'[object Object]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * A specialized version of `baseIsEqual` for arrays and objects which performs\\n * deep comparisons and tracks traversed objects enabling objects with circular\\n * references to be compared.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA=[]] Tracks traversed `value` objects.\\n * @param {Array} [stackB=[]] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objIsArr = isArray(object),\\n      othIsArr = isArray(other),\\n      objTag = arrayTag,\\n      othTag = arrayTag;\\n\\n  if (!objIsArr) {\\n    objTag = objToString.call(object);\\n    if (objTag == argsTag) {\\n      objTag = objectTag;\\n    } else if (objTag != objectTag) {\\n      objIsArr = isTypedArray(object);\\n    }\\n  }\\n  if (!othIsArr) {\\n    othTag = objToString.call(other);\\n    if (othTag == argsTag) {\\n      othTag = objectTag;\\n    } else if (othTag != objectTag) {\\n      othIsArr = isTypedArray(other);\\n    }\\n  }\\n  var objIsObj = objTag == objectTag,\\n      othIsObj = othTag == objectTag,\\n      isSameTag = objTag == othTag;\\n\\n  if (isSameTag && !(objIsArr || objIsObj)) {\\n    return equalByTag(object, other, objTag);\\n  }\\n  if (!isLoose) {\\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, \'__wrapped__\'),\\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, \'__wrapped__\');\\n\\n    if (objIsWrapped || othIsWrapped) {\\n      return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);\\n    }\\n  }\\n  if (!isSameTag) {\\n    return false;\\n  }\\n  // Assume cyclic values are equal.\\n  // For more information on detecting circular references see https://es5.github.io/#JO.\\n  stackA || (stackA = []);\\n  stackB || (stackB = []);\\n\\n  var length = stackA.length;\\n  while (length--) {\\n    if (stackA[length] == object) {\\n      return stackB[length] == other;\\n    }\\n  }\\n  // Add `object` and `other` to the stack of traversed objects.\\n  stackA.push(object);\\n  stackB.push(other);\\n\\n  var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);\\n\\n  stackA.pop();\\n  stackB.pop();\\n\\n  return result;\\n}\\n\\nmodule.exports = baseIsEqualDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIsEqualDeep.js\\n ** module id = 142\\n ** module chunks = 0\\n **/","var arraySome = require(\'./arraySome\');\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for arrays with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Array} array The array to compare.\\n * @param {Array} other The other array to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing arrays.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\\n */\\nfunction equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var index = -1,\\n      arrLength = array.length,\\n      othLength = other.length;\\n\\n  if (arrLength != othLength && !(isLoose && othLength > arrLength)) {\\n    return false;\\n  }\\n  // Ignore non-index properties.\\n  while (++index < arrLength) {\\n    var arrValue = array[index],\\n        othValue = other[index],\\n        result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;\\n\\n    if (result !== undefined) {\\n      if (result) {\\n        continue;\\n      }\\n      return false;\\n    }\\n    // Recursively compare arrays (susceptible to call stack limits).\\n    if (isLoose) {\\n      if (!arraySome(other, function(othValue) {\\n            return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);\\n          })) {\\n        return false;\\n      }\\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalArrays;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/equalArrays.js\\n ** module id = 143\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.some` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} predicate The function invoked per iteration.\\n * @returns {boolean} Returns `true` if any element passes the predicate check,\\n *  else `false`.\\n */\\nfunction arraySome(array, predicate) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (predicate(array[index], index, array)) {\\n      return true;\\n    }\\n  }\\n  return false;\\n}\\n\\nmodule.exports = arraySome;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/arraySome.js\\n ** module id = 144\\n ** module chunks = 0\\n **/","/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    numberTag = \'[object Number]\',\\n    regexpTag = \'[object RegExp]\',\\n    stringTag = \'[object String]\';\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for comparing objects of\\n * the same `toStringTag`.\\n *\\n * **Note:** This function only supports comparing values with tags of\\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {string} tag The `toStringTag` of the objects to compare.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalByTag(object, other, tag) {\\n  switch (tag) {\\n    case boolTag:\\n    case dateTag:\\n      // Coerce dates and booleans to numbers, dates to milliseconds and booleans\\n      // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.\\n      return +object == +other;\\n\\n    case errorTag:\\n      return object.name == other.name && object.message == other.message;\\n\\n    case numberTag:\\n      // Treat `NaN` vs. `NaN` as equal.\\n      return (object != +object)\\n        ? other != +other\\n        : object == +other;\\n\\n    case regexpTag:\\n    case stringTag:\\n      // Coerce regexes to strings and treat strings primitives and string\\n      // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.\\n      return object == (other + \'\');\\n  }\\n  return false;\\n}\\n\\nmodule.exports = equalByTag;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/equalByTag.js\\n ** module id = 145\\n ** module chunks = 0\\n **/","var keys = require(\'../object/keys\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for objects with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objProps = keys(object),\\n      objLength = objProps.length,\\n      othProps = keys(other),\\n      othLength = othProps.length;\\n\\n  if (objLength != othLength && !isLoose) {\\n    return false;\\n  }\\n  var index = objLength;\\n  while (index--) {\\n    var key = objProps[index];\\n    if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {\\n      return false;\\n    }\\n  }\\n  var skipCtor = isLoose;\\n  while (++index < objLength) {\\n    key = objProps[index];\\n    var objValue = object[key],\\n        othValue = other[key],\\n        result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;\\n\\n    // Recursively compare objects (susceptible to call stack limits).\\n    if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {\\n      return false;\\n    }\\n    skipCtor || (skipCtor = key == \'constructor\');\\n  }\\n  if (!skipCtor) {\\n    var objCtor = object.constructor,\\n        othCtor = other.constructor;\\n\\n    // Non `Object` object instances with different constructors are not equal.\\n    if (objCtor != othCtor &&\\n        (\'constructor\' in object && \'constructor\' in other) &&\\n        !(typeof objCtor == \'function\' && objCtor instanceof objCtor &&\\n          typeof othCtor == \'function\' && othCtor instanceof othCtor)) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalObjects;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/equalObjects.js\\n ** module id = 146\\n ** module chunks = 0\\n **/","var isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    funcTag = \'[object Function]\',\\n    mapTag = \'[object Map]\',\\n    numberTag = \'[object Number]\',\\n    objectTag = \'[object Object]\',\\n    regexpTag = \'[object RegExp]\',\\n    setTag = \'[object Set]\',\\n    stringTag = \'[object String]\',\\n    weakMapTag = \'[object WeakMap]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to identify `toStringTag` values of typed arrays. */\\nvar typedArrayTags = {};\\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\\ntypedArrayTags[uint32Tag] = true;\\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a typed array.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isTypedArray(new Uint8Array);\\n * // => true\\n *\\n * _.isTypedArray([]);\\n * // => false\\n */\\nfunction isTypedArray(value) {\\n  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\\n}\\n\\nmodule.exports = isTypedArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isTypedArray.js\\n ** module id = 147\\n ** module chunks = 0\\n **/","var isStrictComparable = require(\'./isStrictComparable\'),\\n    pairs = require(\'../object/pairs\');\\n\\n/**\\n * Gets the propery names, values, and compare flags of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the match data of `object`.\\n */\\nfunction getMatchData(object) {\\n  var result = pairs(object),\\n      length = result.length;\\n\\n  while (length--) {\\n    result[length][2] = isStrictComparable(result[length][1]);\\n  }\\n  return result;\\n}\\n\\nmodule.exports = getMatchData;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/getMatchData.js\\n ** module id = 148\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` if suitable for strict\\n *  equality comparisons, else `false`.\\n */\\nfunction isStrictComparable(value) {\\n  return value === value && !isObject(value);\\n}\\n\\nmodule.exports = isStrictComparable;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isStrictComparable.js\\n ** module id = 149\\n ** module chunks = 0\\n **/","var keys = require(\'./keys\'),\\n    toObject = require(\'../internal/toObject\');\\n\\n/**\\n * Creates a two dimensional array of the key-value pairs for `object`,\\n * e.g. `[[key1, value1], [key2, value2]]`.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the new array of key-value pairs.\\n * @example\\n *\\n * _.pairs({ \'barney\': 36, \'fred\': 40 });\\n * // => [[\'barney\', 36], [\'fred\', 40]] (iteration order is not guaranteed)\\n */\\nfunction pairs(object) {\\n  object = toObject(object);\\n\\n  var index = -1,\\n      props = keys(object),\\n      length = props.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    var key = props[index];\\n    result[index] = [key, object[key]];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = pairs;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/pairs.js\\n ** module id = 150\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    baseIsEqual = require(\'./baseIsEqual\'),\\n    baseSlice = require(\'./baseSlice\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isKey = require(\'./isKey\'),\\n    isStrictComparable = require(\'./isStrictComparable\'),\\n    last = require(\'../array/last\'),\\n    toObject = require(\'./toObject\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * The base implementation of `_.matchesProperty` which does not clone `srcValue`.\\n *\\n * @private\\n * @param {string} path The path of the property to get.\\n * @param {*} srcValue The value to compare.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatchesProperty(path, srcValue) {\\n  var isArr = isArray(path),\\n      isCommon = isKey(path) && isStrictComparable(srcValue),\\n      pathKey = (path + \'\');\\n\\n  path = toPath(path);\\n  return function(object) {\\n    if (object == null) {\\n      return false;\\n    }\\n    var key = pathKey;\\n    object = toObject(object);\\n    if ((isArr || !isCommon) && !(key in object)) {\\n      object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\\n      if (object == null) {\\n        return false;\\n      }\\n      key = last(path);\\n      object = toObject(object);\\n    }\\n    return object[key] === srcValue\\n      ? (srcValue !== undefined || (key in object))\\n      : baseIsEqual(srcValue, object[key], undefined, true);\\n  };\\n}\\n\\nmodule.exports = baseMatchesProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseMatchesProperty.js\\n ** module id = 151\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `get` without support for string paths\\n * and default values.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {Array} path The path of the property to get.\\n * @param {string} [pathKey] The key representation of path.\\n * @returns {*} Returns the resolved value.\\n */\\nfunction baseGet(object, path, pathKey) {\\n  if (object == null) {\\n    return;\\n  }\\n  if (pathKey !== undefined && pathKey in toObject(object)) {\\n    path = [pathKey];\\n  }\\n  var index = 0,\\n      length = path.length;\\n\\n  while (object != null && index < length) {\\n    object = object[path[index++]];\\n  }\\n  return (index && index == length) ? object : undefined;\\n}\\n\\nmodule.exports = baseGet;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseGet.js\\n ** module id = 152\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.slice` without an iteratee call guard.\\n *\\n * @private\\n * @param {Array} array The array to slice.\\n * @param {number} [start=0] The start position.\\n * @param {number} [end=array.length] The end position.\\n * @returns {Array} Returns the slice of `array`.\\n */\\nfunction baseSlice(array, start, end) {\\n  var index = -1,\\n      length = array.length;\\n\\n  start = start == null ? 0 : (+start || 0);\\n  if (start < 0) {\\n    start = -start > length ? 0 : (length + start);\\n  }\\n  end = (end === undefined || end > length) ? length : (+end || 0);\\n  if (end < 0) {\\n    end += length;\\n  }\\n  length = start > end ? 0 : ((end - start) >>> 0);\\n  start >>>= 0;\\n\\n  var result = Array(length);\\n  while (++index < length) {\\n    result[index] = array[index + start];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseSlice;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseSlice.js\\n ** module id = 153\\n ** module chunks = 0\\n **/","var isArray = require(\'../lang/isArray\'),\\n    toObject = require(\'./toObject\');\\n\\n/** Used to match property names within property paths. */\\nvar reIsDeepProp = /\\\\.|\\\\[(?:[^[\\\\]]*|([\\"\'])(?:(?!\\\\1)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?\\\\1)\\\\]/,\\n    reIsPlainProp = /^\\\\w*$/;\\n\\n/**\\n * Checks if `value` is a property name and not a property path.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {Object} [object] The object to query keys on.\\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\\n */\\nfunction isKey(value, object) {\\n  var type = typeof value;\\n  if ((type == \'string\' && reIsPlainProp.test(value)) || type == \'number\') {\\n    return true;\\n  }\\n  if (isArray(value)) {\\n    return false;\\n  }\\n  var result = !reIsDeepProp.test(value);\\n  return result || (object != null && value in toObject(object));\\n}\\n\\nmodule.exports = isKey;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isKey.js\\n ** module id = 154\\n ** module chunks = 0\\n **/","/**\\n * Gets the last element of `array`.\\n *\\n * @static\\n * @memberOf _\\n * @category Array\\n * @param {Array} array The array to query.\\n * @returns {*} Returns the last element of `array`.\\n * @example\\n *\\n * _.last([1, 2, 3]);\\n * // => 3\\n */\\nfunction last(array) {\\n  var length = array ? array.length : 0;\\n  return length ? array[length - 1] : undefined;\\n}\\n\\nmodule.exports = last;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/array/last.js\\n ** module id = 155\\n ** module chunks = 0\\n **/","var baseToString = require(\'./baseToString\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/** Used to match property names within property paths. */\\nvar rePropName = /[^.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\"\'])((?:(?!\\\\2)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]/g;\\n\\n/** Used to match backslashes in property paths. */\\nvar reEscapeChar = /\\\\\\\\(\\\\\\\\)?/g;\\n\\n/**\\n * Converts `value` to property path array if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Array} Returns the property path array.\\n */\\nfunction toPath(value) {\\n  if (isArray(value)) {\\n    return value;\\n  }\\n  var result = [];\\n  baseToString(value).replace(rePropName, function(match, number, quote, string) {\\n    result.push(quote ? string.replace(reEscapeChar, \'$1\') : (number || match));\\n  });\\n  return result;\\n}\\n\\nmodule.exports = toPath;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/toPath.js\\n ** module id = 156\\n ** module chunks = 0\\n **/","/**\\n * Converts `value` to a string if it\'s not one. An empty string is returned\\n * for `null` or `undefined` values.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {string} Returns the string.\\n */\\nfunction baseToString(value) {\\n  return value == null ? \'\' : (value + \'\');\\n}\\n\\nmodule.exports = baseToString;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseToString.js\\n ** module id = 157\\n ** module chunks = 0\\n **/","var baseProperty = require(\'../internal/baseProperty\'),\\n    basePropertyDeep = require(\'../internal/basePropertyDeep\'),\\n    isKey = require(\'../internal/isKey\');\\n\\n/**\\n * Creates a function that returns the property value at `path` on a\\n * given object.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n * @example\\n *\\n * var objects = [\\n *   { \'a\': { \'b\': { \'c\': 2 } } },\\n *   { \'a\': { \'b\': { \'c\': 1 } } }\\n * ];\\n *\\n * _.map(objects, _.property(\'a.b.c\'));\\n * // => [2, 1]\\n *\\n * _.pluck(_.sortBy(objects, _.property([\'a\', \'b\', \'c\'])), \'a.b.c\');\\n * // => [1, 2]\\n */\\nfunction property(path) {\\n  return isKey(path) ? baseProperty(path) : basePropertyDeep(path);\\n}\\n\\nmodule.exports = property;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/utility/property.js\\n ** module id = 158\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * A specialized version of `baseProperty` which supports deep paths.\\n *\\n * @private\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction basePropertyDeep(path) {\\n  var pathKey = (path + \'\');\\n  path = toPath(path);\\n  return function(object) {\\n    return baseGet(object, path, pathKey);\\n  };\\n}\\n\\nmodule.exports = basePropertyDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/basePropertyDeep.js\\n ** module id = 159\\n ** module chunks = 0\\n **/","var baseIndexOf = require(\'./baseIndexOf\'),\\n    cacheIndexOf = require(\'./cacheIndexOf\'),\\n    createCache = require(\'./createCache\');\\n\\n/** Used as the size to enable large array optimizations. */\\nvar LARGE_ARRAY_SIZE = 200;\\n\\n/**\\n * The base implementation of `_.uniq` without support for callback shorthands\\n * and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to inspect.\\n * @param {Function} [iteratee] The function invoked per iteration.\\n * @returns {Array} Returns the new duplicate free array.\\n */\\nfunction baseUniq(array, iteratee) {\\n  var index = -1,\\n      indexOf = baseIndexOf,\\n      length = array.length,\\n      isCommon = true,\\n      isLarge = isCommon && length >= LARGE_ARRAY_SIZE,\\n      seen = isLarge ? createCache() : null,\\n      result = [];\\n\\n  if (seen) {\\n    indexOf = cacheIndexOf;\\n    isCommon = false;\\n  } else {\\n    isLarge = false;\\n    seen = iteratee ? [] : result;\\n  }\\n  outer:\\n  while (++index < length) {\\n    var value = array[index],\\n        computed = iteratee ? iteratee(value, index, array) : value;\\n\\n    if (isCommon && value === value) {\\n      var seenIndex = seen.length;\\n      while (seenIndex--) {\\n        if (seen[seenIndex] === computed) {\\n          continue outer;\\n        }\\n      }\\n      if (iteratee) {\\n        seen.push(computed);\\n      }\\n      result.push(value);\\n    }\\n    else if (indexOf(seen, computed, 0) < 0) {\\n      if (iteratee || isLarge) {\\n        seen.push(computed);\\n      }\\n      result.push(value);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseUniq;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseUniq.js\\n ** module id = 160\\n ** module chunks = 0\\n **/","var indexOfNaN = require(\'./indexOfNaN\');\\n\\n/**\\n * The base implementation of `_.indexOf` without support for binary searches.\\n *\\n * @private\\n * @param {Array} array The array to search.\\n * @param {*} value The value to search for.\\n * @param {number} fromIndex The index to search from.\\n * @returns {number} Returns the index of the matched value, else `-1`.\\n */\\nfunction baseIndexOf(array, value, fromIndex) {\\n  if (value !== value) {\\n    return indexOfNaN(array, fromIndex);\\n  }\\n  var index = fromIndex - 1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (array[index] === value) {\\n      return index;\\n    }\\n  }\\n  return -1;\\n}\\n\\nmodule.exports = baseIndexOf;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIndexOf.js\\n ** module id = 161\\n ** module chunks = 0\\n **/","/**\\n * Gets the index at which the first occurrence of `NaN` is found in `array`.\\n *\\n * @private\\n * @param {Array} array The array to search.\\n * @param {number} fromIndex The index to search from.\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {number} Returns the index of the matched `NaN`, else `-1`.\\n */\\nfunction indexOfNaN(array, fromIndex, fromRight) {\\n  var length = array.length,\\n      index = fromIndex + (fromRight ? 0 : -1);\\n\\n  while ((fromRight ? index-- : ++index < length)) {\\n    var other = array[index];\\n    if (other !== other) {\\n      return index;\\n    }\\n  }\\n  return -1;\\n}\\n\\nmodule.exports = indexOfNaN;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/indexOfNaN.js\\n ** module id = 162\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if `value` is in `cache` mimicking the return signature of\\n * `_.indexOf` by returning `0` if the value is found, else `-1`.\\n *\\n * @private\\n * @param {Object} cache The cache to search.\\n * @param {*} value The value to search for.\\n * @returns {number} Returns `0` if `value` is found, else `-1`.\\n */\\nfunction cacheIndexOf(cache, value) {\\n  var data = cache.data,\\n      result = (typeof value == \'string\' || isObject(value)) ? data.set.has(value) : data.hash[value];\\n\\n  return result ? 0 : -1;\\n}\\n\\nmodule.exports = cacheIndexOf;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/cacheIndexOf.js\\n ** module id = 163\\n ** module chunks = 0\\n **/","var SetCache = require(\'./SetCache\'),\\n    getNative = require(\'./getNative\');\\n\\n/** Native method references. */\\nvar Set = getNative(global, \'Set\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeCreate = getNative(Object, \'create\');\\n\\n/**\\n * Creates a `Set` cache object to optimize linear searches of large arrays.\\n *\\n * @private\\n * @param {Array} [values] The values to cache.\\n * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`.\\n */\\nfunction createCache(values) {\\n  return (nativeCreate && Set) ? new SetCache(values) : null;\\n}\\n\\nmodule.exports = createCache;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createCache.js\\n ** module id = 164\\n ** module chunks = 0\\n **/","var cachePush = require(\'./cachePush\'),\\n    getNative = require(\'./getNative\');\\n\\n/** Native method references. */\\nvar Set = getNative(global, \'Set\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeCreate = getNative(Object, \'create\');\\n\\n/**\\n *\\n * Creates a cache object to store unique values.\\n *\\n * @private\\n * @param {Array} [values] The values to cache.\\n */\\nfunction SetCache(values) {\\n  var length = values ? values.length : 0;\\n\\n  this.data = { \'hash\': nativeCreate(null), \'set\': new Set };\\n  while (length--) {\\n    this.push(values[length]);\\n  }\\n}\\n\\n// Add functions to the `Set` cache.\\nSetCache.prototype.push = cachePush;\\n\\nmodule.exports = SetCache;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/SetCache.js\\n ** module id = 165\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Adds `value` to the cache.\\n *\\n * @private\\n * @name push\\n * @memberOf SetCache\\n * @param {*} value The value to cache.\\n */\\nfunction cachePush(value) {\\n  var data = this.data;\\n  if (typeof value == \'string\' || isObject(value)) {\\n    data.set.add(value);\\n  } else {\\n    data.hash[value] = true;\\n  }\\n}\\n\\nmodule.exports = cachePush;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/cachePush.js\\n ** module id = 166\\n ** module chunks = 0\\n **/","/**\\n * An implementation of `_.uniq` optimized for sorted arrays without support\\n * for callback shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to inspect.\\n * @param {Function} [iteratee] The function invoked per iteration.\\n * @returns {Array} Returns the new duplicate free array.\\n */\\nfunction sortedUniq(array, iteratee) {\\n  var seen,\\n      index = -1,\\n      length = array.length,\\n      resIndex = -1,\\n      result = [];\\n\\n  while (++index < length) {\\n    var value = array[index],\\n        computed = iteratee ? iteratee(value, index, array) : value;\\n\\n    if (!index || seen !== computed) {\\n      seen = computed;\\n      result[++resIndex] = value;\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = sortedUniq;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/sortedUniq.js\\n ** module id = 167\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nrequire(\\"./index\\");\\n\\nrequire(\\"./core\\");\\n\\nrequire(\\"./es2015\\");\\n\\nrequire(\\"./flow\\");\\n\\nrequire(\\"./jsx\\");\\n\\nrequire(\\"./misc\\");\\n\\nrequire(\\"./experimental\\");\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/init.js\\n ** module id = 168\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.assertEach = assertEach;\\nexports.assertOneOf = assertOneOf;\\nexports.assertNodeType = assertNodeType;\\nexports.assertNodeOrValueType = assertNodeOrValueType;\\nexports.assertValueType = assertValueType;\\nexports.chain = chain;\\nexports[\\"default\\"] = defineType;\\n\\nvar _index = require(\\"../index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar VISITOR_KEYS = {};\\nexports.VISITOR_KEYS = VISITOR_KEYS;\\nvar ALIAS_KEYS = {};\\nexports.ALIAS_KEYS = ALIAS_KEYS;\\nvar NODE_FIELDS = {};\\nexports.NODE_FIELDS = NODE_FIELDS;\\nvar BUILDER_KEYS = {};\\nexports.BUILDER_KEYS = BUILDER_KEYS;\\nvar DEPRECATED_KEYS = {};\\n\\nexports.DEPRECATED_KEYS = DEPRECATED_KEYS;\\nfunction getType(val) {\\n  if (Array.isArray(val)) {\\n    return \\"array\\";\\n  } else if (val === null) {\\n    return \\"null\\";\\n  } else if (val === undefined) {\\n    return \\"undefined\\";\\n  } else {\\n    return typeof val;\\n  }\\n}\\n\\nfunction assertEach(callback /*: Function*/) /*: Function*/ {\\n  function validator(node, key, val) {\\n    if (!Array.isArray(val)) return;\\n\\n    for (var i = 0; i < val.length; i++) {\\n      callback(node, key + \\"[\\" + i + \\"]\\", val[i]);\\n    }\\n  }\\n  validator.each = callback;\\n  return validator;\\n}\\n\\nfunction assertOneOf() /*: Function*/ {\\n  for (var _len = arguments.length, vals = Array(_len), _key = 0; _key < _len; _key++) {\\n    vals[_key] = arguments[_key];\\n  }\\n\\n  function validate(node, key, val) {\\n    if (vals.indexOf(val) < 0) {\\n      throw new TypeError(\\"Property \\" + key + \\" expected value to be one of \\" + JSON.stringify(vals) + \\" but got \\" + JSON.stringify(val));\\n    }\\n  }\\n\\n  validate.oneOf = vals;\\n\\n  return validate;\\n}\\n\\nfunction assertNodeType() /*: Function*/ {\\n  for (var _len2 = arguments.length, types = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\\n    types[_key2] = arguments[_key2];\\n  }\\n\\n  function validate(node, key, val) {\\n    var valid = false;\\n\\n    for (var _iterator = types, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var type = _ref;\\n\\n      if (t.is(type, val)) {\\n        valid = true;\\n        break;\\n      }\\n    }\\n\\n    if (!valid) {\\n      throw new TypeError(\\"Property \\" + key + \\" of \\" + node.type + \\" expected node to be of a type \\" + JSON.stringify(types) + \\" but instead got \\" + JSON.stringify(val && val.type));\\n    }\\n  }\\n\\n  validate.oneOfNodeTypes = types;\\n\\n  return validate;\\n}\\n\\nfunction assertNodeOrValueType() /*: Function*/ {\\n  for (var _len3 = arguments.length, types = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\\n    types[_key3] = arguments[_key3];\\n  }\\n\\n  function validate(node, key, val) {\\n    var valid = false;\\n\\n    for (var _iterator2 = types, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var type = _ref2;\\n\\n      if (getType(val) === type || t.is(type, val)) {\\n        valid = true;\\n        break;\\n      }\\n    }\\n\\n    if (!valid) {\\n      throw new TypeError(\\"Property \\" + key + \\" of \\" + node.type + \\" expected node to be of a type \\" + JSON.stringify(types) + \\" but instead got \\" + JSON.stringify(val && val.type));\\n    }\\n  }\\n\\n  validate.oneOfNodeOrValueTypes = types;\\n\\n  return validate;\\n}\\n\\nfunction assertValueType(type /*: string*/) /*: Function*/ {\\n  function validate(node, key, val) {\\n    var valid = getType(val) === type;\\n\\n    if (!valid) {\\n      throw new TypeError(\\"Property \\" + key + \\" expected type of \\" + type + \\" but got \\" + getType(val));\\n    }\\n  }\\n\\n  validate.type = type;\\n\\n  return validate;\\n}\\n\\nfunction chain() /*: Function*/ {\\n  for (var _len4 = arguments.length, fns = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\\n    fns[_key4] = arguments[_key4];\\n  }\\n\\n  function validate() {\\n    for (var _iterator3 = fns, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n      var _ref3;\\n\\n      if (_isArray3) {\\n        if (_i3 >= _iterator3.length) break;\\n        _ref3 = _iterator3[_i3++];\\n      } else {\\n        _i3 = _iterator3.next();\\n        if (_i3.done) break;\\n        _ref3 = _i3.value;\\n      }\\n\\n      var fn = _ref3;\\n\\n      fn.apply(undefined, arguments);\\n    }\\n  }\\n  validate.chainOf = fns;\\n  return validate;\\n}\\n\\nfunction defineType(type /*: string*/) {\\n  var opts /*: {\\n               fields?: Object;\\n               visitor?: Array<string>;\\n               aliases?: Array<string>;\\n               builder?: Array<string>;\\n               inherits?: string;\\n             }*/ = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  var inherits = opts.inherits && store[opts.inherits] || {};\\n\\n  opts.fields = opts.fields || inherits.fields || {};\\n  opts.visitor = opts.visitor || inherits.visitor || [];\\n  opts.aliases = opts.aliases || inherits.aliases || [];\\n  opts.builder = opts.builder || inherits.builder || opts.visitor || [];\\n\\n  if (opts.deprecatedAlias) {\\n    DEPRECATED_KEYS[opts.deprecatedAlias] = type;\\n  }\\n\\n  // ensure all field keys are represented in `fields`\\n  for (var _iterator4 = (opts.visitor.concat(opts.builder) /*: Array<string>*/), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n    var _ref4;\\n\\n    if (_isArray4) {\\n      if (_i4 >= _iterator4.length) break;\\n      _ref4 = _iterator4[_i4++];\\n    } else {\\n      _i4 = _iterator4.next();\\n      if (_i4.done) break;\\n      _ref4 = _i4.value;\\n    }\\n\\n    var key = _ref4;\\n\\n    opts.fields[key] = opts.fields[key] || {};\\n  }\\n\\n  for (var key in opts.fields) {\\n    var field = opts.fields[key];\\n\\n    if (field[\\"default\\"] === undefined) {\\n      field[\\"default\\"] = null;\\n    } else if (!field.validate) {\\n      field.validate = assertValueType(getType(field[\\"default\\"]));\\n    }\\n  }\\n\\n  VISITOR_KEYS[type] = opts.visitor;\\n  BUILDER_KEYS[type] = opts.builder;\\n  NODE_FIELDS[type] = opts.fields;\\n  ALIAS_KEYS[type] = opts.aliases;\\n\\n  store[type] = opts;\\n}\\n\\nvar store = {};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/index.js\\n ** module id = 169\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"../index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar _constants = require(\\"../constants\\");\\n\\nvar _index2 = require(\\"./index\\");\\n\\nvar _index3 = _interopRequireDefault(_index2);\\n\\n_index3[\\"default\\"](\\"ArrayExpression\\", {\\n  fields: {\\n    elements: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeOrValueType(\\"null\\", \\"Expression\\", \\"SpreadElement\\"))),\\n      \\"default\\": []\\n    }\\n  },\\n  visitor: [\\"elements\\"],\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"AssignmentExpression\\", {\\n  fields: {\\n    operator: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    },\\n    left: {\\n      validate: _index2.assertNodeType(\\"LVal\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  builder: [\\"operator\\", \\"left\\", \\"right\\"],\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"BinaryExpression\\", {\\n  builder: [\\"operator\\", \\"left\\", \\"right\\"],\\n  fields: {\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.BINARY_OPERATORS)\\n    },\\n    left: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Binary\\", \\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"Directive\\", {\\n  visitor: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertNodeType(\\"DirectiveLiteral\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"DirectiveLiteral\\", {\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"BlockStatement\\", {\\n  builder: [\\"body\\", \\"directives\\"],\\n  visitor: [\\"directives\\", \\"body\\"],\\n  fields: {\\n    directives: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Directive\\"))),\\n      \\"default\\": []\\n    },\\n    body: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Statement\\")))\\n    }\\n  },\\n  aliases: [\\"Scopable\\", \\"BlockParent\\", \\"Block\\", \\"Statement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"BreakStatement\\", {\\n  visitor: [\\"label\\"],\\n  fields: {\\n    label: {\\n      validate: _index2.assertNodeType(\\"Identifier\\"),\\n      optional: true\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"CallExpression\\", {\\n  visitor: [\\"callee\\", \\"arguments\\"],\\n  fields: {\\n    callee: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    arguments: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Expression\\", \\"SpreadElement\\")))\\n    }\\n  },\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"CatchClause\\", {\\n  visitor: [\\"param\\", \\"body\\"],\\n  fields: {\\n    param: {\\n      validate: _index2.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    }\\n  },\\n  aliases: [\\"Scopable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ConditionalExpression\\", {\\n  visitor: [\\"test\\", \\"consequent\\", \\"alternate\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    consequent: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    alternate: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Conditional\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ContinueStatement\\", {\\n  visitor: [\\"label\\"],\\n  fields: {\\n    label: {\\n      validate: _index2.assertNodeType(\\"Identifier\\"),\\n      optional: true\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"DebuggerStatement\\", {\\n  aliases: [\\"Statement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"DoWhileStatement\\", {\\n  visitor: [\\"test\\", \\"body\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"BlockParent\\", \\"Loop\\", \\"While\\", \\"Scopable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"EmptyStatement\\", {\\n  aliases: [\\"Statement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ExpressionStatement\\", {\\n  visitor: [\\"expression\\"],\\n  fields: {\\n    expression: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"ExpressionWrapper\\"]\\n});\\n\\n_index3[\\"default\\"](\\"File\\", {\\n  builder: [\\"program\\", \\"comments\\", \\"tokens\\"],\\n  visitor: [\\"program\\"],\\n  fields: {\\n    program: {\\n      validate: _index2.assertNodeType(\\"Program\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ForInStatement\\", {\\n  visitor: [\\"left\\", \\"right\\", \\"body\\"],\\n  aliases: [\\"Scopable\\", \\"Statement\\", \\"For\\", \\"BlockParent\\", \\"Loop\\", \\"ForXStatement\\"],\\n  fields: {\\n    left: {\\n      validate: _index2.assertNodeType(\\"VariableDeclaration\\", \\"LVal\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ForStatement\\", {\\n  visitor: [\\"init\\", \\"test\\", \\"update\\", \\"body\\"],\\n  aliases: [\\"Scopable\\", \\"Statement\\", \\"For\\", \\"BlockParent\\", \\"Loop\\"],\\n  fields: {\\n    init: {\\n      validate: _index2.assertNodeType(\\"VariableDeclaration\\", \\"Expression\\"),\\n      optional: true\\n    },\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    },\\n    update: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"FunctionDeclaration\\", {\\n  builder: [\\"id\\", \\"params\\", \\"body\\", \\"generator\\", \\"async\\"],\\n  visitor: [\\"id\\", \\"params\\", \\"body\\", \\"returnType\\", \\"typeParameters\\"],\\n  fields: {\\n    id: {\\n      validate: _index2.assertNodeType(\\"Identifier\\")\\n    },\\n    params: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  },\\n  aliases: [\\"Scopable\\", \\"Function\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Statement\\", \\"Pureish\\", \\"Declaration\\"]\\n});\\n\\n_index3[\\"default\\"](\\"FunctionExpression\\", {\\n  inherits: \\"FunctionDeclaration\\",\\n  aliases: [\\"Scopable\\", \\"Function\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Expression\\", \\"Pureish\\"],\\n  fields: {\\n    id: {\\n      validate: _index2.assertNodeType(\\"Identifier\\"),\\n      optional: true\\n    },\\n    params: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"Identifier\\", {\\n  builder: [\\"name\\"],\\n  visitor: [\\"typeAnnotation\\"],\\n  aliases: [\\"Expression\\", \\"LVal\\"],\\n  fields: {\\n    name: {\\n      validate: function validate(node, key, val) {\\n        if (!t.isValidIdentifier(val)) {\\n          // todo\\n        }\\n      }\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"IfStatement\\", {\\n  visitor: [\\"test\\", \\"consequent\\", \\"alternate\\"],\\n  aliases: [\\"Statement\\", \\"Conditional\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    consequent: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    },\\n    alternate: {\\n      optional: true,\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"LabeledStatement\\", {\\n  visitor: [\\"label\\", \\"body\\"],\\n  aliases: [\\"Statement\\"],\\n  fields: {\\n    label: {\\n      validate: _index2.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"StringLiteral\\", {\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"NumericLiteral\\", {\\n  builder: [\\"value\\"],\\n  deprecatedAlias: \\"NumberLiteral\\",\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"number\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"NullLiteral\\", {\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"BooleanLiteral\\", {\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"RegExpLiteral\\", {\\n  builder: [\\"pattern\\", \\"flags\\"],\\n  deprecatedAlias: \\"RegexLiteral\\",\\n  aliases: [\\"Expression\\", \\"Literal\\"],\\n  fields: {\\n    pattern: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    },\\n    flags: {\\n      validate: _index2.assertValueType(\\"string\\"),\\n      \\"default\\": \\"\\"\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"LogicalExpression\\", {\\n  builder: [\\"operator\\", \\"left\\", \\"right\\"],\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Binary\\", \\"Expression\\"],\\n  fields: {\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.LOGICAL_OPERATORS)\\n    },\\n    left: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"MemberExpression\\", {\\n  builder: [\\"object\\", \\"property\\", \\"computed\\"],\\n  visitor: [\\"object\\", \\"property\\"],\\n  aliases: [\\"Expression\\", \\"LVal\\"],\\n  fields: {\\n    object: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    property: {\\n      validate: function validate(node, key, val) {\\n        var expectedType = node.computed ? \\"Expression\\" : \\"Identifier\\";\\n        _index2.assertNodeType(expectedType)(node, key, val);\\n      }\\n    },\\n    computed: {\\n      \\"default\\": false\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"NewExpression\\", {\\n  visitor: [\\"callee\\", \\"arguments\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    callee: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    arguments: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Expression\\", \\"SpreadElement\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"Program\\", {\\n  visitor: [\\"directives\\", \\"body\\"],\\n  builder: [\\"body\\", \\"directives\\"],\\n  fields: {\\n    directives: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Directive\\"))),\\n      \\"default\\": []\\n    },\\n    body: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Statement\\")))\\n    }\\n  },\\n  aliases: [\\"Scopable\\", \\"BlockParent\\", \\"Block\\", \\"FunctionParent\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ObjectExpression\\", {\\n  visitor: [\\"properties\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    properties: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"ObjectMethod\\", \\"ObjectProperty\\", \\"SpreadProperty\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ObjectMethod\\", {\\n  builder: [\\"kind\\", \\"key\\", \\"params\\", \\"body\\", \\"computed\\"],\\n  fields: {\\n    kind: {\\n      validate: _index2.chain(_index2.assertValueType(\\"string\\"), _index2.assertOneOf(\\"method\\", \\"get\\", \\"set\\")),\\n      \\"default\\": \\"method\\"\\n    },\\n    computed: {\\n      validate: _index2.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    key: {\\n      validate: function validate(node, key, val) {\\n        var expectedTypes = node.computed ? [\\"Expression\\"] : [\\"Identifier\\", \\"StringLiteral\\", \\"NumericLiteral\\"];\\n        _index2.assertNodeType.apply(undefined, expectedTypes)(node, key, val);\\n      }\\n    },\\n    decorators: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Decorator\\")))\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  },\\n  visitor: [\\"key\\", \\"params\\", \\"body\\", \\"decorators\\", \\"returnType\\", \\"typeParameters\\"],\\n  aliases: [\\"UserWhitespacable\\", \\"Function\\", \\"Scopable\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Method\\", \\"ObjectMember\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ObjectProperty\\", {\\n  builder: [\\"key\\", \\"value\\", \\"computed\\", \\"shorthand\\", \\"decorators\\"],\\n  fields: {\\n    computed: {\\n      validate: _index2.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    key: {\\n      validate: function validate(node, key, val) {\\n        var expectedTypes = node.computed ? [\\"Expression\\"] : [\\"Identifier\\", \\"StringLiteral\\", \\"NumericLiteral\\"];\\n        _index2.assertNodeType.apply(undefined, expectedTypes)(node, key, val);\\n      }\\n    },\\n    value: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    shorthand: {\\n      validate: _index2.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    decorators: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Decorator\\"))),\\n      optional: true\\n    }\\n  },\\n  visitor: [\\"key\\", \\"value\\", \\"decorators\\"],\\n  aliases: [\\"UserWhitespacable\\", \\"Property\\", \\"ObjectMember\\"]\\n});\\n\\n_index3[\\"default\\"](\\"RestElement\\", {\\n  visitor: [\\"argument\\", \\"typeAnnotation\\"],\\n  aliases: [\\"LVal\\"],\\n  fields: {\\n    argument: {\\n      validate: _index2.assertNodeType(\\"LVal\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ReturnStatement\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"],\\n  fields: {\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"SequenceExpression\\", {\\n  visitor: [\\"expressions\\"],\\n  fields: {\\n    expressions: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Expression\\")))\\n    }\\n  },\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"SwitchCase\\", {\\n  visitor: [\\"test\\", \\"consequent\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    },\\n    consequent: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Statement\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"SwitchStatement\\", {\\n  visitor: [\\"discriminant\\", \\"cases\\"],\\n  aliases: [\\"Statement\\", \\"BlockParent\\", \\"Scopable\\"],\\n  fields: {\\n    discriminant: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    cases: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"SwitchCase\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ThisExpression\\", {\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ThrowStatement\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"],\\n  fields: {\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n// todo: at least handler or finalizer should be set to be valid\\n_index3[\\"default\\"](\\"TryStatement\\", {\\n  visitor: [\\"block\\", \\"handler\\", \\"finalizer\\"],\\n  aliases: [\\"Statement\\"],\\n  fields: {\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    handler: {\\n      optional: true,\\n      handler: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    finalizer: {\\n      optional: true,\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"UnaryExpression\\", {\\n  builder: [\\"operator\\", \\"argument\\", \\"prefix\\"],\\n  fields: {\\n    prefix: {\\n      \\"default\\": true\\n    },\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.UNARY_OPERATORS)\\n    }\\n  },\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\", \\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"UpdateExpression\\", {\\n  builder: [\\"operator\\", \\"argument\\", \\"prefix\\"],\\n  fields: {\\n    prefix: {\\n      \\"default\\": false\\n    },\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.UPDATE_OPERATORS)\\n    }\\n  },\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"VariableDeclaration\\", {\\n  builder: [\\"kind\\", \\"declarations\\"],\\n  visitor: [\\"declarations\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    kind: {\\n      validate: _index2.chain(_index2.assertValueType(\\"string\\"), _index2.assertOneOf(\\"var\\", \\"let\\", \\"const\\"))\\n    },\\n    declarations: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"VariableDeclarator\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"VariableDeclarator\\", {\\n  visitor: [\\"id\\", \\"init\\"],\\n  fields: {\\n    id: {\\n      validate: _index2.assertNodeType(\\"LVal\\")\\n    },\\n    init: {\\n      optional: true,\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"WhileStatement\\", {\\n  visitor: [\\"test\\", \\"body\\"],\\n  aliases: [\\"Statement\\", \\"BlockParent\\", \\"Loop\\", \\"While\\", \\"Scopable\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\", \\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"WithStatement\\", {\\n  visitor: [\\"object\\", \\"body\\"],\\n  aliases: [\\"Statement\\"],\\n  fields: {\\n    object: {\\n      object: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\", \\"Statement\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/core.js\\n ** module id = 170\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _Symbol$for = require(\\"babel-runtime/core-js/symbol/for\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nvar STATEMENT_OR_BLOCK_KEYS = [\\"consequent\\", \\"body\\", \\"alternate\\"];\\nexports.STATEMENT_OR_BLOCK_KEYS = STATEMENT_OR_BLOCK_KEYS;\\nvar FLATTENABLE_KEYS = [\\"body\\", \\"expressions\\"];\\nexports.FLATTENABLE_KEYS = FLATTENABLE_KEYS;\\nvar FOR_INIT_KEYS = [\\"left\\", \\"init\\"];\\nexports.FOR_INIT_KEYS = FOR_INIT_KEYS;\\nvar COMMENT_KEYS = [\\"leadingComments\\", \\"trailingComments\\", \\"innerComments\\"];\\n\\nexports.COMMENT_KEYS = COMMENT_KEYS;\\nvar LOGICAL_OPERATORS = [\\"||\\", \\"&&\\"];\\nexports.LOGICAL_OPERATORS = LOGICAL_OPERATORS;\\nvar UPDATE_OPERATORS = [\\"++\\", \\"--\\"];\\n\\nexports.UPDATE_OPERATORS = UPDATE_OPERATORS;\\nvar BOOLEAN_NUMBER_BINARY_OPERATORS = [\\">\\", \\"<\\", \\">=\\", \\"<=\\"];\\nexports.BOOLEAN_NUMBER_BINARY_OPERATORS = BOOLEAN_NUMBER_BINARY_OPERATORS;\\nvar EQUALITY_BINARY_OPERATORS = [\\"==\\", \\"===\\", \\"!=\\", \\"!==\\"];\\nexports.EQUALITY_BINARY_OPERATORS = EQUALITY_BINARY_OPERATORS;\\nvar COMPARISON_BINARY_OPERATORS = [].concat(EQUALITY_BINARY_OPERATORS, [\\"in\\", \\"instanceof\\"]);\\nexports.COMPARISON_BINARY_OPERATORS = COMPARISON_BINARY_OPERATORS;\\nvar BOOLEAN_BINARY_OPERATORS = [].concat(COMPARISON_BINARY_OPERATORS, BOOLEAN_NUMBER_BINARY_OPERATORS);\\nexports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS;\\nvar NUMBER_BINARY_OPERATORS = [\\"-\\", \\"/\\", \\"%\\", \\"*\\", \\"**\\", \\"&\\", \\"|\\", \\">>\\", \\">>>\\", \\"<<\\", \\"^\\"];\\nexports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS;\\nvar BINARY_OPERATORS = [\\"+\\"].concat(NUMBER_BINARY_OPERATORS, BOOLEAN_BINARY_OPERATORS);\\n\\nexports.BINARY_OPERATORS = BINARY_OPERATORS;\\nvar BOOLEAN_UNARY_OPERATORS = [\\"delete\\", \\"!\\"];\\nexports.BOOLEAN_UNARY_OPERATORS = BOOLEAN_UNARY_OPERATORS;\\nvar NUMBER_UNARY_OPERATORS = [\\"+\\", \\"-\\", \\"++\\", \\"--\\", \\"~\\"];\\nexports.NUMBER_UNARY_OPERATORS = NUMBER_UNARY_OPERATORS;\\nvar STRING_UNARY_OPERATORS = [\\"typeof\\"];\\nexports.STRING_UNARY_OPERATORS = STRING_UNARY_OPERATORS;\\nvar UNARY_OPERATORS = [\\"void\\"].concat(BOOLEAN_UNARY_OPERATORS, NUMBER_UNARY_OPERATORS, STRING_UNARY_OPERATORS);\\n\\nexports.UNARY_OPERATORS = UNARY_OPERATORS;\\nvar INHERIT_KEYS = {\\n  optional: [\\"typeAnnotation\\", \\"typeParameters\\", \\"returnType\\"],\\n  force: [\\"start\\", \\"loc\\", \\"end\\"]\\n};\\n\\nexports.INHERIT_KEYS = INHERIT_KEYS;\\nvar BLOCK_SCOPED_SYMBOL = _Symbol$for(\\"var used to be block scoped\\");\\nexports.BLOCK_SCOPED_SYMBOL = BLOCK_SCOPED_SYMBOL;\\nvar NOT_LOCAL_BINDING = _Symbol$for(\\"should not be considered a local binding\\");\\nexports.NOT_LOCAL_BINDING = NOT_LOCAL_BINDING;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/constants.js\\n ** module id = 171\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/symbol/for\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/symbol/for.js\\n ** module id = 172\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.symbol\');\\nmodule.exports = require(\'../../modules/$.core\').Symbol[\'for\'];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/for.js\\n ** module id = 173\\n ** module chunks = 0\\n **/","\'use strict\';\\n// ECMAScript 6 symbols shim\\nvar $              = require(\'./$\')\\n  , global         = require(\'./$.global\')\\n  , has            = require(\'./$.has\')\\n  , DESCRIPTORS    = require(\'./$.descriptors\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , $fails         = require(\'./$.fails\')\\n  , shared         = require(\'./$.shared\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , uid            = require(\'./$.uid\')\\n  , wks            = require(\'./$.wks\')\\n  , keyOf          = require(\'./$.keyof\')\\n  , $names         = require(\'./$.get-names\')\\n  , enumKeys       = require(\'./$.enum-keys\')\\n  , isArray        = require(\'./$.is-array\')\\n  , anObject       = require(\'./$.an-object\')\\n  , toIObject      = require(\'./$.to-iobject\')\\n  , createDesc     = require(\'./$.property-desc\')\\n  , getDesc        = $.getDesc\\n  , setDesc        = $.setDesc\\n  , _create        = $.create\\n  , getNames       = $names.get\\n  , $Symbol        = global.Symbol\\n  , $JSON          = global.JSON\\n  , _stringify     = $JSON && $JSON.stringify\\n  , setter         = false\\n  , HIDDEN         = wks(\'_hidden\')\\n  , isEnum         = $.isEnum\\n  , SymbolRegistry = shared(\'symbol-registry\')\\n  , AllSymbols     = shared(\'symbols\')\\n  , useNative      = typeof $Symbol == \'function\'\\n  , ObjectProto    = Object.prototype;\\n\\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\\n  return _create(setDesc({}, \'a\', {\\n    get: function(){ return setDesc(this, \'a\', {value: 7}).a; }\\n  })).a != 7;\\n}) ? function(it, key, D){\\n  var protoDesc = getDesc(ObjectProto, key);\\n  if(protoDesc)delete ObjectProto[key];\\n  setDesc(it, key, D);\\n  if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\\n} : setDesc;\\n\\nvar wrap = function(tag){\\n  var sym = AllSymbols[tag] = _create($Symbol.prototype);\\n  sym._k = tag;\\n  DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\\n    configurable: true,\\n    set: function(value){\\n      if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\\n      setSymbolDesc(this, tag, createDesc(1, value));\\n    }\\n  });\\n  return sym;\\n};\\n\\nvar isSymbol = function(it){\\n  return typeof it == \'symbol\';\\n};\\n\\nvar $defineProperty = function defineProperty(it, key, D){\\n  if(D && has(AllSymbols, key)){\\n    if(!D.enumerable){\\n      if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\\n      it[HIDDEN][key] = true;\\n    } else {\\n      if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\\n      D = _create(D, {enumerable: createDesc(0, false)});\\n    } return setSymbolDesc(it, key, D);\\n  } return setDesc(it, key, D);\\n};\\nvar $defineProperties = function defineProperties(it, P){\\n  anObject(it);\\n  var keys = enumKeys(P = toIObject(P))\\n    , i    = 0\\n    , l = keys.length\\n    , key;\\n  while(l > i)$defineProperty(it, key = keys[i++], P[key]);\\n  return it;\\n};\\nvar $create = function create(it, P){\\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\\n};\\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\\n  var E = isEnum.call(this, key);\\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\\n    ? E : true;\\n};\\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\\n  var D = getDesc(it = toIObject(it), key);\\n  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\\n  return D;\\n};\\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\\n  var names  = getNames(toIObject(it))\\n    , result = []\\n    , i      = 0\\n    , key;\\n  while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\\n  return result;\\n};\\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\\n  var names  = getNames(toIObject(it))\\n    , result = []\\n    , i      = 0\\n    , key;\\n  while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\\n  return result;\\n};\\nvar $stringify = function stringify(it){\\n  if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\\n  var args = [it]\\n    , i    = 1\\n    , $$   = arguments\\n    , replacer, $replacer;\\n  while($$.length > i)args.push($$[i++]);\\n  replacer = args[1];\\n  if(typeof replacer == \'function\')$replacer = replacer;\\n  if($replacer || !isArray(replacer))replacer = function(key, value){\\n    if($replacer)value = $replacer.call(this, key, value);\\n    if(!isSymbol(value))return value;\\n  };\\n  args[1] = replacer;\\n  return _stringify.apply($JSON, args);\\n};\\nvar buggyJSON = $fails(function(){\\n  var S = $Symbol();\\n  // MS Edge converts symbol values to JSON as {}\\n  // WebKit converts symbol values to JSON as null\\n  // V8 throws on boxed symbols\\n  return _stringify([S]) != \'[null]\' || _stringify({a: S}) != \'{}\' || _stringify(Object(S)) != \'{}\';\\n});\\n\\n// 19.4.1.1 Symbol([description])\\nif(!useNative){\\n  $Symbol = function Symbol(){\\n    if(isSymbol(this))throw TypeError(\'Symbol is not a constructor\');\\n    return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\\n  };\\n  redefine($Symbol.prototype, \'toString\', function toString(){\\n    return this._k;\\n  });\\n\\n  isSymbol = function(it){\\n    return it instanceof $Symbol;\\n  };\\n\\n  $.create     = $create;\\n  $.isEnum     = $propertyIsEnumerable;\\n  $.getDesc    = $getOwnPropertyDescriptor;\\n  $.setDesc    = $defineProperty;\\n  $.setDescs   = $defineProperties;\\n  $.getNames   = $names.get = $getOwnPropertyNames;\\n  $.getSymbols = $getOwnPropertySymbols;\\n\\n  if(DESCRIPTORS && !require(\'./$.library\')){\\n    redefine(ObjectProto, \'propertyIsEnumerable\', $propertyIsEnumerable, true);\\n  }\\n}\\n\\nvar symbolStatics = {\\n  // 19.4.2.1 Symbol.for(key)\\n  \'for\': function(key){\\n    return has(SymbolRegistry, key += \'\')\\n      ? SymbolRegistry[key]\\n      : SymbolRegistry[key] = $Symbol(key);\\n  },\\n  // 19.4.2.5 Symbol.keyFor(sym)\\n  keyFor: function keyFor(key){\\n    return keyOf(SymbolRegistry, key);\\n  },\\n  useSetter: function(){ setter = true; },\\n  useSimple: function(){ setter = false; }\\n};\\n// 19.4.2.2 Symbol.hasInstance\\n// 19.4.2.3 Symbol.isConcatSpreadable\\n// 19.4.2.4 Symbol.iterator\\n// 19.4.2.6 Symbol.match\\n// 19.4.2.8 Symbol.replace\\n// 19.4.2.9 Symbol.search\\n// 19.4.2.10 Symbol.species\\n// 19.4.2.11 Symbol.split\\n// 19.4.2.12 Symbol.toPrimitive\\n// 19.4.2.13 Symbol.toStringTag\\n// 19.4.2.14 Symbol.unscopables\\n$.each.call((\\n  \'hasInstance,isConcatSpreadable,iterator,match,replace,search,\' +\\n  \'species,split,toPrimitive,toStringTag,unscopables\'\\n).split(\',\'), function(it){\\n  var sym = wks(it);\\n  symbolStatics[it] = useNative ? sym : wrap(sym);\\n});\\n\\nsetter = true;\\n\\n$export($export.G + $export.W, {Symbol: $Symbol});\\n\\n$export($export.S, \'Symbol\', symbolStatics);\\n\\n$export($export.S + $export.F * !useNative, \'Object\', {\\n  // 19.1.2.2 Object.create(O [, Properties])\\n  create: $create,\\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\\n  defineProperty: $defineProperty,\\n  // 19.1.2.3 Object.defineProperties(O, Properties)\\n  defineProperties: $defineProperties,\\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\\n  getOwnPropertyNames: $getOwnPropertyNames,\\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\\n  getOwnPropertySymbols: $getOwnPropertySymbols\\n});\\n\\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), \'JSON\', {stringify: $stringify});\\n\\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\\nsetToStringTag($Symbol, \'Symbol\');\\n// 20.2.1.9 Math[@@toStringTag]\\nsetToStringTag(Math, \'Math\', true);\\n// 24.3.3 JSON[@@toStringTag]\\nsetToStringTag(global.JSON, \'JSON\', true);\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.symbol.js\\n ** module id = 174\\n ** module chunks = 0\\n **/","var $         = require(\'./$\')\\n  , toIObject = require(\'./$.to-iobject\');\\nmodule.exports = function(object, el){\\n  var O      = toIObject(object)\\n    , keys   = $.getKeys(O)\\n    , length = keys.length\\n    , index  = 0\\n    , key;\\n  while(length > index)if(O[key = keys[index++]] === el)return key;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.keyof.js\\n ** module id = 175\\n ** module chunks = 0\\n **/","// all enumerable object keys, includes symbols\\nvar $ = require(\'./$\');\\nmodule.exports = function(it){\\n  var keys       = $.getKeys(it)\\n    , getSymbols = $.getSymbols;\\n  if(getSymbols){\\n    var symbols = getSymbols(it)\\n      , isEnum  = $.isEnum\\n      , i       = 0\\n      , key;\\n    while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\\n  }\\n  return keys;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.enum-keys.js\\n ** module id = 176\\n ** module chunks = 0\\n **/","// 7.2.2 IsArray(argument)\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Array.isArray || function(arg){\\n  return cof(arg) == \'Array\';\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-array.js\\n ** module id = 177\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"AssignmentPattern\\", {\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Pattern\\", \\"LVal\\"],\\n  fields: {\\n    left: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    right: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ArrayPattern\\", {\\n  visitor: [\\"elements\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Pattern\\", \\"LVal\\"],\\n  fields: {\\n    elements: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Expression\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ArrowFunctionExpression\\", {\\n  builder: [\\"params\\", \\"body\\", \\"async\\"],\\n  visitor: [\\"params\\", \\"body\\", \\"returnType\\"],\\n  aliases: [\\"Scopable\\", \\"Function\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Expression\\", \\"Pureish\\"],\\n  fields: {\\n    params: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"BlockStatement\\", \\"Expression\\")\\n    },\\n    async: {\\n      validate: _index.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassBody\\", {\\n  visitor: [\\"body\\"],\\n  fields: {\\n    body: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"ClassMethod\\", \\"ClassProperty\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassDeclaration\\", {\\n  builder: [\\"id\\", \\"superClass\\", \\"body\\", \\"decorators\\"],\\n  visitor: [\\"id\\", \\"body\\", \\"superClass\\", \\"mixins\\", \\"typeParameters\\", \\"superTypeParameters\\", \\"implements\\", \\"decorators\\"],\\n  aliases: [\\"Scopable\\", \\"Class\\", \\"Statement\\", \\"Declaration\\", \\"Pureish\\"],\\n  fields: {\\n    id: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"ClassBody\\")\\n    },\\n    superClass: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    decorators: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Decorator\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassExpression\\", {\\n  inherits: \\"ClassDeclaration\\",\\n  aliases: [\\"Scopable\\", \\"Class\\", \\"Expression\\", \\"Pureish\\"],\\n  fields: {\\n    id: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"ClassBody\\")\\n    },\\n    superClass: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    decorators: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Decorator\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportAllDeclaration\\", {\\n  visitor: [\\"source\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\", \\"ExportDeclaration\\"],\\n  fields: {\\n    source: {\\n      validate: _index.assertNodeType(\\"StringLiteral\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportDefaultDeclaration\\", {\\n  visitor: [\\"declaration\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\", \\"ExportDeclaration\\"],\\n  fields: {\\n    declaration: {\\n      validate: _index.assertNodeType(\\"FunctionDeclaration\\", \\"ClassDeclaration\\", \\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportNamedDeclaration\\", {\\n  visitor: [\\"declaration\\", \\"specifiers\\", \\"source\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\", \\"ExportDeclaration\\"],\\n  fields: {\\n    declaration: {\\n      validate: _index.assertNodeType(\\"Declaration\\"),\\n      optional: true\\n    },\\n    specifiers: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"ExportSpecifier\\")))\\n    },\\n    source: {\\n      validate: _index.assertNodeType(\\"StringLiteral\\"),\\n      optional: true\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportSpecifier\\", {\\n  visitor: [\\"local\\", \\"exported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    imported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ForOfStatement\\", {\\n  visitor: [\\"left\\", \\"right\\", \\"body\\"],\\n  aliases: [\\"Scopable\\", \\"Statement\\", \\"For\\", \\"BlockParent\\", \\"Loop\\", \\"ForXStatement\\"],\\n  fields: {\\n    left: {\\n      validate: _index.assertNodeType(\\"VariableDeclaration\\", \\"LVal\\")\\n    },\\n    right: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportDeclaration\\", {\\n  visitor: [\\"specifiers\\", \\"source\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\"],\\n  fields: {\\n    specifiers: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"ImportSpecifier\\", \\"ImportDefaultSpecifier\\", \\"ImportNamespaceSpecifier\\")))\\n    },\\n    source: {\\n      validate: _index.assertNodeType(\\"StringLiteral\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportDefaultSpecifier\\", {\\n  visitor: [\\"local\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportNamespaceSpecifier\\", {\\n  visitor: [\\"local\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportSpecifier\\", {\\n  visitor: [\\"local\\", \\"imported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    imported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"MetaProperty\\", {\\n  visitor: [\\"meta\\", \\"property\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    // todo: limit to new.target\\n    meta: {\\n      validate: _index.assertValueType(\\"string\\")\\n    },\\n    property: {\\n      validate: _index.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassMethod\\", {\\n  aliases: [\\"Function\\", \\"Scopable\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Method\\"],\\n  builder: [\\"kind\\", \\"key\\", \\"params\\", \\"body\\", \\"computed\\", \\"static\\"],\\n  visitor: [\\"key\\", \\"params\\", \\"body\\", \\"decorators\\", \\"returnType\\", \\"typeParameters\\"],\\n  fields: {\\n    kind: {\\n      validate: _index.chain(_index.assertValueType(\\"string\\"), _index.assertOneOf(\\"get\\", \\"set\\", \\"method\\", \\"constructor\\")),\\n      \\"default\\": \\"method\\"\\n    },\\n    computed: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    \\"static\\": {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    key: {\\n      validate: function validate(node, key, val) {\\n        var expectedTypes = node.computed ? [\\"Expression\\"] : [\\"Identifier\\", \\"StringLiteral\\", \\"NumericLiteral\\"];\\n        _index.assertNodeType.apply(undefined, expectedTypes)(node, key, val);\\n      }\\n    },\\n    params: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectPattern\\", {\\n  visitor: [\\"properties\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Pattern\\", \\"LVal\\"],\\n  fields: {\\n    properties: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"RestProperty\\", \\"Property\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"SpreadElement\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"Super\\", {\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index2[\\"default\\"](\\"TaggedTemplateExpression\\", {\\n  visitor: [\\"tag\\", \\"quasi\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    tag: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    quasi: {\\n      validate: _index.assertNodeType(\\"TemplateLiteral\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TemplateElement\\", {\\n  builder: [\\"value\\", \\"tail\\"],\\n  fields: {\\n    value: {\\n      // todo: flatten `raw` into main node\\n    },\\n    tail: {\\n      validate: _index.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TemplateLiteral\\", {\\n  visitor: [\\"quasis\\", \\"expressions\\"],\\n  aliases: [\\"Expression\\", \\"Literal\\"],\\n  fields: {\\n    quasis: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"TemplateElement\\")))\\n    },\\n    expressions: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Expression\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"YieldExpression\\", {\\n  builder: [\\"argument\\", \\"delegate\\"],\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Expression\\", \\"Terminatorless\\"],\\n  fields: {\\n    delegate: {\\n      validate: _index.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    argument: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/es2015.js\\n ** module id = 178\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"AnyTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ArrayTypeAnnotation\\", {\\n  visitor: [\\"elementType\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"BooleanTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"BooleanLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\"],\\n  fields: {}\\n});\\n\\n_index2[\\"default\\"](\\"NullLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {}\\n});\\n\\n_index2[\\"default\\"](\\"ClassImplements\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassProperty\\", {\\n  visitor: [\\"key\\", \\"value\\", \\"typeAnnotation\\", \\"decorators\\"],\\n  aliases: [\\"Flow\\", \\"Property\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareClass\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"extends\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareFunction\\", {\\n  visitor: [\\"id\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareInterface\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"extends\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareModule\\", {\\n  visitor: [\\"id\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareTypeAlias\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"right\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareVariable\\", {\\n  visitor: [\\"id\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExistentialTypeParam\\", {\\n  aliases: [\\"Flow\\"]\\n});\\n\\n_index2[\\"default\\"](\\"FunctionTypeAnnotation\\", {\\n  visitor: [\\"typeParameters\\", \\"params\\", \\"rest\\", \\"returnType\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"FunctionTypeParam\\", {\\n  visitor: [\\"name\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"GenericTypeAnnotation\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"InterfaceExtends\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"InterfaceDeclaration\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"extends\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"IntersectionTypeAnnotation\\", {\\n  visitor: [\\"types\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"MixedTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"]\\n});\\n\\n_index2[\\"default\\"](\\"NullableTypeAnnotation\\", {\\n  visitor: [\\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"NumericLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"NumberTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"StringLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"StringTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ThisTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {}\\n});\\n\\n_index2[\\"default\\"](\\"TupleTypeAnnotation\\", {\\n  visitor: [\\"types\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeofTypeAnnotation\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeAlias\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"right\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeAnnotation\\", {\\n  visitor: [\\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeCastExpression\\", {\\n  visitor: [\\"expression\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\", \\"ExpressionWrapper\\", \\"Expression\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeParameterDeclaration\\", {\\n  visitor: [\\"params\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeParameterInstantiation\\", {\\n  visitor: [\\"params\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeAnnotation\\", {\\n  visitor: [\\"properties\\", \\"indexers\\", \\"callProperties\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeCallProperty\\", {\\n  visitor: [\\"value\\"],\\n  aliases: [\\"Flow\\", \\"UserWhitespacable\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeIndexer\\", {\\n  visitor: [\\"id\\", \\"key\\", \\"value\\"],\\n  aliases: [\\"Flow\\", \\"UserWhitespacable\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeProperty\\", {\\n  visitor: [\\"key\\", \\"value\\"],\\n  aliases: [\\"Flow\\", \\"UserWhitespacable\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"QualifiedTypeIdentifier\\", {\\n  visitor: [\\"id\\", \\"qualification\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"UnionTypeAnnotation\\", {\\n  visitor: [\\"types\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"VoidTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/flow.js\\n ** module id = 179\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"JSXAttribute\\", {\\n  visitor: [\\"name\\", \\"value\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\", \\"JSXNamespacedName\\")\\n    },\\n    value: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"JSXElement\\", \\"StringLiteral\\", \\"JSXExpressionContainer\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXClosingElement\\", {\\n  visitor: [\\"name\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\", \\"JSXMemberExpression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXElement\\", {\\n  builder: [\\"openingElement\\", \\"closingElement\\", \\"children\\", \\"selfClosing\\"],\\n  visitor: [\\"openingElement\\", \\"children\\", \\"closingElement\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\", \\"Expression\\"],\\n  fields: {\\n    openingElement: {\\n      validate: _index.assertNodeType(\\"JSXOpeningElement\\")\\n    },\\n    closingElement: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"JSXClosingElement\\")\\n    },\\n    children: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"JSXText\\", \\"JSXExpressionContainer\\", \\"JSXElement\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXEmptyExpression\\", {\\n  aliases: [\\"JSX\\", \\"Expression\\"]\\n});\\n\\n_index2[\\"default\\"](\\"JSXExpressionContainer\\", {\\n  visitor: [\\"expression\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    expression: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXIdentifier\\", {\\n  builder: [\\"name\\"],\\n  aliases: [\\"JSX\\", \\"Expression\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXMemberExpression\\", {\\n  visitor: [\\"object\\", \\"property\\"],\\n  aliases: [\\"JSX\\", \\"Expression\\"],\\n  fields: {\\n    object: {\\n      validate: _index.assertNodeType(\\"JSXMemberExpression\\", \\"JSXIdentifier\\")\\n    },\\n    property: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXNamespacedName\\", {\\n  visitor: [\\"namespace\\", \\"name\\"],\\n  aliases: [\\"JSX\\"],\\n  fields: {\\n    namespace: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\")\\n    },\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXOpeningElement\\", {\\n  builder: [\\"name\\", \\"attributes\\", \\"selfClosing\\"],\\n  visitor: [\\"name\\", \\"attributes\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\", \\"JSXMemberExpression\\")\\n    },\\n    selfClosing: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    attributes: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"JSXAttribute\\", \\"JSXSpreadAttribute\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXSpreadAttribute\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"JSX\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXText\\", {\\n  aliases: [\\"JSX\\"],\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/jsx.js\\n ** module id = 180\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"Noop\\", {\\n  visitor: []\\n});\\n\\n_index2[\\"default\\"](\\"ParenthesizedExpression\\", {\\n  visitor: [\\"expression\\"],\\n  aliases: [\\"Expression\\", \\"ExpressionWrapper\\"],\\n  fields: {\\n    expression: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/misc.js\\n ** module id = 181\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"AwaitExpression\\", {\\n  builder: [\\"argument\\"],\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Expression\\", \\"Terminatorless\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"BindExpression\\", {\\n  visitor: [\\"object\\", \\"callee\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"Decorator\\", {\\n  visitor: [\\"expression\\"],\\n  fields: {\\n    expression: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DoExpression\\", {\\n  visitor: [\\"body\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    body: {\\n      validate: _index.assertNodeType(\\"BlockStatement\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportDefaultSpecifier\\", {\\n  visitor: [\\"exported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    exported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportNamespaceSpecifier\\", {\\n  visitor: [\\"exported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    exported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"RestProperty\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"LVal\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"SpreadProperty\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/experimental.js\\n ** module id = 182\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.isCompatTag = isCompatTag;\\nexports.buildChildren = buildChildren;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar isReactComponent = t.buildMatchMemberExpression(\\"React.Component\\");\\n\\nexports.isReactComponent = isReactComponent;\\n\\nfunction isCompatTag(tagName /*:: ?: string*/) /*: boolean*/ {\\n  return !!tagName && /^[a-z]|\\\\-/.test(tagName);\\n}\\n\\nfunction cleanJSXElementLiteralChild(child /*: { value: string }*/, args /*: Array<Object>*/) {\\n  var lines = child.value.split(/\\\\r\\\\n|\\\\n|\\\\r/);\\n\\n  var lastNonEmptyLine = 0;\\n\\n  for (var i = 0; i < lines.length; i++) {\\n    if (lines[i].match(/[^ \\\\t]/)) {\\n      lastNonEmptyLine = i;\\n    }\\n  }\\n\\n  var str = \\"\\";\\n\\n  for (var i = 0; i < lines.length; i++) {\\n    var line = lines[i];\\n\\n    var isFirstLine = i === 0;\\n    var isLastLine = i === lines.length - 1;\\n    var isLastNonEmptyLine = i === lastNonEmptyLine;\\n\\n    // replace rendered whitespace tabs with spaces\\n    var trimmedLine = line.replace(/\\\\t/g, \\" \\");\\n\\n    // trim whitespace touching a newline\\n    if (!isFirstLine) {\\n      trimmedLine = trimmedLine.replace(/^[ ]+/, \\"\\");\\n    }\\n\\n    // trim whitespace touching an endline\\n    if (!isLastLine) {\\n      trimmedLine = trimmedLine.replace(/[ ]+$/, \\"\\");\\n    }\\n\\n    if (trimmedLine) {\\n      if (!isLastNonEmptyLine) {\\n        trimmedLine += \\" \\";\\n      }\\n\\n      str += trimmedLine;\\n    }\\n  }\\n\\n  if (str) args.push(t.stringLiteral(str));\\n}\\n\\nfunction buildChildren(node /*: Object*/) /*: Array<Object>*/ {\\n  var elems = [];\\n\\n  for (var i = 0; i < node.children.length; i++) {\\n    var child = node.children[i];\\n\\n    if (t.isJSXText(child)) {\\n      cleanJSXElementLiteralChild(child, elems);\\n      continue;\\n    }\\n\\n    if (t.isJSXExpressionContainer(child)) child = child.expression;\\n    if (t.isJSXEmptyExpression(child)) continue;\\n\\n    elems.push(child);\\n  }\\n\\n  return elems;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/react.js\\n ** module id = 183\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getBindingIdentifiers = getBindingIdentifiers;\\nexports.getOuterBindingIdentifiers = getOuterBindingIdentifiers;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\n/**\\n * Return a list of binding identifiers associated with the input `node`.\\n */\\n\\nfunction getBindingIdentifiers(node /*: Object*/, duplicates /*:: ?: boolean*/, outerOnly /*:: ?: boolean*/) /*: Object*/ {\\n  var search = [].concat(node);\\n  var ids = _Object$create(null);\\n\\n  while (search.length) {\\n    var id = search.shift();\\n    if (!id) continue;\\n\\n    var keys = t.getBindingIdentifiers.keys[id.type];\\n\\n    if (t.isIdentifier(id)) {\\n      if (duplicates) {\\n        var _ids = ids[id.name] = ids[id.name] || [];\\n        _ids.push(id);\\n      } else {\\n        ids[id.name] = id;\\n      }\\n      continue;\\n    }\\n\\n    if (t.isExportDeclaration(id)) {\\n      if (t.isDeclaration(node.declaration)) {\\n        search.push(node.declaration);\\n      }\\n      continue;\\n    }\\n\\n    if (outerOnly) {\\n      if (t.isFunctionDeclaration(id)) {\\n        search.push(id.id);\\n        continue;\\n      }\\n\\n      if (t.isFunctionExpression(id)) {\\n        continue;\\n      }\\n    }\\n\\n    if (keys) {\\n      for (var i = 0; i < keys.length; i++) {\\n        var key = keys[i];\\n        if (id[key]) {\\n          search = search.concat(id[key]);\\n        }\\n      }\\n    }\\n  }\\n\\n  return ids;\\n}\\n\\n/**\\n * Mapping of types to their identifier keys.\\n */\\n\\ngetBindingIdentifiers.keys = {\\n  DeclareClass: [\\"id\\"],\\n  DeclareFunction: [\\"id\\"],\\n  DeclareModule: [\\"id\\"],\\n  DeclareVariable: [\\"id\\"],\\n  InterfaceDeclaration: [\\"id\\"],\\n  TypeAlias: [\\"id\\"],\\n\\n  CatchClause: [\\"param\\"],\\n  LabeledStatement: [\\"label\\"],\\n  UnaryExpression: [\\"argument\\"],\\n  AssignmentExpression: [\\"left\\"],\\n\\n  ImportSpecifier: [\\"local\\"],\\n  ImportNamespaceSpecifier: [\\"local\\"],\\n  ImportDefaultSpecifier: [\\"local\\"],\\n  ImportDeclaration: [\\"specifiers\\"],\\n\\n  ExportSpecifier: [\\"exported\\"],\\n  ExportNamespaceSpecifier: [\\"exported\\"],\\n  ExportDefaultSpecifier: [\\"exported\\"],\\n\\n  FunctionDeclaration: [\\"id\\", \\"params\\"],\\n  FunctionExpression: [\\"id\\", \\"params\\"],\\n\\n  ClassDeclaration: [\\"id\\"],\\n  ClassExpression: [\\"id\\"],\\n\\n  RestElement: [\\"argument\\"],\\n  UpdateExpression: [\\"argument\\"],\\n\\n  SpreadProperty: [\\"argument\\"],\\n  ObjectProperty: [\\"value\\"],\\n\\n  AssignmentPattern: [\\"left\\"],\\n  ArrayPattern: [\\"elements\\"],\\n  ObjectPattern: [\\"properties\\"],\\n\\n  VariableDeclaration: [\\"declarations\\"],\\n  VariableDeclarator: [\\"id\\"]\\n};\\n\\nfunction getOuterBindingIdentifiers(node /*: Object*/, duplicates /*:: ?: boolean*/) /*: Object*/ {\\n  return getBindingIdentifiers(node, duplicates, true);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/retrievers.js\\n ** module id = 184\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/create.js\\n ** module id = 185\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/create.js\\n ** module id = 186\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.isBinding = isBinding;\\nexports.isReferenced = isReferenced;\\nexports.isValidIdentifier = isValidIdentifier;\\nexports.isLet = isLet;\\nexports.isBlockScoped = isBlockScoped;\\nexports.isVar = isVar;\\nexports.isSpecifierDefault = isSpecifierDefault;\\nexports.isScope = isScope;\\nexports.isImmutable = isImmutable;\\n\\nvar _retrievers = require(\\"./retrievers\\");\\n\\nvar _esutils = require(\\"esutils\\");\\n\\nvar _esutils2 = _interopRequireDefault(_esutils);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar _constants = require(\\"./constants\\");\\n\\n/**\\n * Check if the input `node` is a binding identifier.\\n */\\n\\nfunction isBinding(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  var keys = _retrievers.getBindingIdentifiers.keys[parent.type];\\n  if (keys) {\\n    for (var i = 0; i < keys.length; i++) {\\n      var key = keys[i];\\n      var val = parent[key];\\n      if (Array.isArray(val)) {\\n        if (val.indexOf(node) >= 0) return true;\\n      } else {\\n        if (val === node) return true;\\n      }\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Check if the input `node` is a reference to a bound variable.\\n */\\n\\nfunction isReferenced(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  switch (parent.type) {\\n    // yes: PARENT[NODE]\\n    // yes: NODE.child\\n    // no: parent.NODE\\n    case \\"MemberExpression\\":\\n    case \\"JSXMemberExpression\\":\\n    case \\"BindExpression\\":\\n      if (parent.property === node && parent.computed) {\\n        return true;\\n      } else if (parent.object === node) {\\n        return true;\\n      } else {\\n        return false;\\n      }\\n\\n    // no: new.NODE\\n    // no: NODE.target\\n    case \\"MetaProperty\\":\\n      return false;\\n\\n    // yes: { [NODE]: \\"\\" }\\n    // yes: { NODE }\\n    // no: { NODE: \\"\\" }\\n    case \\"ObjectProperty\\":\\n      if (parent.key === node) {\\n        return parent.computed;\\n      }\\n\\n    // no: let NODE = init;\\n    // yes: let id = NODE;\\n    case \\"VariableDeclarator\\":\\n      return parent.id !== node;\\n\\n    // no: function NODE() {}\\n    // no: function foo(NODE) {}\\n    case \\"ArrowFunctionExpression\\":\\n    case \\"FunctionDeclaration\\":\\n    case \\"FunctionExpression\\":\\n      for (var _iterator = (parent.params /*: Array<any>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n        var _ref;\\n\\n        if (_isArray) {\\n          if (_i >= _iterator.length) break;\\n          _ref = _iterator[_i++];\\n        } else {\\n          _i = _iterator.next();\\n          if (_i.done) break;\\n          _ref = _i.value;\\n        }\\n\\n        var param = _ref;\\n\\n        if (param === node) return false;\\n      }\\n\\n      return parent.id !== node;\\n\\n    // no: export { foo as NODE };\\n    // yes: export { NODE as foo };\\n    // no: export { NODE as foo } from \\"foo\\";\\n    case \\"ExportSpecifier\\":\\n      if (parent.source) {\\n        return false;\\n      } else {\\n        return parent.local === node;\\n      }\\n\\n    // no: export NODE from \\"foo\\";\\n    // no: export * as NODE from \\"foo\\";\\n    case \\"ExportNamespaceSpecifier\\":\\n    case \\"ExportDefaultSpecifier\\":\\n      return false;\\n\\n    // no: <div NODE=\\"foo\\" />\\n    case \\"JSXAttribute\\":\\n      return parent.name !== node;\\n\\n    // no: class { NODE = value; }\\n    // yes: class { key = NODE; }\\n    case \\"ClassProperty\\":\\n      return parent.value === node;\\n\\n    // no: import NODE from \\"foo\\";\\n    // no: import * as NODE from \\"foo\\";\\n    // no: import { NODE as foo } from \\"foo\\";\\n    // no: import { foo as NODE } from \\"foo\\";\\n    // no: import NODE from \\"bar\\";\\n    case \\"ImportDefaultSpecifier\\":\\n    case \\"ImportNamespaceSpecifier\\":\\n    case \\"ImportSpecifier\\":\\n      return false;\\n\\n    // no: class NODE {}\\n    case \\"ClassDeclaration\\":\\n    case \\"ClassExpression\\":\\n      return parent.id !== node;\\n\\n    // yes: class { [NODE](){} }\\n    case \\"ClassMethod\\":\\n    case \\"ObjectMethod\\":\\n      return parent.key === node && parent.computed;\\n\\n    // no: NODE: for (;;) {}\\n    case \\"LabeledStatement\\":\\n      return false;\\n\\n    // no: try {} catch (NODE) {}\\n    case \\"CatchClause\\":\\n      return parent.param !== node;\\n\\n    // no: function foo(...NODE) {}\\n    case \\"RestElement\\":\\n      return false;\\n\\n    // yes: left = NODE;\\n    // no: NODE = right;\\n    case \\"AssignmentExpression\\":\\n      return parent.right === node;\\n\\n    // no: [NODE = foo] = [];\\n    // yes: [foo = NODE] = [];\\n    case \\"AssignmentPattern\\":\\n      return parent.right === node;\\n\\n    // no: [NODE] = [];\\n    // no: ({ NODE }) = [];\\n    case \\"ObjectPattern\\":\\n    case \\"ArrayPattern\\":\\n      return false;\\n  }\\n\\n  return true;\\n}\\n\\n/**\\n * Check if the input `name` is a valid identifier name\\n * and isn\'t a reserved word.\\n */\\n\\nfunction isValidIdentifier(name /*: string*/) /*: boolean*/ {\\n  if (typeof name !== \\"string\\" || _esutils2[\\"default\\"].keyword.isReservedWordES6(name, true)) {\\n    return false;\\n  } else {\\n    return _esutils2[\\"default\\"].keyword.isIdentifierNameES6(name);\\n  }\\n}\\n\\n/**\\n * Check if the input `node` is a `let` variable declaration.\\n */\\n\\nfunction isLet(node /*: Object*/) /*: boolean*/ {\\n  return t.isVariableDeclaration(node) && (node.kind !== \\"var\\" || node[_constants.BLOCK_SCOPED_SYMBOL]);\\n}\\n\\n/**\\n * Check if the input `node` is block scoped.\\n */\\n\\nfunction isBlockScoped(node /*: Object*/) /*: boolean*/ {\\n  return t.isFunctionDeclaration(node) || t.isClassDeclaration(node) || t.isLet(node);\\n}\\n\\n/**\\n * Check if the input `node` is a variable declaration.\\n */\\n\\nfunction isVar(node /*: Object*/) /*: boolean*/ {\\n  return t.isVariableDeclaration(node, { kind: \\"var\\" }) && !node[_constants.BLOCK_SCOPED_SYMBOL];\\n}\\n\\n/**\\n * Check if the input `specifier` is a `default` import or export.\\n */\\n\\nfunction isSpecifierDefault(specifier /*: Object*/) /*: boolean*/ {\\n  return t.isImportDefaultSpecifier(specifier) || t.isIdentifier(specifier.imported || specifier.exported, { name: \\"default\\" });\\n}\\n\\n/**\\n * Check if the input `node` is a scope.\\n */\\n\\nfunction isScope(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isBlockStatement(node) && t.isFunction(parent, { body: node })) {\\n    return false;\\n  }\\n\\n  return t.isScopable(node);\\n}\\n\\n/**\\n * Check if the input `node` is definitely immutable.\\n */\\n\\nfunction isImmutable(node /*: Object*/) /*: boolean*/ {\\n  if (t.isType(node.type, \\"Immutable\\")) return true;\\n\\n  if (t.isIdentifier(node)) {\\n    if (node.name === \\"undefined\\") {\\n      // immutable!\\n      return true;\\n    } else {\\n      // no idea...\\n      return false;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/validators.js\\n ** module id = 187\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n\\n(function () {\\n    \'use strict\';\\n\\n    exports.ast = require(\'./ast\');\\n    exports.code = require(\'./code\');\\n    exports.keyword = require(\'./keyword\');\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/utils.js\\n ** module id = 188\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \'AS IS\'\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n(function () {\\n    \'use strict\';\\n\\n    function isExpression(node) {\\n        if (node == null) { return false; }\\n        switch (node.type) {\\n            case \'ArrayExpression\':\\n            case \'AssignmentExpression\':\\n            case \'BinaryExpression\':\\n            case \'CallExpression\':\\n            case \'ConditionalExpression\':\\n            case \'FunctionExpression\':\\n            case \'Identifier\':\\n            case \'Literal\':\\n            case \'LogicalExpression\':\\n            case \'MemberExpression\':\\n            case \'NewExpression\':\\n            case \'ObjectExpression\':\\n            case \'SequenceExpression\':\\n            case \'ThisExpression\':\\n            case \'UnaryExpression\':\\n            case \'UpdateExpression\':\\n                return true;\\n        }\\n        return false;\\n    }\\n\\n    function isIterationStatement(node) {\\n        if (node == null) { return false; }\\n        switch (node.type) {\\n            case \'DoWhileStatement\':\\n            case \'ForInStatement\':\\n            case \'ForStatement\':\\n            case \'WhileStatement\':\\n                return true;\\n        }\\n        return false;\\n    }\\n\\n    function isStatement(node) {\\n        if (node == null) { return false; }\\n        switch (node.type) {\\n            case \'BlockStatement\':\\n            case \'BreakStatement\':\\n            case \'ContinueStatement\':\\n            case \'DebuggerStatement\':\\n            case \'DoWhileStatement\':\\n            case \'EmptyStatement\':\\n            case \'ExpressionStatement\':\\n            case \'ForInStatement\':\\n            case \'ForStatement\':\\n            case \'IfStatement\':\\n            case \'LabeledStatement\':\\n            case \'ReturnStatement\':\\n            case \'SwitchStatement\':\\n            case \'ThrowStatement\':\\n            case \'TryStatement\':\\n            case \'VariableDeclaration\':\\n            case \'WhileStatement\':\\n            case \'WithStatement\':\\n                return true;\\n        }\\n        return false;\\n    }\\n\\n    function isSourceElement(node) {\\n      return isStatement(node) || node != null && node.type === \'FunctionDeclaration\';\\n    }\\n\\n    function trailingStatement(node) {\\n        switch (node.type) {\\n        case \'IfStatement\':\\n            if (node.alternate != null) {\\n                return node.alternate;\\n            }\\n            return node.consequent;\\n\\n        case \'LabeledStatement\':\\n        case \'ForStatement\':\\n        case \'ForInStatement\':\\n        case \'WhileStatement\':\\n        case \'WithStatement\':\\n            return node.body;\\n        }\\n        return null;\\n    }\\n\\n    function isProblematicIfStatement(node) {\\n        var current;\\n\\n        if (node.type !== \'IfStatement\') {\\n            return false;\\n        }\\n        if (node.alternate == null) {\\n            return false;\\n        }\\n        current = node.consequent;\\n        do {\\n            if (current.type === \'IfStatement\') {\\n                if (current.alternate == null)  {\\n                    return true;\\n                }\\n            }\\n            current = trailingStatement(current);\\n        } while (current);\\n\\n        return false;\\n    }\\n\\n    module.exports = {\\n        isExpression: isExpression,\\n        isStatement: isStatement,\\n        isIterationStatement: isIterationStatement,\\n        isSourceElement: isSourceElement,\\n        isProblematicIfStatement: isProblematicIfStatement,\\n\\n        trailingStatement: trailingStatement\\n    };\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/ast.js\\n ** module id = 189\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013-2014 Yusuke Suzuki <utatane.tea@gmail.com>\\n  Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n(function () {\\n    \'use strict\';\\n\\n    var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch;\\n\\n    // See `tools/generate-identifier-regex.js`.\\n    ES5Regex = {\\n        // ECMAScript 5.1/Unicode v7.0.0 NonAsciiIdentifierStart:\\n        NonAsciiIdentifierStart: /[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]/,\\n        // ECMAScript 5.1/Unicode v7.0.0 NonAsciiIdentifierPart:\\n        NonAsciiIdentifierPart: /[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19D9\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099\\\\u309A\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]/\\n    };\\n\\n    ES6Regex = {\\n        // ECMAScript 6/Unicode v7.0.0 NonAsciiIdentifierStart:\\n        NonAsciiIdentifierStart: /[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309B-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA]|\\\\uD806[\\\\uDCA0-\\\\uDCDF\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD808[\\\\uDC00-\\\\uDF98]|\\\\uD809[\\\\uDC00-\\\\uDC6E]|[\\\\uD80C\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50\\\\uDF93-\\\\uDF9F]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD83A[\\\\uDC00-\\\\uDCC4]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]/,\\n        // ECMAScript 6/Unicode v7.0.0 NonAsciiIdentifierPart:\\n        NonAsciiIdentifierPart: /[\\\\xAA\\\\xB5\\\\xB7\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1369-\\\\u1371\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19DA\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDDFD\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDEE0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF7A\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCA0-\\\\uDCA9\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE6\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48]|\\\\uD804[\\\\uDC00-\\\\uDC46\\\\uDC66-\\\\uDC6F\\\\uDC7F-\\\\uDCBA\\\\uDCD0-\\\\uDCE8\\\\uDCF0-\\\\uDCF9\\\\uDD00-\\\\uDD34\\\\uDD36-\\\\uDD3F\\\\uDD50-\\\\uDD73\\\\uDD76\\\\uDD80-\\\\uDDC4\\\\uDDD0-\\\\uDDDA\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE37\\\\uDEB0-\\\\uDEEA\\\\uDEF0-\\\\uDEF9\\\\uDF01-\\\\uDF03\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3C-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF5D-\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC80-\\\\uDCC5\\\\uDCC7\\\\uDCD0-\\\\uDCD9\\\\uDD80-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDE00-\\\\uDE40\\\\uDE44\\\\uDE50-\\\\uDE59\\\\uDE80-\\\\uDEB7\\\\uDEC0-\\\\uDEC9]|\\\\uD806[\\\\uDCA0-\\\\uDCE9\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD808[\\\\uDC00-\\\\uDF98]|\\\\uD809[\\\\uDC00-\\\\uDC6E]|[\\\\uD80C\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE60-\\\\uDE69\\\\uDED0-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDF00-\\\\uDF36\\\\uDF40-\\\\uDF43\\\\uDF50-\\\\uDF59\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50-\\\\uDF7E\\\\uDF8F-\\\\uDF9F]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9D\\\\uDC9E]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB\\\\uDFCE-\\\\uDFFF]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDCD0-\\\\uDCD6]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uDB40[\\\\uDD00-\\\\uDDEF]/\\n    };\\n\\n    function isDecimalDigit(ch) {\\n        return 0x30 <= ch && ch <= 0x39;  // 0..9\\n    }\\n\\n    function isHexDigit(ch) {\\n        return 0x30 <= ch && ch <= 0x39 ||  // 0..9\\n            0x61 <= ch && ch <= 0x66 ||     // a..f\\n            0x41 <= ch && ch <= 0x46;       // A..F\\n    }\\n\\n    function isOctalDigit(ch) {\\n        return ch >= 0x30 && ch <= 0x37;  // 0..7\\n    }\\n\\n    // 7.2 White Space\\n\\n    NON_ASCII_WHITESPACES = [\\n        0x1680, 0x180E,\\n        0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,\\n        0x202F, 0x205F,\\n        0x3000,\\n        0xFEFF\\n    ];\\n\\n    function isWhiteSpace(ch) {\\n        return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 ||\\n            ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0;\\n    }\\n\\n    // 7.3 Line Terminators\\n\\n    function isLineTerminator(ch) {\\n        return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\\n    }\\n\\n    // 7.6 Identifier Names and Identifiers\\n\\n    function fromCodePoint(cp) {\\n        if (cp <= 0xFFFF) { return String.fromCharCode(cp); }\\n        var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800);\\n        var cu2 = String.fromCharCode(((cp - 0x10000) % 0x400) + 0xDC00);\\n        return cu1 + cu2;\\n    }\\n\\n    IDENTIFIER_START = new Array(0x80);\\n    for(ch = 0; ch < 0x80; ++ch) {\\n        IDENTIFIER_START[ch] =\\n            ch >= 0x61 && ch <= 0x7A ||  // a..z\\n            ch >= 0x41 && ch <= 0x5A ||  // A..Z\\n            ch === 0x24 || ch === 0x5F;  // $ (dollar) and _ (underscore)\\n    }\\n\\n    IDENTIFIER_PART = new Array(0x80);\\n    for(ch = 0; ch < 0x80; ++ch) {\\n        IDENTIFIER_PART[ch] =\\n            ch >= 0x61 && ch <= 0x7A ||  // a..z\\n            ch >= 0x41 && ch <= 0x5A ||  // A..Z\\n            ch >= 0x30 && ch <= 0x39 ||  // 0..9\\n            ch === 0x24 || ch === 0x5F;  // $ (dollar) and _ (underscore)\\n    }\\n\\n    function isIdentifierStartES5(ch) {\\n        return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\\n    }\\n\\n    function isIdentifierPartES5(ch) {\\n        return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\\n    }\\n\\n    function isIdentifierStartES6(ch) {\\n        return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\\n    }\\n\\n    function isIdentifierPartES6(ch) {\\n        return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\\n    }\\n\\n    module.exports = {\\n        isDecimalDigit: isDecimalDigit,\\n        isHexDigit: isHexDigit,\\n        isOctalDigit: isOctalDigit,\\n        isWhiteSpace: isWhiteSpace,\\n        isLineTerminator: isLineTerminator,\\n        isIdentifierStartES5: isIdentifierStartES5,\\n        isIdentifierPartES5: isIdentifierPartES5,\\n        isIdentifierStartES6: isIdentifierStartES6,\\n        isIdentifierPartES6: isIdentifierPartES6\\n    };\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/code.js\\n ** module id = 190\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n(function () {\\n    \'use strict\';\\n\\n    var code = require(\'./code\');\\n\\n    function isStrictModeReservedWordES6(id) {\\n        switch (id) {\\n        case \'implements\':\\n        case \'interface\':\\n        case \'package\':\\n        case \'private\':\\n        case \'protected\':\\n        case \'public\':\\n        case \'static\':\\n        case \'let\':\\n            return true;\\n        default:\\n            return false;\\n        }\\n    }\\n\\n    function isKeywordES5(id, strict) {\\n        // yield should not be treated as keyword under non-strict mode.\\n        if (!strict && id === \'yield\') {\\n            return false;\\n        }\\n        return isKeywordES6(id, strict);\\n    }\\n\\n    function isKeywordES6(id, strict) {\\n        if (strict && isStrictModeReservedWordES6(id)) {\\n            return true;\\n        }\\n\\n        switch (id.length) {\\n        case 2:\\n            return (id === \'if\') || (id === \'in\') || (id === \'do\');\\n        case 3:\\n            return (id === \'var\') || (id === \'for\') || (id === \'new\') || (id === \'try\');\\n        case 4:\\n            return (id === \'this\') || (id === \'else\') || (id === \'case\') ||\\n                (id === \'void\') || (id === \'with\') || (id === \'enum\');\\n        case 5:\\n            return (id === \'while\') || (id === \'break\') || (id === \'catch\') ||\\n                (id === \'throw\') || (id === \'const\') || (id === \'yield\') ||\\n                (id === \'class\') || (id === \'super\');\\n        case 6:\\n            return (id === \'return\') || (id === \'typeof\') || (id === \'delete\') ||\\n                (id === \'switch\') || (id === \'export\') || (id === \'import\');\\n        case 7:\\n            return (id === \'default\') || (id === \'finally\') || (id === \'extends\');\\n        case 8:\\n            return (id === \'function\') || (id === \'continue\') || (id === \'debugger\');\\n        case 10:\\n            return (id === \'instanceof\');\\n        default:\\n            return false;\\n        }\\n    }\\n\\n    function isReservedWordES5(id, strict) {\\n        return id === \'null\' || id === \'true\' || id === \'false\' || isKeywordES5(id, strict);\\n    }\\n\\n    function isReservedWordES6(id, strict) {\\n        return id === \'null\' || id === \'true\' || id === \'false\' || isKeywordES6(id, strict);\\n    }\\n\\n    function isRestrictedWord(id) {\\n        return id === \'eval\' || id === \'arguments\';\\n    }\\n\\n    function isIdentifierNameES5(id) {\\n        var i, iz, ch;\\n\\n        if (id.length === 0) { return false; }\\n\\n        ch = id.charCodeAt(0);\\n        if (!code.isIdentifierStartES5(ch)) {\\n            return false;\\n        }\\n\\n        for (i = 1, iz = id.length; i < iz; ++i) {\\n            ch = id.charCodeAt(i);\\n            if (!code.isIdentifierPartES5(ch)) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n\\n    function decodeUtf16(lead, trail) {\\n        return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\\n    }\\n\\n    function isIdentifierNameES6(id) {\\n        var i, iz, ch, lowCh, check;\\n\\n        if (id.length === 0) { return false; }\\n\\n        check = code.isIdentifierStartES6;\\n        for (i = 0, iz = id.length; i < iz; ++i) {\\n            ch = id.charCodeAt(i);\\n            if (0xD800 <= ch && ch <= 0xDBFF) {\\n                ++i;\\n                if (i >= iz) { return false; }\\n                lowCh = id.charCodeAt(i);\\n                if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) {\\n                    return false;\\n                }\\n                ch = decodeUtf16(ch, lowCh);\\n            }\\n            if (!check(ch)) {\\n                return false;\\n            }\\n            check = code.isIdentifierPartES6;\\n        }\\n        return true;\\n    }\\n\\n    function isIdentifierES5(id, strict) {\\n        return isIdentifierNameES5(id) && !isReservedWordES5(id, strict);\\n    }\\n\\n    function isIdentifierES6(id, strict) {\\n        return isIdentifierNameES6(id) && !isReservedWordES6(id, strict);\\n    }\\n\\n    module.exports = {\\n        isKeywordES5: isKeywordES5,\\n        isKeywordES6: isKeywordES6,\\n        isReservedWordES5: isReservedWordES5,\\n        isReservedWordES6: isReservedWordES6,\\n        isRestrictedWord: isRestrictedWord,\\n        isIdentifierNameES5: isIdentifierNameES5,\\n        isIdentifierNameES6: isIdentifierNameES6,\\n        isIdentifierES5: isIdentifierES5,\\n        isIdentifierES6: isIdentifierES6\\n    };\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/keyword.js\\n ** module id = 191\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Number$MAX_SAFE_INTEGER = require(\\"babel-runtime/core-js/number/max-safe-integer\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.toComputedKey = toComputedKey;\\nexports.toSequenceExpression = toSequenceExpression;\\nexports.toKeyAlias = toKeyAlias;\\nexports.toIdentifier = toIdentifier;\\nexports.toBindingIdentifierName = toBindingIdentifierName;\\nexports.toStatement = toStatement;\\nexports.toExpression = toExpression;\\nexports.toBlock = toBlock;\\nexports.valueToNode = valueToNode;\\n\\nvar _lodashLangIsPlainObject = require(\\"lodash/lang/isPlainObject\\");\\n\\nvar _lodashLangIsPlainObject2 = _interopRequireDefault(_lodashLangIsPlainObject);\\n\\nvar _lodashLangIsNumber = require(\\"lodash/lang/isNumber\\");\\n\\nvar _lodashLangIsNumber2 = _interopRequireDefault(_lodashLangIsNumber);\\n\\nvar _lodashLangIsRegExp = require(\\"lodash/lang/isRegExp\\");\\n\\nvar _lodashLangIsRegExp2 = _interopRequireDefault(_lodashLangIsRegExp);\\n\\nvar _lodashLangIsString = require(\\"lodash/lang/isString\\");\\n\\nvar _lodashLangIsString2 = _interopRequireDefault(_lodashLangIsString);\\n\\nvar _babelTraverse = require(\\"babel-traverse\\");\\n\\nvar _babelTraverse2 = _interopRequireDefault(_babelTraverse);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\n/*:: import type { Scope } from \\"babel-traverse\\";*/\\nfunction toComputedKey(node /*: Object*/) /*: Object*/ {\\n  var key /*: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? node.key || node.property : arguments[1];\\n  return (function () {\\n    if (!node.computed) {\\n      if (t.isIdentifier(key)) key = t.stringLiteral(key.name);\\n    }\\n    return key;\\n  })();\\n}\\n\\n/**\\n * Turn an array of statement `nodes` into a `SequenceExpression`.\\n *\\n * Variable declarations are turned into simple assignments and their\\n * declarations hoisted to the top of the current scope.\\n *\\n * Expression statements are just resolved to their expression.\\n */\\n\\nfunction toSequenceExpression(nodes /*: Array<Object>*/, scope /*: Scope*/) /*: ?Object*/ {\\n  if (!nodes || !nodes.length) return;\\n\\n  var declars = [];\\n  var bailed = false;\\n\\n  var result = convert(nodes);\\n  if (bailed) return;\\n\\n  for (var i = 0; i < declars.length; i++) {\\n    scope.push(declars[i]);\\n  }\\n\\n  return result;\\n\\n  function convert(nodes) {\\n    var ensureLastUndefined = false;\\n    var exprs = [];\\n\\n    for (var _iterator = (nodes /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var node = _ref;\\n\\n      if (t.isExpression(node)) {\\n        exprs.push(node);\\n      } else if (t.isExpressionStatement(node)) {\\n        exprs.push(node.expression);\\n      } else if (t.isVariableDeclaration(node)) {\\n        if (node.kind !== \\"var\\") return bailed = true; // bailed\\n\\n        for (var _iterator2 = (node.declarations /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n          var _ref2;\\n\\n          if (_isArray2) {\\n            if (_i2 >= _iterator2.length) break;\\n            _ref2 = _iterator2[_i2++];\\n          } else {\\n            _i2 = _iterator2.next();\\n            if (_i2.done) break;\\n            _ref2 = _i2.value;\\n          }\\n\\n          var declar = _ref2;\\n\\n          var bindings = t.getBindingIdentifiers(declar);\\n          for (var key in bindings) {\\n            declars.push({\\n              kind: node.kind,\\n              id: bindings[key]\\n            });\\n          }\\n\\n          if (declar.init) {\\n            exprs.push(t.assignmentExpression(\\"=\\", declar.id, declar.init));\\n          }\\n        }\\n\\n        ensureLastUndefined = true;\\n        continue;\\n      } else if (t.isIfStatement(node)) {\\n        var consequent = node.consequent ? convert([node.consequent]) : scope.buildUndefinedNode();\\n        var alternate = node.alternate ? convert([node.alternate]) : scope.buildUndefinedNode();\\n        if (!consequent || !alternate) return bailed = true;\\n\\n        exprs.push(t.conditionalExpression(node.test, consequent, alternate));\\n      } else if (t.isBlockStatement(node)) {\\n        exprs.push(convert(node.body));\\n      } else if (t.isEmptyStatement(node)) {\\n        // empty statement so ensure the last item is undefined if we\'re last\\n        ensureLastUndefined = true;\\n        continue;\\n      } else {\\n        // bailed, we can\'t turn this statement into an expression\\n        return bailed = true;\\n      }\\n\\n      ensureLastUndefined = false;\\n    }\\n\\n    if (ensureLastUndefined || exprs.length === 0) {\\n      exprs.push(scope.buildUndefinedNode());\\n    }\\n\\n    //\\n\\n    if (exprs.length === 1) {\\n      return exprs[0];\\n    } else {\\n      return t.sequenceExpression(exprs);\\n    }\\n  }\\n}\\n\\nfunction toKeyAlias(node /*: Object*/) /*: string*/ {\\n  var key /*: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? node.key : arguments[1];\\n  return (function () {\\n    var alias = undefined;\\n\\n    if (node.kind === \\"method\\") {\\n      return toKeyAlias.increment() + \\"\\";\\n    } else if (t.isIdentifier(key)) {\\n      alias = key.name;\\n    } else if (t.isStringLiteral(key)) {\\n      alias = JSON.stringify(key.value);\\n    } else {\\n      alias = JSON.stringify(_babelTraverse2[\\"default\\"].removeProperties(t.cloneDeep(key)));\\n    }\\n\\n    if (node.computed) {\\n      alias = \\"[\\" + alias + \\"]\\";\\n    }\\n\\n    if (node[\\"static\\"]) {\\n      alias = \\"static:\\" + alias;\\n    }\\n\\n    return alias;\\n  })();\\n}\\n\\ntoKeyAlias.uid = 0;\\n\\ntoKeyAlias.increment = function () {\\n  if (toKeyAlias.uid >= _Number$MAX_SAFE_INTEGER) {\\n    return toKeyAlias.uid = 0;\\n  } else {\\n    return toKeyAlias.uid++;\\n  }\\n};\\n\\nfunction toIdentifier(name /*: string*/) /*: string*/ {\\n  name = name + \\"\\";\\n\\n  // replace all non-valid identifiers with dashes\\n  name = name.replace(/[^a-zA-Z0-9$_]/g, \\"-\\");\\n\\n  // remove all dashes and numbers from start of name\\n  name = name.replace(/^[-0-9]+/, \\"\\");\\n\\n  // camel case\\n  name = name.replace(/[-\\\\s]+(.)?/g, function (match, c) {\\n    return c ? c.toUpperCase() : \\"\\";\\n  });\\n\\n  if (!t.isValidIdentifier(name)) {\\n    name = \\"_\\" + name;\\n  }\\n\\n  return name || \\"_\\";\\n}\\n\\nfunction toBindingIdentifierName(name /*: string*/) /*: string*/ {\\n  name = toIdentifier(name);\\n  if (name === \\"eval\\" || name === \\"arguments\\") name = \\"_\\" + name;\\n  return name;\\n}\\n\\n/**\\n * [Please add a description.]\\n * @returns {Object|Boolean}\\n */\\n\\nfunction toStatement(node /*: Object*/, ignore /*:: ?: boolean*/) {\\n  if (t.isStatement(node)) {\\n    return node;\\n  }\\n\\n  var mustHaveId = false;\\n  var newType = undefined;\\n\\n  if (t.isClass(node)) {\\n    mustHaveId = true;\\n    newType = \\"ClassDeclaration\\";\\n  } else if (t.isFunction(node)) {\\n    mustHaveId = true;\\n    newType = \\"FunctionDeclaration\\";\\n  } else if (t.isAssignmentExpression(node)) {\\n    return t.expressionStatement(node);\\n  }\\n\\n  if (mustHaveId && !node.id) {\\n    newType = false;\\n  }\\n\\n  if (!newType) {\\n    if (ignore) {\\n      return false;\\n    } else {\\n      throw new Error(\\"cannot turn \\" + node.type + \\" to a statement\\");\\n    }\\n  }\\n\\n  node.type = newType;\\n\\n  return node;\\n}\\n\\nfunction toExpression(node /*: Object*/) /*: Object*/ {\\n  if (t.isExpressionStatement(node)) {\\n    node = node.expression;\\n  }\\n\\n  if (t.isClass(node)) {\\n    node.type = \\"ClassExpression\\";\\n  } else if (t.isFunction(node)) {\\n    node.type = \\"FunctionExpression\\";\\n  }\\n\\n  if (t.isExpression(node)) {\\n    return node;\\n  } else {\\n    throw new Error(\\"cannot turn \\" + node.type + \\" to an expression\\");\\n  }\\n}\\n\\nfunction toBlock(node /*: Object*/, parent /*: Object*/) /*: Object*/ {\\n  if (t.isBlockStatement(node)) {\\n    return node;\\n  }\\n\\n  if (t.isEmptyStatement(node)) {\\n    node = [];\\n  }\\n\\n  if (!Array.isArray(node)) {\\n    if (!t.isStatement(node)) {\\n      if (t.isFunction(parent)) {\\n        node = t.returnStatement(node);\\n      } else {\\n        node = t.expressionStatement(node);\\n      }\\n    }\\n\\n    node = [node];\\n  }\\n\\n  return t.blockStatement(node);\\n}\\n\\nfunction valueToNode(value /*: any*/) /*: Object*/ {\\n  // undefined\\n  if (value === undefined) {\\n    return t.identifier(\\"undefined\\");\\n  }\\n\\n  // boolean\\n  if (value === true || value === false) {\\n    return t.booleanLiteral(value);\\n  }\\n\\n  // null\\n  if (value === null) {\\n    return t.nullLiteral();\\n  }\\n\\n  // strings\\n  if (_lodashLangIsString2[\\"default\\"](value)) {\\n    return t.stringLiteral(value);\\n  }\\n\\n  // numbers\\n  if (_lodashLangIsNumber2[\\"default\\"](value)) {\\n    return t.numericLiteral(value);\\n  }\\n\\n  // regexes\\n  if (_lodashLangIsRegExp2[\\"default\\"](value)) {\\n    var pattern = value.source;\\n    var flags = value.toString().match(/\\\\/([a-z]+|)$/)[1];\\n    return t.regExpLiteral(pattern, flags);\\n  }\\n\\n  // array\\n  if (Array.isArray(value)) {\\n    return t.arrayExpression(value.map(t.valueToNode));\\n  }\\n\\n  // object\\n  if (_lodashLangIsPlainObject2[\\"default\\"](value)) {\\n    var props = [];\\n    for (var key in value) {\\n      var nodeKey = undefined;\\n      if (t.isValidIdentifier(key)) {\\n        nodeKey = t.identifier(key);\\n      } else {\\n        nodeKey = t.stringLiteral(key);\\n      }\\n      props.push(t.objectProperty(nodeKey, t.valueToNode(value[key])));\\n    }\\n    return t.objectExpression(props);\\n  }\\n\\n  throw new Error(\\"don\'t know how to turn this value into a node\\");\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/converters.js\\n ** module id = 192\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/number/max-safe-integer\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/number/max-safe-integer.js\\n ** module id = 193\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.number.max-safe-integer\');\\nmodule.exports = 0x1fffffffffffff;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/number/max-safe-integer.js\\n ** module id = 194\\n ** module chunks = 0\\n **/","// 20.1.2.6 Number.MAX_SAFE_INTEGER\\nvar $export = require(\'./$.export\');\\n\\n$export($export.S, \'Number\', {MAX_SAFE_INTEGER: 0x1fffffffffffff});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.number.max-safe-integer.js\\n ** module id = 195\\n ** module chunks = 0\\n **/","var baseForIn = require(\'../internal/baseForIn\'),\\n    isArguments = require(\'./isArguments\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar objectTag = \'[object Object]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is a plain object, that is, an object created by the\\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\\n *\\n * **Note:** This method assumes objects created by the `Object` constructor\\n * have no inherited enumerable properties.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n * }\\n *\\n * _.isPlainObject(new Foo);\\n * // => false\\n *\\n * _.isPlainObject([1, 2, 3]);\\n * // => false\\n *\\n * _.isPlainObject({ \'x\': 0, \'y\': 0 });\\n * // => true\\n *\\n * _.isPlainObject(Object.create(null));\\n * // => true\\n */\\nfunction isPlainObject(value) {\\n  var Ctor;\\n\\n  // Exit early for non `Object` objects.\\n  if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isArguments(value)) ||\\n      (!hasOwnProperty.call(value, \'constructor\') && (Ctor = value.constructor, typeof Ctor == \'function\' && !(Ctor instanceof Ctor)))) {\\n    return false;\\n  }\\n  // IE < 9 iterates inherited properties before own properties. If the first\\n  // iterated property is an object\'s own property then there are no inherited\\n  // enumerable properties.\\n  var result;\\n  // In most environments an object\'s own properties are iterated before\\n  // its inherited properties. If the last iterated property is an object\'s\\n  // own property then there are no inherited enumerable properties.\\n  baseForIn(value, function(subValue, key) {\\n    result = key;\\n  });\\n  return result === undefined || hasOwnProperty.call(value, result);\\n}\\n\\nmodule.exports = isPlainObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isPlainObject.js\\n ** module id = 196\\n ** module chunks = 0\\n **/","var baseFor = require(\'./baseFor\'),\\n    keysIn = require(\'../object/keysIn\');\\n\\n/**\\n * The base implementation of `_.forIn` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseForIn(object, iteratee) {\\n  return baseFor(object, iteratee, keysIn);\\n}\\n\\nmodule.exports = baseForIn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseForIn.js\\n ** module id = 197\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar numberTag = \'[object Number]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Number` primitive or object.\\n *\\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\\n * as numbers, use the `_.isFinite` method.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isNumber(8.4);\\n * // => true\\n *\\n * _.isNumber(NaN);\\n * // => true\\n *\\n * _.isNumber(\'8.4\');\\n * // => false\\n */\\nfunction isNumber(value) {\\n  return typeof value == \'number\' || (isObjectLike(value) && objToString.call(value) == numberTag);\\n}\\n\\nmodule.exports = isNumber;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isNumber.js\\n ** module id = 198\\n ** module chunks = 0\\n **/","var isObject = require(\'./isObject\');\\n\\n/** `Object#toString` result references. */\\nvar regexpTag = \'[object RegExp]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `RegExp` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isRegExp(/abc/);\\n * // => true\\n *\\n * _.isRegExp(\'/abc/\');\\n * // => false\\n */\\nfunction isRegExp(value) {\\n  return isObject(value) && objToString.call(value) == regexpTag;\\n}\\n\\nmodule.exports = isRegExp;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isRegExp.js\\n ** module id = 199\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar stringTag = \'[object String]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `String` primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isString(\'abc\');\\n * // => true\\n *\\n * _.isString(1);\\n * // => false\\n */\\nfunction isString(value) {\\n  return typeof value == \'string\' || (isObjectLike(value) && objToString.call(value) == stringTag);\\n}\\n\\nmodule.exports = isString;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isString.js\\n ** module id = 200\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$getOwnPropertySymbols = require(\\"babel-runtime/core-js/object/get-own-property-symbols\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequire = require(\\"babel-runtime/helpers/interop-require\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = traverse;\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _context2 = _interopRequireDefault(_context);\\n\\nvar _visitors = require(\\"./visitors\\");\\n\\nvar visitors = _interopRequireWildcard(_visitors);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _lodashCollectionIncludes = require(\\"lodash/collection/includes\\");\\n\\nvar _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _path = require(\\"./path\\");\\n\\nexports.NodePath = _interopRequire(_path);\\n\\nvar _scope = require(\\"./scope\\");\\n\\nexports.Scope = _interopRequire(_scope);\\n\\nvar _hub = require(\\"./hub\\");\\n\\nexports.Hub = _interopRequire(_hub);\\nexports.visitors = visitors;\\n\\nfunction traverse(parent /*: Object | Array<Object>*/, opts /*:: ?: Object*/, scope /*:: ?: Object*/, state /*: Object*/, parentPath /*: Object*/) {\\n  if (!parent) return;\\n  if (!opts) opts = {};\\n\\n  if (!opts.noScope && !scope) {\\n    if (parent.type !== \\"Program\\" && parent.type !== \\"File\\") {\\n      throw new Error(messages.get(\\"traverseNeedsParent\\", parent.type));\\n    }\\n  }\\n\\n  visitors.explode(opts);\\n\\n  traverse.node(parent, opts, scope, state, parentPath);\\n}\\n\\ntraverse.visitors = visitors;\\ntraverse.verify = visitors.verify;\\ntraverse.explode = visitors.explode;\\n\\ntraverse.NodePath = require(\\"./path\\");\\ntraverse.Scope = require(\\"./scope\\");\\ntraverse.Hub = require(\\"./hub\\");\\n\\ntraverse.cheap = function (node, enter) {\\n  if (!node) return;\\n\\n  var keys = t.VISITOR_KEYS[node.type];\\n  if (!keys) return;\\n\\n  enter(node);\\n\\n  for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var key = _ref;\\n\\n    var subNode = node[key];\\n\\n    if (Array.isArray(subNode)) {\\n      for (var _iterator2 = subNode, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var _node = _ref2;\\n\\n        traverse.cheap(_node, enter);\\n      }\\n    } else {\\n      traverse.cheap(subNode, enter);\\n    }\\n  }\\n};\\n\\ntraverse.node = function (node /*: Object*/, opts /*: Object*/, scope /*: Object*/, state /*: Object*/, parentPath /*: Object*/, skipKeys /*:: ?*/) {\\n  var keys /*: Array*/ = t.VISITOR_KEYS[node.type];\\n  if (!keys) return;\\n\\n  var context = new _context2[\\"default\\"](scope, opts, state, parentPath);\\n  for (var _iterator3 = keys, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n    var _ref3;\\n\\n    if (_isArray3) {\\n      if (_i3 >= _iterator3.length) break;\\n      _ref3 = _iterator3[_i3++];\\n    } else {\\n      _i3 = _iterator3.next();\\n      if (_i3.done) break;\\n      _ref3 = _i3.value;\\n    }\\n\\n    var key = _ref3;\\n\\n    if (skipKeys && skipKeys[key]) continue;\\n    if (context.visit(node, key)) return;\\n  }\\n};\\n\\nvar CLEAR_KEYS /*: Array*/ = t.COMMENT_KEYS.concat([\\"tokens\\", \\"comments\\", \\"start\\", \\"end\\", \\"loc\\", \\"raw\\", \\"rawValue\\"]);\\n\\ntraverse.clearNode = function (node) {\\n  for (var _iterator4 = CLEAR_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n    var _ref4;\\n\\n    if (_isArray4) {\\n      if (_i4 >= _iterator4.length) break;\\n      _ref4 = _iterator4[_i4++];\\n    } else {\\n      _i4 = _iterator4.next();\\n      if (_i4.done) break;\\n      _ref4 = _i4.value;\\n    }\\n\\n    var key = _ref4;\\n\\n    if (node[key] != null) node[key] = undefined;\\n  }\\n\\n  for (var key in node) {\\n    if (key[0] === \\"_\\" && node[key] != null) node[key] = undefined;\\n  }\\n\\n  var syms /*: Array<Symbol>*/ = _Object$getOwnPropertySymbols(node);\\n  for (var _iterator5 = syms, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n    var _ref5;\\n\\n    if (_isArray5) {\\n      if (_i5 >= _iterator5.length) break;\\n      _ref5 = _iterator5[_i5++];\\n    } else {\\n      _i5 = _iterator5.next();\\n      if (_i5.done) break;\\n      _ref5 = _i5.value;\\n    }\\n\\n    var sym = _ref5;\\n\\n    node[sym] = null;\\n  }\\n};\\n\\ntraverse.removeProperties = function (tree) {\\n  traverse.cheap(tree, traverse.clearNode);\\n  return tree;\\n};\\n\\nfunction hasBlacklistedType(path, state) {\\n  if (path.node.type === state.type) {\\n    state.has = true;\\n    path.skip();\\n  }\\n}\\n\\ntraverse.hasType = function (tree /*: Object*/, scope /*: Object*/, type /*: Object*/, blacklistTypes /*: Array<string>*/) /*: boolean*/ {\\n  // the node we\'re searching in is blacklisted\\n  if (_lodashCollectionIncludes2[\\"default\\"](blacklistTypes, tree.type)) return false;\\n\\n  // the type we\'re looking for is the same as the passed node\\n  if (tree.type === type) return true;\\n\\n  var state = {\\n    has: false,\\n    type: type\\n  };\\n\\n  traverse(tree, {\\n    blacklist: blacklistTypes,\\n    enter: hasBlacklistedType\\n  }, scope, state);\\n\\n  return state.has;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/index.js\\n ** module id = 201\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/get-own-property-symbols\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/get-own-property-symbols.js\\n ** module id = 202\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.symbol\');\\nmodule.exports = require(\'../../modules/$.core\').Object.getOwnPropertySymbols;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-symbols.js\\n ** module id = 203\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj[\\"default\\"] : obj;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-require.js\\n ** module id = 204\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _path = require(\\"./path\\");\\n\\nvar _path2 = _interopRequireDefault(_path);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar testing = process.env.NODE_ENV === \\"test\\";\\n\\nvar TraversalContext = (function () {\\n  function TraversalContext(scope, opts, state, parentPath) {\\n    _classCallCheck(this, TraversalContext);\\n\\n    this.parentPath = parentPath;\\n    this.scope = scope;\\n    this.state = state;\\n    this.opts = opts;\\n  }\\n\\n  /**\\n   * This method does a simple check to determine whether or not we really need to attempt\\n   * visit a node. This will prevent us from constructing a NodePath.\\n   */\\n\\n  TraversalContext.prototype.shouldVisit = function shouldVisit(node) /*: boolean*/ {\\n    var opts = this.opts;\\n    if (opts.enter || opts.exit) return true;\\n\\n    // check if we have a visitor for this node\\n    if (opts[node.type]) return true;\\n\\n    // check if we\'re going to traverse into this node\\n    var keys /*: ?Array<string>*/ = t.VISITOR_KEYS[node.type];\\n    if (!keys || !keys.length) return false;\\n\\n    // we need to traverse into this node so ensure that it has children to traverse into!\\n    for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var key = _ref;\\n\\n      if (node[key]) return true;\\n    }\\n\\n    return false;\\n  };\\n\\n  TraversalContext.prototype.create = function create(node, obj, key, listKey) /*: NodePath*/ {\\n    return _path2[\\"default\\"].get({\\n      parentPath: this.parentPath,\\n      parent: node,\\n      container: obj,\\n      key: key,\\n      listKey: listKey\\n    });\\n  };\\n\\n  TraversalContext.prototype.maybeQueue = function maybeQueue(path, notPriority /*:: ?: boolean*/) {\\n    if (this.trap) {\\n      throw new Error(\\"Infinite cycle detected\\");\\n    }\\n\\n    if (this.queue) {\\n      if (notPriority) {\\n        this.queue.push(path);\\n      } else {\\n        this.priorityQueue.push(path);\\n      }\\n    }\\n  };\\n\\n  TraversalContext.prototype.visitMultiple = function visitMultiple(container, parent, listKey) {\\n    // nothing to traverse!\\n    if (container.length === 0) return false;\\n\\n    var queue = [];\\n\\n    // build up initial queue\\n    for (var key = 0; key < container.length; key++) {\\n      var node = container[key];\\n      if (node && this.shouldVisit(node)) {\\n        queue.push(this.create(parent, container, key, listKey));\\n      }\\n    }\\n\\n    return this.visitQueue(queue);\\n  };\\n\\n  TraversalContext.prototype.visitSingle = function visitSingle(node, key) /*: boolean*/ {\\n    if (this.shouldVisit(node[key])) {\\n      return this.visitQueue([this.create(node, node, key)]);\\n    } else {\\n      return false;\\n    }\\n  };\\n\\n  TraversalContext.prototype.visitQueue = function visitQueue(queue /*: Array<NodePath>*/) {\\n    // set queue\\n    this.queue = queue;\\n    this.priorityQueue = [];\\n\\n    var visited = [];\\n    var stop = false;\\n\\n    // visit the queue\\n    for (var _iterator2 = queue, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var path = _ref2;\\n\\n      path.resync();\\n      path.pushContext(this);\\n\\n      // this path no longer belongs to the tree\\n      if (path.key === null) continue;\\n\\n      if (testing && queue.length >= 1000) {\\n        this.trap = true;\\n      }\\n\\n      // ensure we don\'t visit the same node twice\\n      if (visited.indexOf(path.node) >= 0) continue;\\n      visited.push(path.node);\\n\\n      if (path.visit()) {\\n        stop = true;\\n        break;\\n      }\\n\\n      if (this.priorityQueue.length) {\\n        stop = this.visitQueue(this.priorityQueue);\\n        this.priorityQueue = [];\\n        this.queue = queue;\\n        if (stop) break;\\n      }\\n    }\\n\\n    // clear queue\\n    for (var _iterator3 = queue, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n      var _ref3;\\n\\n      if (_isArray3) {\\n        if (_i3 >= _iterator3.length) break;\\n        _ref3 = _iterator3[_i3++];\\n      } else {\\n        _i3 = _iterator3.next();\\n        if (_i3.done) break;\\n        _ref3 = _i3.value;\\n      }\\n\\n      var path = _ref3;\\n\\n      path.popContext();\\n    }\\n\\n    // clear queue\\n    this.queue = null;\\n\\n    return stop;\\n  };\\n\\n  TraversalContext.prototype.visit = function visit(node, key) {\\n    var nodes = node[key];\\n    if (!nodes) return false;\\n\\n    if (Array.isArray(nodes)) {\\n      return this.visitMultiple(nodes, node, key);\\n    } else {\\n      return this.visitSingle(node, key);\\n    }\\n  };\\n\\n  return TraversalContext;\\n})();\\n\\nexports[\\"default\\"] = TraversalContext;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/context.js\\n ** module id = 205\\n ** module chunks = 0\\n **/","// shim for using process in browser\\n\\nvar process = module.exports = {};\\nvar queue = [];\\nvar draining = false;\\nvar currentQueue;\\nvar queueIndex = -1;\\n\\nfunction cleanUpNextTick() {\\n    draining = false;\\n    if (currentQueue.length) {\\n        queue = currentQueue.concat(queue);\\n    } else {\\n        queueIndex = -1;\\n    }\\n    if (queue.length) {\\n        drainQueue();\\n    }\\n}\\n\\nfunction drainQueue() {\\n    if (draining) {\\n        return;\\n    }\\n    var timeout = setTimeout(cleanUpNextTick);\\n    draining = true;\\n\\n    var len = queue.length;\\n    while(len) {\\n        currentQueue = queue;\\n        queue = [];\\n        while (++queueIndex < len) {\\n            if (currentQueue) {\\n                currentQueue[queueIndex].run();\\n            }\\n        }\\n        queueIndex = -1;\\n        len = queue.length;\\n    }\\n    currentQueue = null;\\n    draining = false;\\n    clearTimeout(timeout);\\n}\\n\\nprocess.nextTick = function (fun) {\\n    var args = new Array(arguments.length - 1);\\n    if (arguments.length > 1) {\\n        for (var i = 1; i < arguments.length; i++) {\\n            args[i - 1] = arguments[i];\\n        }\\n    }\\n    queue.push(new Item(fun, args));\\n    if (queue.length === 1 && !draining) {\\n        setTimeout(drainQueue, 0);\\n    }\\n};\\n\\n// v8 likes predictible objects\\nfunction Item(fun, array) {\\n    this.fun = fun;\\n    this.array = array;\\n}\\nItem.prototype.run = function () {\\n    this.fun.apply(null, this.array);\\n};\\nprocess.title = \'browser\';\\nprocess.browser = true;\\nprocess.env = {};\\nprocess.argv = [];\\nprocess.version = \'\'; // empty string to avoid regexp issues\\nprocess.versions = {};\\n\\nfunction noop() {}\\n\\nprocess.on = noop;\\nprocess.addListener = noop;\\nprocess.once = noop;\\nprocess.off = noop;\\nprocess.removeListener = noop;\\nprocess.removeAllListeners = noop;\\nprocess.emit = noop;\\n\\nprocess.binding = function (name) {\\n    throw new Error(\'process.binding is not supported\');\\n};\\n\\nprocess.cwd = function () { return \'/\' };\\nprocess.chdir = function (dir) {\\n    throw new Error(\'process.chdir is not supported\');\\n};\\nprocess.umask = function() { return 0; };\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/process/browser.js\\n ** module id = 206\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/class-call-check.js\\n ** module id = 207\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _libVirtualTypes = require(\\"./lib/virtual-types\\");\\n\\nvar virtualTypes = _interopRequireWildcard(_libVirtualTypes);\\n\\nvar _debug2 = require(\\"debug\\");\\n\\nvar _debug3 = _interopRequireDefault(_debug2);\\n\\nvar _constants = require(\\"./constants\\");\\n\\nvar _invariant = require(\\"invariant\\");\\n\\nvar _invariant2 = _interopRequireDefault(_invariant);\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _lodashObjectAssign = require(\\"lodash/object/assign\\");\\n\\nvar _lodashObjectAssign2 = _interopRequireDefault(_lodashObjectAssign);\\n\\nvar _scope = require(\\"../scope\\");\\n\\nvar _scope2 = _interopRequireDefault(_scope);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type Hub from \\"../hub\\";*/\\n/*:: import type TraversalContext from \\"../context\\";*/\\n\\nvar _debug = _debug3[\\"default\\"](\\"babel\\");\\n\\nvar NodePath = (function () {\\n  function NodePath(hub /*: Hub*/, parent /*: Object*/) {\\n    _classCallCheck(this, NodePath);\\n\\n    this.parent = parent;\\n    this.hub = hub;\\n    this.contexts = [];\\n    this.data = {};\\n    this.shouldSkip = false;\\n    this.shouldStop = false;\\n    this.removed = false;\\n    this.state = null;\\n    this.opts = null;\\n    this.skipKeys = null;\\n    this.parentPath = null;\\n    this.context = null;\\n    this.container = null;\\n    this.listKey = null;\\n    this.inList = false;\\n    this.parentKey = null;\\n    this.key = null;\\n    this.node = null;\\n    this.scope = null;\\n    this.type = null;\\n    this.typeAnnotation = null;\\n  }\\n\\n  NodePath.get = function get(_ref2) /*: NodePath*/ {\\n    var hub = _ref2.hub;\\n    var parentPath = _ref2.parentPath;\\n    var parent = _ref2.parent;\\n    var container = _ref2.container;\\n    var listKey = _ref2.listKey;\\n    var key = _ref2.key;\\n\\n    if (!hub && parentPath) {\\n      hub = parentPath.hub;\\n    }\\n\\n    _invariant2[\\"default\\"](parent, \\"To get a node path the parent needs to exist\\");\\n\\n    var targetNode = container[key];\\n\\n    var paths = parent[_constants.PATH_CACHE_KEY] = parent[_constants.PATH_CACHE_KEY] || [];\\n    var path = undefined;\\n\\n    for (var i = 0; i < paths.length; i++) {\\n      var pathCheck = paths[i];\\n      if (pathCheck.node === targetNode) {\\n        path = pathCheck;\\n        break;\\n      }\\n    }\\n\\n    if (path && !(path instanceof NodePath)) {\\n      if (path.constructor.name === \\"NodePath\\") {\\n        // we\'re going to absolutley thrash the tree and allocate way too many node paths\\n        // than is necessary but there\'s no way around this as the node module resolution\\n        // algorithm is ridiculous\\n        path = null;\\n      } else {\\n        // badly deserialised probably\\n        throw new Error(\\"We found a path that isn\'t a NodePath instance. Possiblly due to bad serialisation.\\");\\n      }\\n    }\\n\\n    if (!path) {\\n      path = new NodePath(hub, parent);\\n      paths.push(path);\\n    }\\n\\n    path.setup(parentPath, container, listKey, key);\\n\\n    return path;\\n  };\\n\\n  NodePath.prototype.getScope = function getScope(scope /*: Scope*/) {\\n    var ourScope = scope;\\n\\n    // we\'re entering a new scope so let\'s construct it!\\n    if (this.isScope()) {\\n      ourScope = new _scope2[\\"default\\"](this, scope);\\n    }\\n\\n    return ourScope;\\n  };\\n\\n  NodePath.prototype.setData = function setData(key /*: string*/, val /*: any*/) /*: any*/ {\\n    return this.data[key] = val;\\n  };\\n\\n  NodePath.prototype.getData = function getData(key /*: string*/, def /*:: ?: any*/) /*: any*/ {\\n    var val = this.data[key];\\n    if (!val && def) val = this.data[key] = def;\\n    return val;\\n  };\\n\\n  NodePath.prototype.buildCodeFrameError = function buildCodeFrameError(msg /*: string*/) /*: Error*/ {\\n    var Error /*: typeof Error*/ = arguments.length <= 1 || arguments[1] === undefined ? SyntaxError : arguments[1];\\n\\n    return this.hub.file.buildCodeFrameError(this.node, msg, Error);\\n  };\\n\\n  NodePath.prototype.traverse = function traverse(visitor /*: Object*/, state /*:: ?: any*/) {\\n    _index2[\\"default\\"](this.node, visitor, this.scope, state, this);\\n  };\\n\\n  NodePath.prototype.mark = function mark(type /*: string*/, message /*: string*/) {\\n    this.hub.file.metadata.marked.push({\\n      type: type,\\n      message: message,\\n      loc: this.node.loc\\n    });\\n  };\\n\\n  NodePath.prototype.set = function set(key /*: string*/, node /*: Object*/) {\\n    t.validate(this.node, key, node);\\n    this.node[key] = node;\\n  };\\n\\n  NodePath.prototype.getPathLocation = function getPathLocation() /*: string*/ {\\n    var parts = [];\\n    var path = this;\\n    do {\\n      var key = path.key;\\n      if (path.inList) key = path.listKey + \\"[\\" + key + \\"]\\";\\n      parts.unshift(key);\\n    } while (path = path.parentPath);\\n    return parts.join(\\".\\");\\n  };\\n\\n  NodePath.prototype.debug = function debug(buildMessage /*: Function*/) {\\n    if (!_debug.enabled) return;\\n    _debug(this.getPathLocation() + \\" \\" + this.type + \\": \\" + buildMessage());\\n  };\\n\\n  return NodePath;\\n})();\\n\\nexports[\\"default\\"] = NodePath;\\n\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./ancestry\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./inference\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./replacement\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./evaluation\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./conversion\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./introspection\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./context\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./removal\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./modification\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./family\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./comments\\"));\\n\\nvar _loop = function () {\\n  if (_isArray) {\\n    if (_i >= _iterator.length) return \\"break\\";\\n    _ref = _iterator[_i++];\\n  } else {\\n    _i = _iterator.next();\\n    if (_i.done) return \\"break\\";\\n    _ref = _i.value;\\n  }\\n\\n  var type = _ref;\\n\\n  var typeKey = \\"is\\" + type;\\n  NodePath.prototype[typeKey] = function (opts) {\\n    return t[typeKey](this.node, opts);\\n  };\\n\\n  NodePath.prototype[\\"assert\\" + type] = function (opts) {\\n    if (!this[typeKey](opts)) {\\n      throw new TypeError(\\"Expected node path of type \\" + type);\\n    }\\n  };\\n};\\n\\nfor (var _iterator = (t.TYPES /*: Array<string>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n  var _ref;\\n\\n  var _ret = _loop();\\n\\n  // istanbul ignore next\\n  if (_ret === \\"break\\") break;\\n}\\n\\nvar _loop2 = function (type) {\\n  if (type[0] === \\"_\\") return \\"continue\\";\\n  if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type);\\n\\n  var virtualType = virtualTypes[type];\\n\\n  NodePath.prototype[\\"is\\" + type] = function (opts) {\\n    return virtualType.checkPath(this, opts);\\n  };\\n};\\n\\nfor (var type in virtualTypes) {\\n  var _ret2 = _loop2(type);\\n\\n  // istanbul ignore next\\n  if (_ret2 === \\"continue\\") continue;\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/index.js\\n ** module id = 208\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type NodePath from \\"../index\\";*/var ReferencedIdentifier = {\\n  types: [\\"Identifier\\", \\"JSXIdentifier\\"],\\n  checkPath: function checkPath(_ref /*: NodePath*/, opts /*:: ?: Object*/) /*: boolean*/ {\\n    var node = _ref.node;\\n    var parent = _ref.parent;\\n\\n    if (!t.isIdentifier(node, opts)) {\\n      if (t.isJSXIdentifier(node, opts)) {\\n        if (_babelTypes.react.isCompatTag(node.name)) return false;\\n      } else {\\n        // not a JSXIdentifier or an Identifier\\n        return false;\\n      }\\n    }\\n\\n    // check if node is referenced\\n    return t.isReferenced(node, parent);\\n  }\\n};\\n\\nexports.ReferencedIdentifier = ReferencedIdentifier;\\nvar ReferencedMemberExpression = {\\n  types: [\\"MemberExpression\\"],\\n  checkPath: function checkPath(_ref2) {\\n    var node = _ref2.node;\\n    var parent = _ref2.parent;\\n\\n    return t.isMemberExpression(node) && t.isReferenced(node, parent);\\n  }\\n};\\n\\nexports.ReferencedMemberExpression = ReferencedMemberExpression;\\nvar BindingIdentifier = {\\n  types: [\\"Identifier\\"],\\n  checkPath: function checkPath(_ref3 /*: NodePath*/) /*: boolean*/ {\\n    var node = _ref3.node;\\n    var parent = _ref3.parent;\\n\\n    return t.isIdentifier(node) && t.isBinding(node, parent);\\n  }\\n};\\n\\nexports.BindingIdentifier = BindingIdentifier;\\nvar Statement = {\\n  types: [\\"Statement\\"],\\n  checkPath: function checkPath(_ref4 /*: NodePath*/) /*: boolean*/ {\\n    var node = _ref4.node;\\n    var parent = _ref4.parent;\\n\\n    if (t.isStatement(node)) {\\n      if (t.isVariableDeclaration(node)) {\\n        if (t.isForXStatement(parent, { left: node })) return false;\\n        if (t.isForStatement(parent, { init: node })) return false;\\n      }\\n\\n      return true;\\n    } else {\\n      return false;\\n    }\\n  }\\n};\\n\\nexports.Statement = Statement;\\nvar Expression = {\\n  types: [\\"Expression\\"],\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    if (path.isIdentifier()) {\\n      return path.isReferencedIdentifier();\\n    } else {\\n      return t.isExpression(path.node);\\n    }\\n  }\\n};\\n\\nexports.Expression = Expression;\\nvar Scope = {\\n  types: [\\"Scopable\\"],\\n  checkPath: function checkPath(path) {\\n    return t.isScope(path.node, path.parent);\\n  }\\n};\\n\\nexports.Scope = Scope;\\nvar Referenced = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return t.isReferenced(path.node, path.parent);\\n  }\\n};\\n\\nexports.Referenced = Referenced;\\nvar BlockScoped = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return t.isBlockScoped(path.node);\\n  }\\n};\\n\\nexports.BlockScoped = BlockScoped;\\nvar Var = {\\n  types: [\\"VariableDeclaration\\"],\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return t.isVar(path.node);\\n  }\\n};\\n\\nexports.Var = Var;\\nvar User = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return path.node && !!path.node.loc;\\n  }\\n};\\n\\nexports.User = User;\\nvar Generated = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return !path.isUser();\\n  }\\n};\\n\\nexports.Generated = Generated;\\nvar Pure = {\\n  checkPath: function checkPath(path /*: NodePath*/, opts /*:: ?*/) /*: boolean*/ {\\n    return path.scope.isPure(path.node, opts);\\n  }\\n};\\n\\nexports.Pure = Pure;\\nvar Flow = {\\n  types: [\\"Flow\\", \\"ImportDeclaration\\", \\"ExportDeclaration\\"],\\n  checkPath: function checkPath(_ref5 /*: NodePath*/) /*: boolean*/ {\\n    var node = _ref5.node;\\n\\n    if (t.isFlow(node)) {\\n      return true;\\n    } else if (t.isImportDeclaration(node)) {\\n      return node.importKind === \\"type\\" || node.importKind === \\"typeof\\";\\n    } else if (t.isExportDeclaration(node)) {\\n      return node.exportKind === \\"type\\";\\n    } else {\\n      return false;\\n    }\\n  }\\n};\\nexports.Flow = Flow;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/lib/virtual-types.js\\n ** module id = 209\\n ** module chunks = 0\\n **/","\\n/**\\n * This is the web browser implementation of `debug()`.\\n *\\n * Expose `debug()` as the module.\\n */\\n\\nexports = module.exports = require(\'./debug\');\\nexports.log = log;\\nexports.formatArgs = formatArgs;\\nexports.save = save;\\nexports.load = load;\\nexports.useColors = useColors;\\nexports.storage = \'undefined\' != typeof chrome\\n               && \'undefined\' != typeof chrome.storage\\n                  ? chrome.storage.local\\n                  : localstorage();\\n\\n/**\\n * Colors.\\n */\\n\\nexports.colors = [\\n  \'lightseagreen\',\\n  \'forestgreen\',\\n  \'goldenrod\',\\n  \'dodgerblue\',\\n  \'darkorchid\',\\n  \'crimson\'\\n];\\n\\n/**\\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\\n * and the Firebug extension (any Firefox version) are known\\n * to support \\"%c\\" CSS customizations.\\n *\\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\\n */\\n\\nfunction useColors() {\\n  // is webkit? http://stackoverflow.com/a/16459606/376773\\n  return (\'WebkitAppearance\' in document.documentElement.style) ||\\n    // is firebug? http://stackoverflow.com/a/398120/376773\\n    (window.console && (console.firebug || (console.exception && console.table))) ||\\n    // is firefox >= v31?\\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\\n    (navigator.userAgent.toLowerCase().match(/firefox\\\\/(\\\\d+)/) && parseInt(RegExp.$1, 10) >= 31);\\n}\\n\\n/**\\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\\n */\\n\\nexports.formatters.j = function(v) {\\n  return JSON.stringify(v);\\n};\\n\\n\\n/**\\n * Colorize log arguments if enabled.\\n *\\n * @api public\\n */\\n\\nfunction formatArgs() {\\n  var args = arguments;\\n  var useColors = this.useColors;\\n\\n  args[0] = (useColors ? \'%c\' : \'\')\\n    + this.namespace\\n    + (useColors ? \' %c\' : \' \')\\n    + args[0]\\n    + (useColors ? \'%c \' : \' \')\\n    + \'+\' + exports.humanize(this.diff);\\n\\n  if (!useColors) return args;\\n\\n  var c = \'color: \' + this.color;\\n  args = [args[0], c, \'color: inherit\'].concat(Array.prototype.slice.call(args, 1));\\n\\n  // the final \\"%c\\" is somewhat tricky, because there could be other\\n  // arguments passed either before or after the %c, so we need to\\n  // figure out the correct index to insert the CSS into\\n  var index = 0;\\n  var lastC = 0;\\n  args[0].replace(/%[a-z%]/g, function(match) {\\n    if (\'%%\' === match) return;\\n    index++;\\n    if (\'%c\' === match) {\\n      // we only are interested in the *last* %c\\n      // (the user may have provided their own)\\n      lastC = index;\\n    }\\n  });\\n\\n  args.splice(lastC, 0, c);\\n  return args;\\n}\\n\\n/**\\n * Invokes `console.log()` when available.\\n * No-op when `console.log` is not a \\"function\\".\\n *\\n * @api public\\n */\\n\\nfunction log() {\\n  // this hackery is required for IE8/9, where\\n  // the `console.log` function doesn\'t have \'apply\'\\n  return \'object\' === typeof console\\n    && console.log\\n    && Function.prototype.apply.call(console.log, console, arguments);\\n}\\n\\n/**\\n * Save `namespaces`.\\n *\\n * @param {String} namespaces\\n * @api private\\n */\\n\\nfunction save(namespaces) {\\n  try {\\n    if (null == namespaces) {\\n      exports.storage.removeItem(\'debug\');\\n    } else {\\n      exports.storage.debug = namespaces;\\n    }\\n  } catch(e) {}\\n}\\n\\n/**\\n * Load `namespaces`.\\n *\\n * @return {String} returns the previously persisted debug modes\\n * @api private\\n */\\n\\nfunction load() {\\n  var r;\\n  try {\\n    r = exports.storage.debug;\\n  } catch(e) {}\\n  return r;\\n}\\n\\n/**\\n * Enable namespaces listed in `localStorage.debug` initially.\\n */\\n\\nexports.enable(load());\\n\\n/**\\n * Localstorage attempts to return the localstorage.\\n *\\n * This is necessary because safari throws\\n * when a user disables cookies/localstorage\\n * and you attempt to access it.\\n *\\n * @return {LocalStorage}\\n * @api private\\n */\\n\\nfunction localstorage(){\\n  try {\\n    return window.localStorage;\\n  } catch (e) {}\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/debug/browser.js\\n ** module id = 210\\n ** module chunks = 0\\n **/","\\n/**\\n * This is the common logic for both the Node.js and web browser\\n * implementations of `debug()`.\\n *\\n * Expose `debug()` as the module.\\n */\\n\\nexports = module.exports = debug;\\nexports.coerce = coerce;\\nexports.disable = disable;\\nexports.enable = enable;\\nexports.enabled = enabled;\\nexports.humanize = require(\'ms\');\\n\\n/**\\n * The currently active debug mode names, and names to skip.\\n */\\n\\nexports.names = [];\\nexports.skips = [];\\n\\n/**\\n * Map of special \\"%n\\" handling functions, for the debug \\"format\\" argument.\\n *\\n * Valid key names are a single, lowercased letter, i.e. \\"n\\".\\n */\\n\\nexports.formatters = {};\\n\\n/**\\n * Previously assigned color.\\n */\\n\\nvar prevColor = 0;\\n\\n/**\\n * Previous log timestamp.\\n */\\n\\nvar prevTime;\\n\\n/**\\n * Select a color.\\n *\\n * @return {Number}\\n * @api private\\n */\\n\\nfunction selectColor() {\\n  return exports.colors[prevColor++ % exports.colors.length];\\n}\\n\\n/**\\n * Create a debugger with the given `namespace`.\\n *\\n * @param {String} namespace\\n * @return {Function}\\n * @api public\\n */\\n\\nfunction debug(namespace) {\\n\\n  // define the `disabled` version\\n  function disabled() {\\n  }\\n  disabled.enabled = false;\\n\\n  // define the `enabled` version\\n  function enabled() {\\n\\n    var self = enabled;\\n\\n    // set `diff` timestamp\\n    var curr = +new Date();\\n    var ms = curr - (prevTime || curr);\\n    self.diff = ms;\\n    self.prev = prevTime;\\n    self.curr = curr;\\n    prevTime = curr;\\n\\n    // add the `color` if not set\\n    if (null == self.useColors) self.useColors = exports.useColors();\\n    if (null == self.color && self.useColors) self.color = selectColor();\\n\\n    var args = Array.prototype.slice.call(arguments);\\n\\n    args[0] = exports.coerce(args[0]);\\n\\n    if (\'string\' !== typeof args[0]) {\\n      // anything else let\'s inspect with %o\\n      args = [\'%o\'].concat(args);\\n    }\\n\\n    // apply any `formatters` transformations\\n    var index = 0;\\n    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {\\n      // if we encounter an escaped % then don\'t increase the array index\\n      if (match === \'%%\') return match;\\n      index++;\\n      var formatter = exports.formatters[format];\\n      if (\'function\' === typeof formatter) {\\n        var val = args[index];\\n        match = formatter.call(self, val);\\n\\n        // now we need to remove `args[index]` since it\'s inlined in the `format`\\n        args.splice(index, 1);\\n        index--;\\n      }\\n      return match;\\n    });\\n\\n    if (\'function\' === typeof exports.formatArgs) {\\n      args = exports.formatArgs.apply(self, args);\\n    }\\n    var logFn = enabled.log || exports.log || console.log.bind(console);\\n    logFn.apply(self, args);\\n  }\\n  enabled.enabled = true;\\n\\n  var fn = exports.enabled(namespace) ? enabled : disabled;\\n\\n  fn.namespace = namespace;\\n\\n  return fn;\\n}\\n\\n/**\\n * Enables a debug mode by namespaces. This can include modes\\n * separated by a colon and wildcards.\\n *\\n * @param {String} namespaces\\n * @api public\\n */\\n\\nfunction enable(namespaces) {\\n  exports.save(namespaces);\\n\\n  var split = (namespaces || \'\').split(/[\\\\s,]+/);\\n  var len = split.length;\\n\\n  for (var i = 0; i < len; i++) {\\n    if (!split[i]) continue; // ignore empty strings\\n    namespaces = split[i].replace(/\\\\*/g, \'.*?\');\\n    if (namespaces[0] === \'-\') {\\n      exports.skips.push(new RegExp(\'^\' + namespaces.substr(1) + \'$\'));\\n    } else {\\n      exports.names.push(new RegExp(\'^\' + namespaces + \'$\'));\\n    }\\n  }\\n}\\n\\n/**\\n * Disable debug output.\\n *\\n * @api public\\n */\\n\\nfunction disable() {\\n  exports.enable(\'\');\\n}\\n\\n/**\\n * Returns true if the given mode name is enabled, false otherwise.\\n *\\n * @param {String} name\\n * @return {Boolean}\\n * @api public\\n */\\n\\nfunction enabled(name) {\\n  var i, len;\\n  for (i = 0, len = exports.skips.length; i < len; i++) {\\n    if (exports.skips[i].test(name)) {\\n      return false;\\n    }\\n  }\\n  for (i = 0, len = exports.names.length; i < len; i++) {\\n    if (exports.names[i].test(name)) {\\n      return true;\\n    }\\n  }\\n  return false;\\n}\\n\\n/**\\n * Coerce `val`.\\n *\\n * @param {Mixed} val\\n * @return {Mixed}\\n * @api private\\n */\\n\\nfunction coerce(val) {\\n  if (val instanceof Error) return val.stack || val.message;\\n  return val;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/debug/debug.js\\n ** module id = 211\\n ** module chunks = 0\\n **/","/**\\n * Helpers.\\n */\\n\\nvar s = 1000;\\nvar m = s * 60;\\nvar h = m * 60;\\nvar d = h * 24;\\nvar y = d * 365.25;\\n\\n/**\\n * Parse or format the given `val`.\\n *\\n * Options:\\n *\\n *  - `long` verbose formatting [false]\\n *\\n * @param {String|Number} val\\n * @param {Object} options\\n * @return {String|Number}\\n * @api public\\n */\\n\\nmodule.exports = function(val, options){\\n  options = options || {};\\n  if (\'string\' == typeof val) return parse(val);\\n  return options.long\\n    ? long(val)\\n    : short(val);\\n};\\n\\n/**\\n * Parse the given `str` and return milliseconds.\\n *\\n * @param {String} str\\n * @return {Number}\\n * @api private\\n */\\n\\nfunction parse(str) {\\n  str = \'\' + str;\\n  if (str.length > 10000) return;\\n  var match = /^((?:\\\\d+)?\\\\.?\\\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\\n  if (!match) return;\\n  var n = parseFloat(match[1]);\\n  var type = (match[2] || \'ms\').toLowerCase();\\n  switch (type) {\\n    case \'years\':\\n    case \'year\':\\n    case \'yrs\':\\n    case \'yr\':\\n    case \'y\':\\n      return n * y;\\n    case \'days\':\\n    case \'day\':\\n    case \'d\':\\n      return n * d;\\n    case \'hours\':\\n    case \'hour\':\\n    case \'hrs\':\\n    case \'hr\':\\n    case \'h\':\\n      return n * h;\\n    case \'minutes\':\\n    case \'minute\':\\n    case \'mins\':\\n    case \'min\':\\n    case \'m\':\\n      return n * m;\\n    case \'seconds\':\\n    case \'second\':\\n    case \'secs\':\\n    case \'sec\':\\n    case \'s\':\\n      return n * s;\\n    case \'milliseconds\':\\n    case \'millisecond\':\\n    case \'msecs\':\\n    case \'msec\':\\n    case \'ms\':\\n      return n;\\n  }\\n}\\n\\n/**\\n * Short format for `ms`.\\n *\\n * @param {Number} ms\\n * @return {String}\\n * @api private\\n */\\n\\nfunction short(ms) {\\n  if (ms >= d) return Math.round(ms / d) + \'d\';\\n  if (ms >= h) return Math.round(ms / h) + \'h\';\\n  if (ms >= m) return Math.round(ms / m) + \'m\';\\n  if (ms >= s) return Math.round(ms / s) + \'s\';\\n  return ms + \'ms\';\\n}\\n\\n/**\\n * Long format for `ms`.\\n *\\n * @param {Number} ms\\n * @return {String}\\n * @api private\\n */\\n\\nfunction long(ms) {\\n  return plural(ms, d, \'day\')\\n    || plural(ms, h, \'hour\')\\n    || plural(ms, m, \'minute\')\\n    || plural(ms, s, \'second\')\\n    || ms + \' ms\';\\n}\\n\\n/**\\n * Pluralization helper.\\n */\\n\\nfunction plural(ms, n, name) {\\n  if (ms < n) return;\\n  if (ms < n * 1.5) return Math.floor(ms / n) + \' \' + name;\\n  return Math.ceil(ms / n) + \' \' + name + \'s\';\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/debug/~/ms/index.js\\n ** module id = 212\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports.__esModule = true;\\nvar PATH_CACHE_KEY = \\"_paths\\";exports.PATH_CACHE_KEY = PATH_CACHE_KEY;\\n//Symbol();\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/constants.js\\n ** module id = 213\\n ** module chunks = 0\\n **/","/**\\n * Copyright 2013-2015, Facebook, Inc.\\n * All rights reserved.\\n *\\n * This source code is licensed under the BSD-style license found in the\\n * LICENSE file in the root directory of this source tree. An additional grant\\n * of patent rights can be found in the PATENTS file in the same directory.\\n */\\n\\n\'use strict\';\\n\\n/**\\n * Use invariant() to assert state which your program assumes to be true.\\n *\\n * Provide sprintf-style format (only %s is supported) and arguments\\n * to provide information about what broke and what you were\\n * expecting.\\n *\\n * The invariant message will be stripped in production, but the invariant\\n * will remain to ensure logic does not differ in production.\\n */\\n\\nvar invariant = function(condition, format, a, b, c, d, e, f) {\\n  if (process.env.NODE_ENV !== \'production\') {\\n    if (format === undefined) {\\n      throw new Error(\'invariant requires an error message argument\');\\n    }\\n  }\\n\\n  if (!condition) {\\n    var error;\\n    if (format === undefined) {\\n      error = new Error(\\n        \'Minified exception occurred; use the non-minified dev environment \' +\\n        \'for the full error message and additional helpful warnings.\'\\n      );\\n    } else {\\n      var args = [a, b, c, d, e, f];\\n      var argIndex = 0;\\n      error = new Error(\\n        format.replace(/%s/g, function() { return args[argIndex++]; })\\n      );\\n      error.name = \'Invariant Violation\';\\n    }\\n\\n    error.framesToPop = 1; // we don\'t care about invariant\'s own frame\\n    throw error;\\n  }\\n};\\n\\nmodule.exports = invariant;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/invariant/browser.js\\n ** module id = 214\\n ** module chunks = 0\\n **/","var assignWith = require(\'../internal/assignWith\'),\\n    baseAssign = require(\'../internal/baseAssign\'),\\n    createAssigner = require(\'../internal/createAssigner\');\\n\\n/**\\n * Assigns own enumerable properties of source object(s) to the destination\\n * object. Subsequent sources overwrite property assignments of previous sources.\\n * If `customizer` is provided it\'s invoked to produce the assigned values.\\n * The `customizer` is bound to `thisArg` and invoked with five arguments:\\n * (objectValue, sourceValue, key, object, source).\\n *\\n * **Note:** This method mutates `object` and is based on\\n * [`Object.assign`](http://ecma-international.org/ecma-262/6.0/#sec-object.assign).\\n *\\n * @static\\n * @memberOf _\\n * @alias extend\\n * @category Object\\n * @param {Object} object The destination object.\\n * @param {...Object} [sources] The source objects.\\n * @param {Function} [customizer] The function to customize assigned values.\\n * @param {*} [thisArg] The `this` binding of `customizer`.\\n * @returns {Object} Returns `object`.\\n * @example\\n *\\n * _.assign({ \'user\': \'barney\' }, { \'age\': 40 }, { \'user\': \'fred\' });\\n * // => { \'user\': \'fred\', \'age\': 40 }\\n *\\n * // using a customizer callback\\n * var defaults = _.partialRight(_.assign, function(value, other) {\\n *   return _.isUndefined(value) ? other : value;\\n * });\\n *\\n * defaults({ \'user\': \'barney\' }, { \'age\': 36 }, { \'user\': \'fred\' });\\n * // => { \'user\': \'barney\', \'age\': 36 }\\n */\\nvar assign = createAssigner(function(object, source, customizer) {\\n  return customizer\\n    ? assignWith(object, source, customizer)\\n    : baseAssign(object, source);\\n});\\n\\nmodule.exports = assign;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/assign.js\\n ** module id = 215\\n ** module chunks = 0\\n **/","var keys = require(\'../object/keys\');\\n\\n/**\\n * A specialized version of `_.assign` for customizing assigned values without\\n * support for argument juggling, multiple sources, and `this` binding `customizer`\\n * functions.\\n *\\n * @private\\n * @param {Object} object The destination object.\\n * @param {Object} source The source object.\\n * @param {Function} customizer The function to customize assigned values.\\n * @returns {Object} Returns `object`.\\n */\\nfunction assignWith(object, source, customizer) {\\n  var index = -1,\\n      props = keys(source),\\n      length = props.length;\\n\\n  while (++index < length) {\\n    var key = props[index],\\n        value = object[key],\\n        result = customizer(value, source[key], key, object, source);\\n\\n    if ((result === result ? (result !== value) : (value === value)) ||\\n        (value === undefined && !(key in object))) {\\n      object[key] = result;\\n    }\\n  }\\n  return object;\\n}\\n\\nmodule.exports = assignWith;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/assignWith.js\\n ** module id = 216\\n ** module chunks = 0\\n **/","var bindCallback = require(\'./bindCallback\'),\\n    isIterateeCall = require(\'./isIterateeCall\'),\\n    restParam = require(\'../function/restParam\');\\n\\n/**\\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\\n *\\n * @private\\n * @param {Function} assigner The function to assign values.\\n * @returns {Function} Returns the new assigner function.\\n */\\nfunction createAssigner(assigner) {\\n  return restParam(function(object, sources) {\\n    var index = -1,\\n        length = object == null ? 0 : sources.length,\\n        customizer = length > 2 ? sources[length - 2] : undefined,\\n        guard = length > 2 ? sources[2] : undefined,\\n        thisArg = length > 1 ? sources[length - 1] : undefined;\\n\\n    if (typeof customizer == \'function\') {\\n      customizer = bindCallback(customizer, thisArg, 5);\\n      length -= 2;\\n    } else {\\n      customizer = typeof thisArg == \'function\' ? thisArg : undefined;\\n      length -= (customizer ? 1 : 0);\\n    }\\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\\n      customizer = length < 3 ? undefined : customizer;\\n      length = 1;\\n    }\\n    while (++index < length) {\\n      var source = sources[index];\\n      if (source) {\\n        assigner(object, source, customizer);\\n      }\\n    }\\n    return object;\\n  });\\n}\\n\\nmodule.exports = createAssigner;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createAssigner.js\\n ** module id = 217\\n ** module chunks = 0\\n **/","/** Used as the `TypeError` message for \\"Functions\\" methods. */\\nvar FUNC_ERROR_TEXT = \'Expected a function\';\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max;\\n\\n/**\\n * Creates a function that invokes `func` with the `this` binding of the\\n * created function and arguments from `start` and beyond provided as an array.\\n *\\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\\n *\\n * @static\\n * @memberOf _\\n * @category Function\\n * @param {Function} func The function to apply a rest parameter to.\\n * @param {number} [start=func.length-1] The start position of the rest parameter.\\n * @returns {Function} Returns the new function.\\n * @example\\n *\\n * var say = _.restParam(function(what, names) {\\n *   return what + \' \' + _.initial(names).join(\', \') +\\n *     (_.size(names) > 1 ? \', & \' : \'\') + _.last(names);\\n * });\\n *\\n * say(\'hello\', \'fred\', \'barney\', \'pebbles\');\\n * // => \'hello fred, barney, & pebbles\'\\n */\\nfunction restParam(func, start) {\\n  if (typeof func != \'function\') {\\n    throw new TypeError(FUNC_ERROR_TEXT);\\n  }\\n  start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\\n  return function() {\\n    var args = arguments,\\n        index = -1,\\n        length = nativeMax(args.length - start, 0),\\n        rest = Array(length);\\n\\n    while (++index < length) {\\n      rest[index] = args[start + index];\\n    }\\n    switch (start) {\\n      case 0: return func.call(this, rest);\\n      case 1: return func.call(this, args[0], rest);\\n      case 2: return func.call(this, args[0], args[1], rest);\\n    }\\n    var otherArgs = Array(start + 1);\\n    index = -1;\\n    while (++index < start) {\\n      otherArgs[index] = args[index];\\n    }\\n    otherArgs[start] = rest;\\n    return func.apply(this, otherArgs);\\n  };\\n}\\n\\nmodule.exports = restParam;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/function/restParam.js\\n ** module id = 218\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _Symbol = require(\\"babel-runtime/core-js/symbol\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _lodashCollectionIncludes = require(\\"lodash/collection/includes\\");\\n\\nvar _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes);\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _libRenamer = require(\\"./lib/renamer\\");\\n\\nvar _libRenamer2 = _interopRequireDefault(_libRenamer);\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _lodashObjectDefaults = require(\\"lodash/object/defaults\\");\\n\\nvar _lodashObjectDefaults2 = _interopRequireDefault(_lodashObjectDefaults);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _binding = require(\\"./binding\\");\\n\\nvar _binding2 = _interopRequireDefault(_binding);\\n\\nvar _globals = require(\\"globals\\");\\n\\nvar _globals2 = _interopRequireDefault(_globals);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n//\\n\\n/*:: import type NodePath from \\"../path\\";*/var CACHE_SINGLE_KEY = _Symbol();\\nvar CACHE_MULTIPLE_KEY = _Symbol();\\n\\n/**\\n * To avoid creating a new Scope instance for each traversal, we maintain a cache on the\\n * node itself containing all scopes it has been associated with.\\n *\\n * We also optimise for the case of there being only a single scope associated with a node.\\n */\\n\\nfunction getCache(node, parentScope, self) {\\n  var singleCache = node[CACHE_SINGLE_KEY];\\n\\n  if (singleCache) {\\n    // we\'ve only ever associated one scope with this node so let\'s check it\\n    if (matchesParent(singleCache, parentScope)) {\\n      return singleCache;\\n    }\\n  } else if (!node[CACHE_MULTIPLE_KEY]) {\\n    // no scope has ever been associated with this node\\n    node[CACHE_SINGLE_KEY] = self;\\n    return;\\n  }\\n\\n  // looks like we have either a single scope association that was never matched or\\n  // multiple assocations, let\'s find the right one!\\n  return getCacheMultiple(node, parentScope, self, singleCache);\\n}\\n\\nfunction matchesParent(scope, parentScope) {\\n  if (scope.parent === parentScope) {\\n    return true;\\n  }\\n}\\n\\nfunction getCacheMultiple(node, parentScope, self, singleCache) {\\n  var scopes /*: Array<Scope>*/ = node[CACHE_MULTIPLE_KEY] = node[CACHE_MULTIPLE_KEY] || [];\\n\\n  if (singleCache) {\\n    // we have a scope assocation miss so push it onto our scopes\\n    scopes.push(singleCache);\\n    node[CACHE_SINGLE_KEY] = null;\\n  }\\n\\n  // loop through and check each scope to see if it matches our parent\\n  for (var _iterator = scopes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var scope = _ref;\\n\\n    if (matchesParent(scope, parentScope)) return scope;\\n  }\\n\\n  scopes.push(self);\\n}\\n\\n//\\n\\nvar collectorVisitor = {\\n  For: function For(path) {\\n    for (var _iterator2 = (t.FOR_INIT_KEYS /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var key = _ref2;\\n\\n      var declar = path.get(key);\\n      if (declar.isVar()) path.scope.getFunctionParent().registerBinding(\\"var\\", declar);\\n    }\\n  },\\n\\n  Declaration: function Declaration(path) {\\n    // delegate block scope handling to the `blockVariableVisitor`\\n    if (path.isBlockScoped()) return;\\n\\n    // this will be hit again once we traverse into it after this iteration\\n    if (path.isExportDeclaration() && path.get(\\"declaration\\").isDeclaration()) return;\\n\\n    // we\'ve ran into a declaration!\\n    path.scope.getFunctionParent().registerDeclaration(path);\\n  },\\n\\n  ReferencedIdentifier: function ReferencedIdentifier(path, state) {\\n    state.references.push(path);\\n  },\\n\\n  ForXStatement: function ForXStatement(path, state) {\\n    var left = path.get(\\"left\\");\\n    if (left.isPattern() || left.isIdentifier()) {\\n      state.constantViolations.push(left);\\n    }\\n  },\\n\\n  ExportDeclaration: {\\n    exit: function exit(_ref20) {\\n      var node = _ref20.node;\\n      var scope = _ref20.scope;\\n\\n      var declar = node.declaration;\\n      if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) {\\n        var _id = declar.id;\\n        if (!_id) return;\\n\\n        var binding = scope.getBinding(_id.name);\\n        if (binding) binding.reference();\\n      } else if (t.isVariableDeclaration(declar)) {\\n        for (var _iterator3 = (declar.declarations /*: Array<Object>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n          var _ref3;\\n\\n          if (_isArray3) {\\n            if (_i3 >= _iterator3.length) break;\\n            _ref3 = _iterator3[_i3++];\\n          } else {\\n            _i3 = _iterator3.next();\\n            if (_i3.done) break;\\n            _ref3 = _i3.value;\\n          }\\n\\n          var decl = _ref3;\\n\\n          var ids = t.getBindingIdentifiers(decl);\\n          for (var _name in ids) {\\n            var binding = scope.getBinding(_name);\\n            if (binding) binding.reference();\\n          }\\n        }\\n      }\\n    }\\n  },\\n\\n  LabeledStatement: function LabeledStatement(path) {\\n    path.scope.getProgramParent().addGlobal(path.node);\\n    path.scope.getBlockParent().registerDeclaration(path);\\n  },\\n\\n  AssignmentExpression: function AssignmentExpression(path, state) {\\n    state.assignments.push(path);\\n  },\\n\\n  UpdateExpression: function UpdateExpression(path, state) {\\n    state.constantViolations.push(path.get(\\"argument\\"));\\n  },\\n\\n  UnaryExpression: function UnaryExpression(path, state) {\\n    if (path.node.operator === \\"delete\\") {\\n      state.constantViolations.push(path.get(\\"argument\\"));\\n    }\\n  },\\n\\n  BlockScoped: function BlockScoped(path) {\\n    var scope = path.scope;\\n    if (scope.path === path) scope = scope.parent;\\n    scope.getBlockParent().registerDeclaration(path);\\n  },\\n\\n  ClassDeclaration: function ClassDeclaration(path) {\\n    var id = path.node.id;\\n    if (!id) return;\\n\\n    var name = id.name;\\n    path.scope.bindings[name] = path.scope.getBinding(name);\\n  },\\n\\n  Block: function Block(path) {\\n    var paths = path.get(\\"body\\");\\n    for (var _iterator4 = (paths /*: Array*/), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n      var _ref4;\\n\\n      if (_isArray4) {\\n        if (_i4 >= _iterator4.length) break;\\n        _ref4 = _iterator4[_i4++];\\n      } else {\\n        _i4 = _iterator4.next();\\n        if (_i4.done) break;\\n        _ref4 = _i4.value;\\n      }\\n\\n      var bodyPath = _ref4;\\n\\n      if (bodyPath.isFunctionDeclaration()) {\\n        path.scope.getBlockParent().registerDeclaration(bodyPath);\\n      }\\n    }\\n  }\\n};\\n\\nvar uid = 0;\\n\\nvar Scope = (function () {\\n\\n  /**\\n   * This searches the current \\"scope\\" and collects all references/bindings\\n   * within.\\n   */\\n\\n  function Scope(path /*: NodePath*/, parentScope /*:: ?: Scope*/) {\\n    _classCallCheck(this, Scope);\\n\\n    if (parentScope && parentScope.block === path.node) {\\n      return parentScope;\\n    }\\n\\n    var cached = getCache(path.node, parentScope, this);\\n    if (cached) return cached;\\n\\n    this.uid = uid++;\\n    this.parent = parentScope;\\n    this.hub = path.hub;\\n\\n    this.parentBlock = path.parent;\\n    this.block = path.node;\\n    this.path = path;\\n  }\\n\\n  /**\\n   * Globals.\\n   */\\n\\n  /**\\n   * Traverse node with current scope and path.\\n   */\\n\\n  Scope.prototype.traverse = function traverse(node /*: Object*/, opts /*: Object*/, state /*:: ?*/) {\\n    _index2[\\"default\\"](node, opts, this, state, this.path);\\n  };\\n\\n  /**\\n   * Generate a unique identifier and add it to the current scope.\\n   */\\n\\n  Scope.prototype.generateDeclaredUidIdentifier = function generateDeclaredUidIdentifier() {\\n    var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? \\"temp\\" : arguments[0];\\n\\n    var id = this.generateUidIdentifier(name);\\n    this.push({ id: id });\\n    return id;\\n  };\\n\\n  /**\\n   * Generate a unique identifier.\\n   */\\n\\n  Scope.prototype.generateUidIdentifier = function generateUidIdentifier() {\\n    var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? \\"temp\\" : arguments[0];\\n\\n    return t.identifier(this.generateUid(name));\\n  };\\n\\n  /**\\n   * Generate a unique `_id1` binding.\\n   */\\n\\n  Scope.prototype.generateUid = function generateUid() {\\n    var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? \\"temp\\" : arguments[0];\\n\\n    name = t.toIdentifier(name).replace(/^_+/, \\"\\").replace(/[0-9]+$/g, \\"\\");\\n\\n    var uid = undefined;\\n    var i = 0;\\n    do {\\n      uid = this._generateUid(name, i);\\n      i++;\\n    } while (this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid));\\n\\n    var program = this.getProgramParent();\\n    program.references[uid] = true;\\n    program.uids[uid] = true;\\n\\n    return uid;\\n  };\\n\\n  /**\\n   * Generate an `_id1`.\\n   */\\n\\n  Scope.prototype._generateUid = function _generateUid(name, i) {\\n    var id = name;\\n    if (i > 1) id += i;\\n    return \\"_\\" + id;\\n  };\\n\\n  /**\\n   * Generate a unique identifier based on a node.\\n   */\\n\\n  Scope.prototype.generateUidIdentifierBasedOnNode = function generateUidIdentifierBasedOnNode(parent /*: Object*/, defaultName /*:: ?: String*/) /*:  Object*/ {\\n    var node = parent;\\n\\n    if (t.isAssignmentExpression(parent)) {\\n      node = parent.left;\\n    } else if (t.isVariableDeclarator(parent)) {\\n      node = parent.id;\\n    } else if (t.isObjectProperty(node) || t.isObjectMethod(node)) {\\n      node = node.key;\\n    }\\n\\n    var parts = [];\\n\\n    var add = function add(node) {\\n      if (t.isModuleDeclaration(node)) {\\n        if (node.source) {\\n          add(node.source);\\n        } else if (node.specifiers && node.specifiers.length) {\\n          for (var _iterator5 = (node.specifiers /*: Array*/), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n            var _ref5;\\n\\n            if (_isArray5) {\\n              if (_i5 >= _iterator5.length) break;\\n              _ref5 = _iterator5[_i5++];\\n            } else {\\n              _i5 = _iterator5.next();\\n              if (_i5.done) break;\\n              _ref5 = _i5.value;\\n            }\\n\\n            var specifier = _ref5;\\n\\n            add(specifier);\\n          }\\n        } else if (node.declaration) {\\n          add(node.declaration);\\n        }\\n      } else if (t.isModuleSpecifier(node)) {\\n        add(node.local);\\n      } else if (t.isMemberExpression(node)) {\\n        add(node.object);\\n        add(node.property);\\n      } else if (t.isIdentifier(node)) {\\n        parts.push(node.name);\\n      } else if (t.isLiteral(node)) {\\n        parts.push(node.value);\\n      } else if (t.isCallExpression(node)) {\\n        add(node.callee);\\n      } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) {\\n        for (var _iterator6 = (node.properties /*: Array*/), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\\n          var _ref6;\\n\\n          if (_isArray6) {\\n            if (_i6 >= _iterator6.length) break;\\n            _ref6 = _iterator6[_i6++];\\n          } else {\\n            _i6 = _iterator6.next();\\n            if (_i6.done) break;\\n            _ref6 = _i6.value;\\n          }\\n\\n          var prop = _ref6;\\n\\n          add(prop.key || prop.argument);\\n        }\\n      }\\n    };\\n\\n    add(node);\\n\\n    var id = parts.join(\\"$\\");\\n    id = id.replace(/^_/, \\"\\") || defaultName || \\"ref\\";\\n\\n    return this.generateUidIdentifier(id.slice(0, 20));\\n  };\\n\\n  /**\\n   * Determine whether evaluating the specific input `node` is a consequenceless reference. ie.\\n   * evaluating it wont result in potentially arbitrary code from being ran. The following are\\n   * whitelisted and determined not to cause side effects:\\n   *\\n   *  - `this` expressions\\n   *  - `super` expressions\\n   *  - Bound identifiers\\n   */\\n\\n  Scope.prototype.isStatic = function isStatic(node /*: Object*/) /*: boolean*/ {\\n    if (t.isThisExpression(node) || t.isSuper(node)) {\\n      return true;\\n    }\\n\\n    if (t.isIdentifier(node)) {\\n      var binding = this.getBinding(node.name);\\n      if (binding) {\\n        return binding.constant;\\n      } else {\\n        return this.hasBinding(node.name);\\n      }\\n    }\\n\\n    return false;\\n  };\\n\\n  /**\\n   * Possibly generate a memoised identifier if it is not static and has consequences.\\n   */\\n\\n  Scope.prototype.maybeGenerateMemoised = function maybeGenerateMemoised(node /*: Object*/, dontPush /*:: ?: boolean*/) /*: ?Object*/ {\\n    if (this.isStatic(node)) {\\n      return null;\\n    } else {\\n      var _id2 = this.generateUidIdentifierBasedOnNode(node);\\n      if (!dontPush) this.push({ id: _id2 });\\n      return _id2;\\n    }\\n  };\\n\\n  Scope.prototype.checkBlockScopedCollisions = function checkBlockScopedCollisions(local, kind /*: string*/, name /*: string*/, id /*: Object*/) {\\n    // ignore parameters\\n    if (kind === \\"param\\") return;\\n\\n    // ignore hoisted functions if there\'s also a local let\\n    if (kind === \\"hoisted\\" && local.kind === \\"let\\") return;\\n\\n    var duplicate = false;\\n\\n    // don\'t allow duplicate bindings to exist alongside\\n    if (!duplicate) duplicate = kind === \\"let\\" || local.kind === \\"let\\" || local.kind === \\"const\\" || local.kind === \\"module\\";\\n\\n    // don\'t allow a local of param with a kind of let\\n    if (!duplicate) duplicate = local.kind === \\"param\\" && (kind === \\"let\\" || kind === \\"const\\");\\n\\n    if (duplicate) {\\n      throw this.hub.file.buildCodeFrameError(id, messages.get(\\"scopeDuplicateDeclaration\\", name), TypeError);\\n    }\\n  };\\n\\n  Scope.prototype.rename = function rename(oldName /*: string*/, newName /*: string*/, block /*:: ?*/) {\\n    var binding = this.getBinding(oldName);\\n    if (binding) {\\n      newName = newName || this.generateUidIdentifier(oldName).name;\\n      return new _libRenamer2[\\"default\\"](binding, oldName, newName).rename(block);\\n    }\\n  };\\n\\n  Scope.prototype._renameFromMap = function _renameFromMap(map, oldName, newName, value) {\\n    if (map[oldName]) {\\n      map[newName] = value;\\n      map[oldName] = null;\\n    }\\n  };\\n\\n  Scope.prototype.dump = function dump() {\\n    var sep = _repeating2[\\"default\\"](\\"-\\", 60);\\n    console.log(sep);\\n    var scope = this;\\n    do {\\n      console.log(\\"#\\", scope.block.type);\\n      for (var _name2 in scope.bindings) {\\n        var binding = scope.bindings[_name2];\\n        console.log(\\" -\\", _name2, {\\n          constant: binding.constant,\\n          references: binding.references,\\n          violations: binding.constantViolations.length,\\n          kind: binding.kind\\n        });\\n      }\\n    } while (scope = scope.parent);\\n    console.log(sep);\\n  };\\n\\n  Scope.prototype.toArray = function toArray(node /*: Object*/, i /*:: ?: number*/) {\\n    var file = this.hub.file;\\n\\n    if (t.isIdentifier(node)) {\\n      var binding = this.getBinding(node.name);\\n      if (binding && binding.constant && binding.path.isGenericType(\\"Array\\")) return node;\\n    }\\n\\n    if (t.isArrayExpression(node)) {\\n      return node;\\n    }\\n\\n    if (t.isIdentifier(node, { name: \\"arguments\\" })) {\\n      return t.callExpression(t.memberExpression(t.memberExpression(t.memberExpression(t.identifier(\\"Array\\"), t.identifier(\\"prototype\\")), t.identifier(\\"slice\\")), t.identifier(\\"call\\")), [node]);\\n    }\\n\\n    var helperName = \\"toArray\\";\\n    var args = [node];\\n    if (i === true) {\\n      helperName = \\"toConsumableArray\\";\\n    } else if (i) {\\n      args.push(t.numericLiteral(i));\\n      helperName = \\"slicedToArray\\";\\n      // TODO if (this.hub.file.isLoose(\\"es6.forOf\\")) helperName += \\"-loose\\";\\n    }\\n    return t.callExpression(file.addHelper(helperName), args);\\n  };\\n\\n  Scope.prototype.registerDeclaration = function registerDeclaration(path /*: NodePath*/) {\\n    if (path.isLabeledStatement()) {\\n      this.registerBinding(\\"label\\", path);\\n    } else if (path.isFunctionDeclaration()) {\\n      this.registerBinding(\\"hoisted\\", path.get(\\"id\\"), path);\\n    } else if (path.isVariableDeclaration()) {\\n      var declarations = path.get(\\"declarations\\");\\n      for (var _iterator7 = (declarations /*: Array*/), _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _getIterator(_iterator7);;) {\\n        var _ref7;\\n\\n        if (_isArray7) {\\n          if (_i7 >= _iterator7.length) break;\\n          _ref7 = _iterator7[_i7++];\\n        } else {\\n          _i7 = _iterator7.next();\\n          if (_i7.done) break;\\n          _ref7 = _i7.value;\\n        }\\n\\n        var declar = _ref7;\\n\\n        this.registerBinding(path.node.kind, declar);\\n      }\\n    } else if (path.isClassDeclaration()) {\\n      this.registerBinding(\\"let\\", path);\\n    } else if (path.isImportDeclaration()) {\\n      var specifiers = path.get(\\"specifiers\\");\\n      for (var _iterator8 = (specifiers /*: Array*/), _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _getIterator(_iterator8);;) {\\n        var _ref8;\\n\\n        if (_isArray8) {\\n          if (_i8 >= _iterator8.length) break;\\n          _ref8 = _iterator8[_i8++];\\n        } else {\\n          _i8 = _iterator8.next();\\n          if (_i8.done) break;\\n          _ref8 = _i8.value;\\n        }\\n\\n        var specifier = _ref8;\\n\\n        this.registerBinding(\\"module\\", specifier);\\n      }\\n    } else if (path.isExportDeclaration()) {\\n      var declar = path.get(\\"declaration\\");\\n      if (declar.isClassDeclaration() || declar.isFunctionDeclaration() || declar.isVariableDeclaration()) {\\n        this.registerDeclaration(declar);\\n      }\\n    } else {\\n      this.registerBinding(\\"unknown\\", path);\\n    }\\n  };\\n\\n  Scope.prototype.buildUndefinedNode = function buildUndefinedNode() {\\n    if (this.hasBinding(\\"undefined\\")) {\\n      return t.unaryExpression(\\"void\\", t.numericLiteral(0), true);\\n    } else {\\n      return t.identifier(\\"undefined\\");\\n    }\\n  };\\n\\n  Scope.prototype.registerConstantViolation = function registerConstantViolation(path /*: NodePath*/) {\\n    var ids = path.getBindingIdentifiers();\\n    for (var _name3 in ids) {\\n      var binding = this.getBinding(_name3);\\n      if (binding) binding.reassign(path);\\n    }\\n  };\\n\\n  Scope.prototype.registerBinding = function registerBinding(kind /*: string*/, path /*: NodePath*/) {\\n    var bindingPath = arguments.length <= 2 || arguments[2] === undefined ? path : arguments[2];\\n    return (function () {\\n      if (!kind) throw new ReferenceError(\\"no `kind`\\");\\n\\n      if (path.isVariableDeclaration()) {\\n        var declarators /*: Array<NodePath>*/ = path.get(\\"declarations\\");\\n        for (var _iterator9 = declarators, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _getIterator(_iterator9);;) {\\n          var _ref9;\\n\\n          if (_isArray9) {\\n            if (_i9 >= _iterator9.length) break;\\n            _ref9 = _iterator9[_i9++];\\n          } else {\\n            _i9 = _iterator9.next();\\n            if (_i9.done) break;\\n            _ref9 = _i9.value;\\n          }\\n\\n          var declar = _ref9;\\n\\n          this.registerBinding(kind, declar);\\n        }\\n        return;\\n      }\\n\\n      var parent = this.getProgramParent();\\n      var ids = path.getBindingIdentifiers(true);\\n\\n      for (var _name4 in ids) {\\n        for (var _iterator10 = (ids[_name4] /*: Array<Object>*/), _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _getIterator(_iterator10);;) {\\n          var _ref10;\\n\\n          if (_isArray10) {\\n            if (_i10 >= _iterator10.length) break;\\n            _ref10 = _iterator10[_i10++];\\n          } else {\\n            _i10 = _iterator10.next();\\n            if (_i10.done) break;\\n            _ref10 = _i10.value;\\n          }\\n\\n          var _id3 = _ref10;\\n\\n          var local = this.getOwnBinding(_name4);\\n          if (local) {\\n            // same identifier so continue safely as we\'re likely trying to register it\\n            // multiple times\\n            if (local.identifier === _id3) continue;\\n\\n            this.checkBlockScopedCollisions(local, kind, _name4, _id3);\\n          }\\n\\n          parent.references[_name4] = true;\\n\\n          this.bindings[_name4] = new _binding2[\\"default\\"]({\\n            identifier: _id3,\\n            existing: local,\\n            scope: this,\\n            path: bindingPath,\\n            kind: kind\\n          });\\n        }\\n      }\\n    }).apply(this, arguments);\\n  };\\n\\n  Scope.prototype.addGlobal = function addGlobal(node /*: Object*/) {\\n    this.globals[node.name] = node;\\n  };\\n\\n  Scope.prototype.hasUid = function hasUid(name) /*: boolean*/ {\\n    var scope = this;\\n\\n    do {\\n      if (scope.uids[name]) return true;\\n    } while (scope = scope.parent);\\n\\n    return false;\\n  };\\n\\n  Scope.prototype.hasGlobal = function hasGlobal(name /*: string*/) /*: boolean*/ {\\n    var scope = this;\\n\\n    do {\\n      if (scope.globals[name]) return true;\\n    } while (scope = scope.parent);\\n\\n    return false;\\n  };\\n\\n  Scope.prototype.hasReference = function hasReference(name /*: string*/) /*: boolean*/ {\\n    var scope = this;\\n\\n    do {\\n      if (scope.references[name]) return true;\\n    } while (scope = scope.parent);\\n\\n    return false;\\n  };\\n\\n  Scope.prototype.isPure = function isPure(node, constantsOnly /*:: ?: boolean*/) {\\n    if (t.isIdentifier(node)) {\\n      var binding = this.getBinding(node.name);\\n      if (!binding) return false;\\n      if (constantsOnly) return binding.constant;\\n      return true;\\n    } else if (t.isClass(node)) {\\n      if (node.superClass && !this.isPure(node.superClass, constantsOnly)) return false;\\n      return this.isPure(node.body, constantsOnly);\\n    } else if (t.isClassBody(node)) {\\n      for (var _iterator11 = node.body, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _getIterator(_iterator11);;) {\\n        var _ref11;\\n\\n        if (_isArray11) {\\n          if (_i11 >= _iterator11.length) break;\\n          _ref11 = _iterator11[_i11++];\\n        } else {\\n          _i11 = _iterator11.next();\\n          if (_i11.done) break;\\n          _ref11 = _i11.value;\\n        }\\n\\n        var method = _ref11;\\n\\n        if (!this.isPure(method, constantsOnly)) return false;\\n      }\\n      return true;\\n    } else if (t.isBinary(node)) {\\n      return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly);\\n    } else if (t.isArrayExpression(node)) {\\n      for (var _iterator12 = (node.elements /*: Array<Object>*/), _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _getIterator(_iterator12);;) {\\n        var _ref12;\\n\\n        if (_isArray12) {\\n          if (_i12 >= _iterator12.length) break;\\n          _ref12 = _iterator12[_i12++];\\n        } else {\\n          _i12 = _iterator12.next();\\n          if (_i12.done) break;\\n          _ref12 = _i12.value;\\n        }\\n\\n        var elem = _ref12;\\n\\n        if (!this.isPure(elem, constantsOnly)) return false;\\n      }\\n      return true;\\n    } else if (t.isObjectExpression(node)) {\\n      for (var _iterator13 = (node.properties /*: Array<Object>*/), _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _getIterator(_iterator13);;) {\\n        var _ref13;\\n\\n        if (_isArray13) {\\n          if (_i13 >= _iterator13.length) break;\\n          _ref13 = _iterator13[_i13++];\\n        } else {\\n          _i13 = _iterator13.next();\\n          if (_i13.done) break;\\n          _ref13 = _i13.value;\\n        }\\n\\n        var prop = _ref13;\\n\\n        if (!this.isPure(prop, constantsOnly)) return false;\\n      }\\n      return true;\\n    } else if (t.isClassMethod(node)) {\\n      if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\\n      if (node.kind === \\"get\\" || node.kind === \\"set\\") return false;\\n      return true;\\n    } else if (t.isClassProperty(node) || t.isObjectProperty(node)) {\\n      if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\\n      return this.isPure(node.value, constantsOnly);\\n    } else if (t.isUnaryExpression(node)) {\\n      return this.isPure(node.argument, constantsOnly);\\n    } else {\\n      return t.isPureish(node);\\n    }\\n  };\\n\\n  /**\\n   * Set some arbitrary data on the current scope.\\n   */\\n\\n  Scope.prototype.setData = function setData(key, val) {\\n    return this.data[key] = val;\\n  };\\n\\n  /**\\n   * Recursively walk up scope tree looking for the data `key`.\\n   */\\n\\n  Scope.prototype.getData = function getData(key) {\\n    var scope = this;\\n    do {\\n      var data = scope.data[key];\\n      if (data != null) return data;\\n    } while (scope = scope.parent);\\n  };\\n\\n  /**\\n   * Recursively walk up scope tree looking for the data `key` and if it exists,\\n   * remove it.\\n   */\\n\\n  Scope.prototype.removeData = function removeData(key) {\\n    var scope = this;\\n    do {\\n      var data = scope.data[key];\\n      if (data != null) scope.data[key] = null;\\n    } while (scope = scope.parent);\\n  };\\n\\n  Scope.prototype.init = function init() {\\n    if (!this.references) this.crawl();\\n  };\\n\\n  Scope.prototype.crawl = function crawl() {\\n    var path = this.path;\\n\\n    //\\n\\n    this.references = _Object$create(null);\\n    this.bindings = _Object$create(null);\\n    this.globals = _Object$create(null);\\n    this.uids = _Object$create(null);\\n    this.data = _Object$create(null);\\n\\n    // ForStatement - left, init\\n\\n    if (path.isLoop()) {\\n      for (var _iterator14 = (t.FOR_INIT_KEYS /*: Array<string>*/), _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _getIterator(_iterator14);;) {\\n        var _ref14;\\n\\n        if (_isArray14) {\\n          if (_i14 >= _iterator14.length) break;\\n          _ref14 = _iterator14[_i14++];\\n        } else {\\n          _i14 = _iterator14.next();\\n          if (_i14.done) break;\\n          _ref14 = _i14.value;\\n        }\\n\\n        var key = _ref14;\\n\\n        var node = path.get(key);\\n        if (node.isBlockScoped()) this.registerBinding(node.node.kind, node);\\n      }\\n    }\\n\\n    // FunctionExpression - id\\n\\n    if (path.isFunctionExpression() && path.has(\\"id\\")) {\\n      if (!path.get(\\"id\\").node[t.NOT_LOCAL_BINDING]) {\\n        this.registerBinding(\\"local\\", path.get(\\"id\\"), path);\\n      }\\n    }\\n\\n    // Class\\n\\n    if (path.isClassExpression() && path.has(\\"id\\")) {\\n      if (!path.get(\\"id\\").node[t.NOT_LOCAL_BINDING]) {\\n        this.registerBinding(\\"local\\", path);\\n      }\\n    }\\n\\n    // Function - params, rest\\n\\n    if (path.isFunction()) {\\n      var params /*: Array<NodePath>*/ = path.get(\\"params\\");\\n      for (var _iterator15 = params, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _getIterator(_iterator15);;) {\\n        var _ref15;\\n\\n        if (_isArray15) {\\n          if (_i15 >= _iterator15.length) break;\\n          _ref15 = _iterator15[_i15++];\\n        } else {\\n          _i15 = _iterator15.next();\\n          if (_i15.done) break;\\n          _ref15 = _i15.value;\\n        }\\n\\n        var param = _ref15;\\n\\n        this.registerBinding(\\"param\\", param);\\n      }\\n    }\\n\\n    // CatchClause - param\\n\\n    if (path.isCatchClause()) {\\n      this.registerBinding(\\"let\\", path);\\n    }\\n\\n    // Program\\n\\n    var parent = this.getProgramParent();\\n    if (parent.crawling) return;\\n\\n    var state = {\\n      references: [],\\n      constantViolations: [],\\n      assignments: []\\n    };\\n\\n    this.crawling = true;\\n    path.traverse(collectorVisitor, state);\\n    this.crawling = false;\\n\\n    // register assignments\\n    for (var _iterator16 = state.assignments, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _getIterator(_iterator16);;) {\\n      var _ref16;\\n\\n      if (_isArray16) {\\n        if (_i16 >= _iterator16.length) break;\\n        _ref16 = _iterator16[_i16++];\\n      } else {\\n        _i16 = _iterator16.next();\\n        if (_i16.done) break;\\n        _ref16 = _i16.value;\\n      }\\n\\n      var _path = _ref16;\\n\\n      // register undeclared bindings as globals\\n      var ids = _path.getBindingIdentifiers();\\n      var programParent = undefined;\\n      for (var _name5 in ids) {\\n        if (_path.scope.getBinding(_name5)) continue;\\n\\n        programParent = programParent || _path.scope.getProgramParent();\\n        programParent.addGlobal(ids[_name5]);\\n      }\\n\\n      // register as constant violation\\n      _path.scope.registerConstantViolation(_path);\\n    }\\n\\n    // register references\\n    for (var _iterator17 = state.references, _isArray17 = Array.isArray(_iterator17), _i17 = 0, _iterator17 = _isArray17 ? _iterator17 : _getIterator(_iterator17);;) {\\n      var _ref17;\\n\\n      if (_isArray17) {\\n        if (_i17 >= _iterator17.length) break;\\n        _ref17 = _iterator17[_i17++];\\n      } else {\\n        _i17 = _iterator17.next();\\n        if (_i17.done) break;\\n        _ref17 = _i17.value;\\n      }\\n\\n      var ref = _ref17;\\n\\n      var binding = ref.scope.getBinding(ref.node.name);\\n      if (binding) {\\n        binding.reference(ref);\\n      } else {\\n        ref.scope.getProgramParent().addGlobal(ref.node);\\n      }\\n    }\\n\\n    // register constant violations\\n    for (var _iterator18 = state.constantViolations, _isArray18 = Array.isArray(_iterator18), _i18 = 0, _iterator18 = _isArray18 ? _iterator18 : _getIterator(_iterator18);;) {\\n      var _ref18;\\n\\n      if (_isArray18) {\\n        if (_i18 >= _iterator18.length) break;\\n        _ref18 = _iterator18[_i18++];\\n      } else {\\n        _i18 = _iterator18.next();\\n        if (_i18.done) break;\\n        _ref18 = _i18.value;\\n      }\\n\\n      var _path2 = _ref18;\\n\\n      _path2.scope.registerConstantViolation(_path2);\\n    }\\n  };\\n\\n  Scope.prototype.push = function push(opts /*: {\\n                                                id: Object;\\n                                                init: ?Object;\\n                                                unique: ?boolean;\\n                                                _blockHoist: ?number;\\n                                                kind: \\"var\\" | \\"let\\";\\n                                              }*/) {\\n    var path = this.path;\\n\\n    if (!path.isBlockStatement() && !path.isProgram()) {\\n      path = this.getBlockParent().path;\\n    }\\n\\n    if (path.isSwitchStatement()) {\\n      path = this.getFunctionParent().path;\\n    }\\n\\n    if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\\n      t.ensureBlock(path.node);\\n      path = path.get(\\"body\\");\\n    }\\n\\n    var unique = opts.unique;\\n    var kind = opts.kind || \\"var\\";\\n    var blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\\n\\n    var dataKey = \\"declaration:\\" + kind + \\":\\" + blockHoist;\\n    var declarPath = !unique && path.getData(dataKey);\\n\\n    if (!declarPath) {\\n      var declar = t.variableDeclaration(kind, []);\\n      declar._generated = true;\\n      declar._blockHoist = blockHoist;\\n\\n      var _path$unshiftContainer = path.unshiftContainer(\\"body\\", [declar]);\\n\\n      declarPath = _path$unshiftContainer[0];\\n\\n      if (!unique) path.setData(dataKey, declarPath);\\n    }\\n\\n    var declarator = t.variableDeclarator(opts.id, opts.init);\\n    declarPath.node.declarations.push(declarator);\\n    this.registerBinding(kind, declarPath.get(\\"declarations\\").pop());\\n  };\\n\\n  /**\\n   * Walk up to the top of the scope tree and get the `Program`.\\n   */\\n\\n  Scope.prototype.getProgramParent = function getProgramParent() {\\n    var scope = this;\\n    do {\\n      if (scope.path.isProgram()) {\\n        return scope;\\n      }\\n    } while (scope = scope.parent);\\n    throw new Error(\\"We couldn\'t find a Function or Program...\\");\\n  };\\n\\n  /**\\n   * Walk up the scope tree until we hit either a Function or reach the\\n   * very top and hit Program.\\n   */\\n\\n  Scope.prototype.getFunctionParent = function getFunctionParent() {\\n    var scope = this;\\n    do {\\n      if (scope.path.isFunctionParent()) {\\n        return scope;\\n      }\\n    } while (scope = scope.parent);\\n    throw new Error(\\"We couldn\'t find a Function or Program...\\");\\n  };\\n\\n  /**\\n   * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the\\n   * very top and hit Program.\\n   */\\n\\n  Scope.prototype.getBlockParent = function getBlockParent() {\\n    var scope = this;\\n    do {\\n      if (scope.path.isBlockParent()) {\\n        return scope;\\n      }\\n    } while (scope = scope.parent);\\n    throw new Error(\\"We couldn\'t find a BlockStatement, For, Switch, Function, Loop or Program...\\");\\n  };\\n\\n  /**\\n   * Walks the scope tree and gathers **all** bindings.\\n   */\\n\\n  Scope.prototype.getAllBindings = function getAllBindings() /*: Object*/ {\\n    var ids = _Object$create(null);\\n\\n    var scope = this;\\n    do {\\n      _lodashObjectDefaults2[\\"default\\"](ids, scope.bindings);\\n      scope = scope.parent;\\n    } while (scope);\\n\\n    return ids;\\n  };\\n\\n  /**\\n   * Walks the scope tree and gathers all declarations of `kind`.\\n   */\\n\\n  Scope.prototype.getAllBindingsOfKind = function getAllBindingsOfKind() /*: Object*/ {\\n    var ids = _Object$create(null);\\n\\n    for (var _iterator19 = (arguments /*: Array*/), _isArray19 = Array.isArray(_iterator19), _i19 = 0, _iterator19 = _isArray19 ? _iterator19 : _getIterator(_iterator19);;) {\\n      var _ref19;\\n\\n      if (_isArray19) {\\n        if (_i19 >= _iterator19.length) break;\\n        _ref19 = _iterator19[_i19++];\\n      } else {\\n        _i19 = _iterator19.next();\\n        if (_i19.done) break;\\n        _ref19 = _i19.value;\\n      }\\n\\n      var kind = _ref19;\\n\\n      var scope = this;\\n      do {\\n        for (var _name6 in scope.bindings) {\\n          var binding = scope.bindings[_name6];\\n          if (binding.kind === kind) ids[_name6] = binding;\\n        }\\n        scope = scope.parent;\\n      } while (scope);\\n    }\\n\\n    return ids;\\n  };\\n\\n  Scope.prototype.bindingIdentifierEquals = function bindingIdentifierEquals(name /*: string*/, node /*: Object*/) /*: boolean*/ {\\n    return this.getBindingIdentifier(name) === node;\\n  };\\n\\n  Scope.prototype.getBinding = function getBinding(name /*: string*/) {\\n    var scope = this;\\n\\n    do {\\n      var binding = scope.getOwnBinding(name);\\n      if (binding) return binding;\\n    } while (scope = scope.parent);\\n  };\\n\\n  Scope.prototype.getOwnBinding = function getOwnBinding(name /*: string*/) {\\n    return this.bindings[name];\\n  };\\n\\n  Scope.prototype.getBindingIdentifier = function getBindingIdentifier(name /*: string*/) {\\n    var info = this.getBinding(name);\\n    return info && info.identifier;\\n  };\\n\\n  Scope.prototype.getOwnBindingIdentifier = function getOwnBindingIdentifier(name /*: string*/) {\\n    var binding = this.bindings[name];\\n    return binding && binding.identifier;\\n  };\\n\\n  Scope.prototype.hasOwnBinding = function hasOwnBinding(name /*: string*/) {\\n    return !!this.getOwnBinding(name);\\n  };\\n\\n  Scope.prototype.hasBinding = function hasBinding(name /*: string*/, noGlobals /*:: ?*/) {\\n    if (!name) return false;\\n    if (this.hasOwnBinding(name)) return true;\\n    if (this.parentHasBinding(name, noGlobals)) return true;\\n    if (this.hasUid(name)) return true;\\n    if (!noGlobals && _lodashCollectionIncludes2[\\"default\\"](Scope.globals, name)) return true;\\n    if (!noGlobals && _lodashCollectionIncludes2[\\"default\\"](Scope.contextVariables, name)) return true;\\n    return false;\\n  };\\n\\n  Scope.prototype.parentHasBinding = function parentHasBinding(name /*: string*/, noGlobals /*:: ?*/) {\\n    return this.parent && this.parent.hasBinding(name, noGlobals);\\n  };\\n\\n  /**\\n   * Move a binding of `name` to another `scope`.\\n   */\\n\\n  Scope.prototype.moveBindingTo = function moveBindingTo(name, scope) {\\n    var info = this.getBinding(name);\\n    if (info) {\\n      info.scope.removeOwnBinding(name);\\n      info.scope = scope;\\n      scope.bindings[name] = info;\\n    }\\n  };\\n\\n  Scope.prototype.removeOwnBinding = function removeOwnBinding(name /*: string*/) {\\n    delete this.bindings[name];\\n  };\\n\\n  Scope.prototype.removeBinding = function removeBinding(name /*: string*/) {\\n    // clear literal binding\\n    var info = this.getBinding(name);\\n    if (info) {\\n      info.scope.removeOwnBinding(name);\\n    }\\n\\n    // clear uids with this name - https://github.com/babel/babel/issues/2101\\n    var scope = this;\\n    do {\\n      if (scope.uids[name]) {\\n        scope.uids[name] = false;\\n      }\\n    } while (scope = scope.parent);\\n  };\\n\\n  return Scope;\\n})();\\n\\nexports[\\"default\\"] = Scope;\\nmodule.exports = exports[\\"default\\"];\\n\\n/**\\n * Variables available in current context.\\n */\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/scope/index.js\\n ** module id = 219\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/symbol\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/symbol.js\\n ** module id = 220\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.symbol\');\\nrequire(\'../../modules/es6.object.to-string\');\\nmodule.exports = require(\'../../modules/$.core\').Symbol;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/index.js\\n ** module id = 221\\n ** module chunks = 0\\n **/","var baseIndexOf = require(\'../internal/baseIndexOf\'),\\n    getLength = require(\'../internal/getLength\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIterateeCall = require(\'../internal/isIterateeCall\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isString = require(\'../lang/isString\'),\\n    values = require(\'../object/values\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max;\\n\\n/**\\n * Checks if `target` is in `collection` using\\n * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\\n * for equality comparisons. If `fromIndex` is negative, it\'s used as the offset\\n * from the end of `collection`.\\n *\\n * @static\\n * @memberOf _\\n * @alias contains, include\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to search.\\n * @param {*} target The value to search for.\\n * @param {number} [fromIndex=0] The index to search from.\\n * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`.\\n * @returns {boolean} Returns `true` if a matching element is found, else `false`.\\n * @example\\n *\\n * _.includes([1, 2, 3], 1);\\n * // => true\\n *\\n * _.includes([1, 2, 3], 1, 2);\\n * // => false\\n *\\n * _.includes({ \'user\': \'fred\', \'age\': 40 }, \'fred\');\\n * // => true\\n *\\n * _.includes(\'pebbles\', \'eb\');\\n * // => true\\n */\\nfunction includes(collection, target, fromIndex, guard) {\\n  var length = collection ? getLength(collection) : 0;\\n  if (!isLength(length)) {\\n    collection = values(collection);\\n    length = collection.length;\\n  }\\n  if (typeof fromIndex != \'number\' || (guard && isIterateeCall(target, fromIndex, guard))) {\\n    fromIndex = 0;\\n  } else {\\n    fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0);\\n  }\\n  return (typeof collection == \'string\' || !isArray(collection) && isString(collection))\\n    ? (fromIndex <= length && collection.indexOf(target, fromIndex) > -1)\\n    : (!!length && baseIndexOf(collection, target, fromIndex) > -1);\\n}\\n\\nmodule.exports = includes;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/collection/includes.js\\n ** module id = 223\\n ** module chunks = 0\\n **/","var baseValues = require(\'../internal/baseValues\'),\\n    keys = require(\'./keys\');\\n\\n/**\\n * Creates an array of the own enumerable property values of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property values.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.values(new Foo);\\n * // => [1, 2] (iteration order is not guaranteed)\\n *\\n * _.values(\'hi\');\\n * // => [\'h\', \'i\']\\n */\\nfunction values(object) {\\n  return baseValues(object, keys(object));\\n}\\n\\nmodule.exports = values;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/values.js\\n ** module id = 224\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.values` and `_.valuesIn` which creates an\\n * array of `object` property values corresponding to the property names\\n * of `props`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {Array} props The property names to get values for.\\n * @returns {Object} Returns the array of property values.\\n */\\nfunction baseValues(object, props) {\\n  var index = -1,\\n      length = props.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    result[index] = object[props[index]];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseValues;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseValues.js\\n ** module id = 225\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar isFinite = require(\'is-finite\');\\n\\nmodule.exports = function (str, n) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string as the first argument\');\\n\\t}\\n\\n\\tif (n < 0 || !isFinite(n)) {\\n\\t\\tthrow new TypeError(\'Expected a finite positive number\');\\n\\t}\\n\\n\\tvar ret = \'\';\\n\\n\\tdo {\\n\\t\\tif (n & 1) {\\n\\t\\t\\tret += str;\\n\\t\\t}\\n\\n\\t\\tstr += str;\\n\\t} while (n = n >> 1);\\n\\n\\treturn ret;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/repeating/index.js\\n ** module id = 226\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar numberIsNan = require(\'number-is-nan\');\\n\\nmodule.exports = Number.isFinite || function (val) {\\n\\treturn !(typeof val !== \'number\' || numberIsNan(val) || val === Infinity || val === -Infinity);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/index.js\\n ** module id = 227\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = Number.isNaN || function (x) {\\n\\treturn x !== x;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/~/number-is-nan/index.js\\n ** module id = 228\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _binding = require(\\"../binding\\");\\n\\nvar _binding2 = _interopRequireDefault(_binding);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar renameVisitor = {\\n  ReferencedIdentifier: function ReferencedIdentifier(_ref, state) {\\n    var node = _ref.node;\\n\\n    if (node.name === state.oldName) {\\n      node.name = state.newName;\\n    }\\n  },\\n\\n  Scope: function Scope(path, state) {\\n    if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) {\\n      path.skip();\\n    }\\n  },\\n\\n  \\"AssignmentExpression|Declaration\\": function AssignmentExpressionDeclaration(path, state) {\\n    var ids = path.getOuterBindingIdentifiers();\\n\\n    for (var _name in ids) {\\n      if (_name === state.oldName) ids[_name].name = state.newName;\\n    }\\n  }\\n};\\n\\nvar Renamer = (function () {\\n  function Renamer(binding /*: Binding*/, oldName /*: string*/, newName /*: string*/) {\\n    _classCallCheck(this, Renamer);\\n\\n    this.newName = newName;\\n    this.oldName = oldName;\\n    this.binding = binding;\\n  }\\n\\n  Renamer.prototype.maybeConvertFromExportDeclaration = function maybeConvertFromExportDeclaration(parentDeclar) {\\n    var exportDeclar = parentDeclar.parentPath.isExportDeclaration() && parentDeclar.parentPath;\\n    if (!exportDeclar) return;\\n\\n    // build specifiers that point back to this export declaration\\n    var isDefault = exportDeclar.isExportDefaultDeclaration();\\n\\n    if (isDefault && (parentDeclar.isFunctionDeclaration() || parentDeclar.isClassDeclaration()) && !parentDeclar.node.id) {\\n      // Ensure that default class and function exports have a name so they have a identifier to\\n      // reference from the export specifier list.\\n      parentDeclar.node.id = parentDeclar.scope.generateUidIdentifier(\\"default\\");\\n    }\\n\\n    var bindingIdentifiers = parentDeclar.getOuterBindingIdentifiers();\\n    var specifiers = [];\\n\\n    for (var _name2 in bindingIdentifiers) {\\n      var localName = _name2 === this.oldName ? this.newName : _name2;\\n      var exportedName = isDefault ? \\"default\\" : _name2;\\n      specifiers.push(t.exportSpecifier(t.identifier(localName), t.identifier(exportedName)));\\n    }\\n\\n    var aliasDeclar = t.exportNamedDeclaration(null, specifiers);\\n\\n    // hoist to the top if it\'s a function\\n    if (parentDeclar.isFunctionDeclaration()) {\\n      aliasDeclar._blockHoist = 3;\\n    }\\n\\n    exportDeclar.insertAfter(aliasDeclar);\\n    exportDeclar.replaceWith(parentDeclar.node);\\n  };\\n\\n  Renamer.prototype.maybeConvertFromClassFunctionDeclaration = function maybeConvertFromClassFunctionDeclaration(path) {\\n    return; // TODO\\n\\n    // retain the `name` of a class/function declaration\\n\\n    if (!path.isFunctionDeclaration() && !path.isClassDeclaration()) return;\\n    if (this.binding.kind !== \\"hoisted\\") return;\\n\\n    path.node.id = t.identifier(this.oldName);\\n    path.node._blockHoist = 3;\\n\\n    path.replaceWith(t.variableDeclaration(\\"let\\", [t.variableDeclarator(t.identifier(this.newName), t.toExpression(path.node))]));\\n  };\\n\\n  Renamer.prototype.maybeConvertFromClassFunctionExpression = function maybeConvertFromClassFunctionExpression(path) {\\n    return; // TODO\\n\\n    // retain the `name` of a class/function expression\\n\\n    if (!path.isFunctionExpression() && !path.isClassExpression()) return;\\n    if (this.binding.kind !== \\"local\\") return;\\n\\n    path.node.id = t.identifier(this.oldName);\\n\\n    this.binding.scope.parent.push({\\n      id: t.identifier(this.newName)\\n    });\\n\\n    path.replaceWith(t.assignmentExpression(\\"=\\", t.identifier(this.newName), path.node));\\n  };\\n\\n  Renamer.prototype.rename = function rename(block /*:: ?*/) {\\n    var binding = this.binding;\\n    var oldName = this.oldName;\\n    var newName = this.newName;\\n    var scope = binding.scope;\\n    var path = binding.path;\\n\\n    var parentDeclar = path.find(function (path) {\\n      return path.isDeclaration() || path.isFunctionExpression();\\n    });\\n    if (parentDeclar) {\\n      this.maybeConvertFromExportDeclaration(parentDeclar);\\n    }\\n\\n    scope.traverse(block || scope.block, renameVisitor, this);\\n\\n    if (!block) {\\n      scope.removeOwnBinding(oldName);\\n      scope.bindings[newName] = binding;\\n      this.binding.identifier.name = newName;\\n    }\\n\\n    if (binding.type === \\"hoisted\\") {\\n      // https://github.com/babel/babel/issues/2435\\n      // todo: hoist and convert function to a let\\n    }\\n\\n    if (parentDeclar) {\\n      this.maybeConvertFromClassFunctionDeclaration(parentDeclar);\\n      this.maybeConvertFromClassFunctionExpression(parentDeclar);\\n    }\\n  };\\n\\n  return Renamer;\\n})();\\n\\nexports[\\"default\\"] = Renamer;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/scope/lib/renamer.js\\n ** module id = 229\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\n/**\\n * This class is responsible for a binding inside of a scope.\\n *\\n * It tracks the following:\\n *\\n *  * Node path.\\n *  * Amount of times referenced by other nodes.\\n *  * Paths to nodes that reassign or modify this binding.\\n *  * The kind of binding. (Is it a parameter, declaration etc)\\n */\\n\\n/*:: import type NodePath from \\"../path\\";*/\\nvar Binding = (function () {\\n  function Binding(_ref) {\\n    var existing = _ref.existing;\\n    var identifier = _ref.identifier;\\n    var scope = _ref.scope;\\n    var path = _ref.path;\\n    var kind = _ref.kind;\\n\\n    _classCallCheck(this, Binding);\\n\\n    this.identifier = identifier;\\n    this.scope = scope;\\n    this.path = path;\\n    this.kind = kind;\\n\\n    this.constantViolations = [];\\n    this.constant = true;\\n\\n    this.referencePaths = [];\\n    this.referenced = false;\\n    this.references = 0;\\n\\n    this.clearValue();\\n\\n    if (existing) {\\n      this.constantViolations = [].concat(existing.path, existing.constantViolations, this.constantViolations);\\n    }\\n  }\\n\\n  Binding.prototype.deoptValue = function deoptValue() {\\n    this.clearValue();\\n    this.hasDeoptedValue = true;\\n  };\\n\\n  Binding.prototype.setValue = function setValue(value /*: any*/) {\\n    if (this.hasDeoptedValue) return;\\n    this.hasValue = true;\\n    this.value = value;\\n  };\\n\\n  Binding.prototype.clearValue = function clearValue() {\\n    this.hasDeoptedValue = false;\\n    this.hasValue = false;\\n    this.value = null;\\n  };\\n\\n  /**\\n   * Register a constant violation with the provided `path`.\\n   */\\n\\n  Binding.prototype.reassign = function reassign(path /*: Object*/) {\\n    this.constant = false;\\n    this.constantViolations.push(path);\\n  };\\n\\n  /**\\n   * Increment the amount of references to this binding.\\n   */\\n\\n  Binding.prototype.reference = function reference(path /*: NodePath*/) {\\n    this.referenced = true;\\n    this.references++;\\n    this.referencePaths.push(path);\\n  };\\n\\n  /**\\n   * Decrement the amount of references to this binding.\\n   */\\n\\n  Binding.prototype.dereference = function dereference() {\\n    this.references--;\\n    this.referenced = !!this.references;\\n  };\\n\\n  return Binding;\\n})();\\n\\nexports[\\"default\\"] = Binding;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/scope/binding.js\\n ** module id = 230\\n ** module chunks = 0\\n **/","var assign = require(\'./assign\'),\\n    assignDefaults = require(\'../internal/assignDefaults\'),\\n    createDefaults = require(\'../internal/createDefaults\');\\n\\n/**\\n * Assigns own enumerable properties of source object(s) to the destination\\n * object for all destination properties that resolve to `undefined`. Once a\\n * property is set, additional values of the same property are ignored.\\n *\\n * **Note:** This method mutates `object`.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The destination object.\\n * @param {...Object} [sources] The source objects.\\n * @returns {Object} Returns `object`.\\n * @example\\n *\\n * _.defaults({ \'user\': \'barney\' }, { \'age\': 36 }, { \'user\': \'fred\' });\\n * // => { \'user\': \'barney\', \'age\': 36 }\\n */\\nvar defaults = createDefaults(assign, assignDefaults);\\n\\nmodule.exports = defaults;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/defaults.js\\n ** module id = 231\\n ** module chunks = 0\\n **/","/**\\n * Used by `_.defaults` to customize its `_.assign` use.\\n *\\n * @private\\n * @param {*} objectValue The destination object property value.\\n * @param {*} sourceValue The source object property value.\\n * @returns {*} Returns the value to assign to the destination object.\\n */\\nfunction assignDefaults(objectValue, sourceValue) {\\n  return objectValue === undefined ? sourceValue : objectValue;\\n}\\n\\nmodule.exports = assignDefaults;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/assignDefaults.js\\n ** module id = 232\\n ** module chunks = 0\\n **/","var restParam = require(\'../function/restParam\');\\n\\n/**\\n * Creates a `_.defaults` or `_.defaultsDeep` function.\\n *\\n * @private\\n * @param {Function} assigner The function to assign values.\\n * @param {Function} customizer The function to customize assigned values.\\n * @returns {Function} Returns the new defaults function.\\n */\\nfunction createDefaults(assigner, customizer) {\\n  return restParam(function(args) {\\n    var object = args[0];\\n    if (object == null) {\\n      return object;\\n    }\\n    args.push(customizer);\\n    return assigner.apply(undefined, args);\\n  });\\n}\\n\\nmodule.exports = createDefaults;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createDefaults.js\\n ** module id = 233\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.get = get;\\nexports.parseArgs = parseArgs;\\n\\nvar _util = require(\\"util\\");\\n\\nvar util = _interopRequireWildcard(_util);\\n\\n/**\\n * Mapping of messages to be used in Babel.\\n * Messages can include $0-style placeholders.\\n */\\n\\nvar MESSAGES = {\\n  tailCallReassignmentDeopt: \\"Function reference has been reassigned, so it will probably be dereferenced, therefore we can\'t optimise this with confidence\\",\\n  classesIllegalBareSuper: \\"Illegal use of bare super\\",\\n  classesIllegalSuperCall: \\"Direct super call is illegal in non-constructor, use super.$1() instead\\",\\n  scopeDuplicateDeclaration: \\"Duplicate declaration $1\\",\\n  settersNoRest: \\"Setters aren\'t allowed to have a rest\\",\\n  noAssignmentsInForHead: \\"No assignments allowed in for-in/of head\\",\\n  expectedMemberExpressionOrIdentifier: \\"Expected type MemberExpression or Identifier\\",\\n  invalidParentForThisNode: \\"We don\'t know how to handle this node within the current parent - please open an issue\\",\\n  readOnly: \\"$1 is read-only\\",\\n  unknownForHead: \\"Unknown node type $1 in ForStatement\\",\\n  didYouMean: \\"Did you mean $1?\\",\\n  codeGeneratorDeopt: \\"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.\\",\\n  missingTemplatesDirectory: \\"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues\\",\\n  unsupportedOutputType: \\"Unsupported output type $1\\",\\n  illegalMethodName: \\"Illegal method name $1\\",\\n  lostTrackNodePath: \\"We lost track of this node\'s position, likely because the AST was directly manipulated\\",\\n\\n  modulesIllegalExportName: \\"Illegal export $1\\",\\n  modulesDuplicateDeclarations: \\"Duplicate module declarations with the same source but in different scopes\\",\\n\\n  undeclaredVariable: \\"Reference to undeclared variable $1\\",\\n  undeclaredVariableType: \\"Referencing a type alias outside of a type annotation\\",\\n  undeclaredVariableSuggestion: \\"Reference to undeclared variable $1 - did you mean $2?\\",\\n\\n  traverseNeedsParent: \\"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.\\",\\n  traverseVerifyRootFunction: \\"You passed `traverse()` a function when it expected a visitor object, are you sure you didn\'t mean `{ enter: Function }`?\\",\\n  traverseVerifyVisitorProperty: \\"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2\\",\\n  traverseVerifyNodeType: \\"You gave us a visitor for the node type $1 but it\'s not a valid type\\",\\n\\n  pluginNotObject: \\"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3\\",\\n  pluginNotFunction: \\"Plugin $2 specified in $1 was expected to return a function but returned $3\\",\\n  pluginUnknown: \\"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4\\",\\n  pluginInvalidProperty: \\"Plugin $2 specified in $1 provided an invalid property of $3\\"\\n};\\n\\nexports.MESSAGES = MESSAGES;\\n/**\\n * Get a message with $0 placeholders replaced by arguments.\\n */\\n\\nfunction get(key /*: string*/) /*: string*/ {\\n  for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\\n    args[_key - 1] = arguments[_key];\\n  }\\n\\n  var msg = MESSAGES[key];\\n  if (!msg) throw new ReferenceError(\\"Unknown message \\" + JSON.stringify(key));\\n\\n  // stringify args\\n  args = parseArgs(args);\\n\\n  // replace $0 placeholders with args\\n  return msg.replace(/\\\\$(\\\\d+)/g, function (str, i) {\\n    return args[i - 1];\\n  });\\n}\\n\\n/**\\n * Stingify arguments to be used inside messages.\\n */\\n\\nfunction parseArgs(args /*: Array<any>*/) /*: Array<string>*/ {\\n  return args.map(function (val) {\\n    if (val != null && val.inspect) {\\n      return val.inspect();\\n    } else {\\n      try {\\n        return JSON.stringify(val) || val + \\"\\";\\n      } catch (e) {\\n        return util.inspect(val);\\n      }\\n    }\\n  });\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-messages/lib/index.js\\n ** module id = 234\\n ** module chunks = 0\\n **/","// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\"Software\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\nvar formatRegExp = /%[sdj%]/g;\\nexports.format = function(f) {\\n  if (!isString(f)) {\\n    var objects = [];\\n    for (var i = 0; i < arguments.length; i++) {\\n      objects.push(inspect(arguments[i]));\\n    }\\n    return objects.join(\' \');\\n  }\\n\\n  var i = 1;\\n  var args = arguments;\\n  var len = args.length;\\n  var str = String(f).replace(formatRegExp, function(x) {\\n    if (x === \'%%\') return \'%\';\\n    if (i >= len) return x;\\n    switch (x) {\\n      case \'%s\': return String(args[i++]);\\n      case \'%d\': return Number(args[i++]);\\n      case \'%j\':\\n        try {\\n          return JSON.stringify(args[i++]);\\n        } catch (_) {\\n          return \'[Circular]\';\\n        }\\n      default:\\n        return x;\\n    }\\n  });\\n  for (var x = args[i]; i < len; x = args[++i]) {\\n    if (isNull(x) || !isObject(x)) {\\n      str += \' \' + x;\\n    } else {\\n      str += \' \' + inspect(x);\\n    }\\n  }\\n  return str;\\n};\\n\\n\\n// Mark that a method should not be used.\\n// Returns a modified function which warns once by default.\\n// If --no-deprecation is set, then it is a no-op.\\nexports.deprecate = function(fn, msg) {\\n  // Allow for deprecating things in the process of starting up.\\n  if (isUndefined(global.process)) {\\n    return function() {\\n      return exports.deprecate(fn, msg).apply(this, arguments);\\n    };\\n  }\\n\\n  if (process.noDeprecation === true) {\\n    return fn;\\n  }\\n\\n  var warned = false;\\n  function deprecated() {\\n    if (!warned) {\\n      if (process.throwDeprecation) {\\n        throw new Error(msg);\\n      } else if (process.traceDeprecation) {\\n        console.trace(msg);\\n      } else {\\n        console.error(msg);\\n      }\\n      warned = true;\\n    }\\n    return fn.apply(this, arguments);\\n  }\\n\\n  return deprecated;\\n};\\n\\n\\nvar debugs = {};\\nvar debugEnviron;\\nexports.debuglog = function(set) {\\n  if (isUndefined(debugEnviron))\\n    debugEnviron = process.env.NODE_DEBUG || \'\';\\n  set = set.toUpperCase();\\n  if (!debugs[set]) {\\n    if (new RegExp(\'\\\\\\\\b\' + set + \'\\\\\\\\b\', \'i\').test(debugEnviron)) {\\n      var pid = process.pid;\\n      debugs[set] = function() {\\n        var msg = exports.format.apply(exports, arguments);\\n        console.error(\'%s %d: %s\', set, pid, msg);\\n      };\\n    } else {\\n      debugs[set] = function() {};\\n    }\\n  }\\n  return debugs[set];\\n};\\n\\n\\n/**\\n * Echos the value of a value. Trys to print the value out\\n * in the best way possible given the different types.\\n *\\n * @param {Object} obj The object to print out.\\n * @param {Object} opts Optional options object that alters the output.\\n */\\n/* legacy: obj, showHidden, depth, colors*/\\nfunction inspect(obj, opts) {\\n  // default options\\n  var ctx = {\\n    seen: [],\\n    stylize: stylizeNoColor\\n  };\\n  // legacy...\\n  if (arguments.length >= 3) ctx.depth = arguments[2];\\n  if (arguments.length >= 4) ctx.colors = arguments[3];\\n  if (isBoolean(opts)) {\\n    // legacy...\\n    ctx.showHidden = opts;\\n  } else if (opts) {\\n    // got an \\"options\\" object\\n    exports._extend(ctx, opts);\\n  }\\n  // set default options\\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\\n  if (isUndefined(ctx.colors)) ctx.colors = false;\\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\\n  return formatValue(ctx, obj, ctx.depth);\\n}\\nexports.inspect = inspect;\\n\\n\\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\\ninspect.colors = {\\n  \'bold\' : [1, 22],\\n  \'italic\' : [3, 23],\\n  \'underline\' : [4, 24],\\n  \'inverse\' : [7, 27],\\n  \'white\' : [37, 39],\\n  \'grey\' : [90, 39],\\n  \'black\' : [30, 39],\\n  \'blue\' : [34, 39],\\n  \'cyan\' : [36, 39],\\n  \'green\' : [32, 39],\\n  \'magenta\' : [35, 39],\\n  \'red\' : [31, 39],\\n  \'yellow\' : [33, 39]\\n};\\n\\n// Don\'t use \'blue\' not visible on cmd.exe\\ninspect.styles = {\\n  \'special\': \'cyan\',\\n  \'number\': \'yellow\',\\n  \'boolean\': \'yellow\',\\n  \'undefined\': \'grey\',\\n  \'null\': \'bold\',\\n  \'string\': \'green\',\\n  \'date\': \'magenta\',\\n  // \\"name\\": intentionally not styling\\n  \'regexp\': \'red\'\\n};\\n\\n\\nfunction stylizeWithColor(str, styleType) {\\n  var style = inspect.styles[styleType];\\n\\n  if (style) {\\n    return \'\\\\u001b[\' + inspect.colors[style][0] + \'m\' + str +\\n           \'\\\\u001b[\' + inspect.colors[style][1] + \'m\';\\n  } else {\\n    return str;\\n  }\\n}\\n\\n\\nfunction stylizeNoColor(str, styleType) {\\n  return str;\\n}\\n\\n\\nfunction arrayToHash(array) {\\n  var hash = {};\\n\\n  array.forEach(function(val, idx) {\\n    hash[val] = true;\\n  });\\n\\n  return hash;\\n}\\n\\n\\nfunction formatValue(ctx, value, recurseTimes) {\\n  // Provide a hook for user-specified inspect functions.\\n  // Check that value is an object with an inspect function on it\\n  if (ctx.customInspect &&\\n      value &&\\n      isFunction(value.inspect) &&\\n      // Filter out the util module, it\'s inspect function is special\\n      value.inspect !== exports.inspect &&\\n      // Also filter out any prototype objects using the circular check.\\n      !(value.constructor && value.constructor.prototype === value)) {\\n    var ret = value.inspect(recurseTimes, ctx);\\n    if (!isString(ret)) {\\n      ret = formatValue(ctx, ret, recurseTimes);\\n    }\\n    return ret;\\n  }\\n\\n  // Primitive types cannot have properties\\n  var primitive = formatPrimitive(ctx, value);\\n  if (primitive) {\\n    return primitive;\\n  }\\n\\n  // Look up the keys of the object.\\n  var keys = Object.keys(value);\\n  var visibleKeys = arrayToHash(keys);\\n\\n  if (ctx.showHidden) {\\n    keys = Object.getOwnPropertyNames(value);\\n  }\\n\\n  // IE doesn\'t make error fields non-enumerable\\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\\n  if (isError(value)\\n      && (keys.indexOf(\'message\') >= 0 || keys.indexOf(\'description\') >= 0)) {\\n    return formatError(value);\\n  }\\n\\n  // Some type of object without properties can be shortcutted.\\n  if (keys.length === 0) {\\n    if (isFunction(value)) {\\n      var name = value.name ? \': \' + value.name : \'\';\\n      return ctx.stylize(\'[Function\' + name + \']\', \'special\');\\n    }\\n    if (isRegExp(value)) {\\n      return ctx.stylize(RegExp.prototype.toString.call(value), \'regexp\');\\n    }\\n    if (isDate(value)) {\\n      return ctx.stylize(Date.prototype.toString.call(value), \'date\');\\n    }\\n    if (isError(value)) {\\n      return formatError(value);\\n    }\\n  }\\n\\n  var base = \'\', array = false, braces = [\'{\', \'}\'];\\n\\n  // Make Array say that they are Array\\n  if (isArray(value)) {\\n    array = true;\\n    braces = [\'[\', \']\'];\\n  }\\n\\n  // Make functions say that they are functions\\n  if (isFunction(value)) {\\n    var n = value.name ? \': \' + value.name : \'\';\\n    base = \' [Function\' + n + \']\';\\n  }\\n\\n  // Make RegExps say that they are RegExps\\n  if (isRegExp(value)) {\\n    base = \' \' + RegExp.prototype.toString.call(value);\\n  }\\n\\n  // Make dates with properties first say the date\\n  if (isDate(value)) {\\n    base = \' \' + Date.prototype.toUTCString.call(value);\\n  }\\n\\n  // Make error with message first say the error\\n  if (isError(value)) {\\n    base = \' \' + formatError(value);\\n  }\\n\\n  if (keys.length === 0 && (!array || value.length == 0)) {\\n    return braces[0] + base + braces[1];\\n  }\\n\\n  if (recurseTimes < 0) {\\n    if (isRegExp(value)) {\\n      return ctx.stylize(RegExp.prototype.toString.call(value), \'regexp\');\\n    } else {\\n      return ctx.stylize(\'[Object]\', \'special\');\\n    }\\n  }\\n\\n  ctx.seen.push(value);\\n\\n  var output;\\n  if (array) {\\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\\n  } else {\\n    output = keys.map(function(key) {\\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\\n    });\\n  }\\n\\n  ctx.seen.pop();\\n\\n  return reduceToSingleString(output, base, braces);\\n}\\n\\n\\nfunction formatPrimitive(ctx, value) {\\n  if (isUndefined(value))\\n    return ctx.stylize(\'undefined\', \'undefined\');\\n  if (isString(value)) {\\n    var simple = \'\\\\\'\' + JSON.stringify(value).replace(/^\\"|\\"$/g, \'\')\\n                                             .replace(/\'/g, \\"\\\\\\\\\'\\")\\n                                             .replace(/\\\\\\\\\\"/g, \'\\"\') + \'\\\\\'\';\\n    return ctx.stylize(simple, \'string\');\\n  }\\n  if (isNumber(value))\\n    return ctx.stylize(\'\' + value, \'number\');\\n  if (isBoolean(value))\\n    return ctx.stylize(\'\' + value, \'boolean\');\\n  // For some reason typeof null is \\"object\\", so special case here.\\n  if (isNull(value))\\n    return ctx.stylize(\'null\', \'null\');\\n}\\n\\n\\nfunction formatError(value) {\\n  return \'[\' + Error.prototype.toString.call(value) + \']\';\\n}\\n\\n\\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\\n  var output = [];\\n  for (var i = 0, l = value.length; i < l; ++i) {\\n    if (hasOwnProperty(value, String(i))) {\\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\\n          String(i), true));\\n    } else {\\n      output.push(\'\');\\n    }\\n  }\\n  keys.forEach(function(key) {\\n    if (!key.match(/^\\\\d+$/)) {\\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\\n          key, true));\\n    }\\n  });\\n  return output;\\n}\\n\\n\\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\\n  var name, str, desc;\\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\\n  if (desc.get) {\\n    if (desc.set) {\\n      str = ctx.stylize(\'[Getter/Setter]\', \'special\');\\n    } else {\\n      str = ctx.stylize(\'[Getter]\', \'special\');\\n    }\\n  } else {\\n    if (desc.set) {\\n      str = ctx.stylize(\'[Setter]\', \'special\');\\n    }\\n  }\\n  if (!hasOwnProperty(visibleKeys, key)) {\\n    name = \'[\' + key + \']\';\\n  }\\n  if (!str) {\\n    if (ctx.seen.indexOf(desc.value) < 0) {\\n      if (isNull(recurseTimes)) {\\n        str = formatValue(ctx, desc.value, null);\\n      } else {\\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\\n      }\\n      if (str.indexOf(\'\\\\n\') > -1) {\\n        if (array) {\\n          str = str.split(\'\\\\n\').map(function(line) {\\n            return \'  \' + line;\\n          }).join(\'\\\\n\').substr(2);\\n        } else {\\n          str = \'\\\\n\' + str.split(\'\\\\n\').map(function(line) {\\n            return \'   \' + line;\\n          }).join(\'\\\\n\');\\n        }\\n      }\\n    } else {\\n      str = ctx.stylize(\'[Circular]\', \'special\');\\n    }\\n  }\\n  if (isUndefined(name)) {\\n    if (array && key.match(/^\\\\d+$/)) {\\n      return str;\\n    }\\n    name = JSON.stringify(\'\' + key);\\n    if (name.match(/^\\"([a-zA-Z_][a-zA-Z_0-9]*)\\"$/)) {\\n      name = name.substr(1, name.length - 2);\\n      name = ctx.stylize(name, \'name\');\\n    } else {\\n      name = name.replace(/\'/g, \\"\\\\\\\\\'\\")\\n                 .replace(/\\\\\\\\\\"/g, \'\\"\')\\n                 .replace(/(^\\"|\\"$)/g, \\"\'\\");\\n      name = ctx.stylize(name, \'string\');\\n    }\\n  }\\n\\n  return name + \': \' + str;\\n}\\n\\n\\nfunction reduceToSingleString(output, base, braces) {\\n  var numLinesEst = 0;\\n  var length = output.reduce(function(prev, cur) {\\n    numLinesEst++;\\n    if (cur.indexOf(\'\\\\n\') >= 0) numLinesEst++;\\n    return prev + cur.replace(/\\\\u001b\\\\[\\\\d\\\\d?m/g, \'\').length + 1;\\n  }, 0);\\n\\n  if (length > 60) {\\n    return braces[0] +\\n           (base === \'\' ? \'\' : base + \'\\\\n \') +\\n           \' \' +\\n           output.join(\',\\\\n  \') +\\n           \' \' +\\n           braces[1];\\n  }\\n\\n  return braces[0] + base + \' \' + output.join(\', \') + \' \' + braces[1];\\n}\\n\\n\\n// NOTE: These type checking functions intentionally don\'t use `instanceof`\\n// because it is fragile and can be easily faked with `Object.create()`.\\nfunction isArray(ar) {\\n  return Array.isArray(ar);\\n}\\nexports.isArray = isArray;\\n\\nfunction isBoolean(arg) {\\n  return typeof arg === \'boolean\';\\n}\\nexports.isBoolean = isBoolean;\\n\\nfunction isNull(arg) {\\n  return arg === null;\\n}\\nexports.isNull = isNull;\\n\\nfunction isNullOrUndefined(arg) {\\n  return arg == null;\\n}\\nexports.isNullOrUndefined = isNullOrUndefined;\\n\\nfunction isNumber(arg) {\\n  return typeof arg === \'number\';\\n}\\nexports.isNumber = isNumber;\\n\\nfunction isString(arg) {\\n  return typeof arg === \'string\';\\n}\\nexports.isString = isString;\\n\\nfunction isSymbol(arg) {\\n  return typeof arg === \'symbol\';\\n}\\nexports.isSymbol = isSymbol;\\n\\nfunction isUndefined(arg) {\\n  return arg === void 0;\\n}\\nexports.isUndefined = isUndefined;\\n\\nfunction isRegExp(re) {\\n  return isObject(re) && objectToString(re) === \'[object RegExp]\';\\n}\\nexports.isRegExp = isRegExp;\\n\\nfunction isObject(arg) {\\n  return typeof arg === \'object\' && arg !== null;\\n}\\nexports.isObject = isObject;\\n\\nfunction isDate(d) {\\n  return isObject(d) && objectToString(d) === \'[object Date]\';\\n}\\nexports.isDate = isDate;\\n\\nfunction isError(e) {\\n  return isObject(e) &&\\n      (objectToString(e) === \'[object Error]\' || e instanceof Error);\\n}\\nexports.isError = isError;\\n\\nfunction isFunction(arg) {\\n  return typeof arg === \'function\';\\n}\\nexports.isFunction = isFunction;\\n\\nfunction isPrimitive(arg) {\\n  return arg === null ||\\n         typeof arg === \'boolean\' ||\\n         typeof arg === \'number\' ||\\n         typeof arg === \'string\' ||\\n         typeof arg === \'symbol\' ||  // ES6 symbol\\n         typeof arg === \'undefined\';\\n}\\nexports.isPrimitive = isPrimitive;\\n\\nexports.isBuffer = require(\'./support/isBuffer\');\\n\\nfunction objectToString(o) {\\n  return Object.prototype.toString.call(o);\\n}\\n\\n\\nfunction pad(n) {\\n  return n < 10 ? \'0\' + n.toString(10) : n.toString(10);\\n}\\n\\n\\nvar months = [\'Jan\', \'Feb\', \'Mar\', \'Apr\', \'May\', \'Jun\', \'Jul\', \'Aug\', \'Sep\',\\n              \'Oct\', \'Nov\', \'Dec\'];\\n\\n// 26 Feb 16:19:34\\nfunction timestamp() {\\n  var d = new Date();\\n  var time = [pad(d.getHours()),\\n              pad(d.getMinutes()),\\n              pad(d.getSeconds())].join(\':\');\\n  return [d.getDate(), months[d.getMonth()], time].join(\' \');\\n}\\n\\n\\n// log is just a thin wrapper to console.log that prepends a timestamp\\nexports.log = function() {\\n  console.log(\'%s - %s\', timestamp(), exports.format.apply(exports, arguments));\\n};\\n\\n\\n/**\\n * Inherit the prototype methods from one constructor into another.\\n *\\n * The Function.prototype.inherits from lang.js rewritten as a standalone\\n * function (not on Function.prototype). NOTE: If this file is to be loaded\\n * during bootstrapping this function needs to be rewritten using some native\\n * functions as prototype setup using normal JavaScript does not work as\\n * expected during bootstrapping (see mirror.js in r114903).\\n *\\n * @param {function} ctor Constructor function which needs to inherit the\\n *     prototype.\\n * @param {function} superCtor Constructor function to inherit prototype from.\\n */\\nexports.inherits = require(\'inherits\');\\n\\nexports._extend = function(origin, add) {\\n  // Don\'t do anything if add isn\'t an object\\n  if (!add || !isObject(add)) return origin;\\n\\n  var keys = Object.keys(add);\\n  var i = keys.length;\\n  while (i--) {\\n    origin[keys[i]] = add[keys[i]];\\n  }\\n  return origin;\\n};\\n\\nfunction hasOwnProperty(obj, prop) {\\n  return Object.prototype.hasOwnProperty.call(obj, prop);\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/util/util.js\\n ** module id = 235\\n ** module chunks = 0\\n **/","module.exports = function isBuffer(arg) {\\n  return arg && typeof arg === \'object\'\\n    && typeof arg.copy === \'function\'\\n    && typeof arg.fill === \'function\'\\n    && typeof arg.readUInt8 === \'function\';\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js\\n ** module id = 236\\n ** module chunks = 0\\n **/","if (typeof Object.create === \'function\') {\\n  // implementation from standard node.js \'util\' module\\n  module.exports = function inherits(ctor, superCtor) {\\n    ctor.super_ = superCtor\\n    ctor.prototype = Object.create(superCtor.prototype, {\\n      constructor: {\\n        value: ctor,\\n        enumerable: false,\\n        writable: true,\\n        configurable: true\\n      }\\n    });\\n  };\\n} else {\\n  // old school shim for old browsers\\n  module.exports = function inherits(ctor, superCtor) {\\n    ctor.super_ = superCtor\\n    var TempCtor = function () {}\\n    TempCtor.prototype = superCtor.prototype\\n    ctor.prototype = new TempCtor()\\n    ctor.prototype.constructor = ctor\\n  }\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js\\n ** module id = 237\\n ** module chunks = 0\\n **/","module.exports = require(\'./globals.json\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/globals/index.js\\n ** module id = 238\\n ** module chunks = 0\\n **/","module.exports = {\\n\\t\\"builtin\\": {\\n\\t\\t\\"Array\\": false,\\n\\t\\t\\"ArrayBuffer\\": false,\\n\\t\\t\\"Boolean\\": false,\\n\\t\\t\\"constructor\\": false,\\n\\t\\t\\"DataView\\": false,\\n\\t\\t\\"Date\\": false,\\n\\t\\t\\"decodeURI\\": false,\\n\\t\\t\\"decodeURIComponent\\": false,\\n\\t\\t\\"encodeURI\\": false,\\n\\t\\t\\"encodeURIComponent\\": false,\\n\\t\\t\\"Error\\": false,\\n\\t\\t\\"escape\\": false,\\n\\t\\t\\"eval\\": false,\\n\\t\\t\\"EvalError\\": false,\\n\\t\\t\\"Float32Array\\": false,\\n\\t\\t\\"Float64Array\\": false,\\n\\t\\t\\"Function\\": false,\\n\\t\\t\\"hasOwnProperty\\": false,\\n\\t\\t\\"Infinity\\": false,\\n\\t\\t\\"Int16Array\\": false,\\n\\t\\t\\"Int32Array\\": false,\\n\\t\\t\\"Int8Array\\": false,\\n\\t\\t\\"isFinite\\": false,\\n\\t\\t\\"isNaN\\": false,\\n\\t\\t\\"isPrototypeOf\\": false,\\n\\t\\t\\"JSON\\": false,\\n\\t\\t\\"Map\\": false,\\n\\t\\t\\"Math\\": false,\\n\\t\\t\\"NaN\\": false,\\n\\t\\t\\"Number\\": false,\\n\\t\\t\\"Object\\": false,\\n\\t\\t\\"parseFloat\\": false,\\n\\t\\t\\"parseInt\\": false,\\n\\t\\t\\"Promise\\": false,\\n\\t\\t\\"propertyIsEnumerable\\": false,\\n\\t\\t\\"Proxy\\": false,\\n\\t\\t\\"RangeError\\": false,\\n\\t\\t\\"ReferenceError\\": false,\\n\\t\\t\\"Reflect\\": false,\\n\\t\\t\\"RegExp\\": false,\\n\\t\\t\\"Set\\": false,\\n\\t\\t\\"String\\": false,\\n\\t\\t\\"Symbol\\": false,\\n\\t\\t\\"SyntaxError\\": false,\\n\\t\\t\\"System\\": false,\\n\\t\\t\\"toLocaleString\\": false,\\n\\t\\t\\"toString\\": false,\\n\\t\\t\\"TypeError\\": false,\\n\\t\\t\\"Uint16Array\\": false,\\n\\t\\t\\"Uint32Array\\": false,\\n\\t\\t\\"Uint8Array\\": false,\\n\\t\\t\\"Uint8ClampedArray\\": false,\\n\\t\\t\\"undefined\\": false,\\n\\t\\t\\"unescape\\": false,\\n\\t\\t\\"URIError\\": false,\\n\\t\\t\\"valueOf\\": false,\\n\\t\\t\\"WeakMap\\": false,\\n\\t\\t\\"WeakSet\\": false\\n\\t},\\n\\t\\"es5\\": {\\n\\t\\t\\"Array\\": false,\\n\\t\\t\\"Boolean\\": false,\\n\\t\\t\\"constructor\\": false,\\n\\t\\t\\"Date\\": false,\\n\\t\\t\\"decodeURI\\": false,\\n\\t\\t\\"decodeURIComponent\\": false,\\n\\t\\t\\"encodeURI\\": false,\\n\\t\\t\\"encodeURIComponent\\": false,\\n\\t\\t\\"Error\\": false,\\n\\t\\t\\"escape\\": false,\\n\\t\\t\\"eval\\": false,\\n\\t\\t\\"EvalError\\": false,\\n\\t\\t\\"Float32Array\\": false,\\n\\t\\t\\"Float64Array\\": false,\\n\\t\\t\\"Function\\": false,\\n\\t\\t\\"hasOwnProperty\\": false,\\n\\t\\t\\"Infinity\\": false,\\n\\t\\t\\"isFinite\\": false,\\n\\t\\t\\"isNaN\\": false,\\n\\t\\t\\"isPrototypeOf\\": false,\\n\\t\\t\\"JSON\\": false,\\n\\t\\t\\"Math\\": false,\\n\\t\\t\\"NaN\\": false,\\n\\t\\t\\"Number\\": false,\\n\\t\\t\\"Object\\": false,\\n\\t\\t\\"parseFloat\\": false,\\n\\t\\t\\"parseInt\\": false,\\n\\t\\t\\"propertyIsEnumerable\\": false,\\n\\t\\t\\"RangeError\\": false,\\n\\t\\t\\"ReferenceError\\": false,\\n\\t\\t\\"RegExp\\": false,\\n\\t\\t\\"String\\": false,\\n\\t\\t\\"SyntaxError\\": false,\\n\\t\\t\\"toLocaleString\\": false,\\n\\t\\t\\"toString\\": false,\\n\\t\\t\\"TypeError\\": false,\\n\\t\\t\\"undefined\\": false,\\n\\t\\t\\"unescape\\": false,\\n\\t\\t\\"URIError\\": false,\\n\\t\\t\\"valueOf\\": false\\n\\t},\\n\\t\\"es6\\": {\\n\\t\\t\\"Array\\": false,\\n\\t\\t\\"ArrayBuffer\\": false,\\n\\t\\t\\"Boolean\\": false,\\n\\t\\t\\"constructor\\": false,\\n\\t\\t\\"DataView\\": false,\\n\\t\\t\\"Date\\": false,\\n\\t\\t\\"decodeURI\\": false,\\n\\t\\t\\"decodeURIComponent\\": false,\\n\\t\\t\\"encodeURI\\": false,\\n\\t\\t\\"encodeURIComponent\\": false,\\n\\t\\t\\"Error\\": false,\\n\\t\\t\\"escape\\": false,\\n\\t\\t\\"eval\\": false,\\n\\t\\t\\"EvalError\\": false,\\n\\t\\t\\"Float32Array\\": false,\\n\\t\\t\\"Float64Array\\": false,\\n\\t\\t\\"Function\\": false,\\n\\t\\t\\"hasOwnProperty\\": false,\\n\\t\\t\\"Infinity\\": false,\\n\\t\\t\\"Int16Array\\": false,\\n\\t\\t\\"Int32Array\\": false,\\n\\t\\t\\"Int8Array\\": false,\\n\\t\\t\\"isFinite\\": false,\\n\\t\\t\\"isNaN\\": false,\\n\\t\\t\\"isPrototypeOf\\": false,\\n\\t\\t\\"JSON\\": false,\\n\\t\\t\\"Map\\": false,\\n\\t\\t\\"Math\\": false,\\n\\t\\t\\"NaN\\": false,\\n\\t\\t\\"Number\\": false,\\n\\t\\t\\"Object\\": false,\\n\\t\\t\\"parseFloat\\": false,\\n\\t\\t\\"parseInt\\": false,\\n\\t\\t\\"Promise\\": false,\\n\\t\\t\\"propertyIsEnumerable\\": false,\\n\\t\\t\\"Proxy\\": false,\\n\\t\\t\\"RangeError\\": false,\\n\\t\\t\\"ReferenceError\\": false,\\n\\t\\t\\"Reflect\\": false,\\n\\t\\t\\"RegExp\\": false,\\n\\t\\t\\"Set\\": false,\\n\\t\\t\\"String\\": false,\\n\\t\\t\\"Symbol\\": false,\\n\\t\\t\\"SyntaxError\\": false,\\n\\t\\t\\"System\\": false,\\n\\t\\t\\"toLocaleString\\": false,\\n\\t\\t\\"toString\\": false,\\n\\t\\t\\"TypeError\\": false,\\n\\t\\t\\"Uint16Array\\": false,\\n\\t\\t\\"Uint32Array\\": false,\\n\\t\\t\\"Uint8Array\\": false,\\n\\t\\t\\"Uint8ClampedArray\\": false,\\n\\t\\t\\"undefined\\": false,\\n\\t\\t\\"unescape\\": false,\\n\\t\\t\\"URIError\\": false,\\n\\t\\t\\"valueOf\\": false,\\n\\t\\t\\"WeakMap\\": false,\\n\\t\\t\\"WeakSet\\": false\\n\\t},\\n\\t\\"browser\\": {\\n\\t\\t\\"addEventListener\\": false,\\n\\t\\t\\"alert\\": false,\\n\\t\\t\\"AnalyserNode\\": false,\\n\\t\\t\\"AnimationEvent\\": false,\\n\\t\\t\\"applicationCache\\": false,\\n\\t\\t\\"ApplicationCache\\": false,\\n\\t\\t\\"ApplicationCacheErrorEvent\\": false,\\n\\t\\t\\"atob\\": false,\\n\\t\\t\\"Attr\\": false,\\n\\t\\t\\"Audio\\": false,\\n\\t\\t\\"AudioBuffer\\": false,\\n\\t\\t\\"AudioBufferSourceNode\\": false,\\n\\t\\t\\"AudioContext\\": false,\\n\\t\\t\\"AudioDestinationNode\\": false,\\n\\t\\t\\"AudioListener\\": false,\\n\\t\\t\\"AudioNode\\": false,\\n\\t\\t\\"AudioParam\\": false,\\n\\t\\t\\"AudioProcessingEvent\\": false,\\n\\t\\t\\"AutocompleteErrorEvent\\": false,\\n\\t\\t\\"BarProp\\": false,\\n\\t\\t\\"BatteryManager\\": false,\\n\\t\\t\\"BeforeUnloadEvent\\": false,\\n\\t\\t\\"BiquadFilterNode\\": false,\\n\\t\\t\\"Blob\\": false,\\n\\t\\t\\"blur\\": false,\\n\\t\\t\\"btoa\\": false,\\n\\t\\t\\"Cache\\": false,\\n\\t\\t\\"caches\\": false,\\n\\t\\t\\"CacheStorage\\": false,\\n\\t\\t\\"cancelAnimationFrame\\": false,\\n\\t\\t\\"CanvasGradient\\": false,\\n\\t\\t\\"CanvasPattern\\": false,\\n\\t\\t\\"CanvasRenderingContext2D\\": false,\\n\\t\\t\\"CDATASection\\": false,\\n\\t\\t\\"ChannelMergerNode\\": false,\\n\\t\\t\\"ChannelSplitterNode\\": false,\\n\\t\\t\\"CharacterData\\": false,\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"clientInformation\\": false,\\n\\t\\t\\"ClientRect\\": false,\\n\\t\\t\\"ClientRectList\\": false,\\n\\t\\t\\"ClipboardEvent\\": false,\\n\\t\\t\\"close\\": false,\\n\\t\\t\\"closed\\": false,\\n\\t\\t\\"CloseEvent\\": false,\\n\\t\\t\\"Comment\\": false,\\n\\t\\t\\"CompositionEvent\\": false,\\n\\t\\t\\"confirm\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"ConvolverNode\\": false,\\n\\t\\t\\"crypto\\": false,\\n\\t\\t\\"Crypto\\": false,\\n\\t\\t\\"CryptoKey\\": false,\\n\\t\\t\\"CSS\\": false,\\n\\t\\t\\"CSSFontFaceRule\\": false,\\n\\t\\t\\"CSSImportRule\\": false,\\n\\t\\t\\"CSSKeyframeRule\\": false,\\n\\t\\t\\"CSSKeyframesRule\\": false,\\n\\t\\t\\"CSSMediaRule\\": false,\\n\\t\\t\\"CSSPageRule\\": false,\\n\\t\\t\\"CSSRule\\": false,\\n\\t\\t\\"CSSRuleList\\": false,\\n\\t\\t\\"CSSStyleDeclaration\\": false,\\n\\t\\t\\"CSSStyleRule\\": false,\\n\\t\\t\\"CSSStyleSheet\\": false,\\n\\t\\t\\"CSSSupportsRule\\": false,\\n\\t\\t\\"CSSUnknownRule\\": false,\\n\\t\\t\\"CSSViewportRule\\": false,\\n\\t\\t\\"CustomEvent\\": false,\\n\\t\\t\\"DataTransfer\\": false,\\n\\t\\t\\"DataTransferItem\\": false,\\n\\t\\t\\"DataTransferItemList\\": false,\\n\\t\\t\\"Debug\\": false,\\n\\t\\t\\"defaultStatus\\": false,\\n\\t\\t\\"defaultstatus\\": false,\\n\\t\\t\\"DelayNode\\": false,\\n\\t\\t\\"DeviceMotionEvent\\": false,\\n\\t\\t\\"DeviceOrientationEvent\\": false,\\n\\t\\t\\"devicePixelRatio\\": false,\\n\\t\\t\\"dispatchEvent\\": false,\\n\\t\\t\\"document\\": false,\\n\\t\\t\\"Document\\": false,\\n\\t\\t\\"DocumentFragment\\": false,\\n\\t\\t\\"DocumentType\\": false,\\n\\t\\t\\"DOMError\\": false,\\n\\t\\t\\"DOMException\\": false,\\n\\t\\t\\"DOMImplementation\\": false,\\n\\t\\t\\"DOMParser\\": false,\\n\\t\\t\\"DOMSettableTokenList\\": false,\\n\\t\\t\\"DOMStringList\\": false,\\n\\t\\t\\"DOMStringMap\\": false,\\n\\t\\t\\"DOMTokenList\\": false,\\n\\t\\t\\"DragEvent\\": false,\\n\\t\\t\\"DynamicsCompressorNode\\": false,\\n\\t\\t\\"Element\\": false,\\n\\t\\t\\"ElementTimeControl\\": false,\\n\\t\\t\\"ErrorEvent\\": false,\\n\\t\\t\\"event\\": false,\\n\\t\\t\\"Event\\": false,\\n\\t\\t\\"EventSource\\": false,\\n\\t\\t\\"EventTarget\\": false,\\n\\t\\t\\"external\\": false,\\n\\t\\t\\"fetch\\": false,\\n\\t\\t\\"File\\": false,\\n\\t\\t\\"FileError\\": false,\\n\\t\\t\\"FileList\\": false,\\n\\t\\t\\"FileReader\\": false,\\n\\t\\t\\"find\\": false,\\n\\t\\t\\"focus\\": false,\\n\\t\\t\\"FocusEvent\\": false,\\n\\t\\t\\"FontFace\\": false,\\n\\t\\t\\"FormData\\": false,\\n\\t\\t\\"frameElement\\": false,\\n\\t\\t\\"frames\\": false,\\n\\t\\t\\"GainNode\\": false,\\n\\t\\t\\"Gamepad\\": false,\\n\\t\\t\\"GamepadButton\\": false,\\n\\t\\t\\"GamepadEvent\\": false,\\n\\t\\t\\"getComputedStyle\\": false,\\n\\t\\t\\"getSelection\\": false,\\n\\t\\t\\"HashChangeEvent\\": false,\\n\\t\\t\\"Headers\\": false,\\n\\t\\t\\"history\\": false,\\n\\t\\t\\"History\\": false,\\n\\t\\t\\"HTMLAllCollection\\": false,\\n\\t\\t\\"HTMLAnchorElement\\": false,\\n\\t\\t\\"HTMLAppletElement\\": false,\\n\\t\\t\\"HTMLAreaElement\\": false,\\n\\t\\t\\"HTMLAudioElement\\": false,\\n\\t\\t\\"HTMLBaseElement\\": false,\\n\\t\\t\\"HTMLBlockquoteElement\\": false,\\n\\t\\t\\"HTMLBodyElement\\": false,\\n\\t\\t\\"HTMLBRElement\\": false,\\n\\t\\t\\"HTMLButtonElement\\": false,\\n\\t\\t\\"HTMLCanvasElement\\": false,\\n\\t\\t\\"HTMLCollection\\": false,\\n\\t\\t\\"HTMLContentElement\\": false,\\n\\t\\t\\"HTMLDataListElement\\": false,\\n\\t\\t\\"HTMLDetailsElement\\": false,\\n\\t\\t\\"HTMLDialogElement\\": false,\\n\\t\\t\\"HTMLDirectoryElement\\": false,\\n\\t\\t\\"HTMLDivElement\\": false,\\n\\t\\t\\"HTMLDListElement\\": false,\\n\\t\\t\\"HTMLDocument\\": false,\\n\\t\\t\\"HTMLElement\\": false,\\n\\t\\t\\"HTMLEmbedElement\\": false,\\n\\t\\t\\"HTMLFieldSetElement\\": false,\\n\\t\\t\\"HTMLFontElement\\": false,\\n\\t\\t\\"HTMLFormControlsCollection\\": false,\\n\\t\\t\\"HTMLFormElement\\": false,\\n\\t\\t\\"HTMLFrameElement\\": false,\\n\\t\\t\\"HTMLFrameSetElement\\": false,\\n\\t\\t\\"HTMLHeadElement\\": false,\\n\\t\\t\\"HTMLHeadingElement\\": false,\\n\\t\\t\\"HTMLHRElement\\": false,\\n\\t\\t\\"HTMLHtmlElement\\": false,\\n\\t\\t\\"HTMLIFrameElement\\": false,\\n\\t\\t\\"HTMLImageElement\\": false,\\n\\t\\t\\"HTMLInputElement\\": false,\\n\\t\\t\\"HTMLIsIndexElement\\": false,\\n\\t\\t\\"HTMLKeygenElement\\": false,\\n\\t\\t\\"HTMLLabelElement\\": false,\\n\\t\\t\\"HTMLLayerElement\\": false,\\n\\t\\t\\"HTMLLegendElement\\": false,\\n\\t\\t\\"HTMLLIElement\\": false,\\n\\t\\t\\"HTMLLinkElement\\": false,\\n\\t\\t\\"HTMLMapElement\\": false,\\n\\t\\t\\"HTMLMarqueeElement\\": false,\\n\\t\\t\\"HTMLMediaElement\\": false,\\n\\t\\t\\"HTMLMenuElement\\": false,\\n\\t\\t\\"HTMLMetaElement\\": false,\\n\\t\\t\\"HTMLMeterElement\\": false,\\n\\t\\t\\"HTMLModElement\\": false,\\n\\t\\t\\"HTMLObjectElement\\": false,\\n\\t\\t\\"HTMLOListElement\\": false,\\n\\t\\t\\"HTMLOptGroupElement\\": false,\\n\\t\\t\\"HTMLOptionElement\\": false,\\n\\t\\t\\"HTMLOptionsCollection\\": false,\\n\\t\\t\\"HTMLOutputElement\\": false,\\n\\t\\t\\"HTMLParagraphElement\\": false,\\n\\t\\t\\"HTMLParamElement\\": false,\\n\\t\\t\\"HTMLPictureElement\\": false,\\n\\t\\t\\"HTMLPreElement\\": false,\\n\\t\\t\\"HTMLProgressElement\\": false,\\n\\t\\t\\"HTMLQuoteElement\\": false,\\n\\t\\t\\"HTMLScriptElement\\": false,\\n\\t\\t\\"HTMLSelectElement\\": false,\\n\\t\\t\\"HTMLShadowElement\\": false,\\n\\t\\t\\"HTMLSourceElement\\": false,\\n\\t\\t\\"HTMLSpanElement\\": false,\\n\\t\\t\\"HTMLStyleElement\\": false,\\n\\t\\t\\"HTMLTableCaptionElement\\": false,\\n\\t\\t\\"HTMLTableCellElement\\": false,\\n\\t\\t\\"HTMLTableColElement\\": false,\\n\\t\\t\\"HTMLTableElement\\": false,\\n\\t\\t\\"HTMLTableRowElement\\": false,\\n\\t\\t\\"HTMLTableSectionElement\\": false,\\n\\t\\t\\"HTMLTemplateElement\\": false,\\n\\t\\t\\"HTMLTextAreaElement\\": false,\\n\\t\\t\\"HTMLTitleElement\\": false,\\n\\t\\t\\"HTMLTrackElement\\": false,\\n\\t\\t\\"HTMLUListElement\\": false,\\n\\t\\t\\"HTMLUnknownElement\\": false,\\n\\t\\t\\"HTMLVideoElement\\": false,\\n\\t\\t\\"IDBCursor\\": false,\\n\\t\\t\\"IDBCursorWithValue\\": false,\\n\\t\\t\\"IDBDatabase\\": false,\\n\\t\\t\\"IDBEnvironment\\": false,\\n\\t\\t\\"IDBFactory\\": false,\\n\\t\\t\\"IDBIndex\\": false,\\n\\t\\t\\"IDBKeyRange\\": false,\\n\\t\\t\\"IDBObjectStore\\": false,\\n\\t\\t\\"IDBOpenDBRequest\\": false,\\n\\t\\t\\"IDBRequest\\": false,\\n\\t\\t\\"IDBTransaction\\": false,\\n\\t\\t\\"IDBVersionChangeEvent\\": false,\\n\\t\\t\\"Image\\": false,\\n\\t\\t\\"ImageBitmap\\": false,\\n\\t\\t\\"ImageData\\": false,\\n\\t\\t\\"indexedDB\\": false,\\n\\t\\t\\"innerHeight\\": false,\\n\\t\\t\\"innerWidth\\": false,\\n\\t\\t\\"InputEvent\\": false,\\n\\t\\t\\"InputMethodContext\\": false,\\n\\t\\t\\"Intl\\": false,\\n\\t\\t\\"KeyboardEvent\\": false,\\n\\t\\t\\"length\\": false,\\n\\t\\t\\"localStorage\\": false,\\n\\t\\t\\"location\\": false,\\n\\t\\t\\"Location\\": false,\\n\\t\\t\\"locationbar\\": false,\\n\\t\\t\\"matchMedia\\": false,\\n\\t\\t\\"MediaElementAudioSourceNode\\": false,\\n\\t\\t\\"MediaEncryptedEvent\\": false,\\n\\t\\t\\"MediaError\\": false,\\n\\t\\t\\"MediaKeyError\\": false,\\n\\t\\t\\"MediaKeyEvent\\": false,\\n\\t\\t\\"MediaKeyMessageEvent\\": false,\\n\\t\\t\\"MediaKeys\\": false,\\n\\t\\t\\"MediaKeySession\\": false,\\n\\t\\t\\"MediaKeyStatusMap\\": false,\\n\\t\\t\\"MediaKeySystemAccess\\": false,\\n\\t\\t\\"MediaList\\": false,\\n\\t\\t\\"MediaQueryList\\": false,\\n\\t\\t\\"MediaQueryListEvent\\": false,\\n\\t\\t\\"MediaSource\\": false,\\n\\t\\t\\"MediaStreamAudioDestinationNode\\": false,\\n\\t\\t\\"MediaStreamAudioSourceNode\\": false,\\n\\t\\t\\"MediaStreamEvent\\": false,\\n\\t\\t\\"MediaStreamTrack\\": false,\\n\\t\\t\\"menubar\\": false,\\n\\t\\t\\"MessageChannel\\": false,\\n\\t\\t\\"MessageEvent\\": false,\\n\\t\\t\\"MessagePort\\": false,\\n\\t\\t\\"MIDIAccess\\": false,\\n\\t\\t\\"MIDIConnectionEvent\\": false,\\n\\t\\t\\"MIDIInput\\": false,\\n\\t\\t\\"MIDIInputMap\\": false,\\n\\t\\t\\"MIDIMessageEvent\\": false,\\n\\t\\t\\"MIDIOutput\\": false,\\n\\t\\t\\"MIDIOutputMap\\": false,\\n\\t\\t\\"MIDIPort\\": false,\\n\\t\\t\\"MimeType\\": false,\\n\\t\\t\\"MimeTypeArray\\": false,\\n\\t\\t\\"MouseEvent\\": false,\\n\\t\\t\\"moveBy\\": false,\\n\\t\\t\\"moveTo\\": false,\\n\\t\\t\\"MutationEvent\\": false,\\n\\t\\t\\"MutationObserver\\": false,\\n\\t\\t\\"MutationRecord\\": false,\\n\\t\\t\\"name\\": false,\\n\\t\\t\\"NamedNodeMap\\": false,\\n\\t\\t\\"navigator\\": false,\\n\\t\\t\\"Navigator\\": false,\\n\\t\\t\\"Node\\": false,\\n\\t\\t\\"NodeFilter\\": false,\\n\\t\\t\\"NodeIterator\\": false,\\n\\t\\t\\"NodeList\\": false,\\n\\t\\t\\"Notification\\": false,\\n\\t\\t\\"OfflineAudioCompletionEvent\\": false,\\n\\t\\t\\"OfflineAudioContext\\": false,\\n\\t\\t\\"offscreenBuffering\\": false,\\n\\t\\t\\"onbeforeunload\\": true,\\n\\t\\t\\"onblur\\": true,\\n\\t\\t\\"onerror\\": true,\\n\\t\\t\\"onfocus\\": true,\\n\\t\\t\\"onload\\": true,\\n\\t\\t\\"onresize\\": true,\\n\\t\\t\\"onunload\\": true,\\n\\t\\t\\"open\\": false,\\n\\t\\t\\"openDatabase\\": false,\\n\\t\\t\\"opener\\": false,\\n\\t\\t\\"opera\\": false,\\n\\t\\t\\"Option\\": false,\\n\\t\\t\\"OscillatorNode\\": false,\\n\\t\\t\\"outerHeight\\": false,\\n\\t\\t\\"outerWidth\\": false,\\n\\t\\t\\"PageTransitionEvent\\": false,\\n\\t\\t\\"pageXOffset\\": false,\\n\\t\\t\\"pageYOffset\\": false,\\n\\t\\t\\"parent\\": false,\\n\\t\\t\\"Path2D\\": false,\\n\\t\\t\\"performance\\": false,\\n\\t\\t\\"Performance\\": false,\\n\\t\\t\\"PerformanceEntry\\": false,\\n\\t\\t\\"PerformanceMark\\": false,\\n\\t\\t\\"PerformanceMeasure\\": false,\\n\\t\\t\\"PerformanceNavigation\\": false,\\n\\t\\t\\"PerformanceResourceTiming\\": false,\\n\\t\\t\\"PerformanceTiming\\": false,\\n\\t\\t\\"PeriodicWave\\": false,\\n\\t\\t\\"Permissions\\": false,\\n\\t\\t\\"PermissionStatus\\": false,\\n\\t\\t\\"personalbar\\": false,\\n\\t\\t\\"Plugin\\": false,\\n\\t\\t\\"PluginArray\\": false,\\n\\t\\t\\"PopStateEvent\\": false,\\n\\t\\t\\"postMessage\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"ProcessingInstruction\\": false,\\n\\t\\t\\"ProgressEvent\\": false,\\n\\t\\t\\"prompt\\": false,\\n\\t\\t\\"PushManager\\": false,\\n\\t\\t\\"PushSubscription\\": false,\\n\\t\\t\\"RadioNodeList\\": false,\\n\\t\\t\\"Range\\": false,\\n\\t\\t\\"ReadableByteStream\\": false,\\n\\t\\t\\"ReadableStream\\": false,\\n\\t\\t\\"removeEventListener\\": false,\\n\\t\\t\\"Request\\": false,\\n\\t\\t\\"requestAnimationFrame\\": false,\\n\\t\\t\\"resizeBy\\": false,\\n\\t\\t\\"resizeTo\\": false,\\n\\t\\t\\"Response\\": false,\\n\\t\\t\\"RTCIceCandidate\\": false,\\n\\t\\t\\"RTCSessionDescription\\": false,\\n\\t\\t\\"screen\\": false,\\n\\t\\t\\"Screen\\": false,\\n\\t\\t\\"screenLeft\\": false,\\n\\t\\t\\"ScreenOrientation\\": false,\\n\\t\\t\\"screenTop\\": false,\\n\\t\\t\\"screenX\\": false,\\n\\t\\t\\"screenY\\": false,\\n\\t\\t\\"ScriptProcessorNode\\": false,\\n\\t\\t\\"scroll\\": false,\\n\\t\\t\\"scrollbars\\": false,\\n\\t\\t\\"scrollBy\\": false,\\n\\t\\t\\"scrollTo\\": false,\\n\\t\\t\\"scrollX\\": false,\\n\\t\\t\\"scrollY\\": false,\\n\\t\\t\\"SecurityPolicyViolationEvent\\": false,\\n\\t\\t\\"Selection\\": false,\\n\\t\\t\\"self\\": false,\\n\\t\\t\\"ServiceWorker\\": false,\\n\\t\\t\\"ServiceWorkerContainer\\": false,\\n\\t\\t\\"ServiceWorkerRegistration\\": false,\\n\\t\\t\\"sessionStorage\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false,\\n\\t\\t\\"ShadowRoot\\": false,\\n\\t\\t\\"SharedWorker\\": false,\\n\\t\\t\\"showModalDialog\\": false,\\n\\t\\t\\"speechSynthesis\\": false,\\n\\t\\t\\"SpeechSynthesisEvent\\": false,\\n\\t\\t\\"SpeechSynthesisUtterance\\": false,\\n\\t\\t\\"status\\": false,\\n\\t\\t\\"statusbar\\": false,\\n\\t\\t\\"stop\\": false,\\n\\t\\t\\"Storage\\": false,\\n\\t\\t\\"StorageEvent\\": false,\\n\\t\\t\\"styleMedia\\": false,\\n\\t\\t\\"StyleSheet\\": false,\\n\\t\\t\\"StyleSheetList\\": false,\\n\\t\\t\\"SubtleCrypto\\": false,\\n\\t\\t\\"SVGAElement\\": false,\\n\\t\\t\\"SVGAltGlyphDefElement\\": false,\\n\\t\\t\\"SVGAltGlyphElement\\": false,\\n\\t\\t\\"SVGAltGlyphItemElement\\": false,\\n\\t\\t\\"SVGAngle\\": false,\\n\\t\\t\\"SVGAnimateColorElement\\": false,\\n\\t\\t\\"SVGAnimatedAngle\\": false,\\n\\t\\t\\"SVGAnimatedBoolean\\": false,\\n\\t\\t\\"SVGAnimatedEnumeration\\": false,\\n\\t\\t\\"SVGAnimatedInteger\\": false,\\n\\t\\t\\"SVGAnimatedLength\\": false,\\n\\t\\t\\"SVGAnimatedLengthList\\": false,\\n\\t\\t\\"SVGAnimatedNumber\\": false,\\n\\t\\t\\"SVGAnimatedNumberList\\": false,\\n\\t\\t\\"SVGAnimatedPathData\\": false,\\n\\t\\t\\"SVGAnimatedPoints\\": false,\\n\\t\\t\\"SVGAnimatedPreserveAspectRatio\\": false,\\n\\t\\t\\"SVGAnimatedRect\\": false,\\n\\t\\t\\"SVGAnimatedString\\": false,\\n\\t\\t\\"SVGAnimatedTransformList\\": false,\\n\\t\\t\\"SVGAnimateElement\\": false,\\n\\t\\t\\"SVGAnimateMotionElement\\": false,\\n\\t\\t\\"SVGAnimateTransformElement\\": false,\\n\\t\\t\\"SVGAnimationElement\\": false,\\n\\t\\t\\"SVGCircleElement\\": false,\\n\\t\\t\\"SVGClipPathElement\\": false,\\n\\t\\t\\"SVGColor\\": false,\\n\\t\\t\\"SVGColorProfileElement\\": false,\\n\\t\\t\\"SVGColorProfileRule\\": false,\\n\\t\\t\\"SVGComponentTransferFunctionElement\\": false,\\n\\t\\t\\"SVGCSSRule\\": false,\\n\\t\\t\\"SVGCursorElement\\": false,\\n\\t\\t\\"SVGDefsElement\\": false,\\n\\t\\t\\"SVGDescElement\\": false,\\n\\t\\t\\"SVGDiscardElement\\": false,\\n\\t\\t\\"SVGDocument\\": false,\\n\\t\\t\\"SVGElement\\": false,\\n\\t\\t\\"SVGElementInstance\\": false,\\n\\t\\t\\"SVGElementInstanceList\\": false,\\n\\t\\t\\"SVGEllipseElement\\": false,\\n\\t\\t\\"SVGEvent\\": false,\\n\\t\\t\\"SVGExternalResourcesRequired\\": false,\\n\\t\\t\\"SVGFEBlendElement\\": false,\\n\\t\\t\\"SVGFEColorMatrixElement\\": false,\\n\\t\\t\\"SVGFEComponentTransferElement\\": false,\\n\\t\\t\\"SVGFECompositeElement\\": false,\\n\\t\\t\\"SVGFEConvolveMatrixElement\\": false,\\n\\t\\t\\"SVGFEDiffuseLightingElement\\": false,\\n\\t\\t\\"SVGFEDisplacementMapElement\\": false,\\n\\t\\t\\"SVGFEDistantLightElement\\": false,\\n\\t\\t\\"SVGFEDropShadowElement\\": false,\\n\\t\\t\\"SVGFEFloodElement\\": false,\\n\\t\\t\\"SVGFEFuncAElement\\": false,\\n\\t\\t\\"SVGFEFuncBElement\\": false,\\n\\t\\t\\"SVGFEFuncGElement\\": false,\\n\\t\\t\\"SVGFEFuncRElement\\": false,\\n\\t\\t\\"SVGFEGaussianBlurElement\\": false,\\n\\t\\t\\"SVGFEImageElement\\": false,\\n\\t\\t\\"SVGFEMergeElement\\": false,\\n\\t\\t\\"SVGFEMergeNodeElement\\": false,\\n\\t\\t\\"SVGFEMorphologyElement\\": false,\\n\\t\\t\\"SVGFEOffsetElement\\": false,\\n\\t\\t\\"SVGFEPointLightElement\\": false,\\n\\t\\t\\"SVGFESpecularLightingElement\\": false,\\n\\t\\t\\"SVGFESpotLightElement\\": false,\\n\\t\\t\\"SVGFETileElement\\": false,\\n\\t\\t\\"SVGFETurbulenceElement\\": false,\\n\\t\\t\\"SVGFilterElement\\": false,\\n\\t\\t\\"SVGFilterPrimitiveStandardAttributes\\": false,\\n\\t\\t\\"SVGFitToViewBox\\": false,\\n\\t\\t\\"SVGFontElement\\": false,\\n\\t\\t\\"SVGFontFaceElement\\": false,\\n\\t\\t\\"SVGFontFaceFormatElement\\": false,\\n\\t\\t\\"SVGFontFaceNameElement\\": false,\\n\\t\\t\\"SVGFontFaceSrcElement\\": false,\\n\\t\\t\\"SVGFontFaceUriElement\\": false,\\n\\t\\t\\"SVGForeignObjectElement\\": false,\\n\\t\\t\\"SVGGElement\\": false,\\n\\t\\t\\"SVGGeometryElement\\": false,\\n\\t\\t\\"SVGGlyphElement\\": false,\\n\\t\\t\\"SVGGlyphRefElement\\": false,\\n\\t\\t\\"SVGGradientElement\\": false,\\n\\t\\t\\"SVGGraphicsElement\\": false,\\n\\t\\t\\"SVGHKernElement\\": false,\\n\\t\\t\\"SVGICCColor\\": false,\\n\\t\\t\\"SVGImageElement\\": false,\\n\\t\\t\\"SVGLangSpace\\": false,\\n\\t\\t\\"SVGLength\\": false,\\n\\t\\t\\"SVGLengthList\\": false,\\n\\t\\t\\"SVGLinearGradientElement\\": false,\\n\\t\\t\\"SVGLineElement\\": false,\\n\\t\\t\\"SVGLocatable\\": false,\\n\\t\\t\\"SVGMarkerElement\\": false,\\n\\t\\t\\"SVGMaskElement\\": false,\\n\\t\\t\\"SVGMatrix\\": false,\\n\\t\\t\\"SVGMetadataElement\\": false,\\n\\t\\t\\"SVGMissingGlyphElement\\": false,\\n\\t\\t\\"SVGMPathElement\\": false,\\n\\t\\t\\"SVGNumber\\": false,\\n\\t\\t\\"SVGNumberList\\": false,\\n\\t\\t\\"SVGPaint\\": false,\\n\\t\\t\\"SVGPathElement\\": false,\\n\\t\\t\\"SVGPathSeg\\": false,\\n\\t\\t\\"SVGPathSegArcAbs\\": false,\\n\\t\\t\\"SVGPathSegArcRel\\": false,\\n\\t\\t\\"SVGPathSegClosePath\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicRel\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicSmoothAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicSmoothRel\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticRel\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticSmoothAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticSmoothRel\\": false,\\n\\t\\t\\"SVGPathSegLinetoAbs\\": false,\\n\\t\\t\\"SVGPathSegLinetoHorizontalAbs\\": false,\\n\\t\\t\\"SVGPathSegLinetoHorizontalRel\\": false,\\n\\t\\t\\"SVGPathSegLinetoRel\\": false,\\n\\t\\t\\"SVGPathSegLinetoVerticalAbs\\": false,\\n\\t\\t\\"SVGPathSegLinetoVerticalRel\\": false,\\n\\t\\t\\"SVGPathSegList\\": false,\\n\\t\\t\\"SVGPathSegMovetoAbs\\": false,\\n\\t\\t\\"SVGPathSegMovetoRel\\": false,\\n\\t\\t\\"SVGPatternElement\\": false,\\n\\t\\t\\"SVGPoint\\": false,\\n\\t\\t\\"SVGPointList\\": false,\\n\\t\\t\\"SVGPolygonElement\\": false,\\n\\t\\t\\"SVGPolylineElement\\": false,\\n\\t\\t\\"SVGPreserveAspectRatio\\": false,\\n\\t\\t\\"SVGRadialGradientElement\\": false,\\n\\t\\t\\"SVGRect\\": false,\\n\\t\\t\\"SVGRectElement\\": false,\\n\\t\\t\\"SVGRenderingIntent\\": false,\\n\\t\\t\\"SVGScriptElement\\": false,\\n\\t\\t\\"SVGSetElement\\": false,\\n\\t\\t\\"SVGStopElement\\": false,\\n\\t\\t\\"SVGStringList\\": false,\\n\\t\\t\\"SVGStylable\\": false,\\n\\t\\t\\"SVGStyleElement\\": false,\\n\\t\\t\\"SVGSVGElement\\": false,\\n\\t\\t\\"SVGSwitchElement\\": false,\\n\\t\\t\\"SVGSymbolElement\\": false,\\n\\t\\t\\"SVGTests\\": false,\\n\\t\\t\\"SVGTextContentElement\\": false,\\n\\t\\t\\"SVGTextElement\\": false,\\n\\t\\t\\"SVGTextPathElement\\": false,\\n\\t\\t\\"SVGTextPositioningElement\\": false,\\n\\t\\t\\"SVGTitleElement\\": false,\\n\\t\\t\\"SVGTransform\\": false,\\n\\t\\t\\"SVGTransformable\\": false,\\n\\t\\t\\"SVGTransformList\\": false,\\n\\t\\t\\"SVGTRefElement\\": false,\\n\\t\\t\\"SVGTSpanElement\\": false,\\n\\t\\t\\"SVGUnitTypes\\": false,\\n\\t\\t\\"SVGURIReference\\": false,\\n\\t\\t\\"SVGUseElement\\": false,\\n\\t\\t\\"SVGViewElement\\": false,\\n\\t\\t\\"SVGViewSpec\\": false,\\n\\t\\t\\"SVGVKernElement\\": false,\\n\\t\\t\\"SVGZoomAndPan\\": false,\\n\\t\\t\\"SVGZoomEvent\\": false,\\n\\t\\t\\"Text\\": false,\\n\\t\\t\\"TextDecoder\\": false,\\n\\t\\t\\"TextEncoder\\": false,\\n\\t\\t\\"TextEvent\\": false,\\n\\t\\t\\"TextMetrics\\": false,\\n\\t\\t\\"TextTrack\\": false,\\n\\t\\t\\"TextTrackCue\\": false,\\n\\t\\t\\"TextTrackCueList\\": false,\\n\\t\\t\\"TextTrackList\\": false,\\n\\t\\t\\"TimeEvent\\": false,\\n\\t\\t\\"TimeRanges\\": false,\\n\\t\\t\\"toolbar\\": false,\\n\\t\\t\\"top\\": false,\\n\\t\\t\\"Touch\\": false,\\n\\t\\t\\"TouchEvent\\": false,\\n\\t\\t\\"TouchList\\": false,\\n\\t\\t\\"TrackEvent\\": false,\\n\\t\\t\\"TransitionEvent\\": false,\\n\\t\\t\\"TreeWalker\\": false,\\n\\t\\t\\"UIEvent\\": false,\\n\\t\\t\\"URL\\": false,\\n\\t\\t\\"ValidityState\\": false,\\n\\t\\t\\"VTTCue\\": false,\\n\\t\\t\\"WaveShaperNode\\": false,\\n\\t\\t\\"WebGLActiveInfo\\": false,\\n\\t\\t\\"WebGLBuffer\\": false,\\n\\t\\t\\"WebGLContextEvent\\": false,\\n\\t\\t\\"WebGLFramebuffer\\": false,\\n\\t\\t\\"WebGLProgram\\": false,\\n\\t\\t\\"WebGLRenderbuffer\\": false,\\n\\t\\t\\"WebGLRenderingContext\\": false,\\n\\t\\t\\"WebGLShader\\": false,\\n\\t\\t\\"WebGLShaderPrecisionFormat\\": false,\\n\\t\\t\\"WebGLTexture\\": false,\\n\\t\\t\\"WebGLUniformLocation\\": false,\\n\\t\\t\\"WebSocket\\": false,\\n\\t\\t\\"WheelEvent\\": false,\\n\\t\\t\\"window\\": false,\\n\\t\\t\\"Window\\": false,\\n\\t\\t\\"Worker\\": false,\\n\\t\\t\\"XDomainRequest\\": false,\\n\\t\\t\\"XMLDocument\\": false,\\n\\t\\t\\"XMLHttpRequest\\": false,\\n\\t\\t\\"XMLHttpRequestEventTarget\\": false,\\n\\t\\t\\"XMLHttpRequestProgressEvent\\": false,\\n\\t\\t\\"XMLHttpRequestUpload\\": false,\\n\\t\\t\\"XMLSerializer\\": false,\\n\\t\\t\\"XPathEvaluator\\": false,\\n\\t\\t\\"XPathException\\": false,\\n\\t\\t\\"XPathExpression\\": false,\\n\\t\\t\\"XPathNamespace\\": false,\\n\\t\\t\\"XPathNSResolver\\": false,\\n\\t\\t\\"XPathResult\\": false,\\n\\t\\t\\"XSLTProcessor\\": false\\n\\t},\\n\\t\\"worker\\": {\\n\\t\\t\\"applicationCache\\": false,\\n\\t\\t\\"atob\\": false,\\n\\t\\t\\"Blob\\": false,\\n\\t\\t\\"BroadcastChannel\\": false,\\n\\t\\t\\"btoa\\": false,\\n\\t\\t\\"Cache\\": false,\\n\\t\\t\\"caches\\": false,\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"close\\": true,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"fetch\\": false,\\n\\t\\t\\"FileReaderSync\\": false,\\n\\t\\t\\"FormData\\": false,\\n\\t\\t\\"Headers\\": false,\\n\\t\\t\\"IDBCursor\\": false,\\n\\t\\t\\"IDBCursorWithValue\\": false,\\n\\t\\t\\"IDBDatabase\\": false,\\n\\t\\t\\"IDBFactory\\": false,\\n\\t\\t\\"IDBIndex\\": false,\\n\\t\\t\\"IDBKeyRange\\": false,\\n\\t\\t\\"IDBObjectStore\\": false,\\n\\t\\t\\"IDBOpenDBRequest\\": false,\\n\\t\\t\\"IDBRequest\\": false,\\n\\t\\t\\"IDBTransaction\\": false,\\n\\t\\t\\"IDBVersionChangeEvent\\": false,\\n\\t\\t\\"ImageData\\": false,\\n\\t\\t\\"importScripts\\": true,\\n\\t\\t\\"indexedDB\\": false,\\n\\t\\t\\"location\\": false,\\n\\t\\t\\"MessageChannel\\": false,\\n\\t\\t\\"MessagePort\\": false,\\n\\t\\t\\"name\\": false,\\n\\t\\t\\"navigator\\": false,\\n\\t\\t\\"Notification\\": false,\\n\\t\\t\\"onclose\\": true,\\n\\t\\t\\"onconnect\\": true,\\n\\t\\t\\"onerror\\": true,\\n\\t\\t\\"onlanguagechange\\": true,\\n\\t\\t\\"onmessage\\": true,\\n\\t\\t\\"onoffline\\": true,\\n\\t\\t\\"ononline\\": true,\\n\\t\\t\\"onrejectionhandled\\": true,\\n\\t\\t\\"onunhandledrejection\\": true,\\n\\t\\t\\"performance\\": false,\\n\\t\\t\\"Performance\\": false,\\n\\t\\t\\"PerformanceEntry\\": false,\\n\\t\\t\\"PerformanceMark\\": false,\\n\\t\\t\\"PerformanceMeasure\\": false,\\n\\t\\t\\"PerformanceNavigation\\": false,\\n\\t\\t\\"PerformanceResourceTiming\\": false,\\n\\t\\t\\"PerformanceTiming\\": false,\\n\\t\\t\\"postMessage\\": true,\\n\\t\\t\\"Promise\\": false,\\n\\t\\t\\"Request\\": false,\\n\\t\\t\\"Response\\": false,\\n\\t\\t\\"self\\": true,\\n\\t\\t\\"ServiceWorkerRegistration\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false,\\n\\t\\t\\"TextDecoder\\": false,\\n\\t\\t\\"TextEncoder\\": false,\\n\\t\\t\\"URL\\": false,\\n\\t\\t\\"WebSocket\\": false,\\n\\t\\t\\"Worker\\": false,\\n\\t\\t\\"XMLHttpRequest\\": false\\n\\t},\\n\\t\\"node\\": {\\n\\t\\t\\"__dirname\\": false,\\n\\t\\t\\"__filename\\": false,\\n\\t\\t\\"arguments\\": false,\\n\\t\\t\\"Buffer\\": false,\\n\\t\\t\\"clearImmediate\\": false,\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"exports\\": true,\\n\\t\\t\\"GLOBAL\\": false,\\n\\t\\t\\"global\\": false,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"process\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"root\\": false,\\n\\t\\t\\"setImmediate\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false\\n\\t},\\n\\t\\"commonjs\\": {\\n\\t\\t\\"exports\\": true,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"global\\": false\\n\\t},\\n\\t\\"amd\\": {\\n\\t\\t\\"define\\": false,\\n\\t\\t\\"require\\": false\\n\\t},\\n\\t\\"mocha\\": {\\n\\t\\t\\"after\\": false,\\n\\t\\t\\"afterEach\\": false,\\n\\t\\t\\"before\\": false,\\n\\t\\t\\"beforeEach\\": false,\\n\\t\\t\\"context\\": false,\\n\\t\\t\\"describe\\": false,\\n\\t\\t\\"it\\": false,\\n\\t\\t\\"mocha\\": false,\\n\\t\\t\\"setup\\": false,\\n\\t\\t\\"specify\\": false,\\n\\t\\t\\"suite\\": false,\\n\\t\\t\\"suiteSetup\\": false,\\n\\t\\t\\"suiteTeardown\\": false,\\n\\t\\t\\"teardown\\": false,\\n\\t\\t\\"test\\": false,\\n\\t\\t\\"xcontext\\": false,\\n\\t\\t\\"xdescribe\\": false,\\n\\t\\t\\"xit\\": false,\\n\\t\\t\\"xspecify\\": false\\n\\t},\\n\\t\\"jasmine\\": {\\n\\t\\t\\"afterAll\\": false,\\n\\t\\t\\"afterEach\\": false,\\n\\t\\t\\"beforeAll\\": false,\\n\\t\\t\\"beforeEach\\": false,\\n\\t\\t\\"describe\\": false,\\n\\t\\t\\"expect\\": false,\\n\\t\\t\\"fail\\": false,\\n\\t\\t\\"fdescribe\\": false,\\n\\t\\t\\"fit\\": false,\\n\\t\\t\\"it\\": false,\\n\\t\\t\\"jasmine\\": false,\\n\\t\\t\\"pending\\": false,\\n\\t\\t\\"runs\\": false,\\n\\t\\t\\"spyOn\\": false,\\n\\t\\t\\"waits\\": false,\\n\\t\\t\\"waitsFor\\": false,\\n\\t\\t\\"xdescribe\\": false,\\n\\t\\t\\"xit\\": false\\n\\t},\\n\\t\\"jest\\": {\\n\\t\\t\\"afterEach\\": false,\\n\\t\\t\\"beforeEach\\": false,\\n\\t\\t\\"describe\\": false,\\n\\t\\t\\"expect\\": false,\\n\\t\\t\\"it\\": false,\\n\\t\\t\\"jest\\": false,\\n\\t\\t\\"pit\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"xdescribe\\": false,\\n\\t\\t\\"xit\\": false\\n\\t},\\n\\t\\"qunit\\": {\\n\\t\\t\\"asyncTest\\": false,\\n\\t\\t\\"deepEqual\\": false,\\n\\t\\t\\"equal\\": false,\\n\\t\\t\\"expect\\": false,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"notDeepEqual\\": false,\\n\\t\\t\\"notEqual\\": false,\\n\\t\\t\\"notOk\\": false,\\n\\t\\t\\"notPropEqual\\": false,\\n\\t\\t\\"notStrictEqual\\": false,\\n\\t\\t\\"ok\\": false,\\n\\t\\t\\"propEqual\\": false,\\n\\t\\t\\"QUnit\\": false,\\n\\t\\t\\"raises\\": false,\\n\\t\\t\\"start\\": false,\\n\\t\\t\\"stop\\": false,\\n\\t\\t\\"strictEqual\\": false,\\n\\t\\t\\"test\\": false,\\n\\t\\t\\"throws\\": false\\n\\t},\\n\\t\\"phantomjs\\": {\\n\\t\\t\\"console\\": true,\\n\\t\\t\\"exports\\": true,\\n\\t\\t\\"phantom\\": true,\\n\\t\\t\\"require\\": true,\\n\\t\\t\\"WebPage\\": true\\n\\t},\\n\\t\\"couch\\": {\\n\\t\\t\\"emit\\": false,\\n\\t\\t\\"exports\\": false,\\n\\t\\t\\"getRow\\": false,\\n\\t\\t\\"log\\": false,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"provides\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"respond\\": false,\\n\\t\\t\\"send\\": false,\\n\\t\\t\\"start\\": false,\\n\\t\\t\\"sum\\": false\\n\\t},\\n\\t\\"rhino\\": {\\n\\t\\t\\"defineClass\\": false,\\n\\t\\t\\"deserialize\\": false,\\n\\t\\t\\"gc\\": false,\\n\\t\\t\\"help\\": false,\\n\\t\\t\\"importClass\\": false,\\n\\t\\t\\"importPackage\\": false,\\n\\t\\t\\"java\\": false,\\n\\t\\t\\"load\\": false,\\n\\t\\t\\"loadClass\\": false,\\n\\t\\t\\"Packages\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"quit\\": false,\\n\\t\\t\\"readFile\\": false,\\n\\t\\t\\"readUrl\\": false,\\n\\t\\t\\"runCommand\\": false,\\n\\t\\t\\"seal\\": false,\\n\\t\\t\\"serialize\\": false,\\n\\t\\t\\"spawn\\": false,\\n\\t\\t\\"sync\\": false,\\n\\t\\t\\"toint32\\": false,\\n\\t\\t\\"version\\": false\\n\\t},\\n\\t\\"nashorn\\": {\\n\\t\\t\\"__DIR__\\": false,\\n\\t\\t\\"__FILE__\\": false,\\n\\t\\t\\"__LINE__\\": false,\\n\\t\\t\\"com\\": false,\\n\\t\\t\\"edu\\": false,\\n\\t\\t\\"exit\\": false,\\n\\t\\t\\"Java\\": false,\\n\\t\\t\\"java\\": false,\\n\\t\\t\\"javafx\\": false,\\n\\t\\t\\"JavaImporter\\": false,\\n\\t\\t\\"javax\\": false,\\n\\t\\t\\"JSAdapter\\": false,\\n\\t\\t\\"load\\": false,\\n\\t\\t\\"loadWithNewGlobal\\": false,\\n\\t\\t\\"org\\": false,\\n\\t\\t\\"Packages\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"quit\\": false\\n\\t},\\n\\t\\"wsh\\": {\\n\\t\\t\\"ActiveXObject\\": true,\\n\\t\\t\\"Enumerator\\": true,\\n\\t\\t\\"GetObject\\": true,\\n\\t\\t\\"ScriptEngine\\": true,\\n\\t\\t\\"ScriptEngineBuildVersion\\": true,\\n\\t\\t\\"ScriptEngineMajorVersion\\": true,\\n\\t\\t\\"ScriptEngineMinorVersion\\": true,\\n\\t\\t\\"VBArray\\": true,\\n\\t\\t\\"WScript\\": true,\\n\\t\\t\\"WSH\\": true,\\n\\t\\t\\"XDomainRequest\\": true\\n\\t},\\n\\t\\"jquery\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"jQuery\\": false\\n\\t},\\n\\t\\"yui\\": {\\n\\t\\t\\"Y\\": false,\\n\\t\\t\\"YUI\\": false,\\n\\t\\t\\"YUI_config\\": false\\n\\t},\\n\\t\\"shelljs\\": {\\n\\t\\t\\"cat\\": false,\\n\\t\\t\\"cd\\": false,\\n\\t\\t\\"chmod\\": false,\\n\\t\\t\\"config\\": false,\\n\\t\\t\\"cp\\": false,\\n\\t\\t\\"dirs\\": false,\\n\\t\\t\\"echo\\": false,\\n\\t\\t\\"env\\": false,\\n\\t\\t\\"error\\": false,\\n\\t\\t\\"exec\\": false,\\n\\t\\t\\"exit\\": false,\\n\\t\\t\\"find\\": false,\\n\\t\\t\\"grep\\": false,\\n\\t\\t\\"ls\\": false,\\n\\t\\t\\"ln\\": false,\\n\\t\\t\\"mkdir\\": false,\\n\\t\\t\\"mv\\": false,\\n\\t\\t\\"popd\\": false,\\n\\t\\t\\"pushd\\": false,\\n\\t\\t\\"pwd\\": false,\\n\\t\\t\\"rm\\": false,\\n\\t\\t\\"sed\\": false,\\n\\t\\t\\"target\\": false,\\n\\t\\t\\"tempdir\\": false,\\n\\t\\t\\"test\\": false,\\n\\t\\t\\"which\\": false\\n\\t},\\n\\t\\"prototypejs\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"$$\\": false,\\n\\t\\t\\"$A\\": false,\\n\\t\\t\\"$break\\": false,\\n\\t\\t\\"$continue\\": false,\\n\\t\\t\\"$F\\": false,\\n\\t\\t\\"$H\\": false,\\n\\t\\t\\"$R\\": false,\\n\\t\\t\\"$w\\": false,\\n\\t\\t\\"Abstract\\": false,\\n\\t\\t\\"Ajax\\": false,\\n\\t\\t\\"Autocompleter\\": false,\\n\\t\\t\\"Builder\\": false,\\n\\t\\t\\"Class\\": false,\\n\\t\\t\\"Control\\": false,\\n\\t\\t\\"Draggable\\": false,\\n\\t\\t\\"Draggables\\": false,\\n\\t\\t\\"Droppables\\": false,\\n\\t\\t\\"Effect\\": false,\\n\\t\\t\\"Element\\": false,\\n\\t\\t\\"Enumerable\\": false,\\n\\t\\t\\"Event\\": false,\\n\\t\\t\\"Field\\": false,\\n\\t\\t\\"Form\\": false,\\n\\t\\t\\"Hash\\": false,\\n\\t\\t\\"Insertion\\": false,\\n\\t\\t\\"ObjectRange\\": false,\\n\\t\\t\\"PeriodicalExecuter\\": false,\\n\\t\\t\\"Position\\": false,\\n\\t\\t\\"Prototype\\": false,\\n\\t\\t\\"Scriptaculous\\": false,\\n\\t\\t\\"Selector\\": false,\\n\\t\\t\\"Sortable\\": false,\\n\\t\\t\\"SortableObserver\\": false,\\n\\t\\t\\"Sound\\": false,\\n\\t\\t\\"Template\\": false,\\n\\t\\t\\"Toggle\\": false,\\n\\t\\t\\"Try\\": false\\n\\t},\\n\\t\\"meteor\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"_\\": false,\\n\\t\\t\\"Accounts\\": false,\\n\\t\\t\\"App\\": false,\\n\\t\\t\\"Assets\\": false,\\n\\t\\t\\"Blaze\\": false,\\n\\t\\t\\"check\\": false,\\n\\t\\t\\"Cordova\\": false,\\n\\t\\t\\"DDP\\": false,\\n\\t\\t\\"DDPServer\\": false,\\n\\t\\t\\"Deps\\": false,\\n\\t\\t\\"EJSON\\": false,\\n\\t\\t\\"Email\\": false,\\n\\t\\t\\"HTTP\\": false,\\n\\t\\t\\"Log\\": false,\\n\\t\\t\\"Match\\": false,\\n\\t\\t\\"Meteor\\": false,\\n\\t\\t\\"Mongo\\": false,\\n\\t\\t\\"MongoInternals\\": false,\\n\\t\\t\\"Npm\\": false,\\n\\t\\t\\"Package\\": false,\\n\\t\\t\\"Plugin\\": false,\\n\\t\\t\\"process\\": false,\\n\\t\\t\\"Random\\": false,\\n\\t\\t\\"ReactiveDict\\": false,\\n\\t\\t\\"ReactiveVar\\": false,\\n\\t\\t\\"Router\\": false,\\n\\t\\t\\"Session\\": false,\\n\\t\\t\\"share\\": false,\\n\\t\\t\\"Spacebars\\": false,\\n\\t\\t\\"Template\\": false,\\n\\t\\t\\"Tinytest\\": false,\\n\\t\\t\\"Tracker\\": false,\\n\\t\\t\\"UI\\": false,\\n\\t\\t\\"Utils\\": false,\\n\\t\\t\\"WebApp\\": false,\\n\\t\\t\\"WebAppInternals\\": false\\n\\t},\\n\\t\\"mongo\\": {\\n\\t\\t\\"_isWindows\\": false,\\n\\t\\t\\"_rand\\": false,\\n\\t\\t\\"BulkWriteResult\\": false,\\n\\t\\t\\"cat\\": false,\\n\\t\\t\\"cd\\": false,\\n\\t\\t\\"connect\\": false,\\n\\t\\t\\"db\\": false,\\n\\t\\t\\"getHostName\\": false,\\n\\t\\t\\"getMemInfo\\": false,\\n\\t\\t\\"hostname\\": false,\\n\\t\\t\\"listFiles\\": false,\\n\\t\\t\\"load\\": false,\\n\\t\\t\\"ls\\": false,\\n\\t\\t\\"md5sumFile\\": false,\\n\\t\\t\\"mkdir\\": false,\\n\\t\\t\\"Mongo\\": false,\\n\\t\\t\\"ObjectId\\": false,\\n\\t\\t\\"PlanCache\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"printjson\\": false,\\n\\t\\t\\"pwd\\": false,\\n\\t\\t\\"quit\\": false,\\n\\t\\t\\"removeFile\\": false,\\n\\t\\t\\"rs\\": false,\\n\\t\\t\\"sh\\": false,\\n\\t\\t\\"UUID\\": false,\\n\\t\\t\\"version\\": false,\\n\\t\\t\\"WriteResult\\": false\\n\\t},\\n\\t\\"applescript\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"Application\\": false,\\n\\t\\t\\"Automation\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"delay\\": false,\\n\\t\\t\\"Library\\": false,\\n\\t\\t\\"ObjC\\": false,\\n\\t\\t\\"ObjectSpecifier\\": false,\\n\\t\\t\\"Path\\": false,\\n\\t\\t\\"Progress\\": false,\\n\\t\\t\\"Ref\\": false\\n\\t},\\n\\t\\"serviceworker\\": {\\n\\t\\t\\"caches\\": false,\\n\\t\\t\\"Cache\\": false,\\n\\t\\t\\"CacheStorage\\": false,\\n\\t\\t\\"Client\\": false,\\n\\t\\t\\"clients\\": false,\\n\\t\\t\\"Clients\\": false,\\n\\t\\t\\"ExtendableEvent\\": false,\\n\\t\\t\\"ExtendableMessageEvent\\": false,\\n\\t\\t\\"FetchEvent\\": false,\\n\\t\\t\\"importScripts\\": false,\\n\\t\\t\\"registration\\": false,\\n\\t\\t\\"self\\": false,\\n\\t\\t\\"ServiceWorker\\": false,\\n\\t\\t\\"ServiceWorkerContainer\\": false,\\n\\t\\t\\"ServiceWorkerGlobalScope\\": false,\\n\\t\\t\\"ServiceWorkerMessageEvent\\": false,\\n\\t\\t\\"ServiceWorkerRegistration\\": false,\\n\\t\\t\\"skipWaiting\\": false,\\n\\t\\t\\"WindowClient\\": false\\n\\t},\\n\\t\\"atomtest\\": {\\n\\t\\t\\"advanceClock\\": false,\\n\\t\\t\\"fakeClearInterval\\": false,\\n\\t\\t\\"fakeClearTimeout\\": false,\\n\\t\\t\\"fakeSetInterval\\": false,\\n\\t\\t\\"fakeSetTimeout\\": false,\\n\\t\\t\\"resetTimeouts\\": false,\\n\\t\\t\\"waitsForPromise\\": false\\n\\t},\\n\\t\\"embertest\\": {\\n\\t\\t\\"andThen\\": false,\\n\\t\\t\\"click\\": false,\\n\\t\\t\\"currentPath\\": false,\\n\\t\\t\\"currentRouteName\\": false,\\n\\t\\t\\"currentURL\\": false,\\n\\t\\t\\"fillIn\\": false,\\n\\t\\t\\"find\\": false,\\n\\t\\t\\"findWithAssert\\": false,\\n\\t\\t\\"keyEvent\\": false,\\n\\t\\t\\"pauseTest\\": false,\\n\\t\\t\\"triggerEvent\\": false,\\n\\t\\t\\"visit\\": false\\n\\t},\\n\\t\\"protractor\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"$$\\": false,\\n\\t\\t\\"browser\\": false,\\n\\t\\t\\"By\\": false,\\n\\t\\t\\"by\\": false,\\n\\t\\t\\"DartObject\\": false,\\n\\t\\t\\"element\\": false,\\n\\t\\t\\"protractor\\": false\\n\\t},\\n\\t\\"shared-node-browser\\": {\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false\\n\\t},\\n\\t\\"webextensions\\": {\\n\\t\\t\\"browser\\": false,\\n\\t\\t\\"chrome\\": false,\\n\\t\\t\\"opr\\": false\\n\\t},\\n\\t\\"greasemonkey\\": {\\n\\t\\t\\"GM_addStyle\\": false,\\n\\t\\t\\"GM_deleteValue\\": false,\\n\\t\\t\\"GM_getResourceText\\": false,\\n\\t\\t\\"GM_getResourceURL\\": false,\\n\\t\\t\\"GM_getValue\\": false,\\n\\t\\t\\"GM_info\\": false,\\n\\t\\t\\"GM_listValues\\": false,\\n\\t\\t\\"GM_log\\": false,\\n\\t\\t\\"GM_openInTab\\": false,\\n\\t\\t\\"GM_registerMenuCommand\\": false,\\n\\t\\t\\"GM_setClipboard\\": false,\\n\\t\\t\\"GM_setValue\\": false,\\n\\t\\t\\"GM_xmlhttpRequest\\": false,\\n\\t\\t\\"unsafeWindow\\": false\\n\\t}\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/globals/globals.json\\n ** module id = 239\\n ** module chunks = 0\\n **/","// This file contains that retrieve or validate anything related to the current paths ancestry.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.findParent = findParent;\\nexports.find = find;\\nexports.getFunctionParent = getFunctionParent;\\nexports.getStatementParent = getStatementParent;\\nexports.getEarliestCommonAncestorFrom = getEarliestCommonAncestorFrom;\\nexports.getDeepestCommonAncestorFrom = getDeepestCommonAncestorFrom;\\nexports.getAncestry = getAncestry;\\nexports.inType = inType;\\nexports.inShadow = inShadow;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n/**\\n * Call the provided `callback` with the `NodePath`s of all the parents.\\n * When the `callback` returns a truthy value, we return that node path.\\n */\\n\\nfunction findParent(callback) {\\n  var path = this;\\n  while (path = path.parentPath) {\\n    if (callback(path)) return path;\\n  }\\n  return null;\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction find(callback) {\\n  var path = this;\\n  do {\\n    if (callback(path)) return path;\\n  } while (path = path.parentPath);\\n  return null;\\n}\\n\\n/**\\n * Get the parent function of the current path.\\n */\\n\\nfunction getFunctionParent() {\\n  return this.findParent(function (path) {\\n    return path.isFunction() || path.isProgram();\\n  });\\n}\\n\\n/**\\n * Walk up the tree until we hit a parent node path in a list.\\n */\\n\\nfunction getStatementParent() {\\n  var path = this;\\n  do {\\n    if (Array.isArray(path.container)) {\\n      return path;\\n    }\\n  } while (path = path.parentPath);\\n}\\n\\n/**\\n * Get the deepest common ancestor and then from it, get the earliest relationship path\\n * to that ancestor.\\n *\\n * Earliest is defined as being \\"before\\" all the other nodes in terms of list container\\n * position and visiting key.\\n */\\n\\nfunction getEarliestCommonAncestorFrom(paths /*: Array<NodePath>*/) /*: NodePath*/ {\\n  return this.getDeepestCommonAncestorFrom(paths, function (deepest, i, ancestries) {\\n    var earliest = undefined;\\n    var keys = t.VISITOR_KEYS[deepest.type];\\n\\n    for (var _iterator = (ancestries /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var ancestry = _ref;\\n\\n      var path = ancestry[i + 1];\\n\\n      // first path\\n      if (!earliest) {\\n        earliest = path;\\n        continue;\\n      }\\n\\n      // handle containers\\n      if (path.listKey && earliest.listKey === path.listKey) {\\n        // we\'re in the same container so check if we\'re earlier\\n        if (path.key < earliest.key) {\\n          earliest = path;\\n          continue;\\n        }\\n      }\\n\\n      // handle keys\\n      var earliestKeyIndex = keys.indexOf(earliest.parentKey);\\n      var currentKeyIndex = keys.indexOf(path.parentKey);\\n      if (earliestKeyIndex > currentKeyIndex) {\\n        // key appears before so it\'s earlier\\n        earliest = path;\\n      }\\n    }\\n\\n    return earliest;\\n  });\\n}\\n\\n/**\\n * Get the earliest path in the tree where the provided `paths` intersect.\\n *\\n * TODO: Possible optimisation target.\\n */\\n\\nfunction getDeepestCommonAncestorFrom(paths /*: Array<NodePath>*/, filter /*:: ?: Function*/) /*: NodePath*/ {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  if (!paths.length) {\\n    return this;\\n  }\\n\\n  if (paths.length === 1) {\\n    return paths[0];\\n  }\\n\\n  // minimum depth of the tree so we know the highest node\\n  var minDepth = Infinity;\\n\\n  // last common ancestor\\n  var lastCommonIndex = undefined,\\n      lastCommon = undefined;\\n\\n  // get the ancestors of the path, breaking when the parent exceeds ourselves\\n  var ancestries = paths.map(function (path) {\\n    var ancestry = [];\\n\\n    do {\\n      ancestry.unshift(path);\\n    } while ((path = path.parentPath) && path !== _this);\\n\\n    // save min depth to avoid going too far in\\n    if (ancestry.length < minDepth) {\\n      minDepth = ancestry.length;\\n    }\\n\\n    return ancestry;\\n  });\\n\\n  // get the first ancestry so we have a seed to assess all other ancestries with\\n  var first = ancestries[0];\\n\\n  // check ancestor equality\\n  depthLoop: for (var i = 0; i < minDepth; i++) {\\n    var shouldMatch = first[i];\\n\\n    for (var _iterator2 = (ancestries /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var ancestry = _ref2;\\n\\n      if (ancestry[i] !== shouldMatch) {\\n        // we\'ve hit a snag\\n        break depthLoop;\\n      }\\n    }\\n\\n    // next iteration may break so store these so they can be returned\\n    lastCommonIndex = i;\\n    lastCommon = shouldMatch;\\n  }\\n\\n  if (lastCommon) {\\n    if (filter) {\\n      return filter(lastCommon, lastCommonIndex, ancestries);\\n    } else {\\n      return lastCommon;\\n    }\\n  } else {\\n    throw new Error(\\"Couldn\'t find intersection\\");\\n  }\\n}\\n\\n/**\\n * Build an array of node paths containing the entire ancestry of the current node path.\\n *\\n * NOTE: The current node path is included in this.\\n */\\n\\nfunction getAncestry() {\\n  var path = this;\\n  var paths = [];\\n  do {\\n    paths.push(path);\\n  } while (path = path.parentPath);\\n  return paths;\\n}\\n\\nfunction inType() {\\n  var path = this;\\n  while (path) {\\n    for (var _iterator3 = (arguments /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n      var _ref3;\\n\\n      if (_isArray3) {\\n        if (_i3 >= _iterator3.length) break;\\n        _ref3 = _iterator3[_i3++];\\n      } else {\\n        _i3 = _iterator3.next();\\n        if (_i3.done) break;\\n        _ref3 = _i3.value;\\n      }\\n\\n      var type = _ref3;\\n\\n      if (path.node.type === type) return true;\\n    }\\n    path = path.parentPath;\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Check if we\'re inside a shadowed function.\\n */\\n\\nfunction inShadow(key /*:: ?*/) {\\n  var path = this;\\n  do {\\n    if (path.isFunction()) {\\n      var shadow = path.node.shadow;\\n      if (shadow) {\\n        // this is because sometimes we may have a `shadow` value of:\\n        //\\n        //   { this: false }\\n        //\\n        // we need to catch this case if `inShadow` has been passed a `key`\\n        if (!key || shadow[key] !== false) {\\n          return path;\\n        }\\n      } else if (path.isArrowFunctionExpression()) {\\n        return path;\\n      }\\n\\n      // normal function, we\'ve found our function context\\n      return null;\\n    }\\n  } while (path = path.parentPath);\\n  return null;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/ancestry.js\\n ** module id = 240\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getTypeAnnotation = getTypeAnnotation;\\nexports._getTypeAnnotation = _getTypeAnnotation;\\nexports.isBaseType = isBaseType;\\nexports.couldBeBaseType = couldBeBaseType;\\nexports.baseTypeStrictlyMatches = baseTypeStrictlyMatches;\\nexports.isGenericType = isGenericType;\\n\\nvar _inferers = require(\\"./inferers\\");\\n\\nvar inferers = _interopRequireWildcard(_inferers);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Infer the type of the current `NodePath`.\\n */\\n\\n/*:: import type NodePath from \\"./index\\";*/\\nfunction getTypeAnnotation() /*: Object*/ {\\n  if (this.typeAnnotation) return this.typeAnnotation;\\n\\n  var type = this._getTypeAnnotation() || t.anyTypeAnnotation();\\n  if (t.isTypeAnnotation(type)) type = type.typeAnnotation;\\n  return this.typeAnnotation = type;\\n}\\n\\n/**\\n * todo: split up this method\\n */\\n\\nfunction _getTypeAnnotation() /*: ?Object*/ {\\n  var node = this.node;\\n\\n  if (!node) {\\n    // handle initializerless variables, add in checks for loop initializers too\\n    if (this.key === \\"init\\" && this.parentPath.isVariableDeclarator()) {\\n      var declar = this.parentPath.parentPath;\\n      var declarParent = declar.parentPath;\\n\\n      // for (let NODE in bar) {}\\n      if (declar.key === \\"left\\" && declarParent.isForInStatement()) {\\n        return t.stringTypeAnnotation();\\n      }\\n\\n      // for (let NODE of bar) {}\\n      if (declar.key === \\"left\\" && declarParent.isForOfStatement()) {\\n        return t.anyTypeAnnotation();\\n      }\\n\\n      return t.voidTypeAnnotation();\\n    } else {\\n      return;\\n    }\\n  }\\n\\n  if (node.typeAnnotation) {\\n    return node.typeAnnotation;\\n  }\\n\\n  var inferer = inferers[node.type];\\n  if (inferer) {\\n    return inferer.call(this, node);\\n  }\\n\\n  inferer = inferers[this.parentPath.type];\\n  if (inferer && inferer.validParent) {\\n    return this.parentPath.getTypeAnnotation();\\n  }\\n}\\n\\nfunction isBaseType(baseName /*: string*/, soft /*:: ?: boolean*/) /*: boolean*/ {\\n  return _isBaseType(baseName, this.getTypeAnnotation(), soft);\\n}\\n\\nfunction _isBaseType(baseName /*: string*/, type, /*:: ?*/soft /*:: ?*/) /*: boolean*/ {\\n  if (baseName === \\"string\\") {\\n    return t.isStringTypeAnnotation(type);\\n  } else if (baseName === \\"number\\") {\\n    return t.isNumberTypeAnnotation(type);\\n  } else if (baseName === \\"boolean\\") {\\n    return t.isBooleanTypeAnnotation(type);\\n  } else if (baseName === \\"any\\") {\\n    return t.isAnyTypeAnnotation(type);\\n  } else if (baseName === \\"mixed\\") {\\n    return t.isMixedTypeAnnotation(type);\\n  } else if (baseName === \\"void\\") {\\n    return t.isVoidTypeAnnotation(type);\\n  } else {\\n    if (soft) {\\n      return false;\\n    } else {\\n      throw new Error(\\"Unknown base type \\" + baseName);\\n    }\\n  }\\n}\\n\\nfunction couldBeBaseType(name /*: string*/) /*: boolean*/ {\\n  var type = this.getTypeAnnotation();\\n  if (t.isAnyTypeAnnotation(type)) return true;\\n\\n  if (t.isUnionTypeAnnotation(type)) {\\n    for (var _iterator = (type.types /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var type2 = _ref;\\n\\n      if (t.isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  } else {\\n    return _isBaseType(name, type, true);\\n  }\\n}\\n\\nfunction baseTypeStrictlyMatches(right /*: NodePath*/) {\\n  var left = this.getTypeAnnotation();\\n  right = right.getTypeAnnotation();\\n\\n  if (!t.isAnyTypeAnnotation(left) && t.isFlowBaseAnnotation(left)) {\\n    return right.type === left.type;\\n  }\\n}\\n\\nfunction isGenericType(genericName /*: string*/) /*: boolean*/ {\\n  var type = this.getTypeAnnotation();\\n  return t.isGenericTypeAnnotation(type) && t.isIdentifier(type.id, { name: genericName });\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/inference/index.js\\n ** module id = 241\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequire = require(\\"babel-runtime/helpers/interop-require\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.VariableDeclarator = VariableDeclarator;\\nexports.TypeCastExpression = TypeCastExpression;\\nexports.NewExpression = NewExpression;\\nexports.TemplateLiteral = TemplateLiteral;\\nexports.UnaryExpression = UnaryExpression;\\nexports.BinaryExpression = BinaryExpression;\\nexports.LogicalExpression = LogicalExpression;\\nexports.ConditionalExpression = ConditionalExpression;\\nexports.SequenceExpression = SequenceExpression;\\nexports.AssignmentExpression = AssignmentExpression;\\nexports.UpdateExpression = UpdateExpression;\\nexports.StringLiteral = StringLiteral;\\nexports.NumericLiteral = NumericLiteral;\\nexports.BooleanLiteral = BooleanLiteral;\\nexports.NullLiteral = NullLiteral;\\nexports.RegExpLiteral = RegExpLiteral;\\nexports.ObjectExpression = ObjectExpression;\\nexports.ArrayExpression = ArrayExpression;\\nexports.RestElement = RestElement;\\nexports.CallExpression = CallExpression;\\nexports.TaggedTemplateExpression = TaggedTemplateExpression;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _infererReference = require(\\"./inferer-reference\\");\\n\\nexports.Identifier = _interopRequire(_infererReference);\\n\\nfunction VariableDeclarator() {\\n  var id = this.get(\\"id\\");\\n\\n  if (id.isIdentifier()) {\\n    return this.get(\\"init\\").getTypeAnnotation();\\n  } else {\\n    return;\\n  }\\n}\\n\\nfunction TypeCastExpression(node) {\\n  return node.typeAnnotation;\\n}\\n\\nTypeCastExpression.validParent = true;\\n\\nfunction NewExpression(node) {\\n  if (this.get(\\"callee\\").isIdentifier()) {\\n    // only resolve identifier callee\\n    return t.genericTypeAnnotation(node.callee);\\n  }\\n}\\n\\nfunction TemplateLiteral() {\\n  return t.stringTypeAnnotation();\\n}\\n\\nfunction UnaryExpression(node) {\\n  var operator = node.operator;\\n\\n  if (operator === \\"void\\") {\\n    return t.voidTypeAnnotation();\\n  } else if (t.NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.numberTypeAnnotation();\\n  } else if (t.STRING_UNARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.stringTypeAnnotation();\\n  } else if (t.BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.booleanTypeAnnotation();\\n  }\\n}\\n\\nfunction BinaryExpression(node) {\\n  var operator = node.operator;\\n\\n  if (t.NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.numberTypeAnnotation();\\n  } else if (t.BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.booleanTypeAnnotation();\\n  } else if (operator === \\"+\\") {\\n    var right = this.get(\\"right\\");\\n    var left = this.get(\\"left\\");\\n\\n    if (left.isBaseType(\\"number\\") && right.isBaseType(\\"number\\")) {\\n      // both numbers so this will be a number\\n      return t.numberTypeAnnotation();\\n    } else if (left.isBaseType(\\"string\\") || right.isBaseType(\\"string\\")) {\\n      // one is a string so the result will be a string\\n      return t.stringTypeAnnotation();\\n    }\\n\\n    // unsure if left and right are strings or numbers so stay on the safe side\\n    return t.unionTypeAnnotation([t.stringTypeAnnotation(), t.numberTypeAnnotation()]);\\n  }\\n}\\n\\nfunction LogicalExpression() {\\n  return t.createUnionTypeAnnotation([this.get(\\"left\\").getTypeAnnotation(), this.get(\\"right\\").getTypeAnnotation()]);\\n}\\n\\nfunction ConditionalExpression() {\\n  return t.createUnionTypeAnnotation([this.get(\\"consequent\\").getTypeAnnotation(), this.get(\\"alternate\\").getTypeAnnotation()]);\\n}\\n\\nfunction SequenceExpression() {\\n  return this.get(\\"expressions\\").pop().getTypeAnnotation();\\n}\\n\\nfunction AssignmentExpression() {\\n  return this.get(\\"right\\").getTypeAnnotation();\\n}\\n\\nfunction UpdateExpression(node) {\\n  var operator = node.operator;\\n  if (operator === \\"++\\" || operator === \\"--\\") {\\n    return t.numberTypeAnnotation();\\n  }\\n}\\n\\nfunction StringLiteral() {\\n  return t.stringTypeAnnotation();\\n}\\n\\nfunction NumericLiteral() {\\n  return t.numberTypeAnnotation();\\n}\\n\\nfunction BooleanLiteral() {\\n  return t.booleanTypeAnnotation();\\n}\\n\\nfunction NullLiteral() {\\n  return t.nullLiteralTypeAnnotation();\\n}\\n\\nfunction RegExpLiteral() {\\n  return t.genericTypeAnnotation(t.identifier(\\"RegExp\\"));\\n}\\n\\nfunction ObjectExpression() {\\n  return t.genericTypeAnnotation(t.identifier(\\"Object\\"));\\n}\\n\\nfunction ArrayExpression() {\\n  return t.genericTypeAnnotation(t.identifier(\\"Array\\"));\\n}\\n\\nfunction RestElement() {\\n  return ArrayExpression();\\n}\\n\\nRestElement.validParent = true;\\n\\nfunction Func() {\\n  return t.genericTypeAnnotation(t.identifier(\\"Function\\"));\\n}\\n\\nexports.Function = Func;\\nexports.Class = Func;\\n\\nfunction CallExpression() {\\n  return resolveCall(this.get(\\"callee\\"));\\n}\\n\\nfunction TaggedTemplateExpression() {\\n  return resolveCall(this.get(\\"tag\\"));\\n}\\n\\nfunction resolveCall(callee) {\\n  callee = callee.resolve();\\n\\n  if (callee.isFunction()) {\\n    if (callee.is(\\"async\\")) {\\n      if (callee.is(\\"generator\\")) {\\n        return t.genericTypeAnnotation(t.identifier(\\"AsyncIterator\\"));\\n      } else {\\n        return t.genericTypeAnnotation(t.identifier(\\"Promise\\"));\\n      }\\n    } else {\\n      if (callee.node.returnType) {\\n        return callee.node.returnType;\\n      } else {\\n        // todo: get union type of all return arguments\\n      }\\n    }\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/inference/inferers.js\\n ** module id = 242\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type NodePath from \\"../index\\";*/\\nexports[\\"default\\"] = function (node /*: Object*/) {\\n  if (!this.isReferenced()) return;\\n\\n  // check if a binding exists of this value and if so then return a union type of all\\n  // possible types that the binding could be\\n  var binding = this.scope.getBinding(node.name);\\n  if (binding) {\\n    if (binding.identifier.typeAnnotation) {\\n      return binding.identifier.typeAnnotation;\\n    } else {\\n      return getTypeAnnotationBindingConstantViolations(this, node.name);\\n    }\\n  }\\n\\n  // built-in values\\n  if (node.name === \\"undefined\\") {\\n    return t.voidTypeAnnotation();\\n  } else if (node.name === \\"NaN\\" || node.name === \\"Infinity\\") {\\n    return t.numberTypeAnnotation();\\n  } else if (node.name === \\"arguments\\") {\\n    // todo\\n  }\\n};\\n\\nfunction getTypeAnnotationBindingConstantViolations(path, name) {\\n  var binding = path.scope.getBinding(name);\\n\\n  var types = [];\\n  path.typeAnnotation = t.unionTypeAnnotation(types);\\n\\n  var functionConstantViolations = [];\\n  var constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations);\\n\\n  var testType = getConditionalAnnotation(path, name);\\n  if (testType) {\\n    (function () {\\n      var testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement);\\n\\n      // remove constant violations observed before the IfStatement\\n      constantViolations = constantViolations.filter(function (path) {\\n        return testConstantViolations.indexOf(path) < 0;\\n      });\\n\\n      // clear current types and add in observed test type\\n      types.push(testType.typeAnnotation);\\n    })();\\n  }\\n\\n  if (constantViolations.length) {\\n    // pick one constant from each scope which will represent the last possible\\n    // control flow path that it could\'ve taken/been\\n    /* This code is broken for the following problems:\\n     * It thinks that assignments can only happen in scopes.\\n     * What about conditionals, if statements without block,\\n     * or guarded assignments.\\n     * It also checks to see if one of the assignments is in the\\n     * same scope and uses that as the only \\"violation\\". However,\\n     * the binding is returned by `getConstantViolationsBefore` so we for\\n     * sure always going to return that as the only \\"violation\\".\\n    let rawConstantViolations = constantViolations.reverse();\\n    let visitedScopes = [];\\n    constantViolations = [];\\n    for (let violation of (rawConstantViolations: Array<NodePath>)) {\\n      let violationScope = violation.scope;\\n      if (visitedScopes.indexOf(violationScope) >= 0) continue;\\n       visitedScopes.push(violationScope);\\n      constantViolations.push(violation);\\n       if (violationScope === path.scope) {\\n        constantViolations = [violation];\\n        break;\\n      }\\n    }*/\\n\\n    // add back on function constant violations since we can\'t track calls\\n    constantViolations = constantViolations.concat(functionConstantViolations);\\n\\n    // push on inferred types of violated paths\\n    for (var _iterator = (constantViolations /*: Array<NodePath>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var violation = _ref;\\n\\n      types.push(violation.getTypeAnnotation());\\n    }\\n  }\\n\\n  if (types.length) {\\n    return t.createUnionTypeAnnotation(types);\\n  }\\n}\\n\\nfunction getConstantViolationsBefore(binding, path, functions) {\\n  var violations = binding.constantViolations.slice();\\n  violations.unshift(binding.path);\\n  return violations.filter(function (violation) {\\n    violation = violation.resolve();\\n    var status = violation._guessExecutionStatusRelativeTo(path);\\n    if (functions && status === \\"function\\") functions.push(violation);\\n    return status === \\"before\\";\\n  });\\n}\\n\\nfunction inferAnnotationFromBinaryExpression(name, path) {\\n  var operator = path.node.operator;\\n\\n  var right = path.get(\\"right\\").resolve();\\n  var left = path.get(\\"left\\").resolve();\\n\\n  var target = undefined;\\n  if (left.isIdentifier({ name: name })) {\\n    target = right;\\n  } else if (right.isIdentifier({ name: name })) {\\n    target = left;\\n  }\\n  if (target) {\\n    if (operator === \\"===\\") {\\n      return target.getTypeAnnotation();\\n    } else if (t.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {\\n      return t.numberTypeAnnotation();\\n    } else {\\n      return;\\n    }\\n  } else {\\n    if (operator !== \\"===\\") return;\\n  }\\n\\n  //\\n  var typeofPath = undefined;\\n  var typePath = undefined;\\n  if (left.isUnaryExpression({ operator: \\"typeof\\" })) {\\n    typeofPath = left;\\n    typePath = right;\\n  } else if (right.isUnaryExpression({ operator: \\"typeof\\" })) {\\n    typeofPath = right;\\n    typePath = left;\\n  }\\n  if (!typePath && !typeofPath) return;\\n\\n  // ensure that the type path is a Literal\\n  typePath = typePath.resolve();\\n  if (!typePath.isLiteral()) return;\\n\\n  // and that it\'s a string so we can infer it\\n  var typeValue = typePath.node.value;\\n  if (typeof typeValue !== \\"string\\") return;\\n\\n  // and that the argument of the typeof path references us!\\n  if (!typeofPath.get(\\"argument\\").isIdentifier({ name: name })) return;\\n\\n  // turn type value into a type annotation\\n  return t.createTypeAnnotationBasedOnTypeof(typePath.node.value);\\n}\\n\\nfunction getParentConditionalPath(path) {\\n  var parentPath = undefined;\\n  while (parentPath = path.parentPath) {\\n    if (parentPath.isIfStatement() || parentPath.isConditionalExpression()) {\\n      if (path.key === \\"test\\") {\\n        return;\\n      } else {\\n        return parentPath;\\n      }\\n    } else {\\n      path = parentPath;\\n    }\\n  }\\n}\\n\\nfunction getConditionalAnnotation(path, name) {\\n  var ifStatement = getParentConditionalPath(path);\\n  if (!ifStatement) return;\\n\\n  var test = ifStatement.get(\\"test\\");\\n  var paths = [test];\\n  var types = [];\\n\\n  do {\\n    var _path = paths.shift().resolve();\\n\\n    if (_path.isLogicalExpression()) {\\n      paths.push(_path.get(\\"left\\"));\\n      paths.push(_path.get(\\"right\\"));\\n    }\\n\\n    if (_path.isBinaryExpression()) {\\n      var type = inferAnnotationFromBinaryExpression(name, _path);\\n      if (type) types.push(type);\\n    }\\n  } while (paths.length);\\n\\n  if (types.length) {\\n    return {\\n      typeAnnotation: t.createUnionTypeAnnotation(types),\\n      ifStatement: ifStatement\\n    };\\n  } else {\\n    return getConditionalAnnotation(ifStatement, name);\\n  }\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/inference/inferer-reference.js\\n ** module id = 243\\n ** module chunks = 0\\n **/","// This file contains methods responsible for replacing a node with another.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.replaceWithMultiple = replaceWithMultiple;\\nexports.replaceWithSourceString = replaceWithSourceString;\\nexports.replaceWith = replaceWith;\\nexports._replaceWith = _replaceWith;\\nexports.replaceExpressionWithStatements = replaceExpressionWithStatements;\\nexports.replaceInline = replaceInline;\\n\\nvar _babelCodeFrame = require(\\"babel-code-frame\\");\\n\\nvar _babelCodeFrame2 = _interopRequireDefault(_babelCodeFrame);\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _index3 = require(\\"./index\\");\\n\\nvar _index4 = _interopRequireDefault(_index3);\\n\\nvar _babylon = require(\\"babylon\\");\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar hoistVariablesVisitor = {\\n  Function: function Function(path) {\\n    path.skip();\\n  },\\n\\n  VariableDeclaration: function VariableDeclaration(path) {\\n    if (path.node.kind !== \\"var\\") return;\\n\\n    var bindings = path.getBindingIdentifiers();\\n    for (var key in bindings) {\\n      path.scope.push({ id: bindings[key] });\\n    }\\n\\n    var exprs = [];\\n\\n    for (var _iterator = (path.node.declarations /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var declar = _ref;\\n\\n      if (declar.init) {\\n        exprs.push(t.expressionStatement(t.assignmentExpression(\\"=\\", declar.id, declar.init)));\\n      }\\n    }\\n\\n    path.replaceWithMultiple(exprs);\\n  }\\n};\\n\\n/**\\n * Replace a node with an array of multiple. This method performs the following steps:\\n *\\n *  - Inherit the comments of first provided node with that of the current node.\\n *  - Insert the provided nodes after the current node.\\n *  - Remove the current node.\\n */\\n\\nfunction replaceWithMultiple(nodes /*: Array<Object>*/) {\\n  this.resync();\\n\\n  nodes = this._verifyNodeList(nodes);\\n  t.inheritLeadingComments(nodes[0], this.node);\\n  t.inheritTrailingComments(nodes[nodes.length - 1], this.node);\\n  this.node = this.container[this.key] = null;\\n  this.insertAfter(nodes);\\n\\n  if (this.node) {\\n    this.requeue();\\n  } else {\\n    this.remove();\\n  }\\n}\\n\\n/**\\n * Parse a string as an expression and replace the current node with the result.\\n *\\n * NOTE: This is typically not a good idea to use. Building source strings when\\n * transforming ASTs is an antipattern and SHOULD NOT be encouraged. Even if it\'s\\n * easier to use, your transforms will be extremely brittle.\\n */\\n\\nfunction replaceWithSourceString(replacement) {\\n  this.resync();\\n\\n  try {\\n    replacement = \\"(\\" + replacement + \\")\\";\\n    replacement = _babylon.parse(replacement);\\n  } catch (err) {\\n    var loc = err.loc;\\n    if (loc) {\\n      err.message += \\" - make sure this is an expression.\\";\\n      err.message += \\"\\\\n\\" + _babelCodeFrame2[\\"default\\"](replacement, loc.line, loc.column + 1);\\n    }\\n    throw err;\\n  }\\n\\n  replacement = replacement.program.body[0].expression;\\n  _index2[\\"default\\"].removeProperties(replacement);\\n  return this.replaceWith(replacement);\\n}\\n\\n/**\\n * Replace the current node with another.\\n */\\n\\nfunction replaceWith(replacement) {\\n  this.resync();\\n\\n  if (this.removed) {\\n    throw new Error(\\"You can\'t replace this node, we\'ve already removed it\\");\\n  }\\n\\n  if (replacement instanceof _index4[\\"default\\"]) {\\n    replacement = replacement.node;\\n  }\\n\\n  if (!replacement) {\\n    throw new Error(\\"You passed `path.replaceWith()` a falsy node, use `path.remove()` instead\\");\\n  }\\n\\n  if (this.node === replacement) {\\n    return;\\n  }\\n\\n  if (this.isProgram() && !t.isProgram(replacement)) {\\n    throw new Error(\\"You can only replace a Program root node with another Program node\\");\\n  }\\n\\n  if (Array.isArray(replacement)) {\\n    throw new Error(\\"Don\'t use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`\\");\\n  }\\n\\n  if (typeof replacement === \\"string\\") {\\n    throw new Error(\\"Don\'t use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`\\");\\n  }\\n\\n  // replacing a statement with an expression so wrap it in an expression statement\\n  if (this.isNodeType(\\"Statement\\") && t.isExpression(replacement) && !this.canHaveVariableDeclarationOrExpression()) {\\n    replacement = t.expressionStatement(replacement);\\n  }\\n\\n  // replacing an expression with a statement so let\'s explode it\\n  if (this.isNodeType(\\"Expression\\") && t.isStatement(replacement)) {\\n    return this.replaceExpressionWithStatements([replacement]);\\n  }\\n\\n  var oldNode = this.node;\\n  if (oldNode) {\\n    t.inheritsComments(replacement, oldNode);\\n    t.removeComments(oldNode);\\n  }\\n\\n  // replace the node\\n  this._replaceWith(replacement);\\n  this.type = replacement.type;\\n\\n  // potentially create new scope\\n  this.setScope();\\n\\n  // requeue for visiting\\n  this.requeue();\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction _replaceWith(node) {\\n  if (!this.container) {\\n    throw new ReferenceError(\\"Container is falsy\\");\\n  }\\n\\n  if (this.inList) {\\n    t.validate(this.parent, this.key, [node]);\\n  } else {\\n    t.validate(this.parent, this.key, node);\\n  }\\n\\n  this.debug(function () {\\n    return \\"Replace with \\" + (node && node.type);\\n  });\\n\\n  this.node = this.container[this.key] = node;\\n}\\n\\n/**\\n * This method takes an array of statements nodes and then explodes it\\n * into expressions. This method retains completion records which is\\n * extremely important to retain original semantics.\\n */\\n\\nfunction replaceExpressionWithStatements(nodes /*: Array<Object>*/) {\\n  this.resync();\\n\\n  var toSequenceExpression = t.toSequenceExpression(nodes, this.scope);\\n\\n  if (t.isSequenceExpression(toSequenceExpression)) {\\n    var exprs = toSequenceExpression.expressions;\\n\\n    if (exprs.length >= 2 && this.parentPath.isExpressionStatement()) {\\n      this._maybePopFromStatements(exprs);\\n    }\\n\\n    // could be just one element due to the previous maybe popping\\n    if (exprs.length === 1) {\\n      this.replaceWith(exprs[0]);\\n    } else {\\n      this.replaceWith(toSequenceExpression);\\n    }\\n  } else if (toSequenceExpression) {\\n    this.replaceWith(toSequenceExpression);\\n  } else {\\n    var container = t.functionExpression(null, [], t.blockStatement(nodes));\\n    container.shadow = true;\\n\\n    this.replaceWith(t.callExpression(container, []));\\n    this.traverse(hoistVariablesVisitor);\\n\\n    // add implicit returns to all ending expression statements\\n    var completionRecords /*: Array<NodePath>*/ = this.get(\\"callee\\").getCompletionRecords();\\n    for (var _iterator2 = completionRecords, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var path = _ref2;\\n\\n      if (!path.isExpressionStatement()) continue;\\n\\n      var loop = path.findParent(function (path) {\\n        return path.isLoop();\\n      });\\n      if (loop) {\\n        var callee = this.get(\\"callee\\");\\n\\n        var uid = callee.scope.generateDeclaredUidIdentifier(\\"ret\\");\\n        callee.get(\\"body\\").pushContainer(\\"body\\", t.returnStatement(uid));\\n\\n        path.get(\\"expression\\").replaceWith(t.assignmentExpression(\\"=\\", uid, path.node.expression));\\n      } else {\\n        path.replaceWith(t.returnStatement(path.node.expression));\\n      }\\n    }\\n\\n    return this.node;\\n  }\\n}\\n\\nfunction replaceInline(nodes /*: Object | Array<Object>*/) {\\n  this.resync();\\n\\n  if (Array.isArray(nodes)) {\\n    if (Array.isArray(this.container)) {\\n      nodes = this._verifyNodeList(nodes);\\n      this._containerInsertAfter(nodes);\\n      return this.remove();\\n    } else {\\n      return this.replaceWithMultiple(nodes);\\n    }\\n  } else {\\n    return this.replaceWith(nodes);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/replacement.js\\n ** module id = 244\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _lineNumbers = require(\\"line-numbers\\");\\n\\nvar _lineNumbers2 = _interopRequireDefault(_lineNumbers);\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _jsTokens = require(\\"js-tokens\\");\\n\\nvar _jsTokens2 = _interopRequireDefault(_jsTokens);\\n\\nvar _esutils = require(\\"esutils\\");\\n\\nvar _esutils2 = _interopRequireDefault(_esutils);\\n\\nvar _chalk = require(\\"chalk\\");\\n\\nvar _chalk2 = _interopRequireDefault(_chalk);\\n\\n/**\\n * Chalk styles for token types.\\n */\\n\\nvar defs = {\\n  string: _chalk2[\\"default\\"].red,\\n  punctuator: _chalk2[\\"default\\"].bold,\\n  curly: _chalk2[\\"default\\"].green,\\n  parens: _chalk2[\\"default\\"].blue.bold,\\n  square: _chalk2[\\"default\\"].yellow,\\n  keyword: _chalk2[\\"default\\"].cyan,\\n  number: _chalk2[\\"default\\"].magenta,\\n  regex: _chalk2[\\"default\\"].magenta,\\n  comment: _chalk2[\\"default\\"].grey,\\n  invalid: _chalk2[\\"default\\"].inverse\\n};\\n\\n/**\\n * RegExp to test for newlines in terminal.\\n */\\n\\nvar NEWLINE = /\\\\r\\\\n|[\\\\n\\\\r\\\\u2028\\\\u2029]/;\\n\\n/**\\n * Get the type of token, specifying punctuator type.\\n */\\n\\nfunction getTokenType(match) {\\n  var token = _jsTokens2[\\"default\\"].matchToToken(match);\\n  if (token.type === \\"name\\" && _esutils2[\\"default\\"].keyword.isReservedWordES6(token.value)) {\\n    return \\"keyword\\";\\n  }\\n\\n  if (token.type === \\"punctuator\\") {\\n    switch (token.value) {\\n      case \\"{\\":\\n      case \\"}\\":\\n        return \\"curly\\";\\n      case \\"(\\":\\n      case \\")\\":\\n        return \\"parens\\";\\n      case \\"[\\":\\n      case \\"]\\":\\n        return \\"square\\";\\n    }\\n  }\\n\\n  return token.type;\\n}\\n\\n/**\\n * Highlight `text`.\\n */\\n\\nfunction highlight(text /*: string*/) {\\n  return text.replace(_jsTokens2[\\"default\\"], function () {\\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\\n      args[_key] = arguments[_key];\\n    }\\n\\n    var type = getTokenType(args);\\n    var colorize = defs[type];\\n    if (colorize) {\\n      return args[0].split(NEWLINE).map(function (str) {\\n        return colorize(str);\\n      }).join(\\"\\\\n\\");\\n    } else {\\n      return args[0];\\n    }\\n  });\\n}\\n\\n/**\\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\\n */\\n\\nexports[\\"default\\"] = function (rawLines /*: string*/, lineNumber /*: number*/, colNumber /*: number*/) /*: string*/ {\\n  var opts /*: Object*/ = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\\n\\n  colNumber = Math.max(colNumber, 0);\\n\\n  var highlighted = opts.highlightCode && _chalk2[\\"default\\"].supportsColor;\\n  if (highlighted) rawLines = highlight(rawLines);\\n\\n  var lines = rawLines.split(NEWLINE);\\n  var start = Math.max(lineNumber - 3, 0);\\n  var end = Math.min(lines.length, lineNumber + 3);\\n\\n  if (!lineNumber && !colNumber) {\\n    start = 0;\\n    end = lines.length;\\n  }\\n\\n  var frame = _lineNumbers2[\\"default\\"](lines.slice(start, end), {\\n    start: start + 1,\\n    before: \\"  \\",\\n    after: \\" | \\",\\n    transform: function transform(params) {\\n      if (params.number !== lineNumber) {\\n        return;\\n      }\\n\\n      if (colNumber) {\\n        params.line += \\"\\\\n\\" + params.before + _repeating2[\\"default\\"](\\" \\", params.width) + params.after + _repeating2[\\"default\\"](\\" \\", colNumber - 1) + \\"^\\";\\n      }\\n\\n      params.before = params.before.replace(/^./, \\">\\");\\n    }\\n  }).join(\\"\\\\n\\");\\n\\n  if (highlighted) {\\n    return _chalk2[\\"default\\"].reset(frame);\\n  } else {\\n    return frame;\\n  }\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/lib/index.js\\n ** module id = 245\\n ** module chunks = 0\\n **/","// Copyright 2014, 2015 Simon Lydell\\n// X11 (“MIT”) Licensed. (See LICENSE.)\\n\\nvar leftPad = require(\\"left-pad\\")\\n\\nfunction get(options, key, defaultValue) {\\n  return (key in options ? options[key] : defaultValue)\\n}\\n\\nfunction lineNumbers(code, options) {\\n  var getOption = get.bind(null, options || {})\\n  var transform = getOption(\\"transform\\", Function.prototype)\\n  var padding   = getOption(\\"padding\\", \\" \\")\\n  var before    = getOption(\\"before\\", \\" \\")\\n  var after     = getOption(\\"after\\", \\" | \\")\\n  var start     = getOption(\\"start\\", 1)\\n  var isArray   = Array.isArray(code)\\n  var lines     = (isArray ? code : code.split(\\"\\\\n\\"))\\n  var end       = start + lines.length - 1\\n  var width     = String(end).length\\n  var numbered  = lines.map(function(line, index) {\\n    var number  = start + index\\n    var params  = {before: before, number: number, width: width, after: after,\\n                   line: line}\\n    transform(params)\\n    return params.before + leftPad(params.number, width, padding) +\\n           params.after + params.line\\n  })\\n  return (isArray ? numbered : numbered.join(\\"\\\\n\\"))\\n}\\n\\nmodule.exports = lineNumbers\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/index.js\\n ** module id = 246\\n ** module chunks = 0\\n **/","module.exports = leftpad;\\n\\nfunction leftpad (str, len, ch) {\\n  str = String(str);\\n\\n  var i = -1;\\n\\n  ch || (ch = \' \');\\n  len = len - str.length;\\n\\n\\n  while (++i < len) {\\n    str = ch + str;\\n  }\\n\\n  return str;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/~/left-pad/index.js\\n ** module id = 247\\n ** module chunks = 0\\n **/","// Copyright 2014, 2015 Simon Lydell\\n// X11 (“MIT”) Licensed. (See LICENSE.)\\n\\n// This regex comes from regex.coffee, and is inserted here by generate-index.js\\n// (run `npm run build`).\\nmodule.exports = /(([\'\\"])(?:(?!\\\\2|\\\\\\\\).|\\\\\\\\(?:\\\\r\\\\n|[\\\\s\\\\S]))*(\\\\2)?|`(?:[^`\\\\\\\\$]|\\\\\\\\[\\\\s\\\\S]|\\\\$(?!\\\\{)|\\\\$\\\\{(?:[^{}]|\\\\{[^}]*\\\\}?)*\\\\}?)*(`)?)|(\\\\/\\\\/.*)|(\\\\/\\\\*(?:[^*]|\\\\*(?!\\\\/))*(\\\\*\\\\/)?)|(\\\\/(?!\\\\*)(?:\\\\[(?:(?![\\\\]\\\\\\\\]).|\\\\\\\\.)*\\\\]|(?![\\\\/\\\\]\\\\\\\\]).|\\\\\\\\.)+\\\\/(?:(?!\\\\s*(?:\\\\b|[\\\\u0080-\\\\uFFFF$\\\\\\\\\'\\"~({]|[+\\\\-!](?!=)|\\\\.?\\\\d))|[gmiyu]{1,5}\\\\b(?![\\\\u0080-\\\\uFFFF$\\\\\\\\]|\\\\s*(?:[+\\\\-*%&|^<>!=?({]|\\\\/(?![\\\\/*])))))|((?:0[xX][\\\\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.?)(?:[eE][+-]?\\\\d+)?))|((?!\\\\d)(?:(?!\\\\s)[$\\\\w\\\\u0080-\\\\uFFFF]|\\\\\\\\u[\\\\da-fA-F]{4}|\\\\\\\\u\\\\{[\\\\da-fA-F]{1,6}\\\\})+)|(--|\\\\+\\\\+|&&|\\\\|\\\\||=>|\\\\.{3}|(?:[+\\\\-*\\\\/%&|^]|<{1,2}|>{1,3}|!=?|={1,2})=?|[?:~]|[;,.[\\\\](){}])|(\\\\s+)|(^$|[\\\\s\\\\S])/g\\n\\nmodule.exports.matchToToken = function(match) {\\n  var token = {type: \\"invalid\\", value: match[0]}\\n       if (match[ 1]) token.type = \\"string\\" , token.closed = !!(match[3] || match[4])\\n  else if (match[ 5]) token.type = \\"comment\\"\\n  else if (match[ 6]) token.type = \\"comment\\", token.closed = !!match[7]\\n  else if (match[ 8]) token.type = \\"regex\\"\\n  else if (match[ 9]) token.type = \\"number\\"\\n  else if (match[10]) token.type = \\"name\\"\\n  else if (match[11]) token.type = \\"punctuator\\"\\n  else if (match[12]) token.type = \\"whitespace\\"\\n  return token\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/js-tokens/index.js\\n ** module id = 248\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar escapeStringRegexp = require(\'escape-string-regexp\');\\nvar ansiStyles = require(\'ansi-styles\');\\nvar stripAnsi = require(\'strip-ansi\');\\nvar hasAnsi = require(\'has-ansi\');\\nvar supportsColor = require(\'supports-color\');\\nvar defineProps = Object.defineProperties;\\nvar isSimpleWindowsTerm = process.platform === \'win32\' && !/^xterm/i.test(process.env.TERM);\\n\\nfunction Chalk(options) {\\n\\t// detect mode if not set manually\\n\\tthis.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;\\n}\\n\\n// use bright blue on Windows as the normal blue color is illegible\\nif (isSimpleWindowsTerm) {\\n\\tansiStyles.blue.open = \'\\\\u001b[94m\';\\n}\\n\\nvar styles = (function () {\\n\\tvar ret = {};\\n\\n\\tObject.keys(ansiStyles).forEach(function (key) {\\n\\t\\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), \'g\');\\n\\n\\t\\tret[key] = {\\n\\t\\t\\tget: function () {\\n\\t\\t\\t\\treturn build.call(this, this._styles.concat(key));\\n\\t\\t\\t}\\n\\t\\t};\\n\\t});\\n\\n\\treturn ret;\\n})();\\n\\nvar proto = defineProps(function chalk() {}, styles);\\n\\nfunction build(_styles) {\\n\\tvar builder = function () {\\n\\t\\treturn applyStyle.apply(builder, arguments);\\n\\t};\\n\\n\\tbuilder._styles = _styles;\\n\\tbuilder.enabled = this.enabled;\\n\\t// __proto__ is used because we must return a function, but there is\\n\\t// no way to create a function with a different prototype.\\n\\t/* eslint-disable no-proto */\\n\\tbuilder.__proto__ = proto;\\n\\n\\treturn builder;\\n}\\n\\nfunction applyStyle() {\\n\\t// support varags, but simply cast to string in case there\'s only one arg\\n\\tvar args = arguments;\\n\\tvar argsLen = args.length;\\n\\tvar str = argsLen !== 0 && String(arguments[0]);\\n\\n\\tif (argsLen > 1) {\\n\\t\\t// don\'t slice `arguments`, it prevents v8 optimizations\\n\\t\\tfor (var a = 1; a < argsLen; a++) {\\n\\t\\t\\tstr += \' \' + args[a];\\n\\t\\t}\\n\\t}\\n\\n\\tif (!this.enabled || !str) {\\n\\t\\treturn str;\\n\\t}\\n\\n\\tvar nestedStyles = this._styles;\\n\\tvar i = nestedStyles.length;\\n\\n\\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\\n\\t// see https://github.com/chalk/chalk/issues/58\\n\\t// If we\'re on Windows and we\'re dealing with a gray color, temporarily make \'dim\' a noop.\\n\\tvar originalDim = ansiStyles.dim.open;\\n\\tif (isSimpleWindowsTerm && (nestedStyles.indexOf(\'gray\') !== -1 || nestedStyles.indexOf(\'grey\') !== -1)) {\\n\\t\\tansiStyles.dim.open = \'\';\\n\\t}\\n\\n\\twhile (i--) {\\n\\t\\tvar code = ansiStyles[nestedStyles[i]];\\n\\n\\t\\t// Replace any instances already present with a re-opening code\\n\\t\\t// otherwise only the part of the string until said closing code\\n\\t\\t// will be colored, and the rest will simply be \'plain\'.\\n\\t\\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\\n\\t}\\n\\n\\t// Reset the original \'dim\' if we changed it to work around the Windows dimmed gray issue.\\n\\tansiStyles.dim.open = originalDim;\\n\\n\\treturn str;\\n}\\n\\nfunction init() {\\n\\tvar ret = {};\\n\\n\\tObject.keys(styles).forEach(function (name) {\\n\\t\\tret[name] = {\\n\\t\\t\\tget: function () {\\n\\t\\t\\t\\treturn build.call(this, [name]);\\n\\t\\t\\t}\\n\\t\\t};\\n\\t});\\n\\n\\treturn ret;\\n}\\n\\ndefineProps(Chalk.prototype, init());\\n\\nmodule.exports = new Chalk();\\nmodule.exports.styles = ansiStyles;\\nmodule.exports.hasColor = hasAnsi;\\nmodule.exports.stripColor = stripAnsi;\\nmodule.exports.supportsColor = supportsColor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/index.js\\n ** module id = 249\\n ** module chunks = 0\\n **/","\'use strict\';\\n\\nvar matchOperatorsRe = /[|\\\\\\\\{}()[\\\\]^$+*?.]/g;\\n\\nmodule.exports = function (str) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string\');\\n\\t}\\n\\n\\treturn str.replace(matchOperatorsRe, \'\\\\\\\\$&\');\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/escape-string-regexp/index.js\\n ** module id = 250\\n ** module chunks = 0\\n **/","\'use strict\';\\n\\nfunction assembleStyles () {\\n\\tvar styles = {\\n\\t\\tmodifiers: {\\n\\t\\t\\treset: [0, 0],\\n\\t\\t\\tbold: [1, 22], // 21 isn\'t widely supported and 22 does the same thing\\n\\t\\t\\tdim: [2, 22],\\n\\t\\t\\titalic: [3, 23],\\n\\t\\t\\tunderline: [4, 24],\\n\\t\\t\\tinverse: [7, 27],\\n\\t\\t\\thidden: [8, 28],\\n\\t\\t\\tstrikethrough: [9, 29]\\n\\t\\t},\\n\\t\\tcolors: {\\n\\t\\t\\tblack: [30, 39],\\n\\t\\t\\tred: [31, 39],\\n\\t\\t\\tgreen: [32, 39],\\n\\t\\t\\tyellow: [33, 39],\\n\\t\\t\\tblue: [34, 39],\\n\\t\\t\\tmagenta: [35, 39],\\n\\t\\t\\tcyan: [36, 39],\\n\\t\\t\\twhite: [37, 39],\\n\\t\\t\\tgray: [90, 39]\\n\\t\\t},\\n\\t\\tbgColors: {\\n\\t\\t\\tbgBlack: [40, 49],\\n\\t\\t\\tbgRed: [41, 49],\\n\\t\\t\\tbgGreen: [42, 49],\\n\\t\\t\\tbgYellow: [43, 49],\\n\\t\\t\\tbgBlue: [44, 49],\\n\\t\\t\\tbgMagenta: [45, 49],\\n\\t\\t\\tbgCyan: [46, 49],\\n\\t\\t\\tbgWhite: [47, 49]\\n\\t\\t}\\n\\t};\\n\\n\\t// fix humans\\n\\tstyles.colors.grey = styles.colors.gray;\\n\\n\\tObject.keys(styles).forEach(function (groupName) {\\n\\t\\tvar group = styles[groupName];\\n\\n\\t\\tObject.keys(group).forEach(function (styleName) {\\n\\t\\t\\tvar style = group[styleName];\\n\\n\\t\\t\\tstyles[styleName] = group[styleName] = {\\n\\t\\t\\t\\topen: \'\\\\u001b[\' + style[0] + \'m\',\\n\\t\\t\\t\\tclose: \'\\\\u001b[\' + style[1] + \'m\'\\n\\t\\t\\t};\\n\\t\\t});\\n\\n\\t\\tObject.defineProperty(styles, groupName, {\\n\\t\\t\\tvalue: group,\\n\\t\\t\\tenumerable: false\\n\\t\\t});\\n\\t});\\n\\n\\treturn styles;\\n}\\n\\nObject.defineProperty(module, \'exports\', {\\n\\tenumerable: true,\\n\\tget: assembleStyles\\n});\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/ansi-styles/index.js\\n ** module id = 251\\n ** module chunks = 0\\n **/","module.exports = function(module) {\\r\\n\\tif(!module.webpackPolyfill) {\\r\\n\\t\\tmodule.deprecate = function() {};\\r\\n\\t\\tmodule.paths = [];\\r\\n\\t\\t// module.parent = undefined by default\\r\\n\\t\\tmodule.children = [];\\r\\n\\t\\tmodule.webpackPolyfill = 1;\\r\\n\\t}\\r\\n\\treturn module;\\r\\n}\\r\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/buildin/module.js\\n ** module id = 252\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar ansiRegex = require(\'ansi-regex\')();\\n\\nmodule.exports = function (str) {\\n\\treturn typeof str === \'string\' ? str.replace(ansiRegex, \'\') : str;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/index.js\\n ** module id = 253\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function () {\\n\\treturn /[\\\\u001b\\\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/~/ansi-regex/index.js\\n ** module id = 254\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar ansiRegex = require(\'ansi-regex\');\\nvar re = new RegExp(ansiRegex().source); // remove the `g` flag\\nmodule.exports = re.test.bind(re);\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/index.js\\n ** module id = 255\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function () {\\n\\treturn /[\\\\u001b\\\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/~/ansi-regex/index.js\\n ** module id = 256\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar argv = process.argv;\\n\\nvar terminator = argv.indexOf(\'--\');\\nvar hasFlag = function (flag) {\\n\\tflag = \'--\' + flag;\\n\\tvar pos = argv.indexOf(flag);\\n\\treturn pos !== -1 && (terminator !== -1 ? pos < terminator : true);\\n};\\n\\nmodule.exports = (function () {\\n\\tif (\'FORCE_COLOR\' in process.env) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (hasFlag(\'no-color\') ||\\n\\t\\thasFlag(\'no-colors\') ||\\n\\t\\thasFlag(\'color=false\')) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif (hasFlag(\'color\') ||\\n\\t\\thasFlag(\'colors\') ||\\n\\t\\thasFlag(\'color=true\') ||\\n\\t\\thasFlag(\'color=always\')) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (process.stdout && !process.stdout.isTTY) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif (process.platform === \'win32\') {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (\'COLORTERM\' in process.env) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (process.env.TERM === \'dumb\') {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\treturn false;\\n})();\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/supports-color/index.js\\n ** module id = 257\\n ** module chunks = 0\\n **/","(function(f){if(typeof exports===\\"object\\"&&typeof module!==\\"undefined\\"){module.exports=f()}else if(typeof define===\\"function\\"&&define.amd){define([],f)}else{var g;if(typeof window!==\\"undefined\\"){g=window}else if(typeof global!==\\"undefined\\"){g=global}else if(typeof self!==\\"undefined\\"){g=self}else{g=this}g.babylon = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module \'\\"+o+\\"\'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.parse = parse;\\n\\nvar _parser = require(\\"./parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nrequire(\\"./parser/util\\");\\n\\nrequire(\\"./parser/statement\\");\\n\\nrequire(\\"./parser/lval\\");\\n\\nrequire(\\"./parser/expression\\");\\n\\nrequire(\\"./parser/node\\");\\n\\nrequire(\\"./parser/location\\");\\n\\nrequire(\\"./parser/comments\\");\\n\\nvar _tokenizerTypes = require(\\"./tokenizer/types\\");\\n\\nrequire(\\"./tokenizer\\");\\n\\nrequire(\\"./tokenizer/context\\");\\n\\nvar _pluginsFlow = require(\\"./plugins/flow\\");\\n\\nvar _pluginsFlow2 = _interopRequireDefault(_pluginsFlow);\\n\\nvar _pluginsJsx = require(\\"./plugins/jsx\\");\\n\\nvar _pluginsJsx2 = _interopRequireDefault(_pluginsJsx);\\n\\n_parser.plugins.flow = _pluginsFlow2[\\"default\\"];\\n_parser.plugins.jsx = _pluginsJsx2[\\"default\\"];\\n\\nfunction parse(input, options) {\\n  return new _parser2[\\"default\\"](options, input).parse();\\n}\\n\\nexports.tokTypes = _tokenizerTypes.types;\\n},{\\"./parser\\":5,\\"./parser/comments\\":3,\\"./parser/expression\\":4,\\"./parser/location\\":6,\\"./parser/lval\\":7,\\"./parser/node\\":8,\\"./parser/statement\\":9,\\"./parser/util\\":10,\\"./plugins/flow\\":11,\\"./plugins/jsx\\":12,\\"./tokenizer\\":15,\\"./tokenizer/context\\":14,\\"./tokenizer/types\\":17,\\"babel-runtime/helpers/interop-require-default\\":26}],2:[function(require,module,exports){\\n/* @flow */\\n// A second optional argument can be given to further configure\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.getOptions = getOptions;\\nvar defaultOptions /*: {\\n                     sourceType: string,\\n                     allowReturnOutsideFunction: boolean,\\n                     allowImportExportEverywhere: boolean,\\n                     allowSuperOutsideMethod: boolean,\\n                     plugins: Array<string>,\\n                     strictMode: any\\n                   }*/ = {\\n  // Source type (\\"script\\" or \\"module\\") for different semantics\\n  sourceType: \\"script\\",\\n  // When enabled, a return at the top level is not considered an\\n  // error.\\n  allowReturnOutsideFunction: false,\\n  // When enabled, import/export statements are not constrained to\\n  // appearing at the top of the program.\\n  allowImportExportEverywhere: false,\\n  // TODO\\n  allowSuperOutsideMethod: false,\\n  // An array of plugins to enable\\n  plugins: [],\\n  // TODO\\n  strictMode: null\\n};\\n\\nexports.defaultOptions = defaultOptions;\\n// Interpret and default an options object\\n\\nfunction getOptions(opts /*:: ?: Object*/) /*: Object*/ {\\n  var options = {};\\n  for (var key in defaultOptions) {\\n    options[key] = opts && key in opts ? opts[key] : defaultOptions[key];\\n  }\\n  return options;\\n}\\n\\n// the parser process. These options are recognized:\\n},{}],3:[function(require,module,exports){\\n/* @flow */\\n\\n/**\\n * Based on the comment attachment algorithm used in espree and estraverse.\\n *\\n * Redistribution and use in source and binary forms, with or without\\n * modification, are permitted provided that the following conditions are met:\\n *\\n * * Redistributions of source code must retain the above copyright\\n *   notice, this list of conditions and the following disclaimer.\\n * * Redistributions in binary form must reproduce the above copyright\\n *   notice, this list of conditions and the following disclaimer in the\\n *   documentation and/or other materials provided with the distribution.\\n *\\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nfunction last(stack) {\\n  return stack[stack.length - 1];\\n}\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\npp.addComment = function (comment) {\\n  this.state.trailingComments.push(comment);\\n  this.state.leadingComments.push(comment);\\n};\\n\\npp.processComment = function (node) {\\n  if (node.type === \\"Program\\" && node.body.length > 0) return;\\n\\n  var stack = this.state.commentStack;\\n\\n  var lastChild = undefined,\\n      trailingComments = undefined,\\n      i = undefined;\\n\\n  if (this.state.trailingComments.length > 0) {\\n    // If the first comment in trailingComments comes after the\\n    // current node, then we\'re good - all comments in the array will\\n    // come after the node and so it\'s safe to add them as official\\n    // trailingComments.\\n    if (this.state.trailingComments[0].start >= node.end) {\\n      trailingComments = this.state.trailingComments;\\n      this.state.trailingComments = [];\\n    } else {\\n      // Otherwise, if the first comment doesn\'t come after the\\n      // current node, that means we have a mix of leading and trailing\\n      // comments in the array and that leadingComments contains the\\n      // same items as trailingComments. Reset trailingComments to\\n      // zero items and we\'ll handle this by evaluating leadingComments\\n      // later.\\n      this.state.trailingComments.length = 0;\\n    }\\n  } else {\\n    var lastInStack = last(stack);\\n    if (stack.length > 0 && lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) {\\n      trailingComments = lastInStack.trailingComments;\\n      lastInStack.trailingComments = null;\\n    }\\n  }\\n\\n  // Eating the stack.\\n  while (stack.length > 0 && last(stack).start >= node.start) {\\n    lastChild = stack.pop();\\n  }\\n\\n  if (lastChild) {\\n    if (lastChild.leadingComments) {\\n      if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) {\\n        node.leadingComments = lastChild.leadingComments;\\n        lastChild.leadingComments = null;\\n      } else {\\n        // A leading comment for an anonymous class had been stolen by its first ClassMethod,\\n        // so this takes back the leading comment.\\n        // See also: https://github.com/eslint/espree/issues/158\\n        for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\\n          if (lastChild.leadingComments[i].end <= node.start) {\\n            node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\\n            break;\\n          }\\n        }\\n      }\\n    }\\n  } else if (this.state.leadingComments.length > 0) {\\n    if (last(this.state.leadingComments).end <= node.start) {\\n      node.leadingComments = this.state.leadingComments;\\n      this.state.leadingComments = [];\\n    } else {\\n      // https://github.com/eslint/espree/issues/2\\n      //\\n      // In special cases, such as return (without a value) and\\n      // debugger, all comments will end up as leadingComments and\\n      // will otherwise be eliminated. This step runs when the\\n      // commentStack is empty and there are comments left\\n      // in leadingComments.\\n      //\\n      // This loop figures out the stopping point between the actual\\n      // leading and trailing comments by finding the location of the\\n      // first comment that comes after the given node.\\n      for (i = 0; i < this.state.leadingComments.length; i++) {\\n        if (this.state.leadingComments[i].end > node.start) {\\n          break;\\n        }\\n      }\\n\\n      // Split the array based on the location of the first comment\\n      // that comes after the node. Keep in mind that this could\\n      // result in an empty array, and if so, the array must be\\n      // deleted.\\n      node.leadingComments = this.state.leadingComments.slice(0, i);\\n      if ((node.leadingComments /*: Array<any>*/).length === 0) {\\n        node.leadingComments = null;\\n      }\\n\\n      // Similarly, trailing comments are attached later. The variable\\n      // must be reset to null if there are no trailing comments.\\n      trailingComments = this.state.leadingComments.slice(i);\\n      if (trailingComments.length === 0) {\\n        trailingComments = null;\\n      }\\n    }\\n  }\\n\\n  if (trailingComments) {\\n    if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) {\\n      node.innerComments = trailingComments;\\n    } else {\\n      node.trailingComments = trailingComments;\\n    }\\n  }\\n\\n  stack.push(node);\\n};\\n},{\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":26}],4:[function(require,module,exports){\\n// A recursive descent parser operates by defining functions for all\\n// syntactic elements, and recursively calling those, each function\\n// advancing the input stream and returning an AST node. Precedence\\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\\n// instead of `(!x)[1]` is handled by the fact that the parser\\n// function that parses unary prefix operators is called first, and\\n// in turn calls the function that parses `[]` subscripts — that\\n// way, it\'ll receive the node for `x[1]` already parsed, and wraps\\n// *that* in the unary operator node.\\n//\\n// Acorn uses an [operator precedence parser][opp] to handle binary\\n// operator precedence, because it is much more compact than using\\n// the technique outlined above, which uses different, nesting\\n// functions to specify precedence, for all of the ten binary\\n// precedence levels that JavaScript defines.\\n//\\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\\n\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Check if property name clashes with already added.\\n// Object/class getters and setters are not allowed to clash —\\n// either with each other or with an init property — and in\\n// strict mode, init properties are also not allowed to be repeated.\\n\\npp.checkPropClash = function (prop, propHash) {\\n  if (prop.computed) return;\\n\\n  var key = prop.key;\\n  var name = undefined;\\n  switch (key.type) {\\n    case \\"Identifier\\":\\n      name = key.name;\\n      break;\\n\\n    case \\"StringLiteral\\":\\n    case \\"NumericLiteral\\":\\n      name = String(key.value);\\n      break;\\n\\n    default:\\n      return;\\n  }\\n\\n  if (name === \\"__proto__\\" && prop.kind === \\"init\\") {\\n    if (propHash.proto) this.raise(key.start, \\"Redefinition of __proto__ property\\");\\n    propHash.proto = true;\\n  }\\n};\\n\\n// ### Expression parsing\\n\\n// These nest, from the most general expression type at the top to\\n// \'atomic\', nondivisible expression types at the bottom. Most of\\n// the functions will simply let the function (s) below them parse,\\n// and, *if* the syntactic construct they handle is present, wrap\\n// the AST node that the inner parser gave them in another node.\\n\\n// Parse a full expression. The optional arguments are used to\\n// forbid the `in` operator (in for loops initalization expressions)\\n// and provide reference for storing \'=\' operator inside shorthand\\n// property assignment in contexts where both object expression\\n// and object pattern might appear (so it\'s possible to raise\\n// delayed syntax error at correct position).\\n\\npp.parseExpression = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeAssign(noIn, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types.comma)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.expressions = [expr];\\n    while (this.eat(_tokenizerTypes.types.comma)) {\\n      node.expressions.push(this.parseMaybeAssign(noIn, refShorthandDefaultPos));\\n    }\\n    this.toReferencedList(node.expressions);\\n    return this.finishNode(node, \\"SequenceExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse an assignment expression. This includes applications of\\n// operators like `+=`.\\n\\npp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) {\\n  if (this.match(_tokenizerTypes.types._yield) && this.state.inGenerator) {\\n    return this.parseYield();\\n  }\\n\\n  var failOnShorthandAssign = undefined;\\n  if (refShorthandDefaultPos) {\\n    failOnShorthandAssign = false;\\n  } else {\\n    refShorthandDefaultPos = { start: 0 };\\n    failOnShorthandAssign = true;\\n  }\\n\\n  var startPos = this.state.start;\\n  var startLoc = this.state.startLoc;\\n\\n  if (this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.name)) {\\n    this.state.potentialArrowAt = this.state.start;\\n  }\\n\\n  var left = this.parseMaybeConditional(noIn, refShorthandDefaultPos);\\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc);\\n  if (this.state.type.isAssign) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.left = this.match(_tokenizerTypes.types.eq) ? this.toAssignable(left) : left;\\n    refShorthandDefaultPos.start = 0; // reset because shorthand default was used correctly\\n\\n    this.checkLVal(left);\\n\\n    if (left.extra && left.extra.parenthesized) {\\n      var errorMsg = undefined;\\n      if (left.type === \\"ObjectPattern\\") {\\n        errorMsg = \\"`({a}) = 0` use `({a} = 0)`\\";\\n      } else if (left.type === \\"ArrayPattern\\") {\\n        errorMsg = \\"`([a]) = 0` use `([a] = 0)`\\";\\n      }\\n      if (errorMsg) {\\n        this.raise(left.start, \\"You\'re trying to assign to a parenthesized expression, eg. instead of \\" + errorMsg);\\n      }\\n    }\\n\\n    this.next();\\n    node.right = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"AssignmentExpression\\");\\n  } else if (failOnShorthandAssign && refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n\\n  return left;\\n};\\n\\n// Parse a ternary conditional (`?:`) operator.\\n\\npp.parseMaybeConditional = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprOps(noIn, refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.test = expr;\\n    node.consequent = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.colon);\\n    node.alternate = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"ConditionalExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Start the precedence parser.\\n\\npp.parseExprOps = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeUnary(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  } else {\\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\\n  }\\n};\\n\\n// Parse binary operators with the operator precedence parsing\\n// algorithm. `left` is the left-hand side of the operator.\\n// `minPrec` provides context that allows the function to stop and\\n// defer further parser to one of its callers when it encounters an\\n// operator that has a lower precedence than the set it is parsing.\\n\\npp.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, noIn) {\\n  var prec = this.state.type.binop;\\n  if (prec != null && (!noIn || !this.match(_tokenizerTypes.types._in))) {\\n    if (prec > minPrec) {\\n      var node = this.startNodeAt(leftStartPos, leftStartLoc);\\n      node.left = left;\\n      node.operator = this.state.value;\\n\\n      if (node.operator === \\"**\\" && left.type === \\"UnaryExpression\\" && left.extra && !left.extra.parenthesizedArgument) {\\n        this.raise(left.argument.start, \\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\\");\\n      }\\n\\n      var op = this.state.type;\\n      this.next();\\n\\n      var startPos = this.state.start;\\n      var startLoc = this.state.startLoc;\\n      node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec, noIn);\\n\\n      this.finishNode(node, op === _tokenizerTypes.types.logicalOR || op === _tokenizerTypes.types.logicalAND ? \\"LogicalExpression\\" : \\"BinaryExpression\\");\\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);\\n    }\\n  }\\n  return left;\\n};\\n\\n// Parse unary operators, both prefix and postfix.\\n\\npp.parseMaybeUnary = function (refShorthandDefaultPos) {\\n  if (this.state.type.prefix) {\\n    var node = this.startNode();\\n    var update = this.match(_tokenizerTypes.types.incDec);\\n    node.operator = this.state.value;\\n    node.prefix = true;\\n    this.next();\\n\\n    var argType = this.state.type;\\n    this.addExtra(node, \\"parenthesizedArgument\\", argType === _tokenizerTypes.types.parenL);\\n    node.argument = this.parseMaybeUnary();\\n\\n    if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n      this.unexpected(refShorthandDefaultPos.start);\\n    }\\n\\n    if (update) {\\n      this.checkLVal(node.argument);\\n    } else if (this.state.strict && node.operator === \\"delete\\" && node.argument.type === \\"Identifier\\") {\\n      this.raise(node.start, \\"Deleting local variable in strict mode\\");\\n    }\\n\\n    return this.finishNode(node, update ? \\"UpdateExpression\\" : \\"UnaryExpression\\");\\n  }\\n\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprSubscripts(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  while (this.state.type.postfix && !this.canInsertSemicolon()) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.prefix = false;\\n    node.argument = expr;\\n    this.checkLVal(expr);\\n    this.next();\\n    expr = this.finishNode(node, \\"UpdateExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse call, dot, and `[]`-subscript expressions.\\n\\npp.parseExprSubscripts = function (refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var potentialArrowAt = this.state.potentialArrowAt;\\n  var expr = this.parseExprAtom(refShorthandDefaultPos);\\n\\n  if (expr.type === \\"ArrowFunctionExpression\\" && expr.start === potentialArrowAt) {\\n    return expr;\\n  }\\n\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  }\\n\\n  return this.parseSubscripts(expr, startPos, startLoc);\\n};\\n\\npp.parseSubscripts = function (base, startPos, startLoc, noCalls) {\\n  for (;;) {\\n    if (!noCalls && this.eat(_tokenizerTypes.types.doubleColon)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.callee = this.parseNoCallExpr();\\n      return this.parseSubscripts(this.finishNode(node, \\"BindExpression\\"), startPos, startLoc, noCalls);\\n    } else if (this.eat(_tokenizerTypes.types.dot)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseIdentifier(true);\\n      node.computed = false;\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (this.eat(_tokenizerTypes.types.bracketL)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseExpression();\\n      node.computed = true;\\n      this.expect(_tokenizerTypes.types.bracketR);\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (!noCalls && this.match(_tokenizerTypes.types.parenL)) {\\n      var possibleAsync = this.state.potentialArrowAt === base.start && base.type === \\"Identifier\\" && base.name === \\"async\\" && !this.canInsertSemicolon();\\n      this.next();\\n\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.callee = base;\\n      node.arguments = this.parseCallExpressionArguments(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"), possibleAsync);\\n      base = this.finishNode(node, \\"CallExpression\\");\\n\\n      if (possibleAsync && this.shouldParseAsyncArrow()) {\\n        return this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node);\\n      } else {\\n        this.toReferencedList(node.arguments);\\n      }\\n    } else if (this.match(_tokenizerTypes.types.backQuote)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.tag = base;\\n      node.quasi = this.parseTemplate();\\n      base = this.finishNode(node, \\"TaggedTemplateExpression\\");\\n    } else {\\n      return base;\\n    }\\n  }\\n};\\n\\npp.parseCallExpressionArguments = function (close, allowTrailingComma, possibleAsyncArrow) {\\n  var innerParenStart = undefined;\\n\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    // we need to make sure that if this is an async arrow functions, that we don\'t allow inner parens inside the params\\n    if (this.match(_tokenizerTypes.types.parenL) && !innerParenStart) {\\n      innerParenStart = this.state.start;\\n    }\\n\\n    elts.push(this.parseExprListItem());\\n  }\\n\\n  // we found an async arrow function so let\'s not allow any inner parens\\n  if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\\n    this.unexpected();\\n  }\\n\\n  return elts;\\n};\\n\\npp.shouldParseAsyncArrow = function () {\\n  return this.match(_tokenizerTypes.types.arrow);\\n};\\n\\npp.parseAsyncArrowFromCallExpression = function (node, call) {\\n  if (!this.hasPlugin(\\"asyncFunctions\\")) this.unexpected();\\n  this.expect(_tokenizerTypes.types.arrow);\\n  return this.parseArrowExpression(node, call.arguments, true);\\n};\\n\\n// Parse a no-call expression (like argument of `new` or `::` operators).\\n\\npp.parseNoCallExpr = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\\n};\\n\\n// Parse an atomic expression — either a single token that is an\\n// expression, an expression started by a keyword like `function` or\\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\\n// or `{}`.\\n\\npp.parseExprAtom = function (refShorthandDefaultPos) {\\n  var node = undefined,\\n      canBeArrow = this.state.potentialArrowAt === this.state.start;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._super:\\n      if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) {\\n        this.raise(this.state.start, \\"\'super\' outside of function or class\\");\\n      }\\n\\n      node = this.startNode();\\n      this.next();\\n      if (!this.match(_tokenizerTypes.types.parenL) && !this.match(_tokenizerTypes.types.bracketL) && !this.match(_tokenizerTypes.types.dot)) {\\n        this.unexpected();\\n      }\\n      if (this.match(_tokenizerTypes.types.parenL) && this.state.inMethod !== \\"constructor\\" && !this.options.allowSuperOutsideMethod) {\\n        this.raise(node.start, \\"super() outside of class constructor\\");\\n      }\\n      return this.finishNode(node, \\"Super\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"ThisExpression\\");\\n\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      node = this.startNode();\\n      var allowAwait = this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"await\\" && this.state.inAsync;\\n      var allowYield = this.shouldAllowYieldIdentifier();\\n      var id = this.parseIdentifier(allowAwait || allowYield);\\n\\n      if (this.hasPlugin(\\"asyncFunctions\\")) {\\n        if (id.name === \\"await\\") {\\n          if (this.state.inAsync || this.inModule) {\\n            return this.parseAwait(node);\\n          }\\n        } else if (id.name === \\"async\\" && this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.next();\\n          return this.parseFunction(node, false, false, true);\\n        } else if (canBeArrow && id.name === \\"async\\" && this.match(_tokenizerTypes.types.name)) {\\n          var params = [this.parseIdentifier()];\\n          this.expect(_tokenizerTypes.types.arrow);\\n          // let foo = bar => {};\\n          return this.parseArrowExpression(node, params, true);\\n        }\\n      }\\n\\n      if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n        return this.parseArrowExpression(node, [id]);\\n      }\\n\\n      return id;\\n\\n    case _tokenizerTypes.types._do:\\n      if (this.hasPlugin(\\"doExpressions\\")) {\\n        var _node = this.startNode();\\n        this.next();\\n        var oldInFunction = this.state.inFunction;\\n        var oldLabels = this.state.labels;\\n        this.state.labels = [];\\n        this.state.inFunction = false;\\n        _node.body = this.parseBlock(false, true);\\n        this.state.inFunction = oldInFunction;\\n        this.state.labels = oldLabels;\\n        return this.finishNode(_node, \\"DoExpression\\");\\n      }\\n\\n    case _tokenizerTypes.types.regexp:\\n      var value = this.state.value;\\n      node = this.parseLiteral(value.value, \\"RegExpLiteral\\");\\n      node.pattern = value.pattern;\\n      node.flags = value.flags;\\n      return node;\\n\\n    case _tokenizerTypes.types.num:\\n      return this.parseLiteral(this.state.value, \\"NumericLiteral\\");\\n\\n    case _tokenizerTypes.types.string:\\n      return this.parseLiteral(this.state.value, \\"StringLiteral\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteral\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node = this.startNode();\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteral\\");\\n\\n    case _tokenizerTypes.types.parenL:\\n      return this.parseParenAndDistinguishExpression(null, null, canBeArrow);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      node = this.startNode();\\n      this.next();\\n      node.elements = this.parseExprList(_tokenizerTypes.types.bracketR, true, true, refShorthandDefaultPos);\\n      this.toReferencedList(node.elements);\\n      return this.finishNode(node, \\"ArrayExpression\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(false, refShorthandDefaultPos);\\n\\n    case _tokenizerTypes.types._function:\\n      return this.parseFunctionExpression();\\n\\n    case _tokenizerTypes.types.at:\\n      this.parseDecorators();\\n\\n    case _tokenizerTypes.types._class:\\n      node = this.startNode();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, false);\\n\\n    case _tokenizerTypes.types._new:\\n      return this.parseNew();\\n\\n    case _tokenizerTypes.types.backQuote:\\n      return this.parseTemplate();\\n\\n    case _tokenizerTypes.types.doubleColon:\\n      node = this.startNode();\\n      this.next();\\n      node.object = null;\\n      var callee = node.callee = this.parseNoCallExpr();\\n      if (callee.type === \\"MemberExpression\\") {\\n        return this.finishNode(node, \\"BindExpression\\");\\n      } else {\\n        this.raise(callee.start, \\"Binding should be performed on object property.\\");\\n      }\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseFunctionExpression = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n  if (this.state.inGenerator && this.eat(_tokenizerTypes.types.dot) && this.hasPlugin(\\"functionSent\\")) {\\n    return this.parseMetaProperty(node, meta, \\"sent\\");\\n  } else {\\n    return this.parseFunction(node, false);\\n  }\\n};\\n\\npp.parseMetaProperty = function (node, meta, propertyName) {\\n  node.meta = meta;\\n  node.property = this.parseIdentifier(true);\\n\\n  if (node.property.name !== propertyName) {\\n    this.raise(node.property.start, \\"The only valid meta property for new is \\" + meta.name + \\".\\" + propertyName);\\n  }\\n\\n  return this.finishNode(node, \\"MetaProperty\\");\\n};\\n\\npp.parseLiteral = function (value, type) {\\n  var node = this.startNode();\\n  this.addExtra(node, \\"rawValue\\", value);\\n  this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n  node.value = value;\\n  this.next();\\n  return this.finishNode(node, type);\\n};\\n\\npp.parseParenExpression = function () {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var val = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  return val;\\n};\\n\\npp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow, isAsync, allowOptionalCommaStart) {\\n  startPos = startPos || this.state.start;\\n  startLoc = startLoc || this.state.startLoc;\\n\\n  var val = undefined;\\n  this.next();\\n\\n  var innerStartPos = this.state.start,\\n      innerStartLoc = this.state.startLoc;\\n  var exprList = [],\\n      first = true;\\n  var refShorthandDefaultPos = { start: 0 },\\n      spreadStart = undefined,\\n      optionalCommaStart = undefined;\\n  while (!this.match(_tokenizerTypes.types.parenR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.match(_tokenizerTypes.types.parenR) && this.hasPlugin(\\"trailingFunctionCommas\\")) {\\n        optionalCommaStart = this.state.start;\\n        break;\\n      }\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      var spreadNodeStartPos = this.state.start,\\n          spreadNodeStartLoc = this.state.startLoc;\\n      spreadStart = this.state.start;\\n      exprList.push(this.parseParenItem(this.parseRest(), spreadNodeStartLoc, spreadNodeStartPos));\\n      break;\\n    } else {\\n      exprList.push(this.parseMaybeAssign(false, refShorthandDefaultPos, this.parseParenItem));\\n    }\\n  }\\n\\n  var innerEndPos = this.state.start;\\n  var innerEndLoc = this.state.startLoc;\\n  this.expect(_tokenizerTypes.types.parenR);\\n\\n  if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n    for (var _i = 0; _i < exprList.length; _i++) {\\n      var param = exprList[_i];\\n      if (param.extra && param.extra.parenthesized) this.unexpected(param.extra.parenStart);\\n    }\\n\\n    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, isAsync);\\n  }\\n\\n  if (!exprList.length) {\\n    if (isAsync) {\\n      return;\\n    } else {\\n      this.unexpected(this.state.lastTokStart);\\n    }\\n  }\\n  if (optionalCommaStart && !allowOptionalCommaStart) this.unexpected(optionalCommaStart);\\n  if (spreadStart) this.unexpected(spreadStart);\\n  if (refShorthandDefaultPos.start) this.unexpected(refShorthandDefaultPos.start);\\n\\n  if (exprList.length > 1) {\\n    val = this.startNodeAt(innerStartPos, innerStartLoc);\\n    val.expressions = exprList;\\n    this.toReferencedList(val.expressions);\\n    this.finishNodeAt(val, \\"SequenceExpression\\", innerEndPos, innerEndLoc);\\n  } else {\\n    val = exprList[0];\\n  }\\n\\n  this.addExtra(val, \\"parenthesized\\", true);\\n  this.addExtra(val, \\"parenStart\\", startPos);\\n\\n  return val;\\n};\\n\\npp.parseParenItem = function (node) {\\n  return node;\\n};\\n\\n// New\'s precedence is slightly tricky. It must allow its argument\\n// to be a `[]` or dot subscript expression, but not a call — at\\n// least, not without wrapping it in parentheses. Thus, it uses the\\n\\npp.parseNew = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n\\n  if (this.eat(_tokenizerTypes.types.dot)) {\\n    return this.parseMetaProperty(node, meta, \\"target\\");\\n  }\\n\\n  node.callee = this.parseNoCallExpr();\\n\\n  if (this.eat(_tokenizerTypes.types.parenL)) {\\n    node.arguments = this.parseExprList(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n    this.toReferencedList(node.arguments);\\n  } else {\\n    node.arguments = [];\\n  }\\n\\n  return this.finishNode(node, \\"NewExpression\\");\\n};\\n\\n// Parse template expression.\\n\\npp.parseTemplateElement = function () {\\n  var elem = this.startNode();\\n  elem.value = {\\n    raw: this.input.slice(this.state.start, this.state.end).replace(/\\\\r\\\\n?/g, \\"\\\\n\\"),\\n    cooked: this.state.value\\n  };\\n  this.next();\\n  elem.tail = this.match(_tokenizerTypes.types.backQuote);\\n  return this.finishNode(elem, \\"TemplateElement\\");\\n};\\n\\npp.parseTemplate = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.expressions = [];\\n  var curElt = this.parseTemplateElement();\\n  node.quasis = [curElt];\\n  while (!curElt.tail) {\\n    this.expect(_tokenizerTypes.types.dollarBraceL);\\n    node.expressions.push(this.parseExpression());\\n    this.expect(_tokenizerTypes.types.braceR);\\n    node.quasis.push(curElt = this.parseTemplateElement());\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"TemplateLiteral\\");\\n};\\n\\n// Parse an object literal or binding pattern.\\n\\npp.parseObj = function (isPattern, refShorthandDefaultPos) {\\n  var decorators = [];\\n  var propHash = _Object$create(null);\\n  var first = true;\\n  var node = this.startNode();\\n\\n  node.properties = [];\\n  this.next();\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    while (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n    }\\n\\n    var prop = this.startNode(),\\n        isGenerator = false,\\n        isAsync = false,\\n        startPos = undefined,\\n        startLoc = undefined;\\n    if (decorators.length) {\\n      prop.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    if (this.hasPlugin(\\"objectRestSpread\\") && this.match(_tokenizerTypes.types.ellipsis)) {\\n      prop = this.parseSpread();\\n      prop.type = isPattern ? \\"RestProperty\\" : \\"SpreadProperty\\";\\n      node.properties.push(prop);\\n      continue;\\n    }\\n\\n    prop.method = false;\\n    prop.shorthand = false;\\n\\n    if (isPattern || refShorthandDefaultPos) {\\n      startPos = this.state.start;\\n      startLoc = this.state.startLoc;\\n    }\\n\\n    if (!isPattern) {\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n    }\\n\\n    if (!isPattern && this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\")) {\\n      if (isGenerator) this.unexpected();\\n\\n      var asyncId = this.parseIdentifier();\\n      if (this.match(_tokenizerTypes.types.colon) || this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.braceR)) {\\n        prop.key = asyncId;\\n      } else {\\n        isAsync = true;\\n        if (this.hasPlugin(\\"asyncGenerators\\")) isGenerator = this.eat(_tokenizerTypes.types.star);\\n        this.parsePropertyName(prop);\\n      }\\n    } else {\\n      this.parsePropertyName(prop);\\n    }\\n\\n    this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos);\\n    this.checkPropClash(prop, propHash);\\n\\n    if (prop.shorthand) {\\n      this.addExtra(prop, \\"shorthand\\", true);\\n    }\\n\\n    node.properties.push(prop);\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no property\\");\\n  }\\n\\n  return this.finishNode(node, isPattern ? \\"ObjectPattern\\" : \\"ObjectExpression\\");\\n};\\n\\npp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos) {\\n  if (isAsync || isGenerator || this.match(_tokenizerTypes.types.parenL)) {\\n    if (isPattern) this.unexpected();\\n    prop.kind = \\"method\\";\\n    prop.method = true;\\n    this.parseMethod(prop, isGenerator, isAsync);\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.colon)) {\\n    prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refShorthandDefaultPos);\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\" && (prop.key.name === \\"get\\" || prop.key.name === \\"set\\") && !this.match(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    if (isGenerator || isAsync || isPattern) this.unexpected();\\n    prop.kind = prop.key.name;\\n    this.parsePropertyName(prop);\\n    this.parseMethod(prop, false);\\n    var paramCount = prop.kind === \\"get\\" ? 0 : 1;\\n    if (prop.params.length !== paramCount) {\\n      var start = prop.start;\\n      if (prop.kind === \\"get\\") {\\n        this.raise(start, \\"getter should have no params\\");\\n      } else {\\n        this.raise(start, \\"setter should have exactly one param\\");\\n      }\\n    }\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\") {\\n    if (isPattern) {\\n      var illegalBinding = this.isKeyword(prop.key.name);\\n      if (!illegalBinding && this.state.strict) {\\n        illegalBinding = _utilIdentifier.reservedWords.strictBind(prop.key.name) || _utilIdentifier.reservedWords.strict(prop.key.name);\\n      }\\n      if (illegalBinding) {\\n        this.raise(prop.key.start, \\"Binding \\" + prop.key.name);\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else if (this.match(_tokenizerTypes.types.eq) && refShorthandDefaultPos) {\\n      if (!refShorthandDefaultPos.start) {\\n        refShorthandDefaultPos.start = this.state.start;\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else {\\n      prop.value = prop.key.__clone();\\n    }\\n    prop.shorthand = true;\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.parsePropertyName = function (prop) {\\n  if (this.eat(_tokenizerTypes.types.bracketL)) {\\n    prop.computed = true;\\n    prop.key = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return prop.key;\\n  } else {\\n    prop.computed = false;\\n    return prop.key = this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n  }\\n};\\n\\n// Initialize empty function node.\\n\\npp.initFunction = function (node, isAsync) {\\n  node.id = null;\\n  node.generator = false;\\n  node.expression = false;\\n  if (this.hasPlugin(\\"asyncFunctions\\")) {\\n    node.async = !!isAsync;\\n  }\\n};\\n\\n// Parse object or class method.\\n\\npp.parseMethod = function (node, isGenerator, isAsync) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = node.kind || true;\\n  this.initFunction(node, isAsync);\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n  node.generator = isGenerator;\\n  this.parseFunctionBody(node);\\n  this.state.inMethod = oldInMethod;\\n  return node;\\n};\\n\\n// Parse arrow function expression with given parameters.\\n\\npp.parseArrowExpression = function (node, params, isAsync) {\\n  this.initFunction(node, isAsync);\\n  node.params = this.toAssignableList(params, true);\\n  this.parseFunctionBody(node, true);\\n  return this.finishNode(node, \\"ArrowFunctionExpression\\");\\n};\\n\\n// Parse function body and check parameters.\\n\\npp.parseFunctionBody = function (node, allowExpression) {\\n  var isExpression = allowExpression && !this.match(_tokenizerTypes.types.braceL);\\n\\n  var oldInAsync = this.state.inAsync;\\n  this.state.inAsync = node.async;\\n  if (isExpression) {\\n    node.body = this.parseMaybeAssign();\\n    node.expression = true;\\n  } else {\\n    // Start a new scope with regard to labels and the `inFunction`\\n    // flag (restore them to their old value afterwards).\\n    var oldInFunc = this.state.inFunction,\\n        oldInGen = this.state.inGenerator,\\n        oldLabels = this.state.labels;\\n    this.state.inFunction = true;this.state.inGenerator = node.generator;this.state.labels = [];\\n    node.body = this.parseBlock(true);\\n    node.expression = false;\\n    this.state.inFunction = oldInFunc;this.state.inGenerator = oldInGen;this.state.labels = oldLabels;\\n  }\\n  this.state.inAsync = oldInAsync;\\n\\n  // If this is a strict mode function, verify that argument names\\n  // are not repeated, and it does not try to bind the words `eval`\\n  // or `arguments`.\\n  var checkLVal = this.state.strict;\\n  var checkLValStrict = false;\\n  var isStrict = false;\\n\\n  // arrow function\\n  if (allowExpression) checkLVal = true;\\n\\n  // normal function\\n  if (!isExpression && node.body.directives.length) {\\n    for (var _iterator = (node.body.directives /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i2 >= _iterator.length) break;\\n        _ref = _iterator[_i2++];\\n      } else {\\n        _i2 = _iterator.next();\\n        if (_i2.done) break;\\n        _ref = _i2.value;\\n      }\\n\\n      var directive = _ref;\\n\\n      if (directive.value.value === \\"use strict\\") {\\n        isStrict = true;\\n        checkLVal = true;\\n        checkLValStrict = true;\\n        break;\\n      }\\n    }\\n  }\\n\\n  //\\n  if (isStrict && node.id && node.id.type === \\"Identifier\\" && node.id.name === \\"yield\\") {\\n    this.raise(node.id.start, \\"Binding yield in strict mode\\");\\n  }\\n\\n  if (checkLVal) {\\n    var nameHash = _Object$create(null);\\n    var oldStrict = this.state.strict;\\n    if (checkLValStrict) this.state.strict = true;\\n    if (node.id) {\\n      this.checkLVal(node.id, true);\\n    }\\n    for (var _iterator2 = (node.params /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i3 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i3++];\\n      } else {\\n        _i3 = _iterator2.next();\\n        if (_i3.done) break;\\n        _ref2 = _i3.value;\\n      }\\n\\n      var param = _ref2;\\n\\n      this.checkLVal(param, true, nameHash);\\n    }\\n    this.state.strict = oldStrict;\\n  }\\n};\\n\\n// Parses a comma-separated list of expressions, and returns them as\\n// an array. `close` is the token type that ends the list, and\\n// `allowEmpty` can be turned on to allow subsequent commas with\\n// nothing in between them to be parsed as `null` (which is needed\\n// for array literals).\\n\\npp.parseExprList = function (close, allowTrailingComma, allowEmpty, refShorthandDefaultPos) {\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    elts.push(this.parseExprListItem(allowEmpty, refShorthandDefaultPos));\\n  }\\n  return elts;\\n};\\n\\npp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) {\\n  var elt = undefined;\\n  if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n    elt = null;\\n  } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n    elt = this.parseSpread(refShorthandDefaultPos);\\n  } else {\\n    elt = this.parseMaybeAssign(false, refShorthandDefaultPos);\\n  }\\n  return elt;\\n};\\n\\n// Parse the next token as an identifier. If `liberal` is true (used\\n// when parsing properties), it will also convert keywords into\\n// identifiers.\\n\\npp.parseIdentifier = function (liberal) {\\n  var node = this.startNode();\\n\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    if (!liberal && this.state.strict && _utilIdentifier.reservedWords.strict(this.state.value)) {\\n      this.raise(this.state.start, \\"The keyword \'\\" + this.state.value + \\"\' is reserved\\");\\n    }\\n\\n    node.name = this.state.value;\\n  } else if (liberal && this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n\\n  if (!liberal && node.name === \\"await\\" && this.state.inAsync) {\\n    this.raise(node.start, \\"invalid use of await inside of an async function\\");\\n  }\\n\\n  this.next();\\n  return this.finishNode(node, \\"Identifier\\");\\n};\\n\\n// Parses await expression inside async function.\\n\\npp.parseAwait = function (node) {\\n  if (!this.state.inAsync) {\\n    this.unexpected();\\n  }\\n  if (this.isLineTerminator()) {\\n    this.unexpected();\\n  }\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    this.raise(node.start, \\"await* has been removed from the async functions proposal. Use Promise.all() instead.\\");\\n  }\\n  node.argument = this.parseMaybeUnary();\\n  return this.finishNode(node, \\"AwaitExpression\\");\\n};\\n\\n// Parses yield expression inside generator.\\n\\npp.parseYield = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon() || !this.match(_tokenizerTypes.types.star) && !this.state.type.startsExpr) {\\n    node.delegate = false;\\n    node.argument = null;\\n  } else {\\n    node.delegate = this.eat(_tokenizerTypes.types.star);\\n    node.argument = this.parseMaybeAssign();\\n  }\\n  return this.finishNode(node, \\"YieldExpression\\");\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/identifier\\":18,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/core-js/object/create\\":22,\\"babel-runtime/helpers/interop-require-default\\":26}],5:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _options = require(\\"../options\\");\\n\\nvar _tokenizer = require(\\"../tokenizer\\");\\n\\nvar _tokenizer2 = _interopRequireDefault(_tokenizer);\\n\\nvar plugins = {};\\n\\nexports.plugins = plugins;\\n\\nvar Parser = (function (_Tokenizer) {\\n  _inherits(Parser, _Tokenizer);\\n\\n  function Parser(options /*: Object*/, input /*: string*/) {\\n    _classCallCheck(this, Parser);\\n\\n    options = _options.getOptions(options);\\n    _Tokenizer.call(this, options, input);\\n\\n    this.options = options;\\n    this.inModule = this.options.sourceType === \\"module\\";\\n    this.isReservedWord = _utilIdentifier.reservedWords[6];\\n    this.input = input;\\n    this.plugins = this.loadPlugins(this.options.plugins);\\n\\n    // If enabled, skip leading hashbang line.\\n    if (this.state.pos === 0 && this.input[0] === \\"#\\" && this.input[1] === \\"!\\") {\\n      this.skipLineComment(2);\\n    }\\n  }\\n\\n  Parser.prototype.hasPlugin = function hasPlugin(name /*: string*/) /*: boolean*/ {\\n    return !!(this.plugins[\\"*\\"] || this.plugins[name]);\\n  };\\n\\n  Parser.prototype.extend = function extend(name /*: string*/, f /*: Function*/) {\\n    this[name] = f(this[name]);\\n  };\\n\\n  Parser.prototype.loadPlugins = function loadPlugins(plugins /*: Array<string>*/) /*: Object*/ {\\n    var pluginMap = {};\\n\\n    if (plugins.indexOf(\\"flow\\") >= 0) {\\n      // ensure flow plugin loads last\\n      plugins = plugins.filter(function (plugin) {\\n        return plugin !== \\"flow\\";\\n      });\\n      plugins.push(\\"flow\\");\\n    }\\n\\n    for (var _iterator = plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var _name = _ref;\\n\\n      if (!pluginMap[_name]) {\\n        pluginMap[_name] = true;\\n\\n        var plugin = exports.plugins[_name];\\n        if (plugin) plugin(this);\\n      }\\n    }\\n\\n    return pluginMap;\\n  };\\n\\n  Parser.prototype.parse = function parse() /*: {\\n                                                type: \\"File\\",\\n                                                program: {\\n                                                  type: \\"Program\\",\\n                                                  body: Array<Object>\\n                                                }\\n                                              }*/ {\\n    var file = this.startNode();\\n    var program = this.startNode();\\n    this.nextToken();\\n    return this.parseTopLevel(file, program);\\n  };\\n\\n  return Parser;\\n})(_tokenizer2[\\"default\\"]);\\n\\nexports[\\"default\\"] = Parser;\\n},{\\"../options\\":2,\\"../tokenizer\\":15,\\"../util/identifier\\":18,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/helpers/class-call-check\\":24,\\"babel-runtime/helpers/inherits\\":25,\\"babel-runtime/helpers/interop-require-default\\":26}],6:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// This function is used to raise exceptions on parse errors. It\\n// takes an offset integer (into the current `input`) to indicate\\n// the location of the error, attaches the position to the end\\n// of the error message, and then raises a `SyntaxError` with that\\n// message.\\n\\npp.raise = function (pos, message) {\\n  var loc = _utilLocation.getLineInfo(this.input, pos);\\n  message += \\" (\\" + loc.line + \\":\\" + loc.column + \\")\\";\\n  var err = new SyntaxError(message);\\n  err.pos = pos;\\n  err.loc = loc;\\n  throw err;\\n};\\n},{\\"../util/location\\":19,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":26}],7:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Convert existing expression atom to assignable pattern\\n// if possible.\\n\\npp.toAssignable = function (node, isBinding) {\\n  if (node) {\\n    switch (node.type) {\\n      case \\"Identifier\\":\\n      case \\"ObjectPattern\\":\\n      case \\"ArrayPattern\\":\\n      case \\"AssignmentPattern\\":\\n        break;\\n\\n      case \\"ObjectExpression\\":\\n        node.type = \\"ObjectPattern\\";\\n        for (var _iterator = (node.properties /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n          var _ref;\\n\\n          if (_isArray) {\\n            if (_i >= _iterator.length) break;\\n            _ref = _iterator[_i++];\\n          } else {\\n            _i = _iterator.next();\\n            if (_i.done) break;\\n            _ref = _i.value;\\n          }\\n\\n          var prop = _ref;\\n\\n          if (prop.type === \\"ObjectMethod\\") {\\n            if (prop.kind === \\"get\\" || prop.kind === \\"set\\") {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain getter or setter\\");\\n            } else {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain methods\\");\\n            }\\n          } else {\\n            this.toAssignable(prop, isBinding);\\n          }\\n        }\\n        break;\\n\\n      case \\"ObjectProperty\\":\\n        this.toAssignable(node.value, isBinding);\\n        break;\\n\\n      case \\"SpreadProperty\\":\\n        node.type = \\"RestProperty\\";\\n        break;\\n\\n      case \\"ArrayExpression\\":\\n        node.type = \\"ArrayPattern\\";\\n        this.toAssignableList(node.elements, isBinding);\\n        break;\\n\\n      case \\"AssignmentExpression\\":\\n        if (node.operator === \\"=\\") {\\n          node.type = \\"AssignmentPattern\\";\\n          delete node.operator;\\n        } else {\\n          this.raise(node.left.end, \\"Only \'=\' operator can be used for specifying default value.\\");\\n        }\\n        break;\\n\\n      case \\"MemberExpression\\":\\n        if (!isBinding) break;\\n\\n      default:\\n        this.raise(node.start, \\"Assigning to rvalue\\");\\n    }\\n  }\\n  return node;\\n};\\n\\n// Convert list of expression atoms to binding list.\\n\\npp.toAssignableList = function (exprList, isBinding) {\\n  var end = exprList.length;\\n  if (end) {\\n    var last = exprList[end - 1];\\n    if (last && last.type === \\"RestElement\\") {\\n      --end;\\n    } else if (last && last.type === \\"SpreadElement\\") {\\n      last.type = \\"RestElement\\";\\n      var arg = last.argument;\\n      this.toAssignable(arg, isBinding);\\n      if (arg.type !== \\"Identifier\\" && arg.type !== \\"MemberExpression\\" && arg.type !== \\"ArrayPattern\\") {\\n        this.unexpected(arg.start);\\n      }\\n      --end;\\n    }\\n  }\\n  for (var i = 0; i < end; i++) {\\n    var elt = exprList[i];\\n    if (elt) this.toAssignable(elt, isBinding);\\n  }\\n  return exprList;\\n};\\n\\n// Convert list of expression atoms to a list of\\n\\npp.toReferencedList = function (exprList) {\\n  return exprList;\\n};\\n\\n// Parses spread element.\\n\\npp.parseSpread = function (refShorthandDefaultPos) {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseMaybeAssign(refShorthandDefaultPos);\\n  return this.finishNode(node, \\"SpreadElement\\");\\n};\\n\\npp.parseRest = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseBindingIdentifier();\\n  return this.finishNode(node, \\"RestElement\\");\\n};\\n\\npp.shouldAllowYieldIdentifier = function () {\\n  return this.match(_tokenizerTypes.types._yield) && !this.state.strict && !this.state.inGenerator;\\n};\\n\\npp.parseBindingIdentifier = function () {\\n  return this.parseIdentifier(this.shouldAllowYieldIdentifier());\\n};\\n\\n// Parses lvalue (assignable) atom.\\n\\npp.parseBindingAtom = function () {\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.strict || this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      return this.parseIdentifier(true);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      var node = this.startNode();\\n      this.next();\\n      node.elements = this.parseBindingList(_tokenizerTypes.types.bracketR, true, true);\\n      return this.finishNode(node, \\"ArrayPattern\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(true);\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseBindingList = function (close, allowEmpty, allowTrailingComma) {\\n  var elts = [];\\n  var first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n    if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n      elts.push(null);\\n    } else if (allowTrailingComma && this.eat(close)) {\\n      break;\\n    } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      elts.push(this.parseAssignableListItemTypes(this.parseRest()));\\n      this.expect(close);\\n      break;\\n    } else {\\n      var left = this.parseMaybeDefault();\\n      this.parseAssignableListItemTypes(left);\\n      elts.push(this.parseMaybeDefault(null, null, left));\\n    }\\n  }\\n  return elts;\\n};\\n\\npp.parseAssignableListItemTypes = function (param) {\\n  return param;\\n};\\n\\n// Parses assignment pattern around given atom if possible.\\n\\npp.parseMaybeDefault = function (startPos, startLoc, left) {\\n  startLoc = startLoc || this.state.startLoc;\\n  startPos = startPos || this.state.start;\\n  left = left || this.parseBindingAtom();\\n  if (!this.eat(_tokenizerTypes.types.eq)) return left;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.left = left;\\n  node.right = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"AssignmentPattern\\");\\n};\\n\\n// Verify that a node is an lval — something that can be assigned\\n// to.\\n\\npp.checkLVal = function (expr, isBinding, checkClashes) {\\n  switch (expr.type) {\\n    case \\"Identifier\\":\\n      if (this.state.strict && (_utilIdentifier.reservedWords.strictBind(expr.name) || _utilIdentifier.reservedWords.strict(expr.name))) {\\n        this.raise(expr.start, (isBinding ? \\"Binding \\" : \\"Assigning to \\") + expr.name + \\" in strict mode\\");\\n      }\\n\\n      if (checkClashes) {\\n        // we need to prefix this with an underscore for the cases where we have a key of\\n        // `__proto__`. there\'s a bug in old V8 where the following wouldn\'t work:\\n        //\\n        //   > var obj = Object.create(null);\\n        //   undefined\\n        //   > obj.__proto__\\n        //   null\\n        //   > obj.__proto__ = true;\\n        //   true\\n        //   > obj.__proto__\\n        //   null\\n        var key = \\"_\\" + expr.name;\\n\\n        if (checkClashes[key]) {\\n          this.raise(expr.start, \\"Argument name clash in strict mode\\");\\n        } else {\\n          checkClashes[key] = true;\\n        }\\n      }\\n      break;\\n\\n    case \\"MemberExpression\\":\\n      if (isBinding) this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" member expression\\");\\n      break;\\n\\n    case \\"ObjectPattern\\":\\n      for (var _iterator2 = (expr.properties /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var prop = _ref2;\\n\\n        if (prop.type === \\"ObjectProperty\\") prop = prop.value;\\n        this.checkLVal(prop, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"ArrayPattern\\":\\n      for (var _iterator3 = (expr.elements /*: Array<Object>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n        var _ref3;\\n\\n        if (_isArray3) {\\n          if (_i3 >= _iterator3.length) break;\\n          _ref3 = _iterator3[_i3++];\\n        } else {\\n          _i3 = _iterator3.next();\\n          if (_i3.done) break;\\n          _ref3 = _i3.value;\\n        }\\n\\n        var elem = _ref3;\\n\\n        if (elem) this.checkLVal(elem, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"AssignmentPattern\\":\\n      this.checkLVal(expr.left, isBinding, checkClashes);\\n      break;\\n\\n    case \\"RestProperty\\":\\n    case \\"RestElement\\":\\n      this.checkLVal(expr.argument, isBinding, checkClashes);\\n      break;\\n\\n    default:\\n      this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" rvalue\\");\\n  }\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/identifier\\":18,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/helpers/interop-require-default\\":26}],8:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\n// Start an AST node, attaching a start offset.\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\nvar Node = (function () {\\n  function Node(pos /*:: ?: number*/, loc /*:: ?: SourceLocation*/) {\\n    _classCallCheck(this, Node);\\n\\n    this.type = \\"\\";\\n    this.start = pos;\\n    this.end = 0;\\n    this.loc = new _utilLocation.SourceLocation(loc);\\n  }\\n\\n  Node.prototype.__clone = function __clone() /*: Node*/ {\\n    var node2 = new Node();\\n    for (var key in this) {\\n      node2[key] = this[key];\\n    }return node2;\\n  };\\n\\n  return Node;\\n})();\\n\\npp.startNode = function () {\\n  return new Node(this.state.start, this.state.startLoc);\\n};\\n\\npp.startNodeAt = function (pos, loc) {\\n  return new Node(pos, loc);\\n};\\n\\nfunction finishNodeAt(node, type, pos, loc) {\\n  node.type = type;\\n  node.end = pos;\\n  node.loc.end = loc;\\n  this.processComment(node);\\n  return node;\\n}\\n\\n// Finish an AST node, adding `type` and `end` properties.\\n\\npp.finishNode = function (node, type) {\\n  return finishNodeAt.call(this, node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);\\n};\\n\\n// Finish node at given position\\n\\npp.finishNodeAt = function (node, type, pos, loc) {\\n  return finishNodeAt.call(this, node, type, pos, loc);\\n};\\n},{\\"../util/location\\":19,\\"./index\\":5,\\"babel-runtime/helpers/class-call-check\\":24,\\"babel-runtime/helpers/interop-require-default\\":26}],9:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ### Statement parsing\\n\\n// Parse a program. Initializes the parser, reads any number of\\n// statements, and wraps them in a Program node.  Optionally takes a\\n// `program` argument.  If present, the statements will be appended\\n// to its body instead of creating a new node.\\n\\npp.parseTopLevel = function (file, program) {\\n  program.sourceType = this.options.sourceType;\\n\\n  this.parseBlockBody(program, true, true, _tokenizerTypes.types.eof);\\n\\n  file.program = this.finishNode(program, \\"Program\\");\\n  file.comments = this.state.comments;\\n  file.tokens = this.state.tokens;\\n\\n  return this.finishNode(file, \\"File\\");\\n};\\n\\nvar loopLabel = { kind: \\"loop\\" },\\n    switchLabel = { kind: \\"switch\\" };\\n\\n// TODO\\n\\npp.stmtToDirective = function (stmt) {\\n  var expr = stmt.expression;\\n\\n  var directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\\n  var directive = this.startNodeAt(stmt.start, stmt.loc.start);\\n\\n  var raw = this.input.slice(expr.start, expr.end);\\n  var val = directiveLiteral.value = raw.slice(1, -1); // remove quotes\\n\\n  this.addExtra(directiveLiteral, \\"raw\\", raw);\\n  this.addExtra(directiveLiteral, \\"rawValue\\", val);\\n\\n  directive.value = this.finishNodeAt(directiveLiteral, \\"DirectiveLiteral\\", expr.end, expr.loc.end);\\n\\n  return this.finishNodeAt(directive, \\"Directive\\", stmt.end, stmt.loc.end);\\n};\\n\\n// Parse a single statement.\\n//\\n// If expecting a statement and finding a slash operator, parse a\\n// regular expression literal. This is to handle cases like\\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\\n// does not help.\\n\\npp.parseStatement = function (declaration, topLevel) {\\n  if (this.match(_tokenizerTypes.types.at)) {\\n    this.parseDecorators(true);\\n  }\\n\\n  var starttype = this.state.type,\\n      node = this.startNode();\\n\\n  // Most types of statements are recognized by the keyword they\\n  // start with. Many are trivial to parse, some require a bit of\\n  // complexity.\\n\\n  switch (starttype) {\\n    case _tokenizerTypes.types._break:case _tokenizerTypes.types._continue:\\n      return this.parseBreakContinueStatement(node, starttype.keyword);\\n    case _tokenizerTypes.types._debugger:\\n      return this.parseDebuggerStatement(node);\\n    case _tokenizerTypes.types._do:\\n      return this.parseDoStatement(node);\\n    case _tokenizerTypes.types._for:\\n      return this.parseForStatement(node);\\n    case _tokenizerTypes.types._function:\\n      if (!declaration) this.unexpected();\\n      return this.parseFunctionStatement(node);\\n\\n    case _tokenizerTypes.types._class:\\n      if (!declaration) this.unexpected();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, true);\\n\\n    case _tokenizerTypes.types._if:\\n      return this.parseIfStatement(node);\\n    case _tokenizerTypes.types._return:\\n      return this.parseReturnStatement(node);\\n    case _tokenizerTypes.types._switch:\\n      return this.parseSwitchStatement(node);\\n    case _tokenizerTypes.types._throw:\\n      return this.parseThrowStatement(node);\\n    case _tokenizerTypes.types._try:\\n      return this.parseTryStatement(node);\\n\\n    case _tokenizerTypes.types._let:\\n    case _tokenizerTypes.types._const:\\n      if (!declaration) this.unexpected(); // NOTE: falls through to _var\\n\\n    case _tokenizerTypes.types._var:\\n      return this.parseVarStatement(node, starttype);\\n\\n    case _tokenizerTypes.types._while:\\n      return this.parseWhileStatement(node);\\n    case _tokenizerTypes.types._with:\\n      return this.parseWithStatement(node);\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseBlock();\\n    case _tokenizerTypes.types.semi:\\n      return this.parseEmptyStatement(node);\\n    case _tokenizerTypes.types._export:\\n    case _tokenizerTypes.types._import:\\n      if (!this.options.allowImportExportEverywhere) {\\n        if (!topLevel) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may only appear at the top level\\");\\n        }\\n\\n        if (!this.inModule) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may appear only with \'sourceType: module\'\\");\\n        }\\n      }\\n      return starttype === _tokenizerTypes.types._import ? this.parseImport(node) : this.parseExport(node);\\n\\n    case _tokenizerTypes.types.name:\\n      if (this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"async\\") {\\n        // peek ahead and see if next token is a function\\n        var state = this.state.clone();\\n        this.next();\\n        if (this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.expect(_tokenizerTypes.types._function);\\n          return this.parseFunction(node, true, false, true);\\n        } else {\\n          this.state = state;\\n        }\\n      }\\n  }\\n\\n  // If the statement does not start with a statement keyword or a\\n  // brace, it\'s an ExpressionStatement or LabeledStatement. We\\n  // simply start parsing an expression, and afterwards, if the\\n  // next token is a colon and the expression was a simple\\n  // Identifier node, we switch to interpreting it as a label.\\n  var maybeName = this.state.value;\\n  var expr = this.parseExpression();\\n\\n  if (starttype === _tokenizerTypes.types.name && expr.type === \\"Identifier\\" && this.eat(_tokenizerTypes.types.colon)) {\\n    return this.parseLabeledStatement(node, maybeName, expr);\\n  } else {\\n    return this.parseExpressionStatement(node, expr);\\n  }\\n};\\n\\npp.takeDecorators = function (node) {\\n  if (this.state.decorators.length) {\\n    node.decorators = this.state.decorators;\\n    this.state.decorators = [];\\n  }\\n};\\n\\npp.parseDecorators = function (allowExport) {\\n  while (this.match(_tokenizerTypes.types.at)) {\\n    this.state.decorators.push(this.parseDecorator());\\n  }\\n\\n  if (allowExport && this.match(_tokenizerTypes.types._export)) {\\n    return;\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._class)) {\\n    this.raise(this.state.start, \\"Leading decorators must be attached to a class declaration\\");\\n  }\\n};\\n\\npp.parseDecorator = function () {\\n  if (!this.hasPlugin(\\"decorators\\")) {\\n    this.unexpected();\\n  }\\n  var node = this.startNode();\\n  this.next();\\n  node.expression = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"Decorator\\");\\n};\\n\\npp.parseBreakContinueStatement = function (node, keyword) {\\n  var isBreak = keyword === \\"break\\";\\n  this.next();\\n\\n  if (this.isLineTerminator()) {\\n    node.label = null;\\n  } else if (!this.match(_tokenizerTypes.types.name)) {\\n    this.unexpected();\\n  } else {\\n    node.label = this.parseIdentifier();\\n    this.semicolon();\\n  }\\n\\n  // Verify that there is an actual destination to break or\\n  // continue to.\\n  var i = undefined;\\n  for (i = 0; i < this.state.labels.length; ++i) {\\n    var lab = this.state.labels[i];\\n    if (node.label == null || lab.name === node.label.name) {\\n      if (lab.kind != null && (isBreak || lab.kind === \\"loop\\")) break;\\n      if (node.label && isBreak) break;\\n    }\\n  }\\n  if (i === this.state.labels.length) this.raise(node.start, \\"Unsyntactic \\" + keyword);\\n  return this.finishNode(node, isBreak ? \\"BreakStatement\\" : \\"ContinueStatement\\");\\n};\\n\\npp.parseDebuggerStatement = function (node) {\\n  this.next();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DebuggerStatement\\");\\n};\\n\\npp.parseDoStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  this.expect(_tokenizerTypes.types._while);\\n  node.test = this.parseParenExpression();\\n  this.eat(_tokenizerTypes.types.semi);\\n  return this.finishNode(node, \\"DoWhileStatement\\");\\n};\\n\\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\\n// loop is non-trivial. Basically, we have to parse the init `var`\\n// statement or expression, disallowing the `in` operator (see\\n// the second parameter to `parseExpression`), and then check\\n// whether the next token is `in` or `of`. When there is no init\\n// part (semicolon immediately after the opening parenthesis), it\\n// is a regular `for` loop.\\n\\npp.parseForStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  this.expect(_tokenizerTypes.types.parenL);\\n\\n  if (this.match(_tokenizerTypes.types.semi)) {\\n    return this.parseFor(node, null);\\n  }\\n\\n  if (this.match(_tokenizerTypes.types._var) || this.match(_tokenizerTypes.types._let) || this.match(_tokenizerTypes.types._const)) {\\n    var _init = this.startNode(),\\n        varKind = this.state.type;\\n    this.next();\\n    this.parseVar(_init, true, varKind);\\n    this.finishNode(_init, \\"VariableDeclaration\\");\\n\\n    if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n      if (_init.declarations.length === 1 && !_init.declarations[0].init) {\\n        return this.parseForIn(node, _init);\\n      }\\n    }\\n\\n    return this.parseFor(node, _init);\\n  }\\n\\n  var refShorthandDefaultPos = { start: 0 };\\n  var init = this.parseExpression(true, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n    this.toAssignable(init);\\n    this.checkLVal(init);\\n    return this.parseForIn(node, init);\\n  } else if (refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n  return this.parseFor(node, init);\\n};\\n\\npp.parseFunctionStatement = function (node) {\\n  this.next();\\n  return this.parseFunction(node, true);\\n};\\n\\npp.parseIfStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  node.consequent = this.parseStatement(false);\\n  node.alternate = this.eat(_tokenizerTypes.types._else) ? this.parseStatement(false) : null;\\n  return this.finishNode(node, \\"IfStatement\\");\\n};\\n\\npp.parseReturnStatement = function (node) {\\n  if (!this.state.inFunction && !this.options.allowReturnOutsideFunction) {\\n    this.raise(this.state.start, \\"\'return\' outside of function\\");\\n  }\\n\\n  this.next();\\n\\n  // In `return` (and `break`/`continue`), the keywords with\\n  // optional arguments, we eagerly look for a semicolon or the\\n  // possibility to insert one.\\n\\n  if (this.isLineTerminator()) {\\n    node.argument = null;\\n  } else {\\n    node.argument = this.parseExpression();\\n    this.semicolon();\\n  }\\n\\n  return this.finishNode(node, \\"ReturnStatement\\");\\n};\\n\\npp.parseSwitchStatement = function (node) {\\n  this.next();\\n  node.discriminant = this.parseParenExpression();\\n  node.cases = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.state.labels.push(switchLabel);\\n\\n  // Statements under must be grouped (by label) in SwitchCase\\n  // nodes. `cur` is used to keep the node that we are currently\\n  // adding statements to.\\n\\n  var cur = undefined;\\n  for (var sawDefault = undefined; !this.match(_tokenizerTypes.types.braceR);) {\\n    if (this.match(_tokenizerTypes.types._case) || this.match(_tokenizerTypes.types._default)) {\\n      var isCase = this.match(_tokenizerTypes.types._case);\\n      if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n      node.cases.push(cur = this.startNode());\\n      cur.consequent = [];\\n      this.next();\\n      if (isCase) {\\n        cur.test = this.parseExpression();\\n      } else {\\n        if (sawDefault) this.raise(this.state.lastTokStart, \\"Multiple default clauses\\");\\n        sawDefault = true;\\n        cur.test = null;\\n      }\\n      this.expect(_tokenizerTypes.types.colon);\\n    } else {\\n      if (cur) {\\n        cur.consequent.push(this.parseStatement(true));\\n      } else {\\n        this.unexpected();\\n      }\\n    }\\n  }\\n  if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n  this.next(); // Closing brace\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"SwitchStatement\\");\\n};\\n\\npp.parseThrowStatement = function (node) {\\n  this.next();\\n  if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) this.raise(this.state.lastTokEnd, \\"Illegal newline after throw\\");\\n  node.argument = this.parseExpression();\\n  this.semicolon();\\n  return this.finishNode(node, \\"ThrowStatement\\");\\n};\\n\\n// Reused empty array added for node fields that are always empty.\\n\\nvar empty = [];\\n\\npp.parseTryStatement = function (node) {\\n  this.next();\\n\\n  node.block = this.parseBlock();\\n  node.handler = null;\\n\\n  if (this.match(_tokenizerTypes.types._catch)) {\\n    var clause = this.startNode();\\n    this.next();\\n\\n    this.expect(_tokenizerTypes.types.parenL);\\n    clause.param = this.parseBindingAtom();\\n    this.checkLVal(clause.param, true, _Object$create(null));\\n    this.expect(_tokenizerTypes.types.parenR);\\n\\n    clause.body = this.parseBlock();\\n    node.handler = this.finishNode(clause, \\"CatchClause\\");\\n  }\\n\\n  node.guardedHandlers = empty;\\n  node.finalizer = this.eat(_tokenizerTypes.types._finally) ? this.parseBlock() : null;\\n\\n  if (!node.handler && !node.finalizer) {\\n    this.raise(node.start, \\"Missing catch or finally clause\\");\\n  }\\n\\n  return this.finishNode(node, \\"TryStatement\\");\\n};\\n\\npp.parseVarStatement = function (node, kind) {\\n  this.next();\\n  this.parseVar(node, false, kind);\\n  this.semicolon();\\n  return this.finishNode(node, \\"VariableDeclaration\\");\\n};\\n\\npp.parseWhileStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"WhileStatement\\");\\n};\\n\\npp.parseWithStatement = function (node) {\\n  if (this.state.strict) this.raise(this.state.start, \\"\'with\' in strict mode\\");\\n  this.next();\\n  node.object = this.parseParenExpression();\\n  node.body = this.parseStatement(false);\\n  return this.finishNode(node, \\"WithStatement\\");\\n};\\n\\npp.parseEmptyStatement = function (node) {\\n  this.next();\\n  return this.finishNode(node, \\"EmptyStatement\\");\\n};\\n\\npp.parseLabeledStatement = function (node, maybeName, expr) {\\n  for (var _iterator = (this.state.labels /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var label = _ref;\\n\\n    if (label.name === maybeName) {\\n      this.raise(expr.start, \\"Label \'\\" + maybeName + \\"\' is already declared\\");\\n    }\\n  }\\n\\n  var kind = this.state.type.isLoop ? \\"loop\\" : this.match(_tokenizerTypes.types._switch) ? \\"switch\\" : null;\\n  for (var i = this.state.labels.length - 1; i >= 0; i--) {\\n    var label = this.state.labels[i];\\n    if (label.statementStart === node.start) {\\n      label.statementStart = this.state.start;\\n      label.kind = kind;\\n    } else {\\n      break;\\n    }\\n  }\\n\\n  this.state.labels.push({ name: maybeName, kind: kind, statementStart: this.state.start });\\n  node.body = this.parseStatement(true);\\n  this.state.labels.pop();\\n  node.label = expr;\\n  return this.finishNode(node, \\"LabeledStatement\\");\\n};\\n\\npp.parseExpressionStatement = function (node, expr) {\\n  node.expression = expr;\\n  this.semicolon();\\n  return this.finishNode(node, \\"ExpressionStatement\\");\\n};\\n\\n// Parse a semicolon-enclosed block of statements, handling `\\"use\\n// strict\\"` declarations when `allowStrict` is true (used for\\n// function bodies).\\n\\npp.parseBlock = function (allowDirectives /*:: ?*/) {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.parseBlockBody(node, allowDirectives, false, _tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"BlockStatement\\");\\n};\\n\\n// TODO\\n\\npp.parseBlockBody = function (node, allowDirectives, topLevel, end) {\\n  node.body = [];\\n  node.directives = [];\\n\\n  var parsedNonDirective = false;\\n  var oldStrict = undefined;\\n  var octalPosition = undefined;\\n\\n  while (!this.eat(end)) {\\n    if (!parsedNonDirective && this.state.containsOctal && !octalPosition) {\\n      octalPosition = this.state.octalPosition;\\n    }\\n\\n    var stmt = this.parseStatement(true, topLevel);\\n\\n    if (allowDirectives && !parsedNonDirective && stmt.type === \\"ExpressionStatement\\" && stmt.expression.type === \\"StringLiteral\\" && !stmt.expression.extra.parenthesized) {\\n      var directive = this.stmtToDirective(stmt);\\n      node.directives.push(directive);\\n\\n      if (oldStrict === undefined && directive.value.value === \\"use strict\\") {\\n        oldStrict = this.state.strict;\\n        this.setStrict(true);\\n\\n        if (octalPosition) {\\n          this.raise(octalPosition, \\"Octal literal in strict mode\\");\\n        }\\n      }\\n\\n      continue;\\n    }\\n\\n    parsedNonDirective = true;\\n    node.body.push(stmt);\\n  }\\n\\n  if (oldStrict === false) {\\n    this.setStrict(false);\\n  }\\n};\\n\\n// Parse a regular `for` loop. The disambiguation code in\\n// `parseStatement` will already have parsed the init statement or\\n// expression.\\n\\npp.parseFor = function (node, init) {\\n  node.init = init;\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.test = this.match(_tokenizerTypes.types.semi) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.update = this.match(_tokenizerTypes.types.parenR) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"ForStatement\\");\\n};\\n\\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\\n// same from parser\'s perspective.\\n\\npp.parseForIn = function (node, init) {\\n  var type = this.match(_tokenizerTypes.types._in) ? \\"ForInStatement\\" : \\"ForOfStatement\\";\\n  this.next();\\n  node.left = init;\\n  node.right = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, type);\\n};\\n\\n// Parse a list of variable declarations.\\n\\npp.parseVar = function (node, isFor, kind) {\\n  node.declarations = [];\\n  node.kind = kind.keyword;\\n  for (;;) {\\n    var decl = this.startNode();\\n    this.parseVarHead(decl);\\n    if (this.eat(_tokenizerTypes.types.eq)) {\\n      decl.init = this.parseMaybeAssign(isFor);\\n    } else if (kind === _tokenizerTypes.types._const && !(this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\"))) {\\n      this.unexpected();\\n    } else if (decl.id.type !== \\"Identifier\\" && !(isFor && (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")))) {\\n      this.raise(this.state.lastTokEnd, \\"Complex binding patterns require an initialization value\\");\\n    } else {\\n      decl.init = null;\\n    }\\n    node.declarations.push(this.finishNode(decl, \\"VariableDeclarator\\"));\\n    if (!this.eat(_tokenizerTypes.types.comma)) break;\\n  }\\n  return node;\\n};\\n\\npp.parseVarHead = function (decl) {\\n  decl.id = this.parseBindingAtom();\\n  this.checkLVal(decl.id, true);\\n};\\n\\n// Parse a function declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = false;\\n\\n  this.initFunction(node, isAsync);\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    if (node.async && !this.hasPlugin(\\"asyncGenerators\\")) {\\n      this.unexpected();\\n    } else {\\n      node.generator = true;\\n      this.next();\\n    }\\n  }\\n\\n  if (isStatement && !optionalId && !this.match(_tokenizerTypes.types.name) && !this.match(_tokenizerTypes.types._yield)) {\\n    this.unexpected();\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._yield)) {\\n    node.id = this.parseBindingIdentifier();\\n  }\\n\\n  this.parseFunctionParams(node);\\n  this.parseFunctionBody(node, allowExpressionBody);\\n\\n  this.state.inMethod = oldInMethod;\\n\\n  return this.finishNode(node, isStatement ? \\"FunctionDeclaration\\" : \\"FunctionExpression\\");\\n};\\n\\npp.parseFunctionParams = function (node) {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n};\\n\\n// Parse a class declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseClass = function (node, isStatement, optionalId) {\\n  this.next();\\n  this.parseClassId(node, isStatement, optionalId);\\n  this.parseClassSuper(node);\\n  this.parseClassBody(node);\\n  return this.finishNode(node, isStatement ? \\"ClassDeclaration\\" : \\"ClassExpression\\");\\n};\\n\\npp.isClassProperty = function () {\\n  return this.match(_tokenizerTypes.types.eq) || this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\npp.parseClassBody = function (node) {\\n  // class bodies are implicitly strict\\n  var oldStrict = this.state.strict;\\n  this.state.strict = true;\\n\\n  var hadConstructorCall = false;\\n  var hadConstructor = false;\\n  var decorators = [];\\n  var classBody = this.startNode();\\n\\n  classBody.body = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (this.eat(_tokenizerTypes.types.semi)) {\\n      continue;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n      continue;\\n    }\\n\\n    var method = this.startNode();\\n\\n    // steal the decorators if there are any\\n    if (decorators.length) {\\n      method.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    var isConstructorCall = false;\\n    var isMaybeStatic = this.match(_tokenizerTypes.types.name) && this.state.value === \\"static\\";\\n    var isGenerator = this.eat(_tokenizerTypes.types.star);\\n    var isGetSet = false;\\n    var isAsync = false;\\n\\n    this.parsePropertyName(method);\\n\\n    method[\\"static\\"] = isMaybeStatic && !this.match(_tokenizerTypes.types.parenL);\\n    if (method[\\"static\\"]) {\\n      if (isGenerator) this.unexpected();\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n      this.parsePropertyName(method);\\n    }\\n\\n    if (!isGenerator && method.key.type === \\"Identifier\\" && !method.computed) {\\n      if (this.isClassProperty()) {\\n        classBody.body.push(this.parseClassProperty(method));\\n        continue;\\n      }\\n\\n      if (this.hasPlugin(\\"classConstructorCall\\") && method.key.name === \\"call\\" && this.match(_tokenizerTypes.types.name) && this.state.value === \\"constructor\\") {\\n        isConstructorCall = true;\\n        this.parsePropertyName(method);\\n      }\\n    }\\n\\n    var isAsyncMethod = this.hasPlugin(\\"asyncFunctions\\") && !this.match(_tokenizerTypes.types.parenL) && !method.computed && method.key.type === \\"Identifier\\" && method.key.name === \\"async\\";\\n    if (isAsyncMethod) {\\n      if (this.hasPlugin(\\"asyncGenerators\\") && this.eat(_tokenizerTypes.types.star)) isGenerator = true;\\n      isAsync = true;\\n      this.parsePropertyName(method);\\n    }\\n\\n    method.kind = \\"method\\";\\n\\n    if (!method.computed) {\\n      var key = method.key;\\n\\n      // handle get/set methods\\n      // eg. class Foo { get bar() {} set bar() {} }\\n      if (!isAsync && !isGenerator && key.type === \\"Identifier\\" && !this.match(_tokenizerTypes.types.parenL) && (key.name === \\"get\\" || key.name === \\"set\\")) {\\n        isGetSet = true;\\n        method.kind = key.name;\\n        key = this.parsePropertyName(method);\\n      }\\n\\n      // disallow invalid constructors\\n      var isConstructor = !isConstructorCall && !method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"constructor\\" || key.type === \\"StringLiteral\\" && key.value === \\"constructor\\");\\n      if (isConstructor) {\\n        if (hadConstructor) this.raise(key.start, \\"Duplicate constructor in the same class\\");\\n        if (isGetSet) this.raise(key.start, \\"Constructor can\'t have get/set modifier\\");\\n        if (isGenerator) this.raise(key.start, \\"Constructor can\'t be a generator\\");\\n        if (isAsync) this.raise(key.start, \\"Constructor can\'t be an async function\\");\\n        method.kind = \\"constructor\\";\\n        hadConstructor = true;\\n      }\\n\\n      // disallow static prototype method\\n      var isStaticPrototype = method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"prototype\\" || key.type === \\"StringLiteral\\" && key.value === \\"prototype\\");\\n      if (isStaticPrototype) {\\n        this.raise(key.start, \\"Classes may not have static property named prototype\\");\\n      }\\n    }\\n\\n    // convert constructor to a constructor call\\n    if (isConstructorCall) {\\n      if (hadConstructorCall) this.raise(method.start, \\"Duplicate constructor call in the same class\\");\\n      method.kind = \\"constructorCall\\";\\n      hadConstructorCall = true;\\n    }\\n\\n    // disallow decorators on class constructors\\n    if ((method.kind === \\"constructor\\" || method.kind === \\"constructorCall\\") && method.decorators) {\\n      this.raise(method.start, \\"You can\'t attach decorators to a class constructor\\");\\n    }\\n\\n    this.parseClassMethod(classBody, method, isGenerator, isAsync);\\n\\n    // get methods aren\'t allowed to have any parameters\\n    // set methods must have exactly 1 parameter\\n    if (isGetSet) {\\n      var paramCount = method.kind === \\"get\\" ? 0 : 1;\\n      if (method.params.length !== paramCount) {\\n        var start = method.start;\\n        if (method.kind === \\"get\\") {\\n          this.raise(start, \\"getter should have no params\\");\\n        } else {\\n          this.raise(start, \\"setter should have exactly one param\\");\\n        }\\n      }\\n    }\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no method\\");\\n  }\\n\\n  node.body = this.finishNode(classBody, \\"ClassBody\\");\\n\\n  this.state.strict = oldStrict;\\n};\\n\\npp.parseClassProperty = function (node) {\\n  if (this.match(_tokenizerTypes.types.eq)) {\\n    if (!this.hasPlugin(\\"classProperties\\")) this.unexpected();\\n    this.next();\\n    node.value = this.parseMaybeAssign();\\n  } else {\\n    node.value = null;\\n  }\\n  if (!this.eat(_tokenizerTypes.types.semi)) {\\n    this.raise(node.value && node.value.end || node.key.end, \\"A semicolon is required after a class property\\");\\n  }\\n  return this.finishNode(node, \\"ClassProperty\\");\\n};\\n\\npp.parseClassMethod = function (classBody, method, isGenerator, isAsync) {\\n  this.parseMethod(method, isGenerator, isAsync);\\n  classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n};\\n\\npp.parseClassId = function (node, isStatement, optionalId) {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    node.id = this.parseIdentifier();\\n  } else {\\n    if (optionalId || !isStatement) {\\n      node.id = null;\\n    } else {\\n      this.unexpected();\\n    }\\n  }\\n};\\n\\npp.parseClassSuper = function (node) {\\n  node.superClass = this.eat(_tokenizerTypes.types._extends) ? this.parseExprSubscripts() : null;\\n};\\n\\n// Parses module export declaration.\\n\\npp.parseExport = function (node) {\\n  this.next();\\n  // export * from \'...\'\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    if (this.hasPlugin(\\"exportExtensions\\") && this.eatContextual(\\"as\\")) {\\n      specifier.exported = this.parseIdentifier();\\n      node.specifiers = [this.finishNode(specifier, \\"ExportNamespaceSpecifier\\")];\\n      this.parseExportSpecifiersMaybe(node);\\n      this.parseExportFrom(node, true);\\n    } else {\\n      this.parseExportFrom(node, true);\\n      return this.finishNode(node, \\"ExportAllDeclaration\\");\\n    }\\n  } else if (this.hasPlugin(\\"exportExtensions\\") && this.isExportDefaultSpecifier()) {\\n    var specifier = this.startNode();\\n    specifier.exported = this.parseIdentifier(true);\\n    node.specifiers = [this.finishNode(specifier, \\"ExportDefaultSpecifier\\")];\\n    if (this.match(_tokenizerTypes.types.comma) && this.lookahead().type === _tokenizerTypes.types.star) {\\n      this.expect(_tokenizerTypes.types.comma);\\n      var _specifier = this.startNode();\\n      this.expect(_tokenizerTypes.types.star);\\n      this.expectContextual(\\"as\\");\\n      _specifier.exported = this.parseIdentifier();\\n      node.specifiers.push(this.finishNode(_specifier, \\"ExportNamespaceSpecifier\\"));\\n    } else {\\n      this.parseExportSpecifiersMaybe(node);\\n    }\\n    this.parseExportFrom(node, true);\\n  } else if (this.eat(_tokenizerTypes.types._default)) {\\n    // export default ...\\n    var expr = this.startNode();\\n    var needsSemi = false;\\n    if (this.eat(_tokenizerTypes.types._function)) {\\n      expr = this.parseFunction(expr, true, false, false, true);\\n    } else if (this.match(_tokenizerTypes.types._class)) {\\n      expr = this.parseClass(expr, true, true);\\n    } else {\\n      needsSemi = true;\\n      expr = this.parseMaybeAssign();\\n    }\\n    node.declaration = expr;\\n    if (needsSemi) this.semicolon();\\n    this.checkExport(node);\\n    return this.finishNode(node, \\"ExportDefaultDeclaration\\");\\n  } else if (this.state.type.keyword || this.shouldParseExportDeclaration()) {\\n    node.specifiers = [];\\n    node.source = null;\\n    node.declaration = this.parseExportDeclaration(node);\\n  } else {\\n    // export { x, y as z } [from \'...\']\\n    node.declaration = null;\\n    node.specifiers = this.parseExportSpecifiers();\\n    this.parseExportFrom(node);\\n  }\\n  this.checkExport(node);\\n  return this.finishNode(node, \\"ExportNamedDeclaration\\");\\n};\\n\\npp.parseExportDeclaration = function () {\\n  return this.parseStatement(true);\\n};\\n\\npp.isExportDefaultSpecifier = function () {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    return this.state.value !== \\"type\\" && this.state.value !== \\"async\\" && this.state.value !== \\"interface\\";\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._default)) {\\n    return false;\\n  }\\n\\n  var lookahead = this.lookahead();\\n  return lookahead.type === _tokenizerTypes.types.comma || lookahead.type === _tokenizerTypes.types.name && lookahead.value === \\"from\\";\\n};\\n\\npp.parseExportSpecifiersMaybe = function (node) {\\n  if (this.eat(_tokenizerTypes.types.comma)) {\\n    node.specifiers = node.specifiers.concat(this.parseExportSpecifiers());\\n  }\\n};\\n\\npp.parseExportFrom = function (node, expect /*:: ?*/) {\\n  if (this.eatContextual(\\"from\\")) {\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n    this.checkExport(node);\\n  } else {\\n    if (expect) {\\n      this.unexpected();\\n    } else {\\n      node.source = null;\\n    }\\n  }\\n\\n  this.semicolon();\\n};\\n\\npp.shouldParseExportDeclaration = function () {\\n  return this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\");\\n};\\n\\npp.checkExport = function (node) {\\n  if (this.state.decorators.length) {\\n    var isClass = node.declaration && (node.declaration.type === \\"ClassDeclaration\\" || node.declaration.type === \\"ClassExpression\\");\\n    if (!node.declaration || !isClass) {\\n      this.raise(node.start, \\"You can only use decorators on an export when exporting a class\\");\\n    }\\n    this.takeDecorators(node.declaration);\\n  }\\n};\\n\\n// Parses a comma-separated list of module exports.\\n\\npp.parseExportSpecifiers = function () {\\n  var nodes = [];\\n  var first = true;\\n  var needsFrom = undefined;\\n\\n  // export { x, y as z } [from \'...\']\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var isDefault = this.match(_tokenizerTypes.types._default);\\n    if (isDefault && !needsFrom) needsFrom = true;\\n\\n    var node = this.startNode();\\n    node.local = this.parseIdentifier(isDefault);\\n    node.exported = this.eatContextual(\\"as\\") ? this.parseIdentifier(true) : node.local.__clone();\\n    nodes.push(this.finishNode(node, \\"ExportSpecifier\\"));\\n  }\\n\\n  // https://github.com/ember-cli/ember-cli/pull/3739\\n  if (needsFrom && !this.isContextual(\\"from\\")) {\\n    this.unexpected();\\n  }\\n\\n  return nodes;\\n};\\n\\n// Parses import declaration.\\n\\npp.parseImport = function (node) {\\n  this.next();\\n\\n  // import \'...\'\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.specifiers = [];\\n    node.source = this.parseExprAtom();\\n  } else {\\n    node.specifiers = [];\\n    this.parseImportSpecifiers(node);\\n    this.expectContextual(\\"from\\");\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n  }\\n  this.semicolon();\\n  return this.finishNode(node, \\"ImportDeclaration\\");\\n};\\n\\n// Parses a comma-separated list of module imports.\\n\\npp.parseImportSpecifiers = function (node) {\\n  var first = true;\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    // import defaultObj, { x, y as z } from \'...\'\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc));\\n    if (!this.eat(_tokenizerTypes.types.comma)) return;\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    this.expectContextual(\\"as\\");\\n    specifier.local = this.parseIdentifier();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportNamespaceSpecifier\\"));\\n    return;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var specifier = this.startNode();\\n    specifier.imported = this.parseIdentifier(true);\\n    specifier.local = this.eatContextual(\\"as\\") ? this.parseIdentifier() : specifier.imported.__clone();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportSpecifier\\"));\\n  }\\n};\\n\\npp.parseImportSpecifierDefault = function (id, startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.local = id;\\n  this.checkLVal(node.local, true);\\n  return this.finishNode(node, \\"ImportDefaultSpecifier\\");\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/whitespace\\":20,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/core-js/object/create\\":22,\\"babel-runtime/helpers/interop-require-default\\":26}],10:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ## Parser utilities\\n\\n// TODO\\n\\npp.addExtra = function (node, key, val) {\\n  if (!node) return;\\n\\n  var extra = node.extra = node.extra || {};\\n  extra[key] = val;\\n};\\n\\n// TODO\\n\\npp.isRelational = function (op) {\\n  return this.match(_tokenizerTypes.types.relational) && this.state.value === op;\\n};\\n\\n// TODO\\n\\npp.expectRelational = function (op) {\\n  if (this.isRelational(op)) {\\n    this.next();\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\n// Tests whether parsed token is a contextual keyword.\\n\\npp.isContextual = function (name) {\\n  return this.match(_tokenizerTypes.types.name) && this.state.value === name;\\n};\\n\\n// Consumes contextual keyword if possible.\\n\\npp.eatContextual = function (name) {\\n  return this.state.value === name && this.eat(_tokenizerTypes.types.name);\\n};\\n\\n// Asserts that following token is given contextual keyword.\\n\\npp.expectContextual = function (name) {\\n  if (!this.eatContextual(name)) this.unexpected();\\n};\\n\\n// Test whether a semicolon can be inserted at the current position.\\n\\npp.canInsertSemicolon = function () {\\n  return this.match(_tokenizerTypes.types.eof) || this.match(_tokenizerTypes.types.braceR) || _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n};\\n\\n// TODO\\n\\npp.isLineTerminator = function () {\\n  return this.eat(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\n// Consume a semicolon, or, failing that, see if we are allowed to\\n// pretend that there is a semicolon at this position.\\n\\npp.semicolon = function () {\\n  if (!this.isLineTerminator()) this.unexpected();\\n};\\n\\n// Expect a token of a given type. If found, consume it, otherwise,\\n// raise an unexpected token error.\\n\\npp.expect = function (type) {\\n  return this.eat(type) || this.unexpected();\\n};\\n\\n// Raise an unexpected token error.\\n\\npp.unexpected = function (pos) {\\n  this.raise(pos != null ? pos : this.state.start, \\"Unexpected token\\");\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/whitespace\\":20,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":26}],11:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _parser = require(\\"../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.flowParseTypeInitialiser = function (tok, allowLeadingPipeOrAnd) {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  this.expect(tok || _tokenizerTypes.types.colon);\\n  if (allowLeadingPipeOrAnd) {\\n    if (this.match(_tokenizerTypes.types.bitwiseAND) || this.match(_tokenizerTypes.types.bitwiseOR)) {\\n      this.next();\\n    }\\n  }\\n  var type = this.flowParseType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseDeclareClass = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node, true);\\n  return this.finishNode(node, \\"DeclareClass\\");\\n};\\n\\npp.flowParseDeclareFunction = function (node) {\\n  this.next();\\n\\n  var id = node.id = this.parseIdentifier();\\n\\n  var typeNode = this.startNode();\\n  var typeContainer = this.startNode();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    typeNode.typeParameters = null;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var tmp = this.flowParseFunctionTypeParams();\\n  typeNode.params = tmp.params;\\n  typeNode.rest = tmp.rest;\\n  this.expect(_tokenizerTypes.types.parenR);\\n  typeNode.returnType = this.flowParseTypeInitialiser();\\n\\n  typeContainer.typeAnnotation = this.finishNode(typeNode, \\"FunctionTypeAnnotation\\");\\n  id.typeAnnotation = this.finishNode(typeContainer, \\"TypeAnnotation\\");\\n\\n  this.finishNode(id, id.type);\\n\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"DeclareFunction\\");\\n};\\n\\npp.flowParseDeclare = function (node) {\\n  if (this.match(_tokenizerTypes.types._class)) {\\n    return this.flowParseDeclareClass(node);\\n  } else if (this.match(_tokenizerTypes.types._function)) {\\n    return this.flowParseDeclareFunction(node);\\n  } else if (this.match(_tokenizerTypes.types._var)) {\\n    return this.flowParseDeclareVariable(node);\\n  } else if (this.isContextual(\\"module\\")) {\\n    return this.flowParseDeclareModule(node);\\n  } else if (this.isContextual(\\"type\\")) {\\n    return this.flowParseDeclareTypeAlias(node);\\n  } else if (this.isContextual(\\"interface\\")) {\\n    return this.flowParseDeclareInterface(node);\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseDeclareVariable = function (node) {\\n  this.next();\\n  node.id = this.flowParseTypeAnnotatableIdentifier();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DeclareVariable\\");\\n};\\n\\npp.flowParseDeclareModule = function (node) {\\n  this.next();\\n\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.id = this.parseExprAtom();\\n  } else {\\n    node.id = this.parseIdentifier();\\n  }\\n\\n  var bodyNode = node.body = this.startNode();\\n  var body = bodyNode.body = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var node2 = this.startNode();\\n\\n    // todo: declare check\\n    this.next();\\n\\n    body.push(this.flowParseDeclare(node2));\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  this.finishNode(bodyNode, \\"BlockStatement\\");\\n  return this.finishNode(node, \\"DeclareModule\\");\\n};\\n\\npp.flowParseDeclareTypeAlias = function (node) {\\n  this.next();\\n  this.flowParseTypeAlias(node);\\n  return this.finishNode(node, \\"DeclareTypeAlias\\");\\n};\\n\\npp.flowParseDeclareInterface = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node);\\n  return this.finishNode(node, \\"DeclareInterface\\");\\n};\\n\\n// Interfaces\\n\\npp.flowParseInterfaceish = function (node, allowStatic) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node[\\"extends\\"] = [];\\n  node.mixins = [];\\n\\n  if (this.eat(_tokenizerTypes.types._extends)) {\\n    do {\\n      node[\\"extends\\"].push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  if (this.isContextual(\\"mixins\\")) {\\n    this.next();\\n    do {\\n      node.mixins.push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  node.body = this.flowParseObjectType(allowStatic);\\n};\\n\\npp.flowParseInterfaceExtends = function () {\\n  var node = this.startNode();\\n\\n  node.id = this.parseIdentifier();\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  return this.finishNode(node, \\"InterfaceExtends\\");\\n};\\n\\npp.flowParseInterface = function (node) {\\n  this.flowParseInterfaceish(node, false);\\n  return this.finishNode(node, \\"InterfaceDeclaration\\");\\n};\\n\\n// Type aliases\\n\\npp.flowParseTypeAlias = function (node) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node.right = this.flowParseTypeInitialiser(_tokenizerTypes.types.eq,\\n  /*allowLeadingPipeOrAnd*/true);\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"TypeAlias\\");\\n};\\n\\n// Type annotations\\n\\npp.flowParseTypeParameterDeclaration = function () {\\n  var node = this.startNode();\\n  node.params = [];\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseTypeAnnotatableIdentifier());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  return this.finishNode(node, \\"TypeParameterDeclaration\\");\\n};\\n\\npp.flowParseExistentialTypeParam = function () {\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var node = this.startNode();\\n    this.next();\\n    return this.finishNode(node, \\"ExistentialTypeParam\\");\\n  }\\n};\\n\\npp.flowParseTypeParameterInstantiation = function () {\\n  var node = this.startNode(),\\n      oldInType = this.state.inType;\\n  node.params = [];\\n\\n  this.state.inType = true;\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseType());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  this.state.inType = oldInType;\\n\\n  return this.finishNode(node, \\"TypeParameterInstantiation\\");\\n};\\n\\npp.flowParseObjectPropertyKey = function () {\\n  return this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n};\\n\\npp.flowParseObjectTypeIndexer = function (node, isStatic) {\\n  node[\\"static\\"] = isStatic;\\n\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  node.id = this.flowParseObjectPropertyKey();\\n  node.key = this.flowParseTypeInitialiser();\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  node.value = this.flowParseTypeInitialiser();\\n\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeIndexer\\");\\n};\\n\\npp.flowParseObjectTypeMethodish = function (node) {\\n  node.params = [];\\n  node.rest = null;\\n  node.typeParameters = null;\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    node.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    node.rest = this.flowParseFunctionTypeParam();\\n  }\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.returnType = this.flowParseTypeInitialiser();\\n\\n  return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n};\\n\\npp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(startPos, startLoc));\\n  node[\\"static\\"] = isStatic;\\n  node.key = key;\\n  node.optional = false;\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeProperty\\");\\n};\\n\\npp.flowParseObjectTypeCallProperty = function (node, isStatic) {\\n  var valueNode = this.startNode();\\n  node[\\"static\\"] = isStatic;\\n  node.value = this.flowParseObjectTypeMethodish(valueNode);\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeCallProperty\\");\\n};\\n\\npp.flowParseObjectType = function (allowStatic) {\\n  var nodeStart = this.startNode();\\n  var node = undefined;\\n  var propertyKey = undefined;\\n  var isStatic = undefined;\\n\\n  nodeStart.callProperties = [];\\n  nodeStart.properties = [];\\n  nodeStart.indexers = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var optional = false;\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node = this.startNode();\\n    if (allowStatic && this.isContextual(\\"static\\")) {\\n      this.next();\\n      isStatic = true;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.bracketL)) {\\n      nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic));\\n    } else if (this.match(_tokenizerTypes.types.parenL) || this.isRelational(\\"<\\")) {\\n      nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, allowStatic));\\n    } else {\\n      if (isStatic && this.match(_tokenizerTypes.types.colon)) {\\n        propertyKey = this.parseIdentifier();\\n      } else {\\n        propertyKey = this.flowParseObjectPropertyKey();\\n      }\\n      if (this.isRelational(\\"<\\") || this.match(_tokenizerTypes.types.parenL)) {\\n        // This is a method property\\n        nodeStart.properties.push(this.flowParseObjectTypeMethod(startPos, startLoc, isStatic, propertyKey));\\n      } else {\\n        if (this.eat(_tokenizerTypes.types.question)) {\\n          optional = true;\\n        }\\n        node.key = propertyKey;\\n        node.value = this.flowParseTypeInitialiser();\\n        node.optional = optional;\\n        node[\\"static\\"] = isStatic;\\n        this.flowObjectTypeSemicolon();\\n        nodeStart.properties.push(this.finishNode(node, \\"ObjectTypeProperty\\"));\\n      }\\n    }\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  return this.finishNode(nodeStart, \\"ObjectTypeAnnotation\\");\\n};\\n\\npp.flowObjectTypeSemicolon = function () {\\n  if (!this.eat(_tokenizerTypes.types.semi) && !this.eat(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseGenericType = function (startPos, startLoc, id) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n\\n  node.typeParameters = null;\\n  node.id = id;\\n\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var node2 = this.startNodeAt(startPos, startLoc);\\n    node2.qualification = node.id;\\n    node2.id = this.parseIdentifier();\\n    node.id = this.finishNode(node2, \\"QualifiedTypeIdentifier\\");\\n  }\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  }\\n\\n  return this.finishNode(node, \\"GenericTypeAnnotation\\");\\n};\\n\\npp.flowParseTypeofType = function () {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types._typeof);\\n  node.argument = this.flowParsePrimaryType();\\n  return this.finishNode(node, \\"TypeofTypeAnnotation\\");\\n};\\n\\npp.flowParseTupleType = function () {\\n  var node = this.startNode();\\n  node.types = [];\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  // We allow trailing commas\\n  while (this.state.pos < this.input.length && !this.match(_tokenizerTypes.types.bracketR)) {\\n    node.types.push(this.flowParseType());\\n    if (this.match(_tokenizerTypes.types.bracketR)) break;\\n    this.expect(_tokenizerTypes.types.comma);\\n  }\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  return this.finishNode(node, \\"TupleTypeAnnotation\\");\\n};\\n\\npp.flowParseFunctionTypeParam = function () {\\n  var optional = false;\\n  var node = this.startNode();\\n  node.name = this.parseIdentifier();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    optional = true;\\n  }\\n  node.optional = optional;\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"FunctionTypeParam\\");\\n};\\n\\npp.flowParseFunctionTypeParams = function () {\\n  var ret = { params: [], rest: null };\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    ret.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    ret.rest = this.flowParseFunctionTypeParam();\\n  }\\n  return ret;\\n};\\n\\npp.flowIdentToTypeAnnotation = function (startPos, startLoc, node, id) {\\n  switch (id.name) {\\n    case \\"any\\":\\n      return this.finishNode(node, \\"AnyTypeAnnotation\\");\\n\\n    case \\"void\\":\\n      return this.finishNode(node, \\"VoidTypeAnnotation\\");\\n\\n    case \\"bool\\":\\n    case \\"boolean\\":\\n      return this.finishNode(node, \\"BooleanTypeAnnotation\\");\\n\\n    case \\"mixed\\":\\n      return this.finishNode(node, \\"MixedTypeAnnotation\\");\\n\\n    case \\"number\\":\\n      return this.finishNode(node, \\"NumberTypeAnnotation\\");\\n\\n    case \\"string\\":\\n      return this.finishNode(node, \\"StringTypeAnnotation\\");\\n\\n    default:\\n      return this.flowParseGenericType(startPos, startLoc, id);\\n  }\\n};\\n\\n// The parsing of types roughly parallels the parsing of expressions, and\\n// primary types are kind of like primary expressions...they\'re the\\n// primitives with which other types are constructed.\\npp.flowParsePrimaryType = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.startNode();\\n  var tmp = undefined;\\n  var type = undefined;\\n  var isGroupedType = false;\\n\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.name:\\n      return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier());\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.flowParseObjectType();\\n\\n    case _tokenizerTypes.types.bracketL:\\n      return this.flowParseTupleType();\\n\\n    case _tokenizerTypes.types.relational:\\n      if (this.state.value === \\"<\\") {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n        this.expect(_tokenizerTypes.types.parenL);\\n        tmp = this.flowParseFunctionTypeParams();\\n        node.params = tmp.params;\\n        node.rest = tmp.rest;\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        this.expect(_tokenizerTypes.types.arrow);\\n\\n        node.returnType = this.flowParseType();\\n\\n        return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n      }\\n\\n    case _tokenizerTypes.types.parenL:\\n      this.next();\\n\\n      // Check to see if this is actually a grouped type\\n      if (!this.match(_tokenizerTypes.types.parenR) && !this.match(_tokenizerTypes.types.ellipsis)) {\\n        if (this.match(_tokenizerTypes.types.name)) {\\n          var token = this.lookahead().type;\\n          isGroupedType = token !== _tokenizerTypes.types.question && token !== _tokenizerTypes.types.colon;\\n        } else {\\n          isGroupedType = true;\\n        }\\n      }\\n\\n      if (isGroupedType) {\\n        type = this.flowParseType();\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        // If we see a => next then someone was probably confused about\\n        // function types, so we can provide a better error message\\n        if (this.eat(_tokenizerTypes.types.arrow)) {\\n          this.raise(node, \\"Unexpected token =>. It looks like \\" + \\"you are trying to write a function type, but you ended up \\" + \\"writing a grouped type followed by an =>, which is a syntax \\" + \\"error. Remember, function type parameters are named so function \\" + \\"types look like (name1: type1, name2: type2) => returnType. You \\" + \\"probably wrote (type1) => returnType\\");\\n        }\\n\\n        return type;\\n      }\\n\\n      tmp = this.flowParseFunctionTypeParams();\\n      node.params = tmp.params;\\n      node.rest = tmp.rest;\\n\\n      this.expect(_tokenizerTypes.types.parenR);\\n\\n      this.expect(_tokenizerTypes.types.arrow);\\n\\n      node.returnType = this.flowParseType();\\n      node.typeParameters = null;\\n\\n      return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.string:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"StringLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.num:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"NumericLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node.value = this.match(_tokenizerTypes.types._null);\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node.value = this.match(_tokenizerTypes.types._this);\\n      this.next();\\n      return this.finishNode(node, \\"ThisTypeAnnotation\\");\\n\\n    default:\\n      if (this.state.type.keyword === \\"typeof\\") {\\n        return this.flowParseTypeofType();\\n      }\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.flowParsePostfixType = function () {\\n  var node = this.startNode();\\n  var type = node.elementType = this.flowParsePrimaryType();\\n  if (this.match(_tokenizerTypes.types.bracketL)) {\\n    this.expect(_tokenizerTypes.types.bracketL);\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return this.finishNode(node, \\"ArrayTypeAnnotation\\");\\n  } else {\\n    return type;\\n  }\\n};\\n\\npp.flowParsePrefixType = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    node.typeAnnotation = this.flowParsePrefixType();\\n    return this.finishNode(node, \\"NullableTypeAnnotation\\");\\n  } else {\\n    return this.flowParsePostfixType();\\n  }\\n};\\n\\npp.flowParseIntersectionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParsePrefixType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseAND)) {\\n    node.types.push(this.flowParsePrefixType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"IntersectionTypeAnnotation\\");\\n};\\n\\npp.flowParseUnionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParseIntersectionType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseOR)) {\\n    node.types.push(this.flowParseIntersectionType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"UnionTypeAnnotation\\");\\n};\\n\\npp.flowParseType = function () {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  var type = this.flowParseUnionType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseTypeAnnotation = function () {\\n  var node = this.startNode();\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"TypeAnnotation\\");\\n};\\n\\npp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) {\\n  var ident = this.parseIdentifier();\\n  var isOptionalParam = false;\\n\\n  if (canBeOptionalParam && this.eat(_tokenizerTypes.types.question)) {\\n    this.expect(_tokenizerTypes.types.question);\\n    isOptionalParam = true;\\n  }\\n\\n  if (requireTypeAnnotation || this.match(_tokenizerTypes.types.colon)) {\\n    ident.typeAnnotation = this.flowParseTypeAnnotation();\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  if (isOptionalParam) {\\n    ident.optional = true;\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  return ident;\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  // plain function return types: function name(): string {}\\n  instance.extend(\\"parseFunctionBody\\", function (inner) {\\n    return function (node, allowExpression) {\\n      if (this.match(_tokenizerTypes.types.colon) && !allowExpression) {\\n        // if allowExpression is true then we\'re parsing an arrow function and if\\n        // there\'s a return type then it\'s been handled elsewhere\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, allowExpression);\\n    };\\n  });\\n\\n  // interfaces\\n  instance.extend(\\"parseStatement\\", function (inner) {\\n    return function (declaration, topLevel) {\\n      // strict mode handling of `interface` since it\'s a reserved word\\n      if (this.state.strict && this.match(_tokenizerTypes.types.name) && this.state.value === \\"interface\\") {\\n        var node = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(node);\\n      } else {\\n        return inner.call(this, declaration, topLevel);\\n      }\\n    };\\n  });\\n\\n  // declares, interfaces and type aliases\\n  instance.extend(\\"parseExpressionStatement\\", function (inner) {\\n    return function (node, expr) {\\n      if (expr.type === \\"Identifier\\") {\\n        if (expr.name === \\"declare\\") {\\n          if (this.match(_tokenizerTypes.types._class) || this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._function) || this.match(_tokenizerTypes.types._var)) {\\n            return this.flowParseDeclare(node);\\n          }\\n        } else if (this.match(_tokenizerTypes.types.name)) {\\n          if (expr.name === \\"interface\\") {\\n            return this.flowParseInterface(node);\\n          } else if (expr.name === \\"type\\") {\\n            return this.flowParseTypeAlias(node);\\n          }\\n        }\\n      }\\n\\n      return inner.call(this, node, expr);\\n    };\\n  });\\n\\n  // export type\\n  instance.extend(\\"shouldParseExportDeclaration\\", function (inner) {\\n    return function () {\\n      return this.isContextual(\\"type\\") || this.isContextual(\\"interface\\") || inner.call(this);\\n    };\\n  });\\n\\n  instance.extend(\\"parseParenItem\\", function () {\\n    return function (node, startLoc, startPos, forceArrow /*:: ?*/) {\\n      var canBeArrow = this.state.potentialArrowAt = startPos;\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        var typeCastNode = this.startNodeAt(startLoc, startPos);\\n        typeCastNode.expression = node;\\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\\n\\n        if (forceArrow && !this.match(_tokenizerTypes.types.arrow)) {\\n          this.unexpected();\\n        }\\n\\n        if (canBeArrow && this.eat(_tokenizerTypes.types.arrow)) {\\n          // ((lol): number => {});\\n          var params = node.type === \\"SequenceExpression\\" ? node.expressions : [node];\\n          var func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), params);\\n          func.returnType = typeCastNode.typeAnnotation;\\n          return func;\\n        } else {\\n          return this.finishNode(typeCastNode, \\"TypeCastExpression\\");\\n        }\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseExport\\", function (inner) {\\n    return function (node) {\\n      node = inner.call(this, node);\\n      if (node.type === \\"ExportNamedDeclaration\\") {\\n        node.exportKind = node.exportKind || \\"value\\";\\n      }\\n      return node;\\n    };\\n  });\\n\\n  instance.extend(\\"parseExportDeclaration\\", function (inner) {\\n    return function (node) {\\n      if (this.isContextual(\\"type\\")) {\\n        node.exportKind = \\"type\\";\\n\\n        var declarationNode = this.startNode();\\n        this.next();\\n\\n        if (this.match(_tokenizerTypes.types.braceL)) {\\n          // export type { foo, bar };\\n          node.specifiers = this.parseExportSpecifiers();\\n          this.parseExportFrom(node);\\n          return null;\\n        } else {\\n          // export type Foo = Bar;\\n          return this.flowParseTypeAlias(declarationNode);\\n        }\\n      } else if (this.isContextual(\\"interface\\")) {\\n        node.exportKind = \\"type\\";\\n        var declarationNode = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(declarationNode);\\n      } else {\\n        return inner.call(this, node);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseClassId\\", function (inner) {\\n    return function (node) {\\n      inner.apply(this, arguments);\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n    };\\n  });\\n\\n  // don\'t consider `void` to be a keyword as then it\'ll use the void token type\\n  // and set startExpr\\n  instance.extend(\\"isKeyword\\", function (inner) {\\n    return function (name) {\\n      if (this.state.inType && name === \\"void\\") {\\n        return false;\\n      } else {\\n        return inner.call(this, name);\\n      }\\n    };\\n  });\\n\\n  // ensure that inside flow types, we bypass the jsx parser plugin\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      if (this.state.inType && (code === 62 || code === 60)) {\\n        return this.finishOp(_tokenizerTypes.types.relational, 1);\\n      } else {\\n        return inner.call(this, code);\\n      }\\n    };\\n  });\\n\\n  // don\'t lex any token as a jsx one inside a flow type\\n  instance.extend(\\"jsx_readToken\\", function (inner) {\\n    return function () {\\n      if (!this.state.inType) return inner.call(this);\\n    };\\n  });\\n\\n  function typeCastToParameter(node) {\\n    node.expression.typeAnnotation = node.typeAnnotation;\\n    return node.expression;\\n  }\\n\\n  instance.extend(\\"toAssignable\\", function (inner) {\\n    return function (node) {\\n      if (node.type === \\"TypeCastExpression\\") {\\n        return typeCastToParameter(node);\\n      } else {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // turn type casts that we found in function parameter head into type annotated params\\n  instance.extend(\\"toAssignableList\\", function (inner) {\\n    return function (exprList, isBinding) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr.type === \\"TypeCastExpression\\") {\\n          exprList[i] = typeCastToParameter(expr);\\n        }\\n      }\\n      return inner.call(this, exprList, isBinding);\\n    };\\n  });\\n\\n  // this is a list of nodes, from something like a call expression, we need to filter the\\n  // type casts that we\'ve found that are illegal in this context\\n  instance.extend(\\"toReferencedList\\", function () {\\n    return function (exprList) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr._exprListItem && expr.type === \\"TypeCastExpression\\") {\\n          this.raise(expr.start, \\"Unexpected type cast\\");\\n        }\\n      }\\n\\n      return exprList;\\n    };\\n  });\\n\\n  // parse an item inside a expression list eg. `(NODE, NODE)` where NODE represents\\n  // the position where this function is cal;ed\\n  instance.extend(\\"parseExprListItem\\", function (inner) {\\n    return function (allowEmpty, refShorthandDefaultPos) {\\n      var container = this.startNode();\\n      var node = inner.call(this, allowEmpty, refShorthandDefaultPos);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        container._exprListItem = true;\\n        container.expression = node;\\n        container.typeAnnotation = this.flowParseTypeAnnotation();\\n        return this.finishNode(container, \\"TypeCastExpression\\");\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"checkLVal\\", function (inner) {\\n    return function (node) {\\n      if (node.type !== \\"TypeCastExpression\\") {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // parse class property type annotations\\n  instance.extend(\\"parseClassProperty\\", function (inner) {\\n    return function (node) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      return inner.call(this, node);\\n    };\\n  });\\n\\n  // determine whether or not we\'re currently in the position where a class property would appear\\n  instance.extend(\\"isClassProperty\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // parse type parameters for class methods\\n  instance.extend(\\"parseClassMethod\\", function () {\\n    return function (classBody, method, isGenerator, isAsync) {\\n      if (this.isRelational(\\"<\\")) {\\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      this.parseMethod(method, isGenerator, isAsync);\\n      classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n    };\\n  });\\n\\n  // parse a the super class type parameters and implements\\n  instance.extend(\\"parseClassSuper\\", function (inner) {\\n    return function (node, isStatement) {\\n      inner.call(this, node, isStatement);\\n      if (node.superClass && this.isRelational(\\"<\\")) {\\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\\n      }\\n      if (this.isContextual(\\"implements\\")) {\\n        this.next();\\n        var implemented = node[\\"implements\\"] = [];\\n        do {\\n          var _node = this.startNode();\\n          _node.id = this.parseIdentifier();\\n          if (this.isRelational(\\"<\\")) {\\n            _node.typeParameters = this.flowParseTypeParameterInstantiation();\\n          } else {\\n            _node.typeParameters = null;\\n          }\\n          implemented.push(this.finishNode(_node, \\"ClassImplements\\"));\\n        } while (this.eat(_tokenizerTypes.types.comma));\\n      }\\n    };\\n  });\\n\\n  // parse type parameters for object method shorthand\\n  instance.extend(\\"parseObjPropValue\\", function (inner) {\\n    return function (prop) {\\n      var typeParameters = undefined;\\n\\n      // method shorthand\\n      if (this.isRelational(\\"<\\")) {\\n        typeParameters = this.flowParseTypeParameterDeclaration();\\n        if (!this.match(_tokenizerTypes.types.parenL)) this.unexpected();\\n      }\\n\\n      inner.apply(this, arguments);\\n\\n      // add typeParameters if we found them\\n      if (typeParameters) {\\n        (prop.value || prop).typeParameters = typeParameters;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseAssignableListItemTypes\\", function () {\\n    return function (param) {\\n      if (this.eat(_tokenizerTypes.types.question)) {\\n        param.optional = true;\\n      }\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        param.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      this.finishNode(param, param.type);\\n      return param;\\n    };\\n  });\\n\\n  // parse typeof and type imports\\n  instance.extend(\\"parseImportSpecifiers\\", function (inner) {\\n    return function (node) {\\n      node.importKind = \\"value\\";\\n\\n      var kind = null;\\n      if (this.match(_tokenizerTypes.types._typeof)) {\\n        kind = \\"typeof\\";\\n      } else if (this.isContextual(\\"type\\")) {\\n        kind = \\"type\\";\\n      }\\n      if (kind) {\\n        var lh = this.lookahead();\\n        if (lh.type === _tokenizerTypes.types.name && lh.value !== \\"from\\" || lh.type === _tokenizerTypes.types.braceL || lh.type === _tokenizerTypes.types.star) {\\n          this.next();\\n          node.importKind = kind;\\n        }\\n      }\\n\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse function type parameters - function foo<T>() {}\\n  instance.extend(\\"parseFunctionParams\\", function (inner) {\\n    return function (node) {\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse flow type annotations on variable declarator heads - let foo: string = bar\\n  instance.extend(\\"parseVarHead\\", function (inner) {\\n    return function (decl) {\\n      inner.call(this, decl);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\\n        this.finishNode(decl.id, decl.id.type);\\n      }\\n    };\\n  });\\n\\n  // parse the return type of an async arrow function - let foo = (async (): number => {});\\n  instance.extend(\\"parseAsyncArrowFromCallExpression\\", function (inner) {\\n    return function (node, call) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, call);\\n    };\\n  });\\n\\n  // todo description\\n  instance.extend(\\"shouldParseAsyncArrow\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // handle return types for arrow functions\\n  instance.extend(\\"parseParenAndDistinguishExpression\\", function (inner) {\\n    return function (startPos, startLoc, canBeArrow, isAsync) {\\n      startPos = startPos || this.state.start;\\n      startLoc = startLoc || this.state.startLoc;\\n\\n      if (canBeArrow && this.lookahead().type === _tokenizerTypes.types.parenR) {\\n        // let foo = (): number => {};\\n        this.expect(_tokenizerTypes.types.parenL);\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        var node = this.startNodeAt(startPos, startLoc);\\n        if (this.match(_tokenizerTypes.types.colon)) node.returnType = this.flowParseTypeAnnotation();\\n        this.expect(_tokenizerTypes.types.arrow);\\n        return this.parseArrowExpression(node, [], isAsync);\\n      } else {\\n        // let foo = (foo): number => {};\\n        var node = inner.call(this, startPos, startLoc, canBeArrow, isAsync, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n\\n        if (this.match(_tokenizerTypes.types.colon)) {\\n          var state = this.state.clone();\\n          try {\\n            return this.parseParenItem(node, startPos, startLoc, true);\\n          } catch (err) {\\n            if (err instanceof SyntaxError) {\\n              this.state = state;\\n              return node;\\n            } else {\\n              throw err;\\n            }\\n          }\\n        } else {\\n          return node;\\n        }\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../parser\\":5,\\"../tokenizer/types\\":17,\\"babel-runtime/helpers/interop-require-default\\":26}],12:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _xhtml = require(\\"./xhtml\\");\\n\\nvar _xhtml2 = _interopRequireDefault(_xhtml);\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilIdentifier = require(\\"../../util/identifier\\");\\n\\nvar _utilWhitespace = require(\\"../../util/whitespace\\");\\n\\nvar HEX_NUMBER = /^[\\\\da-fA-F]+$/;\\nvar DECIMAL_NUMBER = /^\\\\d+$/;\\n\\n_tokenizerContext.types.j_oTag = new _tokenizerContext.TokContext(\\"<tag\\", false);\\n_tokenizerContext.types.j_cTag = new _tokenizerContext.TokContext(\\"</tag\\", false);\\n_tokenizerContext.types.j_expr = new _tokenizerContext.TokContext(\\"<tag>...</tag>\\", true, true);\\n\\n_tokenizerTypes.types.jsxName = new _tokenizerTypes.TokenType(\\"jsxName\\");\\n_tokenizerTypes.types.jsxText = new _tokenizerTypes.TokenType(\\"jsxText\\", { beforeExpr: true });\\n_tokenizerTypes.types.jsxTagStart = new _tokenizerTypes.TokenType(\\"jsxTagStart\\");\\n_tokenizerTypes.types.jsxTagEnd = new _tokenizerTypes.TokenType(\\"jsxTagEnd\\");\\n\\n_tokenizerTypes.types.jsxTagStart.updateContext = function () {\\n  this.state.context.push(_tokenizerContext.types.j_expr); // treat as beginning of JSX expression\\n  this.state.context.push(_tokenizerContext.types.j_oTag); // start opening tag context\\n  this.state.exprAllowed = false;\\n};\\n\\n_tokenizerTypes.types.jsxTagEnd.updateContext = function (prevType) {\\n  var out = this.state.context.pop();\\n  if (out === _tokenizerContext.types.j_oTag && prevType === _tokenizerTypes.types.slash || out === _tokenizerContext.types.j_cTag) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = this.curContext() === _tokenizerContext.types.j_expr;\\n  } else {\\n    this.state.exprAllowed = true;\\n  }\\n};\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\n// Reads inline JSX contents token.\\n\\npp.jsxReadToken = function () {\\n  var out = \\"\\";\\n  var chunkStart = this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated JSX contents\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n\\n    switch (ch) {\\n      case 60: // \\"<\\"\\n      case 123:\\n        // \\"{\\"\\n        if (this.state.pos === this.state.start) {\\n          if (ch === 60 && this.state.exprAllowed) {\\n            ++this.state.pos;\\n            return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n          }\\n          return this.getTokenFromCode(ch);\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_tokenizerTypes.types.jsxText, out);\\n\\n      case 38:\\n        // \\"&\\"\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.jsxReadEntity();\\n        chunkStart = this.state.pos;\\n        break;\\n\\n      default:\\n        if (_utilWhitespace.isNewLine(ch)) {\\n          out += this.input.slice(chunkStart, this.state.pos);\\n          out += this.jsxReadNewLine(true);\\n          chunkStart = this.state.pos;\\n        } else {\\n          ++this.state.pos;\\n        }\\n    }\\n  }\\n};\\n\\npp.jsxReadNewLine = function (normalizeCRLF) {\\n  var ch = this.input.charCodeAt(this.state.pos);\\n  var out = undefined;\\n  ++this.state.pos;\\n  if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {\\n    ++this.state.pos;\\n    out = normalizeCRLF ? \\"\\\\n\\" : \\"\\\\r\\\\n\\";\\n  } else {\\n    out = String.fromCharCode(ch);\\n  }\\n  ++this.state.curLine;\\n  this.state.lineStart = this.state.pos;\\n\\n  return out;\\n};\\n\\npp.jsxReadString = function (quote) {\\n  var out = \\"\\";\\n  var chunkStart = ++this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated string constant\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n    if (ch === quote) break;\\n    if (ch === 38) {\\n      // \\"&\\"\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadEntity();\\n      chunkStart = this.state.pos;\\n    } else if (_utilWhitespace.isNewLine(ch)) {\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadNewLine(false);\\n      chunkStart = this.state.pos;\\n    } else {\\n      ++this.state.pos;\\n    }\\n  }\\n  out += this.input.slice(chunkStart, this.state.pos++);\\n  return this.finishToken(_tokenizerTypes.types.string, out);\\n};\\n\\npp.jsxReadEntity = function () {\\n  var str = \\"\\";\\n  var count = 0;\\n  var entity = undefined;\\n  var ch = this.input[this.state.pos];\\n\\n  var startPos = ++this.state.pos;\\n  while (this.state.pos < this.input.length && count++ < 10) {\\n    ch = this.input[this.state.pos++];\\n    if (ch === \\";\\") {\\n      if (str[0] === \\"#\\") {\\n        if (str[1] === \\"x\\") {\\n          str = str.substr(2);\\n          if (HEX_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 16));\\n        } else {\\n          str = str.substr(1);\\n          if (DECIMAL_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 10));\\n        }\\n      } else {\\n        entity = _xhtml2[\\"default\\"][str];\\n      }\\n      break;\\n    }\\n    str += ch;\\n  }\\n  if (!entity) {\\n    this.state.pos = startPos;\\n    return \\"&\\";\\n  }\\n  return entity;\\n};\\n\\n// Read a JSX identifier (valid tag or attribute name).\\n//\\n// Optimized version since JSX identifiers can\\"t contain\\n// escape characters and so can be read as single slice.\\n// Also assumes that first character was already checked\\n// by isIdentifierStart in readToken.\\n\\npp.jsxReadWord = function () {\\n  var ch = undefined;\\n  var start = this.state.pos;\\n  do {\\n    ch = this.input.charCodeAt(++this.state.pos);\\n  } while (_utilIdentifier.isIdentifierChar(ch) || ch === 45); // \\"-\\"\\n  return this.finishToken(_tokenizerTypes.types.jsxName, this.input.slice(start, this.state.pos));\\n};\\n\\n// Transforms JSX element name to string.\\n\\nfunction getQualifiedJSXName(object) {\\n  if (object.type === \\"JSXIdentifier\\") {\\n    return object.name;\\n  }\\n\\n  if (object.type === \\"JSXNamespacedName\\") {\\n    return object.namespace.name + \\":\\" + object.name.name;\\n  }\\n\\n  if (object.type === \\"JSXMemberExpression\\") {\\n    return getQualifiedJSXName(object.object) + \\".\\" + getQualifiedJSXName(object.property);\\n  }\\n}\\n\\n// Parse next token as JSX identifier\\n\\npp.jsxParseIdentifier = function () {\\n  var node = this.startNode();\\n  if (this.match(_tokenizerTypes.types.jsxName)) {\\n    node.name = this.state.value;\\n  } else if (this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"JSXIdentifier\\");\\n};\\n\\n// Parse namespaced identifier.\\n\\npp.jsxParseNamespacedName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var name = this.jsxParseIdentifier();\\n  if (!this.eat(_tokenizerTypes.types.colon)) return name;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.namespace = name;\\n  node.name = this.jsxParseIdentifier();\\n  return this.finishNode(node, \\"JSXNamespacedName\\");\\n};\\n\\n// Parses element name in any form - namespaced, member\\n// or single identifier.\\n\\npp.jsxParseElementName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.jsxParseNamespacedName();\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var newNode = this.startNodeAt(startPos, startLoc);\\n    newNode.object = node;\\n    newNode.property = this.jsxParseIdentifier();\\n    node = this.finishNode(newNode, \\"JSXMemberExpression\\");\\n  }\\n  return node;\\n};\\n\\n// Parses any type of JSX attribute value.\\n\\npp.jsxParseAttributeValue = function () {\\n  var node = undefined;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.braceL:\\n      node = this.jsxParseExpressionContainer();\\n      if (node.expression.type === \\"JSXEmptyExpression\\") {\\n        this.raise(node.start, \\"JSX attributes must only be assigned a non-empty expression\\");\\n      } else {\\n        return node;\\n      }\\n\\n    case _tokenizerTypes.types.jsxTagStart:\\n    case _tokenizerTypes.types.string:\\n      node = this.parseExprAtom();\\n      node.extra = null;\\n      return node;\\n\\n    default:\\n      this.raise(this.state.start, \\"JSX value should be either an expression or a quoted JSX text\\");\\n  }\\n};\\n\\n// JSXEmptyExpression is unique type since it doesn\'t actually parse anything,\\n// and so it should start at the end of last read token (left brace) and finish\\n// at the beginning of the next one (right brace).\\n\\npp.jsxParseEmptyExpression = function () {\\n  var node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc);\\n  return this.finishNodeAt(node, \\"JSXEmptyExpression\\", this.start, this.startLoc);\\n};\\n\\n// Parses JSX expression enclosed into curly brackets.\\n\\npp.jsxParseExpressionContainer = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.braceR)) {\\n    node.expression = this.jsxParseEmptyExpression();\\n  } else {\\n    node.expression = this.parseExpression();\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"JSXExpressionContainer\\");\\n};\\n\\n// Parses following JSX attribute name-value pair.\\n\\npp.jsxParseAttribute = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.braceL)) {\\n    this.expect(_tokenizerTypes.types.ellipsis);\\n    node.argument = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.braceR);\\n    return this.finishNode(node, \\"JSXSpreadAttribute\\");\\n  }\\n  node.name = this.jsxParseNamespacedName();\\n  node.value = this.eat(_tokenizerTypes.types.eq) ? this.jsxParseAttributeValue() : null;\\n  return this.finishNode(node, \\"JSXAttribute\\");\\n};\\n\\n// Parses JSX opening tag starting after \\"<\\".\\n\\npp.jsxParseOpeningElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.attributes = [];\\n  node.name = this.jsxParseElementName();\\n  while (!this.match(_tokenizerTypes.types.slash) && !this.match(_tokenizerTypes.types.jsxTagEnd)) {\\n    node.attributes.push(this.jsxParseAttribute());\\n  }\\n  node.selfClosing = this.eat(_tokenizerTypes.types.slash);\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXOpeningElement\\");\\n};\\n\\n// Parses JSX closing tag starting after \\"</\\".\\n\\npp.jsxParseClosingElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.name = this.jsxParseElementName();\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXClosingElement\\");\\n};\\n\\n// Parses entire JSX element, including it\\"s opening tag\\n// (starting after \\"<\\"), attributes, contents and closing tag.\\n\\npp.jsxParseElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  var children = [];\\n  var openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\\n  var closingElement = null;\\n\\n  if (!openingElement.selfClosing) {\\n    contents: for (;;) {\\n      switch (this.state.type) {\\n        case _tokenizerTypes.types.jsxTagStart:\\n          startPos = this.state.start;startLoc = this.state.startLoc;\\n          this.next();\\n          if (this.eat(_tokenizerTypes.types.slash)) {\\n            closingElement = this.jsxParseClosingElementAt(startPos, startLoc);\\n            break contents;\\n          }\\n          children.push(this.jsxParseElementAt(startPos, startLoc));\\n          break;\\n\\n        case _tokenizerTypes.types.jsxText:\\n          children.push(this.parseExprAtom());\\n          break;\\n\\n        case _tokenizerTypes.types.braceL:\\n          children.push(this.jsxParseExpressionContainer());\\n          break;\\n\\n        default:\\n          this.unexpected();\\n      }\\n    }\\n\\n    if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\\n      this.raise(closingElement.start, \\"Expected corresponding JSX closing tag for <\\" + getQualifiedJSXName(openingElement.name) + \\">\\");\\n    }\\n  }\\n\\n  node.openingElement = openingElement;\\n  node.closingElement = closingElement;\\n  node.children = children;\\n  if (this.match(_tokenizerTypes.types.relational) && this.state.value === \\"<\\") {\\n    this.raise(this.state.start, \\"Adjacent JSX elements must be wrapped in an enclosing tag\\");\\n  }\\n  return this.finishNode(node, \\"JSXElement\\");\\n};\\n\\n// Parses entire JSX element from current position.\\n\\npp.jsxParseElement = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  this.next();\\n  return this.jsxParseElementAt(startPos, startLoc);\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  instance.extend(\\"parseExprAtom\\", function (inner) {\\n    return function (refShortHandDefaultPos) {\\n      if (this.match(_tokenizerTypes.types.jsxText)) {\\n        var node = this.parseLiteral(this.state.value, \\"JSXText\\");\\n        // https://github.com/babel/babel/issues/2078\\n        node.extra = null;\\n        return node;\\n      } else if (this.match(_tokenizerTypes.types.jsxTagStart)) {\\n        return this.jsxParseElement();\\n      } else {\\n        return inner.call(this, refShortHandDefaultPos);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      var context = this.curContext();\\n\\n      if (context === _tokenizerContext.types.j_expr) {\\n        return this.jsxReadToken();\\n      }\\n\\n      if (context === _tokenizerContext.types.j_oTag || context === _tokenizerContext.types.j_cTag) {\\n        if (_utilIdentifier.isIdentifierStart(code)) {\\n          return this.jsxReadWord();\\n        }\\n\\n        if (code === 62) {\\n          ++this.state.pos;\\n          return this.finishToken(_tokenizerTypes.types.jsxTagEnd);\\n        }\\n\\n        if ((code === 34 || code === 39) && context === _tokenizerContext.types.j_oTag) {\\n          return this.jsxReadString(code);\\n        }\\n      }\\n\\n      if (code === 60 && this.state.exprAllowed) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n      }\\n\\n      return inner.call(this, code);\\n    };\\n  });\\n\\n  instance.extend(\\"updateContext\\", function (inner) {\\n    return function (prevType) {\\n      if (this.match(_tokenizerTypes.types.braceL)) {\\n        var curContext = this.curContext();\\n        if (curContext === _tokenizerContext.types.j_oTag) {\\n          this.state.context.push(_tokenizerContext.types.b_expr);\\n        } else if (curContext === _tokenizerContext.types.j_expr) {\\n          this.state.context.push(_tokenizerContext.types.b_tmpl);\\n        } else {\\n          inner.call(this, prevType);\\n        }\\n        this.state.exprAllowed = true;\\n      } else if (this.match(_tokenizerTypes.types.slash) && prevType === _tokenizerTypes.types.jsxTagStart) {\\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\\n        this.state.context.push(_tokenizerContext.types.j_cTag); // reconsider as closing tag context\\n        this.state.exprAllowed = false;\\n      } else {\\n        return inner.call(this, prevType);\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":14,\\"../../tokenizer/types\\":17,\\"../../util/identifier\\":18,\\"../../util/whitespace\\":20,\\"./xhtml\\":13,\\"babel-runtime/helpers/interop-require-default\\":26}],13:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = {\\n  quot: \\"\\\\\\"\\",\\n  amp: \\"&\\",\\n  apos: \\"\'\\",\\n  lt: \\"<\\",\\n  gt: \\">\\",\\n  nbsp: \\"\xa0\\",\\n  iexcl: \\"¡\\",\\n  cent: \\"¢\\",\\n  pound: \\"£\\",\\n  curren: \\"¤\\",\\n  yen: \\"¥\\",\\n  brvbar: \\"¦\\",\\n  sect: \\"§\\",\\n  uml: \\"¨\\",\\n  copy: \\"©\\",\\n  ordf: \\"ª\\",\\n  laquo: \\"«\\",\\n  not: \\"¬\\",\\n  shy: \\"\xad\\",\\n  reg: \\"®\\",\\n  macr: \\"¯\\",\\n  deg: \\"°\\",\\n  plusmn: \\"±\\",\\n  sup2: \\"²\\",\\n  sup3: \\"³\\",\\n  acute: \\"´\\",\\n  micro: \\"µ\\",\\n  para: \\"¶\\",\\n  middot: \\"·\\",\\n  cedil: \\"¸\\",\\n  sup1: \\"¹\\",\\n  ordm: \\"º\\",\\n  raquo: \\"»\\",\\n  frac14: \\"¼\\",\\n  frac12: \\"½\\",\\n  frac34: \\"¾\\",\\n  iquest: \\"¿\\",\\n  Agrave: \\"À\\",\\n  Aacute: \\"Á\\",\\n  Acirc: \\"Â\\",\\n  Atilde: \\"Ã\\",\\n  Auml: \\"Ä\\",\\n  Aring: \\"Å\\",\\n  AElig: \\"Æ\\",\\n  Ccedil: \\"Ç\\",\\n  Egrave: \\"È\\",\\n  Eacute: \\"É\\",\\n  Ecirc: \\"Ê\\",\\n  Euml: \\"Ë\\",\\n  Igrave: \\"Ì\\",\\n  Iacute: \\"Í\\",\\n  Icirc: \\"Î\\",\\n  Iuml: \\"Ï\\",\\n  ETH: \\"Ð\\",\\n  Ntilde: \\"Ñ\\",\\n  Ograve: \\"Ò\\",\\n  Oacute: \\"Ó\\",\\n  Ocirc: \\"Ô\\",\\n  Otilde: \\"Õ\\",\\n  Ouml: \\"Ö\\",\\n  times: \\"×\\",\\n  Oslash: \\"Ø\\",\\n  Ugrave: \\"Ù\\",\\n  Uacute: \\"Ú\\",\\n  Ucirc: \\"Û\\",\\n  Uuml: \\"Ü\\",\\n  Yacute: \\"Ý\\",\\n  THORN: \\"Þ\\",\\n  szlig: \\"ß\\",\\n  agrave: \\"à\\",\\n  aacute: \\"á\\",\\n  acirc: \\"â\\",\\n  atilde: \\"ã\\",\\n  auml: \\"ä\\",\\n  aring: \\"å\\",\\n  aelig: \\"æ\\",\\n  ccedil: \\"ç\\",\\n  egrave: \\"è\\",\\n  eacute: \\"é\\",\\n  ecirc: \\"ê\\",\\n  euml: \\"ë\\",\\n  igrave: \\"ì\\",\\n  iacute: \\"í\\",\\n  icirc: \\"î\\",\\n  iuml: \\"ï\\",\\n  eth: \\"ð\\",\\n  ntilde: \\"ñ\\",\\n  ograve: \\"ò\\",\\n  oacute: \\"ó\\",\\n  ocirc: \\"ô\\",\\n  otilde: \\"õ\\",\\n  ouml: \\"ö\\",\\n  divide: \\"÷\\",\\n  oslash: \\"ø\\",\\n  ugrave: \\"ù\\",\\n  uacute: \\"ú\\",\\n  ucirc: \\"û\\",\\n  uuml: \\"ü\\",\\n  yacute: \\"ý\\",\\n  thorn: \\"þ\\",\\n  yuml: \\"ÿ\\",\\n  OElig: \\"Œ\\",\\n  oelig: \\"œ\\",\\n  Scaron: \\"Š\\",\\n  scaron: \\"š\\",\\n  Yuml: \\"Ÿ\\",\\n  fnof: \\"ƒ\\",\\n  circ: \\"ˆ\\",\\n  tilde: \\"˜\\",\\n  Alpha: \\"Α\\",\\n  Beta: \\"Β\\",\\n  Gamma: \\"Γ\\",\\n  Delta: \\"Δ\\",\\n  Epsilon: \\"Ε\\",\\n  Zeta: \\"Ζ\\",\\n  Eta: \\"Η\\",\\n  Theta: \\"Θ\\",\\n  Iota: \\"Ι\\",\\n  Kappa: \\"Κ\\",\\n  Lambda: \\"Λ\\",\\n  Mu: \\"Μ\\",\\n  Nu: \\"Ν\\",\\n  Xi: \\"Ξ\\",\\n  Omicron: \\"Ο\\",\\n  Pi: \\"Π\\",\\n  Rho: \\"Ρ\\",\\n  Sigma: \\"Σ\\",\\n  Tau: \\"Τ\\",\\n  Upsilon: \\"Υ\\",\\n  Phi: \\"Φ\\",\\n  Chi: \\"Χ\\",\\n  Psi: \\"Ψ\\",\\n  Omega: \\"Ω\\",\\n  alpha: \\"α\\",\\n  beta: \\"β\\",\\n  gamma: \\"γ\\",\\n  delta: \\"δ\\",\\n  epsilon: \\"ε\\",\\n  zeta: \\"ζ\\",\\n  eta: \\"η\\",\\n  theta: \\"θ\\",\\n  iota: \\"ι\\",\\n  kappa: \\"κ\\",\\n  lambda: \\"λ\\",\\n  mu: \\"μ\\",\\n  nu: \\"ν\\",\\n  xi: \\"ξ\\",\\n  omicron: \\"ο\\",\\n  pi: \\"π\\",\\n  rho: \\"ρ\\",\\n  sigmaf: \\"ς\\",\\n  sigma: \\"σ\\",\\n  tau: \\"τ\\",\\n  upsilon: \\"υ\\",\\n  phi: \\"φ\\",\\n  chi: \\"χ\\",\\n  psi: \\"ψ\\",\\n  omega: \\"ω\\",\\n  thetasym: \\"ϑ\\",\\n  upsih: \\"ϒ\\",\\n  piv: \\"ϖ\\",\\n  ensp: \\"\u2002\\",\\n  emsp: \\"\u2003\\",\\n  thinsp: \\"\u2009\\",\\n  zwnj: \\"\u200c\\",\\n  zwj: \\"\u200d\\",\\n  lrm: \\"\u200e\\",\\n  rlm: \\"\u200f\\",\\n  ndash: \\"–\\",\\n  mdash: \\"—\\",\\n  lsquo: \\"‘\\",\\n  rsquo: \\"’\\",\\n  sbquo: \\"‚\\",\\n  ldquo: \\"“\\",\\n  rdquo: \\"”\\",\\n  bdquo: \\"„\\",\\n  dagger: \\"†\\",\\n  Dagger: \\"‡\\",\\n  bull: \\"•\\",\\n  hellip: \\"…\\",\\n  permil: \\"‰\\",\\n  prime: \\"′\\",\\n  Prime: \\"″\\",\\n  lsaquo: \\"‹\\",\\n  rsaquo: \\"›\\",\\n  oline: \\"‾\\",\\n  frasl: \\"⁄\\",\\n  euro: \\"€\\",\\n  image: \\"ℑ\\",\\n  weierp: \\"℘\\",\\n  real: \\"ℜ\\",\\n  trade: \\"™\\",\\n  alefsym: \\"ℵ\\",\\n  larr: \\"←\\",\\n  uarr: \\"↑\\",\\n  rarr: \\"→\\",\\n  darr: \\"↓\\",\\n  harr: \\"↔\\",\\n  crarr: \\"↵\\",\\n  lArr: \\"⇐\\",\\n  uArr: \\"⇑\\",\\n  rArr: \\"⇒\\",\\n  dArr: \\"⇓\\",\\n  hArr: \\"⇔\\",\\n  forall: \\"∀\\",\\n  part: \\"∂\\",\\n  exist: \\"∃\\",\\n  empty: \\"∅\\",\\n  nabla: \\"∇\\",\\n  isin: \\"∈\\",\\n  notin: \\"∉\\",\\n  ni: \\"∋\\",\\n  prod: \\"∏\\",\\n  sum: \\"∑\\",\\n  minus: \\"−\\",\\n  lowast: \\"∗\\",\\n  radic: \\"√\\",\\n  prop: \\"∝\\",\\n  infin: \\"∞\\",\\n  ang: \\"∠\\",\\n  and: \\"∧\\",\\n  or: \\"∨\\",\\n  cap: \\"∩\\",\\n  cup: \\"∪\\",\\n  \\"int\\": \\"∫\\",\\n  there4: \\"∴\\",\\n  sim: \\"∼\\",\\n  cong: \\"≅\\",\\n  asymp: \\"≈\\",\\n  ne: \\"≠\\",\\n  equiv: \\"≡\\",\\n  le: \\"≤\\",\\n  ge: \\"≥\\",\\n  sub: \\"⊂\\",\\n  sup: \\"⊃\\",\\n  nsub: \\"⊄\\",\\n  sube: \\"⊆\\",\\n  supe: \\"⊇\\",\\n  oplus: \\"⊕\\",\\n  otimes: \\"⊗\\",\\n  perp: \\"⊥\\",\\n  sdot: \\"⋅\\",\\n  lceil: \\"⌈\\",\\n  rceil: \\"⌉\\",\\n  lfloor: \\"⌊\\",\\n  rfloor: \\"⌋\\",\\n  lang: \\"〈\\",\\n  rang: \\"〉\\",\\n  loz: \\"◊\\",\\n  spades: \\"♠\\",\\n  clubs: \\"♣\\",\\n  hearts: \\"♥\\",\\n  diams: \\"♦\\"\\n};\\nmodule.exports = exports[\\"default\\"];\\n},{}],14:[function(require,module,exports){\\n/* @flow */\\n\\n// The algorithm used to determine whether a regexp can appear at a\\n// given point in the program is loosely based on sweet.js\' approach.\\n// See https://github.com/mozilla/sweet.js/wiki/design\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar TokContext = function TokContext(token /*: string*/, isExpr /*:: ?: boolean*/, preserveSpace /*:: ?: boolean*/, override /*:: ?: Function*/) {\\n  _classCallCheck(this, TokContext);\\n\\n  this.token = token;\\n  this.isExpr = !!isExpr;\\n  this.preserveSpace = !!preserveSpace;\\n  this.override = override;\\n};\\n\\nexports.TokContext = TokContext;\\nvar types /*: {\\n            [key: string]: TokContext;\\n          }*/ = {\\n  b_stat: new TokContext(\\"{\\", false),\\n  b_expr: new TokContext(\\"{\\", true),\\n  b_tmpl: new TokContext(\\"${\\", true),\\n  p_stat: new TokContext(\\"(\\", false),\\n  p_expr: new TokContext(\\"(\\", true),\\n  q_tmpl: new TokContext(\\"`\\", true, true, function (p) {\\n    return p.readTmplToken();\\n  }),\\n  f_expr: new TokContext(\\"function\\", true)\\n};\\n\\nexports.types = types;\\n// Token-specific context update code\\n\\n_types.types.parenR.updateContext = _types.types.braceR.updateContext = function () {\\n  if (this.state.context.length === 1) {\\n    this.state.exprAllowed = true;\\n    return;\\n  }\\n\\n  var out = this.state.context.pop();\\n  if (out === types.b_stat && this.curContext() === types.f_expr) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = false;\\n  } else if (out === types.b_tmpl) {\\n    this.state.exprAllowed = true;\\n  } else {\\n    this.state.exprAllowed = !out.isExpr;\\n  }\\n};\\n\\n_types.types.name.updateContext = function (prevType) {\\n  this.state.exprAllowed = false;\\n\\n  if (prevType === _types.types._let || prevType === _types.types._const || prevType === _types.types._var) {\\n    if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.end))) {\\n      this.state.exprAllowed = true;\\n    }\\n  }\\n};\\n\\n_types.types.braceL.updateContext = function (prevType) {\\n  this.state.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.dollarBraceL.updateContext = function () {\\n  this.state.context.push(types.b_tmpl);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.parenL.updateContext = function (prevType) {\\n  var statementParens = prevType === _types.types._if || prevType === _types.types._for || prevType === _types.types._with || prevType === _types.types._while;\\n  this.state.context.push(statementParens ? types.p_stat : types.p_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.incDec.updateContext = function () {\\n  // tokExprAllowed stays unchanged\\n};\\n\\n_types.types._function.updateContext = function () {\\n  if (this.curContext() !== types.b_stat) {\\n    this.state.context.push(types.f_expr);\\n  }\\n\\n  this.state.exprAllowed = false;\\n};\\n\\n_types.types.backQuote.updateContext = function () {\\n  if (this.curContext() === types.q_tmpl) {\\n    this.state.context.pop();\\n  } else {\\n    this.state.context.push(types.q_tmpl);\\n  }\\n  this.state.exprAllowed = false;\\n};\\n},{\\"../util/whitespace\\":20,\\"./types\\":17,\\"babel-runtime/helpers/class-call-check\\":24}],15:[function(require,module,exports){\\n/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar _state = require(\\"./state\\");\\n\\nvar _state2 = _interopRequireDefault(_state);\\n\\n// Object type used to represent tokens. Note that normally, tokens\\n// simply exist as properties on the parser object. This is only\\n// used for the onToken callback and the external tokenizer.\\n\\n/*:: import type { TokenType } from \\"./types\\";*/\\nvar Token = function Token(state) {\\n  _classCallCheck(this, Token);\\n\\n  this.type = state.type;\\n  this.value = state.value;\\n  this.start = state.start;\\n  this.end = state.end;\\n  this.loc = new _utilLocation.SourceLocation(state.startLoc, state.endLoc);\\n}\\n\\n// ## Tokenizer\\n\\n;\\n\\nexports.Token = Token;\\nfunction codePointToString(code) {\\n  // UTF-16 Decoding\\n  if (code <= 0xFFFF) {\\n    return String.fromCharCode(code);\\n  } else {\\n    return String.fromCharCode((code - 0x10000 >> 10) + 0xD800, (code - 0x10000 & 1023) + 0xDC00);\\n  }\\n}\\n\\nvar Tokenizer = (function () {\\n  function Tokenizer(options, input) {\\n    _classCallCheck(this, Tokenizer);\\n\\n    this.state = new _state2[\\"default\\"]();\\n    this.state.init(options, input);\\n  }\\n\\n  // Move to the next token\\n\\n  Tokenizer.prototype.next = function next() {\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(new Token(this.state));\\n    }\\n\\n    this.state.lastTokEnd = this.state.end;\\n    this.state.lastTokStart = this.state.start;\\n    this.state.lastTokEndLoc = this.state.endLoc;\\n    this.state.lastTokStartLoc = this.state.startLoc;\\n    this.nextToken();\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.eat = function eat(type) {\\n    if (this.match(type)) {\\n      this.next();\\n      return true;\\n    } else {\\n      return false;\\n    }\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.match = function match(type) {\\n    return this.state.type === type;\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.isKeyword = function isKeyword(word) {\\n    return _utilIdentifier.isKeyword(word);\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.lookahead = function lookahead() {\\n    var old = this.state;\\n    this.state = old.clone(true);\\n\\n    this.isLookahead = true;\\n    this.next();\\n    this.isLookahead = false;\\n\\n    var curr = this.state.clone(true);\\n    this.state = old;\\n    return curr;\\n  };\\n\\n  // Toggle strict mode. Re-reads the next number or string to please\\n  // pedantic tests (`\\"use strict\\"; 010;` should fail).\\n\\n  Tokenizer.prototype.setStrict = function setStrict(strict) {\\n    this.state.strict = strict;\\n    if (!this.match(_types.types.num) && !this.match(_types.types.string)) return;\\n    this.state.pos = this.state.start;\\n    while (this.state.pos < this.state.lineStart) {\\n      this.state.lineStart = this.input.lastIndexOf(\\"\\\\n\\", this.state.lineStart - 2) + 1;\\n      --this.state.curLine;\\n    }\\n    this.nextToken();\\n  };\\n\\n  Tokenizer.prototype.curContext = function curContext() {\\n    return this.state.context[this.state.context.length - 1];\\n  };\\n\\n  // Read a single token, updating the parser object\'s token-related\\n  // properties.\\n\\n  Tokenizer.prototype.nextToken = function nextToken() {\\n    var curContext = this.curContext();\\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\\n\\n    this.state.containsOctal = false;\\n    this.state.octalPosition = null;\\n    this.state.start = this.state.pos;\\n    this.state.startLoc = this.state.curPosition();\\n    if (this.state.pos >= this.input.length) return this.finishToken(_types.types.eof);\\n\\n    if (curContext.override) {\\n      return curContext.override(this);\\n    } else {\\n      return this.readToken(this.fullCharCodeAtPos());\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken = function readToken(code) {\\n    // Identifier or keyword. \'\\\\uXXXX\' sequences are allowed in\\n    // identifiers, so \'\\\\\' also dispatches to that.\\n    if (_utilIdentifier.isIdentifierStart(code) || code === 92 /* \'\\\\\' */) {\\n        return this.readWord();\\n      } else {\\n      return this.getTokenFromCode(code);\\n    }\\n  };\\n\\n  Tokenizer.prototype.fullCharCodeAtPos = function fullCharCodeAtPos() {\\n    var code = this.input.charCodeAt(this.state.pos);\\n    if (code <= 0xd7ff || code >= 0xe000) return code;\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    return (code << 10) + next - 0x35fdc00;\\n  };\\n\\n  Tokenizer.prototype.pushComment = function pushComment(block, text, start, end, startLoc, endLoc) {\\n    var comment = {\\n      type: block ? \\"CommentBlock\\" : \\"CommentLine\\",\\n      value: text,\\n      start: start,\\n      end: end,\\n      loc: new _utilLocation.SourceLocation(startLoc, endLoc)\\n    };\\n\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(comment);\\n      this.state.comments.push(comment);\\n    }\\n\\n    this.addComment(comment);\\n  };\\n\\n  Tokenizer.prototype.skipBlockComment = function skipBlockComment() {\\n    var startLoc = this.state.curPosition();\\n    var start = this.state.pos,\\n        end = this.input.indexOf(\\"*/\\", this.state.pos += 2);\\n    if (end === -1) this.raise(this.state.pos - 2, \\"Unterminated comment\\");\\n\\n    this.state.pos = end + 2;\\n    _utilWhitespace.lineBreakG.lastIndex = start;\\n    var match = undefined;\\n    while ((match = _utilWhitespace.lineBreakG.exec(this.input)) && match.index < this.state.pos) {\\n      ++this.state.curLine;\\n      this.state.lineStart = match.index + match[0].length;\\n    }\\n\\n    this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  Tokenizer.prototype.skipLineComment = function skipLineComment(startSkip) {\\n    var start = this.state.pos;\\n    var startLoc = this.state.curPosition();\\n    var ch = this.input.charCodeAt(this.state.pos += startSkip);\\n    while (this.state.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {\\n      ++this.state.pos;\\n      ch = this.input.charCodeAt(this.state.pos);\\n    }\\n\\n    this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  // Called at the start of the parse and after every token. Skips\\n  // whitespace and comments, and.\\n\\n  Tokenizer.prototype.skipSpace = function skipSpace() {\\n    loop: while (this.state.pos < this.input.length) {\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      switch (ch) {\\n        case 32:case 160:\\n          // \' \'\\n          ++this.state.pos;\\n          break;\\n\\n        case 13:\\n          if (this.input.charCodeAt(this.state.pos + 1) === 10) {\\n            ++this.state.pos;\\n          }\\n\\n        case 10:case 8232:case 8233:\\n          ++this.state.pos;\\n          ++this.state.curLine;\\n          this.state.lineStart = this.state.pos;\\n          break;\\n\\n        case 47:\\n          // \'/\'\\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\\n            case 42:\\n              // \'*\'\\n              this.skipBlockComment();\\n              break;\\n\\n            case 47:\\n              this.skipLineComment(2);\\n              break;\\n\\n            default:\\n              break loop;\\n          }\\n          break;\\n\\n        default:\\n          if (ch > 8 && ch < 14 || ch >= 5760 && _utilWhitespace.nonASCIIwhitespace.test(String.fromCharCode(ch))) {\\n            ++this.state.pos;\\n          } else {\\n            break loop;\\n          }\\n      }\\n    }\\n  };\\n\\n  // Called at the end of every token. Sets `end`, `val`, and\\n  // maintains `context` and `exprAllowed`, and skips the space after\\n  // the token, so that the next one\'s `start` will point at the\\n  // right position.\\n\\n  Tokenizer.prototype.finishToken = function finishToken(type, val) {\\n    this.state.end = this.state.pos;\\n    this.state.endLoc = this.state.curPosition();\\n    var prevType = this.state.type;\\n    this.state.type = type;\\n    this.state.value = val;\\n\\n    this.updateContext(prevType);\\n  };\\n\\n  // ### Token reading\\n\\n  // This is the function that is called to fetch the next token. It\\n  // is somewhat obscure, because it works in character codes rather\\n  // than characters, and because operator parsing has been inlined\\n  // into it.\\n  //\\n  // All in the name of speed.\\n  //\\n\\n  Tokenizer.prototype.readToken_dot = function readToken_dot() {\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next >= 48 && next <= 57) {\\n      return this.readNumber(true);\\n    }\\n\\n    var next2 = this.input.charCodeAt(this.state.pos + 2);\\n    if (next === 46 && next2 === 46) {\\n      // 46 = dot \'.\'\\n      this.state.pos += 3;\\n      return this.finishToken(_types.types.ellipsis);\\n    } else {\\n      ++this.state.pos;\\n      return this.finishToken(_types.types.dot);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_slash = function readToken_slash() {\\n    // \'/\'\\n    if (this.state.exprAllowed) {\\n      ++this.state.pos;\\n      return this.readRegexp();\\n    }\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.slash, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_mult_modulo = function readToken_mult_modulo(code) {\\n    // \'%*\'\\n    var type = code === 42 ? _types.types.star : _types.types.modulo;\\n    var width = 1;\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === 42 && this.hasPlugin(\\"exponentiationOperator\\")) {\\n      // \'*\'\\n      width++;\\n      next = this.input.charCodeAt(this.state.pos + 2);\\n      type = _types.types.exponent;\\n    }\\n\\n    if (next === 61) {\\n      width++;\\n      type = _types.types.assign;\\n    }\\n\\n    return this.finishOp(type, width);\\n  };\\n\\n  Tokenizer.prototype.readToken_pipe_amp = function readToken_pipe_amp(code) {\\n    // \'|&\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === code) return this.finishOp(code === 124 ? _types.types.logicalOR : _types.types.logicalAND, 2);\\n    if (next === 61) return this.finishOp(_types.types.assign, 2);\\n    return this.finishOp(code === 124 ? _types.types.bitwiseOR : _types.types.bitwiseAND, 1);\\n  };\\n\\n  Tokenizer.prototype.readToken_caret = function readToken_caret() {\\n    // \'^\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.bitwiseXOR, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_plus_min = function readToken_plus_min(code) {\\n    // \'+-\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === code) {\\n      if (next === 45 && this.input.charCodeAt(this.state.pos + 2) === 62 && _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.pos))) {\\n        // A `-->` line comment\\n        this.skipLineComment(3);\\n        this.skipSpace();\\n        return this.nextToken();\\n      }\\n      return this.finishOp(_types.types.incDec, 2);\\n    }\\n\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.plusMin, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_lt_gt = function readToken_lt_gt(code) {\\n    // \'<>\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    var size = 1;\\n\\n    if (next === code) {\\n      size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2;\\n      if (this.input.charCodeAt(this.state.pos + size) === 61) return this.finishOp(_types.types.assign, size + 1);\\n      return this.finishOp(_types.types.bitShift, size);\\n    }\\n\\n    if (next === 33 && code === 60 && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) {\\n      if (this.inModule) this.unexpected();\\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\\n      this.skipLineComment(4);\\n      this.skipSpace();\\n      return this.nextToken();\\n    }\\n\\n    if (next === 61) {\\n      size = this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2;\\n    }\\n\\n    return this.finishOp(_types.types.relational, size);\\n  };\\n\\n  Tokenizer.prototype.readToken_eq_excl = function readToken_eq_excl(code) {\\n    // \'=!\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) return this.finishOp(_types.types.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);\\n    if (code === 61 && next === 62) {\\n      // \'=>\'\\n      this.state.pos += 2;\\n      return this.finishToken(_types.types.arrow);\\n    }\\n    return this.finishOp(code === 61 ? _types.types.eq : _types.types.prefix, 1);\\n  };\\n\\n  Tokenizer.prototype.getTokenFromCode = function getTokenFromCode(code) {\\n    switch (code) {\\n      // The interpretation of a dot depends on whether it is followed\\n      // by a digit or another two dots.\\n      case 46:\\n        // \'.\'\\n        return this.readToken_dot();\\n\\n      // Punctuation tokens.\\n      case 40:\\n        ++this.state.pos;return this.finishToken(_types.types.parenL);\\n      case 41:\\n        ++this.state.pos;return this.finishToken(_types.types.parenR);\\n      case 59:\\n        ++this.state.pos;return this.finishToken(_types.types.semi);\\n      case 44:\\n        ++this.state.pos;return this.finishToken(_types.types.comma);\\n      case 91:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketL);\\n      case 93:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketR);\\n      case 123:\\n        ++this.state.pos;return this.finishToken(_types.types.braceL);\\n      case 125:\\n        ++this.state.pos;return this.finishToken(_types.types.braceR);\\n\\n      case 58:\\n        if (this.hasPlugin(\\"functionBind\\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\\n          return this.finishOp(_types.types.doubleColon, 2);\\n        } else {\\n          ++this.state.pos;\\n          return this.finishToken(_types.types.colon);\\n        }\\n\\n      case 63:\\n        ++this.state.pos;return this.finishToken(_types.types.question);\\n      case 64:\\n        ++this.state.pos;return this.finishToken(_types.types.at);\\n\\n      case 96:\\n        // \'`\'\\n        ++this.state.pos;\\n        return this.finishToken(_types.types.backQuote);\\n\\n      case 48:\\n        // \'0\'\\n        var next = this.input.charCodeAt(this.state.pos + 1);\\n        if (next === 120 || next === 88) return this.readRadixNumber(16); // \'0x\', \'0X\' - hex number\\n        if (next === 111 || next === 79) return this.readRadixNumber(8); // \'0o\', \'0O\' - octal number\\n        if (next === 98 || next === 66) return this.readRadixNumber(2); // \'0b\', \'0B\' - binary number\\n      // Anything else beginning with a digit is an integer, octal\\n      // number, or float.\\n      case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:\\n        // 1-9\\n        return this.readNumber(false);\\n\\n      // Quotes produce strings.\\n      case 34:case 39:\\n        // \'\\"\', \\"\'\\"\\n        return this.readString(code);\\n\\n      // Operators are parsed inline in tiny state machines. \'=\' (61) is\\n      // often referred to. `finishOp` simply skips the amount of\\n      // characters it is given as second argument, and returns a token\\n      // of the type given by its first argument.\\n\\n      case 47:\\n        // \'/\'\\n        return this.readToken_slash();\\n\\n      case 37:case 42:\\n        // \'%*\'\\n        return this.readToken_mult_modulo(code);\\n\\n      case 124:case 38:\\n        // \'|&\'\\n        return this.readToken_pipe_amp(code);\\n\\n      case 94:\\n        // \'^\'\\n        return this.readToken_caret();\\n\\n      case 43:case 45:\\n        // \'+-\'\\n        return this.readToken_plus_min(code);\\n\\n      case 60:case 62:\\n        // \'<>\'\\n        return this.readToken_lt_gt(code);\\n\\n      case 61:case 33:\\n        // \'=!\'\\n        return this.readToken_eq_excl(code);\\n\\n      case 126:\\n        // \'~\'\\n        return this.finishOp(_types.types.prefix, 1);\\n    }\\n\\n    this.raise(this.state.pos, \\"Unexpected character \'\\" + codePointToString(code) + \\"\'\\");\\n  };\\n\\n  Tokenizer.prototype.finishOp = function finishOp(type, size) {\\n    var str = this.input.slice(this.state.pos, this.state.pos + size);\\n    this.state.pos += size;\\n    return this.finishToken(type, str);\\n  };\\n\\n  Tokenizer.prototype.readRegexp = function readRegexp() {\\n    var escaped = undefined,\\n        inClass = undefined,\\n        start = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(start, \\"Unterminated regular expression\\");\\n      var ch = this.input.charAt(this.state.pos);\\n      if (_utilWhitespace.lineBreak.test(ch)) {\\n        this.raise(start, \\"Unterminated regular expression\\");\\n      }\\n      if (escaped) {\\n        escaped = false;\\n      } else {\\n        if (ch === \\"[\\") {\\n          inClass = true;\\n        } else if (ch === \\"]\\" && inClass) {\\n          inClass = false;\\n        } else if (ch === \\"/\\" && !inClass) {\\n          break;\\n        }\\n        escaped = ch === \\"\\\\\\\\\\";\\n      }\\n      ++this.state.pos;\\n    }\\n    var content = this.input.slice(start, this.state.pos);\\n    ++this.state.pos;\\n    // Need to use `readWord1` because \'\\\\uXXXX\' sequences are allowed\\n    // here (don\'t ask).\\n    var mods = this.readWord1();\\n    if (mods) {\\n      var validFlags = /^[gmsiyu]*$/;\\n      if (!validFlags.test(mods)) this.raise(start, \\"Invalid regular expression flag\\");\\n    }\\n    return this.finishToken(_types.types.regexp, {\\n      pattern: content,\\n      flags: mods\\n    });\\n  };\\n\\n  // Read an integer in the given radix. Return null if zero digits\\n  // were read, the integer value otherwise. When `len` is given, this\\n  // will return `null` unless the integer has exactly `len` digits.\\n\\n  Tokenizer.prototype.readInt = function readInt(radix, len) {\\n    var start = this.state.pos,\\n        total = 0;\\n    for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {\\n      var code = this.input.charCodeAt(this.state.pos),\\n          val = undefined;\\n      if (code >= 97) {\\n        val = code - 97 + 10; // a\\n      } else if (code >= 65) {\\n          val = code - 65 + 10; // A\\n        } else if (code >= 48 && code <= 57) {\\n            val = code - 48; // 0-9\\n          } else {\\n              val = Infinity;\\n            }\\n      if (val >= radix) break;\\n      ++this.state.pos;\\n      total = total * radix + val;\\n    }\\n    if (this.state.pos === start || len != null && this.state.pos - start !== len) return null;\\n\\n    return total;\\n  };\\n\\n  Tokenizer.prototype.readRadixNumber = function readRadixNumber(radix) {\\n    this.state.pos += 2; // 0x\\n    var val = this.readInt(radix);\\n    if (val == null) this.raise(this.state.start + 2, \\"Expected number in radix \\" + radix);\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read an integer, octal integer, or floating-point number.\\n\\n  Tokenizer.prototype.readNumber = function readNumber(startsWithDot) {\\n    var start = this.state.pos,\\n        isFloat = false,\\n        octal = this.input.charCodeAt(this.state.pos) === 48;\\n    if (!startsWithDot && this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n    var next = this.input.charCodeAt(this.state.pos);\\n    if (next === 46) {\\n      // \'.\'\\n      ++this.state.pos;\\n      this.readInt(10);\\n      isFloat = true;\\n      next = this.input.charCodeAt(this.state.pos);\\n    }\\n    if (next === 69 || next === 101) {\\n      // \'eE\'\\n      next = this.input.charCodeAt(++this.state.pos);\\n      if (next === 43 || next === 45) ++this.state.pos; // \'+-\'\\n      if (this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n      isFloat = true;\\n    }\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n\\n    var str = this.input.slice(start, this.state.pos),\\n        val = undefined;\\n    if (isFloat) {\\n      val = parseFloat(str);\\n    } else if (!octal || str.length === 1) {\\n      val = parseInt(str, 10);\\n    } else if (/[89]/.test(str) || this.state.strict) {\\n      this.raise(start, \\"Invalid number\\");\\n    } else {\\n      val = parseInt(str, 8);\\n    }\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read a string value, interpreting backslash-escapes.\\n\\n  Tokenizer.prototype.readCodePoint = function readCodePoint() {\\n    var ch = this.input.charCodeAt(this.state.pos),\\n        code = undefined;\\n\\n    if (ch === 123) {\\n      var codePos = ++this.state.pos;\\n      code = this.readHexChar(this.input.indexOf(\\"}\\", this.state.pos) - this.state.pos);\\n      ++this.state.pos;\\n      if (code > 0x10FFFF) this.raise(codePos, \\"Code point out of bounds\\");\\n    } else {\\n      code = this.readHexChar(4);\\n    }\\n    return code;\\n  };\\n\\n  Tokenizer.prototype.readString = function readString(quote) {\\n    var out = \\"\\",\\n        chunkStart = ++this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated string constant\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === quote) break;\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(false);\\n        chunkStart = this.state.pos;\\n      } else {\\n        if (_utilWhitespace.isNewLine(ch)) this.raise(this.state.start, \\"Unterminated string constant\\");\\n        ++this.state.pos;\\n      }\\n    }\\n    out += this.input.slice(chunkStart, this.state.pos++);\\n    return this.finishToken(_types.types.string, out);\\n  };\\n\\n  // Reads template string tokens.\\n\\n  Tokenizer.prototype.readTmplToken = function readTmplToken() {\\n    var out = \\"\\",\\n        chunkStart = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated template\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) {\\n        // \'`\', \'${\'\\n        if (this.state.pos === this.state.start && this.match(_types.types.template)) {\\n          if (ch === 36) {\\n            this.state.pos += 2;\\n            return this.finishToken(_types.types.dollarBraceL);\\n          } else {\\n            ++this.state.pos;\\n            return this.finishToken(_types.types.backQuote);\\n          }\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_types.types.template, out);\\n      }\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(true);\\n        chunkStart = this.state.pos;\\n      } else if (_utilWhitespace.isNewLine(ch)) {\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        ++this.state.pos;\\n        switch (ch) {\\n          case 13:\\n            if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos;\\n          case 10:\\n            out += \\"\\\\n\\";\\n            break;\\n          default:\\n            out += String.fromCharCode(ch);\\n            break;\\n        }\\n        ++this.state.curLine;\\n        this.state.lineStart = this.state.pos;\\n        chunkStart = this.state.pos;\\n      } else {\\n        ++this.state.pos;\\n      }\\n    }\\n  };\\n\\n  // Used to read escaped characters\\n\\n  Tokenizer.prototype.readEscapedChar = function readEscapedChar(inTemplate) {\\n    var ch = this.input.charCodeAt(++this.state.pos);\\n    ++this.state.pos;\\n    switch (ch) {\\n      case 110:\\n        return \\"\\\\n\\"; // \'n\' -> \'\\\\n\'\\n      case 114:\\n        return \\"\\\\r\\"; // \'r\' -> \'\\\\r\'\\n      case 120:\\n        return String.fromCharCode(this.readHexChar(2)); // \'x\'\\n      case 117:\\n        return codePointToString(this.readCodePoint()); // \'u\'\\n      case 116:\\n        return \\"\\\\t\\"; // \'t\' -> \'\\\\t\'\\n      case 98:\\n        return \\"\\\\b\\"; // \'b\' -> \'\\\\b\'\\n      case 118:\\n        return \\"\\\\u000b\\"; // \'v\' -> \'\\\\u000b\'\\n      case 102:\\n        return \\"\\\\f\\"; // \'f\' -> \'\\\\f\'\\n      case 13:\\n        if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos; // \'\\\\r\\\\n\'\\n      case 10:\\n        // \' \\\\n\'\\n        this.state.lineStart = this.state.pos;\\n        ++this.state.curLine;\\n        return \\"\\";\\n      default:\\n        if (ch >= 48 && ch <= 55) {\\n          var octalStr = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/)[0];\\n          var octal = parseInt(octalStr, 8);\\n          if (octal > 255) {\\n            octalStr = octalStr.slice(0, -1);\\n            octal = parseInt(octalStr, 8);\\n          }\\n          if (octal > 0) {\\n            if (!this.state.containsOctal) {\\n              this.state.containsOctal = true;\\n              this.state.octalPosition = this.state.pos - 2;\\n            }\\n            if (this.state.strict || inTemplate) {\\n              this.raise(this.state.pos - 2, \\"Octal literal in strict mode\\");\\n            }\\n          }\\n          this.state.pos += octalStr.length - 1;\\n          return String.fromCharCode(octal);\\n        }\\n        return String.fromCharCode(ch);\\n    }\\n  };\\n\\n  // Used to read character escape sequences (\'\\\\x\', \'\\\\u\', \'\\\\U\').\\n\\n  Tokenizer.prototype.readHexChar = function readHexChar(len) {\\n    var codePos = this.state.pos;\\n    var n = this.readInt(16, len);\\n    if (n === null) this.raise(codePos, \\"Bad character escape sequence\\");\\n    return n;\\n  };\\n\\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\\n  // to whether the word contained a \'\\\\u\' escape.\\n  //\\n  // Incrementally adds only escaped chars, adding other chunks as-is\\n  // as a micro-optimization.\\n\\n  Tokenizer.prototype.readWord1 = function readWord1() {\\n    this.state.containsEsc = false;\\n    var word = \\"\\",\\n        first = true,\\n        chunkStart = this.state.pos;\\n    while (this.state.pos < this.input.length) {\\n      var ch = this.fullCharCodeAtPos();\\n      if (_utilIdentifier.isIdentifierChar(ch)) {\\n        this.state.pos += ch <= 0xffff ? 1 : 2;\\n      } else if (ch === 92) {\\n        // \\"\\\\\\"\\n        this.state.containsEsc = true;\\n\\n        word += this.input.slice(chunkStart, this.state.pos);\\n        var escStart = this.state.pos;\\n\\n        if (this.input.charCodeAt(++this.state.pos) !== 117) {\\n          // \\"u\\"\\n          this.raise(this.state.pos, \\"Expecting Unicode escape sequence \\\\\\\\uXXXX\\");\\n        }\\n\\n        ++this.state.pos;\\n        var esc = this.readCodePoint();\\n        if (!(first ? _utilIdentifier.isIdentifierStart : _utilIdentifier.isIdentifierChar)(esc, true)) {\\n          this.raise(escStart, \\"Invalid Unicode escape\\");\\n        }\\n\\n        word += codePointToString(esc);\\n        chunkStart = this.state.pos;\\n      } else {\\n        break;\\n      }\\n      first = false;\\n    }\\n    return word + this.input.slice(chunkStart, this.state.pos);\\n  };\\n\\n  // Read an identifier or keyword token. Will check for reserved\\n  // words when necessary.\\n\\n  Tokenizer.prototype.readWord = function readWord() {\\n    var word = this.readWord1();\\n    var type = _types.types.name;\\n    if (!this.state.containsEsc && this.isKeyword(word)) {\\n      type = _types.keywords[word];\\n    }\\n    return this.finishToken(type, word);\\n  };\\n\\n  Tokenizer.prototype.braceIsBlock = function braceIsBlock(prevType) {\\n    if (prevType === _types.types.colon) {\\n      var _parent = this.curContext();\\n      if (_parent === _context.types.b_stat || _parent === _context.types.b_expr) {\\n        return !_parent.isExpr;\\n      }\\n    }\\n\\n    if (prevType === _types.types._return) {\\n      return _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n    }\\n\\n    if (prevType === _types.types._else || prevType === _types.types.semi || prevType === _types.types.eof || prevType === _types.types.parenR) {\\n      return true;\\n    }\\n\\n    if (prevType === _types.types.braceL) {\\n      return this.curContext() === _context.types.b_stat;\\n    }\\n\\n    return !this.state.exprAllowed;\\n  };\\n\\n  Tokenizer.prototype.updateContext = function updateContext(prevType) {\\n    var update = undefined,\\n        type = this.state.type;\\n    if (type.keyword && prevType === _types.types.dot) {\\n      this.state.exprAllowed = false;\\n    } else if (update = type.updateContext) {\\n      update.call(this, prevType);\\n    } else {\\n      this.state.exprAllowed = type.beforeExpr;\\n    }\\n  };\\n\\n  return Tokenizer;\\n})();\\n\\nexports[\\"default\\"] = Tokenizer;\\n},{\\"../util/identifier\\":18,\\"../util/location\\":19,\\"../util/whitespace\\":20,\\"./context\\":14,\\"./state\\":16,\\"./types\\":17,\\"babel-runtime/helpers/class-call-check\\":24,\\"babel-runtime/helpers/interop-require-default\\":26}],16:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _types = require(\\"./types\\");\\n\\n/*:: import type { TokContext } from \\"./context\\";*/\\n/*:: import type { Token } from \\"./index\\";*/\\nvar State = (function () {\\n  function State() {\\n    _classCallCheck(this, State);\\n  }\\n\\n  State.prototype.init = function init(options /*: Object*/, input /*: string*/) {\\n    this.strict = options.strictMode === false ? false : options.sourceType === \\"module\\";\\n\\n    this.input = input;\\n\\n    this.potentialArrowAt = -1;\\n\\n    this.inMethod = this.inFunction = this.inGenerator = this.inAsync = false;\\n\\n    this.labels = [];\\n\\n    this.decorators = [];\\n\\n    this.tokens = [];\\n\\n    this.comments = [];\\n\\n    this.trailingComments = [];\\n    this.leadingComments = [];\\n    this.commentStack = [];\\n\\n    this.pos = this.lineStart = 0;\\n    this.curLine = 1;\\n\\n    this.type = _types.types.eof;\\n    this.value = null;\\n    this.start = this.end = this.pos;\\n    this.startLoc = this.endLoc = this.curPosition();\\n\\n    this.lastTokEndLoc = this.lastTokStartLoc = null;\\n    this.lastTokStart = this.lastTokEnd = this.pos;\\n\\n    this.context = [_context.types.b_stat];\\n    this.exprAllowed = true;\\n\\n    this.containsEsc = this.containsOctal = false;\\n    this.octalPosition = null;\\n\\n    return this;\\n  };\\n\\n  // TODO\\n\\n  State.prototype.curPosition = function curPosition() {\\n    return new _utilLocation.Position(this.curLine, this.pos - this.lineStart);\\n  };\\n\\n  State.prototype.clone = function clone(skipArrays /*:: ?*/) {\\n    var state = new State();\\n    for (var key in this) {\\n      var val = this[key];\\n\\n      if ((!skipArrays || key === \\"context\\") && Array.isArray(val)) {\\n        val = val.slice();\\n      }\\n\\n      state[key] = val;\\n    }\\n    return state;\\n  };\\n\\n  return State;\\n})();\\n\\nexports[\\"default\\"] = State;\\nmodule.exports = exports[\\"default\\"];\\n\\n// TODO\\n\\n// Used to signify the start of a potential arrow function\\n\\n// Flags to track whether we are in a function, a generator.\\n\\n// Labels in scope.\\n\\n// Leading decorators.\\n\\n// Token store.\\n\\n// Comment store.\\n\\n// Comment attachment store\\n\\n// The current position of the tokenizer in the input.\\n\\n// Properties of the current token:\\n// Its type\\n\\n// For tokens that include more information than their type, the value\\n\\n// Its start and end offset\\n\\n// And, if locations are used, the {line, column} object\\n// corresponding to those offsets\\n\\n// Position information for the previous token\\n\\n// The context stack is used to superficially track syntactic\\n// context to predict whether a regular expression is allowed in a\\n// given position.\\n\\n// Used to signal to callers of `readWord1` whether the word\\n// contained any escape sequences. This is needed because words with\\n// escape sequences must not be interpreted as keywords.\\n\\n// TODO\\n},{\\"../util/location\\":19,\\"./context\\":14,\\"./types\\":17,\\"babel-runtime/helpers/class-call-check\\":24}],17:[function(require,module,exports){\\n// ## Token types\\n\\n// The assignment of fine-grained, information-carrying type objects\\n// allows the tokenizer to store the information it has about a\\n// token in a way that is very cheap for the parser to look up.\\n\\n// All token type variables start with an underscore, to make them\\n// easy to recognize.\\n\\n// The `beforeExpr` property is used to disambiguate between regular\\n// expressions and divisions. It is set on all token types that can\\n// be followed by an expression (thus, a slash after them would be a\\n// regular expression).\\n//\\n// `isLoop` marks a keyword as starting a loop, which is important\\n// to know when parsing a label, in order to allow or disallow\\n// continue jumps to that label.\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar TokenType = function TokenType(label) {\\n  var conf = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  _classCallCheck(this, TokenType);\\n\\n  this.label = label;\\n  this.keyword = conf.keyword;\\n  this.beforeExpr = !!conf.beforeExpr;\\n  this.startsExpr = !!conf.startsExpr;\\n  this.rightAssociative = !!conf.rightAssociative;\\n  this.isLoop = !!conf.isLoop;\\n  this.isAssign = !!conf.isAssign;\\n  this.prefix = !!conf.prefix;\\n  this.postfix = !!conf.postfix;\\n  this.binop = conf.binop || null;\\n  this.updateContext = null;\\n};\\n\\nexports.TokenType = TokenType;\\n\\nfunction binop(name, prec) {\\n  return new TokenType(name, { beforeExpr: true, binop: prec });\\n}\\nvar beforeExpr = { beforeExpr: true },\\n    startsExpr = { startsExpr: true };\\n\\nvar types = {\\n  num: new TokenType(\\"num\\", startsExpr),\\n  regexp: new TokenType(\\"regexp\\", startsExpr),\\n  string: new TokenType(\\"string\\", startsExpr),\\n  name: new TokenType(\\"name\\", startsExpr),\\n  eof: new TokenType(\\"eof\\"),\\n\\n  // Punctuation token types.\\n  bracketL: new TokenType(\\"[\\", { beforeExpr: true, startsExpr: true }),\\n  bracketR: new TokenType(\\"]\\"),\\n  braceL: new TokenType(\\"{\\", { beforeExpr: true, startsExpr: true }),\\n  braceR: new TokenType(\\"}\\"),\\n  parenL: new TokenType(\\"(\\", { beforeExpr: true, startsExpr: true }),\\n  parenR: new TokenType(\\")\\"),\\n  comma: new TokenType(\\",\\", beforeExpr),\\n  semi: new TokenType(\\";\\", beforeExpr),\\n  colon: new TokenType(\\":\\", beforeExpr),\\n  doubleColon: new TokenType(\\"::\\", beforeExpr),\\n  dot: new TokenType(\\".\\"),\\n  question: new TokenType(\\"?\\", beforeExpr),\\n  arrow: new TokenType(\\"=>\\", beforeExpr),\\n  template: new TokenType(\\"template\\"),\\n  ellipsis: new TokenType(\\"...\\", beforeExpr),\\n  backQuote: new TokenType(\\"`\\", startsExpr),\\n  dollarBraceL: new TokenType(\\"${\\", { beforeExpr: true, startsExpr: true }),\\n  at: new TokenType(\\"@\\"),\\n\\n  // Operators. These carry several kinds of properties to help the\\n  // parser use them properly (the presence of these properties is\\n  // what categorizes them as operators).\\n  //\\n  // `binop`, when present, specifies that this operator is a binary\\n  // operator, and will refer to its precedence.\\n  //\\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\\n  // unary operator.\\n  //\\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\\n  // binary operators with a very low precedence, that should result\\n  // in AssignmentExpression nodes.\\n\\n  eq: new TokenType(\\"=\\", { beforeExpr: true, isAssign: true }),\\n  assign: new TokenType(\\"_=\\", { beforeExpr: true, isAssign: true }),\\n  incDec: new TokenType(\\"++/--\\", { prefix: true, postfix: true, startsExpr: true }),\\n  prefix: new TokenType(\\"prefix\\", { beforeExpr: true, prefix: true, startsExpr: true }),\\n  logicalOR: binop(\\"||\\", 1),\\n  logicalAND: binop(\\"&&\\", 2),\\n  bitwiseOR: binop(\\"|\\", 3),\\n  bitwiseXOR: binop(\\"^\\", 4),\\n  bitwiseAND: binop(\\"&\\", 5),\\n  equality: binop(\\"==/!=\\", 6),\\n  relational: binop(\\"</>\\", 7),\\n  bitShift: binop(\\"<</>>\\", 8),\\n  plusMin: new TokenType(\\"+/-\\", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }),\\n  modulo: binop(\\"%\\", 10),\\n  star: binop(\\"*\\", 10),\\n  slash: binop(\\"/\\", 10),\\n  exponent: new TokenType(\\"**\\", { beforeExpr: true, binop: 11, rightAssociative: true })\\n};\\n\\nexports.types = types;\\n// Map keyword names to token types.\\n\\nvar keywords = {};\\n\\nexports.keywords = keywords;\\n// Succinct definitions of keyword token types\\nfunction kw(name) {\\n  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  options.keyword = name;\\n  keywords[name] = types[\\"_\\" + name] = new TokenType(name, options);\\n}\\n\\nkw(\\"break\\");\\nkw(\\"case\\", beforeExpr);\\nkw(\\"catch\\");\\nkw(\\"continue\\");\\nkw(\\"debugger\\");\\nkw(\\"default\\", beforeExpr);\\nkw(\\"do\\", { isLoop: true, beforeExpr: true });\\nkw(\\"else\\", beforeExpr);\\nkw(\\"finally\\");\\nkw(\\"for\\", { isLoop: true });\\nkw(\\"function\\", startsExpr);\\nkw(\\"if\\");\\nkw(\\"return\\", beforeExpr);\\nkw(\\"switch\\");\\nkw(\\"throw\\", beforeExpr);\\nkw(\\"try\\");\\nkw(\\"var\\");\\nkw(\\"let\\");\\nkw(\\"const\\");\\nkw(\\"while\\", { isLoop: true });\\nkw(\\"with\\");\\nkw(\\"new\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"this\\", startsExpr);\\nkw(\\"super\\", startsExpr);\\nkw(\\"class\\");\\nkw(\\"extends\\", beforeExpr);\\nkw(\\"export\\");\\nkw(\\"import\\");\\nkw(\\"yield\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"null\\", startsExpr);\\nkw(\\"true\\", startsExpr);\\nkw(\\"false\\", startsExpr);\\nkw(\\"in\\", { beforeExpr: true, binop: 7 });\\nkw(\\"instanceof\\", { beforeExpr: true, binop: 7 });\\nkw(\\"typeof\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"void\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"delete\\", { beforeExpr: true, prefix: true, startsExpr: true });\\n},{\\"babel-runtime/helpers/class-call-check\\":24}],18:[function(require,module,exports){\\n// This is a trick taken from Esprima. It turns out that, on\\n// non-Chrome browsers, to check whether a string is in a set, a\\n// predicate containing a big ugly `switch` statement is faster than\\n// a regular expression, and on Chrome the two are about on par.\\n// This function uses `eval` (non-lexical) to produce such a\\n// predicate from a space-separated string of words.\\n//\\n// It starts by sorting the words by length.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isIdentifierStart = isIdentifierStart;\\nexports.isIdentifierChar = isIdentifierChar;\\nfunction makePredicate(words) {\\n  words = words.split(\\" \\");\\n  return function (str) {\\n    return words.indexOf(str) >= 0;\\n  };\\n}\\n\\n// Reserved word lists for various dialects of the language\\n\\nvar reservedWords = {\\n  6: makePredicate(\\"enum await\\"),\\n  strict: makePredicate(\\"implements interface let package private protected public static yield\\"),\\n  strictBind: makePredicate(\\"eval arguments\\")\\n};\\n\\nexports.reservedWords = reservedWords;\\n// And the keywords\\n\\nvar isKeyword = makePredicate(\\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super\\");\\n\\nexports.isKeyword = isKeyword;\\n// ## Character categories\\n\\n// Big ugly regular expressions that match characters in the\\n// whitespace, identifier, and identifier-start categories. These\\n// are only applied when a character is found to actually have a\\n// code point above 128.\\n// Generated by `tools/generate-identifier-regex.js`.\\n\\nvar nonASCIIidentifierStartChars = \\"ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ\\";\\nvar nonASCIIidentifierChars = \\"\u200c\u200d·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏ᦰ-ᧀᧈᧉ᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷼-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-꣄꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︭︳︴﹍-﹏０-９＿\\";\\n\\nvar nonASCIIidentifierStart = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + \\"]\\");\\nvar nonASCIIidentifier = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \\"]\\");\\n\\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\\n\\n// These are a run-length and offset encoded representation of the\\n// >0xffff code points that are a valid part of identifiers. The\\n// offset starts at 0x10000, and each pair of numbers represents an\\n// offset to the next range, and then a size of the range. They were\\n// generated by tools/generate-identifier-regex.js\\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 17, 26, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 99, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 98, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 26, 45, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 955, 52, 76, 44, 33, 24, 27, 35, 42, 34, 4, 0, 13, 47, 15, 3, 22, 0, 38, 17, 2, 24, 133, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 32, 4, 287, 47, 21, 1, 2, 0, 185, 46, 82, 47, 21, 0, 60, 42, 502, 63, 32, 0, 449, 56, 1288, 920, 104, 110, 2962, 1070, 13266, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 881, 68, 12, 0, 67, 12, 16481, 1, 3071, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 4149, 196, 1340, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42710, 42, 4148, 12, 221, 16355, 541];\\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 1306, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 52, 0, 13, 2, 49, 13, 16, 9, 83, 11, 168, 11, 6, 9, 8, 2, 57, 0, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 316, 19, 13, 9, 214, 6, 3, 8, 112, 16, 16, 9, 82, 12, 9, 9, 535, 9, 20855, 9, 135, 4, 60, 6, 26, 9, 1016, 45, 17, 3, 19723, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 4305, 6, 792618, 239];\\n\\n// This has a complexity linear to the value of the code. The\\n// assumption is that looking up astral identifier characters is\\n// rare.\\nfunction isInAstralSet(code, set) {\\n  var pos = 0x10000;\\n  for (var i = 0; i < set.length; i += 2) {\\n    pos += set[i];\\n    if (pos > code) return false;\\n\\n    pos += set[i + 1];\\n    if (pos >= code) return true;\\n  }\\n}\\n\\n// Test whether a given character code starts an identifier.\\n\\nfunction isIdentifierStart(code) {\\n  if (code < 65) return code === 36;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes);\\n}\\n\\n// Test whether a given character is part of an identifier.\\n\\nfunction isIdentifierChar(code) {\\n  if (code < 48) return code === 36;\\n  if (code < 58) return true;\\n  if (code < 65) return false;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\\n}\\n},{}],19:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getLineInfo = getLineInfo;\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\n// These are used when `options.locations` is on, for the\\n// `startLoc` and `endLoc` properties.\\n\\nvar Position = function Position(line, col) {\\n  _classCallCheck(this, Position);\\n\\n  this.line = line;\\n  this.column = col;\\n};\\n\\nexports.Position = Position;\\n\\nvar SourceLocation = function SourceLocation(start, end) {\\n  _classCallCheck(this, SourceLocation);\\n\\n  this.start = start;\\n  this.end = end;\\n}\\n\\n// The `getLineInfo` function is mostly useful when the\\n// `locations` option is off (for performance reasons) and you\\n// want to find the line/column position for a given character\\n// offset. `input` should be the code string that the offset refers\\n// into.\\n\\n;\\n\\nexports.SourceLocation = SourceLocation;\\n\\nfunction getLineInfo(input, offset) {\\n  for (var line = 1, cur = 0;;) {\\n    _whitespace.lineBreakG.lastIndex = cur;\\n    var match = _whitespace.lineBreakG.exec(input);\\n    if (match && match.index < offset) {\\n      ++line;\\n      cur = match.index + match[0].length;\\n    } else {\\n      return new Position(line, offset - cur);\\n    }\\n  }\\n}\\n},{\\"./whitespace\\":20,\\"babel-runtime/helpers/class-call-check\\":24}],20:[function(require,module,exports){\\n/* @flow */\\n\\n// Matches a whole line break (where CRLF is considered a single\\n// line break). Used to count lines.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isNewLine = isNewLine;\\nvar lineBreak = /\\\\r\\\\n?|\\\\n|\\\\u2028|\\\\u2029/;\\nexports.lineBreak = lineBreak;\\nvar lineBreakG = new RegExp(lineBreak.source, \\"g\\");\\n\\nexports.lineBreakG = lineBreakG;\\n\\nfunction isNewLine(code /*: number*/) /*: boolean*/ {\\n  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029;\\n}\\n\\nvar nonASCIIwhitespace = /[\\\\u1680\\\\u180e\\\\u2000-\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\ufeff]/;\\nexports.nonASCIIwhitespace = nonASCIIwhitespace;\\n},{}],21:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n},{\\"core-js/library/fn/get-iterator\\":27}],22:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/create\\":28}],23:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/set-prototype-of\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/set-prototype-of\\":29}],24:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n},{}],25:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _Object$setPrototypeOf = require(\\"babel-runtime/core-js/object/set-prototype-of\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (subClass, superClass) {\\n  if (typeof superClass !== \\"function\\" && superClass !== null) {\\n    throw new TypeError(\\"Super expression must either be null or a function, not \\" + typeof superClass);\\n  }\\n\\n  subClass.prototype = _Object$create(superClass && superClass.prototype, {\\n    constructor: {\\n      value: subClass,\\n      enumerable: false,\\n      writable: true,\\n      configurable: true\\n    }\\n  });\\n  if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\\n};\\n\\nexports.__esModule = true;\\n},{\\"babel-runtime/core-js/object/create\\":22,\\"babel-runtime/core-js/object/set-prototype-of\\":23}],26:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n},{}],27:[function(require,module,exports){\\nrequire(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n},{\\"../modules/core.get-iterator\\":63,\\"../modules/es6.string.iterator\\":66,\\"../modules/web.dom.iterable\\":67}],28:[function(require,module,exports){\\nvar $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n},{\\"../../modules/$\\":50}],29:[function(require,module,exports){\\nrequire(\'../../modules/es6.object.set-prototype-of\');\\nmodule.exports = require(\'../../modules/$.core\').Object.setPrototypeOf;\\n},{\\"../../modules/$.core\\":35,\\"../../modules/es6.object.set-prototype-of\\":65}],30:[function(require,module,exports){\\nmodule.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n},{}],31:[function(require,module,exports){\\nmodule.exports = function(){ /* empty */ };\\n},{}],32:[function(require,module,exports){\\nvar isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n},{\\"./$.is-object\\":45}],33:[function(require,module,exports){\\n// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n},{\\"./$.cof\\":34,\\"./$.wks\\":61}],34:[function(require,module,exports){\\nvar toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n},{}],35:[function(require,module,exports){\\nvar core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n},{}],36:[function(require,module,exports){\\n// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n},{\\"./$.a-function\\":30}],37:[function(require,module,exports){\\n// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n},{}],38:[function(require,module,exports){\\n// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n},{\\"./$.fails\\":40}],39:[function(require,module,exports){\\nvar global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n},{\\"./$.core\\":35,\\"./$.ctx\\":36,\\"./$.global\\":41}],40:[function(require,module,exports){\\nmodule.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n},{}],41:[function(require,module,exports){\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n},{}],42:[function(require,module,exports){\\nvar hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n},{}],43:[function(require,module,exports){\\nvar $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n},{\\"./$\\":50,\\"./$.descriptors\\":38,\\"./$.property-desc\\":52}],44:[function(require,module,exports){\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n},{\\"./$.cof\\":34}],45:[function(require,module,exports){\\nmodule.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n},{}],46:[function(require,module,exports){\\n\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n},{\\"./$\\":50,\\"./$.hide\\":43,\\"./$.property-desc\\":52,\\"./$.set-to-string-tag\\":55,\\"./$.wks\\":61}],47:[function(require,module,exports){\\n\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n},{\\"./$\\":50,\\"./$.export\\":39,\\"./$.has\\":42,\\"./$.hide\\":43,\\"./$.iter-create\\":46,\\"./$.iterators\\":49,\\"./$.library\\":51,\\"./$.redefine\\":53,\\"./$.set-to-string-tag\\":55,\\"./$.wks\\":61}],48:[function(require,module,exports){\\nmodule.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n},{}],49:[function(require,module,exports){\\nmodule.exports = {};\\n},{}],50:[function(require,module,exports){\\nvar $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n},{}],51:[function(require,module,exports){\\nmodule.exports = true;\\n},{}],52:[function(require,module,exports){\\nmodule.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n},{}],53:[function(require,module,exports){\\nmodule.exports = require(\'./$.hide\');\\n},{\\"./$.hide\\":43}],54:[function(require,module,exports){\\n// Works with __proto__ only. Old v8 can\'t work with null proto objects.\\n/* eslint-disable no-proto */\\nvar getDesc  = require(\'./$\').getDesc\\n  , isObject = require(\'./$.is-object\')\\n  , anObject = require(\'./$.an-object\');\\nvar check = function(O, proto){\\n  anObject(O);\\n  if(!isObject(proto) && proto !== null)throw TypeError(proto + \\": can\'t set as prototype!\\");\\n};\\nmodule.exports = {\\n  set: Object.setPrototypeOf || (\'__proto__\' in {} ? // eslint-disable-line\\n    function(test, buggy, set){\\n      try {\\n        set = require(\'./$.ctx\')(Function.call, getDesc(Object.prototype, \'__proto__\').set, 2);\\n        set(test, []);\\n        buggy = !(test instanceof Array);\\n      } catch(e){ buggy = true; }\\n      return function setPrototypeOf(O, proto){\\n        check(O, proto);\\n        if(buggy)O.__proto__ = proto;\\n        else set(O, proto);\\n        return O;\\n      };\\n    }({}, false) : undefined),\\n  check: check\\n};\\n},{\\"./$\\":50,\\"./$.an-object\\":32,\\"./$.ctx\\":36,\\"./$.is-object\\":45}],55:[function(require,module,exports){\\nvar def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n},{\\"./$\\":50,\\"./$.has\\":42,\\"./$.wks\\":61}],56:[function(require,module,exports){\\nvar global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n},{\\"./$.global\\":41}],57:[function(require,module,exports){\\nvar toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n},{\\"./$.defined\\":37,\\"./$.to-integer\\":58}],58:[function(require,module,exports){\\n// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n},{}],59:[function(require,module,exports){\\n// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n},{\\"./$.defined\\":37,\\"./$.iobject\\":44}],60:[function(require,module,exports){\\nvar id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n},{}],61:[function(require,module,exports){\\nvar store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n},{\\"./$.global\\":41,\\"./$.shared\\":56,\\"./$.uid\\":60}],62:[function(require,module,exports){\\nvar classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n},{\\"./$.classof\\":33,\\"./$.core\\":35,\\"./$.iterators\\":49,\\"./$.wks\\":61}],63:[function(require,module,exports){\\nvar anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n},{\\"./$.an-object\\":32,\\"./$.core\\":35,\\"./core.get-iterator-method\\":62}],64:[function(require,module,exports){\\n\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n},{\\"./$.add-to-unscopables\\":31,\\"./$.iter-define\\":47,\\"./$.iter-step\\":48,\\"./$.iterators\\":49,\\"./$.to-iobject\\":59}],65:[function(require,module,exports){\\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\\nvar $export = require(\'./$.export\');\\n$export($export.S, \'Object\', {setPrototypeOf: require(\'./$.set-proto\').set});\\n},{\\"./$.export\\":39,\\"./$.set-proto\\":54}],66:[function(require,module,exports){\\n\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n},{\\"./$.iter-define\\":47,\\"./$.string-at\\":57}],67:[function(require,module,exports){\\nrequire(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n},{\\"./$.iterators\\":49,\\"./es6.array.iterator\\":64}]},{},[1])(1)\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babylon/index.js\\n ** module id = 258\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.evaluateTruthy = evaluateTruthy;\\nexports.evaluate = evaluate;\\n\\n// This file contains Babels metainterpreter that can evaluate static code.\\n\\n/* eslint eqeqeq: 0 */\\n\\n/*:: import type NodePath from \\"./index\\";*/var VALID_CALLEES = [\\"String\\", \\"Number\\", \\"Math\\"];\\nvar INVALID_METHODS = [\\"random\\"];\\n\\n/**\\n * Walk the input `node` and statically evaluate if it\'s truthy.\\n *\\n * Returning `true` when we\'re sure that the expression will evaluate to a\\n * truthy value, `false` if we\'re sure that it will evaluate to a falsy\\n * value and `undefined` if we aren\'t sure. Because of this please do not\\n * rely on coercion when using this method and check with === if it\'s false.\\n *\\n * For example do:\\n *\\n *   if (t.evaluateTruthy(node) === false) falsyLogic();\\n *\\n * **AND NOT**\\n *\\n *   if (!t.evaluateTruthy(node)) falsyLogic();\\n *\\n */\\n\\nfunction evaluateTruthy() /*: boolean*/ {\\n  var res = this.evaluate();\\n  if (res.confident) return !!res.value;\\n}\\n\\n/**\\n * Walk the input `node` and statically evaluate it.\\n *\\n * Returns an object in the form `{ confident, value }`. `confident` indicates\\n * whether or not we had to drop out of evaluating the expression because of\\n * hitting an unknown node that we couldn\'t confidently find the value of.\\n *\\n * Example:\\n *\\n *   t.evaluate(parse(\\"5 + 5\\")) // { confident: true, value: 10 }\\n *   t.evaluate(parse(\\"!true\\")) // { confident: true, value: false }\\n *   t.evaluate(parse(\\"foo + foo\\")) // { confident: false, value: undefined }\\n *\\n */\\n\\nfunction evaluate() /*: { confident: boolean; value: any }*/ {\\n  var confident = true;\\n  var deoptPath /*: ?NodePath*/ = undefined;\\n\\n  function deopt(path) {\\n    if (!confident) return;\\n    deoptPath = path;\\n    confident = false;\\n  }\\n\\n  var value = evaluate(this);\\n  if (!confident) value = undefined;\\n  return {\\n    confident: confident,\\n    deopt: deoptPath,\\n    value: value\\n  };\\n\\n  function evaluate(path) {\\n    if (!confident) return;\\n\\n    var node = path.node;\\n\\n    if (path.isSequenceExpression()) {\\n      var exprs = path.get(\\"expressions\\");\\n      return evaluate(exprs[exprs.length - 1]);\\n    }\\n\\n    if (path.isStringLiteral() || path.isNumericLiteral() || path.isBooleanLiteral()) {\\n      return node.value;\\n    }\\n\\n    if (path.isNullLiteral()) {\\n      return null;\\n    }\\n\\n    if (path.isTemplateLiteral()) {\\n      var str = \\"\\";\\n\\n      var i = 0;\\n      var exprs = path.get(\\"expressions\\");\\n\\n      for (var _iterator = (node.quasis /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n        var _ref;\\n\\n        if (_isArray) {\\n          if (_i >= _iterator.length) break;\\n          _ref = _iterator[_i++];\\n        } else {\\n          _i = _iterator.next();\\n          if (_i.done) break;\\n          _ref = _i.value;\\n        }\\n\\n        var elem = _ref;\\n\\n        // not confident, evaluated an expression we don\'t like\\n        if (!confident) break;\\n\\n        // add on cooked element\\n        str += elem.value.cooked;\\n\\n        // add on interpolated expression if it\'s present\\n        var expr = exprs[i++];\\n        if (expr) str += String(evaluate(expr));\\n      }\\n\\n      if (!confident) return;\\n      return str;\\n    }\\n\\n    if (path.isConditionalExpression()) {\\n      var testResult = evaluate(path.get(\\"test\\"));\\n      if (!confident) return;\\n      if (testResult) {\\n        return evaluate(path.get(\\"consequent\\"));\\n      } else {\\n        return evaluate(path.get(\\"alternate\\"));\\n      }\\n    }\\n\\n    if (path.isExpressionWrapper()) {\\n      // TypeCastExpression, ExpressionStatement etc\\n      return evaluate(path.get(\\"expression\\"));\\n    }\\n\\n    // \\"foo\\".length\\n    if (path.isMemberExpression() && !path.parentPath.isCallExpression({ callee: node })) {\\n      var property = path.get(\\"property\\");\\n      var object = path.get(\\"object\\");\\n\\n      if (object.isLiteral() && property.isIdentifier()) {\\n        var _value = object.node.value;\\n        var type = typeof _value;\\n        if (type === \\"number\\" || type === \\"string\\") {\\n          return _value[property.node.name];\\n        }\\n      }\\n    }\\n\\n    if (path.isReferencedIdentifier()) {\\n      var binding = path.scope.getBinding(node.name);\\n      if (binding && binding.hasValue) {\\n        return binding.value;\\n      } else {\\n        if (node.name === \\"undefined\\") {\\n          return undefined;\\n        } else if (node.name === \\"Infinity\\") {\\n          return Infinity;\\n        } else if (node.name === \\"NaN\\") {\\n          return NaN;\\n        }\\n\\n        var resolved = path.resolve();\\n        if (resolved === path) {\\n          return deopt(path);\\n        } else {\\n          return evaluate(resolved);\\n        }\\n      }\\n    }\\n\\n    if (path.isUnaryExpression({ prefix: true })) {\\n      if (node.operator === \\"void\\") {\\n        // we don\'t need to evaluate the argument to know what this will return\\n        return undefined;\\n      }\\n\\n      var argument = path.get(\\"argument\\");\\n      if (node.operator === \\"typeof\\" && (argument.isFunction() || argument.isClass())) {\\n        return \\"function\\";\\n      }\\n\\n      var arg = evaluate(argument);\\n      if (!confident) return;\\n      switch (node.operator) {\\n        case \\"!\\":\\n          return !arg;\\n        case \\"+\\":\\n          return +arg;\\n        case \\"-\\":\\n          return -arg;\\n        case \\"~\\":\\n          return ~arg;\\n        case \\"typeof\\":\\n          return typeof arg;\\n      }\\n    }\\n\\n    if (path.isArrayExpression()) {\\n      var arr = [];\\n      var elems /*: Array<NodePath>*/ = path.get(\\"elements\\");\\n      for (var _iterator2 = elems, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var elem = _ref2;\\n\\n        elem = elem.evaluate();\\n\\n        if (elem.confident) {\\n          arr.push(elem.value);\\n        } else {\\n          return deopt(elem);\\n        }\\n      }\\n      return arr;\\n    }\\n\\n    if (path.isObjectExpression()) {\\n      // todo\\n    }\\n\\n    if (path.isLogicalExpression()) {\\n      // If we are confident that one side of an && is false, or the left\\n      // side of an || is true, we can be confident about the entire expression\\n      var wasConfident = confident;\\n      var left = evaluate(path.get(\\"left\\"));\\n      var leftConfident = confident;\\n      confident = wasConfident;\\n      var right = evaluate(path.get(\\"right\\"));\\n      var rightConfident = confident;\\n      confident = leftConfident && rightConfident;\\n\\n      switch (node.operator) {\\n        case \\"||\\":\\n          // TODO consider having a \\"truthy type\\" that doesn\'t bail on\\n          // left uncertainity but can still evaluate to truthy.\\n          if (left && leftConfident) {\\n            confident = true;\\n            return left;\\n          }\\n\\n          if (!confident) return;\\n\\n          return left || right;\\n        case \\"&&\\":\\n          if (!left && leftConfident || !right && rightConfident) {\\n            confident = true;\\n          }\\n\\n          if (!confident) return;\\n\\n          return left && right;\\n      }\\n    }\\n\\n    if (path.isBinaryExpression()) {\\n      var left = evaluate(path.get(\\"left\\"));\\n      if (!confident) return;\\n      var right = evaluate(path.get(\\"right\\"));\\n      if (!confident) return;\\n\\n      switch (node.operator) {\\n        case \\"-\\":\\n          return left - right;\\n        case \\"+\\":\\n          return left + right;\\n        case \\"/\\":\\n          return left / right;\\n        case \\"*\\":\\n          return left * right;\\n        case \\"%\\":\\n          return left % right;\\n        case \\"**\\":\\n          return Math.pow(left, right);\\n        case \\"<\\":\\n          return left < right;\\n        case \\">\\":\\n          return left > right;\\n        case \\"<=\\":\\n          return left <= right;\\n        case \\">=\\":\\n          return left >= right;\\n        case \\"==\\":\\n          return left == right;\\n        case \\"!=\\":\\n          return left != right;\\n        case \\"===\\":\\n          return left === right;\\n        case \\"!==\\":\\n          return left !== right;\\n        case \\"|\\":\\n          return left | right;\\n        case \\"&\\":\\n          return left & right;\\n        case \\"^\\":\\n          return left ^ right;\\n        case \\"<<\\":\\n          return left << right;\\n        case \\">>\\":\\n          return left >> right;\\n        case \\">>>\\":\\n          return left >>> right;\\n      }\\n    }\\n\\n    if (path.isCallExpression()) {\\n      var callee = path.get(\\"callee\\");\\n      var context = undefined;\\n      var func = undefined;\\n\\n      // Number(1);\\n      if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name, true) && VALID_CALLEES.indexOf(callee.node.name) >= 0) {\\n        func = global[node.callee.name];\\n      }\\n\\n      if (callee.isMemberExpression()) {\\n        var object = callee.get(\\"object\\");\\n        var property = callee.get(\\"property\\");\\n\\n        // Math.min(1, 2)\\n        if (object.isIdentifier() && property.isIdentifier() && VALID_CALLEES.indexOf(object.node.name) >= 0 && INVALID_METHODS.indexOf(property.node.name) < 0) {\\n          context = global[object.node.name];\\n          func = context[property.node.name];\\n        }\\n\\n        // \\"abc\\".charCodeAt(4)\\n        if (object.isLiteral() && property.isIdentifier()) {\\n          var type = typeof object.node.value;\\n          if (type === \\"string\\" || type === \\"number\\") {\\n            context = object.node.value;\\n            func = context[property.node.name];\\n          }\\n        }\\n      }\\n\\n      if (func) {\\n        var args = path.get(\\"arguments\\").map(evaluate);\\n        if (!confident) return;\\n\\n        return func.apply(context, args);\\n      }\\n    }\\n\\n    deopt(path);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/evaluation.js\\n ** module id = 259\\n ** module chunks = 0\\n **/","// This file contains methods that convert the path node into another node or some other type of data.\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.toComputedKey = toComputedKey;\\nexports.ensureBlock = ensureBlock;\\nexports.arrowFunctionToShadowed = arrowFunctionToShadowed;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction toComputedKey() /*: Object*/ {\\n  var node = this.node;\\n\\n  var key = undefined;\\n  if (this.isMemberExpression()) {\\n    key = node.property;\\n  } else if (this.isProperty() || this.isMethod()) {\\n    key = node.key;\\n  } else {\\n    throw new ReferenceError(\\"todo\\");\\n  }\\n\\n  if (!node.computed) {\\n    if (t.isIdentifier(key)) key = t.stringLiteral(key.name);\\n  }\\n\\n  return key;\\n}\\n\\nfunction ensureBlock() {\\n  return t.ensureBlock(this.node);\\n}\\n\\nfunction arrowFunctionToShadowed() {\\n  // todo: maybe error\\n  if (!this.isArrowFunctionExpression()) return;\\n\\n  this.ensureBlock();\\n\\n  var node = this.node;\\n\\n  node.expression = false;\\n  node.type = \\"FunctionExpression\\";\\n  node.shadow = node.shadow || true;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/conversion.js\\n ** module id = 260\\n ** module chunks = 0\\n **/","// This file contains methods responsible for introspecting the current path for certain values.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.matchesPattern = matchesPattern;\\nexports.has = has;\\nexports.isStatic = isStatic;\\nexports.isnt = isnt;\\nexports.equals = equals;\\nexports.isNodeType = isNodeType;\\nexports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression;\\nexports.isCompletionRecord = isCompletionRecord;\\nexports.isStatementOrBlock = isStatementOrBlock;\\nexports.referencesImport = referencesImport;\\nexports.getSource = getSource;\\nexports.willIMaybeExecuteBefore = willIMaybeExecuteBefore;\\nexports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo;\\nexports._guessExecutionStatusRelativeToDifferentFunctions = _guessExecutionStatusRelativeToDifferentFunctions;\\nexports.resolve = resolve;\\nexports._resolve = _resolve;\\n\\nvar _lodashCollectionIncludes = require(\\"lodash/collection/includes\\");\\n\\nvar _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Match the current node if it matches the provided `pattern`.\\n *\\n * For example, given the match `React.createClass` it would match the\\n * parsed nodes of `React.createClass` and `React[\\"createClass\\"]`.\\n */\\n\\n/*:: import type NodePath from \\"./index\\";*/\\nfunction matchesPattern(pattern /*: string*/, allowPartial /*:: ?: boolean*/) /*: boolean*/ {\\n  // not a member expression\\n  if (!this.isMemberExpression()) return false;\\n\\n  var parts = pattern.split(\\".\\");\\n  var search = [this.node];\\n  var i = 0;\\n\\n  function matches(name) {\\n    var part = parts[i];\\n    return part === \\"*\\" || name === part;\\n  }\\n\\n  while (search.length) {\\n    var node = search.shift();\\n\\n    if (allowPartial && i === parts.length) {\\n      return true;\\n    }\\n\\n    if (t.isIdentifier(node)) {\\n      // this part doesn\'t match\\n      if (!matches(node.name)) return false;\\n    } else if (t.isLiteral(node)) {\\n      // this part doesn\'t match\\n      if (!matches(node.value)) return false;\\n    } else if (t.isMemberExpression(node)) {\\n      if (node.computed && !t.isLiteral(node.property)) {\\n        // we can\'t deal with this\\n        return false;\\n      } else {\\n        search.unshift(node.property);\\n        search.unshift(node.object);\\n        continue;\\n      }\\n    } else if (t.isThisExpression(node)) {\\n      if (!matches(\\"this\\")) return false;\\n    } else {\\n      // we can\'t deal with this\\n      return false;\\n    }\\n\\n    // too many parts\\n    if (++i > parts.length) {\\n      return false;\\n    }\\n  }\\n\\n  return i === parts.length;\\n}\\n\\n/**\\n * Check whether we have the input `key`. If the `key` references an array then we check\\n * if the array has any items, otherwise we just check if it\'s falsy.\\n */\\n\\nfunction has(key) /*: boolean*/ {\\n  var val = this.node && this.node[key];\\n  if (val && Array.isArray(val)) {\\n    return !!val.length;\\n  } else {\\n    return !!val;\\n  }\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction isStatic() {\\n  return this.scope.isStatic(this.node);\\n}\\n\\n/**\\n * Alias of `has`.\\n */\\n\\nvar is = has;\\n\\nexports.is = is;\\n/**\\n * Opposite of `has`.\\n */\\n\\nfunction isnt(key) /*: boolean*/ {\\n  return !this.has(key);\\n}\\n\\n/**\\n * Check whether the path node `key` strict equals `value`.\\n */\\n\\nfunction equals(key, value) /*: boolean*/ {\\n  return this.node[key] === value;\\n}\\n\\n/**\\n * Check the type against our stored internal type of the node. This is handy when a node has\\n * been removed yet we still internally know the type and need it to calculate node replacement.\\n */\\n\\nfunction isNodeType(type /*: string*/) /*: boolean*/ {\\n  return t.isType(this.type, type);\\n}\\n\\n/**\\n * This checks whether or now we\'re in one of the following positions:\\n *\\n *   for (KEY in right);\\n *   for (KEY;;);\\n *\\n * This is because these spots allow VariableDeclarations AND normal expressions so we need\\n * to tell the path replacement that it\'s ok to replace this with an expression.\\n */\\n\\nfunction canHaveVariableDeclarationOrExpression() {\\n  return (this.key === \\"init\\" || this.key === \\"left\\") && this.parentPath.isFor();\\n}\\n\\n/**\\n * Check whether the current path references a completion record\\n */\\n\\nfunction isCompletionRecord(allowInsideFunction /*:: ?*/) {\\n  var path = this;\\n  var first = true;\\n\\n  do {\\n    var container = path.container;\\n\\n    // we\'re in a function so can\'t be a completion record\\n    if (path.isFunction() && !first) {\\n      return !!allowInsideFunction;\\n    }\\n\\n    first = false;\\n\\n    // check to see if we\'re the last item in the container and if we are\\n    // we\'re a completion record!\\n    if (Array.isArray(container) && path.key !== container.length - 1) {\\n      return false;\\n    }\\n  } while ((path = path.parentPath) && !path.isProgram());\\n\\n  return true;\\n}\\n\\n/**\\n * Check whether or not the current `key` allows either a single statement or block statement\\n * so we can explode it if necessary.\\n */\\n\\nfunction isStatementOrBlock() {\\n  if (this.parentPath.isLabeledStatement() || t.isBlockStatement(this.container)) {\\n    return false;\\n  } else {\\n    return _lodashCollectionIncludes2[\\"default\\"](t.STATEMENT_OR_BLOCK_KEYS, this.key);\\n  }\\n}\\n\\n/**\\n * Check if the currently assigned path references the `importName` of `moduleSource`.\\n */\\n\\nfunction referencesImport(moduleSource, importName) {\\n  if (!this.isReferencedIdentifier()) return false;\\n\\n  var binding = this.scope.getBinding(this.node.name);\\n  if (!binding || binding.kind !== \\"module\\") return false;\\n\\n  var path = binding.path;\\n  var parent = path.parentPath;\\n  if (!parent.isImportDeclaration()) return false;\\n\\n  // check moduleSource\\n  if (parent.node.source.value === moduleSource) {\\n    if (!importName) return true;\\n  } else {\\n    return false;\\n  }\\n\\n  if (path.isImportDefaultSpecifier() && importName === \\"default\\") {\\n    return true;\\n  }\\n\\n  if (path.isImportNamespaceSpecifier() && importName === \\"*\\") {\\n    return true;\\n  }\\n\\n  if (path.isImportSpecifier() && path.node.imported.name === importName) {\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Get the source code associated with this node.\\n */\\n\\nfunction getSource() {\\n  var node = this.node;\\n  if (node.end) {\\n    return this.hub.file.code.slice(node.start, node.end);\\n  } else {\\n    return \\"\\";\\n  }\\n}\\n\\nfunction willIMaybeExecuteBefore(target) {\\n  return this._guessExecutionStatusRelativeTo(target) !== \\"after\\";\\n}\\n\\n/**\\n * Given a `target` check the execution status of it relative to the current path.\\n *\\n * \\"Execution status\\" simply refers to where or not we **think** this will execuete\\n * before or after the input `target` element.\\n */\\n\\nfunction _guessExecutionStatusRelativeTo(target) {\\n  // check if the two paths are in different functions, we can\'t track execution of these\\n  var targetFuncParent = target.scope.getFunctionParent();\\n  var selfFuncParent = this.scope.getFunctionParent();\\n\\n  // here we check the `node` equality as sometimes we may have different paths for the\\n  // same node due to path thrashing\\n  if (targetFuncParent.node !== selfFuncParent.node) {\\n    var _status = this._guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent);\\n    if (_status) {\\n      return _status;\\n    } else {\\n      target = targetFuncParent.path;\\n    }\\n  }\\n\\n  var targetPaths = target.getAncestry();\\n  if (targetPaths.indexOf(this) >= 0) return \\"after\\";\\n\\n  var selfPaths = this.getAncestry();\\n\\n  // get ancestor where the branches intersect\\n  var commonPath = undefined;\\n  var targetIndex = undefined;\\n  var selfIndex = undefined;\\n  for (selfIndex = 0; selfIndex < selfPaths.length; selfIndex++) {\\n    var selfPath = selfPaths[selfIndex];\\n    targetIndex = targetPaths.indexOf(selfPath);\\n    if (targetIndex >= 0) {\\n      commonPath = selfPath;\\n      break;\\n    }\\n  }\\n  if (!commonPath) {\\n    return \\"before\\";\\n  }\\n\\n  // get the relationship paths that associate these nodes to their common ancestor\\n  var targetRelationship = targetPaths[targetIndex - 1];\\n  var selfRelationship = selfPaths[selfIndex - 1];\\n  if (!targetRelationship || !selfRelationship) {\\n    return \\"before\\";\\n  }\\n\\n  // container list so let\'s see which one is after the other\\n  if (targetRelationship.listKey && targetRelationship.container === selfRelationship.container) {\\n    return targetRelationship.key > selfRelationship.key ? \\"before\\" : \\"after\\";\\n  }\\n\\n  // otherwise we\'re associated by a parent node, check which key comes before the other\\n  var targetKeyPosition = t.VISITOR_KEYS[targetRelationship.type].indexOf(targetRelationship.key);\\n  var selfKeyPosition = t.VISITOR_KEYS[selfRelationship.type].indexOf(selfRelationship.key);\\n  return targetKeyPosition > selfKeyPosition ? \\"before\\" : \\"after\\";\\n}\\n\\nfunction _guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent) {\\n  var targetFuncPath = targetFuncParent.path;\\n  if (!targetFuncPath.isFunctionDeclaration()) return;\\n\\n  // so we\'re in a completely different function, if this is a function declaration\\n  // then we can be a bit smarter and handle cases where the function is either\\n  // a. not called at all (part of an export)\\n  // b. called directly\\n  var binding = targetFuncPath.scope.getBinding(targetFuncPath.node.id.name);\\n\\n  // no references!\\n  if (!binding.references) return \\"before\\";\\n\\n  var referencePaths /*: Array<NodePath>*/ = binding.referencePaths;\\n\\n  // verify that all of the references are calls\\n  for (var _iterator = referencePaths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var path = _ref;\\n\\n    if (path.key !== \\"callee\\" || !path.parentPath.isCallExpression()) {\\n      return;\\n    }\\n  }\\n\\n  var allStatus = undefined;\\n\\n  // verify that all the calls have the same execution status\\n  for (var _iterator2 = referencePaths, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n    var _ref2;\\n\\n    if (_isArray2) {\\n      if (_i2 >= _iterator2.length) break;\\n      _ref2 = _iterator2[_i2++];\\n    } else {\\n      _i2 = _iterator2.next();\\n      if (_i2.done) break;\\n      _ref2 = _i2.value;\\n    }\\n\\n    var path = _ref2;\\n\\n    // if a reference is a child of the function we\'re checking against then we can\\n    // safelty ignore it\\n    var childOfFunction = !!path.find(function (path) {\\n      return path.node === targetFuncPath.node;\\n    });\\n    if (childOfFunction) continue;\\n\\n    var _status2 = this._guessExecutionStatusRelativeTo(path);\\n\\n    if (allStatus) {\\n      if (allStatus !== _status2) return;\\n    } else {\\n      allStatus = _status2;\\n    }\\n  }\\n\\n  return allStatus;\\n}\\n\\n/**\\n * Resolve a \\"pointer\\" `NodePath` to it\'s absolute path.\\n */\\n\\nfunction resolve(dangerous, resolved) {\\n  return this._resolve(dangerous, resolved) || this;\\n}\\n\\nfunction _resolve(dangerous, /*:: ?*/resolved /*:: ?*/) /*: ?NodePath*/ {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  // detect infinite recursion\\n  // todo: possibly have a max length on this just to be safe\\n  if (resolved && resolved.indexOf(this) >= 0) return;\\n\\n  // we store all the paths we\'ve \\"resolved\\" in this array to prevent infinite recursion\\n  resolved = resolved || [];\\n  resolved.push(this);\\n\\n  if (this.isVariableDeclarator()) {\\n    if (this.get(\\"id\\").isIdentifier()) {\\n      return this.get(\\"init\\").resolve(dangerous, resolved);\\n    } else {\\n      // otherwise it\'s a request for a pattern and that\'s a bit more tricky\\n    }\\n  } else if (this.isReferencedIdentifier()) {\\n      var binding = this.scope.getBinding(this.node.name);\\n      if (!binding) return;\\n\\n      // reassigned so we can\'t really resolve it\\n      if (!binding.constant) return;\\n\\n      // todo - lookup module in dependency graph\\n      if (binding.kind === \\"module\\") return;\\n\\n      if (binding.path !== this) {\\n        var _ret = (function () {\\n          var ret = binding.path.resolve(dangerous, resolved);\\n          // If the identifier resolves to parent node then we can\'t really resolve it.\\n          if (_this.find(function (parent) {\\n            return parent.node === ret.node;\\n          })) return {\\n              v: undefined\\n            };\\n          return {\\n            v: ret\\n          };\\n        })();\\n\\n        // istanbul ignore next\\n        if (typeof _ret === \\"object\\") return _ret.v;\\n      }\\n    } else if (this.isTypeCastExpression()) {\\n      return this.get(\\"expression\\").resolve(dangerous, resolved);\\n    } else if (dangerous && this.isMemberExpression()) {\\n      // this is dangerous, as non-direct target assignments will mutate it\'s state\\n      // making this resolution inaccurate\\n\\n      var targetKey = this.toComputedKey();\\n      if (!t.isLiteral(targetKey)) return;\\n\\n      var targetName = targetKey.value;\\n\\n      var target = this.get(\\"object\\").resolve(dangerous, resolved);\\n\\n      if (target.isObjectExpression()) {\\n        var props = target.get(\\"properties\\");\\n        for (var _iterator3 = (props /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n          var _ref3;\\n\\n          if (_isArray3) {\\n            if (_i3 >= _iterator3.length) break;\\n            _ref3 = _iterator3[_i3++];\\n          } else {\\n            _i3 = _iterator3.next();\\n            if (_i3.done) break;\\n            _ref3 = _i3.value;\\n          }\\n\\n          var prop = _ref3;\\n\\n          if (!prop.isProperty()) continue;\\n\\n          var key = prop.get(\\"key\\");\\n\\n          // { foo: obj }\\n          var match = prop.isnt(\\"computed\\") && key.isIdentifier({ name: targetName });\\n\\n          // { \\"foo\\": \\"obj\\" } or { [\\"foo\\"]: \\"obj\\" }\\n          match = match || key.isLiteral({ value: targetName });\\n\\n          if (match) return prop.get(\\"value\\").resolve(dangerous, resolved);\\n        }\\n      } else if (target.isArrayExpression() && !isNaN(+targetName)) {\\n        var elems = target.get(\\"elements\\");\\n        var elem = elems[targetName];\\n        if (elem) return elem.resolve(dangerous, resolved);\\n      }\\n    }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/introspection.js\\n ** module id = 261\\n ** module chunks = 0\\n **/","// This file contains methods responsible for maintaining a TraversalContext.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.call = call;\\nexports._call = _call;\\nexports.isBlacklisted = isBlacklisted;\\nexports.visit = visit;\\nexports.skip = skip;\\nexports.skipKey = skipKey;\\nexports.stop = stop;\\nexports.setScope = setScope;\\nexports.setContext = setContext;\\nexports.resync = resync;\\nexports._resyncParent = _resyncParent;\\nexports._resyncKey = _resyncKey;\\nexports._resyncList = _resyncList;\\nexports._resyncRemoved = _resyncRemoved;\\nexports.popContext = popContext;\\nexports.pushContext = pushContext;\\nexports.setup = setup;\\nexports.setKey = setKey;\\nexports.requeue = requeue;\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nfunction call(key) /*: boolean*/ {\\n  var opts = this.opts;\\n\\n  this.debug(function () {\\n    return key;\\n  });\\n\\n  if (this.node) {\\n    if (this._call(opts[key])) return true;\\n  }\\n\\n  if (this.node) {\\n    return this._call(opts[this.node.type] && opts[this.node.type][key]);\\n  }\\n\\n  return false;\\n}\\n\\nfunction _call(fns /*:: ?: Array<Function>*/) /*: boolean*/ {\\n  if (!fns) return false;\\n\\n  for (var _iterator = fns, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var fn = _ref;\\n\\n    if (!fn) continue;\\n\\n    var node = this.node;\\n    if (!node) return true;\\n\\n    var ret = fn.call(this.state, this, this.state);\\n    if (ret) throw new Error(\\"Unexpected return value from visitor method \\" + fn);\\n\\n    // node has been replaced, it will have been requeued\\n    if (this.node !== node) return true;\\n\\n    if (this.shouldStop || this.shouldSkip || this.removed) return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction isBlacklisted() /*: boolean*/ {\\n  var blacklist = this.opts.blacklist;\\n  return blacklist && blacklist.indexOf(this.node.type) > -1;\\n}\\n\\nfunction visit() /*: boolean*/ {\\n  if (!this.node) {\\n    return false;\\n  }\\n\\n  if (this.isBlacklisted()) {\\n    return false;\\n  }\\n\\n  if (this.opts.shouldSkip && this.opts.shouldSkip(this)) {\\n    return false;\\n  }\\n\\n  if (this.call(\\"enter\\") || this.shouldSkip) {\\n    this.debug(function () {\\n      return \\"Skip...\\";\\n    });\\n    return this.shouldStop;\\n  }\\n\\n  this.debug(function () {\\n    return \\"Recursing into...\\";\\n  });\\n  _index2[\\"default\\"].node(this.node, this.opts, this.scope, this.state, this, this.skipKeys);\\n\\n  this.call(\\"exit\\");\\n\\n  return this.shouldStop;\\n}\\n\\nfunction skip() {\\n  this.shouldSkip = true;\\n}\\n\\nfunction skipKey(key) {\\n  this.skipKeys[key] = true;\\n}\\n\\nfunction stop() {\\n  this.shouldStop = true;\\n  this.shouldSkip = true;\\n}\\n\\nfunction setScope() {\\n  if (this.opts && this.opts.noScope) return;\\n\\n  var target = this.context && this.context.scope;\\n\\n  if (!target) {\\n    var path = this.parentPath;\\n    while (path && !target) {\\n      if (path.opts && path.opts.noScope) return;\\n\\n      target = path.scope;\\n      path = path.parentPath;\\n    }\\n  }\\n\\n  this.scope = this.getScope(target);\\n  if (this.scope) this.scope.init();\\n}\\n\\nfunction setContext(context) {\\n  this.shouldSkip = false;\\n  this.shouldStop = false;\\n  this.removed = false;\\n  this.skipKeys = {};\\n\\n  if (context) {\\n    this.context = context;\\n    this.state = context.state;\\n    this.opts = context.opts;\\n  }\\n\\n  this.setScope();\\n\\n  return this;\\n}\\n\\n/**\\n * Here we resync the node paths `key` and `container`. If they\'ve changed according\\n * to what we have stored internally then we attempt to resync by crawling and looking\\n * for the new values.\\n */\\n\\nfunction resync() {\\n  if (this.removed) return;\\n\\n  this._resyncParent();\\n  this._resyncList();\\n  this._resyncKey();\\n  //this._resyncRemoved();\\n}\\n\\nfunction _resyncParent() {\\n  if (this.parentPath) {\\n    this.parent = this.parentPath.node;\\n  }\\n}\\n\\nfunction _resyncKey() {\\n  if (!this.container) return;\\n\\n  if (this.node === this.container[this.key]) return;\\n\\n  // grrr, path key is out of sync. this is likely due to a modification to the AST\\n  // not done through our path APIs\\n\\n  if (Array.isArray(this.container)) {\\n    for (var i = 0; i < this.container.length; i++) {\\n      if (this.container[i] === this.node) {\\n        return this.setKey(i);\\n      }\\n    }\\n  } else {\\n    for (var key in this.container) {\\n      if (this.container[key] === this.node) {\\n        return this.setKey(key);\\n      }\\n    }\\n  }\\n\\n  // ¯\\\\_(ツ)_/¯ who knows where it\'s gone lol\\n  this.key = null;\\n}\\n\\nfunction _resyncList() {\\n  if (!this.parent || !this.inList) return;\\n\\n  var newContainer = this.parent[this.listKey];\\n  if (this.container === newContainer) return;\\n\\n  // container is out of sync. this is likely the result of it being reassigned\\n  this.container = newContainer || null;\\n}\\n\\nfunction _resyncRemoved() {\\n  if (this.key == null || !this.container || this.container[this.key] !== this.node) {\\n    this._markRemoved();\\n  }\\n}\\n\\nfunction popContext() {\\n  this.contexts.pop();\\n  this.setContext(this.contexts[this.contexts.length - 1]);\\n}\\n\\nfunction pushContext(context) {\\n  this.contexts.push(context);\\n  this.setContext(context);\\n}\\n\\nfunction setup(parentPath, container, listKey, key) {\\n  this.inList = !!listKey;\\n  this.listKey = listKey;\\n  this.parentKey = listKey || key;\\n  this.container = container;\\n\\n  this.parentPath = parentPath || this.parentPath;\\n  this.setKey(key);\\n}\\n\\nfunction setKey(key) {\\n  this.key = key;\\n  this.node = this.container[this.key];\\n  this.type = this.node && this.node.type;\\n}\\n\\nfunction requeue() {\\n  var path = arguments.length <= 0 || arguments[0] === undefined ? this : arguments[0];\\n\\n  if (path.removed) return;\\n\\n  for (var _iterator2 = this.contexts, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n    var _ref2;\\n\\n    if (_isArray2) {\\n      if (_i2 >= _iterator2.length) break;\\n      _ref2 = _iterator2[_i2++];\\n    } else {\\n      _i2 = _iterator2.next();\\n      if (_i2.done) break;\\n      _ref2 = _i2.value;\\n    }\\n\\n    var context = _ref2;\\n\\n    context.maybeQueue(path);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/context.js\\n ** module id = 262\\n ** module chunks = 0\\n **/","// This file contains methods responsible for removing a node.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.remove = remove;\\nexports._callRemovalHooks = _callRemovalHooks;\\nexports._remove = _remove;\\nexports._markRemoved = _markRemoved;\\nexports._assertUnremoved = _assertUnremoved;\\n\\nvar _libRemovalHooks = require(\\"./lib/removal-hooks\\");\\n\\nfunction remove() {\\n  this._assertUnremoved();\\n\\n  this.resync();\\n\\n  if (this._callRemovalHooks()) {\\n    this._markRemoved();\\n    return;\\n  }\\n\\n  this.shareCommentsWithSiblings();\\n  this._remove();\\n  this._markRemoved();\\n}\\n\\nfunction _callRemovalHooks() {\\n  for (var _iterator = (_libRemovalHooks.hooks /*: Array<Function>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var fn = _ref;\\n\\n    if (fn(this, this.parentPath)) return true;\\n  }\\n}\\n\\nfunction _remove() {\\n  if (Array.isArray(this.container)) {\\n    this.container.splice(this.key, 1);\\n    this.updateSiblingKeys(this.key, -1);\\n  } else {\\n    this._replaceWith(null);\\n  }\\n}\\n\\nfunction _markRemoved() {\\n  this.shouldSkip = true;\\n  this.removed = true;\\n  this.node = null;\\n}\\n\\nfunction _assertUnremoved() {\\n  if (this.removed) {\\n    throw this.buildCodeFrameError(\\"NodePath has been removed so is read-only.\\");\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/removal.js\\n ** module id = 263\\n ** module chunks = 0\\n **/","// this file contains hooks that handle ancestry cleanup of parent nodes when removing children\\n\\n/**\\n * Pre hooks should be used for either rejecting removal or delegating removal\\n */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nvar hooks = [function (self, parent) {\\n  if (self.key === \\"body\\" && parent.isArrowFunctionExpression()) {\\n    self.replaceWith(self.scope.buildUndefinedNode());\\n    return true;\\n  }\\n}, function (self, parent) {\\n  var removeParent = false;\\n\\n  // while (NODE);\\n  // removing the test of a while/switch, we can either just remove it entirely *or* turn the `test` into `true`\\n  // unlikely that the latter will ever be what\'s wanted so we just remove the loop to avoid infinite recursion\\n  removeParent = removeParent || self.key === \\"test\\" && (parent.isWhile() || parent.isSwitchCase());\\n\\n  // export NODE;\\n  // just remove a declaration for an export as this is no longer valid\\n  removeParent = removeParent || self.key === \\"declaration\\" && parent.isExportDeclaration();\\n\\n  // label: NODE\\n  // stray labeled statement with no body\\n  removeParent = removeParent || self.key === \\"body\\" && parent.isLabeledStatement();\\n\\n  // let NODE;\\n  // remove an entire declaration if there are no declarators left\\n  removeParent = removeParent || self.listKey === \\"declarations\\" && parent.isVariableDeclaration() && parent.node.declarations.length === 1;\\n\\n  // NODE;\\n  // remove the entire expression statement if there\'s no expression\\n  removeParent = removeParent || self.key === \\"expression\\" && parent.isExpressionStatement();\\n\\n  if (removeParent) {\\n    parent.remove();\\n    return true;\\n  }\\n}, function (self, parent) {\\n  if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {\\n    // (node, NODE);\\n    // we\'ve just removed the second element of a sequence expression so let\'s turn that sequence\\n    // expression into a regular expression\\n    parent.replaceWith(parent.node.expressions[0]);\\n    return true;\\n  }\\n}, function (self, parent) {\\n  if (parent.isBinary()) {\\n    // left + NODE;\\n    // NODE + right;\\n    // we\'re in a binary expression, better remove it and replace it with the last expression\\n    if (self.key === \\"left\\") {\\n      parent.replaceWith(parent.node.right);\\n    } else {\\n      // key === \\"right\\"\\n      parent.replaceWith(parent.node.left);\\n    }\\n    return true;\\n  }\\n}];\\nexports.hooks = hooks;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/lib/removal-hooks.js\\n ** module id = 264\\n ** module chunks = 0\\n **/","// This file contains methods that modify the path/node in some ways.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.insertBefore = insertBefore;\\nexports._containerInsert = _containerInsert;\\nexports._containerInsertBefore = _containerInsertBefore;\\nexports._containerInsertAfter = _containerInsertAfter;\\nexports._maybePopFromStatements = _maybePopFromStatements;\\nexports.insertAfter = insertAfter;\\nexports.updateSiblingKeys = updateSiblingKeys;\\nexports._verifyNodeList = _verifyNodeList;\\nexports.unshiftContainer = unshiftContainer;\\nexports.pushContainer = pushContainer;\\nexports.hoist = hoist;\\n\\nvar _constants = require(\\"./constants\\");\\n\\nvar _libHoister = require(\\"./lib/hoister\\");\\n\\nvar _libHoister2 = _interopRequireDefault(_libHoister);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Insert the provided nodes before the current one.\\n */\\n\\nfunction insertBefore(nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  if (this.parentPath.isExpressionStatement() || this.parentPath.isLabeledStatement()) {\\n    return this.parentPath.insertBefore(nodes);\\n  } else if (this.isNodeType(\\"Expression\\") || this.parentPath.isForStatement() && this.key === \\"init\\") {\\n    if (this.node) nodes.push(this.node);\\n    this.replaceExpressionWithStatements(nodes);\\n  } else {\\n    this._maybePopFromStatements(nodes);\\n    if (Array.isArray(this.container)) {\\n      return this._containerInsertBefore(nodes);\\n    } else if (this.isStatementOrBlock()) {\\n      if (this.node) nodes.push(this.node);\\n      this._replaceWith(t.blockStatement(nodes));\\n    } else {\\n      throw new Error(\\"We don\'t know what to do with this node type. We were previously a Statement but we can\'t fit in here?\\");\\n    }\\n  }\\n\\n  return [this];\\n}\\n\\nfunction _containerInsert(from, nodes) {\\n  this.updateSiblingKeys(from, nodes.length);\\n\\n  var paths = [];\\n\\n  for (var i = 0; i < nodes.length; i++) {\\n    var to = from + i;\\n    var node = nodes[i];\\n    this.container.splice(to, 0, node);\\n\\n    if (this.context) {\\n      var _path = this.context.create(this.parent, this.container, to, this.listKey);\\n      paths.push(_path);\\n    } else {\\n      paths.push(_index2[\\"default\\"].get({\\n        parentPath: this.parentPath,\\n        parent: this.parent,\\n        container: this.container,\\n        listKey: this.listKey,\\n        key: to\\n      }));\\n    }\\n  }\\n\\n  var contexts = this.contexts;\\n  var path = this;\\n  while (!contexts.length) {\\n    path = path.parentPath;\\n    contexts = path.contexts;\\n  }\\n\\n  for (var _iterator = paths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var _path2 = _ref;\\n\\n    _path2.setScope();\\n    _path2.debug(function () {\\n      return \\"Inserted.\\";\\n    });\\n\\n    for (var _iterator2 = contexts, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var context = _ref2;\\n\\n      context.maybeQueue(_path2, true);\\n    }\\n  }\\n\\n  return paths;\\n}\\n\\nfunction _containerInsertBefore(nodes) {\\n  return this._containerInsert(this.key, nodes);\\n}\\n\\nfunction _containerInsertAfter(nodes) {\\n  return this._containerInsert(this.key + 1, nodes);\\n}\\n\\nfunction _maybePopFromStatements(nodes) {\\n  var last = nodes[nodes.length - 1];\\n  var isIdentifier = t.isIdentifier(last) || t.isExpressionStatement(last) && t.isIdentifier(last.expression);\\n\\n  if (isIdentifier && !this.isCompletionRecord()) {\\n    nodes.pop();\\n  }\\n}\\n\\n/**\\n * Insert the provided nodes after the current one. When inserting nodes after an\\n * expression, ensure that the completion record is correct by pushing the current node.\\n */\\n\\nfunction insertAfter(nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  if (this.parentPath.isExpressionStatement() || this.parentPath.isLabeledStatement()) {\\n    return this.parentPath.insertAfter(nodes);\\n  } else if (this.isNodeType(\\"Expression\\") || this.parentPath.isForStatement() && this.key === \\"init\\") {\\n    if (this.node) {\\n      var temp = this.scope.generateDeclaredUidIdentifier();\\n      nodes.unshift(t.expressionStatement(t.assignmentExpression(\\"=\\", temp, this.node)));\\n      nodes.push(t.expressionStatement(temp));\\n    }\\n    this.replaceExpressionWithStatements(nodes);\\n  } else {\\n    this._maybePopFromStatements(nodes);\\n    if (Array.isArray(this.container)) {\\n      return this._containerInsertAfter(nodes);\\n    } else if (this.isStatementOrBlock()) {\\n      if (this.node) nodes.unshift(this.node);\\n      this._replaceWith(t.blockStatement(nodes));\\n    } else {\\n      throw new Error(\\"We don\'t know what to do with this node type. We were previously a Statement but we can\'t fit in here?\\");\\n    }\\n  }\\n\\n  return [this];\\n}\\n\\n/**\\n * Update all sibling node paths after `fromIndex` by `incrementBy`.\\n */\\n\\nfunction updateSiblingKeys(fromIndex, incrementBy) {\\n  if (!this.parent) return;\\n\\n  var paths = this.parent[_constants.PATH_CACHE_KEY];\\n  for (var i = 0; i < paths.length; i++) {\\n    var path = paths[i];\\n    if (path.key >= fromIndex) {\\n      path.key += incrementBy;\\n    }\\n  }\\n}\\n\\nfunction _verifyNodeList(nodes) {\\n  if (!nodes) {\\n    return [];\\n  }\\n\\n  if (nodes.constructor !== Array) {\\n    nodes = [nodes];\\n  }\\n\\n  for (var i = 0; i < nodes.length; i++) {\\n    var node = nodes[i];\\n    var msg = undefined;\\n\\n    if (!node) {\\n      msg = \\"has falsy node\\";\\n    } else if (typeof node !== \\"object\\") {\\n      msg = \\"contains a non-object node\\";\\n    } else if (!node.type) {\\n      msg = \\"without a type\\";\\n    } else if (node instanceof _index2[\\"default\\"]) {\\n      msg = \\"has a NodePath when it expected a raw object\\";\\n    }\\n\\n    if (msg) {\\n      var type = Array.isArray(node) ? \\"array\\" : typeof node;\\n      throw new Error(\\"Node list \\" + msg + \\" with the index of \\" + i + \\" and type of \\" + type);\\n    }\\n  }\\n\\n  return nodes;\\n}\\n\\nfunction unshiftContainer(listKey, nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  // get the first path and insert our nodes before it, if it doesn\'t exist then it\\n  // doesn\'t matter, our nodes will be inserted anyway\\n  var path = _index2[\\"default\\"].get({\\n    parentPath: this,\\n    parent: this.node,\\n    container: this.node[listKey],\\n    listKey: listKey,\\n    key: 0\\n  });\\n\\n  return path.insertBefore(nodes);\\n}\\n\\nfunction pushContainer(listKey, nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  // get an invisible path that represents the last node + 1 and replace it with our\\n  // nodes, effectively inlining it\\n\\n  var container = this.node[listKey];\\n  var path = _index2[\\"default\\"].get({\\n    parentPath: this,\\n    parent: this.node,\\n    container: container,\\n    listKey: listKey,\\n    key: container.length\\n  });\\n\\n  return path.replaceWithMultiple(nodes);\\n}\\n\\n/**\\n * Hoist the current node to the highest scope possible and return a UID\\n * referencing it.\\n */\\n\\nfunction hoist() {\\n  var scope = arguments.length <= 0 || arguments[0] === undefined ? this.scope : arguments[0];\\n\\n  var hoister = new _libHoister2[\\"default\\"](this, scope);\\n  return hoister.run();\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/modification.js\\n ** module id = 265\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar referenceVisitor = {\\n  ReferencedIdentifier: function ReferencedIdentifier(path, state) {\\n    if (path.isJSXIdentifier() && _babelTypes.react.isCompatTag(path.node.name)) {\\n      return;\\n    }\\n\\n    // direct references that we need to track to hoist this to the highest scope we can\\n    var binding = path.scope.getBinding(path.node.name);\\n    if (!binding) return;\\n\\n    // this binding isn\'t accessible from the parent scope so we can safely ignore it\\n    // eg. it\'s in a closure etc\\n    if (binding !== state.scope.getBinding(path.node.name)) return;\\n\\n    if (binding.constant) {\\n      state.bindings[path.node.name] = binding;\\n    } else {\\n      for (var _iterator = (binding.constantViolations /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n        var _ref;\\n\\n        if (_isArray) {\\n          if (_i >= _iterator.length) break;\\n          _ref = _iterator[_i++];\\n        } else {\\n          _i = _iterator.next();\\n          if (_i.done) break;\\n          _ref = _i.value;\\n        }\\n\\n        var violationPath = _ref;\\n\\n        state.breakOnScopePaths = state.breakOnScopePaths.concat(violationPath.getAncestry());\\n      }\\n    }\\n  }\\n};\\n\\nvar PathHoister = (function () {\\n  function PathHoister(path, scope) {\\n    _classCallCheck(this, PathHoister);\\n\\n    this.breakOnScopePaths = [];\\n    this.bindings = {};\\n    this.scopes = [];\\n    this.scope = scope;\\n    this.path = path;\\n  }\\n\\n  PathHoister.prototype.isCompatibleScope = function isCompatibleScope(scope) {\\n    for (var key in this.bindings) {\\n      var binding = this.bindings[key];\\n      if (!scope.bindingIdentifierEquals(key, binding.identifier)) {\\n        return false;\\n      }\\n    }\\n\\n    return true;\\n  };\\n\\n  PathHoister.prototype.getCompatibleScopes = function getCompatibleScopes() {\\n    var scope = this.path.scope;\\n    do {\\n      if (this.isCompatibleScope(scope)) {\\n        this.scopes.push(scope);\\n      } else {\\n        break;\\n      }\\n\\n      if (this.breakOnScopePaths.indexOf(scope.path) >= 0) {\\n        break;\\n      }\\n    } while (scope = scope.parent);\\n  };\\n\\n  PathHoister.prototype.getAttachmentPath = function getAttachmentPath() {\\n    var scopes = this.scopes;\\n\\n    var scope = scopes.pop();\\n    if (!scope) return;\\n\\n    if (scope.path.isFunction()) {\\n      if (this.hasOwnParamBindings(scope)) {\\n        // should ignore this scope since it\'s ourselves\\n        if (this.scope === scope) return;\\n\\n        // needs to be attached to the body\\n        return scope.path.get(\\"body\\").get(\\"body\\")[0];\\n      } else {\\n        // doesn\'t need to be be attached to this scope\\n        return this.getNextScopeStatementParent();\\n      }\\n    } else if (scope.path.isProgram()) {\\n      return this.getNextScopeStatementParent();\\n    }\\n  };\\n\\n  PathHoister.prototype.getNextScopeStatementParent = function getNextScopeStatementParent() {\\n    var scope = this.scopes.pop();\\n    if (scope) return scope.path.getStatementParent();\\n  };\\n\\n  PathHoister.prototype.hasOwnParamBindings = function hasOwnParamBindings(scope) {\\n    for (var _name in this.bindings) {\\n      if (!scope.hasOwnBinding(_name)) continue;\\n\\n      var binding = this.bindings[_name];\\n      if (binding.kind === \\"param\\") return true;\\n    }\\n    return false;\\n  };\\n\\n  PathHoister.prototype.run = function run() {\\n    var node = this.path.node;\\n    if (node._hoisted) return;\\n    node._hoisted = true;\\n\\n    this.path.traverse(referenceVisitor, this);\\n\\n    this.getCompatibleScopes();\\n\\n    var attachTo = this.getAttachmentPath();\\n    if (!attachTo) return;\\n\\n    // don\'t bother hoisting to the same function as this will cause multiple branches to be evaluated more than once leading to a bad optimisation\\n    if (attachTo.getFunctionParent() === this.path.getFunctionParent()) return;\\n\\n    var uid = attachTo.scope.generateUidIdentifier(\\"ref\\");\\n\\n    attachTo.insertBefore([t.variableDeclaration(\\"var\\", [t.variableDeclarator(uid, this.path.node)])]);\\n\\n    var parent = this.path.parentPath;\\n\\n    if (parent.isJSXElement() && this.path.container === parent.node.children) {\\n      // turning the `span` in `<div><span /></div>` to an expression so we need to wrap it with\\n      // an expression container\\n      uid = t.JSXExpressionContainer(uid);\\n    }\\n\\n    this.path.replaceWith(uid);\\n  };\\n\\n  return PathHoister;\\n})();\\n\\nexports[\\"default\\"] = PathHoister;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/lib/hoister.js\\n ** module id = 266\\n ** module chunks = 0\\n **/","// This file contains methods responsible for dealing with/retrieving children or siblings.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getStatementParent = getStatementParent;\\nexports.getOpposite = getOpposite;\\nexports.getCompletionRecords = getCompletionRecords;\\nexports.getSibling = getSibling;\\nexports.get = get;\\nexports._getKey = _getKey;\\nexports._getPattern = _getPattern;\\nexports.getBindingIdentifiers = getBindingIdentifiers;\\nexports.getOuterBindingIdentifiers = getOuterBindingIdentifiers;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type TraversalContext from \\"../index\\";*/\\nfunction getStatementParent() /*: ?NodePath*/ {\\n  var path = this;\\n\\n  do {\\n    if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) {\\n      break;\\n    } else {\\n      path = path.parentPath;\\n    }\\n  } while (path);\\n\\n  if (path && (path.isProgram() || path.isFile())) {\\n    throw new Error(\\"File/Program node, we can\'t possibly find a statement parent to this\\");\\n  }\\n\\n  return path;\\n}\\n\\nfunction getOpposite() {\\n  if (this.key === \\"left\\") {\\n    return this.getSibling(\\"right\\");\\n  } else if (this.key === \\"right\\") {\\n    return this.getSibling(\\"left\\");\\n  }\\n}\\n\\nfunction getCompletionRecords() /*: Array*/ {\\n  var paths = [];\\n\\n  var add = function add(path) {\\n    if (path) paths = paths.concat(path.getCompletionRecords());\\n  };\\n\\n  if (this.isIfStatement()) {\\n    add(this.get(\\"consequent\\"));\\n    add(this.get(\\"alternate\\"));\\n  } else if (this.isDoExpression() || this.isFor() || this.isWhile()) {\\n    add(this.get(\\"body\\"));\\n  } else if (this.isProgram() || this.isBlockStatement()) {\\n    add(this.get(\\"body\\").pop());\\n  } else if (this.isFunction()) {\\n    return this.get(\\"body\\").getCompletionRecords();\\n  } else if (this.isTryStatement()) {\\n    add(this.get(\\"block\\"));\\n    add(this.get(\\"handler\\"));\\n    add(this.get(\\"finalizer\\"));\\n  } else {\\n    paths.push(this);\\n  }\\n\\n  return paths;\\n}\\n\\nfunction getSibling(key) {\\n  return _index2[\\"default\\"].get({\\n    parentPath: this.parentPath,\\n    parent: this.parent,\\n    container: this.container,\\n    listKey: this.listKey,\\n    key: key\\n  });\\n}\\n\\nfunction get(key /*: string*/, context /*:: ?: boolean | TraversalContext*/) /*: NodePath*/ {\\n  if (context === true) context = this.context;\\n  var parts = key.split(\\".\\");\\n  if (parts.length === 1) {\\n    // \\"foo\\"\\n    return this._getKey(key, context);\\n  } else {\\n    // \\"foo.bar\\"\\n    return this._getPattern(parts, context);\\n  }\\n}\\n\\nfunction _getKey(key, context /*:: ?*/) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  var node = this.node;\\n  var container = node[key];\\n\\n  if (Array.isArray(container)) {\\n    // requested a container so give them all the paths\\n    return container.map(function (_, i) {\\n      return _index2[\\"default\\"].get({\\n        listKey: key,\\n        parentPath: _this,\\n        parent: node,\\n        container: container,\\n        key: i\\n      }).setContext(context);\\n    });\\n  } else {\\n    return _index2[\\"default\\"].get({\\n      parentPath: this,\\n      parent: node,\\n      container: node,\\n      key: key\\n    }).setContext(context);\\n  }\\n}\\n\\nfunction _getPattern(parts, context) {\\n  var path = this;\\n  for (var _iterator = (parts /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var part = _ref;\\n\\n    if (part === \\".\\") {\\n      path = path.parentPath;\\n    } else {\\n      if (Array.isArray(path)) {\\n        path = path[part];\\n      } else {\\n        path = path.get(part, context);\\n      }\\n    }\\n  }\\n  return path;\\n}\\n\\nfunction getBindingIdentifiers(duplicates /*:: ?*/) {\\n  return t.getBindingIdentifiers(this.node, duplicates);\\n}\\n\\nfunction getOuterBindingIdentifiers(duplicates /*:: ?*/) {\\n  return t.getOuterBindingIdentifiers(this.node, duplicates);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/family.js\\n ** module id = 267\\n ** module chunks = 0\\n **/","// This file contains methods responsible for dealing with comments.\\n\\n/**\\n * Share comments amongst siblings.\\n */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.shareCommentsWithSiblings = shareCommentsWithSiblings;\\nexports.addComment = addComment;\\nexports.addComments = addComments;\\n\\nfunction shareCommentsWithSiblings() {\\n  var node = this.node;\\n  if (!node) return;\\n\\n  var trailing = node.trailingComments;\\n  var leading = node.leadingComments;\\n  if (!trailing && !leading) return;\\n\\n  var prev = this.getSibling(this.key - 1);\\n  var next = this.getSibling(this.key + 1);\\n\\n  if (!prev.node) prev = next;\\n  if (!next.node) next = prev;\\n\\n  prev.addComments(\\"trailing\\", leading);\\n  next.addComments(\\"leading\\", trailing);\\n}\\n\\nfunction addComment(type, content, line /*:: ?*/) {\\n  this.addComments(type, [{\\n    type: line ? \\"CommentLine\\" : \\"CommentBlock\\",\\n    value: content\\n  }]);\\n}\\n\\n/**\\n * Give node `comments` of the specified `type`.\\n */\\n\\nfunction addComments(type /*: string*/, comments /*: Array*/) {\\n  if (!comments) return;\\n\\n  var node = this.node;\\n  if (!node) return;\\n\\n  var key = type + \\"Comments\\";\\n\\n  if (node[key]) {\\n    node[key] = node[key].concat(comments);\\n  } else {\\n    node[key] = comments;\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/comments.js\\n ** module id = 268\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$keys = require(\\"babel-runtime/core-js/object/keys\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.explode = explode;\\nexports.verify = verify;\\nexports.merge = merge;\\n\\nvar _pathLibVirtualTypes = require(\\"./path/lib/virtual-types\\");\\n\\nvar virtualTypes = _interopRequireWildcard(_pathLibVirtualTypes);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _lodashLangClone = require(\\"lodash/lang/clone\\");\\n\\nvar _lodashLangClone2 = _interopRequireDefault(_lodashLangClone);\\n\\n/**\\n * explode() will take a visitor object with all of the various shorthands\\n * that we support, and validates & normalizes it into a common format, ready\\n * to be used in traversal\\n *\\n * The various shorthands are:\\n * * `Identifier() { ... }` -> `Identifier: { enter() { ... } }`\\n * * `\\"Identifier|NumericLiteral\\": { ... }` -> `Identifier: { ... }, NumericLiteral: { ... }`\\n * * Aliases in `babel-types`: e.g. `Property: { ... }` -> `ObjectProperty: { ... }, ClassProperty: { ... }`\\n *\\n * Other normalizations are:\\n * * Visitors of virtual types are wrapped, so that they are only visited when\\n *   their dynamic check passes\\n * * `enter` and `exit` functions are wrapped in arrays, to ease merging of\\n *   visitors\\n */\\n\\nfunction explode(visitor) {\\n  if (visitor._exploded) return visitor;\\n  visitor._exploded = true;\\n\\n  // normalise pipes\\n  for (var nodeType in visitor) {\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    var parts /*: Array<string>*/ = nodeType.split(\\"|\\");\\n    if (parts.length === 1) continue;\\n\\n    var fns = visitor[nodeType];\\n    delete visitor[nodeType];\\n\\n    for (var _iterator = parts, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var part = _ref;\\n\\n      visitor[part] = fns;\\n    }\\n  }\\n\\n  // verify data structure\\n  verify(visitor);\\n\\n  // make sure there\'s no __esModule type since this is because we\'re using loose mode\\n  // and it sets __esModule to be enumerable on all modules :(\\n  delete visitor.__esModule;\\n\\n  // ensure visitors are objects\\n  ensureEntranceObjects(visitor);\\n\\n  // ensure enter/exit callbacks are arrays\\n  ensureCallbackArrays(visitor);\\n\\n  // add type wrappers\\n  for (var _iterator2 = (_Object$keys(visitor) /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n    var _ref2;\\n\\n    if (_isArray2) {\\n      if (_i2 >= _iterator2.length) break;\\n      _ref2 = _iterator2[_i2++];\\n    } else {\\n      _i2 = _iterator2.next();\\n      if (_i2.done) break;\\n      _ref2 = _i2.value;\\n    }\\n\\n    var nodeType = _ref2;\\n\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    var wrapper = virtualTypes[nodeType];\\n    if (!wrapper) continue;\\n\\n    // wrap all the functions\\n    var fns = visitor[nodeType];\\n    for (var type in fns) {\\n      fns[type] = wrapCheck(wrapper, fns[type]);\\n    }\\n\\n    // clear it from the visitor\\n    delete visitor[nodeType];\\n\\n    if (wrapper.types) {\\n      for (var _iterator3 = (wrapper.types /*: Array<string>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n        var _ref3;\\n\\n        if (_isArray3) {\\n          if (_i3 >= _iterator3.length) break;\\n          _ref3 = _iterator3[_i3++];\\n        } else {\\n          _i3 = _iterator3.next();\\n          if (_i3.done) break;\\n          _ref3 = _i3.value;\\n        }\\n\\n        var type = _ref3;\\n\\n        // merge the visitor if necessary or just put it back in\\n        if (visitor[type]) {\\n          mergePair(visitor[type], fns);\\n        } else {\\n          visitor[type] = fns;\\n        }\\n      }\\n    } else {\\n      mergePair(visitor, fns);\\n    }\\n  }\\n\\n  // add aliases\\n  for (var nodeType in visitor) {\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    var fns = visitor[nodeType];\\n\\n    var aliases /*: ?Array<string>*/ = t.FLIPPED_ALIAS_KEYS[nodeType];\\n\\n    var deprecratedKey = t.DEPRECATED_KEYS[nodeType];\\n    if (deprecratedKey) {\\n      console.trace(\\"Visitor defined for \\" + nodeType + \\" but it has been renamed to \\" + deprecratedKey);\\n      aliases = [deprecratedKey];\\n    }\\n\\n    if (!aliases) continue;\\n\\n    // clear it from the visitor\\n    delete visitor[nodeType];\\n\\n    for (var _iterator4 = aliases, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n      var _ref4;\\n\\n      if (_isArray4) {\\n        if (_i4 >= _iterator4.length) break;\\n        _ref4 = _iterator4[_i4++];\\n      } else {\\n        _i4 = _iterator4.next();\\n        if (_i4.done) break;\\n        _ref4 = _i4.value;\\n      }\\n\\n      var alias = _ref4;\\n\\n      var existing = visitor[alias];\\n      if (existing) {\\n        mergePair(existing, fns);\\n      } else {\\n        visitor[alias] = _lodashLangClone2[\\"default\\"](fns);\\n      }\\n    }\\n  }\\n\\n  for (var nodeType in visitor) {\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    ensureCallbackArrays(visitor[nodeType]);\\n  }\\n\\n  return visitor;\\n}\\n\\nfunction verify(visitor) {\\n  if (visitor._verified) return;\\n\\n  if (typeof visitor === \\"function\\") {\\n    throw new Error(messages.get(\\"traverseVerifyRootFunction\\"));\\n  }\\n\\n  for (var nodeType in visitor) {\\n    if (nodeType === \\"enter\\" || nodeType === \\"exit\\") {\\n      validateVisitorMethods(nodeType, visitor[nodeType]);\\n    }\\n\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    if (t.TYPES.indexOf(nodeType) < 0) {\\n      throw new Error(messages.get(\\"traverseVerifyNodeType\\", nodeType));\\n    }\\n\\n    var visitors = visitor[nodeType];\\n    if (typeof visitors === \\"object\\") {\\n      for (var visitorKey in visitors) {\\n        if (visitorKey === \\"enter\\" || visitorKey === \\"exit\\") {\\n          // verify that it just contains functions\\n          validateVisitorMethods(nodeType + \\".\\" + visitorKey, visitors[visitorKey]);\\n        } else {\\n          throw new Error(messages.get(\\"traverseVerifyVisitorProperty\\", nodeType, visitorKey));\\n        }\\n      }\\n    }\\n  }\\n\\n  visitor._verified = true;\\n}\\n\\nfunction validateVisitorMethods(path, val) {\\n  var fns = [].concat(val);\\n  for (var _iterator5 = fns, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n    var _ref5;\\n\\n    if (_isArray5) {\\n      if (_i5 >= _iterator5.length) break;\\n      _ref5 = _iterator5[_i5++];\\n    } else {\\n      _i5 = _iterator5.next();\\n      if (_i5.done) break;\\n      _ref5 = _i5.value;\\n    }\\n\\n    var fn = _ref5;\\n\\n    if (typeof fn !== \\"function\\") {\\n      throw new TypeError(\\"Non-function found defined in \\" + path + \\" with type \\" + typeof fn);\\n    }\\n  }\\n}\\n\\nfunction merge(visitors /*: Array*/) {\\n  var states /*: Array*/ = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];\\n\\n  var rootVisitor = {};\\n\\n  for (var i = 0; i < visitors.length; i++) {\\n    var visitor = visitors[i];\\n    var state = states[i];\\n\\n    explode(visitor);\\n\\n    for (var type in visitor) {\\n      var visitorType = visitor[type];\\n\\n      // if we have state then overload the callbacks to take it\\n      if (state) visitorType = wrapWithState(visitorType, state);\\n\\n      var nodeVisitor = rootVisitor[type] = rootVisitor[type] || {};\\n      mergePair(nodeVisitor, visitorType);\\n    }\\n  }\\n\\n  return rootVisitor;\\n}\\n\\nfunction wrapWithState(oldVisitor, state) {\\n  var newVisitor = {};\\n\\n  for (var key in oldVisitor) {\\n    var fns = oldVisitor[key];\\n\\n    // not an enter/exit array of callbacks\\n    if (!Array.isArray(fns)) continue;\\n\\n    fns = fns.map(function (fn) {\\n      var newFn = function newFn(path) {\\n        return fn.call(state, path, state);\\n      };\\n      newFn.toString = function () {\\n        return fn.toString();\\n      };\\n      return newFn;\\n    });\\n\\n    newVisitor[key] = fns;\\n  }\\n\\n  return newVisitor;\\n}\\n\\nfunction ensureEntranceObjects(obj) {\\n  for (var key in obj) {\\n    if (shouldIgnoreKey(key)) continue;\\n\\n    var fns = obj[key];\\n    if (typeof fns === \\"function\\") {\\n      obj[key] = { enter: fns };\\n    }\\n  }\\n}\\n\\nfunction ensureCallbackArrays(obj) {\\n  if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];\\n  if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];\\n}\\n\\nfunction wrapCheck(wrapper, fn) {\\n  var newFn = function newFn(path) {\\n    if (wrapper.checkPath(path)) {\\n      return fn.apply(this, arguments);\\n    }\\n  };\\n  newFn.toString = function () {\\n    return fn.toString();\\n  };\\n  return newFn;\\n}\\n\\nfunction shouldIgnoreKey(key) {\\n  // internal/hidden key\\n  if (key[0] === \\"_\\") return true;\\n\\n  // ignore function keys\\n  if (key === \\"enter\\" || key === \\"exit\\" || key === \\"shouldSkip\\") return true;\\n\\n  // ignore other options\\n  if (key === \\"blacklist\\" || key === \\"noScope\\" || key === \\"skipKeys\\") return true;\\n\\n  return false;\\n}\\n\\nfunction mergePair(dest, src) {\\n  for (var key in src) {\\n    dest[key] = [].concat(dest[key] || [], src[key]);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/visitors.js\\n ** module id = 269\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar Hub = function Hub(file, options) {\\n  _classCallCheck(this, Hub);\\n\\n  this.file = file;\\n  this.options = options;\\n};\\n\\nexports[\\"default\\"] = Hub;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/hub.js\\n ** module id = 270\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.createUnionTypeAnnotation = createUnionTypeAnnotation;\\nexports.removeTypeDuplicates = removeTypeDuplicates;\\nexports.createTypeAnnotationBasedOnTypeof = createTypeAnnotationBasedOnTypeof;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\n/**\\n * Takes an array of `types` and flattens them, removing duplicates and\\n * returns a `UnionTypeAnnotation` node containg them.\\n */\\n\\nfunction createUnionTypeAnnotation(types /*: Array<Object>*/) {\\n  var flattened = removeTypeDuplicates(types);\\n\\n  if (flattened.length === 1) {\\n    return flattened[0];\\n  } else {\\n    return t.unionTypeAnnotation(flattened);\\n  }\\n}\\n\\n/**\\n * Dedupe type annotations.\\n */\\n\\nfunction removeTypeDuplicates(nodes /*: Array<Object>*/) /*: Array<Object>*/ {\\n  var generics = {};\\n  var bases = {};\\n\\n  // store union type groups to circular references\\n  var typeGroups = [];\\n\\n  var types = [];\\n\\n  for (var i = 0; i < nodes.length; i++) {\\n    var node = nodes[i];\\n    if (!node) continue;\\n\\n    // detect duplicates\\n    if (types.indexOf(node) >= 0) {\\n      continue;\\n    }\\n\\n    // this type matches anything\\n    if (t.isAnyTypeAnnotation(node)) {\\n      return [node];\\n    }\\n\\n    //\\n    if (t.isFlowBaseAnnotation(node)) {\\n      bases[node.type] = node;\\n      continue;\\n    }\\n\\n    //\\n    if (t.isUnionTypeAnnotation(node)) {\\n      if (typeGroups.indexOf(node.types) < 0) {\\n        nodes = nodes.concat(node.types);\\n        typeGroups.push(node.types);\\n      }\\n      continue;\\n    }\\n\\n    // find a matching generic type and merge and deduplicate the type parameters\\n    if (t.isGenericTypeAnnotation(node)) {\\n      var _name = node.id.name;\\n\\n      if (generics[_name]) {\\n        var existing = generics[_name];\\n        if (existing.typeParameters) {\\n          if (node.typeParameters) {\\n            existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params.concat(node.typeParameters.params));\\n          }\\n        } else {\\n          existing = node.typeParameters;\\n        }\\n      } else {\\n        generics[_name] = node;\\n      }\\n\\n      continue;\\n    }\\n\\n    types.push(node);\\n  }\\n\\n  // add back in bases\\n  for (var type in bases) {\\n    types.push(bases[type]);\\n  }\\n\\n  // add back in generics\\n  for (var _name2 in generics) {\\n    types.push(generics[_name2]);\\n  }\\n\\n  return types;\\n}\\n\\n/**\\n * Create a type anotation based on typeof expression.\\n */\\n\\nfunction createTypeAnnotationBasedOnTypeof(type /*: string*/) {\\n  if (type === \\"string\\") {\\n    return t.stringTypeAnnotation();\\n  } else if (type === \\"number\\") {\\n    return t.numberTypeAnnotation();\\n  } else if (type === \\"undefined\\") {\\n    return t.voidTypeAnnotation();\\n  } else if (type === \\"boolean\\") {\\n    return t.booleanTypeAnnotation();\\n  } else if (type === \\"function\\") {\\n    return t.genericTypeAnnotation(t.identifier(\\"Function\\"));\\n  } else if (type === \\"object\\") {\\n    return t.genericTypeAnnotation(t.identifier(\\"Object\\"));\\n  } else if (type === \\"symbol\\") {\\n    return t.genericTypeAnnotation(t.identifier(\\"Symbol\\"));\\n  } else {\\n    throw new Error(\\"Invalid typeof value\\");\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/flow.js\\n ** module id = 271\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n/**\\n * Track current position in code generation.\\n */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar Position = (function () {\\n  function Position() {\\n    _classCallCheck(this, Position);\\n\\n    this.line = 1;\\n    this.column = 0;\\n  }\\n\\n  /**\\n   * Push a string to the current position, mantaining the current line and column.\\n   */\\n\\n  Position.prototype.push = function push(str /*: string*/) /*: void*/ {\\n    for (var i = 0; i < str.length; i++) {\\n      if (str[i] === \\"\\\\n\\") {\\n        this.line++;\\n        this.column = 0;\\n      } else {\\n        this.column++;\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Unshift a string from the current position, mantaining the current line and column.\\n   */\\n\\n  Position.prototype.unshift = function unshift(str /*: string*/) /*: void*/ {\\n    for (var i = 0; i < str.length; i++) {\\n      if (str[i] === \\"\\\\n\\") {\\n        this.line--;\\n      } else {\\n        this.column--;\\n      }\\n    }\\n  };\\n\\n  return Position;\\n})();\\n\\nexports[\\"default\\"] = Position;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/position.js\\n ** module id = 272\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.get = get;\\nexports.parseArgs = parseArgs;\\n\\nvar _util = require(\\"util\\");\\n\\nvar util = _interopRequireWildcard(_util);\\n\\n/**\\n * Mapping of messages to be used in Babel.\\n * Messages can include $0-style placeholders.\\n */\\n\\nvar MESSAGES = {\\n  tailCallReassignmentDeopt: \\"Function reference has been reassigned, so it will probably be dereferenced, therefore we can\'t optimise this with confidence\\",\\n  classesIllegalBareSuper: \\"Illegal use of bare super\\",\\n  classesIllegalSuperCall: \\"Direct super call is illegal in non-constructor, use super.$1() instead\\",\\n  scopeDuplicateDeclaration: \\"Duplicate declaration $1\\",\\n  settersNoRest: \\"Setters aren\'t allowed to have a rest\\",\\n  noAssignmentsInForHead: \\"No assignments allowed in for-in/of head\\",\\n  expectedMemberExpressionOrIdentifier: \\"Expected type MemberExpression or Identifier\\",\\n  invalidParentForThisNode: \\"We don\'t know how to handle this node within the current parent - please open an issue\\",\\n  readOnly: \\"$1 is read-only\\",\\n  unknownForHead: \\"Unknown node type $1 in ForStatement\\",\\n  didYouMean: \\"Did you mean $1?\\",\\n  codeGeneratorDeopt: \\"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.\\",\\n  missingTemplatesDirectory: \\"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues\\",\\n  unsupportedOutputType: \\"Unsupported output type $1\\",\\n  illegalMethodName: \\"Illegal method name $1\\",\\n  lostTrackNodePath: \\"We lost track of this node\'s position, likely because the AST was directly manipulated\\",\\n\\n  modulesIllegalExportName: \\"Illegal export $1\\",\\n  modulesDuplicateDeclarations: \\"Duplicate module declarations with the same source but in different scopes\\",\\n\\n  undeclaredVariable: \\"Reference to undeclared variable $1\\",\\n  undeclaredVariableType: \\"Referencing a type alias outside of a type annotation\\",\\n  undeclaredVariableSuggestion: \\"Reference to undeclared variable $1 - did you mean $2?\\",\\n\\n  traverseNeedsParent: \\"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.\\",\\n  traverseVerifyRootFunction: \\"You passed `traverse()` a function when it expected a visitor object, are you sure you didn\'t mean `{ enter: Function }`?\\",\\n  traverseVerifyVisitorProperty: \\"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2\\",\\n  traverseVerifyNodeType: \\"You gave us a visitor for the node type $1 but it\'s not a valid type\\",\\n\\n  pluginNotObject: \\"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3\\",\\n  pluginNotFunction: \\"Plugin $2 specified in $1 was expected to return a function but returned $3\\",\\n  pluginUnknown: \\"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4\\",\\n  pluginInvalidProperty: \\"Plugin $2 specified in $1 provided an invalid property of $3\\"\\n};\\n\\nexports.MESSAGES = MESSAGES;\\n/**\\n * Get a message with $0 placeholders replaced by arguments.\\n */\\n\\nfunction get(key /*: string*/) /*: string*/ {\\n  for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\\n    args[_key - 1] = arguments[_key];\\n  }\\n\\n  var msg = MESSAGES[key];\\n  if (!msg) throw new ReferenceError(\\"Unknown message \\" + JSON.stringify(key));\\n\\n  // stringify args\\n  args = parseArgs(args);\\n\\n  // replace $0 placeholders with args\\n  return msg.replace(/\\\\$(\\\\d+)/g, function (str, i) {\\n    return args[i - 1];\\n  });\\n}\\n\\n/**\\n * Stingify arguments to be used inside messages.\\n */\\n\\nfunction parseArgs(args /*: Array<any>*/) /*: Array<string>*/ {\\n  return args.map(function (val) {\\n    if (val != null && val.inspect) {\\n      return val.inspect();\\n    } else {\\n      try {\\n        return JSON.stringify(val) || val + \\"\\";\\n      } catch (e) {\\n        return util.inspect(val);\\n      }\\n    }\\n  });\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-messages/lib/index.js\\n ** module id = 273\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$assign = require(\\"babel-runtime/core-js/object/assign\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _buffer = require(\\"./buffer\\");\\n\\nvar _buffer2 = _interopRequireDefault(_buffer);\\n\\nvar _node = require(\\"./node\\");\\n\\nvar n = _interopRequireWildcard(_node);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar Printer = (function (_Buffer) {\\n  _inherits(Printer, _Buffer);\\n\\n  function Printer() {\\n    _classCallCheck(this, Printer);\\n\\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\\n      args[_key] = arguments[_key];\\n    }\\n\\n    _Buffer.call.apply(_Buffer, [this].concat(args));\\n    this.insideAux = false;\\n    this.printAuxAfterOnNextUserNode = false;\\n    this._printStack = [];\\n  }\\n\\n  Printer.prototype.print = function print(node, parent) {\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    if (!node) return;\\n\\n    this._lastPrintedIsEmptyStatement = false;\\n\\n    if (parent && parent._compact) {\\n      node._compact = true;\\n    }\\n\\n    var oldInAux = this.insideAux;\\n    this.insideAux = !node.loc;\\n\\n    var oldConcise = this.format.concise;\\n    if (node._compact) {\\n      this.format.concise = true;\\n    }\\n\\n    var printMethod = this[node.type];\\n    if (!printMethod) {\\n      throw new ReferenceError(\\"unknown node of type \\" + JSON.stringify(node.type) + \\" with constructor \\" + JSON.stringify(node && node.constructor.name));\\n    }\\n\\n    this._printStack.push(node);\\n\\n    if (node.loc) this.printAuxAfterComment();\\n    this.printAuxBeforeComment(oldInAux);\\n\\n    var needsParens = n.needsParens(node, parent, this._printStack);\\n    if (needsParens) this.push(\\"(\\");\\n\\n    this.printLeadingComments(node, parent);\\n\\n    this.catchUp(node);\\n\\n    this._printNewline(true, node, parent, opts);\\n\\n    if (opts.before) opts.before();\\n\\n    this.map.mark(node);\\n\\n    this._print(node, parent);\\n\\n    // Check again if any of our children may have left an aux comment on the stack\\n    if (node.loc) this.printAuxAfterComment();\\n\\n    this.printTrailingComments(node, parent);\\n\\n    if (needsParens) this.push(\\")\\");\\n\\n    // end\\n    this._printStack.pop();\\n    if (parent) this.map.mark(parent);\\n    if (opts.after) opts.after();\\n\\n    this.format.concise = oldConcise;\\n    this.insideAux = oldInAux;\\n\\n    this._printNewline(false, node, parent, opts);\\n  };\\n\\n  Printer.prototype.printAuxBeforeComment = function printAuxBeforeComment(wasInAux) {\\n    var comment = this.format.auxiliaryCommentBefore;\\n    if (!wasInAux && this.insideAux && !this.printAuxAfterOnNextUserNode) {\\n      this.printAuxAfterOnNextUserNode = true;\\n      if (comment) this.printComment({\\n        type: \\"CommentBlock\\",\\n        value: comment\\n      });\\n    }\\n  };\\n\\n  Printer.prototype.printAuxAfterComment = function printAuxAfterComment() {\\n    if (this.printAuxAfterOnNextUserNode) {\\n      this.printAuxAfterOnNextUserNode = false;\\n      var comment = this.format.auxiliaryCommentAfter;\\n      if (comment) this.printComment({\\n        type: \\"CommentBlock\\",\\n        value: comment\\n      });\\n    }\\n  };\\n\\n  Printer.prototype.getPossibleRaw = function getPossibleRaw(node) {\\n    var extra = node.extra;\\n    if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) {\\n      return extra.raw;\\n    }\\n  };\\n\\n  Printer.prototype._print = function _print(node, parent) {\\n    // In minified mode we need to produce as little bytes as needed\\n    // and need to make sure that string quoting is consistent.\\n    // That means we have to always reprint as opposed to getting\\n    // the raw value.\\n    if (!this.format.minified) {\\n      var extra = this.getPossibleRaw(node);\\n      if (extra) {\\n        this.push(\\"\\");\\n        this._push(extra);\\n        return;\\n      }\\n    }\\n\\n    var printMethod = this[node.type];\\n    printMethod.call(this, node, parent);\\n  };\\n\\n  Printer.prototype.printJoin = function printJoin(nodes /*: ?Array*/, parent /*: Object*/) {\\n    // istanbul ignore next\\n\\n    var _this = this;\\n\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    if (!nodes || !nodes.length) return;\\n\\n    var len = nodes.length;\\n    var node = undefined,\\n        i = undefined;\\n\\n    if (opts.indent) this.indent();\\n\\n    var printOpts = {\\n      statement: opts.statement,\\n      addNewlines: opts.addNewlines,\\n      after: function after() {\\n        if (opts.iterator) {\\n          opts.iterator(node, i);\\n        }\\n\\n        if (opts.separator && parent.loc) {\\n          _this.printAuxAfterComment();\\n        }\\n\\n        if (opts.separator && i < len - 1) {\\n          _this.push(opts.separator);\\n        }\\n      }\\n    };\\n\\n    for (i = 0; i < nodes.length; i++) {\\n      node = nodes[i];\\n      this.print(node, parent, printOpts);\\n    }\\n\\n    if (opts.indent) this.dedent();\\n  };\\n\\n  Printer.prototype.printAndIndentOnComments = function printAndIndentOnComments(node, parent) {\\n    var indent = !!node.leadingComments;\\n    if (indent) this.indent();\\n    this.print(node, parent);\\n    if (indent) this.dedent();\\n  };\\n\\n  Printer.prototype.printBlock = function printBlock(parent) {\\n    var node = parent.body;\\n\\n    if (!t.isEmptyStatement(node)) {\\n      this.space();\\n    }\\n\\n    this.print(node, parent);\\n  };\\n\\n  Printer.prototype.generateComment = function generateComment(comment) {\\n    var val = comment.value;\\n    if (comment.type === \\"CommentLine\\") {\\n      val = \\"//\\" + val;\\n    } else {\\n      val = \\"/*\\" + val + \\"*/\\";\\n    }\\n    return val;\\n  };\\n\\n  Printer.prototype.printTrailingComments = function printTrailingComments(node, parent) {\\n    this.printComments(this.getComments(\\"trailingComments\\", node, parent));\\n  };\\n\\n  Printer.prototype.printLeadingComments = function printLeadingComments(node, parent) {\\n    this.printComments(this.getComments(\\"leadingComments\\", node, parent));\\n  };\\n\\n  Printer.prototype.printInnerComments = function printInnerComments(node) {\\n    var indent = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\\n\\n    if (!node.innerComments) return;\\n    if (indent) this.indent();\\n    this.printComments(node.innerComments);\\n    if (indent) this.dedent();\\n  };\\n\\n  Printer.prototype.printSequence = function printSequence(nodes, parent) {\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    opts.statement = true;\\n    return this.printJoin(nodes, parent, opts);\\n  };\\n\\n  Printer.prototype.printList = function printList(items, parent) {\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    if (opts.separator == null) {\\n      opts.separator = \\",\\";\\n      if (!this.format.compact) opts.separator += \\" \\";\\n    }\\n\\n    return this.printJoin(items, parent, opts);\\n  };\\n\\n  Printer.prototype._printNewline = function _printNewline(leading, node, parent, opts) {\\n    if (!opts.statement && !n.isUserWhitespacable(node, parent)) {\\n      return;\\n    }\\n\\n    var lines = 0;\\n\\n    if (node.start != null && !node._ignoreUserWhitespace && this.tokens.length) {\\n      // user node\\n      if (leading) {\\n        lines = this.whitespace.getNewlinesBefore(node);\\n      } else {\\n        lines = this.whitespace.getNewlinesAfter(node);\\n      }\\n    } else {\\n      // generated node\\n      if (!leading) lines++; // always include at least a single line after\\n      if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\\n\\n      var needs = n.needsWhitespaceAfter;\\n      if (leading) needs = n.needsWhitespaceBefore;\\n      if (needs(node, parent)) lines++;\\n\\n      // generated nodes can\'t add starting file whitespace\\n      if (!this.buf) lines = 0;\\n    }\\n\\n    this.newline(lines);\\n  };\\n\\n  Printer.prototype.getComments = function getComments(key, node) {\\n    return node && node[key] || [];\\n  };\\n\\n  Printer.prototype.shouldPrintComment = function shouldPrintComment(comment) {\\n    if (this.format.shouldPrintComment) {\\n      return this.format.shouldPrintComment(comment.value);\\n    } else {\\n      if (!this.format.minified && (comment.value.indexOf(\\"@license\\") >= 0 || comment.value.indexOf(\\"@preserve\\") >= 0)) {\\n        return true;\\n      } else {\\n        return this.format.comments;\\n      }\\n    }\\n  };\\n\\n  Printer.prototype.printComment = function printComment(comment) {\\n    if (!this.shouldPrintComment(comment)) return;\\n\\n    if (comment.ignore) return;\\n    comment.ignore = true;\\n\\n    if (comment.start != null) {\\n      if (this.printedCommentStarts[comment.start]) return;\\n      this.printedCommentStarts[comment.start] = true;\\n    }\\n\\n    this.catchUp(comment);\\n\\n    // whitespace before\\n    this.newline(this.whitespace.getNewlinesBefore(comment));\\n\\n    var column = this.position.column;\\n    var val = this.generateComment(comment);\\n\\n    if (column && !this.isLast([\\"\\\\n\\", \\" \\", \\"[\\", \\"{\\"])) {\\n      this._push(\\" \\");\\n      column++;\\n    }\\n\\n    //\\n    if (comment.type === \\"CommentBlock\\" && this.format.indent.adjustMultilineComment) {\\n      var offset = comment.loc && comment.loc.start.column;\\n      if (offset) {\\n        var newlineRegex = new RegExp(\\"\\\\\\\\n\\\\\\\\s{1,\\" + offset + \\"}\\", \\"g\\");\\n        val = val.replace(newlineRegex, \\"\\\\n\\");\\n      }\\n\\n      var indent = Math.max(this.indentSize(), column);\\n      val = val.replace(/\\\\n/g, \\"\\\\n\\" + _repeating2[\\"default\\"](\\" \\", indent));\\n    }\\n\\n    if (column === 0) {\\n      val = this.getIndent() + val;\\n    }\\n\\n    // force a newline for line comments when retainLines is set in case the next printed node\\n    // doesn\'t catch up\\n    if ((this.format.compact || this.format.retainLines) && comment.type === \\"CommentLine\\") {\\n      val += \\"\\\\n\\";\\n    }\\n\\n    //\\n    this._push(val);\\n\\n    // whitespace after\\n    this.newline(this.whitespace.getNewlinesAfter(comment));\\n  };\\n\\n  Printer.prototype.printComments = function printComments(comments /*:: ?: Array<Object>*/) {\\n    if (!comments || !comments.length) return;\\n\\n    for (var _iterator = comments, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var comment = _ref;\\n\\n      this.printComment(comment);\\n    }\\n  };\\n\\n  return Printer;\\n})(_buffer2[\\"default\\"]);\\n\\nexports[\\"default\\"] = Printer;\\nvar _arr = [require(\\"./generators/template-literals\\"), require(\\"./generators/expressions\\"), require(\\"./generators/statements\\"), require(\\"./generators/classes\\"), require(\\"./generators/methods\\"), require(\\"./generators/modules\\"), require(\\"./generators/types\\"), require(\\"./generators/flow\\"), require(\\"./generators/base\\"), require(\\"./generators/jsx\\")];\\n\\nfor (var _i2 = 0; _i2 < _arr.length; _i2++) {\\n  var generator = _arr[_i2];\\n  _Object$assign(Printer.prototype, generator);\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/printer.js\\n ** module id = 274\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/get-iterator.js\\n ** module id = 275\\n ** module chunks = 0\\n **/","require(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/get-iterator.js\\n ** module id = 276\\n ** module chunks = 0\\n **/","require(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\\n ** module id = 277\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\\n ** module id = 278\\n ** module chunks = 0\\n **/","module.exports = function(){ /* empty */ };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js\\n ** module id = 279\\n ** module chunks = 0\\n **/","module.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-step.js\\n ** module id = 280\\n ** module chunks = 0\\n **/","module.exports = {};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iterators.js\\n ** module id = 281\\n ** module chunks = 0\\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js\\n ** module id = 282\\n ** module chunks = 0\\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iobject.js\\n ** module id = 283\\n ** module chunks = 0\\n **/","var toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.cof.js\\n ** module id = 284\\n ** module chunks = 0\\n **/","// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.defined.js\\n ** module id = 285\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-define.js\\n ** module id = 286\\n ** module chunks = 0\\n **/","module.exports = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.library.js\\n ** module id = 287\\n ** module chunks = 0\\n **/","module.exports = require(\'./$.hide\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.redefine.js\\n ** module id = 288\\n ** module chunks = 0\\n **/","var $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.hide.js\\n ** module id = 289\\n ** module chunks = 0\\n **/","module.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.property-desc.js\\n ** module id = 290\\n ** module chunks = 0\\n **/","// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.descriptors.js\\n ** module id = 291\\n ** module chunks = 0\\n **/","module.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.fails.js\\n ** module id = 292\\n ** module chunks = 0\\n **/","var hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.has.js\\n ** module id = 293\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-create.js\\n ** module id = 294\\n ** module chunks = 0\\n **/","var def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js\\n ** module id = 295\\n ** module chunks = 0\\n **/","var store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.wks.js\\n ** module id = 296\\n ** module chunks = 0\\n **/","var global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.shared.js\\n ** module id = 297\\n ** module chunks = 0\\n **/","var id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.uid.js\\n ** module id = 298\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\\n ** module id = 299\\n ** module chunks = 0\\n **/","var toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.string-at.js\\n ** module id = 300\\n ** module chunks = 0\\n **/","// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-integer.js\\n ** module id = 301\\n ** module chunks = 0\\n **/","var anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\\n ** module id = 302\\n ** module chunks = 0\\n **/","var classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\\n ** module id = 303\\n ** module chunks = 0\\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.classof.js\\n ** module id = 304\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/assign\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/assign.js\\n ** module id = 305\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.assign\');\\nmodule.exports = require(\'../../modules/$.core\').Object.assign;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/assign.js\\n ** module id = 306\\n ** module chunks = 0\\n **/","// 19.1.3.1 Object.assign(target, source)\\nvar $export = require(\'./$.export\');\\n\\n$export($export.S + $export.F, \'Object\', {assign: require(\'./$.object-assign\')});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\\n ** module id = 307\\n ** module chunks = 0\\n **/","// 19.1.2.1 Object.assign(target, source, ...)\\nvar $        = require(\'./$\')\\n  , toObject = require(\'./$.to-object\')\\n  , IObject  = require(\'./$.iobject\');\\n\\n// should work with symbols and should have deterministic property order (V8 bug)\\nmodule.exports = require(\'./$.fails\')(function(){\\n  var a = Object.assign\\n    , A = {}\\n    , B = {}\\n    , S = Symbol()\\n    , K = \'abcdefghijklmnopqrst\';\\n  A[S] = 7;\\n  K.split(\'\').forEach(function(k){ B[k] = k; });\\n  return a({}, A)[S] != 7 || Object.keys(a({}, B)).join(\'\') != K;\\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\\n  var T     = toObject(target)\\n    , $$    = arguments\\n    , $$len = $$.length\\n    , index = 1\\n    , getKeys    = $.getKeys\\n    , getSymbols = $.getSymbols\\n    , isEnum     = $.isEnum;\\n  while($$len > index){\\n    var S      = IObject($$[index++])\\n      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\\n      , length = keys.length\\n      , j      = 0\\n      , key;\\n    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\\n  }\\n  return T;\\n} : Object.assign;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-assign.js\\n ** module id = 308\\n ** module chunks = 0\\n **/","// 7.1.13 ToObject(argument)\\nvar defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return Object(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-object.js\\n ** module id = 309\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _trimRight = require(\\"trim-right\\");\\n\\nvar _trimRight2 = _interopRequireDefault(_trimRight);\\n\\n/**\\n * Buffer for collecting generated output.\\n */\\n\\n/*:: import type Position from \\"./position\\";*/\\nvar Buffer = (function () {\\n  function Buffer(position /*: Position*/, format /*: Object*/) {\\n    _classCallCheck(this, Buffer);\\n\\n    this.printedCommentStarts = {};\\n    this.parenPushNewlineState = null;\\n    this.position = position;\\n    this._indent = format.indent.base;\\n    this.format = format;\\n    this.buf = \\"\\";\\n\\n    // Maintaining a reference to the last char in the buffer is an optimization\\n    // to make sure that v8 doesn\'t \\"flatten\\" the string more often than needed\\n    // see https://github.com/babel/babel/pull/3283 for details.\\n    this.last = \\"\\";\\n  }\\n\\n  /**\\n   * Description\\n   */\\n\\n  Buffer.prototype.catchUp = function catchUp(node /*: Object*/) {\\n    // catch up to this nodes newline if we\'re behind\\n    if (node.loc && this.format.retainLines && this.buf) {\\n      while (this.position.line < node.loc.start.line) {\\n        this._push(\\"\\\\n\\");\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Get the current trimmed buffer.\\n   */\\n\\n  Buffer.prototype.get = function get() /*: string*/ {\\n    return _trimRight2[\\"default\\"](this.buf);\\n  };\\n\\n  /**\\n   * Get the current indent.\\n   */\\n\\n  Buffer.prototype.getIndent = function getIndent() /*: string*/ {\\n    if (this.format.compact || this.format.concise) {\\n      return \\"\\";\\n    } else {\\n      return _repeating2[\\"default\\"](this.format.indent.style, this._indent);\\n    }\\n  };\\n\\n  /**\\n   * Get the current indent size.\\n   */\\n\\n  Buffer.prototype.indentSize = function indentSize() /*: number*/ {\\n    return this.getIndent().length;\\n  };\\n\\n  /**\\n   * Increment indent size.\\n   */\\n\\n  Buffer.prototype.indent = function indent() {\\n    this._indent++;\\n  };\\n\\n  /**\\n   * Decrement indent size.\\n   */\\n\\n  Buffer.prototype.dedent = function dedent() {\\n    this._indent--;\\n  };\\n\\n  /**\\n   * Add a semicolon to the buffer.\\n   */\\n\\n  Buffer.prototype.semicolon = function semicolon() {\\n    this.push(\\";\\");\\n  };\\n\\n  /**\\n   * Ensure last character is a semicolon.\\n   */\\n\\n  Buffer.prototype.ensureSemicolon = function ensureSemicolon() {\\n    if (!this.isLast(\\";\\")) this.semicolon();\\n  };\\n\\n  /**\\n   * Add a right brace to the buffer.\\n   */\\n\\n  Buffer.prototype.rightBrace = function rightBrace() {\\n    this.newline(true);\\n    if (this.format.minified && !this._lastPrintedIsEmptyStatement) {\\n      this._removeLast(\\";\\");\\n    }\\n    this.push(\\"}\\");\\n  };\\n\\n  /**\\n   * Add a keyword to the buffer.\\n   */\\n\\n  Buffer.prototype.keyword = function keyword(name /*: string*/) {\\n    this.push(name);\\n    this.space();\\n  };\\n\\n  /**\\n   * Add a space to the buffer unless it is compact (override with force).\\n   */\\n\\n  Buffer.prototype.space = function space(force /*:: ?: boolean*/) {\\n    if (!force && this.format.compact) return;\\n\\n    if (force || this.buf && !this.isLast(\\" \\") && !this.isLast(\\"\\\\n\\")) {\\n      this.push(\\" \\");\\n    }\\n  };\\n\\n  /**\\n   * Remove the last character.\\n   */\\n\\n  Buffer.prototype.removeLast = function removeLast(cha /*: string*/) {\\n    if (this.format.compact) return;\\n    return this._removeLast(cha);\\n  };\\n\\n  Buffer.prototype._removeLast = function _removeLast(cha /*: string*/) {\\n    if (!this._isLast(cha)) return;\\n    this.buf = this.buf.slice(0, -1);\\n    this.last = this.buf[this.buf.length - 1];\\n    this.position.unshift(cha);\\n  };\\n\\n  /**\\n   * Set some state that will be modified if a newline has been inserted before any\\n   * non-space characters.\\n   *\\n   * This is to prevent breaking semantics for terminatorless separator nodes. eg:\\n   *\\n   *    return foo;\\n   *\\n   * returns `foo`. But if we do:\\n   *\\n   *   return\\n   *   foo;\\n   *\\n   *  `undefined` will be returned and not `foo` due to the terminator.\\n   */\\n\\n  Buffer.prototype.startTerminatorless = function startTerminatorless() /*: Object*/ {\\n    return this.parenPushNewlineState = {\\n      printed: false\\n    };\\n  };\\n\\n  /**\\n   * Print an ending parentheses if a starting one has been printed.\\n   */\\n\\n  Buffer.prototype.endTerminatorless = function endTerminatorless(state /*: Object*/) {\\n    if (state.printed) {\\n      this.dedent();\\n      this.newline();\\n      this.push(\\")\\");\\n    }\\n  };\\n\\n  /**\\n   * Add a newline (or many newlines), maintaining formatting.\\n   * Strips multiple newlines if removeLast is true.\\n   */\\n\\n  Buffer.prototype.newline = function newline(i /*:: ?: boolean | number*/, removeLast /*:: ?: boolean*/) {\\n    if (this.format.retainLines || this.format.compact) return;\\n\\n    if (this.format.concise) {\\n      this.space();\\n      return;\\n    }\\n\\n    // never allow more than two lines\\n    if (this.endsWith(\\"\\\\n\\\\n\\")) return;\\n\\n    if (typeof i === \\"boolean\\") removeLast = i;\\n    if (typeof i !== \\"number\\") i = 1;\\n\\n    i = Math.min(2, i);\\n    if (this.endsWith(\\"{\\\\n\\") || this.endsWith(\\":\\\\n\\")) i--;\\n    if (i <= 0) return;\\n\\n    // remove the last newline\\n    if (removeLast) {\\n      this.removeLast(\\"\\\\n\\");\\n    }\\n\\n    this.removeLast(\\" \\");\\n    this._removeSpacesAfterLastNewline();\\n    this._push(_repeating2[\\"default\\"](\\"\\\\n\\", i));\\n  };\\n\\n  /**\\n   * If buffer ends with a newline and some spaces after it, trim those spaces.\\n   */\\n\\n  Buffer.prototype._removeSpacesAfterLastNewline = function _removeSpacesAfterLastNewline() {\\n    var lastNewlineIndex = this.buf.lastIndexOf(\\"\\\\n\\");\\n    if (lastNewlineIndex >= 0 && this.get().length <= lastNewlineIndex) {\\n      this.buf = this.buf.substring(0, lastNewlineIndex + 1);\\n      this.last = \\"\\\\n\\";\\n    }\\n  };\\n\\n  /**\\n   * Push a string to the buffer, maintaining indentation and newlines.\\n   */\\n\\n  Buffer.prototype.push = function push(str /*: string*/, noIndent /*:: ?: boolean*/) {\\n    if (!this.format.compact && this._indent && !noIndent && str !== \\"\\\\n\\") {\\n      // we have an indent level and we aren\'t pushing a newline\\n      var indent = this.getIndent();\\n\\n      // replace all newlines with newlines with the indentation\\n      str = str.replace(/\\\\n/g, \\"\\\\n\\" + indent);\\n\\n      // we\'ve got a newline before us so prepend on the indentation\\n      if (this.isLast(\\"\\\\n\\")) this._push(indent);\\n    }\\n\\n    this._push(str);\\n  };\\n\\n  /**\\n   * Push a string to the buffer.\\n   */\\n\\n  Buffer.prototype._push = function _push(str /*: string*/) /*: void*/ {\\n    // see startTerminatorless() instance method\\n    var parenPushNewlineState = this.parenPushNewlineState;\\n    if (parenPushNewlineState) {\\n      for (var i = 0; i < str.length; i++) {\\n        var cha = str[i];\\n\\n        // we can ignore spaces since they wont interupt a terminatorless separator\\n        if (cha === \\" \\") continue;\\n\\n        this.parenPushNewlineState = null;\\n\\n        if (cha === \\"\\\\n\\" || cha === \\"/\\") {\\n          // we\'re going to break this terminator expression so we need to add a parentheses\\n          this._push(\\"(\\");\\n          this.indent();\\n          parenPushNewlineState.printed = true;\\n        }\\n\\n        break;\\n      }\\n    }\\n\\n    //\\n    this.position.push(str);\\n    this.buf += str;\\n    this.last = str[str.length - 1];\\n  };\\n\\n  /**\\n   * Test if the buffer ends with a string.\\n   */\\n\\n  Buffer.prototype.endsWith = function endsWith(str /*: string*/) /*: boolean*/ {\\n    if (str.length === 1) {\\n      return this.last === str;\\n    } else {\\n      return this.buf.slice(-str.length) === str;\\n    }\\n  };\\n\\n  /**\\n   * Test if a character is last in the buffer.\\n   */\\n\\n  Buffer.prototype.isLast = function isLast(cha /*: string*/) /*: boolean*/ {\\n    if (this.format.compact) return false;\\n    return this._isLast(cha);\\n  };\\n\\n  Buffer.prototype._isLast = function _isLast(cha /*: string*/) /*: boolean*/ {\\n    var last = this.last;\\n\\n    if (Array.isArray(cha)) {\\n      return cha.indexOf(last) >= 0;\\n    } else {\\n      return cha === last;\\n    }\\n  };\\n\\n  return Buffer;\\n})();\\n\\nexports[\\"default\\"] = Buffer;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/buffer.js\\n ** module id = 310\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function (str) {\\n\\tvar tail = str.length;\\n\\n\\twhile (/[\\\\s\\\\uFEFF\\\\u00A0]/.test(str[tail - 1])) {\\n\\t\\ttail--;\\n\\t}\\n\\n\\treturn str.slice(0, tail);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/trim-right/index.js\\n ** module id = 311\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _Object$keys = require(\\"babel-runtime/core-js/object/keys\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.isUserWhitespacable = isUserWhitespacable;\\nexports.needsWhitespace = needsWhitespace;\\nexports.needsWhitespaceBefore = needsWhitespaceBefore;\\nexports.needsWhitespaceAfter = needsWhitespaceAfter;\\nexports.needsParens = needsParens;\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\nvar _whitespace2 = _interopRequireDefault(_whitespace);\\n\\nvar _parentheses = require(\\"./parentheses\\");\\n\\nvar parens = _interopRequireWildcard(_parentheses);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction find(obj, node, parent, printStack) {\\n  if (!obj) return;\\n  var result = undefined;\\n\\n  var types = _Object$keys(obj);\\n  for (var i = 0; i < types.length; i++) {\\n    var type = types[i];\\n\\n    if (t.is(type, node)) {\\n      var fn = obj[type];\\n      result = fn(node, parent, printStack);\\n      if (result != null) break;\\n    }\\n  }\\n\\n  return result;\\n}\\n\\nfunction isOrHasCallExpression(node) {\\n  if (t.isCallExpression(node)) {\\n    return true;\\n  }\\n\\n  if (t.isMemberExpression(node)) {\\n    return isOrHasCallExpression(node.object) || !node.computed && isOrHasCallExpression(node.property);\\n  } else {\\n    return false;\\n  }\\n}\\n\\nfunction isUserWhitespacable(node) {\\n  return t.isUserWhitespacable(node);\\n}\\n\\nfunction needsWhitespace(node, parent, type) {\\n  if (!node) return 0;\\n\\n  if (t.isExpressionStatement(node)) {\\n    node = node.expression;\\n  }\\n\\n  var linesInfo = find(_whitespace2[\\"default\\"].nodes, node, parent);\\n\\n  if (!linesInfo) {\\n    var items = find(_whitespace2[\\"default\\"].list, node, parent);\\n    if (items) {\\n      for (var i = 0; i < items.length; i++) {\\n        linesInfo = needsWhitespace(items[i], node, type);\\n        if (linesInfo) break;\\n      }\\n    }\\n  }\\n\\n  return linesInfo && linesInfo[type] || 0;\\n}\\n\\nfunction needsWhitespaceBefore(node, parent) {\\n  return needsWhitespace(node, parent, \\"before\\");\\n}\\n\\nfunction needsWhitespaceAfter(node, parent) {\\n  return needsWhitespace(node, parent, \\"after\\");\\n}\\n\\nfunction needsParens(node, parent, printStack) {\\n  if (!parent) return false;\\n\\n  if (t.isNewExpression(parent) && parent.callee === node) {\\n    if (isOrHasCallExpression(node)) return true;\\n  }\\n\\n  return find(parens, node, parent, printStack);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/node/index.js\\n ** module id = 312\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/keys\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/keys.js\\n ** module id = 313\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.keys\');\\nmodule.exports = require(\'../../modules/$.core\').Object.keys;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/keys.js\\n ** module id = 314\\n ** module chunks = 0\\n **/","// 19.1.2.14 Object.keys(O)\\nvar toObject = require(\'./$.to-object\');\\n\\nrequire(\'./$.object-sap\')(\'keys\', function($keys){\\n  return function keys(it){\\n    return $keys(toObject(it));\\n  };\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\\n ** module id = 315\\n ** module chunks = 0\\n **/","// most Object methods by ES6 should accept primitives\\nvar $export = require(\'./$.export\')\\n  , core    = require(\'./$.core\')\\n  , fails   = require(\'./$.fails\');\\nmodule.exports = function(KEY, exec){\\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\\n    , exp = {};\\n  exp[KEY] = exec(fn);\\n  $export($export.S + $export.F * fails(function(){ fn(1); }), \'Object\', exp);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-sap.js\\n ** module id = 316\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _lodashLangIsBoolean = require(\\"lodash/lang/isBoolean\\");\\n\\nvar _lodashLangIsBoolean2 = _interopRequireDefault(_lodashLangIsBoolean);\\n\\nvar _lodashCollectionEach = require(\\"lodash/collection/each\\");\\n\\nvar _lodashCollectionEach2 = _interopRequireDefault(_lodashCollectionEach);\\n\\nvar _lodashCollectionMap = require(\\"lodash/collection/map\\");\\n\\nvar _lodashCollectionMap2 = _interopRequireDefault(_lodashCollectionMap);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\\n *\\n * @example\\n * crawl(node)\\n * // { hasCall: false, hasFunction: true, hasHelper: false }\\n */\\n\\n/*:: type WhitespaceObject = {\\n  before?: boolean,\\n  after?: boolean\\n};*/function crawl(node) {\\n  var state = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  if (t.isMemberExpression(node)) {\\n    crawl(node.object, state);\\n    if (node.computed) crawl(node.property, state);\\n  } else if (t.isBinary(node) || t.isAssignmentExpression(node)) {\\n    crawl(node.left, state);\\n    crawl(node.right, state);\\n  } else if (t.isCallExpression(node)) {\\n    state.hasCall = true;\\n    crawl(node.callee, state);\\n  } else if (t.isFunction(node)) {\\n    state.hasFunction = true;\\n  } else if (t.isIdentifier(node)) {\\n    state.hasHelper = state.hasHelper || isHelper(node.callee);\\n  }\\n\\n  return state;\\n}\\n\\n/**\\n * Test if a node is or has a helper.\\n */\\n\\nfunction isHelper(node) {\\n  if (t.isMemberExpression(node)) {\\n    return isHelper(node.object) || isHelper(node.property);\\n  } else if (t.isIdentifier(node)) {\\n    return node.name === \\"require\\" || node.name[0] === \\"_\\";\\n  } else if (t.isCallExpression(node)) {\\n    return isHelper(node.callee);\\n  } else if (t.isBinary(node) || t.isAssignmentExpression(node)) {\\n    return t.isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right);\\n  } else {\\n    return false;\\n  }\\n}\\n\\nfunction isType(node) {\\n  return t.isLiteral(node) || t.isObjectExpression(node) || t.isArrayExpression(node) || t.isIdentifier(node) || t.isMemberExpression(node);\\n}\\n\\n/**\\n * Tests for node types that need whitespace.\\n */\\n\\nexports.nodes = {\\n\\n  /**\\n   * Test if AssignmentExpression needs whitespace.\\n   */\\n\\n  AssignmentExpression: function AssignmentExpression(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    var state = crawl(node.right);\\n    if (state.hasCall && state.hasHelper || state.hasFunction) {\\n      return {\\n        before: state.hasFunction,\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if SwitchCase needs whitespace.\\n   */\\n\\n  SwitchCase: function SwitchCase(node /*: Object*/, parent /*: Object*/) /*: ?WhitespaceObject*/ {\\n    return {\\n      before: node.consequent.length || parent.cases[0] === node\\n    };\\n  },\\n\\n  /**\\n   * Test if LogicalExpression needs whitespace.\\n   */\\n\\n  LogicalExpression: function LogicalExpression(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (t.isFunction(node.left) || t.isFunction(node.right)) {\\n      return {\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if Literal needs whitespace.\\n   */\\n\\n  Literal: function Literal(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (node.value === \\"use strict\\") {\\n      return {\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if CallExpression needs whitespace.\\n   */\\n\\n  CallExpression: function CallExpression(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (t.isFunction(node.callee) || isHelper(node)) {\\n      return {\\n        before: true,\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if VariableDeclaration needs whitespace.\\n   */\\n\\n  VariableDeclaration: function VariableDeclaration(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    for (var i = 0; i < node.declarations.length; i++) {\\n      var declar = node.declarations[i];\\n\\n      var enabled = isHelper(declar.id) && !isType(declar.init);\\n      if (!enabled) {\\n        var state = crawl(declar.init);\\n        enabled = isHelper(declar.init) && state.hasCall || state.hasFunction;\\n      }\\n\\n      if (enabled) {\\n        return {\\n          before: true,\\n          after: true\\n        };\\n      }\\n    }\\n  },\\n\\n  /**\\n   * Test if IfStatement needs whitespace.\\n   */\\n\\n  IfStatement: function IfStatement(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (t.isBlockStatement(node.consequent)) {\\n      return {\\n        before: true,\\n        after: true\\n      };\\n    }\\n  }\\n};\\n\\n/**\\n * Test if Property or SpreadProperty needs whitespace.\\n */\\n\\nexports.nodes.ObjectProperty = exports.nodes.ObjectMethod = exports.nodes.SpreadProperty = function (node /*: Object*/, parent) /*: ?WhitespaceObject*/ {\\n  if (parent.properties[0] === node) {\\n    return {\\n      before: true\\n    };\\n  }\\n};\\n\\n/**\\n * Returns lists from node types that need whitespace.\\n */\\n\\nexports.list = {\\n\\n  /**\\n   * Return VariableDeclaration declarations init properties.\\n   */\\n\\n  VariableDeclaration: function VariableDeclaration(node /*: Object*/) /*: Array<Object>*/ {\\n    return _lodashCollectionMap2[\\"default\\"](node.declarations, \\"init\\");\\n  },\\n\\n  /**\\n   * Return VariableDeclaration elements.\\n   */\\n\\n  ArrayExpression: function ArrayExpression(node /*: Object*/) /*: Array<Object>*/ {\\n    return node.elements;\\n  },\\n\\n  /**\\n   * Return VariableDeclaration properties.\\n   */\\n\\n  ObjectExpression: function ObjectExpression(node /*: Object*/) /*: Array<Object>*/ {\\n    return node.properties;\\n  }\\n};\\n\\n/**\\n * Add whitespace tests for nodes and their aliases.\\n */\\n\\n_lodashCollectionEach2[\\"default\\"]({\\n  Function: true,\\n  Class: true,\\n  Loop: true,\\n  LabeledStatement: true,\\n  SwitchStatement: true,\\n  TryStatement: true\\n}, function (amounts, type) {\\n  if (_lodashLangIsBoolean2[\\"default\\"](amounts)) {\\n    amounts = { after: amounts, before: amounts };\\n  }\\n\\n  _lodashCollectionEach2[\\"default\\"]([type].concat(t.FLIPPED_ALIAS_KEYS[type] || []), function (type) {\\n    exports.nodes[type] = function () {\\n      return amounts;\\n    };\\n  });\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/node/whitespace.js\\n ** module id = 317\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a boolean primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isBoolean(false);\\n * // => true\\n *\\n * _.isBoolean(null);\\n * // => false\\n */\\nfunction isBoolean(value) {\\n  return value === true || value === false || (isObjectLike(value) && objToString.call(value) == boolTag);\\n}\\n\\nmodule.exports = isBoolean;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isBoolean.js\\n ** module id = 318\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is object-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n */\\nfunction isObjectLike(value) {\\n  return !!value && typeof value == \'object\';\\n}\\n\\nmodule.exports = isObjectLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isObjectLike.js\\n ** module id = 319\\n ** module chunks = 0\\n **/","module.exports = require(\'./forEach\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/collection/each.js\\n ** module id = 320\\n ** module chunks = 0\\n **/","var arrayEach = require(\'../internal/arrayEach\'),\\n    baseEach = require(\'../internal/baseEach\'),\\n    createForEach = require(\'../internal/createForEach\');\\n\\n/**\\n * Iterates over elements of `collection` invoking `iteratee` for each element.\\n * The `iteratee` is bound to `thisArg` and invoked with three arguments:\\n * (value, index|key, collection). Iteratee functions may exit iteration early\\n * by explicitly returning `false`.\\n *\\n * **Note:** As with other \\"Collections\\" methods, objects with a \\"length\\" property\\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\\n * may be used for object iteration.\\n *\\n * @static\\n * @memberOf _\\n * @alias each\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array|Object|string} Returns `collection`.\\n * @example\\n *\\n * _([1, 2]).forEach(function(n) {\\n *   console.log(n);\\n * }).value();\\n * // => logs each value from left to right and returns the array\\n *\\n * _.forEach({ \'a\': 1, \'b\': 2 }, function(n, key) {\\n *   console.log(n, key);\\n * });\\n * // => logs each value-key pair and returns the object (iteration order is not guaranteed)\\n */\\nvar forEach = createForEach(arrayEach, baseEach);\\n\\nmodule.exports = forEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/collection/forEach.js\\n ** module id = 321\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.forEach` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns `array`.\\n */\\nfunction arrayEach(array, iteratee) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (iteratee(array[index], index, array) === false) {\\n      break;\\n    }\\n  }\\n  return array;\\n}\\n\\nmodule.exports = arrayEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/arrayEach.js\\n ** module id = 322\\n ** module chunks = 0\\n **/","var baseForOwn = require(\'./baseForOwn\'),\\n    createBaseEach = require(\'./createBaseEach\');\\n\\n/**\\n * The base implementation of `_.forEach` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array|Object|string} Returns `collection`.\\n */\\nvar baseEach = createBaseEach(baseForOwn);\\n\\nmodule.exports = baseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseEach.js\\n ** module id = 323\\n ** module chunks = 0\\n **/","var baseFor = require(\'./baseFor\'),\\n    keys = require(\'../object/keys\');\\n\\n/**\\n * The base implementation of `_.forOwn` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseForOwn(object, iteratee) {\\n  return baseFor(object, iteratee, keys);\\n}\\n\\nmodule.exports = baseForOwn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseForOwn.js\\n ** module id = 324\\n ** module chunks = 0\\n **/","var createBaseFor = require(\'./createBaseFor\');\\n\\n/**\\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\\n * each property. Iteratee functions may exit iteration early by explicitly\\n * returning `false`.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @param {Function} keysFunc The function to get the keys of `object`.\\n * @returns {Object} Returns `object`.\\n */\\nvar baseFor = createBaseFor();\\n\\nmodule.exports = baseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseFor.js\\n ** module id = 325\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a base function for `_.forIn` or `_.forInRight`.\\n *\\n * @private\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseFor(fromRight) {\\n  return function(object, iteratee, keysFunc) {\\n    var iterable = toObject(object),\\n        props = keysFunc(object),\\n        length = props.length,\\n        index = fromRight ? length : -1;\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      var key = props[index];\\n      if (iteratee(iterable[key], key, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return object;\\n  };\\n}\\n\\nmodule.exports = createBaseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/createBaseFor.js\\n ** module id = 326\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Converts `value` to an object if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Object} Returns the object.\\n */\\nfunction toObject(value) {\\n  return isObject(value) ? value : Object(value);\\n}\\n\\nmodule.exports = toObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/toObject.js\\n ** module id = 327\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String(\'\')`)\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(1);\\n * // => false\\n */\\nfunction isObject(value) {\\n  // Avoid a V8 JIT bug in Chrome 19-20.\\n  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\\n  var type = typeof value;\\n  return !!value && (type == \'object\' || type == \'function\');\\n}\\n\\nmodule.exports = isObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isObject.js\\n ** module id = 328\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObject = require(\'../lang/isObject\'),\\n    shimKeys = require(\'../internal/shimKeys\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeKeys = getNative(Object, \'keys\');\\n\\n/**\\n * Creates an array of the own enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects. See the\\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\\n * for more details.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keys(new Foo);\\n * // => [\'a\', \'b\'] (iteration order is not guaranteed)\\n *\\n * _.keys(\'hi\');\\n * // => [\'0\', \'1\']\\n */\\nvar keys = !nativeKeys ? shimKeys : function(object) {\\n  var Ctor = object == null ? undefined : object.constructor;\\n  if ((typeof Ctor == \'function\' && Ctor.prototype === object) ||\\n      (typeof object != \'function\' && isArrayLike(object))) {\\n    return shimKeys(object);\\n  }\\n  return isObject(object) ? nativeKeys(object) : [];\\n};\\n\\nmodule.exports = keys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/object/keys.js\\n ** module id = 329\\n ** module chunks = 0\\n **/","var isNative = require(\'../lang/isNative\');\\n\\n/**\\n * Gets the native function at `key` of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {string} key The key of the method to get.\\n * @returns {*} Returns the function if it\'s native, else `undefined`.\\n */\\nfunction getNative(object, key) {\\n  var value = object == null ? undefined : object[key];\\n  return isNative(value) ? value : undefined;\\n}\\n\\nmodule.exports = getNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/getNative.js\\n ** module id = 330\\n ** module chunks = 0\\n **/","var isFunction = require(\'./isFunction\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used to detect host constructors (Safari > 5). */\\nvar reIsHostCtor = /^\\\\[object .+?Constructor\\\\]$/;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to resolve the decompiled source of functions. */\\nvar fnToString = Function.prototype.toString;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Used to detect if a method is native. */\\nvar reIsNative = RegExp(\'^\' +\\n  fnToString.call(hasOwnProperty).replace(/[\\\\\\\\^$.*+?()[\\\\]{}|]/g, \'\\\\\\\\$&\')\\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g, \'$1.*?\') + \'$\'\\n);\\n\\n/**\\n * Checks if `value` is a native function.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\\n * @example\\n *\\n * _.isNative(Array.prototype.push);\\n * // => true\\n *\\n * _.isNative(_);\\n * // => false\\n */\\nfunction isNative(value) {\\n  if (value == null) {\\n    return false;\\n  }\\n  if (isFunction(value)) {\\n    return reIsNative.test(fnToString.call(value));\\n  }\\n  return isObjectLike(value) && reIsHostCtor.test(value);\\n}\\n\\nmodule.exports = isNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isNative.js\\n ** module id = 331\\n ** module chunks = 0\\n **/","var isObject = require(\'./isObject\');\\n\\n/** `Object#toString` result references. */\\nvar funcTag = \'[object Function]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Function` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isFunction(_);\\n * // => true\\n *\\n * _.isFunction(/abc/);\\n * // => false\\n */\\nfunction isFunction(value) {\\n  // The use of `Object#toString` avoids issues with the `typeof` operator\\n  // in older versions of Chrome and Safari which return \'function\' for regexes\\n  // and Safari 8 which returns \'object\' for typed array constructors.\\n  return isObject(value) && objToString.call(value) == funcTag;\\n}\\n\\nmodule.exports = isFunction;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isFunction.js\\n ** module id = 332\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\');\\n\\n/**\\n * Checks if `value` is array-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\\n */\\nfunction isArrayLike(value) {\\n  return value != null && isLength(getLength(value));\\n}\\n\\nmodule.exports = isArrayLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isArrayLike.js\\n ** module id = 333\\n ** module chunks = 0\\n **/","var baseProperty = require(\'./baseProperty\');\\n\\n/**\\n * Gets the \\"length\\" property value of `object`.\\n *\\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {*} Returns the \\"length\\" value.\\n */\\nvar getLength = baseProperty(\'length\');\\n\\nmodule.exports = getLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/getLength.js\\n ** module id = 334\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.property` without support for deep paths.\\n *\\n * @private\\n * @param {string} key The key of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseProperty(key) {\\n  return function(object) {\\n    return object == null ? undefined : object[key];\\n  };\\n}\\n\\nmodule.exports = baseProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseProperty.js\\n ** module id = 335\\n ** module chunks = 0\\n **/","/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like length.\\n *\\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\\n */\\nfunction isLength(value) {\\n  return typeof value == \'number\' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\\n}\\n\\nmodule.exports = isLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isLength.js\\n ** module id = 336\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'./isIndex\'),\\n    isLength = require(\'./isLength\'),\\n    keysIn = require(\'../object/keysIn\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A fallback implementation of `Object.keys` which creates an array of the\\n * own enumerable property names of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n */\\nfunction shimKeys(object) {\\n  var props = keysIn(object),\\n      propsLength = props.length,\\n      length = propsLength && object.length;\\n\\n  var allowIndexes = !!length && isLength(length) &&\\n    (isArray(object) || isArguments(object));\\n\\n  var index = -1,\\n      result = [];\\n\\n  while (++index < propsLength) {\\n    var key = props[index];\\n    if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = shimKeys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/shimKeys.js\\n ** module id = 337\\n ** module chunks = 0\\n **/","var isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Native method references. */\\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\\n\\n/**\\n * Checks if `value` is classified as an `arguments` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArguments(function() { return arguments; }());\\n * // => true\\n *\\n * _.isArguments([1, 2, 3]);\\n * // => false\\n */\\nfunction isArguments(value) {\\n  return isObjectLike(value) && isArrayLike(value) &&\\n    hasOwnProperty.call(value, \'callee\') && !propertyIsEnumerable.call(value, \'callee\');\\n}\\n\\nmodule.exports = isArguments;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isArguments.js\\n ** module id = 338\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar arrayTag = \'[object Array]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeIsArray = getNative(Array, \'isArray\');\\n\\n/**\\n * Checks if `value` is classified as an `Array` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArray([1, 2, 3]);\\n * // => true\\n *\\n * _.isArray(function() { return arguments; }());\\n * // => false\\n */\\nvar isArray = nativeIsArray || function(value) {\\n  return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\\n};\\n\\nmodule.exports = isArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isArray.js\\n ** module id = 339\\n ** module chunks = 0\\n **/","/** Used to detect unsigned integer values. */\\nvar reIsUint = /^\\\\d+$/;\\n\\n/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like index.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\\n */\\nfunction isIndex(value, length) {\\n  value = (typeof value == \'number\' || reIsUint.test(value)) ? +value : -1;\\n  length = length == null ? MAX_SAFE_INTEGER : length;\\n  return value > -1 && value % 1 == 0 && value < length;\\n}\\n\\nmodule.exports = isIndex;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isIndex.js\\n ** module id = 340\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'../internal/isIndex\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Creates an array of the own and inherited enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keysIn(new Foo);\\n * // => [\'a\', \'b\', \'c\'] (iteration order is not guaranteed)\\n */\\nfunction keysIn(object) {\\n  if (object == null) {\\n    return [];\\n  }\\n  if (!isObject(object)) {\\n    object = Object(object);\\n  }\\n  var length = object.length;\\n  length = (length && isLength(length) &&\\n    (isArray(object) || isArguments(object)) && length) || 0;\\n\\n  var Ctor = object.constructor,\\n      index = -1,\\n      isProto = typeof Ctor == \'function\' && Ctor.prototype === object,\\n      result = Array(length),\\n      skipIndexes = length > 0;\\n\\n  while (++index < length) {\\n    result[index] = (index + \'\');\\n  }\\n  for (var key in object) {\\n    if (!(skipIndexes && isIndex(key, length)) &&\\n        !(key == \'constructor\' && (isProto || !hasOwnProperty.call(object, key)))) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = keysIn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/object/keysIn.js\\n ** module id = 341\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a `baseEach` or `baseEachRight` function.\\n *\\n * @private\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseEach(eachFunc, fromRight) {\\n  return function(collection, iteratee) {\\n    var length = collection ? getLength(collection) : 0;\\n    if (!isLength(length)) {\\n      return eachFunc(collection, iteratee);\\n    }\\n    var index = fromRight ? length : -1,\\n        iterable = toObject(collection);\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      if (iteratee(iterable[index], index, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return collection;\\n  };\\n}\\n\\nmodule.exports = createBaseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/createBaseEach.js\\n ** module id = 342\\n ** module chunks = 0\\n **/","var bindCallback = require(\'./bindCallback\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/**\\n * Creates a function for `_.forEach` or `_.forEachRight`.\\n *\\n * @private\\n * @param {Function} arrayFunc The function to iterate over an array.\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @returns {Function} Returns the new each function.\\n */\\nfunction createForEach(arrayFunc, eachFunc) {\\n  return function(collection, iteratee, thisArg) {\\n    return (typeof iteratee == \'function\' && thisArg === undefined && isArray(collection))\\n      ? arrayFunc(collection, iteratee)\\n      : eachFunc(collection, bindCallback(iteratee, thisArg, 3));\\n  };\\n}\\n\\nmodule.exports = createForEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/createForEach.js\\n ** module id = 343\\n ** module chunks = 0\\n **/","var identity = require(\'../utility/identity\');\\n\\n/**\\n * A specialized version of `baseCallback` which only supports `this` binding\\n * and specifying the number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {Function} func The function to bind.\\n * @param {*} thisArg The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction bindCallback(func, thisArg, argCount) {\\n  if (typeof func != \'function\') {\\n    return identity;\\n  }\\n  if (thisArg === undefined) {\\n    return func;\\n  }\\n  switch (argCount) {\\n    case 1: return function(value) {\\n      return func.call(thisArg, value);\\n    };\\n    case 3: return function(value, index, collection) {\\n      return func.call(thisArg, value, index, collection);\\n    };\\n    case 4: return function(accumulator, value, index, collection) {\\n      return func.call(thisArg, accumulator, value, index, collection);\\n    };\\n    case 5: return function(value, other, key, object, source) {\\n      return func.call(thisArg, value, other, key, object, source);\\n    };\\n  }\\n  return function() {\\n    return func.apply(thisArg, arguments);\\n  };\\n}\\n\\nmodule.exports = bindCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/bindCallback.js\\n ** module id = 344\\n ** module chunks = 0\\n **/","/**\\n * This method returns the first argument provided to it.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {*} value Any value.\\n * @returns {*} Returns `value`.\\n * @example\\n *\\n * var object = { \'user\': \'fred\' };\\n *\\n * _.identity(object) === object;\\n * // => true\\n */\\nfunction identity(value) {\\n  return value;\\n}\\n\\nmodule.exports = identity;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/utility/identity.js\\n ** module id = 345\\n ** module chunks = 0\\n **/","var arrayMap = require(\'../internal/arrayMap\'),\\n    baseCallback = require(\'../internal/baseCallback\'),\\n    baseMap = require(\'../internal/baseMap\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/**\\n * Creates an array of values by running each element in `collection` through\\n * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three\\n * arguments: (value, index|key, collection).\\n *\\n * If a property name is provided for `iteratee` the created `_.property`\\n * style callback returns the property value of the given element.\\n *\\n * If a value is also provided for `thisArg` the created `_.matchesProperty`\\n * style callback returns `true` for elements that have a matching property\\n * value, else `false`.\\n *\\n * If an object is provided for `iteratee` the created `_.matches` style\\n * callback returns `true` for elements that have the properties of the given\\n * object, else `false`.\\n *\\n * Many lodash methods are guarded to work as iteratees for methods like\\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\\n *\\n * The guarded methods are:\\n * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`,\\n * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`,\\n * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`,\\n * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`,\\n * `sum`, `uniq`, and `words`\\n *\\n * @static\\n * @memberOf _\\n * @alias collect\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function|Object|string} [iteratee=_.identity] The function invoked\\n *  per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array} Returns the new mapped array.\\n * @example\\n *\\n * function timesThree(n) {\\n *   return n * 3;\\n * }\\n *\\n * _.map([1, 2], timesThree);\\n * // => [3, 6]\\n *\\n * _.map({ \'a\': 1, \'b\': 2 }, timesThree);\\n * // => [3, 6] (iteration order is not guaranteed)\\n *\\n * var users = [\\n *   { \'user\': \'barney\' },\\n *   { \'user\': \'fred\' }\\n * ];\\n *\\n * // using the `_.property` callback shorthand\\n * _.map(users, \'user\');\\n * // => [\'barney\', \'fred\']\\n */\\nfunction map(collection, iteratee, thisArg) {\\n  var func = isArray(collection) ? arrayMap : baseMap;\\n  iteratee = baseCallback(iteratee, thisArg, 3);\\n  return func(collection, iteratee);\\n}\\n\\nmodule.exports = map;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/collection/map.js\\n ** module id = 346\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.map` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns the new mapped array.\\n */\\nfunction arrayMap(array, iteratee) {\\n  var index = -1,\\n      length = array.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    result[index] = iteratee(array[index], index, array);\\n  }\\n  return result;\\n}\\n\\nmodule.exports = arrayMap;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/arrayMap.js\\n ** module id = 347\\n ** module chunks = 0\\n **/","var baseMatches = require(\'./baseMatches\'),\\n    baseMatchesProperty = require(\'./baseMatchesProperty\'),\\n    bindCallback = require(\'./bindCallback\'),\\n    identity = require(\'../utility/identity\'),\\n    property = require(\'../utility/property\');\\n\\n/**\\n * The base implementation of `_.callback` which supports specifying the\\n * number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {*} [func=_.identity] The value to convert to a callback.\\n * @param {*} [thisArg] The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction baseCallback(func, thisArg, argCount) {\\n  var type = typeof func;\\n  if (type == \'function\') {\\n    return thisArg === undefined\\n      ? func\\n      : bindCallback(func, thisArg, argCount);\\n  }\\n  if (func == null) {\\n    return identity;\\n  }\\n  if (type == \'object\') {\\n    return baseMatches(func);\\n  }\\n  return thisArg === undefined\\n    ? property(func)\\n    : baseMatchesProperty(func, thisArg);\\n}\\n\\nmodule.exports = baseCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseCallback.js\\n ** module id = 348\\n ** module chunks = 0\\n **/","var baseIsMatch = require(\'./baseIsMatch\'),\\n    getMatchData = require(\'./getMatchData\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.matches` which does not clone `source`.\\n *\\n * @private\\n * @param {Object} source The object of property values to match.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatches(source) {\\n  var matchData = getMatchData(source);\\n  if (matchData.length == 1 && matchData[0][2]) {\\n    var key = matchData[0][0],\\n        value = matchData[0][1];\\n\\n    return function(object) {\\n      if (object == null) {\\n        return false;\\n      }\\n      return object[key] === value && (value !== undefined || (key in toObject(object)));\\n    };\\n  }\\n  return function(object) {\\n    return baseIsMatch(object, matchData);\\n  };\\n}\\n\\nmodule.exports = baseMatches;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseMatches.js\\n ** module id = 349\\n ** module chunks = 0\\n **/","var baseIsEqual = require(\'./baseIsEqual\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.isMatch` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to inspect.\\n * @param {Array} matchData The propery names, values, and compare flags to match.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\\n */\\nfunction baseIsMatch(object, matchData, customizer) {\\n  var index = matchData.length,\\n      length = index,\\n      noCustomizer = !customizer;\\n\\n  if (object == null) {\\n    return !length;\\n  }\\n  object = toObject(object);\\n  while (index--) {\\n    var data = matchData[index];\\n    if ((noCustomizer && data[2])\\n          ? data[1] !== object[data[0]]\\n          : !(data[0] in object)\\n        ) {\\n      return false;\\n    }\\n  }\\n  while (++index < length) {\\n    data = matchData[index];\\n    var key = data[0],\\n        objValue = object[key],\\n        srcValue = data[1];\\n\\n    if (noCustomizer && data[2]) {\\n      if (objValue === undefined && !(key in object)) {\\n        return false;\\n      }\\n    } else {\\n      var result = customizer ? customizer(objValue, srcValue, key) : undefined;\\n      if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {\\n        return false;\\n      }\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = baseIsMatch;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseIsMatch.js\\n ** module id = 350\\n ** module chunks = 0\\n **/","var baseIsEqualDeep = require(\'./baseIsEqualDeep\'),\\n    isObject = require(\'../lang/isObject\'),\\n    isObjectLike = require(\'./isObjectLike\');\\n\\n/**\\n * The base implementation of `_.isEqual` without support for `this` binding\\n * `customizer` functions.\\n *\\n * @private\\n * @param {*} value The value to compare.\\n * @param {*} other The other value to compare.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\\n */\\nfunction baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {\\n  if (value === other) {\\n    return true;\\n  }\\n  if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\\n    return value !== value && other !== other;\\n  }\\n  return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);\\n}\\n\\nmodule.exports = baseIsEqual;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseIsEqual.js\\n ** module id = 351\\n ** module chunks = 0\\n **/","var equalArrays = require(\'./equalArrays\'),\\n    equalByTag = require(\'./equalByTag\'),\\n    equalObjects = require(\'./equalObjects\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isTypedArray = require(\'../lang/isTypedArray\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    objectTag = \'[object Object]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * A specialized version of `baseIsEqual` for arrays and objects which performs\\n * deep comparisons and tracks traversed objects enabling objects with circular\\n * references to be compared.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA=[]] Tracks traversed `value` objects.\\n * @param {Array} [stackB=[]] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objIsArr = isArray(object),\\n      othIsArr = isArray(other),\\n      objTag = arrayTag,\\n      othTag = arrayTag;\\n\\n  if (!objIsArr) {\\n    objTag = objToString.call(object);\\n    if (objTag == argsTag) {\\n      objTag = objectTag;\\n    } else if (objTag != objectTag) {\\n      objIsArr = isTypedArray(object);\\n    }\\n  }\\n  if (!othIsArr) {\\n    othTag = objToString.call(other);\\n    if (othTag == argsTag) {\\n      othTag = objectTag;\\n    } else if (othTag != objectTag) {\\n      othIsArr = isTypedArray(other);\\n    }\\n  }\\n  var objIsObj = objTag == objectTag,\\n      othIsObj = othTag == objectTag,\\n      isSameTag = objTag == othTag;\\n\\n  if (isSameTag && !(objIsArr || objIsObj)) {\\n    return equalByTag(object, other, objTag);\\n  }\\n  if (!isLoose) {\\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, \'__wrapped__\'),\\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, \'__wrapped__\');\\n\\n    if (objIsWrapped || othIsWrapped) {\\n      return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);\\n    }\\n  }\\n  if (!isSameTag) {\\n    return false;\\n  }\\n  // Assume cyclic values are equal.\\n  // For more information on detecting circular references see https://es5.github.io/#JO.\\n  stackA || (stackA = []);\\n  stackB || (stackB = []);\\n\\n  var length = stackA.length;\\n  while (length--) {\\n    if (stackA[length] == object) {\\n      return stackB[length] == other;\\n    }\\n  }\\n  // Add `object` and `other` to the stack of traversed objects.\\n  stackA.push(object);\\n  stackB.push(other);\\n\\n  var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);\\n\\n  stackA.pop();\\n  stackB.pop();\\n\\n  return result;\\n}\\n\\nmodule.exports = baseIsEqualDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseIsEqualDeep.js\\n ** module id = 352\\n ** module chunks = 0\\n **/","var arraySome = require(\'./arraySome\');\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for arrays with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Array} array The array to compare.\\n * @param {Array} other The other array to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing arrays.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\\n */\\nfunction equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var index = -1,\\n      arrLength = array.length,\\n      othLength = other.length;\\n\\n  if (arrLength != othLength && !(isLoose && othLength > arrLength)) {\\n    return false;\\n  }\\n  // Ignore non-index properties.\\n  while (++index < arrLength) {\\n    var arrValue = array[index],\\n        othValue = other[index],\\n        result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;\\n\\n    if (result !== undefined) {\\n      if (result) {\\n        continue;\\n      }\\n      return false;\\n    }\\n    // Recursively compare arrays (susceptible to call stack limits).\\n    if (isLoose) {\\n      if (!arraySome(other, function(othValue) {\\n            return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);\\n          })) {\\n        return false;\\n      }\\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalArrays;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/equalArrays.js\\n ** module id = 353\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.some` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} predicate The function invoked per iteration.\\n * @returns {boolean} Returns `true` if any element passes the predicate check,\\n *  else `false`.\\n */\\nfunction arraySome(array, predicate) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (predicate(array[index], index, array)) {\\n      return true;\\n    }\\n  }\\n  return false;\\n}\\n\\nmodule.exports = arraySome;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/arraySome.js\\n ** module id = 354\\n ** module chunks = 0\\n **/","/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    numberTag = \'[object Number]\',\\n    regexpTag = \'[object RegExp]\',\\n    stringTag = \'[object String]\';\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for comparing objects of\\n * the same `toStringTag`.\\n *\\n * **Note:** This function only supports comparing values with tags of\\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {string} tag The `toStringTag` of the objects to compare.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalByTag(object, other, tag) {\\n  switch (tag) {\\n    case boolTag:\\n    case dateTag:\\n      // Coerce dates and booleans to numbers, dates to milliseconds and booleans\\n      // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.\\n      return +object == +other;\\n\\n    case errorTag:\\n      return object.name == other.name && object.message == other.message;\\n\\n    case numberTag:\\n      // Treat `NaN` vs. `NaN` as equal.\\n      return (object != +object)\\n        ? other != +other\\n        : object == +other;\\n\\n    case regexpTag:\\n    case stringTag:\\n      // Coerce regexes to strings and treat strings primitives and string\\n      // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.\\n      return object == (other + \'\');\\n  }\\n  return false;\\n}\\n\\nmodule.exports = equalByTag;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/equalByTag.js\\n ** module id = 355\\n ** module chunks = 0\\n **/","var keys = require(\'../object/keys\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for objects with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objProps = keys(object),\\n      objLength = objProps.length,\\n      othProps = keys(other),\\n      othLength = othProps.length;\\n\\n  if (objLength != othLength && !isLoose) {\\n    return false;\\n  }\\n  var index = objLength;\\n  while (index--) {\\n    var key = objProps[index];\\n    if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {\\n      return false;\\n    }\\n  }\\n  var skipCtor = isLoose;\\n  while (++index < objLength) {\\n    key = objProps[index];\\n    var objValue = object[key],\\n        othValue = other[key],\\n        result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;\\n\\n    // Recursively compare objects (susceptible to call stack limits).\\n    if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {\\n      return false;\\n    }\\n    skipCtor || (skipCtor = key == \'constructor\');\\n  }\\n  if (!skipCtor) {\\n    var objCtor = object.constructor,\\n        othCtor = other.constructor;\\n\\n    // Non `Object` object instances with different constructors are not equal.\\n    if (objCtor != othCtor &&\\n        (\'constructor\' in object && \'constructor\' in other) &&\\n        !(typeof objCtor == \'function\' && objCtor instanceof objCtor &&\\n          typeof othCtor == \'function\' && othCtor instanceof othCtor)) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalObjects;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/equalObjects.js\\n ** module id = 356\\n ** module chunks = 0\\n **/","var isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    funcTag = \'[object Function]\',\\n    mapTag = \'[object Map]\',\\n    numberTag = \'[object Number]\',\\n    objectTag = \'[object Object]\',\\n    regexpTag = \'[object RegExp]\',\\n    setTag = \'[object Set]\',\\n    stringTag = \'[object String]\',\\n    weakMapTag = \'[object WeakMap]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to identify `toStringTag` values of typed arrays. */\\nvar typedArrayTags = {};\\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\\ntypedArrayTags[uint32Tag] = true;\\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a typed array.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isTypedArray(new Uint8Array);\\n * // => true\\n *\\n * _.isTypedArray([]);\\n * // => false\\n */\\nfunction isTypedArray(value) {\\n  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\\n}\\n\\nmodule.exports = isTypedArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isTypedArray.js\\n ** module id = 357\\n ** module chunks = 0\\n **/","var isStrictComparable = require(\'./isStrictComparable\'),\\n    pairs = require(\'../object/pairs\');\\n\\n/**\\n * Gets the propery names, values, and compare flags of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the match data of `object`.\\n */\\nfunction getMatchData(object) {\\n  var result = pairs(object),\\n      length = result.length;\\n\\n  while (length--) {\\n    result[length][2] = isStrictComparable(result[length][1]);\\n  }\\n  return result;\\n}\\n\\nmodule.exports = getMatchData;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/getMatchData.js\\n ** module id = 358\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` if suitable for strict\\n *  equality comparisons, else `false`.\\n */\\nfunction isStrictComparable(value) {\\n  return value === value && !isObject(value);\\n}\\n\\nmodule.exports = isStrictComparable;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isStrictComparable.js\\n ** module id = 359\\n ** module chunks = 0\\n **/","var keys = require(\'./keys\'),\\n    toObject = require(\'../internal/toObject\');\\n\\n/**\\n * Creates a two dimensional array of the key-value pairs for `object`,\\n * e.g. `[[key1, value1], [key2, value2]]`.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the new array of key-value pairs.\\n * @example\\n *\\n * _.pairs({ \'barney\': 36, \'fred\': 40 });\\n * // => [[\'barney\', 36], [\'fred\', 40]] (iteration order is not guaranteed)\\n */\\nfunction pairs(object) {\\n  object = toObject(object);\\n\\n  var index = -1,\\n      props = keys(object),\\n      length = props.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    var key = props[index];\\n    result[index] = [key, object[key]];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = pairs;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/object/pairs.js\\n ** module id = 360\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    baseIsEqual = require(\'./baseIsEqual\'),\\n    baseSlice = require(\'./baseSlice\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isKey = require(\'./isKey\'),\\n    isStrictComparable = require(\'./isStrictComparable\'),\\n    last = require(\'../array/last\'),\\n    toObject = require(\'./toObject\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * The base implementation of `_.matchesProperty` which does not clone `srcValue`.\\n *\\n * @private\\n * @param {string} path The path of the property to get.\\n * @param {*} srcValue The value to compare.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatchesProperty(path, srcValue) {\\n  var isArr = isArray(path),\\n      isCommon = isKey(path) && isStrictComparable(srcValue),\\n      pathKey = (path + \'\');\\n\\n  path = toPath(path);\\n  return function(object) {\\n    if (object == null) {\\n      return false;\\n    }\\n    var key = pathKey;\\n    object = toObject(object);\\n    if ((isArr || !isCommon) && !(key in object)) {\\n      object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\\n      if (object == null) {\\n        return false;\\n      }\\n      key = last(path);\\n      object = toObject(object);\\n    }\\n    return object[key] === srcValue\\n      ? (srcValue !== undefined || (key in object))\\n      : baseIsEqual(srcValue, object[key], undefined, true);\\n  };\\n}\\n\\nmodule.exports = baseMatchesProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseMatchesProperty.js\\n ** module id = 361\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `get` without support for string paths\\n * and default values.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {Array} path The path of the property to get.\\n * @param {string} [pathKey] The key representation of path.\\n * @returns {*} Returns the resolved value.\\n */\\nfunction baseGet(object, path, pathKey) {\\n  if (object == null) {\\n    return;\\n  }\\n  if (pathKey !== undefined && pathKey in toObject(object)) {\\n    path = [pathKey];\\n  }\\n  var index = 0,\\n      length = path.length;\\n\\n  while (object != null && index < length) {\\n    object = object[path[index++]];\\n  }\\n  return (index && index == length) ? object : undefined;\\n}\\n\\nmodule.exports = baseGet;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseGet.js\\n ** module id = 362\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.slice` without an iteratee call guard.\\n *\\n * @private\\n * @param {Array} array The array to slice.\\n * @param {number} [start=0] The start position.\\n * @param {number} [end=array.length] The end position.\\n * @returns {Array} Returns the slice of `array`.\\n */\\nfunction baseSlice(array, start, end) {\\n  var index = -1,\\n      length = array.length;\\n\\n  start = start == null ? 0 : (+start || 0);\\n  if (start < 0) {\\n    start = -start > length ? 0 : (length + start);\\n  }\\n  end = (end === undefined || end > length) ? length : (+end || 0);\\n  if (end < 0) {\\n    end += length;\\n  }\\n  length = start > end ? 0 : ((end - start) >>> 0);\\n  start >>>= 0;\\n\\n  var result = Array(length);\\n  while (++index < length) {\\n    result[index] = array[index + start];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseSlice;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseSlice.js\\n ** module id = 363\\n ** module chunks = 0\\n **/","var isArray = require(\'../lang/isArray\'),\\n    toObject = require(\'./toObject\');\\n\\n/** Used to match property names within property paths. */\\nvar reIsDeepProp = /\\\\.|\\\\[(?:[^[\\\\]]*|([\\"\'])(?:(?!\\\\1)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?\\\\1)\\\\]/,\\n    reIsPlainProp = /^\\\\w*$/;\\n\\n/**\\n * Checks if `value` is a property name and not a property path.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {Object} [object] The object to query keys on.\\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\\n */\\nfunction isKey(value, object) {\\n  var type = typeof value;\\n  if ((type == \'string\' && reIsPlainProp.test(value)) || type == \'number\') {\\n    return true;\\n  }\\n  if (isArray(value)) {\\n    return false;\\n  }\\n  var result = !reIsDeepProp.test(value);\\n  return result || (object != null && value in toObject(object));\\n}\\n\\nmodule.exports = isKey;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isKey.js\\n ** module id = 364\\n ** module chunks = 0\\n **/","/**\\n * Gets the last element of `array`.\\n *\\n * @static\\n * @memberOf _\\n * @category Array\\n * @param {Array} array The array to query.\\n * @returns {*} Returns the last element of `array`.\\n * @example\\n *\\n * _.last([1, 2, 3]);\\n * // => 3\\n */\\nfunction last(array) {\\n  var length = array ? array.length : 0;\\n  return length ? array[length - 1] : undefined;\\n}\\n\\nmodule.exports = last;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/array/last.js\\n ** module id = 365\\n ** module chunks = 0\\n **/","var baseToString = require(\'./baseToString\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/** Used to match property names within property paths. */\\nvar rePropName = /[^.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\"\'])((?:(?!\\\\2)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]/g;\\n\\n/** Used to match backslashes in property paths. */\\nvar reEscapeChar = /\\\\\\\\(\\\\\\\\)?/g;\\n\\n/**\\n * Converts `value` to property path array if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Array} Returns the property path array.\\n */\\nfunction toPath(value) {\\n  if (isArray(value)) {\\n    return value;\\n  }\\n  var result = [];\\n  baseToString(value).replace(rePropName, function(match, number, quote, string) {\\n    result.push(quote ? string.replace(reEscapeChar, \'$1\') : (number || match));\\n  });\\n  return result;\\n}\\n\\nmodule.exports = toPath;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/toPath.js\\n ** module id = 366\\n ** module chunks = 0\\n **/","/**\\n * Converts `value` to a string if it\'s not one. An empty string is returned\\n * for `null` or `undefined` values.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {string} Returns the string.\\n */\\nfunction baseToString(value) {\\n  return value == null ? \'\' : (value + \'\');\\n}\\n\\nmodule.exports = baseToString;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseToString.js\\n ** module id = 367\\n ** module chunks = 0\\n **/","var baseProperty = require(\'../internal/baseProperty\'),\\n    basePropertyDeep = require(\'../internal/basePropertyDeep\'),\\n    isKey = require(\'../internal/isKey\');\\n\\n/**\\n * Creates a function that returns the property value at `path` on a\\n * given object.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n * @example\\n *\\n * var objects = [\\n *   { \'a\': { \'b\': { \'c\': 2 } } },\\n *   { \'a\': { \'b\': { \'c\': 1 } } }\\n * ];\\n *\\n * _.map(objects, _.property(\'a.b.c\'));\\n * // => [2, 1]\\n *\\n * _.pluck(_.sortBy(objects, _.property([\'a\', \'b\', \'c\'])), \'a.b.c\');\\n * // => [1, 2]\\n */\\nfunction property(path) {\\n  return isKey(path) ? baseProperty(path) : basePropertyDeep(path);\\n}\\n\\nmodule.exports = property;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/utility/property.js\\n ** module id = 368\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * A specialized version of `baseProperty` which supports deep paths.\\n *\\n * @private\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction basePropertyDeep(path) {\\n  var pathKey = (path + \'\');\\n  path = toPath(path);\\n  return function(object) {\\n    return baseGet(object, path, pathKey);\\n  };\\n}\\n\\nmodule.exports = basePropertyDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/basePropertyDeep.js\\n ** module id = 369\\n ** module chunks = 0\\n **/","var baseEach = require(\'./baseEach\'),\\n    isArrayLike = require(\'./isArrayLike\');\\n\\n/**\\n * The base implementation of `_.map` without support for callback shorthands\\n * and `this` binding.\\n *\\n * @private\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns the new mapped array.\\n */\\nfunction baseMap(collection, iteratee) {\\n  var index = -1,\\n      result = isArrayLike(collection) ? Array(collection.length) : [];\\n\\n  baseEach(collection, function(value, key, collection) {\\n    result[++index] = iteratee(value, key, collection);\\n  });\\n  return result;\\n}\\n\\nmodule.exports = baseMap;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseMap.js\\n ** module id = 370\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.NullableTypeAnnotation = NullableTypeAnnotation;\\nexports.UpdateExpression = UpdateExpression;\\nexports.ObjectExpression = ObjectExpression;\\nexports.Binary = Binary;\\nexports.BinaryExpression = BinaryExpression;\\nexports.SequenceExpression = SequenceExpression;\\nexports.YieldExpression = YieldExpression;\\nexports.ClassExpression = ClassExpression;\\nexports.UnaryLike = UnaryLike;\\nexports.FunctionExpression = FunctionExpression;\\nexports.ArrowFunctionExpression = ArrowFunctionExpression;\\nexports.ConditionalExpression = ConditionalExpression;\\nexports.AssignmentExpression = AssignmentExpression;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar PRECEDENCE = {\\n  \\"||\\": 0,\\n  \\"&&\\": 1,\\n  \\"|\\": 2,\\n  \\"^\\": 3,\\n  \\"&\\": 4,\\n  \\"==\\": 5,\\n  \\"===\\": 5,\\n  \\"!=\\": 5,\\n  \\"!==\\": 5,\\n  \\"<\\": 6,\\n  \\">\\": 6,\\n  \\"<=\\": 6,\\n  \\">=\\": 6,\\n  \\"in\\": 6,\\n  \\"instanceof\\": 6,\\n  \\">>\\": 7,\\n  \\"<<\\": 7,\\n  \\">>>\\": 7,\\n  \\"+\\": 8,\\n  \\"-\\": 8,\\n  \\"*\\": 9,\\n  \\"/\\": 9,\\n  \\"%\\": 9,\\n  \\"**\\": 10\\n};\\n\\nfunction NullableTypeAnnotation(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  return t.isArrayTypeAnnotation(parent);\\n}\\n\\nexports.FunctionTypeAnnotation = NullableTypeAnnotation;\\n\\nfunction UpdateExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isMemberExpression(parent) && parent.object === node) {\\n    // (foo++).test()\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction ObjectExpression(node /*: Object*/, parent /*: Object*/, printStack /*: Array<Object>*/) /*: boolean*/ {\\n  if (t.isExpressionStatement(parent)) {\\n    // ({ foo: \\"bar\\" });\\n    return true;\\n  }\\n\\n  return isFirstInStatement(printStack, true);\\n}\\n\\nfunction Binary(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if ((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) {\\n    return true;\\n  }\\n\\n  if (t.isUnaryLike(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isMemberExpression(parent) && parent.object === node) {\\n    return true;\\n  }\\n\\n  if (t.isBinary(parent)) {\\n    var parentOp = parent.operator;\\n    var parentPos = PRECEDENCE[parentOp];\\n\\n    var nodeOp = node.operator;\\n    var nodePos = PRECEDENCE[nodeOp];\\n\\n    if (parentPos > nodePos) {\\n      return true;\\n    }\\n\\n    // Logical expressions with the same precedence don\'t need parens.\\n    if (parentPos === nodePos && parent.right === node && !t.isLogicalExpression(parent)) {\\n      return true;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\nfunction BinaryExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (node.operator === \\"in\\") {\\n    // let i = (1 in []);\\n    if (t.isVariableDeclarator(parent)) {\\n      return true;\\n    }\\n\\n    // for ((1 in []);;);\\n    if (t.isFor(parent)) {\\n      return true;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\nfunction SequenceExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isForStatement(parent)) {\\n    // Although parentheses wouldn\\"t hurt around sequence\\n    // expressions in the head of for loops, traditional style\\n    // dictates that e.g. i++, j++ should not be wrapped with\\n    // parentheses.\\n    return false;\\n  }\\n\\n  if (t.isExpressionStatement(parent) && parent.expression === node) {\\n    return false;\\n  }\\n\\n  if (t.isReturnStatement(parent)) {\\n    return false;\\n  }\\n\\n  if (t.isThrowStatement(parent)) {\\n    return false;\\n  }\\n\\n  if (t.isSwitchStatement(parent) && parent.discriminant === node) {\\n    return false;\\n  }\\n\\n  if (t.isWhileStatement(parent) && parent.test === node) {\\n    return false;\\n  }\\n\\n  if (t.isIfStatement(parent) && parent.test === node) {\\n    return false;\\n  }\\n\\n  if (t.isForInStatement(parent) && parent.right === node) {\\n    return false;\\n  }\\n\\n  // Otherwise err on the side of overparenthesization, adding\\n  // explicit exceptions above if this proves overzealous.\\n  return true;\\n}\\n\\nfunction YieldExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  return t.isBinary(parent) || t.isUnaryLike(parent) || t.isCallExpression(parent) || t.isMemberExpression(parent) || t.isNewExpression(parent);\\n}\\n\\nexports.AwaitExpression = YieldExpression;\\n\\nfunction ClassExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  // (class {});\\n  if (t.isExpressionStatement(parent)) {\\n    return true;\\n  }\\n\\n  // export default (class () {});\\n  if (t.isExportDeclaration(parent)) {\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction UnaryLike(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isMemberExpression(parent, { object: node })) {\\n    return true;\\n  }\\n\\n  if (t.isCallExpression(parent, { callee: node }) || t.isNewExpression(parent, { callee: node })) {\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction FunctionExpression(node /*: Object*/, parent /*: Object*/, printStack /*: Array<Object>*/) /*: boolean*/ {\\n  // (function () {});\\n  if (t.isExpressionStatement(parent)) {\\n    return true;\\n  }\\n\\n  // export default (function () {});\\n  if (t.isExportDeclaration(parent)) {\\n    return true;\\n  }\\n\\n  return isFirstInStatement(printStack);\\n}\\n\\nfunction ArrowFunctionExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  // export default (function () {});\\n  if (t.isExportDeclaration(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isBinaryExpression(parent) || t.isLogicalExpression(parent)) {\\n    return true;\\n  }\\n\\n  return UnaryLike(node, parent);\\n}\\n\\nfunction ConditionalExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isUnaryLike(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isBinary(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isConditionalExpression(parent, { test: node })) {\\n    return true;\\n  }\\n\\n  return UnaryLike(node, parent);\\n}\\n\\nfunction AssignmentExpression(node /*: Object*/) /*: boolean*/ {\\n  if (t.isObjectPattern(node.left)) {\\n    return true;\\n  } else {\\n    return ConditionalExpression.apply(undefined, arguments);\\n  }\\n}\\n\\n// Walk up the print stack to deterimine if our node can come first\\n// in statement.\\nfunction isFirstInStatement(printStack /*: Array<Object>*/) /*: boolean*/ {\\n  var considerArrow /*: bool*/ = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\\n\\n  var i = printStack.length - 1;\\n  var node = printStack[i];\\n  i--;\\n  var parent = printStack[i];\\n  while (i > 0) {\\n    if (t.isExpressionStatement(parent, { expression: node })) {\\n      return true;\\n    }\\n\\n    if (considerArrow && t.isArrowFunctionExpression(parent, { body: node })) {\\n      return true;\\n    }\\n\\n    if (t.isCallExpression(parent, { callee: node }) || t.isSequenceExpression(parent) && parent.expressions[0] === node || t.isMemberExpression(parent, { object: node }) || t.isConditional(parent, { test: node }) || t.isBinary(parent, { left: node }) || t.isAssignmentExpression(parent, { left: node })) {\\n      node = parent;\\n      i--;\\n      parent = printStack[i];\\n    } else {\\n      return false;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/node/parentheses.js\\n ** module id = 371\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.TaggedTemplateExpression = TaggedTemplateExpression;\\nexports.TemplateElement = TemplateElement;\\nexports.TemplateLiteral = TemplateLiteral;\\n\\nfunction TaggedTemplateExpression(node /*: Object*/) {\\n  this.print(node.tag, node);\\n  this.print(node.quasi, node);\\n}\\n\\nfunction TemplateElement(node /*: Object*/) {\\n  this._push(node.value.raw);\\n}\\n\\nfunction TemplateLiteral(node /*: Object*/) {\\n  this.push(\\"`\\");\\n\\n  var quasis = node.quasis;\\n\\n  for (var i = 0; i < quasis.length; i++) {\\n    this.print(quasis[i], node);\\n\\n    if (i + 1 < quasis.length) {\\n      this._push(\\"${ \\");\\n      this.print(node.expressions[i], node);\\n      this.push(\\" }\\");\\n    }\\n  }\\n\\n  this._push(\\"`\\");\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/template-literals.js\\n ** module id = 372\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.UnaryExpression = UnaryExpression;\\nexports.DoExpression = DoExpression;\\nexports.ParenthesizedExpression = ParenthesizedExpression;\\nexports.UpdateExpression = UpdateExpression;\\nexports.ConditionalExpression = ConditionalExpression;\\nexports.NewExpression = NewExpression;\\nexports.SequenceExpression = SequenceExpression;\\nexports.ThisExpression = ThisExpression;\\nexports.Super = Super;\\nexports.Decorator = Decorator;\\nexports.CallExpression = CallExpression;\\nexports.EmptyStatement = EmptyStatement;\\nexports.ExpressionStatement = ExpressionStatement;\\nexports.AssignmentPattern = AssignmentPattern;\\nexports.AssignmentExpression = AssignmentExpression;\\nexports.BindExpression = BindExpression;\\nexports.MemberExpression = MemberExpression;\\nexports.MetaProperty = MetaProperty;\\n\\nvar _isInteger = require(\\"is-integer\\");\\n\\nvar _isInteger2 = _interopRequireDefault(_isInteger);\\n\\nvar _lodashLangIsNumber = require(\\"lodash/lang/isNumber\\");\\n\\nvar _lodashLangIsNumber2 = _interopRequireDefault(_lodashLangIsNumber);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _node = require(\\"../node\\");\\n\\nvar n = _interopRequireWildcard(_node);\\n\\nvar SCIENTIFIC_NOTATION = /e/i;\\nvar ZERO_DECIMAL_INTEGER = /\\\\.0+$/;\\n\\nfunction UnaryExpression(node /*: Object*/) {\\n  var needsSpace = /[a-z]$/.test(node.operator);\\n  var arg = node.argument;\\n\\n  if (t.isUpdateExpression(arg) || t.isUnaryExpression(arg)) {\\n    needsSpace = true;\\n  }\\n\\n  if (t.isUnaryExpression(arg) && arg.operator === \\"!\\") {\\n    needsSpace = false;\\n  }\\n\\n  this.push(node.operator);\\n  if (needsSpace) this.push(\\" \\");\\n  this.print(node.argument, node);\\n}\\n\\nfunction DoExpression(node /*: Object*/) {\\n  this.push(\\"do\\");\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction ParenthesizedExpression(node /*: Object*/) {\\n  this.push(\\"(\\");\\n  this.print(node.expression, node);\\n  this.push(\\")\\");\\n}\\n\\nfunction UpdateExpression(node /*: Object*/) {\\n  if (node.prefix) {\\n    this.push(node.operator);\\n    this.print(node.argument, node);\\n  } else {\\n    this.print(node.argument, node);\\n    this.push(node.operator);\\n  }\\n}\\n\\nfunction ConditionalExpression(node /*: Object*/) {\\n  this.print(node.test, node);\\n  this.space();\\n  this.push(\\"?\\");\\n  this.space();\\n  this.print(node.consequent, node);\\n  this.space();\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.alternate, node);\\n}\\n\\nfunction NewExpression(node /*: Object*/, parent /*: Object*/) {\\n  this.push(\\"new \\");\\n  this.print(node.callee, node);\\n  if (node.arguments.length === 0 && this.format.minified && !t.isCallExpression(parent, { callee: node }) && !t.isMemberExpression(parent) && !t.isNewExpression(parent)) return;\\n\\n  this.push(\\"(\\");\\n  this.printList(node.arguments, node);\\n  this.push(\\")\\");\\n}\\n\\nfunction SequenceExpression(node /*: Object*/) {\\n  this.printList(node.expressions, node);\\n}\\n\\nfunction ThisExpression() {\\n  this.push(\\"this\\");\\n}\\n\\nfunction Super() {\\n  this.push(\\"super\\");\\n}\\n\\nfunction Decorator(node /*: Object*/) {\\n  this.push(\\"@\\");\\n  this.print(node.expression, node);\\n  this.newline();\\n}\\n\\nfunction CallExpression(node /*: Object*/) {\\n  this.print(node.callee, node);\\n  if (node.loc) this.printAuxAfterComment();\\n\\n  this.push(\\"(\\");\\n\\n  var isPrettyCall = node._prettyCall && !this.format.retainLines && !this.format.compact;\\n\\n  var separator = undefined;\\n  if (isPrettyCall) {\\n    separator = \\",\\\\n\\";\\n    this.newline();\\n    this.indent();\\n  }\\n\\n  this.printList(node.arguments, node, { separator: separator });\\n\\n  if (isPrettyCall) {\\n    this.newline();\\n    this.dedent();\\n  }\\n\\n  this.push(\\")\\");\\n}\\n\\nfunction buildYieldAwait(keyword /*: string*/) {\\n  return function (node /*: Object*/) {\\n    this.push(keyword);\\n\\n    if (node.delegate) {\\n      this.push(\\"*\\");\\n    }\\n\\n    if (node.argument) {\\n      this.push(\\" \\");\\n      var terminatorState = this.startTerminatorless();\\n      this.print(node.argument, node);\\n      this.endTerminatorless(terminatorState);\\n    }\\n  };\\n}\\n\\nvar YieldExpression = buildYieldAwait(\\"yield\\");\\nexports.YieldExpression = YieldExpression;\\nvar AwaitExpression = buildYieldAwait(\\"await\\");\\n\\nexports.AwaitExpression = AwaitExpression;\\n\\nfunction EmptyStatement() {\\n  this._lastPrintedIsEmptyStatement = true;\\n  this.semicolon();\\n}\\n\\nfunction ExpressionStatement(node /*: Object*/) {\\n  this.print(node.expression, node);\\n  this.semicolon();\\n}\\n\\nfunction AssignmentPattern(node /*: Object*/) {\\n  this.print(node.left, node);\\n  this.space();\\n  this.push(\\"=\\");\\n  this.space();\\n  this.print(node.right, node);\\n}\\n\\nfunction AssignmentExpression(node /*: Object*/, parent /*: Object*/) {\\n  // Somewhere inside a for statement `init` node but doesn\'t usually\\n  // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`\\n  var parens = this._inForStatementInitCounter && node.operator === \\"in\\" && !n.needsParens(node, parent);\\n\\n  if (parens) {\\n    this.push(\\"(\\");\\n  }\\n\\n  this.print(node.left, node);\\n\\n  var spaces = !this.format.compact || node.operator === \\"in\\" || node.operator === \\"instanceof\\";\\n  if (spaces) this.push(\\" \\");\\n\\n  this.push(node.operator);\\n\\n  if (!spaces) {\\n    // space is mandatory to avoid outputting <!--\\n    // http://javascript.spec.whatwg.org/#comment-syntax\\n    spaces = node.operator === \\"<\\" && t.isUnaryExpression(node.right, { prefix: true, operator: \\"!\\" }) && t.isUnaryExpression(node.right.argument, { prefix: true, operator: \\"--\\" });\\n\\n    // Need spaces for operators of the same kind to avoid: `a+++b`\\n    if (!spaces) {\\n      var right = getLeftMost(node.right);\\n      spaces = t.isUnaryExpression(right, { prefix: true, operator: node.operator }) || t.isUpdateExpression(right, { prefix: true, operator: node.operator + node.operator });\\n    }\\n  }\\n\\n  if (spaces) this.push(\\" \\");\\n\\n  this.print(node.right, node);\\n\\n  if (parens) {\\n    this.push(\\")\\");\\n  }\\n}\\n\\nfunction BindExpression(node /*: Object*/) {\\n  this.print(node.object, node);\\n  this.push(\\"::\\");\\n  this.print(node.callee, node);\\n}\\n\\nexports.BinaryExpression = AssignmentExpression;\\nexports.LogicalExpression = AssignmentExpression;\\n\\nfunction MemberExpression(node /*: Object*/) {\\n  this.print(node.object, node);\\n\\n  if (!node.computed && t.isMemberExpression(node.property)) {\\n    throw new TypeError(\\"Got a MemberExpression for MemberExpression property\\");\\n  }\\n\\n  var computed = node.computed;\\n  if (t.isLiteral(node.property) && _lodashLangIsNumber2[\\"default\\"](node.property.value)) {\\n    computed = true;\\n  }\\n\\n  if (computed) {\\n    this.push(\\"[\\");\\n    this.print(node.property, node);\\n    this.push(\\"]\\");\\n  } else {\\n    if (t.isNumericLiteral(node.object)) {\\n      var val = this.getPossibleRaw(node.object) || node.object.value;\\n      if (_isInteger2[\\"default\\"](+val) && !SCIENTIFIC_NOTATION.test(val) && !ZERO_DECIMAL_INTEGER.test(val) && !this.endsWith(\\".\\")) {\\n        this.push(\\".\\");\\n      }\\n    }\\n\\n    this.push(\\".\\");\\n    this.print(node.property, node);\\n  }\\n}\\n\\nfunction MetaProperty(node /*: Object*/) {\\n  this.print(node.meta, node);\\n  this.push(\\".\\");\\n  this.print(node.property, node);\\n}\\n\\nfunction getLeftMost(binaryExpr) {\\n  if (!t.isBinaryExpression(binaryExpr)) {\\n    return binaryExpr;\\n  }\\n  return getLeftMost(binaryExpr.left);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/expressions.js\\n ** module id = 373\\n ** module chunks = 0\\n **/","// https://github.com/paulmillr/es6-shim\\n// http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger\\nvar isFinite = require(\\"is-finite\\");\\nmodule.exports = Number.isInteger || function(val) {\\n  return typeof val === \\"number\\" &&\\n    isFinite(val) &&\\n    Math.floor(val) === val;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/is-integer/index.js\\n ** module id = 374\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar numberIsNan = require(\'number-is-nan\');\\n\\nmodule.exports = Number.isFinite || function (val) {\\n\\treturn !(typeof val !== \'number\' || numberIsNan(val) || val === Infinity || val === -Infinity);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/is-integer/~/is-finite/index.js\\n ** module id = 375\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = Number.isNaN || function (x) {\\n\\treturn x !== x;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/is-integer/~/is-finite/~/number-is-nan/index.js\\n ** module id = 376\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar numberTag = \'[object Number]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Number` primitive or object.\\n *\\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\\n * as numbers, use the `_.isFinite` method.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isNumber(8.4);\\n * // => true\\n *\\n * _.isNumber(NaN);\\n * // => true\\n *\\n * _.isNumber(\'8.4\');\\n * // => false\\n */\\nfunction isNumber(value) {\\n  return typeof value == \'number\' || (isObjectLike(value) && objToString.call(value) == numberTag);\\n}\\n\\nmodule.exports = isNumber;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isNumber.js\\n ** module id = 377\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.WithStatement = WithStatement;\\nexports.IfStatement = IfStatement;\\nexports.ForStatement = ForStatement;\\nexports.WhileStatement = WhileStatement;\\nexports.DoWhileStatement = DoWhileStatement;\\nexports.LabeledStatement = LabeledStatement;\\nexports.TryStatement = TryStatement;\\nexports.CatchClause = CatchClause;\\nexports.SwitchStatement = SwitchStatement;\\nexports.SwitchCase = SwitchCase;\\nexports.DebuggerStatement = DebuggerStatement;\\nexports.VariableDeclaration = VariableDeclaration;\\nexports.VariableDeclarator = VariableDeclarator;\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar NON_ALPHABETIC_UNARY_OPERATORS = t.UPDATE_OPERATORS.concat(t.NUMBER_UNARY_OPERATORS).concat([\\"!\\"]);\\n\\nfunction WithStatement(node /*: Object*/) {\\n  this.keyword(\\"with\\");\\n  this.push(\\"(\\");\\n  this.print(node.object, node);\\n  this.push(\\")\\");\\n  this.printBlock(node);\\n}\\n\\nfunction IfStatement(node /*: Object*/) {\\n  this.keyword(\\"if\\");\\n  this.push(\\"(\\");\\n  this.print(node.test, node);\\n  this.push(\\")\\");\\n  this.space();\\n\\n  var needsBlock = node.alternate && t.isIfStatement(getLastStatement(node.consequent));\\n  if (needsBlock) {\\n    this.push(\\"{\\");\\n    this.newline();\\n    this.indent();\\n  }\\n\\n  this.printAndIndentOnComments(node.consequent, node);\\n\\n  if (needsBlock) {\\n    this.dedent();\\n    this.newline();\\n    this.push(\\"}\\");\\n  }\\n\\n  if (node.alternate) {\\n    if (this.isLast(\\"}\\")) this.space();\\n    this.push(\\"else \\");\\n    this.printAndIndentOnComments(node.alternate, node);\\n  }\\n}\\n\\n// Recursively get the last statement.\\nfunction getLastStatement(statement) {\\n  if (!t.isStatement(statement.body)) return statement;\\n  return getLastStatement(statement.body);\\n}\\n\\nfunction ForStatement(node /*: Object*/) {\\n  this.keyword(\\"for\\");\\n  this.push(\\"(\\");\\n\\n  this._inForStatementInitCounter++;\\n  this.print(node.init, node);\\n  this._inForStatementInitCounter--;\\n  this.push(\\";\\");\\n\\n  if (node.test) {\\n    this.space();\\n    this.print(node.test, node);\\n  }\\n  this.push(\\";\\");\\n\\n  if (node.update) {\\n    this.space();\\n    this.print(node.update, node);\\n  }\\n\\n  this.push(\\")\\");\\n  this.printBlock(node);\\n}\\n\\nfunction WhileStatement(node /*: Object*/) {\\n  this.keyword(\\"while\\");\\n  this.push(\\"(\\");\\n  this.print(node.test, node);\\n  this.push(\\")\\");\\n  this.printBlock(node);\\n}\\n\\nvar buildForXStatement = function buildForXStatement(op) {\\n  return function (node /*: Object*/) {\\n    this.keyword(\\"for\\");\\n    this.push(\\"(\\");\\n    this.print(node.left, node);\\n    this.push(\\" \\" + op + \\" \\");\\n    this.print(node.right, node);\\n    this.push(\\")\\");\\n    this.printBlock(node);\\n  };\\n};\\n\\nvar ForInStatement = buildForXStatement(\\"in\\");\\nexports.ForInStatement = ForInStatement;\\nvar ForOfStatement = buildForXStatement(\\"of\\");\\n\\nexports.ForOfStatement = ForOfStatement;\\n\\nfunction DoWhileStatement(node /*: Object*/) {\\n  this.push(\\"do \\");\\n  this.print(node.body, node);\\n  this.space();\\n  this.keyword(\\"while\\");\\n  this.push(\\"(\\");\\n  this.print(node.test, node);\\n  this.push(\\");\\");\\n}\\n\\nfunction buildLabelStatement(prefix) {\\n  var key = arguments.length <= 1 || arguments[1] === undefined ? \\"label\\" : arguments[1];\\n\\n  return function (node /*: Object*/) {\\n    this.push(prefix);\\n\\n    var label = node[key];\\n    if (label) {\\n      if (!(this.format.minified && (t.isUnaryExpression(label, { prefix: true }) || t.isUpdateExpression(label, { prefix: true })) && NON_ALPHABETIC_UNARY_OPERATORS.indexOf(label.operator) > -1)) {\\n        this.push(\\" \\");\\n      }\\n\\n      var terminatorState = this.startTerminatorless();\\n      this.print(label, node);\\n      this.endTerminatorless(terminatorState);\\n    }\\n\\n    this.semicolon();\\n  };\\n}\\n\\nvar ContinueStatement = buildLabelStatement(\\"continue\\");\\nexports.ContinueStatement = ContinueStatement;\\nvar ReturnStatement = buildLabelStatement(\\"return\\", \\"argument\\");\\nexports.ReturnStatement = ReturnStatement;\\nvar BreakStatement = buildLabelStatement(\\"break\\");\\nexports.BreakStatement = BreakStatement;\\nvar ThrowStatement = buildLabelStatement(\\"throw\\", \\"argument\\");\\n\\nexports.ThrowStatement = ThrowStatement;\\n\\nfunction LabeledStatement(node /*: Object*/) {\\n  this.print(node.label, node);\\n  this.push(\\": \\");\\n  this.print(node.body, node);\\n}\\n\\nfunction TryStatement(node /*: Object*/) {\\n  this.keyword(\\"try\\");\\n  this.print(node.block, node);\\n  this.space();\\n\\n  // Esprima bug puts the catch clause in a `handlers` array.\\n  // see https://code.google.com/p/esprima/issues/detail?id=433\\n  // We run into this from regenerator generated ast.\\n  if (node.handlers) {\\n    this.print(node.handlers[0], node);\\n  } else {\\n    this.print(node.handler, node);\\n  }\\n\\n  if (node.finalizer) {\\n    this.space();\\n    this.push(\\"finally \\");\\n    this.print(node.finalizer, node);\\n  }\\n}\\n\\nfunction CatchClause(node /*: Object*/) {\\n  this.keyword(\\"catch\\");\\n  this.push(\\"(\\");\\n  this.print(node.param, node);\\n  this.push(\\")\\");\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction SwitchStatement(node /*: Object*/) {\\n  this.keyword(\\"switch\\");\\n  this.push(\\"(\\");\\n  this.print(node.discriminant, node);\\n  this.push(\\")\\");\\n  this.space();\\n  this.push(\\"{\\");\\n\\n  this.printSequence(node.cases, node, {\\n    indent: true,\\n    addNewlines: function addNewlines(leading, cas) {\\n      if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\\n    }\\n  });\\n\\n  this.push(\\"}\\");\\n}\\n\\nfunction SwitchCase(node /*: Object*/) {\\n  if (node.test) {\\n    this.push(\\"case \\");\\n    this.print(node.test, node);\\n    this.push(\\":\\");\\n  } else {\\n    this.push(\\"default:\\");\\n  }\\n\\n  if (node.consequent.length) {\\n    this.newline();\\n    this.printSequence(node.consequent, node, { indent: true });\\n  }\\n}\\n\\nfunction DebuggerStatement() {\\n  this.push(\\"debugger;\\");\\n}\\n\\nfunction VariableDeclaration(node /*: Object*/, parent /*: Object*/) {\\n  this.push(node.kind + \\" \\");\\n\\n  var hasInits = false;\\n  // don\'t add whitespace to loop heads\\n  if (!t.isFor(parent)) {\\n    for (var _iterator = (node.declarations /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var declar = _ref;\\n\\n      if (declar.init) {\\n        // has an init so let\'s split it up over multiple lines\\n        hasInits = true;\\n      }\\n    }\\n  }\\n\\n  //\\n  // use a pretty separator when we aren\'t in compact mode, have initializers and don\'t have retainLines on\\n  // this will format declarations like:\\n  //\\n  //   let foo = \\"bar\\", bar = \\"foo\\";\\n  //\\n  // into\\n  //\\n  //   let foo = \\"bar\\",\\n  //       bar = \\"foo\\";\\n  //\\n\\n  var sep = undefined;\\n  if (!this.format.compact && !this.format.concise && hasInits && !this.format.retainLines) {\\n    sep = \\",\\\\n\\" + _repeating2[\\"default\\"](\\" \\", node.kind.length + 1);\\n  }\\n\\n  //\\n\\n  this.printList(node.declarations, node, { separator: sep });\\n\\n  if (t.isFor(parent)) {\\n    // don\'t give semicolons to these nodes since they\'ll be inserted in the parent generator\\n    if (parent.left === node || parent.init === node) return;\\n  }\\n\\n  this.semicolon();\\n}\\n\\nfunction VariableDeclarator(node /*: Object*/) {\\n  this.print(node.id, node);\\n  this.print(node.id.typeAnnotation, node);\\n  if (node.init) {\\n    this.space();\\n    this.push(\\"=\\");\\n    this.space();\\n    this.print(node.init, node);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/statements.js\\n ** module id = 378\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.ClassDeclaration = ClassDeclaration;\\nexports.ClassBody = ClassBody;\\nexports.ClassProperty = ClassProperty;\\nexports.ClassMethod = ClassMethod;\\n\\nfunction ClassDeclaration(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n  this.push(\\"class\\");\\n\\n  if (node.id) {\\n    this.push(\\" \\");\\n    this.print(node.id, node);\\n  }\\n\\n  this.print(node.typeParameters, node);\\n\\n  if (node.superClass) {\\n    this.push(\\" extends \\");\\n    this.print(node.superClass, node);\\n    this.print(node.superTypeParameters, node);\\n  }\\n\\n  if (node[\\"implements\\"]) {\\n    this.push(\\" implements \\");\\n    this.printJoin(node[\\"implements\\"], node, { separator: \\", \\" });\\n  }\\n\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nexports.ClassExpression = ClassDeclaration;\\n\\nfunction ClassBody(node /*: Object*/) {\\n  this.push(\\"{\\");\\n  this.printInnerComments(node);\\n  if (node.body.length === 0) {\\n    this.push(\\"}\\");\\n  } else {\\n    this.newline();\\n\\n    this.indent();\\n    this.printSequence(node.body, node);\\n    this.dedent();\\n\\n    this.rightBrace();\\n  }\\n}\\n\\nfunction ClassProperty(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.print(node.key, node);\\n  this.print(node.typeAnnotation, node);\\n  if (node.value) {\\n    this.space();\\n    this.push(\\"=\\");\\n    this.space();\\n    this.print(node.value, node);\\n  }\\n  this.semicolon();\\n}\\n\\nfunction ClassMethod(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n\\n  if (node[\\"static\\"]) {\\n    this.push(\\"static \\");\\n  }\\n\\n  if (node.kind === \\"constructorCall\\") {\\n    this.push(\\"call \\");\\n  }\\n\\n  this._method(node);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/classes.js\\n ** module id = 379\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports._params = _params;\\nexports._method = _method;\\nexports.FunctionExpression = FunctionExpression;\\nexports.ArrowFunctionExpression = ArrowFunctionExpression;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction _params(node /*: Object*/) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  this.print(node.typeParameters, node);\\n  this.push(\\"(\\");\\n  this.printList(node.params, node, {\\n    iterator: function iterator(node) {\\n      if (node.optional) _this.push(\\"?\\");\\n      _this.print(node.typeAnnotation, node);\\n    }\\n  });\\n  this.push(\\")\\");\\n\\n  if (node.returnType) {\\n    this.print(node.returnType, node);\\n  }\\n}\\n\\nfunction _method(node /*: Object*/) {\\n  var kind = node.kind;\\n  var key = node.key;\\n\\n  if (kind === \\"method\\" || kind === \\"init\\") {\\n    if (node.generator) {\\n      this.push(\\"*\\");\\n    }\\n  }\\n\\n  if (kind === \\"get\\" || kind === \\"set\\") {\\n    this.push(kind + \\" \\");\\n  }\\n\\n  if (node.async) this.push(\\"async \\");\\n\\n  if (node.computed) {\\n    this.push(\\"[\\");\\n    this.print(key, node);\\n    this.push(\\"]\\");\\n  } else {\\n    this.print(key, node);\\n  }\\n\\n  this._params(node);\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction FunctionExpression(node /*: Object*/) {\\n  if (node.async) this.push(\\"async \\");\\n  this.push(\\"function\\");\\n  if (node.generator) this.push(\\"*\\");\\n\\n  if (node.id) {\\n    this.push(\\" \\");\\n    this.print(node.id, node);\\n  } else {\\n    this.space();\\n  }\\n\\n  this._params(node);\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nexports.FunctionDeclaration = FunctionExpression;\\n\\nfunction ArrowFunctionExpression(node /*: Object*/) {\\n  if (node.async) this.push(\\"async \\");\\n\\n  if (node.params.length === 1 && t.isIdentifier(node.params[0])) {\\n    this.print(node.params[0], node);\\n  } else {\\n    this._params(node);\\n  }\\n\\n  this.push(\\" => \\");\\n\\n  this.print(node.body, node);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/methods.js\\n ** module id = 380\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.ImportSpecifier = ImportSpecifier;\\nexports.ImportDefaultSpecifier = ImportDefaultSpecifier;\\nexports.ExportDefaultSpecifier = ExportDefaultSpecifier;\\nexports.ExportSpecifier = ExportSpecifier;\\nexports.ExportNamespaceSpecifier = ExportNamespaceSpecifier;\\nexports.ExportAllDeclaration = ExportAllDeclaration;\\nexports.ExportNamedDeclaration = ExportNamedDeclaration;\\nexports.ExportDefaultDeclaration = ExportDefaultDeclaration;\\nexports.ImportDeclaration = ImportDeclaration;\\nexports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction ImportSpecifier(node /*: Object*/) {\\n  this.print(node.imported, node);\\n  if (node.local && node.local.name !== node.imported.name) {\\n    this.push(\\" as \\");\\n    this.print(node.local, node);\\n  }\\n}\\n\\nfunction ImportDefaultSpecifier(node /*: Object*/) {\\n  this.print(node.local, node);\\n}\\n\\nfunction ExportDefaultSpecifier(node /*: Object*/) {\\n  this.print(node.exported, node);\\n}\\n\\nfunction ExportSpecifier(node /*: Object*/) {\\n  this.print(node.local, node);\\n  if (node.exported && node.local.name !== node.exported.name) {\\n    this.push(\\" as \\");\\n    this.print(node.exported, node);\\n  }\\n}\\n\\nfunction ExportNamespaceSpecifier(node /*: Object*/) {\\n  this.push(\\"* as \\");\\n  this.print(node.exported, node);\\n}\\n\\nfunction ExportAllDeclaration(node /*: Object*/) {\\n  this.push(\\"export *\\");\\n  if (node.exported) {\\n    this.push(\\" as \\");\\n    this.print(node.exported, node);\\n  }\\n  this.push(\\" from \\");\\n  this.print(node.source, node);\\n  this.semicolon();\\n}\\n\\nfunction ExportNamedDeclaration() {\\n  this.push(\\"export \\");\\n  ExportDeclaration.apply(this, arguments);\\n}\\n\\nfunction ExportDefaultDeclaration() {\\n  this.push(\\"export default \\");\\n  ExportDeclaration.apply(this, arguments);\\n}\\n\\nfunction ExportDeclaration(node /*: Object*/) {\\n  if (node.declaration) {\\n    var declar = node.declaration;\\n    this.print(declar, node);\\n    if (t.isStatement(declar) || t.isFunction(declar) || t.isClass(declar)) return;\\n  } else {\\n    if (node.exportKind === \\"type\\") {\\n      this.push(\\"type \\");\\n    }\\n\\n    var specifiers = node.specifiers.slice(0);\\n\\n    // print \\"special\\" specifiers first\\n    var hasSpecial = false;\\n    while (true) {\\n      var first = specifiers[0];\\n      if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) {\\n        hasSpecial = true;\\n        this.print(specifiers.shift(), node);\\n        if (specifiers.length) {\\n          this.push(\\", \\");\\n        }\\n      } else {\\n        break;\\n      }\\n    }\\n\\n    if (specifiers.length || !specifiers.length && !hasSpecial) {\\n      this.push(\\"{\\");\\n      if (specifiers.length) {\\n        this.space();\\n        this.printJoin(specifiers, node, { separator: \\", \\" });\\n        this.space();\\n      }\\n      this.push(\\"}\\");\\n    }\\n\\n    if (node.source) {\\n      this.push(\\" from \\");\\n      this.print(node.source, node);\\n    }\\n  }\\n\\n  this.ensureSemicolon();\\n}\\n\\nfunction ImportDeclaration(node /*: Object*/) {\\n  this.push(\\"import \\");\\n\\n  if (node.importKind === \\"type\\" || node.importKind === \\"typeof\\") {\\n    this.push(node.importKind + \\" \\");\\n  }\\n\\n  var specifiers = node.specifiers.slice(0);\\n  if (specifiers && specifiers.length) {\\n    // print \\"special\\" specifiers first\\n    while (true) {\\n      var first = specifiers[0];\\n      if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) {\\n        this.print(specifiers.shift(), node);\\n        if (specifiers.length) {\\n          this.push(\\", \\");\\n        }\\n      } else {\\n        break;\\n      }\\n    }\\n\\n    if (specifiers.length) {\\n      this.push(\\"{\\");\\n      this.space();\\n      this.printJoin(specifiers, node, { separator: \\", \\" });\\n      this.space();\\n      this.push(\\"}\\");\\n    }\\n\\n    this.push(\\" from \\");\\n  }\\n\\n  this.print(node.source, node);\\n  this.semicolon();\\n}\\n\\nfunction ImportNamespaceSpecifier(node /*: Object*/) {\\n  this.push(\\"* as \\");\\n  this.print(node.local, node);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/modules.js\\n ** module id = 381\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n/* eslint quotes: 0 */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.Identifier = Identifier;\\nexports.RestElement = RestElement;\\nexports.ObjectExpression = ObjectExpression;\\nexports.ObjectMethod = ObjectMethod;\\nexports.ObjectProperty = ObjectProperty;\\nexports.ArrayExpression = ArrayExpression;\\nexports.RegExpLiteral = RegExpLiteral;\\nexports.BooleanLiteral = BooleanLiteral;\\nexports.NullLiteral = NullLiteral;\\nexports.NumericLiteral = NumericLiteral;\\nexports.StringLiteral = StringLiteral;\\nexports._stringLiteral = _stringLiteral;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction Identifier(node /*: Object*/) {\\n  this.push(node.name);\\n}\\n\\nfunction RestElement(node /*: Object*/) {\\n  this.push(\\"...\\");\\n  this.print(node.argument, node);\\n}\\n\\nexports.SpreadElement = RestElement;\\nexports.SpreadProperty = RestElement;\\nexports.RestProperty = RestElement;\\n\\nfunction ObjectExpression(node /*: Object*/) {\\n  var props = node.properties;\\n\\n  this.push(\\"{\\");\\n  this.printInnerComments(node);\\n\\n  if (props.length) {\\n    this.space();\\n    this.printList(props, node, { indent: true });\\n    this.space();\\n  }\\n\\n  this.push(\\"}\\");\\n}\\n\\nexports.ObjectPattern = ObjectExpression;\\n\\nfunction ObjectMethod(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n  this._method(node);\\n}\\n\\nfunction ObjectProperty(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n\\n  if (node.computed) {\\n    this.push(\\"[\\");\\n    this.print(node.key, node);\\n    this.push(\\"]\\");\\n  } else {\\n    // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\\n    if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) {\\n      this.print(node.value, node);\\n      return;\\n    }\\n\\n    this.print(node.key, node);\\n\\n    // shorthand!\\n    if (node.shorthand && t.isIdentifier(node.key) && t.isIdentifier(node.value) && node.key.name === node.value.name) {\\n      return;\\n    }\\n  }\\n\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.value, node);\\n}\\n\\nfunction ArrayExpression(node /*: Object*/) {\\n  var elems = node.elements;\\n  var len = elems.length;\\n\\n  this.push(\\"[\\");\\n  this.printInnerComments(node);\\n\\n  for (var i = 0; i < elems.length; i++) {\\n    var elem = elems[i];\\n    if (elem) {\\n      if (i > 0) this.space();\\n      this.print(elem, node);\\n      if (i < len - 1) this.push(\\",\\");\\n    } else {\\n      // If the array expression ends with a hole, that hole\\n      // will be ignored by the interpreter, but if it ends with\\n      // two (or more) holes, we need to write out two (or more)\\n      // commas so that the resulting code is interpreted with\\n      // both (all) of the holes.\\n      this.push(\\",\\");\\n    }\\n  }\\n\\n  this.push(\\"]\\");\\n}\\n\\nexports.ArrayPattern = ArrayExpression;\\n\\nfunction RegExpLiteral(node /*: Object*/) {\\n  this.push(\\"/\\" + node.pattern + \\"/\\" + node.flags);\\n}\\n\\nfunction BooleanLiteral(node /*: Object*/) {\\n  this.push(node.value ? \\"true\\" : \\"false\\");\\n}\\n\\nfunction NullLiteral() {\\n  this.push(\\"null\\");\\n}\\n\\nfunction NumericLiteral(node /*: Object*/) {\\n  this.push(node.value + \\"\\");\\n}\\n\\nfunction StringLiteral(node /*: Object*/, parent /*: Object*/) {\\n  this.push(this._stringLiteral(node.value, parent));\\n}\\n\\nfunction _stringLiteral(val /*: string*/, parent /*: Object*/) /*: string*/ {\\n  val = JSON.stringify(val);\\n\\n  // escape illegal js but valid json unicode characters\\n  val = val.replace(/[\\\\u000A\\\\u000D\\\\u2028\\\\u2029]/g, function (c) {\\n    return \\"\\\\\\\\u\\" + (\\"0000\\" + c.charCodeAt(0).toString(16)).slice(-4);\\n  });\\n\\n  if (this.format.quotes === \\"single\\" && !t.isJSX(parent)) {\\n    // remove double quotes\\n    val = val.slice(1, -1);\\n\\n    // unescape double quotes\\n    val = val.replace(/\\\\\\\\\\"/g, \'\\"\');\\n\\n    // escape single quotes\\n    val = val.replace(/\'/g, \\"\\\\\\\\\'\\");\\n\\n    // add single quotes\\n    val = \\"\'\\" + val + \\"\'\\";\\n  }\\n\\n  return val;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/types.js\\n ** module id = 382\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.AnyTypeAnnotation = AnyTypeAnnotation;\\nexports.ArrayTypeAnnotation = ArrayTypeAnnotation;\\nexports.BooleanTypeAnnotation = BooleanTypeAnnotation;\\nexports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation;\\nexports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation;\\nexports.DeclareClass = DeclareClass;\\nexports.DeclareFunction = DeclareFunction;\\nexports.DeclareInterface = DeclareInterface;\\nexports.DeclareModule = DeclareModule;\\nexports.DeclareTypeAlias = DeclareTypeAlias;\\nexports.DeclareVariable = DeclareVariable;\\nexports.ExistentialTypeParam = ExistentialTypeParam;\\nexports.FunctionTypeAnnotation = FunctionTypeAnnotation;\\nexports.FunctionTypeParam = FunctionTypeParam;\\nexports.InterfaceExtends = InterfaceExtends;\\nexports._interfaceish = _interfaceish;\\nexports.InterfaceDeclaration = InterfaceDeclaration;\\nexports.IntersectionTypeAnnotation = IntersectionTypeAnnotation;\\nexports.MixedTypeAnnotation = MixedTypeAnnotation;\\nexports.NullableTypeAnnotation = NullableTypeAnnotation;\\nexports.NumberTypeAnnotation = NumberTypeAnnotation;\\nexports.StringLiteralTypeAnnotation = StringLiteralTypeAnnotation;\\nexports.StringTypeAnnotation = StringTypeAnnotation;\\nexports.ThisTypeAnnotation = ThisTypeAnnotation;\\nexports.TupleTypeAnnotation = TupleTypeAnnotation;\\nexports.TypeofTypeAnnotation = TypeofTypeAnnotation;\\nexports.TypeAlias = TypeAlias;\\nexports.TypeAnnotation = TypeAnnotation;\\nexports.TypeParameterInstantiation = TypeParameterInstantiation;\\nexports.ObjectTypeAnnotation = ObjectTypeAnnotation;\\nexports.ObjectTypeCallProperty = ObjectTypeCallProperty;\\nexports.ObjectTypeIndexer = ObjectTypeIndexer;\\nexports.ObjectTypeProperty = ObjectTypeProperty;\\nexports.QualifiedTypeIdentifier = QualifiedTypeIdentifier;\\nexports.UnionTypeAnnotation = UnionTypeAnnotation;\\nexports.TypeCastExpression = TypeCastExpression;\\nexports.VoidTypeAnnotation = VoidTypeAnnotation;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction AnyTypeAnnotation() {\\n  this.push(\\"any\\");\\n}\\n\\nfunction ArrayTypeAnnotation(node /*: Object*/) {\\n  this.print(node.elementType, node);\\n  this.push(\\"[\\");\\n  this.push(\\"]\\");\\n}\\n\\nfunction BooleanTypeAnnotation() {\\n  this.push(\\"bool\\");\\n}\\n\\nfunction BooleanLiteralTypeAnnotation(node /*: Object*/) {\\n  this.push(node.value ? \\"true\\" : \\"false\\");\\n}\\n\\nfunction NullLiteralTypeAnnotation() {\\n  this.push(\\"null\\");\\n}\\n\\nfunction DeclareClass(node /*: Object*/) {\\n  this.push(\\"declare class \\");\\n  this._interfaceish(node);\\n}\\n\\nfunction DeclareFunction(node /*: Object*/) {\\n  this.push(\\"declare function \\");\\n  this.print(node.id, node);\\n  this.print(node.id.typeAnnotation.typeAnnotation, node);\\n  this.semicolon();\\n}\\n\\nfunction DeclareInterface(node /*: Object*/) {\\n  this.push(\\"declare \\");\\n  this.InterfaceDeclaration(node);\\n}\\n\\nfunction DeclareModule(node /*: Object*/) {\\n  this.push(\\"declare module \\");\\n  this.print(node.id, node);\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction DeclareTypeAlias(node /*: Object*/) {\\n  this.push(\\"declare \\");\\n  this.TypeAlias(node);\\n}\\n\\nfunction DeclareVariable(node /*: Object*/) {\\n  this.push(\\"declare var \\");\\n  this.print(node.id, node);\\n  this.print(node.id.typeAnnotation, node);\\n  this.semicolon();\\n}\\n\\nfunction ExistentialTypeParam() {\\n  this.push(\\"*\\");\\n}\\n\\nfunction FunctionTypeAnnotation(node /*: Object*/, parent /*: Object*/) {\\n  this.print(node.typeParameters, node);\\n  this.push(\\"(\\");\\n  this.printList(node.params, node);\\n\\n  if (node.rest) {\\n    if (node.params.length) {\\n      this.push(\\",\\");\\n      this.space();\\n    }\\n    this.push(\\"...\\");\\n    this.print(node.rest, node);\\n  }\\n\\n  this.push(\\")\\");\\n\\n  // this node type is overloaded, not sure why but it makes it EXTREMELY annoying\\n  if (parent.type === \\"ObjectTypeProperty\\" || parent.type === \\"ObjectTypeCallProperty\\" || parent.type === \\"DeclareFunction\\") {\\n    this.push(\\":\\");\\n  } else {\\n    this.space();\\n    this.push(\\"=>\\");\\n  }\\n\\n  this.space();\\n  this.print(node.returnType, node);\\n}\\n\\nfunction FunctionTypeParam(node /*: Object*/) {\\n  this.print(node.name, node);\\n  if (node.optional) this.push(\\"?\\");\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.typeAnnotation, node);\\n}\\n\\nfunction InterfaceExtends(node /*: Object*/) {\\n  this.print(node.id, node);\\n  this.print(node.typeParameters, node);\\n}\\n\\nexports.ClassImplements = InterfaceExtends;\\nexports.GenericTypeAnnotation = InterfaceExtends;\\n\\nfunction _interfaceish(node /*: Object*/) {\\n  this.print(node.id, node);\\n  this.print(node.typeParameters, node);\\n  if (node[\\"extends\\"].length) {\\n    this.push(\\" extends \\");\\n    this.printJoin(node[\\"extends\\"], node, { separator: \\", \\" });\\n  }\\n  if (node.mixins && node.mixins.length) {\\n    this.push(\\" mixins \\");\\n    this.printJoin(node.mixins, node, { separator: \\", \\" });\\n  }\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction InterfaceDeclaration(node /*: Object*/) {\\n  this.push(\\"interface \\");\\n  this._interfaceish(node);\\n}\\n\\nfunction IntersectionTypeAnnotation(node /*: Object*/) {\\n  this.printJoin(node.types, node, { separator: \\" & \\" });\\n}\\n\\nfunction MixedTypeAnnotation() {\\n  this.push(\\"mixed\\");\\n}\\n\\nfunction NullableTypeAnnotation(node /*: Object*/) {\\n  this.push(\\"?\\");\\n  this.print(node.typeAnnotation, node);\\n}\\n\\nvar _types = require(\\"./types\\");\\n\\nexports.NumericLiteralTypeAnnotation = _types.NumericLiteral;\\n\\nfunction NumberTypeAnnotation() {\\n  this.push(\\"number\\");\\n}\\n\\nfunction StringLiteralTypeAnnotation(node /*: Object*/) {\\n  this.push(this._stringLiteral(node.value));\\n}\\n\\nfunction StringTypeAnnotation() {\\n  this.push(\\"string\\");\\n}\\n\\nfunction ThisTypeAnnotation() {\\n  this.push(\\"this\\");\\n}\\n\\nfunction TupleTypeAnnotation(node /*: Object*/) {\\n  this.push(\\"[\\");\\n  this.printJoin(node.types, node, { separator: \\", \\" });\\n  this.push(\\"]\\");\\n}\\n\\nfunction TypeofTypeAnnotation(node /*: Object*/) {\\n  this.push(\\"typeof \\");\\n  this.print(node.argument, node);\\n}\\n\\nfunction TypeAlias(node /*: Object*/) {\\n  this.push(\\"type \\");\\n  this.print(node.id, node);\\n  this.print(node.typeParameters, node);\\n  this.space();\\n  this.push(\\"=\\");\\n  this.space();\\n  this.print(node.right, node);\\n  this.semicolon();\\n}\\n\\nfunction TypeAnnotation(node /*: Object*/) {\\n  this.push(\\":\\");\\n  this.space();\\n  if (node.optional) this.push(\\"?\\");\\n  this.print(node.typeAnnotation, node);\\n}\\n\\nfunction TypeParameterInstantiation(node /*: Object*/) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  this.push(\\"<\\");\\n  this.printJoin(node.params, node, {\\n    separator: \\", \\",\\n    iterator: function iterator(node /*: Object*/) {\\n      _this.print(node.typeAnnotation, node);\\n    }\\n  });\\n  this.push(\\">\\");\\n}\\n\\nexports.TypeParameterDeclaration = TypeParameterInstantiation;\\n\\nfunction ObjectTypeAnnotation(node /*: Object*/) {\\n  // istanbul ignore next\\n\\n  var _this2 = this;\\n\\n  this.push(\\"{\\");\\n  var props = node.properties.concat(node.callProperties, node.indexers);\\n\\n  if (props.length) {\\n    this.space();\\n\\n    this.printJoin(props, node, {\\n      separator: false,\\n      indent: true,\\n      iterator: function iterator() {\\n        if (props.length !== 1) {\\n          _this2.semicolon();\\n          _this2.space();\\n        }\\n      }\\n    });\\n\\n    this.space();\\n  }\\n\\n  this.push(\\"}\\");\\n}\\n\\nfunction ObjectTypeCallProperty(node /*: Object*/) {\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.print(node.value, node);\\n}\\n\\nfunction ObjectTypeIndexer(node /*: Object*/) {\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.push(\\"[\\");\\n  this.print(node.id, node);\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.key, node);\\n  this.push(\\"]\\");\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.value, node);\\n}\\n\\nfunction ObjectTypeProperty(node /*: Object*/) {\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.print(node.key, node);\\n  if (node.optional) this.push(\\"?\\");\\n  if (!t.isFunctionTypeAnnotation(node.value)) {\\n    this.push(\\":\\");\\n    this.space();\\n  }\\n  this.print(node.value, node);\\n}\\n\\nfunction QualifiedTypeIdentifier(node /*: Object*/) {\\n  this.print(node.qualification, node);\\n  this.push(\\".\\");\\n  this.print(node.id, node);\\n}\\n\\nfunction UnionTypeAnnotation(node /*: Object*/) {\\n  this.printJoin(node.types, node, { separator: \\" | \\" });\\n}\\n\\nfunction TypeCastExpression(node /*: Object*/) {\\n  this.push(\\"(\\");\\n  this.print(node.expression, node);\\n  this.print(node.typeAnnotation, node);\\n  this.push(\\")\\");\\n}\\n\\nfunction VoidTypeAnnotation() {\\n  this.push(\\"void\\");\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/flow.js\\n ** module id = 383\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.File = File;\\nexports.Program = Program;\\nexports.BlockStatement = BlockStatement;\\nexports.Noop = Noop;\\nexports.Directive = Directive;\\nexports.DirectiveLiteral = DirectiveLiteral;\\n\\nfunction File(node /*: Object*/) {\\n  this.print(node.program, node);\\n}\\n\\nfunction Program(node /*: Object*/) {\\n  this.printInnerComments(node, false);\\n\\n  this.printSequence(node.directives, node);\\n  if (node.directives && node.directives.length) this.newline();\\n\\n  this.printSequence(node.body, node);\\n}\\n\\nfunction BlockStatement(node /*: Object*/) {\\n  this.push(\\"{\\");\\n  this.printInnerComments(node);\\n  if (node.body.length) {\\n    this.newline();\\n\\n    this.printSequence(node.directives, node, { indent: true });\\n    if (node.directives && node.directives.length) this.newline();\\n\\n    this.printSequence(node.body, node, { indent: true });\\n    if (!this.format.retainLines) this.removeLast(\\"\\\\n\\");\\n    this.rightBrace();\\n  } else {\\n    this.push(\\"}\\");\\n  }\\n}\\n\\nfunction Noop() {}\\n\\nfunction Directive(node /*: Object*/) {\\n  this.print(node.value, node);\\n  this.semicolon();\\n}\\n\\nfunction DirectiveLiteral(node /*: Object*/) {\\n  this.push(this._stringLiteral(node.value));\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/base.js\\n ** module id = 384\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.JSXAttribute = JSXAttribute;\\nexports.JSXIdentifier = JSXIdentifier;\\nexports.JSXNamespacedName = JSXNamespacedName;\\nexports.JSXMemberExpression = JSXMemberExpression;\\nexports.JSXSpreadAttribute = JSXSpreadAttribute;\\nexports.JSXExpressionContainer = JSXExpressionContainer;\\nexports.JSXText = JSXText;\\nexports.JSXElement = JSXElement;\\nexports.JSXOpeningElement = JSXOpeningElement;\\nexports.JSXClosingElement = JSXClosingElement;\\nexports.JSXEmptyExpression = JSXEmptyExpression;\\n\\nfunction JSXAttribute(node /*: Object*/) {\\n  this.print(node.name, node);\\n  if (node.value) {\\n    this.push(\\"=\\");\\n    this.print(node.value, node);\\n  }\\n}\\n\\nfunction JSXIdentifier(node /*: Object*/) {\\n  this.push(node.name);\\n}\\n\\nfunction JSXNamespacedName(node /*: Object*/) {\\n  this.print(node.namespace, node);\\n  this.push(\\":\\");\\n  this.print(node.name, node);\\n}\\n\\nfunction JSXMemberExpression(node /*: Object*/) {\\n  this.print(node.object, node);\\n  this.push(\\".\\");\\n  this.print(node.property, node);\\n}\\n\\nfunction JSXSpreadAttribute(node /*: Object*/) {\\n  this.push(\\"{...\\");\\n  this.print(node.argument, node);\\n  this.push(\\"}\\");\\n}\\n\\nfunction JSXExpressionContainer(node /*: Object*/) {\\n  this.push(\\"{\\");\\n  this.print(node.expression, node);\\n  this.push(\\"}\\");\\n}\\n\\nfunction JSXText(node /*: Object*/) {\\n  this.push(node.value, true);\\n}\\n\\nfunction JSXElement(node /*: Object*/) {\\n  var open = node.openingElement;\\n  this.print(open, node);\\n  if (open.selfClosing) return;\\n\\n  this.indent();\\n  for (var _iterator = (node.children /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var child = _ref;\\n\\n    this.print(child, node);\\n  }\\n  this.dedent();\\n\\n  this.print(node.closingElement, node);\\n}\\n\\nfunction JSXOpeningElement(node /*: Object*/) {\\n  this.push(\\"<\\");\\n  this.print(node.name, node);\\n  if (node.attributes.length > 0) {\\n    this.push(\\" \\");\\n    this.printJoin(node.attributes, node, { separator: \\" \\" });\\n  }\\n  this.push(node.selfClosing ? \\" />\\" : \\">\\");\\n}\\n\\nfunction JSXClosingElement(node /*: Object*/) {\\n  this.push(\\"</\\");\\n  this.print(node.name, node);\\n  this.push(\\">\\");\\n}\\n\\nfunction JSXEmptyExpression() {}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/jsx.js\\n ** module id = 385\\n ** module chunks = 0\\n **/","module.exports = function extend(target, source) {\\n  var prop;\\n\\n  target = target || {};\\n  for (prop in source) {\\n    if (typeof source[prop] === \'object\') {\\n      target[prop] = extend(target[prop], source[prop]);\\n    } else {\\n      target[prop] = source[prop];\\n    }\\n  }\\n  return target;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/merge.js\\n ** module id = 386\\n ** module chunks = 0\\n **/","var ids = 0;\\n\\nmodule.exports = function () {\\n  return \'_\' + (++ids);\\n};\\nmodule.exports.resetIDs = function () {\\n  ids = 0;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/randomId.js\\n ** module id = 387\\n ** module chunks = 0\\n **/","var isArray = require(\'../helpers/isArray\');\\nvar injectAt = require(\'../helpers/injectAt\');\\nvar getID = require(\'../helpers/randomId\');\\nvar t = require(\'babel-types\');\\nvar settings = require(\'../settings\');\\nvar isIgnored = require(\'../core/traverse\').isIgnored;\\n\\nvar updateStyleSheet = function (node, stylesheetId) {\\n  var key, i;\\n\\n  if (\\n    node && node.type === \'CallExpression\' &&\\n    node.callee && node.callee.type === \'MemberExpression\' &&\\n    node.callee.object && node.callee.object.name === \'cssx\'\\n  ) {\\n    node.callee.object.name = stylesheetId;\\n  } else {\\n    if (isArray(node)) {\\n      for (i = 0; i < node.length; i++) {\\n        updateStyleSheet(node[i], stylesheetId);\\n      }\\n    } else {\\n      for (key in node) {\\n        if (!isIgnored(key)) {\\n          if (typeof node[key] === \'object\') {\\n            updateStyleSheet(node[key], stylesheetId);\\n          }\\n        }\\n      }\\n    }\\n  }\\n  return node;\\n};\\n\\nvar detectCSSRulesBlock = function (nodes) {\\n  return nodes.length === 1 &&\\n    nodes[0].type === \'ExpressionStatement\' &&\\n    nodes[0].expression.type === \'CallExpression\' &&\\n    nodes[0].expression.arguments.length > 0 &&\\n    nodes[0].expression.arguments[0].value === \'\';\\n};\\n\\nvar funcLines, stylesheetId;\\n\\nmodule.exports = {\\n  enter: function (node, parent, index, context) {\\n    funcLines = [];\\n    stylesheetId = getID();\\n    context.addToCSSXSelfInvoke = function (item) {\\n      funcLines = [item].concat(funcLines);\\n    };\\n  },\\n  exit: function (node, parent, index, context) {\\n    var rulesRegistration, newStylesheetExpr, createSelfInvoke, funcBody, funcExpr;\\n\\n    delete context.addToCSSXSelfInvoke;\\n\\n    if (node.body.length === 0) {\\n      delete parent[index];\\n      return;\\n    }\\n\\n    newStylesheetExpr = t.variableDeclaration(\\n      \'var\',\\n      [\\n        t.variableDeclarator(\\n          t.identifier(stylesheetId),\\n          t.callExpression(\\n            t.MemberExpression(\\n              t.identifier(settings.CSSXCalleeObj),\\n              t.identifier(settings.CSSXNewStylesheet)\\n            ),\\n            [t.stringLiteral(stylesheetId)]\\n          )\\n        )\\n      ]\\n    );\\n\\n    rulesRegistration = node.body.map(function (line) {\\n      line = updateStyleSheet(line, stylesheetId);\\n      if (line.type === \'CallExpression\') {\\n        line = t.expressionStatement(updateStyleSheet(line, stylesheetId));\\n      }\\n      return line;\\n    });\\n\\n    // is it only css rules block\\n    if (detectCSSRulesBlock(rulesRegistration)) {\\n      funcLines.push(t.returnStatement(t.identifier(\\n        funcLines[0].declarations[0].id.name\\n      )));\\n      createSelfInvoke = function (expr) { return expr; };\\n    // creating the stylesheet\\n    } else {\\n      funcLines.push(newStylesheetExpr);\\n      funcLines = funcLines.concat(rulesRegistration);\\n      funcLines.push(t.returnStatement(t.identifier(stylesheetId)));\\n      createSelfInvoke = function (expr) { return t.expressionStatement(expr); };\\n    }\\n\\n    // wrapping up the self-invoke function\\n    funcBody = t.blockStatement(funcLines);\\n    funcExpr = t.callExpression(\\n      t.memberExpression(\\n        t.functionExpression(null, [], funcBody),\\n        t.identifier(\'apply\')\\n      ),\\n      [t.thisExpression()]\\n    );\\n\\n    if (isArray(parent)) {\\n      injectAt(parent, index, createSelfInvoke(funcExpr));\\n    } else {\\n      parent[index] = createSelfInvoke(funcExpr);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXDefinition.js\\n ** module id = 388\\n ** module chunks = 0\\n **/","module.exports = function (arr, index, elements) {\\n  arr.splice.apply(arr, [index, 1].concat(elements));\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/injectAt.js\\n ** module id = 389\\n ** module chunks = 0\\n **/","module.exports = {\\n  CSSXCalleeObj: \'cssx\',\\n  CSSXCalleeProp: \'add\',\\n  CSSXClientNestedMethodName: \'n\',\\n  CSSXNewStylesheet: \'s\'\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/settings.js\\n ** module id = 390\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar settings = require(\'../settings\');\\n\\nvar formCSSXElement = function (args) {\\n  return t.callExpression(\\n    t.MemberExpression(\\n      t.identifier(settings.CSSXCalleeObj),\\n      t.identifier(settings.CSSXCalleeProp)\\n    ),\\n    args\\n  );\\n};\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    var args = [], el;\\n\\n    node.selector ? args.push(node.selector) : null;\\n    node.body ? args.push(node.body) : null;\\n    el = formCSSXElement(args);\\n\\n    if (typeof parent !== \'undefined\' && index !== \'undefined\') {\\n      parent[index] = el;\\n    }\\n    return el;\\n  }\\n};\\nmodule.exports.formCSSXElement = formCSSXElement;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXElement.js\\n ** module id = 391\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar parseExpressions = require(\'../core/parseExpressions\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    if (node.expressions) {\\n      parent[index] = parseExpressions(node);\\n    } else {\\n      parent[index] = t.stringLiteral(node.name);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXProperty.js\\n ** module id = 392\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar AST = require(\'./AST\');\\n\\nmodule.exports = function (node) {\\n  var value = node.value || node.name;\\n  var expressions = node.expressions;\\n  var bit, replaceWith, ast, mutations, i = -1, starts, ends, index, inExpr = false, ch;\\n  var length = value.length;\\n  var code = \'\';\\n\\n  mutations = expressions.map(function (expr) {\\n    bit = value.substr(expr.contextLoc.start, expr.contextLoc.end - expr.contextLoc.start);\\n    replaceWith = \'(\' + bit.replace(/^`(.+)`$/, \'$1\') + \')\';\\n    return {\\n      start: expr.contextLoc.start,\\n      end: expr.contextLoc.end,\\n      replaceWith: replaceWith\\n    };\\n  });\\n  starts = mutations.map(function (m) { return m.start; });\\n  ends = mutations.map(function (m) { return m.end; });\\n\\n  while (++i < length) {\\n    // start\\n    if ((index = starts.indexOf(i)) >= 0) {\\n      code += (i === 0 ? \'\' : \'\\" + \') + mutations[index].replaceWith;\\n      inExpr = true;\\n    // ends\\n    } else if ((index = ends.indexOf(i)) >= 0) {\\n      code += i === length - 1 ? \'\' : \' + \\"\';\\n      inExpr = false;\\n    }\\n    if (!inExpr) {\\n      ch = value.charAt(i);\\n      ch = ch === \'\\"\' ? \'\\\\\\\\\\"\' : ch;\\n      if (i === 0) {\\n        code += \'\\"\' + ch;\\n      } else if (i === length - 1) {\\n        code += ch + \'\\"\';\\n      } else {\\n        code += ch;\\n      }\\n    }\\n  }\\n\\n  try {\\n    ast = AST(code);\\n  } catch (err) {\\n    throw new Error(\'parsing cssx expression: \' + code + \' (\' + err.message + \')\');\\n  }\\n\\n  if (ast && ast.program && ast.program.body && ast.program.body[0] && ast.program.body[0].expression) {\\n    return ast.program.body[0].expression;\\n  }\\n  return t.stringLiteral(value);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/core/parseExpressions.js\\n ** module id = 393\\n ** module chunks = 0\\n **/","module.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    parent[index] = { key: node.label, value: node.body };\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXRule.js\\n ** module id = 394\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar randomId = require(\'../helpers/randomId\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index, context) {},\\n  exit: function (node, parent, index, context) {\\n    var propAssignment, propsObject, addToContext;\\n    var rules = node.body;\\n    var id = randomId();\\n\\n    addToContext = function (item) {\\n      if (context && context.addToCSSXSelfInvoke) {\\n        context.addToCSSXSelfInvoke(item);\\n      }\\n    };\\n\\n    propsObject = t.variableDeclaration(\\n      \'var\',\\n      [\\n        t.variableDeclarator(\\n          t.identifier(id),\\n          t.objectExpression([])\\n        )\\n      ]\\n    );\\n    rules.forEach(function (rule) {\\n      propAssignment = t.expressionStatement(\\n        t.assignmentExpression(\\n          \'=\',\\n          t.memberExpression(\\n            t.identifier(id),\\n            rule.key,\\n            true\\n          ),\\n          rule.value\\n        )\\n      );\\n      addToContext(propAssignment);\\n    });\\n    addToContext(propsObject);\\n\\n    parent[index] = t.identifier(id);\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXRules.js\\n ** module id = 395\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar parseExpressions = require(\'../core/parseExpressions\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    if (node.expressions) {\\n      parent[index] = parseExpressions(node);\\n    } else {\\n      parent[index] = t.stringLiteral(node.value);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXSelector.js\\n ** module id = 396\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar parseExpressions = require(\'../core/parseExpressions\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    if (node.expressions) {\\n      parent[index] = parseExpressions(node);\\n    } else {\\n      parent[index] = t.stringLiteral(node.name);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXValue.js\\n ** module id = 397\\n ** module chunks = 0\\n **/","module.exports = require(\'./CSSXNestedElement\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXMediaQueryElement.js\\n ** module id = 398\\n ** module chunks = 0\\n **/","var CSSXElement = require(\'./CSSXElement\');\\nvar formCSSXElement = CSSXElement.formCSSXElement;\\nvar t = require(\'babel-types\');\\nvar injectAt = require(\'../helpers/injectAt\');\\nvar isArray = require(\'../helpers/isArray\');\\nvar settings = require(\'../settings\');\\nvar getID = require(\'../helpers/randomId\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    var id = getID(), lines = [];\\n\\n    lines.push(t.variableDeclaration(\\n      \'var\',\\n      [\\n        t.variableDeclarator(\\n          t.identifier(id),\\n          formCSSXElement([\\n            t.stringLiteral(node.query)\\n          ])\\n        )\\n      ]\\n    ));\\n    lines = lines.concat(node.body.map(function (cssxElementNode) {\\n      cssxElementNode.callee.object.name = id;\\n      cssxElementNode.callee.property.name = settings.CSSXClientNestedMethodName;\\n      return t.expressionStatement(cssxElementNode);\\n    }));\\n    if (isArray(parent)) {\\n      injectAt(parent, index, lines);\\n    } else {\\n      delete parent[index];\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXNestedElement.js\\n ** module id = 399\\n ** module chunks = 0\\n **/","module.exports = require(\'./CSSXNestedElement\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXKeyframesElement.js\\n ** module id = 400\\n ** module chunks = 0\\n **/"],"sourceRoot":""}\n\\ No newline at end of file\n+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 28ca1a7355c5f026c0db","webpack:///./packages/cssx-transpiler/src/index.js","webpack:///./packages/cssx-transpiler/src/core/AST.js","webpack:///./packages/cssx-transpiler/src/vendor/babylon.js","webpack:///./packages/cssx-transpiler/src/core/traverse.js","webpack:///./packages/cssx-transpiler/src/helpers/isArray.js","webpack:///./~/babel-generator/lib/index.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/inherits.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-proto.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/class-call-check.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/interop-require-default.js","webpack:///./~/babel-generator/~/babel-runtime/helpers/interop-require-wildcard.js","webpack:///./~/babel-generator/~/detect-indent/index.js","webpack:///./~/babel-generator/~/repeating/index.js","webpack:///./~/babel-generator/~/repeating/~/is-finite/index.js","webpack:///./~/babel-generator/~/repeating/~/is-finite/~/number-is-nan/index.js","webpack:///./~/babel-generator/lib/whitespace.js","webpack:///./~/babel-generator/lib/source-map.js","webpack:///./~/babel-generator/~/source-map/source-map.js","webpack:///./~/babel-generator/~/source-map/lib/source-map-generator.js","webpack:///./~/babel-generator/~/source-map/lib/base64-vlq.js","webpack:///./~/babel-generator/~/source-map/lib/base64.js","webpack:///./~/babel-generator/~/source-map/lib/util.js","webpack:///./~/babel-generator/~/source-map/lib/array-set.js","webpack:///./~/babel-generator/~/source-map/lib/mapping-list.js","webpack:///./~/babel-generator/~/source-map/lib/source-map-consumer.js","webpack:///./~/babel-generator/~/source-map/lib/binary-search.js","webpack:///./~/babel-generator/~/source-map/lib/quick-sort.js","webpack:///./~/babel-generator/~/source-map/lib/source-node.js","webpack:///./~/babel-types/lib/index.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.export.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.global.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.core.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.ctx.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.a-function.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-types/~/babel-runtime/core-js/get-iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/get-iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-step.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iterators.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-define.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.library.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.redefine.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.hide.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.property-desc.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.descriptors.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.has.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-create.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.wks.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.shared.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.uid.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.string-at.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-integer.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.an-object.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-object.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.classof.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-require-default.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-require-wildcard.js","webpack:///./~/babel-types/~/babel-runtime/helpers/defaults.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/get-own-property-names.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-names.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-names.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.get-names.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/define-property.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/define-property.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-export-wildcard.js","webpack:///./~/babel-types/~/to-fast-properties/index.js","webpack:///./~/babel-types/~/lodash/array/compact.js","webpack:///./~/babel-types/~/lodash/lang/clone.js","webpack:///./~/babel-types/~/lodash/internal/baseClone.js","webpack:///./~/babel-types/~/lodash/internal/arrayCopy.js","webpack:///./~/babel-types/~/lodash/internal/arrayEach.js","webpack:///./~/babel-types/~/lodash/internal/baseAssign.js","webpack:///./~/babel-types/~/lodash/internal/baseCopy.js","webpack:///./~/babel-types/~/lodash/object/keys.js","webpack:///./~/babel-types/~/lodash/internal/getNative.js","webpack:///./~/babel-types/~/lodash/lang/isNative.js","webpack:///./~/babel-types/~/lodash/lang/isFunction.js","webpack:///./~/babel-types/~/lodash/lang/isObject.js","webpack:///./~/babel-types/~/lodash/internal/isObjectLike.js","webpack:///./~/babel-types/~/lodash/internal/isArrayLike.js","webpack:///./~/babel-types/~/lodash/internal/getLength.js","webpack:///./~/babel-types/~/lodash/internal/baseProperty.js","webpack:///./~/babel-types/~/lodash/internal/isLength.js","webpack:///./~/babel-types/~/lodash/internal/shimKeys.js","webpack:///./~/babel-types/~/lodash/lang/isArguments.js","webpack:///./~/babel-types/~/lodash/lang/isArray.js","webpack:///./~/babel-types/~/lodash/internal/isIndex.js","webpack:///./~/babel-types/~/lodash/object/keysIn.js","webpack:///./~/babel-types/~/lodash/internal/baseForOwn.js","webpack:///./~/babel-types/~/lodash/internal/baseFor.js","webpack:///./~/babel-types/~/lodash/internal/createBaseFor.js","webpack:///./~/babel-types/~/lodash/internal/toObject.js","webpack:///./~/babel-types/~/lodash/internal/initCloneArray.js","webpack:///./~/babel-types/~/lodash/internal/initCloneByTag.js","webpack:///./~/babel-types/~/lodash/internal/bufferClone.js","webpack:///./~/babel-types/~/lodash/internal/initCloneObject.js","webpack:///./~/babel-types/~/lodash/internal/bindCallback.js","webpack:///./~/babel-types/~/lodash/utility/identity.js","webpack:///./~/babel-types/~/lodash/internal/isIterateeCall.js","webpack:///./~/babel-types/~/lodash/collection/each.js","webpack:///./~/babel-types/~/lodash/collection/forEach.js","webpack:///./~/babel-types/~/lodash/internal/baseEach.js","webpack:///./~/babel-types/~/lodash/internal/createBaseEach.js","webpack:///./~/babel-types/~/lodash/internal/createForEach.js","webpack:///./~/babel-types/~/lodash/array/uniq.js","webpack:///./~/babel-types/~/lodash/internal/baseCallback.js","webpack:///./~/babel-types/~/lodash/internal/baseMatches.js","webpack:///./~/babel-types/~/lodash/internal/baseIsMatch.js","webpack:///./~/babel-types/~/lodash/internal/baseIsEqual.js","webpack:///./~/babel-types/~/lodash/internal/baseIsEqualDeep.js","webpack:///./~/babel-types/~/lodash/internal/equalArrays.js","webpack:///./~/babel-types/~/lodash/internal/arraySome.js","webpack:///./~/babel-types/~/lodash/internal/equalByTag.js","webpack:///./~/babel-types/~/lodash/internal/equalObjects.js","webpack:///./~/babel-types/~/lodash/lang/isTypedArray.js","webpack:///./~/babel-types/~/lodash/internal/getMatchData.js","webpack:///./~/babel-types/~/lodash/internal/isStrictComparable.js","webpack:///./~/babel-types/~/lodash/object/pairs.js","webpack:///./~/babel-types/~/lodash/internal/baseMatchesProperty.js","webpack:///./~/babel-types/~/lodash/internal/baseGet.js","webpack:///./~/babel-types/~/lodash/internal/baseSlice.js","webpack:///./~/babel-types/~/lodash/internal/isKey.js","webpack:///./~/babel-types/~/lodash/array/last.js","webpack:///./~/babel-types/~/lodash/internal/toPath.js","webpack:///./~/babel-types/~/lodash/internal/baseToString.js","webpack:///./~/babel-types/~/lodash/utility/property.js","webpack:///./~/babel-types/~/lodash/internal/basePropertyDeep.js","webpack:///./~/babel-types/~/lodash/internal/baseUniq.js","webpack:///./~/babel-types/~/lodash/internal/baseIndexOf.js","webpack:///./~/babel-types/~/lodash/internal/indexOfNaN.js","webpack:///./~/babel-types/~/lodash/internal/cacheIndexOf.js","webpack:///./~/babel-types/~/lodash/internal/createCache.js","webpack:///./~/babel-types/~/lodash/internal/SetCache.js","webpack:///./~/babel-types/~/lodash/internal/cachePush.js","webpack:///./~/babel-types/~/lodash/internal/sortedUniq.js","webpack:///./~/babel-types/lib/definitions/init.js","webpack:///./~/babel-types/lib/definitions/index.js","webpack:///./~/babel-types/lib/definitions/core.js","webpack:///./~/babel-types/lib/constants.js","webpack:///./~/babel-types/~/babel-runtime/core-js/symbol/for.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/for.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.symbol.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.keyof.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.enum-keys.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-array.js","webpack:///./~/babel-types/lib/definitions/es2015.js","webpack:///./~/babel-types/lib/definitions/flow.js","webpack:///./~/babel-types/lib/definitions/jsx.js","webpack:///./~/babel-types/lib/definitions/misc.js","webpack:///./~/babel-types/lib/definitions/experimental.js","webpack:///./~/babel-types/lib/react.js","webpack:///./~/babel-types/lib/retrievers.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/create.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/create.js","webpack:///./~/babel-types/lib/validators.js","webpack:///./~/babel-types/~/esutils/lib/utils.js","webpack:///./~/babel-types/~/esutils/lib/ast.js","webpack:///./~/babel-types/~/esutils/lib/code.js","webpack:///./~/babel-types/~/esutils/lib/keyword.js","webpack:///./~/babel-types/lib/converters.js","webpack:///./~/babel-types/~/babel-runtime/core-js/number/max-safe-integer.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/number/max-safe-integer.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.number.max-safe-integer.js","webpack:///./~/babel-types/~/lodash/lang/isPlainObject.js","webpack:///./~/babel-types/~/lodash/internal/baseForIn.js","webpack:///./~/babel-types/~/lodash/lang/isNumber.js","webpack:///./~/babel-types/~/lodash/lang/isRegExp.js","webpack:///./~/babel-types/~/lodash/lang/isString.js","webpack:///./~/babel-types/~/babel-traverse/lib/index.js","webpack:///./~/babel-types/~/babel-runtime/core-js/object/get-own-property-symbols.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-symbols.js","webpack:///./~/babel-types/~/babel-runtime/helpers/interop-require.js","webpack:///./~/babel-types/~/babel-traverse/lib/context.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/babel-types/~/babel-runtime/helpers/class-call-check.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/lib/virtual-types.js","webpack:///./~/babel-types/~/babel-traverse/~/debug/browser.js","webpack:///./~/babel-types/~/babel-traverse/~/debug/debug.js","webpack:///./~/babel-types/~/babel-traverse/~/debug/~/ms/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/constants.js","webpack:///./~/babel-types/~/babel-traverse/~/invariant/browser.js","webpack:///./~/babel-types/~/lodash/object/assign.js","webpack:///./~/babel-types/~/lodash/internal/assignWith.js","webpack:///./~/babel-types/~/lodash/internal/createAssigner.js","webpack:///./~/babel-types/~/lodash/function/restParam.js","webpack:///./~/babel-types/~/babel-traverse/lib/scope/index.js","webpack:///./~/babel-types/~/babel-runtime/core-js/symbol.js","webpack:///./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/index.js","webpack:///./~/babel-types/~/lodash/collection/includes.js","webpack:///./~/babel-types/~/lodash/object/values.js","webpack:///./~/babel-types/~/lodash/internal/baseValues.js","webpack:///./~/babel-types/~/babel-traverse/~/repeating/index.js","webpack:///./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/index.js","webpack:///./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/~/number-is-nan/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/scope/lib/renamer.js","webpack:///./~/babel-types/~/babel-traverse/lib/scope/binding.js","webpack:///./~/babel-types/~/lodash/object/defaults.js","webpack:///./~/babel-types/~/lodash/internal/assignDefaults.js","webpack:///./~/babel-types/~/lodash/internal/createDefaults.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-messages/lib/index.js","webpack:///(webpack)/~/node-libs-browser/~/util/util.js","webpack:///(webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js","webpack:///(webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js","webpack:///./~/babel-types/~/babel-traverse/~/globals/index.js","webpack:///./~/babel-types/~/babel-traverse/~/globals/globals.json","webpack:///./~/babel-types/~/babel-traverse/lib/path/ancestry.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/inference/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/inference/inferers.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/inference/inferer-reference.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/replacement.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/lib/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/~/left-pad/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/js-tokens/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/escape-string-regexp/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/ansi-styles/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/~/ansi-regex/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/~/ansi-regex/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/supports-color/index.js","webpack:///./~/babel-types/~/babel-traverse/~/babylon/index.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/evaluation.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/conversion.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/introspection.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/context.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/removal.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/lib/removal-hooks.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/modification.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/lib/hoister.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/family.js","webpack:///./~/babel-types/~/babel-traverse/lib/path/comments.js","webpack:///./~/babel-types/~/babel-traverse/lib/visitors.js","webpack:///./~/babel-types/~/babel-traverse/lib/hub.js","webpack:///./~/babel-types/lib/flow.js","webpack:///./~/babel-generator/lib/position.js","webpack:///./~/babel-generator/~/babel-messages/lib/index.js","webpack:///./~/babel-generator/lib/printer.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/get-iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/get-iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-step.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iterators.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iobject.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.cof.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.defined.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-define.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.library.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.redefine.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.hide.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.property-desc.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.descriptors.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.fails.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.has.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-create.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.wks.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.shared.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.uid.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.string-at.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-integer.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.classof.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-assign.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-object.js","webpack:///./~/babel-generator/lib/buffer.js","webpack:///./~/babel-generator/~/trim-right/index.js","webpack:///./~/babel-generator/lib/node/index.js","webpack:///./~/babel-generator/~/babel-runtime/core-js/object/keys.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/keys.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js","webpack:///./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-sap.js","webpack:///./~/babel-generator/lib/node/whitespace.js","webpack:///./~/babel-generator/~/lodash/lang/isBoolean.js","webpack:///./~/babel-generator/~/lodash/internal/isObjectLike.js","webpack:///./~/babel-generator/~/lodash/collection/each.js","webpack:///./~/babel-generator/~/lodash/collection/forEach.js","webpack:///./~/babel-generator/~/lodash/internal/arrayEach.js","webpack:///./~/babel-generator/~/lodash/internal/baseEach.js","webpack:///./~/babel-generator/~/lodash/internal/baseForOwn.js","webpack:///./~/babel-generator/~/lodash/internal/baseFor.js","webpack:///./~/babel-generator/~/lodash/internal/createBaseFor.js","webpack:///./~/babel-generator/~/lodash/internal/toObject.js","webpack:///./~/babel-generator/~/lodash/lang/isObject.js","webpack:///./~/babel-generator/~/lodash/object/keys.js","webpack:///./~/babel-generator/~/lodash/internal/getNative.js","webpack:///./~/babel-generator/~/lodash/lang/isNative.js","webpack:///./~/babel-generator/~/lodash/lang/isFunction.js","webpack:///./~/babel-generator/~/lodash/internal/isArrayLike.js","webpack:///./~/babel-generator/~/lodash/internal/getLength.js","webpack:///./~/babel-generator/~/lodash/internal/baseProperty.js","webpack:///./~/babel-generator/~/lodash/internal/isLength.js","webpack:///./~/babel-generator/~/lodash/internal/shimKeys.js","webpack:///./~/babel-generator/~/lodash/lang/isArguments.js","webpack:///./~/babel-generator/~/lodash/lang/isArray.js","webpack:///./~/babel-generator/~/lodash/internal/isIndex.js","webpack:///./~/babel-generator/~/lodash/object/keysIn.js","webpack:///./~/babel-generator/~/lodash/internal/createBaseEach.js","webpack:///./~/babel-generator/~/lodash/internal/createForEach.js","webpack:///./~/babel-generator/~/lodash/internal/bindCallback.js","webpack:///./~/babel-generator/~/lodash/utility/identity.js","webpack:///./~/babel-generator/~/lodash/collection/map.js","webpack:///./~/babel-generator/~/lodash/internal/arrayMap.js","webpack:///./~/babel-generator/~/lodash/internal/baseCallback.js","webpack:///./~/babel-generator/~/lodash/internal/baseMatches.js","webpack:///./~/babel-generator/~/lodash/internal/baseIsMatch.js","webpack:///./~/babel-generator/~/lodash/internal/baseIsEqual.js","webpack:///./~/babel-generator/~/lodash/internal/baseIsEqualDeep.js","webpack:///./~/babel-generator/~/lodash/internal/equalArrays.js","webpack:///./~/babel-generator/~/lodash/internal/arraySome.js","webpack:///./~/babel-generator/~/lodash/internal/equalByTag.js","webpack:///./~/babel-generator/~/lodash/internal/equalObjects.js","webpack:///./~/babel-generator/~/lodash/lang/isTypedArray.js","webpack:///./~/babel-generator/~/lodash/internal/getMatchData.js","webpack:///./~/babel-generator/~/lodash/internal/isStrictComparable.js","webpack:///./~/babel-generator/~/lodash/object/pairs.js","webpack:///./~/babel-generator/~/lodash/internal/baseMatchesProperty.js","webpack:///./~/babel-generator/~/lodash/internal/baseGet.js","webpack:///./~/babel-generator/~/lodash/internal/baseSlice.js","webpack:///./~/babel-generator/~/lodash/internal/isKey.js","webpack:///./~/babel-generator/~/lodash/array/last.js","webpack:///./~/babel-generator/~/lodash/internal/toPath.js","webpack:///./~/babel-generator/~/lodash/internal/baseToString.js","webpack:///./~/babel-generator/~/lodash/utility/property.js","webpack:///./~/babel-generator/~/lodash/internal/basePropertyDeep.js","webpack:///./~/babel-generator/~/lodash/internal/baseMap.js","webpack:///./~/babel-generator/lib/node/parentheses.js","webpack:///./~/babel-generator/lib/generators/template-literals.js","webpack:///./~/babel-generator/lib/generators/expressions.js","webpack:///./~/babel-generator/~/is-integer/index.js","webpack:///./~/babel-generator/~/is-integer/~/is-finite/index.js","webpack:///./~/babel-generator/~/is-integer/~/is-finite/~/number-is-nan/index.js","webpack:///./~/babel-generator/~/lodash/lang/isNumber.js","webpack:///./~/babel-generator/lib/generators/statements.js","webpack:///./~/babel-generator/lib/generators/classes.js","webpack:///./~/babel-generator/lib/generators/methods.js","webpack:///./~/babel-generator/lib/generators/modules.js","webpack:///./~/babel-generator/lib/generators/types.js","webpack:///./~/babel-generator/lib/generators/flow.js","webpack:///./~/babel-generator/lib/generators/base.js","webpack:///./~/babel-generator/lib/generators/jsx.js","webpack:///./packages/cssx-transpiler/src/helpers/merge.js","webpack:///./packages/cssx-transpiler/src/helpers/randomId.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXDefinition.js","webpack:///./packages/cssx-transpiler/src/helpers/injectAt.js","webpack:///./packages/cssx-transpiler/src/settings.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXElement.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXProperty.js","webpack:///./packages/cssx-transpiler/src/core/parseExpressions.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXRule.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXRules.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXSelector.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXValue.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXMediaQueryElement.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXNestedElement.js","webpack:///./packages/cssx-transpiler/src/visitors/CSSXKeyframesElement.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;ACvCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;aCxBA,yBAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,iBAAiB,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,8BAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAC3yB;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,8UAA8U;AACjV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,uDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,+BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;;AAErC;;AAEA;AACA;AACA;AACA,wBAAuB,EAAE,cAAc,EAAE;AACzC,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAiC,wCAAwC;AACzE;AACA;AACA,uCAAsC,kCAAkC;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,4IAA2I;AAC3I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,oOAAoO;AACvO;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qFAAqF;AACxF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oLAAmL;AACnL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kLAAiL;AACjL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,uJAAuJ;AAC1J;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,iIAAiI;AACpI;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAiB,eAAe;AAChC,oBAAmB;;AAEnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uDAAsD;;AAEtD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC,2CAA2C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0KAAyK;AACzK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,2BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yBAAwB,aAAa,aAAa;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,gBAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa,YAAY;AACzB;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,+GAA+G;AAClH;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,iGAAiG;AACpG;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,EAAE,oEAAoE;AACvE;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,0GAA0G;AAC7G;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,eAAe;AACzD;;AAEA;;AAEA;AACA;AACA,EAAC,EAAE,kQAAkQ;AACrQ;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iDAAgD;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,+FAA+F;AAClG;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC,oCAAmC;AACnC,6BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,qBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,wLAAwL;AAC3L;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,4CAA4C;AAC/C;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,wDAAwD;AAC3D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,0FAAyF;AACzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,yFAAyF;AAC5F;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2EAA0E,mBAAmB;AAC7F;AACA;;AAEA;AACA,2DAA0D;AAC1D,2DAA0D;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG,2DAA2D;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;AACrB;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,wCAAuC;AACvC,iEAAgE;AAChE;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,+LAA+L;AAClM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX,4BAA2B;AAC3B,4BAA2B;AAC3B,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC,EAAE,iFAAiF;AACpF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAkB,YAAY,gBAAgB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,KAAK;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0EAAyE;AACzE,yEAAwE;AACxE,wEAAuE;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,OAAO;AAC5D;AACA;AACA;AACA,8BAA6B;AAC7B,QAAO;AACP,gCAA+B;AAC/B,UAAS;AACT,6BAA4B;AAC5B,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAmD;AACnD;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yDAAwD;AACxD;AACA,wDAAuD;AACvD;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yBAAwB;AACxB;AACA,qBAAoB;AACpB;AACA,4EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,8MAA8M;AACjN;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mBAAkB,aAAa,kBAAkB;AACjD,mBAAkB,QAAQ,gBAAgB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,qCAAoC,aAAa;AACjD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,sEAAqE;;AAErE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA8B,gCAAgC;AAC9D;AACA,mBAAkB,mBAAmB;AACrC,mBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAgC,qCAAqC;AACrE;AACA,2BAA0B,IAAI,qCAAqC;AACnE,2BAA0B;AAC1B,+BAA8B,qCAAqC;AACnE;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,IAAI,qCAAqC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA0B,mCAAmC;AAC7D,gCAA+B,mCAAmC;AAClE,mCAAkC,gDAAgD;AAClF,oCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,6DAA6D;AAC9F;AACA;AACA;AACA,kCAAiC,sDAAsD;AACvF;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yEAAwE;;AAExE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iCAAiC;AAC3C;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B;AACA,YAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,qCAAqC;AAClD;AACA;AACA;AACA,WAAU,6BAA6B;AACvC,mBAAkB,6BAA6B;AAC/C,eAAc,mDAAmD;AACjE,aAAY,mDAAmD;AAC/D,eAAc,mDAAmD;AACjE,EAAC,EAAE,4CAA4C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC,EAAE,8DAA8D;AACjE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC,GAAG;AACJ,mBAAkB;AAClB,EAAC,EAAE,qCAAqC;AACxC,mBAAkB;AAClB,EAAC,EAAE,sCAAsC;AACzC,mBAAkB;AAClB,EAAC,EAAE,gDAAgD;AACnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,EAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,EAAC,EAAE,uGAAuG;AAC1G;AACA;AACA;AACA;AACA,EAAC,EAAE,qBAAqB;AACxB;AACA;AACA,EAAC,EAAE,yEAAyE;AAC5E;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ,6BAA4B;AAC5B,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,mBAAmB;AACtB;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,0BAA0B;AAC7B,kBAAiB;;AAEjB;AACA;AACA;AACA,EAAC,GAAG;AACJ,8BAA6B;AAC7B,sCAAqC;AACrC,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,oBAAoB;AACvB;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC;AACD,EAAC,EAAE,eAAe;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf;AACA,EAAC,EAAE,2CAA2C;AAC9C;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,wCAAuC;AACvC,EAAC,GAAG;AACJ,wBAAuB;AACvB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,EAAC,EAAE,qDAAqD;AACxD;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,aAAa;AAChB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA;AACA,EAAC,EAAE,sFAAsF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,EAAE,uKAAuK;AAC1K;AACA,WAAU;AACV;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,EAAE,cAAc;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA;AACA,EAAC,EAAE,4DAA4D;AAC/D;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG;AACA,EAAC,EAAE,mCAAmC;AACtC;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC;AACA,EAAC,EAAE,gBAAgB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,kCAAkC;AACrC;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,6CAA6C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,iEAAiE;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,2GAA2G;AAC9G;AACA;AACA,+BAA8B,6CAA6C;AAC3E,EAAC,EAAE,mCAAmC;AACtC;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC;AACD,EAAC,EAAE,wCAAwC;AAC3C;AACA;AACA;AACA,EAAC,EAAE,6CAA6C,EAAE,GAAG;AACrD,EAAC,E;;;;;;ACl/OD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACxCA;AACA;AACA;;;;;;;ACFA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA4C;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA,G;;;;;;AChLA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA,2B;;;;;;ACtBA,mBAAkB,uD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA,mBAAkB,wD;;;;;;ACAlB;AACA,gE;;;;;;ACDA;AACA;AACA,+BAA8B,4CAA6C,E;;;;;;ACF3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;AC7CA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA,G;;;;;;ACzBA;AACA;AACA,G;;;;;;ACFA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;;;;;;ACvBA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACjHA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,cAAc,cAAc;;AAE7C;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB;;AAErB;AACA,sBAAqB;;AAErB,qDAAoD;;AAEpD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA,qC;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C,SAAS;AACrD;;AAEA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC3YA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;;;;;;AC5IA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB,mBAAkB;;AAElB,sBAAqB;AACrB,uBAAsB;;AAEtB,mBAAkB;AAClB,mBAAkB;;AAElB,mBAAkB;AAClB,oBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACnEA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAgD,QAAQ;AACxD;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AChXA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAwC,SAAS;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACvGA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC/EA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAwD;AACxD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAwD;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yDAAwD,YAAY;AACpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,wCAAwC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,mBAAmB,EAAE;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,gCAA+B,MAAM;AACrC;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAwD;AACxD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD,wBAAuB,+CAA+C;AACtE;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA,wBAAuB,4BAA4B;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;ACzjCA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC/GA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,cAAa,SAAS;AACtB;AACA,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;;;;;;AClHA,iBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA,yCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;AAEA;AACA,4CAA2C,SAAS;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,+CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA,gBAAe;AACf;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL,aAAY;AACZ;;AAEA;AACA;;;;;;;ACvZA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4IAA2I;AAC3I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,uKAAsK;AACtK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yJAAwJ;AACxJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wLAAuL;AACvL;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qLAAoL;AACpL;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,8D;;;;;;ACvkBA,mBAAkB,wD;;;;;;ACAlB;AACA,sD;;;;;;ACDA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,0B;;;;;;AC7CA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA,0C;;;;;;ACFA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA,G;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACnBA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,kBAAiB,iBAAiB;AAClC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2B;;;;;;ACxBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,mBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACnBA,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA;;AAEA,2B;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC/HA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9DA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,eAAc,iBAAiB;AAC/B;AACA,KAAI;AACJ;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,oBAAoB;AACjC;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB,YAAW,uBAAuB;AAClC,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,aAAY,SAAS,GAAG,SAAS,GAAG,SAAS;AAC7C,YAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACrGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,aAAY,2BAA2B;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,OAAO,OAAO,SAAS,EAAE,EAAE;AACjC,OAAM,OAAO,OAAO,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3DA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;;AAEA,gBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,0B;;;;;;ACdA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAiE,aAAa;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sEAAqE,eAAe;AACpF;AACA;;AAEA;AACA;;AAEA,0IAAyI;AACzI;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,sEAAqE,eAAe;AACpF;AACA;;AAEA;AACA;;AAEA,kJAAiJ;AACjJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oEAAmE,eAAe;AAClF;AACA;;AAEA;AACA,gJAA+I;AAC/I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,6DAA6D;;AAE3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kMAAiM;AACjM;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gB;;;;;;ACpPA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AC3rBD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+C;;;;;;AClDA,mBAAkB,yD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B,qBAAoB,4BAA4B,SAAS,IAAI;AAC7D,IAAG;AACH,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA,MAAK;AACL;AACA,uBAAsB,iCAAiC;AACvD,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,KAAK,QAAQ,iCAAiC;AAClG,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,yBAAwB,eAAe,EAAE;AACzC,yBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA,iCAAgC,gBAAgB;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA,8EAA6E,sBAAsB;;AAEnG;AACA;AACA;AACA;AACA;AACA,2C;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACbA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AC1VD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACxTD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;AC1ID;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACtBD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACtFD;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,iDAAgD,gBAAgB;AAChE;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,0BAA0B;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,E;;;;;;ACrFA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACvHA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa;AACb,cAAa;AACb,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uKAAsK;AACtK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,oBAAmB;AACnB,qBAAoB;AACpB,oBAAmB,cAAc;AACjC;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAkB,cAAc;AAChC,oBAAmB,YAAY;AAC/B;AACA;;AAEA;AACA;AACA,oBAAmB,cAAc;AACjC,oBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,WAAW;AAC9B;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA;;AAEA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yCAAwC,cAAc;AACtD;;AAEA;AACA;AACA;;AAEA;AACA,6GAA4G,kBAAkB;AAC9H;;AAEA;AACA;AACA;;AAEA;AACA,yDAAwD,aAAa;AACrE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;AC5QA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;;;;;;;AChCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;;;;;;;AC/IA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAwC;AACxC;;AAEA;AACA;AACA;AACA,sCAAqC;AACrC;;AAEA;AACA,yCAAwC;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;;AAEA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA,wCAAuC;AACvC;;AAEA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,wCAAuC;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;;;;;;ACtIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA8B,cAAc;;AAE5C;AACA;AACA;AACA;;AAEA,oCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA8B,cAAc;;AAE5C;AACA,oCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,+BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;;;;;;ACpKA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mBAAkB,QAAQ,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,oBAAoB;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wJAAuJ;AACvJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP,uDAAsD;;AAEtD,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;AClXA,mBAAkB,yD;;;;;;ACAlB;AACA,mC;;;;;;ACDA;AACA;;AAEA,+BAA8B,mCAAmC,E;;;;;;ACHjE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACtEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,uIAAsI;AACtI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,sJAAqJ;AACrJ;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+IAA8I;AAC9I;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qJAAoJ;AACpJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+IAA8I;AAC9I;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA,G;;;;;;ACvNA,mBAAkB,yD;;;;;;ACAlB;AACA,uE;;;;;;ACDA;;AAEA;AACA;AACA;;AAEA,2B;;;;;;ACNA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yIAAwI;AACxI;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kJAAiJ;AACjJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kJAAiJ;AACjJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;;AC/MA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC1FtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2B;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,oCAAmC;AACnC,qDAAoD;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8JAA6J;AAC7J;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qC;;;;;;AC1PA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,2CAA0C;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAuC,aAAa;AACpD,uCAAsC,aAAa;AACnD;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,qB;;;;;;;ACvJA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,SAAS;AAC1B,6BAA4B;AAC5B;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACpMA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;AC5HA;;AAEA;AACA,+BAA8B;AAC9B,Y;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA,cAAa,mBAAmB,GAAG,YAAY,GAAG,iBAAiB;AACnE,WAAU;AACV;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,cAAa,mBAAmB,GAAG,YAAY,GAAG,iBAAiB;AACnE,WAAU;AACV;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;;;;;;AC1CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,0CAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yIAAwI;AACxI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,0KAAyK;AACzK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP,0LAAyL;AACzL;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,gKAA+J;AAC/J;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,iCAAgC,WAAW;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA8B,oBAAoB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,yKAAwK;AACxK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,uKAAsK;AACtK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4JAA2J;AAC3J;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0LAAyL;AACzL;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL,gKAA+J;AAC/J;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL,0LAAyL;AACzL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL,4LAA2L;AAC3L;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4LAA2L;AAC3L;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,6JAA4J;AAC5J;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sKAAqK;AACrK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,6KAA4K;AAC5K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,4KAA2K;AAC3K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,I;;;;;;AC9sCA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA,iD;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;;;;;;ACvBA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;ACHA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAW;;AAEX;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,YAAW;;AAEX;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACxJA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;AChGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA,gBAAe,mBAAmB,GAAG,YAAY,GAAG,iBAAiB;AACrE,WAAU;AACV;AACA;;AAEA;;;;;;;ACxBA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACrBA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qIAAoI,kBAAkB;AACtJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qFAAoF,aAAa;AACjG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH,E;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,wBAAuB,SAAS;AAChC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;;AAGA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AC5tCA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6JAA4J;AAC5J;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA,6BAA4B,cAAc;AAC1C;;AAEA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,oKAAmK;AACnK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;AC9RA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,0CAAyC;AACzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qKAAoK;AACpK;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sEAAqE,oBAAoB;AACzF,E;;;;;;AClJA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,E;;;;;;AChMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,2CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA,+KAA8K;AAC9K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAAyB,aAAa;AACtC;AACA,IAAG,8BAA8B,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,+BAA8B,qBAAqB;AACnD;AACA;AACA,IAAG,mCAAmC,qBAAqB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAgD,aAAa;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,qC;;;;;;AC7NA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,wBAAuB,oBAAoB;AAC3C;;AAEA;;AAEA,iLAAgL;AAChL;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8JAA6J;AAC7J;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA,E;;;;;;ACtSA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,mFAAkF;;AAElF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA,qC;;;;;;ACjJA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC/BA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;;;;;AChBA;AACA;;AAEA;AACA;AACA,6FAA4F,MAAM,OAAO,IAAI,GAAG,IAAI,KAAK,iJAAiJ,8BAA8B,IAAI,8CAA8C,sJAAsJ,EAAE,MAAM,WAAW,IAAI,EAAE,2BAA2B,EAAE,mBAAmB,IAAI,GAAG,IAAI,OAAO,IAAI,YAAY,SAAS;;AAEpmB;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA,EAAC;;AAED,4CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,aAAa;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACnHA;;AAEA,+BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAC;;;;;;;;AChED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA,8BAA6B,YAAY,IAAI,IAAI,MAAM,IAAI;AAC3D;;;;;;;ACHA;AACA;AACA,yCAAwC;AACxC;;;;;;;ACHA;AACA;AACA,8BAA6B,YAAY,IAAI,IAAI,MAAM,IAAI;AAC3D;;;;;;;ACHA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC;;;;;;;;aCjDD,yBAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,iBAAiB,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,8BAAwB,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAC3yB;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,0TAA0T;AAC7T;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,uDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,+BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;;AAErC;;AAEA;AACA;AACA;AACA,wBAAuB,EAAE,cAAc,EAAE;AACzC,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAiC,wCAAwC;AACzE;AACA;AACA,uCAAsC,kCAAkC;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gLAA+K;AAC/K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,4IAA2I;AAC3I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,oOAAoO;AACvO;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qFAAqF;AACxF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oLAAmL;AACnL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kLAAiL;AACjL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,EAAE,uJAAuJ;AAC1J;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,iIAAiI;AACpI;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAiB,eAAe;AAChC,oBAAmB;;AAEnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uDAAsD;;AAEtD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAkC,2CAA2C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0KAAyK;AACzK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,2BAA0B,gEAAgE;AAC1F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yBAAwB,aAAa,aAAa;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH,gBAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa,YAAY;AACzB;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,gMAAgM;AACnM;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,+GAA+G;AAClH;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,0FAAyF;AACzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,yFAAyF;AAC5F;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2EAA0E,mBAAmB;AAC7F;AACA;;AAEA;AACA,2DAA0D;AAC1D,2DAA0D;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG,2DAA2D;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;AACrB;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,wCAAuC;AACvC,iEAAgE;AAChE;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA,EAAC,EAAE,+LAA+L;AAClM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX,4BAA2B;AAC3B,4BAA2B;AAC3B,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC,EAAE,iFAAiF;AACpF;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAkB,YAAY,gBAAgB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,KAAK;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA,0BAAyB;AACzB;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0EAAyE;AACzE,yEAAwE;AACxE,wEAAuE;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,OAAO;AAC5D;AACA;AACA;AACA,8BAA6B;AAC7B,QAAO;AACP,gCAA+B;AAC/B,UAAS;AACT,6BAA4B;AAC5B,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAmD;AACnD;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yDAAwD;AACxD;AACA,wDAAuD;AACvD;AACA,qBAAoB;AACpB;AACA,qBAAoB;AACpB;AACA,yBAAwB;AACxB;AACA,qBAAoB;AACpB;AACA,4EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,EAAC,EAAE,8MAA8M;AACjN;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mBAAkB,aAAa,kBAAkB;AACjD,mBAAkB,QAAQ,gBAAgB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,qCAAoC,aAAa;AACjD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,sEAAqE;;AAErE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA8B,gCAAgC;AAC9D;AACA,mBAAkB,mBAAmB;AACrC,mBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAgC,qCAAqC;AACrE;AACA,2BAA0B,IAAI,qCAAqC;AACnE,2BAA0B;AAC1B,+BAA8B,qCAAqC;AACnE;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,IAAI,qCAAqC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA0B,mCAAmC;AAC7D,gCAA+B,mCAAmC;AAClE,mCAAkC,gDAAgD;AAClF,oCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,6DAA6D;AAC9F;AACA;AACA;AACA,kCAAiC,sDAAsD;AACvF;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yEAAwE;;AAExE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iCAAiC;AAC3C;AACA;AACA,YAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B;AACA,YAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,qCAAqC;AAClD;AACA;AACA;AACA,WAAU,6BAA6B;AACvC,mBAAkB,6BAA6B;AAC/C,eAAc,mDAAmD;AACjE,aAAY,mDAAmD;AAC/D,eAAc,mDAAmD;AACjE,EAAC,EAAE,4CAA4C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,EAAC,EAAE,8DAA8D;AACjE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC,GAAG;AACJ,mBAAkB;AAClB,EAAC,EAAE,qCAAqC;AACxC,mBAAkB;AAClB,EAAC,EAAE,sCAAsC;AACzC,mBAAkB;AAClB,EAAC,EAAE,gDAAgD;AACnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,EAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,EAAC,EAAE,uGAAuG;AAC1G;AACA;AACA;AACA;AACA,EAAC,EAAE,qBAAqB;AACxB;AACA;AACA,EAAC,EAAE,yEAAyE;AAC5E;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ,6BAA4B;AAC5B,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,mBAAmB;AACtB;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,0BAA0B;AAC7B,kBAAiB;;AAEjB;AACA;AACA;AACA,EAAC,GAAG;AACJ,8BAA6B;AAC7B,sCAAqC;AACrC,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,oBAAoB;AACvB;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC;AACD,EAAC,EAAE,eAAe;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,gEAA+D;AAC/D;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf;AACA,EAAC,EAAE,2CAA2C;AAC9C;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA,wCAAuC;AACvC,EAAC,GAAG;AACJ,wBAAuB;AACvB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,EAAC,EAAE,qDAAqD;AACxD;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,aAAa;AAChB;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA;AACA,EAAC,EAAE,sFAAsF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,EAAE,uKAAuK;AAC1K;AACA,WAAU;AACV;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA,EAAC,EAAE,cAAc;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,QAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,GAAG;AACR;AACA;AACA,EAAC,EAAE,4DAA4D;AAC/D;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG;AACA,EAAC,EAAE,mCAAmC;AACtC;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC;AACA,EAAC,EAAE,gBAAgB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,qCAAqC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,kCAAkC;AACrC;AACA;AACA;AACA;AACA;AACA,EAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,6CAA6C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,+DAA+D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,EAAE,iEAAiE;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,EAAC,EAAE,2GAA2G;AAC9G;AACA;AACA,+BAA8B,6CAA6C;AAC3E,EAAC,EAAE,mCAAmC;AACtC;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC;AACD,EAAC,EAAE,wCAAwC;AAC3C;AACA;AACA;AACA,EAAC,EAAE,6CAA6C,EAAE,GAAG;AACrD,EAAC,E;;;;;;ACp/MD;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,0CAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA,qCAAoC;AACpC,qCAAoC;AACpC,yCAAwC;AACxC;AACA;;AAEA,0BAAyB,oBAAoB,aAAa;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wKAAuK;AACvK;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yEAAwE,eAAe;AACvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA,iCAAgC,eAAe;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oJAAmJ;AACnJ;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACtWA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,E;;;;;;ACjDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,iJAAgJ;AAChJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yJAAwJ;AACxJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,oKAAmK;AACnK;;AAEA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,eAAc;AACd,kEAAiE,mBAAmB;;AAEpF,eAAc,eAAe,KAAK;AAClC,2CAA0C,oBAAoB;;AAE9D;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC3eA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sIAAqI;AACrI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wJAAuJ;AACvJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,E;;;;;;ACvRA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iLAAgL;AAChL;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;ACpEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAC;AACD,uB;;;;;;AChEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wIAAuI;AACvI;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL,qJAAoJ;AACpJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,E;;;;;;AC5RA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL,+KAA8K;AAC9K;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;AC/JA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,mDAAkD;AAClD;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,sJAAqJ;AACrJ;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACzKA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,E;;;;;;ACvDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,MAAM,mBAAmB,UAAU,MAAM,EAAE;AAC/D,qCAAoC,MAAM,mBAAmB,MAAM,mBAAmB,MAAM;AAC5F,iDAAgD,MAAM,uBAAuB,MAAM,kBAAkB,MAAM;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0IAAyI;AACzI;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8KAA6K;AAC7K;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kLAAiL;AACjL;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,oJAAmJ;AACnJ;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8IAA6I;AAC7I;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,qBAAqB;AACtC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;AC/VA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qC;;;;;;ACdA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,E;;;;;;AClIA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACrDA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qIAAoI,kBAAkB;AACtJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qFAAoF,aAAa;AACjG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;AACH,E;;;;;;AC7FA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,oEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAuE;;AAEvE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wEAAuE;;AAEvE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAe,kBAAkB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAuE;;AAEvE;AACA;AACA;;AAEA;AACA,wEAAuE;;AAEvE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA,6BAA4B;AAC5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,mDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA8C,iBAAiB;AAC/D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6IAA4I;AAC5I;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;;AAEA,kBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,qC;;;;;;ACtYA,mBAAkB,yD;;;;;;ACAlB;AACA;AACA,2C;;;;;;ACFA;AACA;AACA,iE;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA,6BAA4B,e;;;;;;ACA5B;AACA,WAAU;AACV,G;;;;;;ACFA,qB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,mBAAmB;AACrC;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACjEA,uB;;;;;;ACAA,2C;;;;;;ACAA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA,wBAAuB;AACvB;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA;;AAEA;AACA,8FAAkF,aAAa,EAAE;;AAEjG;AACA,wDAAuD,0BAA0B;AACjF;AACA,G;;;;;;ACZA;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B,eAAc;AACd;AACA,EAAC;AACD;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,WAAU;AACV,EAAC,E;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACfA,mBAAkB,yD;;;;;;ACAlB;AACA,wD;;;;;;ACDA;AACA;;AAEA,2CAA0C,iCAAqC,E;;;;;;ACH/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,cAAa,gCAAgC;AAC7C,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,iB;;;;;;AChCD;AACA;AACA;AACA;AACA,G;;;;;;ACJA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,6CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA,wBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAAyB;AACzB;AACA,iBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAwB;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,gBAAgB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA,qC;;;;;;ACxUA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;ACTA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,E;;;;;;ACrGA,mBAAkB,yD;;;;;;ACAlB;AACA,sD;;;;;;ACDA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,GAAE;AACF,uEAAsE;;AAEtE;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA,oBAAmB,8BAA8B;AACjD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,gBAAe;AACf;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC,E;;;;;;ACtPD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,eAAc,iBAAiB;AAC/B;AACA,KAAI;AACJ;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,oBAAoB;AACjC;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,uBAAuB;AAClC;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iBAAiB;AAC3B;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACrGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,aAAY,2BAA2B;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,OAAO,OAAO,SAAS,EAAE,EAAE;AACjC,OAAM,OAAO,OAAO,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACtBA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS,aAAa;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,eAAc;AACd;AACA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAoC,eAAe;AACnD;AACA;;AAEA,mCAAkC,eAAe,gCAAgC,eAAe;AAChG;AACA;;AAEA;AACA;;AAEA;AACA,qBAAoB;AACpB;AACA;AACA;;AAEA,oCAAmC;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0CAAyC,aAAa;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAAyC,mBAAmB;AAC5D;AACA;;AAEA,+DAA8D,aAAa;AAC3E;AACA;;AAEA,qCAAoC,eAAe,uGAAuG,eAAe,8BAA8B,aAAa,yBAAyB,aAAa,uCAAuC,aAAa;AAC9S;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,E;;;;;;ACtRA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,mBAAmB;AACpC;;AAEA;AACA,qBAAoB;AACpB;AACA,oBAAmB;AACnB;AACA;;AAEA;AACA,E;;;;;;AClCA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2FAA0F,eAAe;;AAEzG;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAwC,uBAAuB;;AAE/D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uEAAsE;AACtE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,wEAAuE,8BAA8B,+CAA+C,+BAA+B;;AAEnL;AACA;AACA;AACA,4CAA2C,wCAAwC,kCAAkC,wDAAwD;AAC7K;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACtRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;;AAEA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;ACHA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAgB;AAChB;;AAEA;AACA,uBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc;;AAEd;AACA;AACA;AACA;AACA,eAAc;;AAEd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kEAAiE,eAAe,kCAAkC,eAAe;AACjI;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;;AAEd;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,eAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,gDAA+C,eAAe;AAC9D;AACA;;AAEA;AACA,uBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4KAA2K;AAC3K;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACnTA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAAyC,gBAAgB;AACzD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA8C,kBAAkB;AAChE;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,eAAc;AACd;AACA;AACA,iBAAgB;AAChB,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAAyC,gBAAgB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAAyC,gBAAgB;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,E;;;;;;ACjFA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA,E;;;;;;AChGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAkB;AAClB;AACA;AACA,2CAA0C,kBAAkB;AAC5D;AACA;AACA,mBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA,mBAAkB;AAClB;AACA,yCAAwC,kBAAkB;AAC1D;AACA,mBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;AC9JA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAc;AACd;;AAEA;AACA;AACA,kCAAiC,eAAe;AAChD;AACA;;AAEA,eAAc;AACd;;AAEA;;AAEA;AACA,0CAAyC,gBAAgB;AACzD;AACA;;AAEA;AACA,0CAAyC,gBAAgB;;AAEzD;AACA;AACA;AACA;AACA,IAAG;AACH,iBAAgB,eAAe,KAAK,SAAS,UAAU,KAAK,EAAE;AAC9D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,E;;;;;;AC/JA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA2C,kBAAkB;AAC7D;AACA;AACA;AACA,wCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qCAAoC,mBAAmB;AACvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAoC,kBAAkB;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,eAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA,eAAc;AACd;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAoC,mBAAmB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;AC1UA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAc;AACd;AACA;AACA;;AAEA,gDAA+C,eAAe;AAC9D;;AAEA,0CAAyC,eAAe;AACxD;AACA;AACA,IAAG;AACH,iBAAgB;AAChB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACnDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc;AACd;AACA,eAAc;AACd;;AAEA;AACA,eAAc;AACd;AACA,eAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sKAAqK;AACrK;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACtGA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;ACZA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,2CAA0C,aAAa;AACvD;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,oCAAoC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACjHA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACZA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,wCAAuC,gBAAgB,EAAE;AACzD,sCAAqC,cAAc,EAAE;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACvDA;AACA,2CAA0C;AAC1C;AACA,sBAAqB;AACrB;AACA;;;;;;;ACLA;AACA;;AAEA;AACA,oDAAmD;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;;;;;;AC3CA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACZA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACZA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;;;;;ACnCA","file":"cssx-transpiler.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\\n\\tif(typeof exports === \'object\' && typeof module === \'object\')\\n\\t\\tmodule.exports = factory();\\n\\telse if(typeof define === \'function\' && define.amd)\\n\\t\\tdefine(\\"CSSXTranspiler\\", [], factory);\\n\\telse if(typeof exports === \'object\')\\n\\t\\texports[\\"CSSXTranspiler\\"] = factory();\\n\\telse\\n\\t\\troot[\\"CSSXTranspiler\\"] = factory();\\n})(this, function() {\\nreturn \\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/universalModuleDefinition\\n **/"," \\t// The module cache\\n \\tvar installedModules = {};\\n\\n \\t// The require function\\n \\tfunction __webpack_require__(moduleId) {\\n\\n \\t\\t// Check if module is in cache\\n \\t\\tif(installedModules[moduleId])\\n \\t\\t\\treturn installedModules[moduleId].exports;\\n\\n \\t\\t// Create a new module (and put it into the cache)\\n \\t\\tvar module = installedModules[moduleId] = {\\n \\t\\t\\texports: {},\\n \\t\\t\\tid: moduleId,\\n \\t\\t\\tloaded: false\\n \\t\\t};\\n\\n \\t\\t// Execute the module function\\n \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n\\n \\t\\t// Flag the module as loaded\\n \\t\\tmodule.loaded = true;\\n\\n \\t\\t// Return the exports of the module\\n \\t\\treturn module.exports;\\n \\t}\\n\\n\\n \\t// expose the modules object (__webpack_modules__)\\n \\t__webpack_require__.m = modules;\\n\\n \\t// expose the module cache\\n \\t__webpack_require__.c = installedModules;\\n\\n \\t// __webpack_public_path__\\n \\t__webpack_require__.p = \\"\\";\\n\\n \\t// Load entry module and return exports\\n \\treturn __webpack_require__(0);\\n\\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/bootstrap 28ca1a7355c5f026c0db\\n **/","var AST = require(\'./core/AST\');\\nvar traverse = require(\'./core/traverse\');\\nvar generate = require(\'babel-generator\').default;\\nvar merge = require(\'./helpers/merge\');\\nvar randomId = require(\'./helpers/randomId\');\\n\\nvar visitors = {\\n  CSSXDefinition: require(\'./visitors/CSSXDefinition\'),\\n  CSSXElement: require(\'./visitors/CSSXElement\'),\\n  CSSXProperty: require(\'./visitors/CSSXProperty\'),\\n  CSSXRule: require(\'./visitors/CSSXRule\'),\\n  CSSXRules: require(\'./visitors/CSSXRules\'),\\n  CSSXSelector: require(\'./visitors/CSSXSelector\'),\\n  CSSXValue: require(\'./visitors/CSSXValue\'),\\n  CSSXMediaQueryElement: require(\'./visitors/CSSXMediaQueryElement\'),\\n  CSSXKeyframesElement: require(\'./visitors/CSSXKeyframesElement\')\\n};\\n\\nmodule.exports = function (code, options) {\\n  var ast = AST(code);\\n  var opts = merge(\\n    {\\n      minified: false,\\n      compact: false,\\n      concise: false,\\n      quotes: \'single\',\\n      sourceMaps: false\\n    },\\n    options || {}\\n  );\\n\\n  traverse(ast.program, visitors, opts);\\n  return generate(ast, opts, code).code;\\n};\\n\\nmodule.exports.ast = AST;\\n\\nmodule.exports.reset = function () {\\n  randomId.resetIDs();\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/index.js\\n ** module id = 0\\n ** module chunks = 0\\n **/","var babylon = require(\'../vendor/babylon\');\\n\\nvar BABYLON_PLUGINS = [\\n  \'jsx\',\\n  \'cssx\',\\n  \'flow\',\\n  \'asyncFunctions\',\\n  \'classConstructorCall\',\\n  \'doExpressions\',\\n  \'trailingFunctionCommas\',\\n  \'objectRestSpread\',\\n  \'decorators\',\\n  \'classProperties\',\\n  \'exportExtensions\',\\n  \'exponentiationOperator\',\\n  \'asyncGenerators\',\\n  \'functionBind\',\\n  \'functionSent\'\\n];\\n\\nmodule.exports = function (code) {\\n  return babylon.parse(code, {\\n    plugins: BABYLON_PLUGINS\\n  });\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/core/AST.js\\n ** module id = 1\\n ** module chunks = 0\\n **/","(function(f){if(typeof exports===\\"object\\"&&typeof module!==\\"undefined\\"){module.exports=f()}else if(typeof define===\\"function\\"&&define.amd){define([],f)}else{var g;if(typeof window!==\\"undefined\\"){g=window}else if(typeof global!==\\"undefined\\"){g=global}else if(typeof self!==\\"undefined\\"){g=self}else{g=this}g.babylon = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module \'\\"+o+\\"\'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.parse = parse;\\n\\nvar _parser = require(\\"./parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nrequire(\\"./parser/util\\");\\n\\nrequire(\\"./parser/statement\\");\\n\\nrequire(\\"./parser/lval\\");\\n\\nrequire(\\"./parser/expression\\");\\n\\nrequire(\\"./parser/node\\");\\n\\nrequire(\\"./parser/location\\");\\n\\nrequire(\\"./parser/comments\\");\\n\\nvar _tokenizerTypes = require(\\"./tokenizer/types\\");\\n\\nrequire(\\"./tokenizer\\");\\n\\nrequire(\\"./tokenizer/context\\");\\n\\nvar _pluginsFlow = require(\\"./plugins/flow\\");\\n\\nvar _pluginsFlow2 = _interopRequireDefault(_pluginsFlow);\\n\\nvar _pluginsJsx = require(\\"./plugins/jsx\\");\\n\\nvar _pluginsJsx2 = _interopRequireDefault(_pluginsJsx);\\n\\nvar _pluginsCssx = require(\\"./plugins/cssx\\");\\n\\nvar _pluginsCssx2 = _interopRequireDefault(_pluginsCssx);\\n\\n_parser.plugins.flow = _pluginsFlow2[\\"default\\"];\\n_parser.plugins.jsx = _pluginsJsx2[\\"default\\"];\\n_parser.plugins.cssx = _pluginsCssx2[\\"default\\"];\\n\\nfunction parse(input, options) {\\n  return new _parser2[\\"default\\"](options, input).parse();\\n}\\n\\nexports.tokTypes = _tokenizerTypes.types;\\n},{\\"./parser\\":5,\\"./parser/comments\\":3,\\"./parser/expression\\":4,\\"./parser/location\\":6,\\"./parser/lval\\":7,\\"./parser/node\\":8,\\"./parser/statement\\":9,\\"./parser/util\\":10,\\"./plugins/cssx\\":14,\\"./plugins/flow\\":20,\\"./plugins/jsx\\":21,\\"./tokenizer\\":24,\\"./tokenizer/context\\":23,\\"./tokenizer/types\\":26,\\"babel-runtime/helpers/interop-require-default\\":35}],2:[function(require,module,exports){\\n/* @flow */\\n// A second optional argument can be given to further configure\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.getOptions = getOptions;\\nvar defaultOptions /*: {\\n                     sourceType: string,\\n                     allowReturnOutsideFunction: boolean,\\n                     allowImportExportEverywhere: boolean,\\n                     allowSuperOutsideMethod: boolean,\\n                     plugins: Array<string>,\\n                     strictMode: any\\n                   }*/ = {\\n  // Source type (\\"script\\" or \\"module\\") for different semantics\\n  sourceType: \\"script\\",\\n  // When enabled, a return at the top level is not considered an\\n  // error.\\n  allowReturnOutsideFunction: false,\\n  // When enabled, import/export statements are not constrained to\\n  // appearing at the top of the program.\\n  allowImportExportEverywhere: false,\\n  // TODO\\n  allowSuperOutsideMethod: false,\\n  // An array of plugins to enable\\n  plugins: [],\\n  // TODO\\n  strictMode: null\\n};\\n\\nexports.defaultOptions = defaultOptions;\\n// Interpret and default an options object\\n\\nfunction getOptions(opts /*:: ?: Object*/) /*: Object*/ {\\n  var options = {};\\n  for (var key in defaultOptions) {\\n    options[key] = opts && key in opts ? opts[key] : defaultOptions[key];\\n  }\\n  return options;\\n}\\n\\n// the parser process. These options are recognized:\\n},{}],3:[function(require,module,exports){\\n/* @flow */\\n\\n/**\\n * Based on the comment attachment algorithm used in espree and estraverse.\\n *\\n * Redistribution and use in source and binary forms, with or without\\n * modification, are permitted provided that the following conditions are met:\\n *\\n * * Redistributions of source code must retain the above copyright\\n *   notice, this list of conditions and the following disclaimer.\\n * * Redistributions in binary form must reproduce the above copyright\\n *   notice, this list of conditions and the following disclaimer in the\\n *   documentation and/or other materials provided with the distribution.\\n *\\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nfunction last(stack) {\\n  return stack[stack.length - 1];\\n}\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\npp.addComment = function (comment) {\\n  this.state.trailingComments.push(comment);\\n  this.state.leadingComments.push(comment);\\n};\\n\\npp.processComment = function (node) {\\n  if (node.type === \\"Program\\" && node.body.length > 0) return;\\n\\n  var stack = this.state.commentStack;\\n\\n  var lastChild = undefined,\\n      trailingComments = undefined,\\n      i = undefined;\\n\\n  if (this.state.trailingComments.length > 0) {\\n    // If the first comment in trailingComments comes after the\\n    // current node, then we\'re good - all comments in the array will\\n    // come after the node and so it\'s safe to add them as official\\n    // trailingComments.\\n    if (this.state.trailingComments[0].start >= node.end) {\\n      trailingComments = this.state.trailingComments;\\n      this.state.trailingComments = [];\\n    } else {\\n      // Otherwise, if the first comment doesn\'t come after the\\n      // current node, that means we have a mix of leading and trailing\\n      // comments in the array and that leadingComments contains the\\n      // same items as trailingComments. Reset trailingComments to\\n      // zero items and we\'ll handle this by evaluating leadingComments\\n      // later.\\n      this.state.trailingComments.length = 0;\\n    }\\n  } else {\\n    var lastInStack = last(stack);\\n    if (stack.length > 0 && lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) {\\n      trailingComments = lastInStack.trailingComments;\\n      lastInStack.trailingComments = null;\\n    }\\n  }\\n\\n  // Eating the stack.\\n  while (stack.length > 0 && last(stack).start >= node.start) {\\n    lastChild = stack.pop();\\n  }\\n\\n  if (lastChild) {\\n    if (lastChild.leadingComments) {\\n      if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) {\\n        node.leadingComments = lastChild.leadingComments;\\n        lastChild.leadingComments = null;\\n      } else {\\n        // A leading comment for an anonymous class had been stolen by its first ClassMethod,\\n        // so this takes back the leading comment.\\n        // See also: https://github.com/eslint/espree/issues/158\\n        for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\\n          if (lastChild.leadingComments[i].end <= node.start) {\\n            node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\\n            break;\\n          }\\n        }\\n      }\\n    }\\n  } else if (this.state.leadingComments.length > 0) {\\n    if (last(this.state.leadingComments).end <= node.start) {\\n      node.leadingComments = this.state.leadingComments;\\n      this.state.leadingComments = [];\\n    } else {\\n      // https://github.com/eslint/espree/issues/2\\n      //\\n      // In special cases, such as return (without a value) and\\n      // debugger, all comments will end up as leadingComments and\\n      // will otherwise be eliminated. This step runs when the\\n      // commentStack is empty and there are comments left\\n      // in leadingComments.\\n      //\\n      // This loop figures out the stopping point between the actual\\n      // leading and trailing comments by finding the location of the\\n      // first comment that comes after the given node.\\n      for (i = 0; i < this.state.leadingComments.length; i++) {\\n        if (this.state.leadingComments[i].end > node.start) {\\n          break;\\n        }\\n      }\\n\\n      // Split the array based on the location of the first comment\\n      // that comes after the node. Keep in mind that this could\\n      // result in an empty array, and if so, the array must be\\n      // deleted.\\n      node.leadingComments = this.state.leadingComments.slice(0, i);\\n      if ((node.leadingComments /*: Array<any>*/).length === 0) {\\n        node.leadingComments = null;\\n      }\\n\\n      // Similarly, trailing comments are attached later. The variable\\n      // must be reset to null if there are no trailing comments.\\n      trailingComments = this.state.leadingComments.slice(i);\\n      if (trailingComments.length === 0) {\\n        trailingComments = null;\\n      }\\n    }\\n  }\\n\\n  if (trailingComments) {\\n    if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) {\\n      node.innerComments = trailingComments;\\n    } else {\\n      node.trailingComments = trailingComments;\\n    }\\n  }\\n\\n  stack.push(node);\\n};\\n},{\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],4:[function(require,module,exports){\\n// A recursive descent parser operates by defining functions for all\\n// syntactic elements, and recursively calling those, each function\\n// advancing the input stream and returning an AST node. Precedence\\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\\n// instead of `(!x)[1]` is handled by the fact that the parser\\n// function that parses unary prefix operators is called first, and\\n// in turn calls the function that parses `[]` subscripts — that\\n// way, it\'ll receive the node for `x[1]` already parsed, and wraps\\n// *that* in the unary operator node.\\n//\\n// Acorn uses an [operator precedence parser][opp] to handle binary\\n// operator precedence, because it is much more compact than using\\n// the technique outlined above, which uses different, nesting\\n// functions to specify precedence, for all of the ten binary\\n// precedence levels that JavaScript defines.\\n//\\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\\n\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Check if property name clashes with already added.\\n// Object/class getters and setters are not allowed to clash —\\n// either with each other or with an init property — and in\\n// strict mode, init properties are also not allowed to be repeated.\\n\\npp.checkPropClash = function (prop, propHash) {\\n  if (prop.computed) return;\\n\\n  var key = prop.key;\\n  var name = undefined;\\n  switch (key.type) {\\n    case \\"Identifier\\":\\n      name = key.name;\\n      break;\\n\\n    case \\"StringLiteral\\":\\n    case \\"NumericLiteral\\":\\n      name = String(key.value);\\n      break;\\n\\n    default:\\n      return;\\n  }\\n\\n  if (name === \\"__proto__\\" && prop.kind === \\"init\\") {\\n    if (propHash.proto) this.raise(key.start, \\"Redefinition of __proto__ property\\");\\n    propHash.proto = true;\\n  }\\n};\\n\\n// ### Expression parsing\\n\\n// These nest, from the most general expression type at the top to\\n// \'atomic\', nondivisible expression types at the bottom. Most of\\n// the functions will simply let the function (s) below them parse,\\n// and, *if* the syntactic construct they handle is present, wrap\\n// the AST node that the inner parser gave them in another node.\\n\\n// Parse a full expression. The optional arguments are used to\\n// forbid the `in` operator (in for loops initalization expressions)\\n// and provide reference for storing \'=\' operator inside shorthand\\n// property assignment in contexts where both object expression\\n// and object pattern might appear (so it\'s possible to raise\\n// delayed syntax error at correct position).\\n\\npp.parseExpression = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeAssign(noIn, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types.comma)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.expressions = [expr];\\n    while (this.eat(_tokenizerTypes.types.comma)) {\\n      node.expressions.push(this.parseMaybeAssign(noIn, refShorthandDefaultPos));\\n    }\\n    this.toReferencedList(node.expressions);\\n    return this.finishNode(node, \\"SequenceExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse an assignment expression. This includes applications of\\n// operators like `+=`.\\n\\npp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) {\\n  if (this.match(_tokenizerTypes.types._yield) && this.state.inGenerator) {\\n    return this.parseYield();\\n  }\\n\\n  var failOnShorthandAssign = undefined;\\n  if (refShorthandDefaultPos) {\\n    failOnShorthandAssign = false;\\n  } else {\\n    refShorthandDefaultPos = { start: 0 };\\n    failOnShorthandAssign = true;\\n  }\\n\\n  var startPos = this.state.start;\\n  var startLoc = this.state.startLoc;\\n\\n  if (this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.name)) {\\n    this.state.potentialArrowAt = this.state.start;\\n  }\\n\\n  var left = this.parseMaybeConditional(noIn, refShorthandDefaultPos);\\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc);\\n  if (this.state.type.isAssign) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.left = this.match(_tokenizerTypes.types.eq) ? this.toAssignable(left) : left;\\n    refShorthandDefaultPos.start = 0; // reset because shorthand default was used correctly\\n\\n    this.checkLVal(left);\\n\\n    if (left.extra && left.extra.parenthesized) {\\n      var errorMsg = undefined;\\n      if (left.type === \\"ObjectPattern\\") {\\n        errorMsg = \\"`({a}) = 0` use `({a} = 0)`\\";\\n      } else if (left.type === \\"ArrayPattern\\") {\\n        errorMsg = \\"`([a]) = 0` use `([a] = 0)`\\";\\n      }\\n      if (errorMsg) {\\n        this.raise(left.start, \\"You\'re trying to assign to a parenthesized expression, eg. instead of \\" + errorMsg);\\n      }\\n    }\\n\\n    this.next();\\n    node.right = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"AssignmentExpression\\");\\n  } else if (failOnShorthandAssign && refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n\\n  return left;\\n};\\n\\n// Parse a ternary conditional (`?:`) operator.\\n\\npp.parseMaybeConditional = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprOps(noIn, refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.test = expr;\\n    node.consequent = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.colon);\\n    node.alternate = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"ConditionalExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Start the precedence parser.\\n\\npp.parseExprOps = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeUnary(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  } else {\\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\\n  }\\n};\\n\\n// Parse binary operators with the operator precedence parsing\\n// algorithm. `left` is the left-hand side of the operator.\\n// `minPrec` provides context that allows the function to stop and\\n// defer further parser to one of its callers when it encounters an\\n// operator that has a lower precedence than the set it is parsing.\\n\\npp.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, noIn) {\\n  var prec = this.state.type.binop;\\n  if (prec != null && (!noIn || !this.match(_tokenizerTypes.types._in))) {\\n    if (prec > minPrec) {\\n      var node = this.startNodeAt(leftStartPos, leftStartLoc);\\n      node.left = left;\\n      node.operator = this.state.value;\\n\\n      if (node.operator === \\"**\\" && left.type === \\"UnaryExpression\\" && left.extra && !left.extra.parenthesizedArgument) {\\n        this.raise(left.argument.start, \\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\\");\\n      }\\n\\n      var op = this.state.type;\\n      this.next();\\n\\n      var startPos = this.state.start;\\n      var startLoc = this.state.startLoc;\\n      node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec, noIn);\\n\\n      this.finishNode(node, op === _tokenizerTypes.types.logicalOR || op === _tokenizerTypes.types.logicalAND ? \\"LogicalExpression\\" : \\"BinaryExpression\\");\\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);\\n    }\\n  }\\n  return left;\\n};\\n\\n// Parse unary operators, both prefix and postfix.\\n\\npp.parseMaybeUnary = function (refShorthandDefaultPos) {\\n  if (this.state.type.prefix) {\\n    var node = this.startNode();\\n    var update = this.match(_tokenizerTypes.types.incDec);\\n    node.operator = this.state.value;\\n    node.prefix = true;\\n    this.next();\\n\\n    var argType = this.state.type;\\n    this.addExtra(node, \\"parenthesizedArgument\\", argType === _tokenizerTypes.types.parenL);\\n    node.argument = this.parseMaybeUnary();\\n\\n    if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n      this.unexpected(refShorthandDefaultPos.start);\\n    }\\n\\n    if (update) {\\n      this.checkLVal(node.argument);\\n    } else if (this.state.strict && node.operator === \\"delete\\" && node.argument.type === \\"Identifier\\") {\\n      this.raise(node.start, \\"Deleting local variable in strict mode\\");\\n    }\\n\\n    return this.finishNode(node, update ? \\"UpdateExpression\\" : \\"UnaryExpression\\");\\n  }\\n\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprSubscripts(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  while (this.state.type.postfix && !this.canInsertSemicolon()) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.prefix = false;\\n    node.argument = expr;\\n    this.checkLVal(expr);\\n    this.next();\\n    expr = this.finishNode(node, \\"UpdateExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse call, dot, and `[]`-subscript expressions.\\n\\npp.parseExprSubscripts = function (refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var potentialArrowAt = this.state.potentialArrowAt;\\n  var expr = this.parseExprAtom(refShorthandDefaultPos);\\n\\n  if (expr.type === \\"ArrowFunctionExpression\\" && expr.start === potentialArrowAt) {\\n    return expr;\\n  }\\n\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  }\\n\\n  return this.parseSubscripts(expr, startPos, startLoc);\\n};\\n\\npp.parseSubscripts = function (base, startPos, startLoc, noCalls) {\\n  for (;;) {\\n    if (!noCalls && this.eat(_tokenizerTypes.types.doubleColon)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.callee = this.parseNoCallExpr();\\n      return this.parseSubscripts(this.finishNode(node, \\"BindExpression\\"), startPos, startLoc, noCalls);\\n    } else if (this.eat(_tokenizerTypes.types.dot)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseIdentifier(true);\\n      node.computed = false;\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (this.eat(_tokenizerTypes.types.bracketL)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseExpression();\\n      node.computed = true;\\n      this.expect(_tokenizerTypes.types.bracketR);\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (!noCalls && this.match(_tokenizerTypes.types.parenL)) {\\n      var possibleAsync = this.state.potentialArrowAt === base.start && base.type === \\"Identifier\\" && base.name === \\"async\\" && !this.canInsertSemicolon();\\n      this.next();\\n\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.callee = base;\\n      node.arguments = this.parseCallExpressionArguments(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"), possibleAsync);\\n      base = this.finishNode(node, \\"CallExpression\\");\\n\\n      if (possibleAsync && this.shouldParseAsyncArrow()) {\\n        return this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node);\\n      } else {\\n        this.toReferencedList(node.arguments);\\n      }\\n    } else if (this.match(_tokenizerTypes.types.backQuote)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.tag = base;\\n      node.quasi = this.parseTemplate();\\n      base = this.finishNode(node, \\"TaggedTemplateExpression\\");\\n    } else {\\n      return base;\\n    }\\n  }\\n};\\n\\npp.parseCallExpressionArguments = function (close, allowTrailingComma, possibleAsyncArrow) {\\n  var innerParenStart = undefined;\\n\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    // we need to make sure that if this is an async arrow functions, that we don\'t allow inner parens inside the params\\n    if (this.match(_tokenizerTypes.types.parenL) && !innerParenStart) {\\n      innerParenStart = this.state.start;\\n    }\\n\\n    elts.push(this.parseExprListItem());\\n  }\\n\\n  // we found an async arrow function so let\'s not allow any inner parens\\n  if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\\n    this.unexpected();\\n  }\\n\\n  return elts;\\n};\\n\\npp.shouldParseAsyncArrow = function () {\\n  return this.match(_tokenizerTypes.types.arrow);\\n};\\n\\npp.parseAsyncArrowFromCallExpression = function (node, call) {\\n  if (!this.hasPlugin(\\"asyncFunctions\\")) this.unexpected();\\n  this.expect(_tokenizerTypes.types.arrow);\\n  return this.parseArrowExpression(node, call.arguments, true);\\n};\\n\\n// Parse a no-call expression (like argument of `new` or `::` operators).\\n\\npp.parseNoCallExpr = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\\n};\\n\\n// Parse an atomic expression — either a single token that is an\\n// expression, an expression started by a keyword like `function` or\\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\\n// or `{}`.\\n\\npp.parseExprAtom = function (refShorthandDefaultPos) {\\n  var node = undefined,\\n      canBeArrow = this.state.potentialArrowAt === this.state.start;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._super:\\n      if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) {\\n        this.raise(this.state.start, \\"\'super\' outside of function or class\\");\\n      }\\n\\n      node = this.startNode();\\n      this.next();\\n      if (!this.match(_tokenizerTypes.types.parenL) && !this.match(_tokenizerTypes.types.bracketL) && !this.match(_tokenizerTypes.types.dot)) {\\n        this.unexpected();\\n      }\\n      if (this.match(_tokenizerTypes.types.parenL) && this.state.inMethod !== \\"constructor\\" && !this.options.allowSuperOutsideMethod) {\\n        this.raise(node.start, \\"super() outside of class constructor\\");\\n      }\\n      return this.finishNode(node, \\"Super\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"ThisExpression\\");\\n\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      node = this.startNode();\\n      var allowAwait = this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"await\\" && this.state.inAsync;\\n      var allowYield = this.shouldAllowYieldIdentifier();\\n      var id = this.parseIdentifier(allowAwait || allowYield);\\n\\n      if (this.hasPlugin(\\"asyncFunctions\\")) {\\n        if (id.name === \\"await\\") {\\n          if (this.state.inAsync || this.inModule) {\\n            return this.parseAwait(node);\\n          }\\n        } else if (id.name === \\"async\\" && this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.next();\\n          return this.parseFunction(node, false, false, true);\\n        } else if (canBeArrow && id.name === \\"async\\" && this.match(_tokenizerTypes.types.name)) {\\n          var params = [this.parseIdentifier()];\\n          this.expect(_tokenizerTypes.types.arrow);\\n          // let foo = bar => {};\\n          return this.parseArrowExpression(node, params, true);\\n        }\\n      }\\n\\n      if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n        return this.parseArrowExpression(node, [id]);\\n      }\\n\\n      return id;\\n\\n    case _tokenizerTypes.types._do:\\n      if (this.hasPlugin(\\"doExpressions\\")) {\\n        var _node = this.startNode();\\n        this.next();\\n        var oldInFunction = this.state.inFunction;\\n        var oldLabels = this.state.labels;\\n        this.state.labels = [];\\n        this.state.inFunction = false;\\n        _node.body = this.parseBlock(false, true);\\n        this.state.inFunction = oldInFunction;\\n        this.state.labels = oldLabels;\\n        return this.finishNode(_node, \\"DoExpression\\");\\n      }\\n\\n    case _tokenizerTypes.types.regexp:\\n      var value = this.state.value;\\n      node = this.parseLiteral(value.value, \\"RegExpLiteral\\");\\n      node.pattern = value.pattern;\\n      node.flags = value.flags;\\n      return node;\\n\\n    case _tokenizerTypes.types.num:\\n      return this.parseLiteral(this.state.value, \\"NumericLiteral\\");\\n\\n    case _tokenizerTypes.types.string:\\n      return this.parseLiteral(this.state.value, \\"StringLiteral\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteral\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node = this.startNode();\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteral\\");\\n\\n    case _tokenizerTypes.types.parenL:\\n      return this.parseParenAndDistinguishExpression(null, null, canBeArrow);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      node = this.startNode();\\n      this.next();\\n      node.elements = this.parseExprList(_tokenizerTypes.types.bracketR, true, true, refShorthandDefaultPos);\\n      this.toReferencedList(node.elements);\\n      return this.finishNode(node, \\"ArrayExpression\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(false, refShorthandDefaultPos);\\n\\n    case _tokenizerTypes.types._function:\\n      return this.parseFunctionExpression();\\n\\n    case _tokenizerTypes.types.at:\\n      this.parseDecorators();\\n\\n    case _tokenizerTypes.types._class:\\n      node = this.startNode();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, false);\\n\\n    case _tokenizerTypes.types._new:\\n      return this.parseNew();\\n\\n    case _tokenizerTypes.types.backQuote:\\n      return this.parseTemplate();\\n\\n    case _tokenizerTypes.types.doubleColon:\\n      node = this.startNode();\\n      this.next();\\n      node.object = null;\\n      var callee = node.callee = this.parseNoCallExpr();\\n      if (callee.type === \\"MemberExpression\\") {\\n        return this.finishNode(node, \\"BindExpression\\");\\n      } else {\\n        this.raise(callee.start, \\"Binding should be performed on object property.\\");\\n      }\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseFunctionExpression = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n  if (this.state.inGenerator && this.eat(_tokenizerTypes.types.dot) && this.hasPlugin(\\"functionSent\\")) {\\n    return this.parseMetaProperty(node, meta, \\"sent\\");\\n  } else {\\n    return this.parseFunction(node, false);\\n  }\\n};\\n\\npp.parseMetaProperty = function (node, meta, propertyName) {\\n  node.meta = meta;\\n  node.property = this.parseIdentifier(true);\\n\\n  if (node.property.name !== propertyName) {\\n    this.raise(node.property.start, \\"The only valid meta property for new is \\" + meta.name + \\".\\" + propertyName);\\n  }\\n\\n  return this.finishNode(node, \\"MetaProperty\\");\\n};\\n\\npp.parseLiteral = function (value, type) {\\n  var node = this.startNode();\\n  this.addExtra(node, \\"rawValue\\", value);\\n  this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n  node.value = value;\\n  this.next();\\n  return this.finishNode(node, type);\\n};\\n\\npp.parseParenExpression = function () {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var val = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  return val;\\n};\\n\\npp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow, isAsync, allowOptionalCommaStart) {\\n  startPos = startPos || this.state.start;\\n  startLoc = startLoc || this.state.startLoc;\\n\\n  var val = undefined;\\n  this.next();\\n\\n  var innerStartPos = this.state.start,\\n      innerStartLoc = this.state.startLoc;\\n  var exprList = [],\\n      first = true;\\n  var refShorthandDefaultPos = { start: 0 },\\n      spreadStart = undefined,\\n      optionalCommaStart = undefined;\\n  while (!this.match(_tokenizerTypes.types.parenR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.match(_tokenizerTypes.types.parenR) && this.hasPlugin(\\"trailingFunctionCommas\\")) {\\n        optionalCommaStart = this.state.start;\\n        break;\\n      }\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      var spreadNodeStartPos = this.state.start,\\n          spreadNodeStartLoc = this.state.startLoc;\\n      spreadStart = this.state.start;\\n      exprList.push(this.parseParenItem(this.parseRest(), spreadNodeStartLoc, spreadNodeStartPos));\\n      break;\\n    } else {\\n      exprList.push(this.parseMaybeAssign(false, refShorthandDefaultPos, this.parseParenItem));\\n    }\\n  }\\n\\n  var innerEndPos = this.state.start;\\n  var innerEndLoc = this.state.startLoc;\\n  this.expect(_tokenizerTypes.types.parenR);\\n\\n  if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n    for (var _i = 0; _i < exprList.length; _i++) {\\n      var param = exprList[_i];\\n      if (param.extra && param.extra.parenthesized) this.unexpected(param.extra.parenStart);\\n    }\\n\\n    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, isAsync);\\n  }\\n\\n  if (!exprList.length) {\\n    if (isAsync) {\\n      return;\\n    } else {\\n      this.unexpected(this.state.lastTokStart);\\n    }\\n  }\\n  if (optionalCommaStart && !allowOptionalCommaStart) this.unexpected(optionalCommaStart);\\n  if (spreadStart) this.unexpected(spreadStart);\\n  if (refShorthandDefaultPos.start) this.unexpected(refShorthandDefaultPos.start);\\n\\n  if (exprList.length > 1) {\\n    val = this.startNodeAt(innerStartPos, innerStartLoc);\\n    val.expressions = exprList;\\n    this.toReferencedList(val.expressions);\\n    this.finishNodeAt(val, \\"SequenceExpression\\", innerEndPos, innerEndLoc);\\n  } else {\\n    val = exprList[0];\\n  }\\n\\n  this.addExtra(val, \\"parenthesized\\", true);\\n  this.addExtra(val, \\"parenStart\\", startPos);\\n\\n  return val;\\n};\\n\\npp.parseParenItem = function (node) {\\n  return node;\\n};\\n\\n// New\'s precedence is slightly tricky. It must allow its argument\\n// to be a `[]` or dot subscript expression, but not a call — at\\n// least, not without wrapping it in parentheses. Thus, it uses the\\n\\npp.parseNew = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n\\n  if (this.eat(_tokenizerTypes.types.dot)) {\\n    return this.parseMetaProperty(node, meta, \\"target\\");\\n  }\\n\\n  node.callee = this.parseNoCallExpr();\\n\\n  if (this.eat(_tokenizerTypes.types.parenL)) {\\n    node.arguments = this.parseExprList(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n    this.toReferencedList(node.arguments);\\n  } else {\\n    node.arguments = [];\\n  }\\n\\n  return this.finishNode(node, \\"NewExpression\\");\\n};\\n\\n// Parse template expression.\\n\\npp.parseTemplateElement = function () {\\n  var elem = this.startNode();\\n  elem.value = {\\n    raw: this.input.slice(this.state.start, this.state.end).replace(/\\\\r\\\\n?/g, \\"\\\\n\\"),\\n    cooked: this.state.value\\n  };\\n  this.next();\\n  elem.tail = this.match(_tokenizerTypes.types.backQuote);\\n  return this.finishNode(elem, \\"TemplateElement\\");\\n};\\n\\npp.parseTemplate = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.expressions = [];\\n  var curElt = this.parseTemplateElement();\\n  node.quasis = [curElt];\\n  while (!curElt.tail) {\\n    this.expect(_tokenizerTypes.types.dollarBraceL);\\n    node.expressions.push(this.parseExpression());\\n    this.expect(_tokenizerTypes.types.braceR);\\n    node.quasis.push(curElt = this.parseTemplateElement());\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"TemplateLiteral\\");\\n};\\n\\n// Parse an object literal or binding pattern.\\n\\npp.parseObj = function (isPattern, refShorthandDefaultPos) {\\n  var decorators = [];\\n  var propHash = _Object$create(null);\\n  var first = true;\\n  var node = this.startNode();\\n\\n  node.properties = [];\\n  this.next();\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    while (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n    }\\n\\n    var prop = this.startNode(),\\n        isGenerator = false,\\n        isAsync = false,\\n        startPos = undefined,\\n        startLoc = undefined;\\n    if (decorators.length) {\\n      prop.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    if (this.hasPlugin(\\"objectRestSpread\\") && this.match(_tokenizerTypes.types.ellipsis)) {\\n      prop = this.parseSpread();\\n      prop.type = isPattern ? \\"RestProperty\\" : \\"SpreadProperty\\";\\n      node.properties.push(prop);\\n      continue;\\n    }\\n\\n    prop.method = false;\\n    prop.shorthand = false;\\n\\n    if (isPattern || refShorthandDefaultPos) {\\n      startPos = this.state.start;\\n      startLoc = this.state.startLoc;\\n    }\\n\\n    if (!isPattern) {\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n    }\\n\\n    if (!isPattern && this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\")) {\\n      if (isGenerator) this.unexpected();\\n\\n      var asyncId = this.parseIdentifier();\\n      if (this.match(_tokenizerTypes.types.colon) || this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.braceR)) {\\n        prop.key = asyncId;\\n      } else {\\n        isAsync = true;\\n        if (this.hasPlugin(\\"asyncGenerators\\")) isGenerator = this.eat(_tokenizerTypes.types.star);\\n        this.parsePropertyName(prop);\\n      }\\n    } else {\\n      this.parsePropertyName(prop);\\n    }\\n\\n    this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos);\\n    this.checkPropClash(prop, propHash);\\n\\n    if (prop.shorthand) {\\n      this.addExtra(prop, \\"shorthand\\", true);\\n    }\\n\\n    node.properties.push(prop);\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no property\\");\\n  }\\n\\n  return this.finishNode(node, isPattern ? \\"ObjectPattern\\" : \\"ObjectExpression\\");\\n};\\n\\npp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos) {\\n  if (isAsync || isGenerator || this.match(_tokenizerTypes.types.parenL)) {\\n    if (isPattern) this.unexpected();\\n    prop.kind = \\"method\\";\\n    prop.method = true;\\n    this.parseMethod(prop, isGenerator, isAsync);\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.colon)) {\\n    prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refShorthandDefaultPos);\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\" && (prop.key.name === \\"get\\" || prop.key.name === \\"set\\") && !this.match(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    if (isGenerator || isAsync || isPattern) this.unexpected();\\n    prop.kind = prop.key.name;\\n    this.parsePropertyName(prop);\\n    this.parseMethod(prop, false);\\n    var paramCount = prop.kind === \\"get\\" ? 0 : 1;\\n    if (prop.params.length !== paramCount) {\\n      var start = prop.start;\\n      if (prop.kind === \\"get\\") {\\n        this.raise(start, \\"getter should have no params\\");\\n      } else {\\n        this.raise(start, \\"setter should have exactly one param\\");\\n      }\\n    }\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\") {\\n    if (isPattern) {\\n      var illegalBinding = this.isKeyword(prop.key.name);\\n      if (!illegalBinding && this.state.strict) {\\n        illegalBinding = _utilIdentifier.reservedWords.strictBind(prop.key.name) || _utilIdentifier.reservedWords.strict(prop.key.name);\\n      }\\n      if (illegalBinding) {\\n        this.raise(prop.key.start, \\"Binding \\" + prop.key.name);\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else if (this.match(_tokenizerTypes.types.eq) && refShorthandDefaultPos) {\\n      if (!refShorthandDefaultPos.start) {\\n        refShorthandDefaultPos.start = this.state.start;\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else {\\n      prop.value = prop.key.__clone();\\n    }\\n    prop.shorthand = true;\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.parsePropertyName = function (prop) {\\n  if (this.eat(_tokenizerTypes.types.bracketL)) {\\n    prop.computed = true;\\n    prop.key = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return prop.key;\\n  } else {\\n    prop.computed = false;\\n    return prop.key = this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n  }\\n};\\n\\n// Initialize empty function node.\\n\\npp.initFunction = function (node, isAsync) {\\n  node.id = null;\\n  node.generator = false;\\n  node.expression = false;\\n  if (this.hasPlugin(\\"asyncFunctions\\")) {\\n    node.async = !!isAsync;\\n  }\\n};\\n\\n// Parse object or class method.\\n\\npp.parseMethod = function (node, isGenerator, isAsync) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = node.kind || true;\\n  this.initFunction(node, isAsync);\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n  node.generator = isGenerator;\\n  this.parseFunctionBody(node);\\n  this.state.inMethod = oldInMethod;\\n  return node;\\n};\\n\\n// Parse arrow function expression with given parameters.\\n\\npp.parseArrowExpression = function (node, params, isAsync) {\\n  this.initFunction(node, isAsync);\\n  node.params = this.toAssignableList(params, true);\\n  this.parseFunctionBody(node, true);\\n  return this.finishNode(node, \\"ArrowFunctionExpression\\");\\n};\\n\\n// Parse function body and check parameters.\\n\\npp.parseFunctionBody = function (node, allowExpression) {\\n  var isExpression = allowExpression && !this.match(_tokenizerTypes.types.braceL);\\n\\n  var oldInAsync = this.state.inAsync;\\n  this.state.inAsync = node.async;\\n  if (isExpression) {\\n    node.body = this.parseMaybeAssign();\\n    node.expression = true;\\n  } else {\\n    // Start a new scope with regard to labels and the `inFunction`\\n    // flag (restore them to their old value afterwards).\\n    var oldInFunc = this.state.inFunction,\\n        oldInGen = this.state.inGenerator,\\n        oldLabels = this.state.labels;\\n    this.state.inFunction = true;this.state.inGenerator = node.generator;this.state.labels = [];\\n    node.body = this.parseBlock(true);\\n    node.expression = false;\\n    this.state.inFunction = oldInFunc;this.state.inGenerator = oldInGen;this.state.labels = oldLabels;\\n  }\\n  this.state.inAsync = oldInAsync;\\n\\n  // If this is a strict mode function, verify that argument names\\n  // are not repeated, and it does not try to bind the words `eval`\\n  // or `arguments`.\\n  var checkLVal = this.state.strict;\\n  var checkLValStrict = false;\\n  var isStrict = false;\\n\\n  // arrow function\\n  if (allowExpression) checkLVal = true;\\n\\n  // normal function\\n  if (!isExpression && node.body.directives.length) {\\n    for (var _iterator = (node.body.directives /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i2 >= _iterator.length) break;\\n        _ref = _iterator[_i2++];\\n      } else {\\n        _i2 = _iterator.next();\\n        if (_i2.done) break;\\n        _ref = _i2.value;\\n      }\\n\\n      var directive = _ref;\\n\\n      if (directive.value.value === \\"use strict\\") {\\n        isStrict = true;\\n        checkLVal = true;\\n        checkLValStrict = true;\\n        break;\\n      }\\n    }\\n  }\\n\\n  //\\n  if (isStrict && node.id && node.id.type === \\"Identifier\\" && node.id.name === \\"yield\\") {\\n    this.raise(node.id.start, \\"Binding yield in strict mode\\");\\n  }\\n\\n  if (checkLVal) {\\n    var nameHash = _Object$create(null);\\n    var oldStrict = this.state.strict;\\n    if (checkLValStrict) this.state.strict = true;\\n    if (node.id) {\\n      this.checkLVal(node.id, true);\\n    }\\n    for (var _iterator2 = (node.params /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i3 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i3++];\\n      } else {\\n        _i3 = _iterator2.next();\\n        if (_i3.done) break;\\n        _ref2 = _i3.value;\\n      }\\n\\n      var param = _ref2;\\n\\n      this.checkLVal(param, true, nameHash);\\n    }\\n    this.state.strict = oldStrict;\\n  }\\n};\\n\\n// Parses a comma-separated list of expressions, and returns them as\\n// an array. `close` is the token type that ends the list, and\\n// `allowEmpty` can be turned on to allow subsequent commas with\\n// nothing in between them to be parsed as `null` (which is needed\\n// for array literals).\\n\\npp.parseExprList = function (close, allowTrailingComma, allowEmpty, refShorthandDefaultPos) {\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    elts.push(this.parseExprListItem(allowEmpty, refShorthandDefaultPos));\\n  }\\n  return elts;\\n};\\n\\npp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) {\\n  var elt = undefined;\\n  if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n    elt = null;\\n  } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n    elt = this.parseSpread(refShorthandDefaultPos);\\n  } else {\\n    elt = this.parseMaybeAssign(false, refShorthandDefaultPos);\\n  }\\n  return elt;\\n};\\n\\n// Parse the next token as an identifier. If `liberal` is true (used\\n// when parsing properties), it will also convert keywords into\\n// identifiers.\\n\\npp.parseIdentifier = function (liberal) {\\n  var node = this.startNode();\\n\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    if (!liberal && this.state.strict && _utilIdentifier.reservedWords.strict(this.state.value)) {\\n      this.raise(this.state.start, \\"The keyword \'\\" + this.state.value + \\"\' is reserved\\");\\n    }\\n\\n    node.name = this.state.value;\\n  } else if (liberal && this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n\\n  if (!liberal && node.name === \\"await\\" && this.state.inAsync) {\\n    this.raise(node.start, \\"invalid use of await inside of an async function\\");\\n  }\\n\\n  this.next();\\n  return this.finishNode(node, \\"Identifier\\");\\n};\\n\\n// Parses await expression inside async function.\\n\\npp.parseAwait = function (node) {\\n  if (!this.state.inAsync) {\\n    this.unexpected();\\n  }\\n  if (this.isLineTerminator()) {\\n    this.unexpected();\\n  }\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    this.raise(node.start, \\"await* has been removed from the async functions proposal. Use Promise.all() instead.\\");\\n  }\\n  node.argument = this.parseMaybeUnary();\\n  return this.finishNode(node, \\"AwaitExpression\\");\\n};\\n\\n// Parses yield expression inside generator.\\n\\npp.parseYield = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon() || !this.match(_tokenizerTypes.types.star) && !this.state.type.startsExpr) {\\n    node.delegate = false;\\n    node.argument = null;\\n  } else {\\n    node.delegate = this.eat(_tokenizerTypes.types.star);\\n    node.argument = this.parseMaybeAssign();\\n  }\\n  return this.finishNode(node, \\"YieldExpression\\");\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/identifier\\":27,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/core-js/object/create\\":31,\\"babel-runtime/helpers/interop-require-default\\":35}],5:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _options = require(\\"../options\\");\\n\\nvar _tokenizer = require(\\"../tokenizer\\");\\n\\nvar _tokenizer2 = _interopRequireDefault(_tokenizer);\\n\\nvar plugins = {};\\n\\nexports.plugins = plugins;\\n\\nvar Parser = (function (_Tokenizer) {\\n  _inherits(Parser, _Tokenizer);\\n\\n  function Parser(options /*: Object*/, input /*: string*/) {\\n    _classCallCheck(this, Parser);\\n\\n    options = _options.getOptions(options);\\n    _Tokenizer.call(this, options, input);\\n\\n    this.options = options;\\n    this.inModule = this.options.sourceType === \\"module\\";\\n    this.isReservedWord = _utilIdentifier.reservedWords[6];\\n    this.input = input;\\n    this.plugins = this.loadPlugins(this.options.plugins);\\n\\n    // If enabled, skip leading hashbang line.\\n    if (this.state.pos === 0 && this.input[0] === \\"#\\" && this.input[1] === \\"!\\") {\\n      this.skipLineComment(2);\\n    }\\n  }\\n\\n  Parser.prototype.hasPlugin = function hasPlugin(name /*: string*/) /*: boolean*/ {\\n    return !!(this.plugins[\\"*\\"] || this.plugins[name]);\\n  };\\n\\n  Parser.prototype.extend = function extend(name /*: string*/, f /*: Function*/) {\\n    this[name] = f(this[name]);\\n  };\\n\\n  Parser.prototype.loadPlugins = function loadPlugins(plugins /*: Array<string>*/) /*: Object*/ {\\n    var pluginMap = {};\\n\\n    if (plugins.indexOf(\\"flow\\") >= 0) {\\n      // ensure flow plugin loads last\\n      plugins = plugins.filter(function (plugin) {\\n        return plugin !== \\"flow\\";\\n      });\\n      plugins.push(\\"flow\\");\\n    }\\n\\n    for (var _iterator = plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var _name = _ref;\\n\\n      if (!pluginMap[_name]) {\\n        pluginMap[_name] = true;\\n\\n        var plugin = exports.plugins[_name];\\n        if (plugin) plugin(this);\\n      }\\n    }\\n\\n    return pluginMap;\\n  };\\n\\n  Parser.prototype.parse = function parse() /*: {\\n                                                type: \\"File\\",\\n                                                program: {\\n                                                  type: \\"Program\\",\\n                                                  body: Array<Object>\\n                                                }\\n                                              }*/ {\\n    var file = this.startNode();\\n    var program = this.startNode();\\n    this.nextToken();\\n    return this.parseTopLevel(file, program);\\n  };\\n\\n  return Parser;\\n})(_tokenizer2[\\"default\\"]);\\n\\nexports[\\"default\\"] = Parser;\\n},{\\"../options\\":2,\\"../tokenizer\\":24,\\"../util/identifier\\":27,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/helpers/class-call-check\\":33,\\"babel-runtime/helpers/inherits\\":34,\\"babel-runtime/helpers/interop-require-default\\":35}],6:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// This function is used to raise exceptions on parse errors. It\\n// takes an offset integer (into the current `input`) to indicate\\n// the location of the error, attaches the position to the end\\n// of the error message, and then raises a `SyntaxError` with that\\n// message.\\n\\npp.raise = function (pos, message) {\\n  var loc = _utilLocation.getLineInfo(this.input, pos);\\n  message += \\" (\\" + loc.line + \\":\\" + loc.column + \\")\\";\\n  var err = new SyntaxError(message);\\n  err.pos = pos;\\n  err.loc = loc;\\n  throw err;\\n};\\n},{\\"../util/location\\":28,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],7:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Convert existing expression atom to assignable pattern\\n// if possible.\\n\\npp.toAssignable = function (node, isBinding) {\\n  if (node) {\\n    switch (node.type) {\\n      case \\"Identifier\\":\\n      case \\"ObjectPattern\\":\\n      case \\"ArrayPattern\\":\\n      case \\"AssignmentPattern\\":\\n        break;\\n\\n      case \\"ObjectExpression\\":\\n        node.type = \\"ObjectPattern\\";\\n        for (var _iterator = (node.properties /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n          var _ref;\\n\\n          if (_isArray) {\\n            if (_i >= _iterator.length) break;\\n            _ref = _iterator[_i++];\\n          } else {\\n            _i = _iterator.next();\\n            if (_i.done) break;\\n            _ref = _i.value;\\n          }\\n\\n          var prop = _ref;\\n\\n          if (prop.type === \\"ObjectMethod\\") {\\n            if (prop.kind === \\"get\\" || prop.kind === \\"set\\") {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain getter or setter\\");\\n            } else {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain methods\\");\\n            }\\n          } else {\\n            this.toAssignable(prop, isBinding);\\n          }\\n        }\\n        break;\\n\\n      case \\"ObjectProperty\\":\\n        this.toAssignable(node.value, isBinding);\\n        break;\\n\\n      case \\"SpreadProperty\\":\\n        node.type = \\"RestProperty\\";\\n        break;\\n\\n      case \\"ArrayExpression\\":\\n        node.type = \\"ArrayPattern\\";\\n        this.toAssignableList(node.elements, isBinding);\\n        break;\\n\\n      case \\"AssignmentExpression\\":\\n        if (node.operator === \\"=\\") {\\n          node.type = \\"AssignmentPattern\\";\\n          delete node.operator;\\n        } else {\\n          this.raise(node.left.end, \\"Only \'=\' operator can be used for specifying default value.\\");\\n        }\\n        break;\\n\\n      case \\"MemberExpression\\":\\n        if (!isBinding) break;\\n\\n      default:\\n        this.raise(node.start, \\"Assigning to rvalue\\");\\n    }\\n  }\\n  return node;\\n};\\n\\n// Convert list of expression atoms to binding list.\\n\\npp.toAssignableList = function (exprList, isBinding) {\\n  var end = exprList.length;\\n  if (end) {\\n    var last = exprList[end - 1];\\n    if (last && last.type === \\"RestElement\\") {\\n      --end;\\n    } else if (last && last.type === \\"SpreadElement\\") {\\n      last.type = \\"RestElement\\";\\n      var arg = last.argument;\\n      this.toAssignable(arg, isBinding);\\n      if (arg.type !== \\"Identifier\\" && arg.type !== \\"MemberExpression\\" && arg.type !== \\"ArrayPattern\\") {\\n        this.unexpected(arg.start);\\n      }\\n      --end;\\n    }\\n  }\\n  for (var i = 0; i < end; i++) {\\n    var elt = exprList[i];\\n    if (elt) this.toAssignable(elt, isBinding);\\n  }\\n  return exprList;\\n};\\n\\n// Convert list of expression atoms to a list of\\n\\npp.toReferencedList = function (exprList) {\\n  return exprList;\\n};\\n\\n// Parses spread element.\\n\\npp.parseSpread = function (refShorthandDefaultPos) {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseMaybeAssign(refShorthandDefaultPos);\\n  return this.finishNode(node, \\"SpreadElement\\");\\n};\\n\\npp.parseRest = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseBindingIdentifier();\\n  return this.finishNode(node, \\"RestElement\\");\\n};\\n\\npp.shouldAllowYieldIdentifier = function () {\\n  return this.match(_tokenizerTypes.types._yield) && !this.state.strict && !this.state.inGenerator;\\n};\\n\\npp.parseBindingIdentifier = function () {\\n  return this.parseIdentifier(this.shouldAllowYieldIdentifier());\\n};\\n\\n// Parses lvalue (assignable) atom.\\n\\npp.parseBindingAtom = function () {\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.strict || this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      return this.parseIdentifier(true);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      var node = this.startNode();\\n      this.next();\\n      node.elements = this.parseBindingList(_tokenizerTypes.types.bracketR, true, true);\\n      return this.finishNode(node, \\"ArrayPattern\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(true);\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseBindingList = function (close, allowEmpty, allowTrailingComma) {\\n  var elts = [];\\n  var first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n    if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n      elts.push(null);\\n    } else if (allowTrailingComma && this.eat(close)) {\\n      break;\\n    } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      elts.push(this.parseAssignableListItemTypes(this.parseRest()));\\n      this.expect(close);\\n      break;\\n    } else {\\n      var left = this.parseMaybeDefault();\\n      this.parseAssignableListItemTypes(left);\\n      elts.push(this.parseMaybeDefault(null, null, left));\\n    }\\n  }\\n  return elts;\\n};\\n\\npp.parseAssignableListItemTypes = function (param) {\\n  return param;\\n};\\n\\n// Parses assignment pattern around given atom if possible.\\n\\npp.parseMaybeDefault = function (startPos, startLoc, left) {\\n  startLoc = startLoc || this.state.startLoc;\\n  startPos = startPos || this.state.start;\\n  left = left || this.parseBindingAtom();\\n  if (!this.eat(_tokenizerTypes.types.eq)) return left;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.left = left;\\n  node.right = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"AssignmentPattern\\");\\n};\\n\\n// Verify that a node is an lval — something that can be assigned\\n// to.\\n\\npp.checkLVal = function (expr, isBinding, checkClashes) {\\n  switch (expr.type) {\\n    case \\"Identifier\\":\\n      if (this.state.strict && (_utilIdentifier.reservedWords.strictBind(expr.name) || _utilIdentifier.reservedWords.strict(expr.name))) {\\n        this.raise(expr.start, (isBinding ? \\"Binding \\" : \\"Assigning to \\") + expr.name + \\" in strict mode\\");\\n      }\\n\\n      if (checkClashes) {\\n        // we need to prefix this with an underscore for the cases where we have a key of\\n        // `__proto__`. there\'s a bug in old V8 where the following wouldn\'t work:\\n        //\\n        //   > var obj = Object.create(null);\\n        //   undefined\\n        //   > obj.__proto__\\n        //   null\\n        //   > obj.__proto__ = true;\\n        //   true\\n        //   > obj.__proto__\\n        //   null\\n        var key = \\"_\\" + expr.name;\\n\\n        if (checkClashes[key]) {\\n          this.raise(expr.start, \\"Argument name clash in strict mode\\");\\n        } else {\\n          checkClashes[key] = true;\\n        }\\n      }\\n      break;\\n\\n    case \\"MemberExpression\\":\\n      if (isBinding) this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" member expression\\");\\n      break;\\n\\n    case \\"ObjectPattern\\":\\n      for (var _iterator2 = (expr.properties /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var prop = _ref2;\\n\\n        if (prop.type === \\"ObjectProperty\\") prop = prop.value;\\n        this.checkLVal(prop, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"ArrayPattern\\":\\n      for (var _iterator3 = (expr.elements /*: Array<Object>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n        var _ref3;\\n\\n        if (_isArray3) {\\n          if (_i3 >= _iterator3.length) break;\\n          _ref3 = _iterator3[_i3++];\\n        } else {\\n          _i3 = _iterator3.next();\\n          if (_i3.done) break;\\n          _ref3 = _i3.value;\\n        }\\n\\n        var elem = _ref3;\\n\\n        if (elem) this.checkLVal(elem, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"AssignmentPattern\\":\\n      this.checkLVal(expr.left, isBinding, checkClashes);\\n      break;\\n\\n    case \\"RestProperty\\":\\n    case \\"RestElement\\":\\n      this.checkLVal(expr.argument, isBinding, checkClashes);\\n      break;\\n\\n    default:\\n      this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" rvalue\\");\\n  }\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/identifier\\":27,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/helpers/interop-require-default\\":35}],8:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\n// Start an AST node, attaching a start offset.\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\nvar Node = (function () {\\n  function Node(pos /*:: ?: number*/, loc /*:: ?: SourceLocation*/) {\\n    _classCallCheck(this, Node);\\n\\n    this.type = \\"\\";\\n    this.start = pos;\\n    this.end = 0;\\n    this.loc = new _utilLocation.SourceLocation(loc);\\n  }\\n\\n  Node.prototype.__clone = function __clone() /*: Node*/ {\\n    var node2 = new Node();\\n    for (var key in this) {\\n      node2[key] = this[key];\\n    }return node2;\\n  };\\n\\n  return Node;\\n})();\\n\\npp.startNode = function () {\\n  return new Node(this.state.start, this.state.startLoc);\\n};\\n\\npp.startNodeAt = function (pos, loc) {\\n  return new Node(pos, loc);\\n};\\n\\nfunction finishNodeAt(node, type, pos, loc) {\\n  node.type = type;\\n  node.end = pos;\\n  node.loc.end = loc;\\n  this.processComment(node);\\n  return node;\\n}\\n\\n// Finish an AST node, adding `type` and `end` properties.\\n\\npp.finishNode = function (node, type) {\\n  return finishNodeAt.call(this, node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);\\n};\\n\\n// Finish node at given position\\n\\npp.finishNodeAt = function (node, type, pos, loc) {\\n  return finishNodeAt.call(this, node, type, pos, loc);\\n};\\n},{\\"../util/location\\":28,\\"./index\\":5,\\"babel-runtime/helpers/class-call-check\\":33,\\"babel-runtime/helpers/interop-require-default\\":35}],9:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ### Statement parsing\\n\\n// Parse a program. Initializes the parser, reads any number of\\n// statements, and wraps them in a Program node.  Optionally takes a\\n// `program` argument.  If present, the statements will be appended\\n// to its body instead of creating a new node.\\n\\npp.parseTopLevel = function (file, program) {\\n  program.sourceType = this.options.sourceType;\\n\\n  this.parseBlockBody(program, true, true, _tokenizerTypes.types.eof);\\n\\n  file.program = this.finishNode(program, \\"Program\\");\\n  file.comments = this.state.comments;\\n  file.tokens = this.state.tokens;\\n\\n  return this.finishNode(file, \\"File\\");\\n};\\n\\nvar loopLabel = { kind: \\"loop\\" },\\n    switchLabel = { kind: \\"switch\\" };\\n\\n// TODO\\n\\npp.stmtToDirective = function (stmt) {\\n  var expr = stmt.expression;\\n\\n  var directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\\n  var directive = this.startNodeAt(stmt.start, stmt.loc.start);\\n\\n  var raw = this.input.slice(expr.start, expr.end);\\n  var val = directiveLiteral.value = raw.slice(1, -1); // remove quotes\\n\\n  this.addExtra(directiveLiteral, \\"raw\\", raw);\\n  this.addExtra(directiveLiteral, \\"rawValue\\", val);\\n\\n  directive.value = this.finishNodeAt(directiveLiteral, \\"DirectiveLiteral\\", expr.end, expr.loc.end);\\n\\n  return this.finishNodeAt(directive, \\"Directive\\", stmt.end, stmt.loc.end);\\n};\\n\\n// Parse a single statement.\\n//\\n// If expecting a statement and finding a slash operator, parse a\\n// regular expression literal. This is to handle cases like\\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\\n// does not help.\\n\\npp.parseStatement = function (declaration, topLevel) {\\n  if (this.match(_tokenizerTypes.types.at)) {\\n    this.parseDecorators(true);\\n  }\\n\\n  var starttype = this.state.type,\\n      node = this.startNode();\\n\\n  // Most types of statements are recognized by the keyword they\\n  // start with. Many are trivial to parse, some require a bit of\\n  // complexity.\\n\\n  switch (starttype) {\\n    case _tokenizerTypes.types._break:case _tokenizerTypes.types._continue:\\n      return this.parseBreakContinueStatement(node, starttype.keyword);\\n    case _tokenizerTypes.types._debugger:\\n      return this.parseDebuggerStatement(node);\\n    case _tokenizerTypes.types._do:\\n      return this.parseDoStatement(node);\\n    case _tokenizerTypes.types._for:\\n      return this.parseForStatement(node);\\n    case _tokenizerTypes.types._function:\\n      if (!declaration) this.unexpected();\\n      return this.parseFunctionStatement(node);\\n\\n    case _tokenizerTypes.types._class:\\n      if (!declaration) this.unexpected();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, true);\\n\\n    case _tokenizerTypes.types._if:\\n      return this.parseIfStatement(node);\\n    case _tokenizerTypes.types._return:\\n      return this.parseReturnStatement(node);\\n    case _tokenizerTypes.types._switch:\\n      return this.parseSwitchStatement(node);\\n    case _tokenizerTypes.types._throw:\\n      return this.parseThrowStatement(node);\\n    case _tokenizerTypes.types._try:\\n      return this.parseTryStatement(node);\\n\\n    case _tokenizerTypes.types._let:\\n    case _tokenizerTypes.types._const:\\n      if (!declaration) this.unexpected(); // NOTE: falls through to _var\\n\\n    case _tokenizerTypes.types._var:\\n      return this.parseVarStatement(node, starttype);\\n\\n    case _tokenizerTypes.types._while:\\n      return this.parseWhileStatement(node);\\n    case _tokenizerTypes.types._with:\\n      return this.parseWithStatement(node);\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseBlock();\\n    case _tokenizerTypes.types.semi:\\n      return this.parseEmptyStatement(node);\\n    case _tokenizerTypes.types._export:\\n    case _tokenizerTypes.types._import:\\n      if (!this.options.allowImportExportEverywhere) {\\n        if (!topLevel) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may only appear at the top level\\");\\n        }\\n\\n        if (!this.inModule) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may appear only with \'sourceType: module\'\\");\\n        }\\n      }\\n      return starttype === _tokenizerTypes.types._import ? this.parseImport(node) : this.parseExport(node);\\n\\n    case _tokenizerTypes.types.name:\\n      if (this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"async\\") {\\n        // peek ahead and see if next token is a function\\n        var state = this.state.clone();\\n        this.next();\\n        if (this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.expect(_tokenizerTypes.types._function);\\n          return this.parseFunction(node, true, false, true);\\n        } else {\\n          this.state = state;\\n        }\\n      }\\n  }\\n\\n  // If the statement does not start with a statement keyword or a\\n  // brace, it\'s an ExpressionStatement or LabeledStatement. We\\n  // simply start parsing an expression, and afterwards, if the\\n  // next token is a colon and the expression was a simple\\n  // Identifier node, we switch to interpreting it as a label.\\n  var maybeName = this.state.value;\\n  var expr = this.parseExpression();\\n\\n  if (starttype === _tokenizerTypes.types.name && expr.type === \\"Identifier\\" && this.eat(_tokenizerTypes.types.colon)) {\\n    return this.parseLabeledStatement(node, maybeName, expr);\\n  } else {\\n    return this.parseExpressionStatement(node, expr);\\n  }\\n};\\n\\npp.takeDecorators = function (node) {\\n  if (this.state.decorators.length) {\\n    node.decorators = this.state.decorators;\\n    this.state.decorators = [];\\n  }\\n};\\n\\npp.parseDecorators = function (allowExport) {\\n  while (this.match(_tokenizerTypes.types.at)) {\\n    this.state.decorators.push(this.parseDecorator());\\n  }\\n\\n  if (allowExport && this.match(_tokenizerTypes.types._export)) {\\n    return;\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._class)) {\\n    this.raise(this.state.start, \\"Leading decorators must be attached to a class declaration\\");\\n  }\\n};\\n\\npp.parseDecorator = function () {\\n  if (!this.hasPlugin(\\"decorators\\")) {\\n    this.unexpected();\\n  }\\n  var node = this.startNode();\\n  this.next();\\n  node.expression = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"Decorator\\");\\n};\\n\\npp.parseBreakContinueStatement = function (node, keyword) {\\n  var isBreak = keyword === \\"break\\";\\n  this.next();\\n\\n  if (this.isLineTerminator()) {\\n    node.label = null;\\n  } else if (!this.match(_tokenizerTypes.types.name)) {\\n    this.unexpected();\\n  } else {\\n    node.label = this.parseIdentifier();\\n    this.semicolon();\\n  }\\n\\n  // Verify that there is an actual destination to break or\\n  // continue to.\\n  var i = undefined;\\n  for (i = 0; i < this.state.labels.length; ++i) {\\n    var lab = this.state.labels[i];\\n    if (node.label == null || lab.name === node.label.name) {\\n      if (lab.kind != null && (isBreak || lab.kind === \\"loop\\")) break;\\n      if (node.label && isBreak) break;\\n    }\\n  }\\n  if (i === this.state.labels.length) this.raise(node.start, \\"Unsyntactic \\" + keyword);\\n  return this.finishNode(node, isBreak ? \\"BreakStatement\\" : \\"ContinueStatement\\");\\n};\\n\\npp.parseDebuggerStatement = function (node) {\\n  this.next();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DebuggerStatement\\");\\n};\\n\\npp.parseDoStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  this.expect(_tokenizerTypes.types._while);\\n  node.test = this.parseParenExpression();\\n  this.eat(_tokenizerTypes.types.semi);\\n  return this.finishNode(node, \\"DoWhileStatement\\");\\n};\\n\\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\\n// loop is non-trivial. Basically, we have to parse the init `var`\\n// statement or expression, disallowing the `in` operator (see\\n// the second parameter to `parseExpression`), and then check\\n// whether the next token is `in` or `of`. When there is no init\\n// part (semicolon immediately after the opening parenthesis), it\\n// is a regular `for` loop.\\n\\npp.parseForStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  this.expect(_tokenizerTypes.types.parenL);\\n\\n  if (this.match(_tokenizerTypes.types.semi)) {\\n    return this.parseFor(node, null);\\n  }\\n\\n  if (this.match(_tokenizerTypes.types._var) || this.match(_tokenizerTypes.types._let) || this.match(_tokenizerTypes.types._const)) {\\n    var _init = this.startNode(),\\n        varKind = this.state.type;\\n    this.next();\\n    this.parseVar(_init, true, varKind);\\n    this.finishNode(_init, \\"VariableDeclaration\\");\\n\\n    if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n      if (_init.declarations.length === 1 && !_init.declarations[0].init) {\\n        return this.parseForIn(node, _init);\\n      }\\n    }\\n\\n    return this.parseFor(node, _init);\\n  }\\n\\n  var refShorthandDefaultPos = { start: 0 };\\n  var init = this.parseExpression(true, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n    this.toAssignable(init);\\n    this.checkLVal(init);\\n    return this.parseForIn(node, init);\\n  } else if (refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n  return this.parseFor(node, init);\\n};\\n\\npp.parseFunctionStatement = function (node) {\\n  this.next();\\n  return this.parseFunction(node, true);\\n};\\n\\npp.parseIfStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  node.consequent = this.parseStatement(false);\\n  node.alternate = this.eat(_tokenizerTypes.types._else) ? this.parseStatement(false) : null;\\n  return this.finishNode(node, \\"IfStatement\\");\\n};\\n\\npp.parseReturnStatement = function (node) {\\n  if (!this.state.inFunction && !this.options.allowReturnOutsideFunction) {\\n    this.raise(this.state.start, \\"\'return\' outside of function\\");\\n  }\\n\\n  this.next();\\n\\n  // In `return` (and `break`/`continue`), the keywords with\\n  // optional arguments, we eagerly look for a semicolon or the\\n  // possibility to insert one.\\n\\n  if (this.isLineTerminator()) {\\n    node.argument = null;\\n  } else {\\n    node.argument = this.parseExpression();\\n    this.semicolon();\\n  }\\n\\n  return this.finishNode(node, \\"ReturnStatement\\");\\n};\\n\\npp.parseSwitchStatement = function (node) {\\n  this.next();\\n  node.discriminant = this.parseParenExpression();\\n  node.cases = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.state.labels.push(switchLabel);\\n\\n  // Statements under must be grouped (by label) in SwitchCase\\n  // nodes. `cur` is used to keep the node that we are currently\\n  // adding statements to.\\n\\n  var cur = undefined;\\n  for (var sawDefault = undefined; !this.match(_tokenizerTypes.types.braceR);) {\\n    if (this.match(_tokenizerTypes.types._case) || this.match(_tokenizerTypes.types._default)) {\\n      var isCase = this.match(_tokenizerTypes.types._case);\\n      if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n      node.cases.push(cur = this.startNode());\\n      cur.consequent = [];\\n      this.next();\\n      if (isCase) {\\n        cur.test = this.parseExpression();\\n      } else {\\n        if (sawDefault) this.raise(this.state.lastTokStart, \\"Multiple default clauses\\");\\n        sawDefault = true;\\n        cur.test = null;\\n      }\\n      this.expect(_tokenizerTypes.types.colon);\\n    } else {\\n      if (cur) {\\n        cur.consequent.push(this.parseStatement(true));\\n      } else {\\n        this.unexpected();\\n      }\\n    }\\n  }\\n  if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n  this.next(); // Closing brace\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"SwitchStatement\\");\\n};\\n\\npp.parseThrowStatement = function (node) {\\n  this.next();\\n  if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) this.raise(this.state.lastTokEnd, \\"Illegal newline after throw\\");\\n  node.argument = this.parseExpression();\\n  this.semicolon();\\n  return this.finishNode(node, \\"ThrowStatement\\");\\n};\\n\\n// Reused empty array added for node fields that are always empty.\\n\\nvar empty = [];\\n\\npp.parseTryStatement = function (node) {\\n  this.next();\\n\\n  node.block = this.parseBlock();\\n  node.handler = null;\\n\\n  if (this.match(_tokenizerTypes.types._catch)) {\\n    var clause = this.startNode();\\n    this.next();\\n\\n    this.expect(_tokenizerTypes.types.parenL);\\n    clause.param = this.parseBindingAtom();\\n    this.checkLVal(clause.param, true, _Object$create(null));\\n    this.expect(_tokenizerTypes.types.parenR);\\n\\n    clause.body = this.parseBlock();\\n    node.handler = this.finishNode(clause, \\"CatchClause\\");\\n  }\\n\\n  node.guardedHandlers = empty;\\n  node.finalizer = this.eat(_tokenizerTypes.types._finally) ? this.parseBlock() : null;\\n\\n  if (!node.handler && !node.finalizer) {\\n    this.raise(node.start, \\"Missing catch or finally clause\\");\\n  }\\n\\n  return this.finishNode(node, \\"TryStatement\\");\\n};\\n\\npp.parseVarStatement = function (node, kind) {\\n  this.next();\\n  this.parseVar(node, false, kind);\\n  this.semicolon();\\n  return this.finishNode(node, \\"VariableDeclaration\\");\\n};\\n\\npp.parseWhileStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"WhileStatement\\");\\n};\\n\\npp.parseWithStatement = function (node) {\\n  if (this.state.strict) this.raise(this.state.start, \\"\'with\' in strict mode\\");\\n  this.next();\\n  node.object = this.parseParenExpression();\\n  node.body = this.parseStatement(false);\\n  return this.finishNode(node, \\"WithStatement\\");\\n};\\n\\npp.parseEmptyStatement = function (node) {\\n  this.next();\\n  return this.finishNode(node, \\"EmptyStatement\\");\\n};\\n\\npp.parseLabeledStatement = function (node, maybeName, expr) {\\n  for (var _iterator = (this.state.labels /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var label = _ref;\\n\\n    if (label.name === maybeName) {\\n      this.raise(expr.start, \\"Label \'\\" + maybeName + \\"\' is already declared\\");\\n    }\\n  }\\n\\n  var kind = this.state.type.isLoop ? \\"loop\\" : this.match(_tokenizerTypes.types._switch) ? \\"switch\\" : null;\\n  for (var i = this.state.labels.length - 1; i >= 0; i--) {\\n    var label = this.state.labels[i];\\n    if (label.statementStart === node.start) {\\n      label.statementStart = this.state.start;\\n      label.kind = kind;\\n    } else {\\n      break;\\n    }\\n  }\\n\\n  this.state.labels.push({ name: maybeName, kind: kind, statementStart: this.state.start });\\n  node.body = this.parseStatement(true);\\n  this.state.labels.pop();\\n  node.label = expr;\\n  return this.finishNode(node, \\"LabeledStatement\\");\\n};\\n\\npp.parseExpressionStatement = function (node, expr) {\\n  node.expression = expr;\\n  this.semicolon();\\n  return this.finishNode(node, \\"ExpressionStatement\\");\\n};\\n\\n// Parse a semicolon-enclosed block of statements, handling `\\"use\\n// strict\\"` declarations when `allowStrict` is true (used for\\n// function bodies).\\n\\npp.parseBlock = function (allowDirectives /*:: ?*/) {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.parseBlockBody(node, allowDirectives, false, _tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"BlockStatement\\");\\n};\\n\\n// TODO\\n\\npp.parseBlockBody = function (node, allowDirectives, topLevel, end) {\\n  node.body = [];\\n  node.directives = [];\\n\\n  var parsedNonDirective = false;\\n  var oldStrict = undefined;\\n  var octalPosition = undefined;\\n\\n  while (!this.eat(end)) {\\n    if (!parsedNonDirective && this.state.containsOctal && !octalPosition) {\\n      octalPosition = this.state.octalPosition;\\n    }\\n\\n    var stmt = this.parseStatement(true, topLevel);\\n\\n    if (allowDirectives && !parsedNonDirective && stmt.type === \\"ExpressionStatement\\" && stmt.expression.type === \\"StringLiteral\\" && !stmt.expression.extra.parenthesized) {\\n      var directive = this.stmtToDirective(stmt);\\n      node.directives.push(directive);\\n\\n      if (oldStrict === undefined && directive.value.value === \\"use strict\\") {\\n        oldStrict = this.state.strict;\\n        this.setStrict(true);\\n\\n        if (octalPosition) {\\n          this.raise(octalPosition, \\"Octal literal in strict mode\\");\\n        }\\n      }\\n\\n      continue;\\n    }\\n\\n    parsedNonDirective = true;\\n    node.body.push(stmt);\\n  }\\n\\n  if (oldStrict === false) {\\n    this.setStrict(false);\\n  }\\n};\\n\\n// Parse a regular `for` loop. The disambiguation code in\\n// `parseStatement` will already have parsed the init statement or\\n// expression.\\n\\npp.parseFor = function (node, init) {\\n  node.init = init;\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.test = this.match(_tokenizerTypes.types.semi) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.update = this.match(_tokenizerTypes.types.parenR) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"ForStatement\\");\\n};\\n\\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\\n// same from parser\'s perspective.\\n\\npp.parseForIn = function (node, init) {\\n  var type = this.match(_tokenizerTypes.types._in) ? \\"ForInStatement\\" : \\"ForOfStatement\\";\\n  this.next();\\n  node.left = init;\\n  node.right = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, type);\\n};\\n\\n// Parse a list of variable declarations.\\n\\npp.parseVar = function (node, isFor, kind) {\\n  node.declarations = [];\\n  node.kind = kind.keyword;\\n  for (;;) {\\n    var decl = this.startNode();\\n    this.parseVarHead(decl);\\n    if (this.eat(_tokenizerTypes.types.eq)) {\\n      decl.init = this.parseMaybeAssign(isFor);\\n    } else if (kind === _tokenizerTypes.types._const && !(this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\"))) {\\n      this.unexpected();\\n    } else if (decl.id.type !== \\"Identifier\\" && !(isFor && (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")))) {\\n      this.raise(this.state.lastTokEnd, \\"Complex binding patterns require an initialization value\\");\\n    } else {\\n      decl.init = null;\\n    }\\n    node.declarations.push(this.finishNode(decl, \\"VariableDeclarator\\"));\\n    if (!this.eat(_tokenizerTypes.types.comma)) break;\\n  }\\n  return node;\\n};\\n\\npp.parseVarHead = function (decl) {\\n  decl.id = this.parseBindingAtom();\\n  this.checkLVal(decl.id, true);\\n};\\n\\n// Parse a function declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = false;\\n\\n  this.initFunction(node, isAsync);\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    if (node.async && !this.hasPlugin(\\"asyncGenerators\\")) {\\n      this.unexpected();\\n    } else {\\n      node.generator = true;\\n      this.next();\\n    }\\n  }\\n\\n  if (isStatement && !optionalId && !this.match(_tokenizerTypes.types.name) && !this.match(_tokenizerTypes.types._yield)) {\\n    this.unexpected();\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._yield)) {\\n    node.id = this.parseBindingIdentifier();\\n  }\\n\\n  this.parseFunctionParams(node);\\n  this.parseFunctionBody(node, allowExpressionBody);\\n\\n  this.state.inMethod = oldInMethod;\\n\\n  return this.finishNode(node, isStatement ? \\"FunctionDeclaration\\" : \\"FunctionExpression\\");\\n};\\n\\npp.parseFunctionParams = function (node) {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n};\\n\\n// Parse a class declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseClass = function (node, isStatement, optionalId) {\\n  this.next();\\n  this.parseClassId(node, isStatement, optionalId);\\n  this.parseClassSuper(node);\\n  this.parseClassBody(node);\\n  return this.finishNode(node, isStatement ? \\"ClassDeclaration\\" : \\"ClassExpression\\");\\n};\\n\\npp.isClassProperty = function () {\\n  return this.match(_tokenizerTypes.types.eq) || this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\npp.parseClassBody = function (node) {\\n  // class bodies are implicitly strict\\n  var oldStrict = this.state.strict;\\n  this.state.strict = true;\\n\\n  var hadConstructorCall = false;\\n  var hadConstructor = false;\\n  var decorators = [];\\n  var classBody = this.startNode();\\n\\n  classBody.body = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (this.eat(_tokenizerTypes.types.semi)) {\\n      continue;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n      continue;\\n    }\\n\\n    var method = this.startNode();\\n\\n    // steal the decorators if there are any\\n    if (decorators.length) {\\n      method.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    var isConstructorCall = false;\\n    var isMaybeStatic = this.match(_tokenizerTypes.types.name) && this.state.value === \\"static\\";\\n    var isGenerator = this.eat(_tokenizerTypes.types.star);\\n    var isGetSet = false;\\n    var isAsync = false;\\n\\n    this.parsePropertyName(method);\\n\\n    method[\\"static\\"] = isMaybeStatic && !this.match(_tokenizerTypes.types.parenL);\\n    if (method[\\"static\\"]) {\\n      if (isGenerator) this.unexpected();\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n      this.parsePropertyName(method);\\n    }\\n\\n    if (!isGenerator && method.key.type === \\"Identifier\\" && !method.computed) {\\n      if (this.isClassProperty()) {\\n        classBody.body.push(this.parseClassProperty(method));\\n        continue;\\n      }\\n\\n      if (this.hasPlugin(\\"classConstructorCall\\") && method.key.name === \\"call\\" && this.match(_tokenizerTypes.types.name) && this.state.value === \\"constructor\\") {\\n        isConstructorCall = true;\\n        this.parsePropertyName(method);\\n      }\\n    }\\n\\n    var isAsyncMethod = this.hasPlugin(\\"asyncFunctions\\") && !this.match(_tokenizerTypes.types.parenL) && !method.computed && method.key.type === \\"Identifier\\" && method.key.name === \\"async\\";\\n    if (isAsyncMethod) {\\n      if (this.hasPlugin(\\"asyncGenerators\\") && this.eat(_tokenizerTypes.types.star)) isGenerator = true;\\n      isAsync = true;\\n      this.parsePropertyName(method);\\n    }\\n\\n    method.kind = \\"method\\";\\n\\n    if (!method.computed) {\\n      var key = method.key;\\n\\n      // handle get/set methods\\n      // eg. class Foo { get bar() {} set bar() {} }\\n      if (!isAsync && !isGenerator && key.type === \\"Identifier\\" && !this.match(_tokenizerTypes.types.parenL) && (key.name === \\"get\\" || key.name === \\"set\\")) {\\n        isGetSet = true;\\n        method.kind = key.name;\\n        key = this.parsePropertyName(method);\\n      }\\n\\n      // disallow invalid constructors\\n      var isConstructor = !isConstructorCall && !method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"constructor\\" || key.type === \\"StringLiteral\\" && key.value === \\"constructor\\");\\n      if (isConstructor) {\\n        if (hadConstructor) this.raise(key.start, \\"Duplicate constructor in the same class\\");\\n        if (isGetSet) this.raise(key.start, \\"Constructor can\'t have get/set modifier\\");\\n        if (isGenerator) this.raise(key.start, \\"Constructor can\'t be a generator\\");\\n        if (isAsync) this.raise(key.start, \\"Constructor can\'t be an async function\\");\\n        method.kind = \\"constructor\\";\\n        hadConstructor = true;\\n      }\\n\\n      // disallow static prototype method\\n      var isStaticPrototype = method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"prototype\\" || key.type === \\"StringLiteral\\" && key.value === \\"prototype\\");\\n      if (isStaticPrototype) {\\n        this.raise(key.start, \\"Classes may not have static property named prototype\\");\\n      }\\n    }\\n\\n    // convert constructor to a constructor call\\n    if (isConstructorCall) {\\n      if (hadConstructorCall) this.raise(method.start, \\"Duplicate constructor call in the same class\\");\\n      method.kind = \\"constructorCall\\";\\n      hadConstructorCall = true;\\n    }\\n\\n    // disallow decorators on class constructors\\n    if ((method.kind === \\"constructor\\" || method.kind === \\"constructorCall\\") && method.decorators) {\\n      this.raise(method.start, \\"You can\'t attach decorators to a class constructor\\");\\n    }\\n\\n    this.parseClassMethod(classBody, method, isGenerator, isAsync);\\n\\n    // get methods aren\'t allowed to have any parameters\\n    // set methods must have exactly 1 parameter\\n    if (isGetSet) {\\n      var paramCount = method.kind === \\"get\\" ? 0 : 1;\\n      if (method.params.length !== paramCount) {\\n        var start = method.start;\\n        if (method.kind === \\"get\\") {\\n          this.raise(start, \\"getter should have no params\\");\\n        } else {\\n          this.raise(start, \\"setter should have exactly one param\\");\\n        }\\n      }\\n    }\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no method\\");\\n  }\\n\\n  node.body = this.finishNode(classBody, \\"ClassBody\\");\\n\\n  this.state.strict = oldStrict;\\n};\\n\\npp.parseClassProperty = function (node) {\\n  if (this.match(_tokenizerTypes.types.eq)) {\\n    if (!this.hasPlugin(\\"classProperties\\")) this.unexpected();\\n    this.next();\\n    node.value = this.parseMaybeAssign();\\n  } else {\\n    node.value = null;\\n  }\\n  if (!this.eat(_tokenizerTypes.types.semi)) {\\n    this.raise(node.value && node.value.end || node.key.end, \\"A semicolon is required after a class property\\");\\n  }\\n  return this.finishNode(node, \\"ClassProperty\\");\\n};\\n\\npp.parseClassMethod = function (classBody, method, isGenerator, isAsync) {\\n  this.parseMethod(method, isGenerator, isAsync);\\n  classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n};\\n\\npp.parseClassId = function (node, isStatement, optionalId) {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    node.id = this.parseIdentifier();\\n  } else {\\n    if (optionalId || !isStatement) {\\n      node.id = null;\\n    } else {\\n      this.unexpected();\\n    }\\n  }\\n};\\n\\npp.parseClassSuper = function (node) {\\n  node.superClass = this.eat(_tokenizerTypes.types._extends) ? this.parseExprSubscripts() : null;\\n};\\n\\n// Parses module export declaration.\\n\\npp.parseExport = function (node) {\\n  this.next();\\n  // export * from \'...\'\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    if (this.hasPlugin(\\"exportExtensions\\") && this.eatContextual(\\"as\\")) {\\n      specifier.exported = this.parseIdentifier();\\n      node.specifiers = [this.finishNode(specifier, \\"ExportNamespaceSpecifier\\")];\\n      this.parseExportSpecifiersMaybe(node);\\n      this.parseExportFrom(node, true);\\n    } else {\\n      this.parseExportFrom(node, true);\\n      return this.finishNode(node, \\"ExportAllDeclaration\\");\\n    }\\n  } else if (this.hasPlugin(\\"exportExtensions\\") && this.isExportDefaultSpecifier()) {\\n    var specifier = this.startNode();\\n    specifier.exported = this.parseIdentifier(true);\\n    node.specifiers = [this.finishNode(specifier, \\"ExportDefaultSpecifier\\")];\\n    if (this.match(_tokenizerTypes.types.comma) && this.lookahead().type === _tokenizerTypes.types.star) {\\n      this.expect(_tokenizerTypes.types.comma);\\n      var _specifier = this.startNode();\\n      this.expect(_tokenizerTypes.types.star);\\n      this.expectContextual(\\"as\\");\\n      _specifier.exported = this.parseIdentifier();\\n      node.specifiers.push(this.finishNode(_specifier, \\"ExportNamespaceSpecifier\\"));\\n    } else {\\n      this.parseExportSpecifiersMaybe(node);\\n    }\\n    this.parseExportFrom(node, true);\\n  } else if (this.eat(_tokenizerTypes.types._default)) {\\n    // export default ...\\n    var expr = this.startNode();\\n    var needsSemi = false;\\n    if (this.eat(_tokenizerTypes.types._function)) {\\n      expr = this.parseFunction(expr, true, false, false, true);\\n    } else if (this.match(_tokenizerTypes.types._class)) {\\n      expr = this.parseClass(expr, true, true);\\n    } else {\\n      needsSemi = true;\\n      expr = this.parseMaybeAssign();\\n    }\\n    node.declaration = expr;\\n    if (needsSemi) this.semicolon();\\n    this.checkExport(node);\\n    return this.finishNode(node, \\"ExportDefaultDeclaration\\");\\n  } else if (this.state.type.keyword || this.shouldParseExportDeclaration()) {\\n    node.specifiers = [];\\n    node.source = null;\\n    node.declaration = this.parseExportDeclaration(node);\\n  } else {\\n    // export { x, y as z } [from \'...\']\\n    node.declaration = null;\\n    node.specifiers = this.parseExportSpecifiers();\\n    this.parseExportFrom(node);\\n  }\\n  this.checkExport(node);\\n  return this.finishNode(node, \\"ExportNamedDeclaration\\");\\n};\\n\\npp.parseExportDeclaration = function () {\\n  return this.parseStatement(true);\\n};\\n\\npp.isExportDefaultSpecifier = function () {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    return this.state.value !== \\"type\\" && this.state.value !== \\"async\\" && this.state.value !== \\"interface\\";\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._default)) {\\n    return false;\\n  }\\n\\n  var lookahead = this.lookahead();\\n  return lookahead.type === _tokenizerTypes.types.comma || lookahead.type === _tokenizerTypes.types.name && lookahead.value === \\"from\\";\\n};\\n\\npp.parseExportSpecifiersMaybe = function (node) {\\n  if (this.eat(_tokenizerTypes.types.comma)) {\\n    node.specifiers = node.specifiers.concat(this.parseExportSpecifiers());\\n  }\\n};\\n\\npp.parseExportFrom = function (node, expect /*:: ?*/) {\\n  if (this.eatContextual(\\"from\\")) {\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n    this.checkExport(node);\\n  } else {\\n    if (expect) {\\n      this.unexpected();\\n    } else {\\n      node.source = null;\\n    }\\n  }\\n\\n  this.semicolon();\\n};\\n\\npp.shouldParseExportDeclaration = function () {\\n  return this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\");\\n};\\n\\npp.checkExport = function (node) {\\n  if (this.state.decorators.length) {\\n    var isClass = node.declaration && (node.declaration.type === \\"ClassDeclaration\\" || node.declaration.type === \\"ClassExpression\\");\\n    if (!node.declaration || !isClass) {\\n      this.raise(node.start, \\"You can only use decorators on an export when exporting a class\\");\\n    }\\n    this.takeDecorators(node.declaration);\\n  }\\n};\\n\\n// Parses a comma-separated list of module exports.\\n\\npp.parseExportSpecifiers = function () {\\n  var nodes = [];\\n  var first = true;\\n  var needsFrom = undefined;\\n\\n  // export { x, y as z } [from \'...\']\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var isDefault = this.match(_tokenizerTypes.types._default);\\n    if (isDefault && !needsFrom) needsFrom = true;\\n\\n    var node = this.startNode();\\n    node.local = this.parseIdentifier(isDefault);\\n    node.exported = this.eatContextual(\\"as\\") ? this.parseIdentifier(true) : node.local.__clone();\\n    nodes.push(this.finishNode(node, \\"ExportSpecifier\\"));\\n  }\\n\\n  // https://github.com/ember-cli/ember-cli/pull/3739\\n  if (needsFrom && !this.isContextual(\\"from\\")) {\\n    this.unexpected();\\n  }\\n\\n  return nodes;\\n};\\n\\n// Parses import declaration.\\n\\npp.parseImport = function (node) {\\n  this.next();\\n\\n  // import \'...\'\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.specifiers = [];\\n    node.source = this.parseExprAtom();\\n  } else {\\n    node.specifiers = [];\\n    this.parseImportSpecifiers(node);\\n    this.expectContextual(\\"from\\");\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n  }\\n  this.semicolon();\\n  return this.finishNode(node, \\"ImportDeclaration\\");\\n};\\n\\n// Parses a comma-separated list of module imports.\\n\\npp.parseImportSpecifiers = function (node) {\\n  var first = true;\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    // import defaultObj, { x, y as z } from \'...\'\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc));\\n    if (!this.eat(_tokenizerTypes.types.comma)) return;\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    this.expectContextual(\\"as\\");\\n    specifier.local = this.parseIdentifier();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportNamespaceSpecifier\\"));\\n    return;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var specifier = this.startNode();\\n    specifier.imported = this.parseIdentifier(true);\\n    specifier.local = this.eatContextual(\\"as\\") ? this.parseIdentifier() : specifier.imported.__clone();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportSpecifier\\"));\\n  }\\n};\\n\\npp.parseImportSpecifierDefault = function (id, startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.local = id;\\n  this.checkLVal(node.local, true);\\n  return this.finishNode(node, \\"ImportDefaultSpecifier\\");\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/whitespace\\":29,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":30,\\"babel-runtime/core-js/object/create\\":31,\\"babel-runtime/helpers/interop-require-default\\":35}],10:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ## Parser utilities\\n\\n// TODO\\n\\npp.addExtra = function (node, key, val) {\\n  if (!node) return;\\n\\n  var extra = node.extra = node.extra || {};\\n  extra[key] = val;\\n};\\n\\n// TODO\\n\\npp.isRelational = function (op) {\\n  return this.match(_tokenizerTypes.types.relational) && this.state.value === op;\\n};\\n\\n// TODO\\n\\npp.expectRelational = function (op) {\\n  if (this.isRelational(op)) {\\n    this.next();\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\n// Tests whether parsed token is a contextual keyword.\\n\\npp.isContextual = function (name) {\\n  return this.match(_tokenizerTypes.types.name) && this.state.value === name;\\n};\\n\\n// Consumes contextual keyword if possible.\\n\\npp.eatContextual = function (name) {\\n  return this.state.value === name && this.eat(_tokenizerTypes.types.name);\\n};\\n\\n// Asserts that following token is given contextual keyword.\\n\\npp.expectContextual = function (name) {\\n  if (!this.eatContextual(name)) this.unexpected();\\n};\\n\\n// Test whether a semicolon can be inserted at the current position.\\n\\npp.canInsertSemicolon = function () {\\n  return this.match(_tokenizerTypes.types.eof) || this.match(_tokenizerTypes.types.braceR) || _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n};\\n\\n// TODO\\n\\npp.isLineTerminator = function () {\\n  return this.eat(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\n// Consume a semicolon, or, failing that, see if we are allowed to\\n// pretend that there is a semicolon at this position.\\n\\npp.semicolon = function () {\\n  if (!this.isLineTerminator()) this.unexpected();\\n};\\n\\n// Expect a token of a given type. If found, consume it, otherwise,\\n// raise an unexpected token error.\\n\\npp.expect = function (type) {\\n  return this.eat(type) || this.unexpected();\\n};\\n\\n// Raise an unexpected token error.\\n\\npp.unexpected = function (pos) {\\n  this.raise(pos != null ? pos : this.state.start, \\"Unexpected token\\");\\n};\\n},{\\"../tokenizer/types\\":26,\\"../util/whitespace\\":29,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],11:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\n_tokenizerContext.types.cssx = new _tokenizerContext.TokContext(\'cssx\');\\n_tokenizerContext.types.cssxDefinition = new _tokenizerContext.TokContext(\'cssxDefinition\');\\n_tokenizerContext.types.cssxSelector = new _tokenizerContext.TokContext(\'cssxSelector\');\\n_tokenizerContext.types.cssxRules = new _tokenizerContext.TokContext(\'cssxRules\');\\n_tokenizerContext.types.cssxProperty = new _tokenizerContext.TokContext(\'cssxProperty\');\\n_tokenizerContext.types.cssxValue = new _tokenizerContext.TokContext(\'cssxValue\');\\n_tokenizerContext.types.cssxMediaQuery = new _tokenizerContext.TokContext(\'CSSXMediaQuery\');\\n_tokenizerContext.types.cssxKeyframes = new _tokenizerContext.TokContext(\'CSSXKeyframes\');\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\nvar registerInOut = function registerInOut(name, context) {\\n  pp[\'cssx\' + name + \'In\'] = function () {\\n    var curContext = this.curContext();\\n\\n    if (curContext === context) return;\\n    this.state.context.push(context);\\n  };\\n\\n  pp[\'cssx\' + name + \'Out\'] = function () {\\n    var curContext = this.curContext();\\n\\n    if (curContext !== context) {\\n      this.raise(this.state.start, \'CSSX: Not in \' + context.token + \' context\');\\n    };\\n    this.state.context.length -= 1;\\n  };\\n};\\n\\nregisterInOut(\'\', _tokenizerContext.types.cssx);\\nregisterInOut(\'MediaQuery\', _tokenizerContext.types.cssxMediaQuery);\\nregisterInOut(\'Keyframes\', _tokenizerContext.types.cssxKeyframes);\\nregisterInOut(\'Definition\', _tokenizerContext.types.cssxDefinition);\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"babel-runtime/helpers/interop-require-default\\":35}],12:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\nvar PARSER_OPTIONS = {\\n  locations: true,\\n  ranges: true\\n};\\n\\npp.cssxExpressionRegister = function (expressions) {\\n  if (expressions && expressions.length > 0) {\\n    this.state._cssxExpressions = expressions;\\n  }\\n};\\npp.cssxExpressionSet = function (node) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  var length = undefined,\\n      codeStr = undefined,\\n      exprNode = undefined;\\n\\n  if (this.state._cssxExpressions && this.state._cssxExpressions.length > 0) {\\n    node.expressions = this.state._cssxExpressions.map(function (expr) {\\n      length = expr.end - expr.start;\\n      codeStr = _this.state.input.substr(expr.start, length).substr(1, length - 2);\\n      if (codeStr === \'\') return false;\\n      return {\\n        start: expr.start,\\n        end: expr.end,\\n        contextLoc: {\\n          start: expr.inner.start,\\n          end: expr.inner.end\\n        }\\n      };\\n    }).filter(function (expr) {\\n      return expr !== false;\\n    });\\n  }\\n  this.state._cssxExpressions = false;\\n};\\n},{\\"../../parser\\":5,\\"babel-runtime/helpers/interop-require-default\\":35}],13:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _tokenizer = require(\\"../../tokenizer\\");\\n\\nvar _utilities = require(\'./utilities\');\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\nvar MediaQueryEntryPoint = \'@media \';\\nvar keyframesEntryPoint = [\'@keyframes\', \'@-webkit-keyframes\', \'@-moz-keyframes\', \'@-o-keyframes\'];\\n\\npp.cssxIsMediaQuery = function () {\\n  if (this.state.value.toString().indexOf(MediaQueryEntryPoint) === 0) {\\n    return true;\\n  }\\n  return false;\\n};\\n\\npp.cssxIsKeyFramesEntryPoint = function () {\\n  var value = this.state.value.toString().split(\' \')[0];\\n  if (keyframesEntryPoint.indexOf(value) >= 0) {\\n    return true;\\n  }\\n  return false;\\n};\\n\\npp.cssxGetPreviousToken = function () {\\n  var steps = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\\n\\n  return this.state.tokens[this.state.tokens.length - (steps + 1)];\\n};\\n\\npp.cssxMatchPreviousToken = function (type, step) {\\n  var previous = this.cssxGetPreviousToken(step);\\n\\n  if (previous && previous.type === type) return true;\\n  return false;\\n};\\n\\npp.cssxMatchNextToken = function () {\\n  var next = undefined,\\n      nextA = undefined,\\n      nextB = undefined,\\n      old = undefined;\\n\\n  if (arguments.length === 1) {\\n    next = this.lookahead();\\n    if (next && next.type === arguments[0]) return true;\\n    return false;\\n  } else if (arguments.length === 2) {\\n    old = this.state;\\n    this.state = old.clone(true);\\n\\n    this.isLookahead = true;\\n    this.next();\\n    nextA = this.state.clone(true);\\n    this.next();\\n    nextB = this.state.clone(true);\\n    this.isLookahead = false;\\n    this.state = old;\\n    if (nextA && nextA.type === arguments[0] && nextB && nextB.type === arguments[1]) {\\n      return true;\\n    }\\n    return false;\\n  }\\n};\\n\\npp.cssxLookahead = function () {\\n  var numOfTokens = arguments.length <= 0 || arguments[0] === undefined ? 2 : arguments[0];\\n\\n  var old = this.state;\\n  var stack = [];\\n\\n  this.state = old.clone(true);\\n\\n  this.isLookahead = true;\\n  while (numOfTokens > 0) {\\n    this.next();\\n    stack.push(this.state.clone(true));\\n    --numOfTokens;\\n  }\\n  this.isLookahead = false;\\n  this.state = old;\\n\\n  return {\\n    stack: stack,\\n    last: stack[stack.length - 1],\\n    first: stack[0]\\n  };\\n};\\n\\npp.cssxClonePosition = function (loc) {\\n  return {\\n    line: loc.line,\\n    column: loc.column\\n  };\\n};\\n\\npp.cssxDebugComments = function (comments) {\\n  if (!comments || comments.length === 0) return null;\\n  return JSON.stringify(comments.map(function (c) {\\n    return { type: c.type, value: c.value };\\n  }));\\n};\\n\\npp.cssxClearSpaceAtTheEnd = function (value) {\\n  if (value.charAt(value.length - 1) === \' \') {\\n    --this.state.pos;\\n    return value.substr(0, value.length - 1);\\n  }\\n  return value;\\n};\\n\\npp.cssxFinishTokenAt = function (type, val, pos, loc) {\\n  this.state.end = pos;\\n  this.state.endLoc = loc;\\n  var prevType = this.state.type;\\n  this.state.type = type;\\n  this.state.value = val;\\n\\n  this.updateContext(prevType);\\n};\\n\\npp.replaceCurrentTokenType = function (type) {\\n  this.state.type = type;\\n};\\n\\npp.cssxStoreNextCharAsToken = function (type) {\\n  var curContext = this.curContext();\\n\\n  ++this.state.pos;\\n  this.finishToken(type);\\n\\n  this.state.tokens.push(new _tokenizer.Token(this.state));\\n  if (!curContext || !curContext.preserveSpace) this.skipSpace();\\n  this.cssxSyncLocPropsToCurPos();\\n};\\n\\npp.cssxStoreCurrentToken = function () {\\n  this.state.tokens.push(new _tokenizer.Token(this.state));\\n  this.cssxSyncLocPropsToCurPos();\\n};\\n\\npp.cssxSyncLocPropsToCurPos = function (p) {\\n  var pos = typeof p === \'undefined\' ? this.state.pos : p;\\n\\n  this.state.start = this.state.end = pos;\\n  this.state.startLoc = this.state.endLoc = _utilities.posToLoc(pos, this.state.input);\\n};\\n\\npp.cssxSyncEndTokenStateToCurPos = function (p) {\\n  var pos = typeof p === \'undefined\' ? this.state.pos : p;\\n  var meta = _utilities.posToLoc(this.state.pos, this.state.input, true);\\n\\n  this.state.endLoc.line = meta.line;\\n  this.state.endLoc.column = meta.column;\\n  this.state.lineStart = meta.lineStart;\\n  this.state.curLine = meta.curLine;\\n};\\n},{\\"../../parser\\":5,\\"../../tokenizer\\":24,\\"./utilities\\":19,\\"babel-runtime/helpers/interop-require-default\\":35}],14:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = CSSX;\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilLocation = require(\\"../../util/location\\");\\n\\nvar _utilities = require(\\"./utilities\\");\\n\\nrequire(\\"./types\\");\\n\\nrequire(\\"./context\\");\\n\\nrequire(\\"./parsers\\");\\n\\nrequire(\\"./readers\\");\\n\\nrequire(\\"./helpers\\");\\n\\nrequire(\\"./expressions\\");\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\nfunction CSSX(instance) {\\n\\n  instance.extend(\'parseStatement\', function (inner) {\\n    return function (declaration, topLevel) {\\n      var result = undefined;\\n\\n      if (this.cssxMatchPreviousToken(_tokenizerTypes.types.cssxStart) && this.curContext() !== _tokenizerContext.types.cssxDefinition) {\\n        this.cssxDefinitionIn();\\n        return this.cssxParse();\\n      } else if (this.match(_tokenizerTypes.types.cssxSelector)) {\\n        if (this.cssxIsMediaQuery()) {\\n          return this.cssxParseMediaQueryElement();\\n        } else if (this.cssxIsKeyFramesEntryPoint()) {\\n          return this.cssxParseKeyframesElement();\\n        }\\n        return this.cssxParseElement();\\n      }\\n      return inner.call(this, declaration, topLevel);\\n    };\\n  });\\n\\n  instance.extend(\'parseBlock\', function (inner) {\\n    return function (allowDirectives /*:: ?*/) {\\n      // istanbul ignore next\\n\\n      var _this = this;\\n\\n      var fallback = function fallback() {\\n        return inner.call(_this, allowDirectives);\\n      };\\n      var context = this.curContext(),\\n          blockStmtNode;\\n      var rules = [],\\n          lastToken;\\n\\n      if (context === _tokenizerContext.types.cssxRules && this.match(_tokenizerTypes.types.cssxRulesStart)) {\\n\\n        blockStmtNode = this.startNode();\\n        // no rules\\n        if (this.match(_tokenizerTypes.types.cssxRulesStart) && this.lookahead().type === _tokenizerTypes.types.braceR) {\\n          this.next();\\n        } else {\\n          // reading the style         \\n          while (!this.match(_tokenizerTypes.types.cssxRulesEnd) && !this.match(_tokenizerTypes.types.eof)) {\\n            rules.push(this.cssxParseRule(this.cssxReadProperty(), this.cssxReadValue()));\\n          }\\n          if (this.state.pos >= this.input.length) this.finishToken(_tokenizerTypes.types.eof);\\n        }\\n        blockStmtNode.body = rules;\\n        lastToken = this.cssxGetPreviousToken();\\n        return this.finishNodeAt(blockStmtNode, \'CSSXRules\', lastToken.end, lastToken.loc.end);\\n      }\\n\\n      return fallback();\\n    };\\n  });\\n\\n  instance.extend(\'readToken\', function (inner) {\\n    return function (code) {\\n      // istanbul ignore next\\n\\n      var _this2 = this;\\n\\n      var fallback = function fallback() {\\n        return inner.call(_this2, code);\\n      };\\n      var context = this.curContext();\\n\\n      if (this.isLookahead) return fallback();\\n\\n      if (this.match(_tokenizerTypes.types.cssxSelector) && this.cssxMatchNextToken(_tokenizerTypes.types.braceL)) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.cssxRulesStart);\\n      } else if (this.match(_tokenizerTypes.types.cssxSelector) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n        this.finishToken(_tokenizerTypes.types.cssxRulesEnd);\\n        return;\\n      } else if (this.match(_tokenizerTypes.types.cssxRulesStart)) {\\n        // no styles\\n        if (this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n          return this.cssxStoreNextCharAsToken(_tokenizerTypes.types.cssxRulesEnd);\\n        } else {\\n          return this.finishToken(_tokenizerTypes.types.cssxRulesStart);\\n        }\\n        // matching the : between the property and the value\\n      } else if (this.match(_tokenizerTypes.types.cssxProperty) && code === 58) {\\n          // 58 = :       \\n          return this.cssxStoreNextCharAsToken(_tokenizerTypes.types.colon);\\n          // matching the semicolon at the end of the rule\\n        } else if (this.match(_tokenizerTypes.types.cssxValue) && code === 59) {\\n            // 59 = ;\\n            this.cssxStoreNextCharAsToken(_tokenizerTypes.types.semi);\\n            // eding with semicolon\\n            if (this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n              this.cssxStoreNextCharAsToken(_tokenizerTypes.types.cssxRulesEnd);\\n            }\\n            return;\\n          } else if (this.match(_tokenizerTypes.types.cssxValue) && this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n            // ending without semicolon\\n            return this.cssxStoreNextCharAsToken(_tokenizerTypes.types.cssxRulesEnd);\\n          } else if (this.match(_tokenizerTypes.types.cssxRulesEnd) && context === _tokenizerContext.types.cssxMediaQuery || this.match(_tokenizerTypes.types.cssxRulesEnd) && context === _tokenizerContext.types.cssxKeyframes) {\\n            // end of media query\\n            return;\\n          } else if (this.match(_tokenizerTypes.types.cssxRulesEnd) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR) || this.match(_tokenizerTypes.types.cssxMediaQueryEnd) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR) || this.match(_tokenizerTypes.types.cssxKeyframesEnd) && this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n            ++this.state.pos;\\n            this.finishToken(_tokenizerTypes.types.cssxEnd);\\n            return;\\n          }\\n\\n      // cssx entry point\\n      if (this.cssxEntryPoint()) {\\n        return;\\n      }\\n\\n      // looping through the cssx elements\\n      if (context === _tokenizerContext.types.cssxDefinition || context === _tokenizerContext.types.cssxMediaQuery || context === _tokenizerContext.types.cssxKeyframes) {\\n        this.skipSpace();\\n        return this.cssxReadSelector();\\n      }\\n\\n      return fallback();\\n    };\\n  });\\n\\n  instance.extend(\'getTokenFromCode\', function (inner) {\\n    return function (code) {\\n      // istanbul ignore next\\n\\n      var _this3 = this;\\n\\n      var fallback = function fallback() {\\n        return inner.call(_this3, code);\\n      };\\n\\n      // when the selector starts with #\\n      if (code === 35 && (this.match(_tokenizerTypes.types.cssxStart) || this.match(_tokenizerTypes.types.cssxRulesEnd))) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.string, \'#\');\\n      }\\n\\n      return fallback();\\n    };\\n  });\\n\\n  instance.extend(\\"parseExprAtom\\", function (inner) {\\n    return function (refShortHandDefaultPos) {\\n      if (this.match(_tokenizerTypes.types.cssxStart)) {\\n        this.cssxDefinitionIn();\\n        return this.cssxParse();\\n      }\\n      return inner.call(this, refShortHandDefaultPos);\\n    };\\n  });\\n\\n  instance.extend(\'processComment\', function (inner) {\\n    return function (node) {\\n      var last;\\n\\n      if (node.type === \'CSSXRule\') {\\n        this.state.trailingComments.length = 0;\\n        this.state.leadingComments.length = 0;\\n      }\\n\\n      return inner.call(this, node);\\n    };\\n  });\\n}\\n\\n;\\n\\npp.cssxEntryPoint = function (code) {\\n  var nextToken = this.lookahead();\\n  var name = undefined,\\n      parenL = undefined,\\n      future = undefined,\\n      cState = undefined;\\n\\n  if (nextToken.type === _tokenizerTypes.types.name && nextToken.value === \'cssx\' && this.cssxMatchNextToken(_tokenizerTypes.types.name, _tokenizerTypes.types.parenL)) {\\n    cState = this.state.clone();\\n    future = this.cssxLookahead(2);\\n    name = future.first;\\n    parenL = future.last;\\n    this.cssxIn();\\n    this.state.pos = parenL.end;\\n    this.finishToken(_tokenizerTypes.types.cssxStart);\\n    this.cssxSyncEndTokenStateToCurPos();\\n    if (this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n      this.state = cState;\\n      return false;\\n    }\\n    this.cssxStoreCurrentToken();\\n    return true;\\n  }\\n  return false;\\n};\\n\\npp.cssxRulesEntryPoint = function (code) {\\n  return this.match(_tokenizerTypes.types.braceL) && this.cssxMatchNextToken(_tokenizerTypes.types.name, _tokenizerTypes.types.colon);\\n};\\n\\n/* useful watchers\\n\\nwatch(\'this.state.type.label\')\\nwatch(\'this.state.pos\')\\nwatch(\'this.state.start\')\\nwatch(\'this.state.end\')\\nwatch(\'this.state.startLoc\')\\nwatch(\'this.state.endLoc\')\\nwatch(\'this.state.input.substr(0, this.state.pos)\')\\nwatch(\'this.state.context.map(function(i){return i.token}).join(\\",\\")\')\\nwatch(\'this.lookahead().type.label\')\\n\\nwatch(\'String.fromCharCode(ch) + \\" / \\" + ch\')\\n\\n*/\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26,\\"../../util/location\\":28,\\"./context\\":11,\\"./expressions\\":12,\\"./helpers\\":13,\\"./parsers\\":15,\\"./readers\\":16,\\"./types\\":18,\\"./utilities\\":19,\\"babel-runtime/helpers/interop-require-default\\":35}],15:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.cssxParse = function () {\\n  var lastToken = this.cssxGetPreviousToken();\\n  var definition = this.startNodeAt(lastToken.start, lastToken.loc.start);\\n\\n  this.skipSpace();\\n  this.cssxReadSelector();\\n  this.parseBlockBody(definition, true, false, _tokenizerTypes.types.cssxEnd);\\n  this.finishNode(definition, \'CSSXDefinition\');\\n  return definition;\\n};\\n\\npp.cssxParseExpression = function () {\\n  var exprNode = undefined,\\n      lastToken = undefined,\\n      result = undefined;\\n\\n  lastToken = this.cssxGetPreviousToken();\\n  exprNode = this.startNodeAt(lastToken.start, lastToken.loc.start);\\n  exprNode.body = [];\\n\\n  while (this.match(_tokenizerTypes.types.cssxSelector)) {\\n    if (this.cssxIsMediaQuery()) {\\n      exprNode.body.push(this.cssxParseMediaQueryElement());\\n    } else if (this.cssxIsKeyFramesEntryPoint()) {\\n      exprNode.body.push(this.cssxParseKeyframesElement());\\n    } else {\\n      exprNode.body.push(this.cssxParseElement());\\n    }\\n  }\\n\\n  result = this.finishNodeAt(exprNode, \'CSSXExpression\', this.state.end, this.state.endLoc);\\n  this.next();\\n  return result;\\n};\\n\\npp.cssxParseElement = function () {\\n  var elementNode = undefined,\\n      selectorNode = undefined,\\n      result = undefined,\\n      lastToken = undefined;\\n\\n  elementNode = this.startNodeAt(this.state.start, this.state.startLoc);\\n  selectorNode = this.startNodeAt(this.state.start, this.state.startLoc);\\n\\n  selectorNode.value = this.state.value;\\n  this.cssxExpressionSet(selectorNode);\\n  elementNode.selector = this.finishNodeAt(selectorNode, \'CSSXSelector\', this.state.end, this.state.endLoc);\\n  this.next();\\n  if (!this.match(_tokenizerTypes.types.cssxRulesEnd)) {\\n    elementNode.body = this.parseBlock();\\n  }\\n  lastToken = this.cssxGetPreviousToken();\\n  result = this.finishNodeAt(elementNode, \'CSSXElement\', lastToken.end, lastToken.loc.end);\\n  this.nextToken();\\n  return result;\\n};\\n\\npp.cssxParseMediaQueryElement = function () {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  return this.cssxParseNestedSelectors({\\n    name: \'CSSXMediaQueryElement\',\\n    context: {\\n      \\"in\\": function _in() {\\n        return _this.cssxMediaQueryIn();\\n      }\\n    },\\n    tokens: {\\n      el: _tokenizerTypes.types.cssxMediaQuery,\\n      start: _tokenizerTypes.types.cssxMediaQueryStart,\\n      end: _tokenizerTypes.types.cssxMediaQueryEnd\\n    },\\n    errors: {\\n      unclosed: \'CSSX: unclosed media query block\',\\n      expectSelector: \'CSSX: expected css selector after media query definition\'\\n    }\\n  });\\n};\\n\\npp.cssxParseKeyframesElement = function () {\\n  // istanbul ignore next\\n\\n  var _this2 = this;\\n\\n  return this.cssxParseNestedSelectors({\\n    name: \'CSSXKeyframesElement\',\\n    context: {\\n      \\"in\\": function _in() {\\n        return _this2.cssxKeyframesIn();\\n      }\\n    },\\n    tokens: {\\n      el: _tokenizerTypes.types.cssxKeyframes,\\n      start: _tokenizerTypes.types.cssxKeyframesStart,\\n      end: _tokenizerTypes.types.cssxKeyframesEnd\\n    },\\n    errors: {\\n      unclosed: \'CSSX: unclosed @keyframes block\',\\n      expectSelector: \'CSSX: expected keyframe as a start of the @keyframes block\'\\n    }\\n  });\\n};\\n\\npp.cssxParseNestedSelectors = function (options) {\\n  var nestedElement = undefined,\\n      result = undefined;\\n  nestedElement = this.startNodeAt(this.state.start, this.state.startLoc);\\n  nestedElement.query = this.state.value;\\n\\n  this.cssxExpressionSet(nestedElement);\\n  options.context[\\"in\\"]();\\n  this.cssxFinishTokenAt(options.tokens.el, this.state.value, this.state.end, this.state.endLoc);\\n  this.cssxStoreCurrentToken();\\n\\n  if (!this.cssxMatchNextToken(_tokenizerTypes.types.braceL)) {\\n    this.raise(this.state.pos, \'CSSX: expected { after query definition\');\\n  }\\n\\n  ++this.state.pos;\\n  this.finishToken(options.tokens.start);\\n\\n  if (this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n    // empty media query\\n    this.cssxStoreCurrentToken();\\n    this.skipSpace();\\n    this.cssxSyncLocPropsToCurPos();\\n  } else {\\n    this.next();\\n    nestedElement.body = [];\\n    if (this.match(_tokenizerTypes.types.cssxSelector)) {\\n      nestedElement.body.push(this.cssxParseElement());\\n      while (!this.cssxMatchNextToken(_tokenizerTypes.types.braceR)) {\\n        if (this.match(_tokenizerTypes.types.cssxRulesEnd)) {\\n          this.cssxReadSelector();\\n        }\\n        if (this.cssxMatchNextToken(_tokenizerTypes.types.parenR)) {\\n          this.raise(this.state.pos, options.errors.unclosed);\\n        }\\n        nestedElement.body.push(this.cssxParseElement());\\n      }\\n    } else {\\n      this.raise(this.state.pos, options.errors.expectSelector);\\n    }\\n  }\\n\\n  ++this.state.pos;\\n  this.finishToken(options.tokens.end);\\n  result = this.finishNodeAt(nestedElement, options.name, this.state.end, this.state.endLoc);\\n  this.next();\\n  return result;\\n};\\n\\npp.cssxParseRule = function (propertyNode, valueNode) {\\n  var node = this.startNodeAt(propertyNode.start, propertyNode.loc.start);\\n  var pos = valueNode.end;\\n  var locEnd = this.cssxClonePosition(valueNode.loc.end);\\n\\n  if (this.match(_tokenizerTypes.types.semi) || this.match(_tokenizerTypes.types.cssxRulesEnd) && this.cssxMatchPreviousToken(_tokenizerTypes.types.semi, 1)) {\\n    ++locEnd.column;\\n    ++pos;\\n  }\\n\\n  node.label = propertyNode;\\n  node.body = valueNode;\\n\\n  return this.finishNodeAt(node, \'CSSXRule\', pos, locEnd);\\n};\\n\\npp.cssxParseRuleChild = function (type, value, pos, loc) {\\n  var node = this.startNodeAt(pos, loc);\\n\\n  this.cssxExpressionSet(node);\\n  node.name = value;\\n  return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);\\n};\\n},{\\"../../parser\\":5,\\"../../tokenizer/types\\":26,\\"babel-runtime/helpers/interop-require-default\\":35}],16:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilIdentifier = require(\\"../../util/identifier\\");\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _settings = require(\\"./settings\\");\\n\\nvar _utilities = require(\'./utilities\');\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.cssxReadWord = function (readUntil) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  var word = \'\';\\n  var first = true;\\n  var chunkStart = undefined,\\n      cut = undefined,\\n      toggle = undefined;\\n  var readingDataURI = false;\\n  var readingNth = false;\\n  var readingExpression = false;\\n  var dataURIPattern = [\'url(data:\', 41]; // 41 = )\\n  var expressionPattern = [96, 96]; // 96 = `\\n  var nthPattern = [40, 41]; // 40 = (, 41 = )\\n  var expression = false;\\n  var expressions = [];\\n  var numOfCharRead = 0;\\n\\n  chunkStart = this.state.pos;\\n  cut = function () {\\n    return _this.input.slice(chunkStart, _this.state.pos);\\n  };\\n  this.state.containsEsc = false;\\n\\n  while (this.state.pos < this.input.length) {\\n    var ch = this.fullCharCodeAtPos();\\n\\n    if (cut() === dataURIPattern[0]) readingDataURI = true;\\n    if (ch === dataURIPattern[1]) readingDataURI = false;\\n\\n    if (ch === nthPattern[0]) readingNth = true;\\n\\n    if (readUntil.call(this, ch) || readingDataURI || readingNth || ch === expressionPattern[0] || expression !== false) {\\n\\n      var inc = ch <= 0xffff ? 1 : 2;\\n      this.state.pos += inc;\\n\\n      // expression block end detection\\n      if (ch === expressionPattern[1] && expression) {\\n        expression.end = this.state.pos;\\n        expression.inner.end = numOfCharRead + 1;\\n        expressions.push(expression);\\n        expression = false;\\n        // expression block start detection\\n      } else if (ch === expressionPattern[0] && !expression) {\\n          expression = {\\n            start: this.state.pos - 1,\\n            inner: { start: numOfCharRead }\\n          };\\n        }\\n\\n      // new line detection\\n      if (ch === 10) {\\n        // new line\\n        ++this.state.curLine;\\n        this.state.lineStart = this.state.pos;\\n      }\\n    } else if (ch === 92) {\\n      // \\"\\\\\\"\\n      this.state.containsEsc = true;\\n\\n      word += this.input.slice(chunkStart, this.state.pos);\\n      var escStart = this.state.pos;\\n\\n      if (this.input.charCodeAt(++this.state.pos) !== 117) {\\n        // \\"u\\"\\n        this.raise(this.state.pos, \\"CSSX: expecting Unicode escape sequence \\\\\\\\uXXXX\\");\\n      }\\n\\n      ++this.state.pos;\\n      var esc = this.readCodePoint();\\n      if (!(first ? _utilIdentifier.isIdentifierStart : _utilIdentifier.isIdentifierChar)(esc, true)) {\\n        this.raise(escStart, \\"CSSX: invalid Unicode escape\\");\\n      }\\n\\n      word += codePointToString(esc);\\n      chunkStart = this.state.pos;\\n    } else {\\n      break;\\n    }\\n    if (ch === nthPattern[1]) readingNth = false;\\n    first = false;\\n    ++numOfCharRead;\\n  }\\n  word = word + cut();\\n  return { str: word, expressions: expressions };\\n};\\n\\npp.cssxReadSelector = function (lastToken) {\\n  var startLoc = undefined,\\n      pos = undefined,\\n      value = undefined,\\n      node = undefined,\\n      word = undefined;\\n  this.state.context.push(_tokenizerContext.types.cssxSelector);\\n  startLoc = this.state.curPosition();\\n  pos = this.state.pos;\\n\\n  word = this.cssxReadWord(pp.cssxReadSelectorCharUntil);\\n  value = this.cssxClearSpaceAtTheEnd(word.str);\\n\\n  this.cssxExpressionRegister(word.expressions);\\n  this.state.startLoc = startLoc;\\n  this.state.start = pos;\\n  this.finishToken(_tokenizerTypes.types.cssxSelector, value);\\n  this.skipSpace();\\n};\\n\\npp.cssxReadProperty = function () {\\n  var loc = undefined,\\n      pos = undefined,\\n      property = undefined,\\n      node = undefined,\\n      word = undefined;\\n\\n  if (this.match(_tokenizerTypes.types.cssxRulesStart)) this.next();\\n\\n  loc = this.state.curPosition();\\n  pos = this.state.pos;\\n\\n  word = this.cssxReadWord(pp.cssxReadPropCharUntil);\\n  property = word.str;\\n\\n  if (property === \'\') {\\n    this.raise(this.state.pos, \'CSSX: no CSS property provided\');\\n  }\\n\\n  this.cssxExpressionRegister(word.expressions);\\n  this.state.startLoc = loc;\\n  this.state.start = pos;\\n\\n  this.finishToken(_tokenizerTypes.types.cssxProperty, property);\\n\\n  if (this.lookahead().type !== _tokenizerTypes.types.colon) {\\n    this.raise(this.state.pos, \'CSSX: expecting a colon after CSS property\');\\n  }\\n  this.next();\\n  node = this.cssxParseRuleChild(\'CSSXProperty\', property, pos, loc);\\n\\n  return node;\\n};\\n\\npp.cssxReadValue = function () {\\n  var startLoc = undefined,\\n      endLoc = undefined,\\n      pos = undefined,\\n      value = undefined,\\n      node = undefined,\\n      word = undefined;\\n\\n  startLoc = this.state.curPosition();\\n  pos = this.state.pos;\\n  word = this.cssxReadWord(pp.cssxReadValueCharUntil);\\n  value = this.cssxClearSpaceAtTheEnd(word.str); // changes state.pos\\n\\n  this.cssxExpressionRegister(word.expressions);\\n  this.state.start = pos;\\n  this.state.startLoc = startLoc;\\n  this.finishToken(_tokenizerTypes.types.cssxValue, value);\\n  this.next();\\n  node = this.cssxParseRuleChild(\'CSSXValue\', value, pos, startLoc);\\n\\n  return node;\\n};\\n\\npp.cssxReadSelectorCharUntil = function (code) {\\n  if (_settings.CSSXSelectorAllowedCodes.indexOf(code) >= 0 || _utilities.isNumber(code)) {\\n    // check for allow characters\\n    return true;\\n  } else if (code === 123) {\\n    // end the selector with {\\n    return false;\\n  }\\n  return _utilIdentifier.isIdentifierChar(code);\\n};\\n\\npp.cssxReadValueCharUntil = function (code) {\\n  return _settings.CSSXValueAllowedCodes.indexOf(code) >= 0 ? true : _utilIdentifier.isIdentifierChar(code);\\n};\\n\\npp.cssxReadPropCharUntil = function (code) {\\n  return _settings.CSSXPropertyAllowedCodes.indexOf(code) >= 0 ? true : _utilIdentifier.isIdentifierChar(code);\\n};\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26,\\"../../util/identifier\\":27,\\"./settings\\":17,\\"./utilities\\":19,\\"babel-runtime/helpers/interop-require-default\\":35}],17:[function(require,module,exports){\\n\'use strict\';\\n\\nexports.__esModule = true;\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _utilities = require(\'./utilities\');\\n\\nvar CSSXPropertyAllowedCodes = [\'-\'].map(_utilities.stringToCode);\\n\\nvar CSSXValueAllowedCodes = [\' \', \'\\\\n\', \'\\\\t\', \'#\', \'.\', \'-\', \'(\', \')\', \'[\', \']\', \'\\\\\'\', \'\\"\', \'%\', \',\', \':\', \'/\', \'\\\\\\\\\', \'!\', \'?\'].map(_utilities.stringToCode);\\n\\nvar CSSXSelectorAllowedCodes = [\' \', \'*\', \'>\', \'+\', \'~\', \'.\', \':\', \'=\', \'[\', \']\', \'\\"\', \'-\', \'!\', \'?\', \'@\', \'#\', \'$\', \'%\', \'^\', \'&\', \'\\\\\'\', \'|\', \',\', \'\\\\n\'].map(_utilities.stringToCode);\\n\\nexports[\'default\'] = {\\n  CSSXPropertyAllowedCodes: CSSXPropertyAllowedCodes,\\n  CSSXValueAllowedCodes: CSSXValueAllowedCodes,\\n  CSSXSelectorAllowedCodes: CSSXSelectorAllowedCodes\\n};\\nmodule.exports = exports[\'default\'];\\n},{\\"../../tokenizer/types\\":26,\\"./utilities\\":19}],18:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\n_tokenizerTypes.types.cssxStart = new _tokenizerTypes.TokenType(\'CSSXStart\');\\n_tokenizerTypes.types.cssxEnd = new _tokenizerTypes.TokenType(\'CSSXEnd\');\\n_tokenizerTypes.types.cssxSelector = new _tokenizerTypes.TokenType(\'CSSXSelector\');\\n_tokenizerTypes.types.cssxRulesStart = new _tokenizerTypes.TokenType(\'CSSXRulesStart\');\\n_tokenizerTypes.types.cssxRulesEnd = new _tokenizerTypes.TokenType(\'CSSXRulesEnd\');\\n_tokenizerTypes.types.cssxProperty = new _tokenizerTypes.TokenType(\'CSSXProperty\');\\n_tokenizerTypes.types.cssxValue = new _tokenizerTypes.TokenType(\'CSSXValue\');\\n_tokenizerTypes.types.cssxMediaQuery = new _tokenizerTypes.TokenType(\'CSSXMediaQuery\');\\n_tokenizerTypes.types.cssxMediaQueryStart = new _tokenizerTypes.TokenType(\'CSSXMediaQueryStart\');\\n_tokenizerTypes.types.cssxMediaQueryEnd = new _tokenizerTypes.TokenType(\'CSSXMediaQueryEnd\');\\n_tokenizerTypes.types.cssxKeyframes = new _tokenizerTypes.TokenType(\'CSSXKeyframes\');\\n_tokenizerTypes.types.cssxKeyframesStart = new _tokenizerTypes.TokenType(\'CSSXKeyframesStart\');\\n_tokenizerTypes.types.cssxKeyframesEnd = new _tokenizerTypes.TokenType(\'CSSXKeyframesEnd\');\\n\\n_tokenizerTypes.types.cssxRulesStart.updateContext = function (prevType) {\\n  if (prevType === _tokenizerTypes.types.cssxSelector) this.state.context.push(_tokenizerContext.types.cssxRules);\\n};\\n_tokenizerTypes.types.cssxRulesEnd.updateContext = function (prevType) {\\n  if (prevType === _tokenizerTypes.types.cssxValue || prevType === _tokenizerTypes.types.cssxRulesStart || prevType === _tokenizerTypes.types.semi) {\\n    this.state.context.length -= 1; // out of cssxRules\\n  }\\n};\\n_tokenizerTypes.types.cssxEnd.updateContext = function (prevType) {\\n  this.cssxDefinitionOut();\\n  this.cssxOut();\\n};\\n_tokenizerTypes.types.cssxSelector.updateContext = function (prevType) {\\n  this.state.context.length -= 1;\\n};\\n\\n_tokenizerTypes.types.cssxMediaQueryEnd.updateContext = function (prevType) {\\n  this.cssxMediaQueryOut();\\n};\\n\\n_tokenizerTypes.types.cssxKeyframesEnd.updateContext = function (prevType) {\\n  this.cssxKeyframesOut();\\n};\\n},{\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26}],19:[function(require,module,exports){\\n\'use strict\';\\n\\nexports.__esModule = true;\\nexports.stringToCode = stringToCode;\\nexports.posToLoc = posToLoc;\\nexports.isNumber = isNumber;\\n\\nfunction stringToCode(ch) {\\n  return String(ch).charCodeAt(0);\\n}\\n\\n;\\n\\nfunction posToLoc(pos, input, verbose) {\\n  var line = 1,\\n      loopPos = 0,\\n      linePos = 0,\\n      lineStart = 0;\\n\\n  while (loopPos < input.length && loopPos !== pos) {\\n    if (input.charAt(loopPos) === \'\\\\n\') {\\n      linePos = 0;\\n      lineStart = loopPos + 1;\\n      ++line;\\n    } else {\\n      ++linePos;\\n    }\\n    ++loopPos;\\n  }\\n  if (!verbose) {\\n    return { line: line, column: linePos };\\n  } else {\\n    return {\\n      line: line,\\n      curLine: line,\\n      column: linePos,\\n      lineStart: lineStart\\n    };\\n  }\\n}\\n\\n;\\n\\nfunction isNumber(code) {\\n  return code > 47 && code < 58;\\n}\\n\\n;\\n},{}],20:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _parser = require(\\"../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.flowParseTypeInitialiser = function (tok, allowLeadingPipeOrAnd) {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  this.expect(tok || _tokenizerTypes.types.colon);\\n  if (allowLeadingPipeOrAnd) {\\n    if (this.match(_tokenizerTypes.types.bitwiseAND) || this.match(_tokenizerTypes.types.bitwiseOR)) {\\n      this.next();\\n    }\\n  }\\n  var type = this.flowParseType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseDeclareClass = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node, true);\\n  return this.finishNode(node, \\"DeclareClass\\");\\n};\\n\\npp.flowParseDeclareFunction = function (node) {\\n  this.next();\\n\\n  var id = node.id = this.parseIdentifier();\\n\\n  var typeNode = this.startNode();\\n  var typeContainer = this.startNode();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    typeNode.typeParameters = null;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var tmp = this.flowParseFunctionTypeParams();\\n  typeNode.params = tmp.params;\\n  typeNode.rest = tmp.rest;\\n  this.expect(_tokenizerTypes.types.parenR);\\n  typeNode.returnType = this.flowParseTypeInitialiser();\\n\\n  typeContainer.typeAnnotation = this.finishNode(typeNode, \\"FunctionTypeAnnotation\\");\\n  id.typeAnnotation = this.finishNode(typeContainer, \\"TypeAnnotation\\");\\n\\n  this.finishNode(id, id.type);\\n\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"DeclareFunction\\");\\n};\\n\\npp.flowParseDeclare = function (node) {\\n  if (this.match(_tokenizerTypes.types._class)) {\\n    return this.flowParseDeclareClass(node);\\n  } else if (this.match(_tokenizerTypes.types._function)) {\\n    return this.flowParseDeclareFunction(node);\\n  } else if (this.match(_tokenizerTypes.types._var)) {\\n    return this.flowParseDeclareVariable(node);\\n  } else if (this.isContextual(\\"module\\")) {\\n    return this.flowParseDeclareModule(node);\\n  } else if (this.isContextual(\\"type\\")) {\\n    return this.flowParseDeclareTypeAlias(node);\\n  } else if (this.isContextual(\\"interface\\")) {\\n    return this.flowParseDeclareInterface(node);\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseDeclareVariable = function (node) {\\n  this.next();\\n  node.id = this.flowParseTypeAnnotatableIdentifier();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DeclareVariable\\");\\n};\\n\\npp.flowParseDeclareModule = function (node) {\\n  this.next();\\n\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.id = this.parseExprAtom();\\n  } else {\\n    node.id = this.parseIdentifier();\\n  }\\n\\n  var bodyNode = node.body = this.startNode();\\n  var body = bodyNode.body = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var node2 = this.startNode();\\n\\n    // todo: declare check\\n    this.next();\\n\\n    body.push(this.flowParseDeclare(node2));\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  this.finishNode(bodyNode, \\"BlockStatement\\");\\n  return this.finishNode(node, \\"DeclareModule\\");\\n};\\n\\npp.flowParseDeclareTypeAlias = function (node) {\\n  this.next();\\n  this.flowParseTypeAlias(node);\\n  return this.finishNode(node, \\"DeclareTypeAlias\\");\\n};\\n\\npp.flowParseDeclareInterface = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node);\\n  return this.finishNode(node, \\"DeclareInterface\\");\\n};\\n\\n// Interfaces\\n\\npp.flowParseInterfaceish = function (node, allowStatic) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node[\\"extends\\"] = [];\\n  node.mixins = [];\\n\\n  if (this.eat(_tokenizerTypes.types._extends)) {\\n    do {\\n      node[\\"extends\\"].push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  if (this.isContextual(\\"mixins\\")) {\\n    this.next();\\n    do {\\n      node.mixins.push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  node.body = this.flowParseObjectType(allowStatic);\\n};\\n\\npp.flowParseInterfaceExtends = function () {\\n  var node = this.startNode();\\n\\n  node.id = this.parseIdentifier();\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  return this.finishNode(node, \\"InterfaceExtends\\");\\n};\\n\\npp.flowParseInterface = function (node) {\\n  this.flowParseInterfaceish(node, false);\\n  return this.finishNode(node, \\"InterfaceDeclaration\\");\\n};\\n\\n// Type aliases\\n\\npp.flowParseTypeAlias = function (node) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node.right = this.flowParseTypeInitialiser(_tokenizerTypes.types.eq,\\n  /*allowLeadingPipeOrAnd*/true);\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"TypeAlias\\");\\n};\\n\\n// Type annotations\\n\\npp.flowParseTypeParameterDeclaration = function () {\\n  var node = this.startNode();\\n  node.params = [];\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseTypeAnnotatableIdentifier());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  return this.finishNode(node, \\"TypeParameterDeclaration\\");\\n};\\n\\npp.flowParseExistentialTypeParam = function () {\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var node = this.startNode();\\n    this.next();\\n    return this.finishNode(node, \\"ExistentialTypeParam\\");\\n  }\\n};\\n\\npp.flowParseTypeParameterInstantiation = function () {\\n  var node = this.startNode(),\\n      oldInType = this.state.inType;\\n  node.params = [];\\n\\n  this.state.inType = true;\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseType());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  this.state.inType = oldInType;\\n\\n  return this.finishNode(node, \\"TypeParameterInstantiation\\");\\n};\\n\\npp.flowParseObjectPropertyKey = function () {\\n  return this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n};\\n\\npp.flowParseObjectTypeIndexer = function (node, isStatic) {\\n  node[\\"static\\"] = isStatic;\\n\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  node.id = this.flowParseObjectPropertyKey();\\n  node.key = this.flowParseTypeInitialiser();\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  node.value = this.flowParseTypeInitialiser();\\n\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeIndexer\\");\\n};\\n\\npp.flowParseObjectTypeMethodish = function (node) {\\n  node.params = [];\\n  node.rest = null;\\n  node.typeParameters = null;\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    node.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    node.rest = this.flowParseFunctionTypeParam();\\n  }\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.returnType = this.flowParseTypeInitialiser();\\n\\n  return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n};\\n\\npp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(startPos, startLoc));\\n  node[\\"static\\"] = isStatic;\\n  node.key = key;\\n  node.optional = false;\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeProperty\\");\\n};\\n\\npp.flowParseObjectTypeCallProperty = function (node, isStatic) {\\n  var valueNode = this.startNode();\\n  node[\\"static\\"] = isStatic;\\n  node.value = this.flowParseObjectTypeMethodish(valueNode);\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeCallProperty\\");\\n};\\n\\npp.flowParseObjectType = function (allowStatic) {\\n  var nodeStart = this.startNode();\\n  var node = undefined;\\n  var propertyKey = undefined;\\n  var isStatic = undefined;\\n\\n  nodeStart.callProperties = [];\\n  nodeStart.properties = [];\\n  nodeStart.indexers = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var optional = false;\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node = this.startNode();\\n    if (allowStatic && this.isContextual(\\"static\\")) {\\n      this.next();\\n      isStatic = true;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.bracketL)) {\\n      nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic));\\n    } else if (this.match(_tokenizerTypes.types.parenL) || this.isRelational(\\"<\\")) {\\n      nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, allowStatic));\\n    } else {\\n      if (isStatic && this.match(_tokenizerTypes.types.colon)) {\\n        propertyKey = this.parseIdentifier();\\n      } else {\\n        propertyKey = this.flowParseObjectPropertyKey();\\n      }\\n      if (this.isRelational(\\"<\\") || this.match(_tokenizerTypes.types.parenL)) {\\n        // This is a method property\\n        nodeStart.properties.push(this.flowParseObjectTypeMethod(startPos, startLoc, isStatic, propertyKey));\\n      } else {\\n        if (this.eat(_tokenizerTypes.types.question)) {\\n          optional = true;\\n        }\\n        node.key = propertyKey;\\n        node.value = this.flowParseTypeInitialiser();\\n        node.optional = optional;\\n        node[\\"static\\"] = isStatic;\\n        this.flowObjectTypeSemicolon();\\n        nodeStart.properties.push(this.finishNode(node, \\"ObjectTypeProperty\\"));\\n      }\\n    }\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  return this.finishNode(nodeStart, \\"ObjectTypeAnnotation\\");\\n};\\n\\npp.flowObjectTypeSemicolon = function () {\\n  if (!this.eat(_tokenizerTypes.types.semi) && !this.eat(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseGenericType = function (startPos, startLoc, id) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n\\n  node.typeParameters = null;\\n  node.id = id;\\n\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var node2 = this.startNodeAt(startPos, startLoc);\\n    node2.qualification = node.id;\\n    node2.id = this.parseIdentifier();\\n    node.id = this.finishNode(node2, \\"QualifiedTypeIdentifier\\");\\n  }\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  }\\n\\n  return this.finishNode(node, \\"GenericTypeAnnotation\\");\\n};\\n\\npp.flowParseTypeofType = function () {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types._typeof);\\n  node.argument = this.flowParsePrimaryType();\\n  return this.finishNode(node, \\"TypeofTypeAnnotation\\");\\n};\\n\\npp.flowParseTupleType = function () {\\n  var node = this.startNode();\\n  node.types = [];\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  // We allow trailing commas\\n  while (this.state.pos < this.input.length && !this.match(_tokenizerTypes.types.bracketR)) {\\n    node.types.push(this.flowParseType());\\n    if (this.match(_tokenizerTypes.types.bracketR)) break;\\n    this.expect(_tokenizerTypes.types.comma);\\n  }\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  return this.finishNode(node, \\"TupleTypeAnnotation\\");\\n};\\n\\npp.flowParseFunctionTypeParam = function () {\\n  var optional = false;\\n  var node = this.startNode();\\n  node.name = this.parseIdentifier();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    optional = true;\\n  }\\n  node.optional = optional;\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"FunctionTypeParam\\");\\n};\\n\\npp.flowParseFunctionTypeParams = function () {\\n  var ret = { params: [], rest: null };\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    ret.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    ret.rest = this.flowParseFunctionTypeParam();\\n  }\\n  return ret;\\n};\\n\\npp.flowIdentToTypeAnnotation = function (startPos, startLoc, node, id) {\\n  switch (id.name) {\\n    case \\"any\\":\\n      return this.finishNode(node, \\"AnyTypeAnnotation\\");\\n\\n    case \\"void\\":\\n      return this.finishNode(node, \\"VoidTypeAnnotation\\");\\n\\n    case \\"bool\\":\\n    case \\"boolean\\":\\n      return this.finishNode(node, \\"BooleanTypeAnnotation\\");\\n\\n    case \\"mixed\\":\\n      return this.finishNode(node, \\"MixedTypeAnnotation\\");\\n\\n    case \\"number\\":\\n      return this.finishNode(node, \\"NumberTypeAnnotation\\");\\n\\n    case \\"string\\":\\n      return this.finishNode(node, \\"StringTypeAnnotation\\");\\n\\n    default:\\n      return this.flowParseGenericType(startPos, startLoc, id);\\n  }\\n};\\n\\n// The parsing of types roughly parallels the parsing of expressions, and\\n// primary types are kind of like primary expressions...they\'re the\\n// primitives with which other types are constructed.\\npp.flowParsePrimaryType = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.startNode();\\n  var tmp = undefined;\\n  var type = undefined;\\n  var isGroupedType = false;\\n\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.name:\\n      return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier());\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.flowParseObjectType();\\n\\n    case _tokenizerTypes.types.bracketL:\\n      return this.flowParseTupleType();\\n\\n    case _tokenizerTypes.types.relational:\\n      if (this.state.value === \\"<\\") {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n        this.expect(_tokenizerTypes.types.parenL);\\n        tmp = this.flowParseFunctionTypeParams();\\n        node.params = tmp.params;\\n        node.rest = tmp.rest;\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        this.expect(_tokenizerTypes.types.arrow);\\n\\n        node.returnType = this.flowParseType();\\n\\n        return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n      }\\n\\n    case _tokenizerTypes.types.parenL:\\n      this.next();\\n\\n      // Check to see if this is actually a grouped type\\n      if (!this.match(_tokenizerTypes.types.parenR) && !this.match(_tokenizerTypes.types.ellipsis)) {\\n        if (this.match(_tokenizerTypes.types.name)) {\\n          var token = this.lookahead().type;\\n          isGroupedType = token !== _tokenizerTypes.types.question && token !== _tokenizerTypes.types.colon;\\n        } else {\\n          isGroupedType = true;\\n        }\\n      }\\n\\n      if (isGroupedType) {\\n        type = this.flowParseType();\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        // If we see a => next then someone was probably confused about\\n        // function types, so we can provide a better error message\\n        if (this.eat(_tokenizerTypes.types.arrow)) {\\n          this.raise(node, \\"Unexpected token =>. It looks like \\" + \\"you are trying to write a function type, but you ended up \\" + \\"writing a grouped type followed by an =>, which is a syntax \\" + \\"error. Remember, function type parameters are named so function \\" + \\"types look like (name1: type1, name2: type2) => returnType. You \\" + \\"probably wrote (type1) => returnType\\");\\n        }\\n\\n        return type;\\n      }\\n\\n      tmp = this.flowParseFunctionTypeParams();\\n      node.params = tmp.params;\\n      node.rest = tmp.rest;\\n\\n      this.expect(_tokenizerTypes.types.parenR);\\n\\n      this.expect(_tokenizerTypes.types.arrow);\\n\\n      node.returnType = this.flowParseType();\\n      node.typeParameters = null;\\n\\n      return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.string:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"StringLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.num:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"NumericLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node.value = this.match(_tokenizerTypes.types._null);\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node.value = this.match(_tokenizerTypes.types._this);\\n      this.next();\\n      return this.finishNode(node, \\"ThisTypeAnnotation\\");\\n\\n    default:\\n      if (this.state.type.keyword === \\"typeof\\") {\\n        return this.flowParseTypeofType();\\n      }\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.flowParsePostfixType = function () {\\n  var node = this.startNode();\\n  var type = node.elementType = this.flowParsePrimaryType();\\n  if (this.match(_tokenizerTypes.types.bracketL)) {\\n    this.expect(_tokenizerTypes.types.bracketL);\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return this.finishNode(node, \\"ArrayTypeAnnotation\\");\\n  } else {\\n    return type;\\n  }\\n};\\n\\npp.flowParsePrefixType = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    node.typeAnnotation = this.flowParsePrefixType();\\n    return this.finishNode(node, \\"NullableTypeAnnotation\\");\\n  } else {\\n    return this.flowParsePostfixType();\\n  }\\n};\\n\\npp.flowParseIntersectionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParsePrefixType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseAND)) {\\n    node.types.push(this.flowParsePrefixType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"IntersectionTypeAnnotation\\");\\n};\\n\\npp.flowParseUnionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParseIntersectionType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseOR)) {\\n    node.types.push(this.flowParseIntersectionType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"UnionTypeAnnotation\\");\\n};\\n\\npp.flowParseType = function () {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  var type = this.flowParseUnionType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseTypeAnnotation = function () {\\n  var node = this.startNode();\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"TypeAnnotation\\");\\n};\\n\\npp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) {\\n  var ident = this.parseIdentifier();\\n  var isOptionalParam = false;\\n\\n  if (canBeOptionalParam && this.eat(_tokenizerTypes.types.question)) {\\n    this.expect(_tokenizerTypes.types.question);\\n    isOptionalParam = true;\\n  }\\n\\n  if (requireTypeAnnotation || this.match(_tokenizerTypes.types.colon)) {\\n    ident.typeAnnotation = this.flowParseTypeAnnotation();\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  if (isOptionalParam) {\\n    ident.optional = true;\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  return ident;\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  // plain function return types: function name(): string {}\\n  instance.extend(\\"parseFunctionBody\\", function (inner) {\\n    return function (node, allowExpression) {\\n      if (this.match(_tokenizerTypes.types.colon) && !allowExpression) {\\n        // if allowExpression is true then we\'re parsing an arrow function and if\\n        // there\'s a return type then it\'s been handled elsewhere\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, allowExpression);\\n    };\\n  });\\n\\n  // interfaces\\n  instance.extend(\\"parseStatement\\", function (inner) {\\n    return function (declaration, topLevel) {\\n      // strict mode handling of `interface` since it\'s a reserved word\\n      if (this.state.strict && this.match(_tokenizerTypes.types.name) && this.state.value === \\"interface\\") {\\n        var node = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(node);\\n      } else {\\n        return inner.call(this, declaration, topLevel);\\n      }\\n    };\\n  });\\n\\n  // declares, interfaces and type aliases\\n  instance.extend(\\"parseExpressionStatement\\", function (inner) {\\n    return function (node, expr) {\\n      if (expr.type === \\"Identifier\\") {\\n        if (expr.name === \\"declare\\") {\\n          if (this.match(_tokenizerTypes.types._class) || this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._function) || this.match(_tokenizerTypes.types._var)) {\\n            return this.flowParseDeclare(node);\\n          }\\n        } else if (this.match(_tokenizerTypes.types.name)) {\\n          if (expr.name === \\"interface\\") {\\n            return this.flowParseInterface(node);\\n          } else if (expr.name === \\"type\\") {\\n            return this.flowParseTypeAlias(node);\\n          }\\n        }\\n      }\\n\\n      return inner.call(this, node, expr);\\n    };\\n  });\\n\\n  // export type\\n  instance.extend(\\"shouldParseExportDeclaration\\", function (inner) {\\n    return function () {\\n      return this.isContextual(\\"type\\") || this.isContextual(\\"interface\\") || inner.call(this);\\n    };\\n  });\\n\\n  instance.extend(\\"parseParenItem\\", function () {\\n    return function (node, startLoc, startPos, forceArrow /*:: ?*/) {\\n      var canBeArrow = this.state.potentialArrowAt = startPos;\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        var typeCastNode = this.startNodeAt(startLoc, startPos);\\n        typeCastNode.expression = node;\\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\\n\\n        if (forceArrow && !this.match(_tokenizerTypes.types.arrow)) {\\n          this.unexpected();\\n        }\\n\\n        if (canBeArrow && this.eat(_tokenizerTypes.types.arrow)) {\\n          // ((lol): number => {});\\n          var params = node.type === \\"SequenceExpression\\" ? node.expressions : [node];\\n          var func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), params);\\n          func.returnType = typeCastNode.typeAnnotation;\\n          return func;\\n        } else {\\n          return this.finishNode(typeCastNode, \\"TypeCastExpression\\");\\n        }\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseExport\\", function (inner) {\\n    return function (node) {\\n      node = inner.call(this, node);\\n      if (node.type === \\"ExportNamedDeclaration\\") {\\n        node.exportKind = node.exportKind || \\"value\\";\\n      }\\n      return node;\\n    };\\n  });\\n\\n  instance.extend(\\"parseExportDeclaration\\", function (inner) {\\n    return function (node) {\\n      if (this.isContextual(\\"type\\")) {\\n        node.exportKind = \\"type\\";\\n\\n        var declarationNode = this.startNode();\\n        this.next();\\n\\n        if (this.match(_tokenizerTypes.types.braceL)) {\\n          // export type { foo, bar };\\n          node.specifiers = this.parseExportSpecifiers();\\n          this.parseExportFrom(node);\\n          return null;\\n        } else {\\n          // export type Foo = Bar;\\n          return this.flowParseTypeAlias(declarationNode);\\n        }\\n      } else if (this.isContextual(\\"interface\\")) {\\n        node.exportKind = \\"type\\";\\n        var declarationNode = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(declarationNode);\\n      } else {\\n        return inner.call(this, node);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseClassId\\", function (inner) {\\n    return function (node) {\\n      inner.apply(this, arguments);\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n    };\\n  });\\n\\n  // don\'t consider `void` to be a keyword as then it\'ll use the void token type\\n  // and set startExpr\\n  instance.extend(\\"isKeyword\\", function (inner) {\\n    return function (name) {\\n      if (this.state.inType && name === \\"void\\") {\\n        return false;\\n      } else {\\n        return inner.call(this, name);\\n      }\\n    };\\n  });\\n\\n  // ensure that inside flow types, we bypass the jsx parser plugin\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      if (this.state.inType && (code === 62 || code === 60)) {\\n        return this.finishOp(_tokenizerTypes.types.relational, 1);\\n      } else {\\n        return inner.call(this, code);\\n      }\\n    };\\n  });\\n\\n  // don\'t lex any token as a jsx one inside a flow type\\n  instance.extend(\\"jsx_readToken\\", function (inner) {\\n    return function () {\\n      if (!this.state.inType) return inner.call(this);\\n    };\\n  });\\n\\n  function typeCastToParameter(node) {\\n    node.expression.typeAnnotation = node.typeAnnotation;\\n    return node.expression;\\n  }\\n\\n  instance.extend(\\"toAssignable\\", function (inner) {\\n    return function (node) {\\n      if (node.type === \\"TypeCastExpression\\") {\\n        return typeCastToParameter(node);\\n      } else {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // turn type casts that we found in function parameter head into type annotated params\\n  instance.extend(\\"toAssignableList\\", function (inner) {\\n    return function (exprList, isBinding) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr.type === \\"TypeCastExpression\\") {\\n          exprList[i] = typeCastToParameter(expr);\\n        }\\n      }\\n      return inner.call(this, exprList, isBinding);\\n    };\\n  });\\n\\n  // this is a list of nodes, from something like a call expression, we need to filter the\\n  // type casts that we\'ve found that are illegal in this context\\n  instance.extend(\\"toReferencedList\\", function () {\\n    return function (exprList) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr._exprListItem && expr.type === \\"TypeCastExpression\\") {\\n          this.raise(expr.start, \\"Unexpected type cast\\");\\n        }\\n      }\\n\\n      return exprList;\\n    };\\n  });\\n\\n  // parse an item inside a expression list eg. `(NODE, NODE)` where NODE represents\\n  // the position where this function is cal;ed\\n  instance.extend(\\"parseExprListItem\\", function (inner) {\\n    return function (allowEmpty, refShorthandDefaultPos) {\\n      var container = this.startNode();\\n      var node = inner.call(this, allowEmpty, refShorthandDefaultPos);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        container._exprListItem = true;\\n        container.expression = node;\\n        container.typeAnnotation = this.flowParseTypeAnnotation();\\n        return this.finishNode(container, \\"TypeCastExpression\\");\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"checkLVal\\", function (inner) {\\n    return function (node) {\\n      if (node.type !== \\"TypeCastExpression\\") {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // parse class property type annotations\\n  instance.extend(\\"parseClassProperty\\", function (inner) {\\n    return function (node) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      return inner.call(this, node);\\n    };\\n  });\\n\\n  // determine whether or not we\'re currently in the position where a class property would appear\\n  instance.extend(\\"isClassProperty\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // parse type parameters for class methods\\n  instance.extend(\\"parseClassMethod\\", function () {\\n    return function (classBody, method, isGenerator, isAsync) {\\n      if (this.isRelational(\\"<\\")) {\\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      this.parseMethod(method, isGenerator, isAsync);\\n      classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n    };\\n  });\\n\\n  // parse a the super class type parameters and implements\\n  instance.extend(\\"parseClassSuper\\", function (inner) {\\n    return function (node, isStatement) {\\n      inner.call(this, node, isStatement);\\n      if (node.superClass && this.isRelational(\\"<\\")) {\\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\\n      }\\n      if (this.isContextual(\\"implements\\")) {\\n        this.next();\\n        var implemented = node[\\"implements\\"] = [];\\n        do {\\n          var _node = this.startNode();\\n          _node.id = this.parseIdentifier();\\n          if (this.isRelational(\\"<\\")) {\\n            _node.typeParameters = this.flowParseTypeParameterInstantiation();\\n          } else {\\n            _node.typeParameters = null;\\n          }\\n          implemented.push(this.finishNode(_node, \\"ClassImplements\\"));\\n        } while (this.eat(_tokenizerTypes.types.comma));\\n      }\\n    };\\n  });\\n\\n  // parse type parameters for object method shorthand\\n  instance.extend(\\"parseObjPropValue\\", function (inner) {\\n    return function (prop) {\\n      var typeParameters = undefined;\\n\\n      // method shorthand\\n      if (this.isRelational(\\"<\\")) {\\n        typeParameters = this.flowParseTypeParameterDeclaration();\\n        if (!this.match(_tokenizerTypes.types.parenL)) this.unexpected();\\n      }\\n\\n      inner.apply(this, arguments);\\n\\n      // add typeParameters if we found them\\n      if (typeParameters) {\\n        (prop.value || prop).typeParameters = typeParameters;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseAssignableListItemTypes\\", function () {\\n    return function (param) {\\n      if (this.eat(_tokenizerTypes.types.question)) {\\n        param.optional = true;\\n      }\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        param.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      this.finishNode(param, param.type);\\n      return param;\\n    };\\n  });\\n\\n  // parse typeof and type imports\\n  instance.extend(\\"parseImportSpecifiers\\", function (inner) {\\n    return function (node) {\\n      node.importKind = \\"value\\";\\n\\n      var kind = null;\\n      if (this.match(_tokenizerTypes.types._typeof)) {\\n        kind = \\"typeof\\";\\n      } else if (this.isContextual(\\"type\\")) {\\n        kind = \\"type\\";\\n      }\\n      if (kind) {\\n        var lh = this.lookahead();\\n        if (lh.type === _tokenizerTypes.types.name && lh.value !== \\"from\\" || lh.type === _tokenizerTypes.types.braceL || lh.type === _tokenizerTypes.types.star) {\\n          this.next();\\n          node.importKind = kind;\\n        }\\n      }\\n\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse function type parameters - function foo<T>() {}\\n  instance.extend(\\"parseFunctionParams\\", function (inner) {\\n    return function (node) {\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse flow type annotations on variable declarator heads - let foo: string = bar\\n  instance.extend(\\"parseVarHead\\", function (inner) {\\n    return function (decl) {\\n      inner.call(this, decl);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\\n        this.finishNode(decl.id, decl.id.type);\\n      }\\n    };\\n  });\\n\\n  // parse the return type of an async arrow function - let foo = (async (): number => {});\\n  instance.extend(\\"parseAsyncArrowFromCallExpression\\", function (inner) {\\n    return function (node, call) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, call);\\n    };\\n  });\\n\\n  // todo description\\n  instance.extend(\\"shouldParseAsyncArrow\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // handle return types for arrow functions\\n  instance.extend(\\"parseParenAndDistinguishExpression\\", function (inner) {\\n    return function (startPos, startLoc, canBeArrow, isAsync) {\\n      startPos = startPos || this.state.start;\\n      startLoc = startLoc || this.state.startLoc;\\n\\n      if (canBeArrow && this.lookahead().type === _tokenizerTypes.types.parenR) {\\n        // let foo = (): number => {};\\n        this.expect(_tokenizerTypes.types.parenL);\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        var node = this.startNodeAt(startPos, startLoc);\\n        if (this.match(_tokenizerTypes.types.colon)) node.returnType = this.flowParseTypeAnnotation();\\n        this.expect(_tokenizerTypes.types.arrow);\\n        return this.parseArrowExpression(node, [], isAsync);\\n      } else {\\n        // let foo = (foo): number => {};\\n        var node = inner.call(this, startPos, startLoc, canBeArrow, isAsync, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n\\n        if (this.match(_tokenizerTypes.types.colon)) {\\n          var state = this.state.clone();\\n          try {\\n            return this.parseParenItem(node, startPos, startLoc, true);\\n          } catch (err) {\\n            if (err instanceof SyntaxError) {\\n              this.state = state;\\n              return node;\\n            } else {\\n              throw err;\\n            }\\n          }\\n        } else {\\n          return node;\\n        }\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../parser\\":5,\\"../tokenizer/types\\":26,\\"babel-runtime/helpers/interop-require-default\\":35}],21:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _xhtml = require(\\"./xhtml\\");\\n\\nvar _xhtml2 = _interopRequireDefault(_xhtml);\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilIdentifier = require(\\"../../util/identifier\\");\\n\\nvar _utilWhitespace = require(\\"../../util/whitespace\\");\\n\\nvar HEX_NUMBER = /^[\\\\da-fA-F]+$/;\\nvar DECIMAL_NUMBER = /^\\\\d+$/;\\n\\n_tokenizerContext.types.j_oTag = new _tokenizerContext.TokContext(\\"<tag\\", false);\\n_tokenizerContext.types.j_cTag = new _tokenizerContext.TokContext(\\"</tag\\", false);\\n_tokenizerContext.types.j_expr = new _tokenizerContext.TokContext(\\"<tag>...</tag>\\", true, true);\\n\\n_tokenizerTypes.types.jsxName = new _tokenizerTypes.TokenType(\\"jsxName\\");\\n_tokenizerTypes.types.jsxText = new _tokenizerTypes.TokenType(\\"jsxText\\", { beforeExpr: true });\\n_tokenizerTypes.types.jsxTagStart = new _tokenizerTypes.TokenType(\\"jsxTagStart\\");\\n_tokenizerTypes.types.jsxTagEnd = new _tokenizerTypes.TokenType(\\"jsxTagEnd\\");\\n\\n_tokenizerTypes.types.jsxTagStart.updateContext = function () {\\n  this.state.context.push(_tokenizerContext.types.j_expr); // treat as beginning of JSX expression\\n  this.state.context.push(_tokenizerContext.types.j_oTag); // start opening tag context\\n  this.state.exprAllowed = false;\\n};\\n\\n_tokenizerTypes.types.jsxTagEnd.updateContext = function (prevType) {\\n  var out = this.state.context.pop();\\n  if (out === _tokenizerContext.types.j_oTag && prevType === _tokenizerTypes.types.slash || out === _tokenizerContext.types.j_cTag) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = this.curContext() === _tokenizerContext.types.j_expr;\\n  } else {\\n    this.state.exprAllowed = true;\\n  }\\n};\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\n// Reads inline JSX contents token.\\n\\npp.jsxReadToken = function () {\\n  var out = \\"\\";\\n  var chunkStart = this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated JSX contents\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n\\n    switch (ch) {\\n      case 60: // \\"<\\"\\n      case 123:\\n        // \\"{\\"\\n        if (this.state.pos === this.state.start) {\\n          if (ch === 60 && this.state.exprAllowed) {\\n            ++this.state.pos;\\n            return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n          }\\n          return this.getTokenFromCode(ch);\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_tokenizerTypes.types.jsxText, out);\\n\\n      case 38:\\n        // \\"&\\"\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.jsxReadEntity();\\n        chunkStart = this.state.pos;\\n        break;\\n\\n      default:\\n        if (_utilWhitespace.isNewLine(ch)) {\\n          out += this.input.slice(chunkStart, this.state.pos);\\n          out += this.jsxReadNewLine(true);\\n          chunkStart = this.state.pos;\\n        } else {\\n          ++this.state.pos;\\n        }\\n    }\\n  }\\n};\\n\\npp.jsxReadNewLine = function (normalizeCRLF) {\\n  var ch = this.input.charCodeAt(this.state.pos);\\n  var out = undefined;\\n  ++this.state.pos;\\n  if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {\\n    ++this.state.pos;\\n    out = normalizeCRLF ? \\"\\\\n\\" : \\"\\\\r\\\\n\\";\\n  } else {\\n    out = String.fromCharCode(ch);\\n  }\\n  ++this.state.curLine;\\n  this.state.lineStart = this.state.pos;\\n\\n  return out;\\n};\\n\\npp.jsxReadString = function (quote) {\\n  var out = \\"\\";\\n  var chunkStart = ++this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated string constant\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n    if (ch === quote) break;\\n    if (ch === 38) {\\n      // \\"&\\"\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadEntity();\\n      chunkStart = this.state.pos;\\n    } else if (_utilWhitespace.isNewLine(ch)) {\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadNewLine(false);\\n      chunkStart = this.state.pos;\\n    } else {\\n      ++this.state.pos;\\n    }\\n  }\\n  out += this.input.slice(chunkStart, this.state.pos++);\\n  return this.finishToken(_tokenizerTypes.types.string, out);\\n};\\n\\npp.jsxReadEntity = function () {\\n  var str = \\"\\";\\n  var count = 0;\\n  var entity = undefined;\\n  var ch = this.input[this.state.pos];\\n\\n  var startPos = ++this.state.pos;\\n  while (this.state.pos < this.input.length && count++ < 10) {\\n    ch = this.input[this.state.pos++];\\n    if (ch === \\";\\") {\\n      if (str[0] === \\"#\\") {\\n        if (str[1] === \\"x\\") {\\n          str = str.substr(2);\\n          if (HEX_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 16));\\n        } else {\\n          str = str.substr(1);\\n          if (DECIMAL_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 10));\\n        }\\n      } else {\\n        entity = _xhtml2[\\"default\\"][str];\\n      }\\n      break;\\n    }\\n    str += ch;\\n  }\\n  if (!entity) {\\n    this.state.pos = startPos;\\n    return \\"&\\";\\n  }\\n  return entity;\\n};\\n\\n// Read a JSX identifier (valid tag or attribute name).\\n//\\n// Optimized version since JSX identifiers can\\"t contain\\n// escape characters and so can be read as single slice.\\n// Also assumes that first character was already checked\\n// by isIdentifierStart in readToken.\\n\\npp.jsxReadWord = function () {\\n  var ch = undefined;\\n  var start = this.state.pos;\\n  do {\\n    ch = this.input.charCodeAt(++this.state.pos);\\n  } while (_utilIdentifier.isIdentifierChar(ch) || ch === 45); // \\"-\\"\\n  return this.finishToken(_tokenizerTypes.types.jsxName, this.input.slice(start, this.state.pos));\\n};\\n\\n// Transforms JSX element name to string.\\n\\nfunction getQualifiedJSXName(object) {\\n  if (object.type === \\"JSXIdentifier\\") {\\n    return object.name;\\n  }\\n\\n  if (object.type === \\"JSXNamespacedName\\") {\\n    return object.namespace.name + \\":\\" + object.name.name;\\n  }\\n\\n  if (object.type === \\"JSXMemberExpression\\") {\\n    return getQualifiedJSXName(object.object) + \\".\\" + getQualifiedJSXName(object.property);\\n  }\\n}\\n\\n// Parse next token as JSX identifier\\n\\npp.jsxParseIdentifier = function () {\\n  var node = this.startNode();\\n  if (this.match(_tokenizerTypes.types.jsxName)) {\\n    node.name = this.state.value;\\n  } else if (this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"JSXIdentifier\\");\\n};\\n\\n// Parse namespaced identifier.\\n\\npp.jsxParseNamespacedName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var name = this.jsxParseIdentifier();\\n  if (!this.eat(_tokenizerTypes.types.colon)) return name;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.namespace = name;\\n  node.name = this.jsxParseIdentifier();\\n  return this.finishNode(node, \\"JSXNamespacedName\\");\\n};\\n\\n// Parses element name in any form - namespaced, member\\n// or single identifier.\\n\\npp.jsxParseElementName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.jsxParseNamespacedName();\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var newNode = this.startNodeAt(startPos, startLoc);\\n    newNode.object = node;\\n    newNode.property = this.jsxParseIdentifier();\\n    node = this.finishNode(newNode, \\"JSXMemberExpression\\");\\n  }\\n  return node;\\n};\\n\\n// Parses any type of JSX attribute value.\\n\\npp.jsxParseAttributeValue = function () {\\n  var node = undefined;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.braceL:\\n      node = this.jsxParseExpressionContainer();\\n      if (node.expression.type === \\"JSXEmptyExpression\\") {\\n        this.raise(node.start, \\"JSX attributes must only be assigned a non-empty expression\\");\\n      } else {\\n        return node;\\n      }\\n\\n    case _tokenizerTypes.types.jsxTagStart:\\n    case _tokenizerTypes.types.string:\\n      node = this.parseExprAtom();\\n      node.extra = null;\\n      return node;\\n\\n    default:\\n      this.raise(this.state.start, \\"JSX value should be either an expression or a quoted JSX text\\");\\n  }\\n};\\n\\n// JSXEmptyExpression is unique type since it doesn\'t actually parse anything,\\n// and so it should start at the end of last read token (left brace) and finish\\n// at the beginning of the next one (right brace).\\n\\npp.jsxParseEmptyExpression = function () {\\n  var node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc);\\n  return this.finishNodeAt(node, \\"JSXEmptyExpression\\", this.start, this.startLoc);\\n};\\n\\n// Parses JSX expression enclosed into curly brackets.\\n\\npp.jsxParseExpressionContainer = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.braceR)) {\\n    node.expression = this.jsxParseEmptyExpression();\\n  } else {\\n    node.expression = this.parseExpression();\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"JSXExpressionContainer\\");\\n};\\n\\n// Parses following JSX attribute name-value pair.\\n\\npp.jsxParseAttribute = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.braceL)) {\\n    this.expect(_tokenizerTypes.types.ellipsis);\\n    node.argument = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.braceR);\\n    return this.finishNode(node, \\"JSXSpreadAttribute\\");\\n  }\\n  node.name = this.jsxParseNamespacedName();\\n  node.value = this.eat(_tokenizerTypes.types.eq) ? this.jsxParseAttributeValue() : null;\\n  return this.finishNode(node, \\"JSXAttribute\\");\\n};\\n\\n// Parses JSX opening tag starting after \\"<\\".\\n\\npp.jsxParseOpeningElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.attributes = [];\\n  node.name = this.jsxParseElementName();\\n  while (!this.match(_tokenizerTypes.types.slash) && !this.match(_tokenizerTypes.types.jsxTagEnd)) {\\n    node.attributes.push(this.jsxParseAttribute());\\n  }\\n  node.selfClosing = this.eat(_tokenizerTypes.types.slash);\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXOpeningElement\\");\\n};\\n\\n// Parses JSX closing tag starting after \\"</\\".\\n\\npp.jsxParseClosingElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.name = this.jsxParseElementName();\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXClosingElement\\");\\n};\\n\\n// Parses entire JSX element, including it\\"s opening tag\\n// (starting after \\"<\\"), attributes, contents and closing tag.\\n\\npp.jsxParseElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  var children = [];\\n  var openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\\n  var closingElement = null;\\n\\n  if (!openingElement.selfClosing) {\\n    contents: for (;;) {\\n      switch (this.state.type) {\\n        case _tokenizerTypes.types.jsxTagStart:\\n          startPos = this.state.start;startLoc = this.state.startLoc;\\n          this.next();\\n          if (this.eat(_tokenizerTypes.types.slash)) {\\n            closingElement = this.jsxParseClosingElementAt(startPos, startLoc);\\n            break contents;\\n          }\\n          children.push(this.jsxParseElementAt(startPos, startLoc));\\n          break;\\n\\n        case _tokenizerTypes.types.jsxText:\\n          children.push(this.parseExprAtom());\\n          break;\\n\\n        case _tokenizerTypes.types.braceL:\\n          children.push(this.jsxParseExpressionContainer());\\n          break;\\n\\n        default:\\n          this.unexpected();\\n      }\\n    }\\n\\n    if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\\n      this.raise(closingElement.start, \\"Expected corresponding JSX closing tag for <\\" + getQualifiedJSXName(openingElement.name) + \\">\\");\\n    }\\n  }\\n\\n  node.openingElement = openingElement;\\n  node.closingElement = closingElement;\\n  node.children = children;\\n  if (this.match(_tokenizerTypes.types.relational) && this.state.value === \\"<\\") {\\n    this.raise(this.state.start, \\"Adjacent JSX elements must be wrapped in an enclosing tag\\");\\n  }\\n  return this.finishNode(node, \\"JSXElement\\");\\n};\\n\\n// Parses entire JSX element from current position.\\n\\npp.jsxParseElement = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  this.next();\\n  return this.jsxParseElementAt(startPos, startLoc);\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  instance.extend(\\"parseExprAtom\\", function (inner) {\\n    return function (refShortHandDefaultPos) {\\n      if (this.match(_tokenizerTypes.types.jsxText)) {\\n        var node = this.parseLiteral(this.state.value, \\"JSXText\\");\\n        // https://github.com/babel/babel/issues/2078\\n        node.extra = null;\\n        return node;\\n      } else if (this.match(_tokenizerTypes.types.jsxTagStart)) {\\n        return this.jsxParseElement();\\n      } else {\\n        return inner.call(this, refShortHandDefaultPos);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      var context = this.curContext();\\n\\n      if (context === _tokenizerContext.types.j_expr) {\\n        return this.jsxReadToken();\\n      }\\n\\n      if (context === _tokenizerContext.types.j_oTag || context === _tokenizerContext.types.j_cTag) {\\n        if (_utilIdentifier.isIdentifierStart(code)) {\\n          return this.jsxReadWord();\\n        }\\n\\n        if (code === 62) {\\n          ++this.state.pos;\\n          return this.finishToken(_tokenizerTypes.types.jsxTagEnd);\\n        }\\n\\n        if ((code === 34 || code === 39) && context === _tokenizerContext.types.j_oTag) {\\n          return this.jsxReadString(code);\\n        }\\n      }\\n\\n      if (code === 60 && this.state.exprAllowed) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n      }\\n\\n      return inner.call(this, code);\\n    };\\n  });\\n\\n  instance.extend(\\"updateContext\\", function (inner) {\\n    return function (prevType) {\\n      if (this.match(_tokenizerTypes.types.braceL)) {\\n        var curContext = this.curContext();\\n        if (curContext === _tokenizerContext.types.j_oTag) {\\n          this.state.context.push(_tokenizerContext.types.b_expr);\\n        } else if (curContext === _tokenizerContext.types.j_expr) {\\n          this.state.context.push(_tokenizerContext.types.b_tmpl);\\n        } else {\\n          inner.call(this, prevType);\\n        }\\n        this.state.exprAllowed = true;\\n      } else if (this.match(_tokenizerTypes.types.slash) && prevType === _tokenizerTypes.types.jsxTagStart) {\\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\\n        this.state.context.push(_tokenizerContext.types.j_cTag); // reconsider as closing tag context\\n        this.state.exprAllowed = false;\\n      } else {\\n        return inner.call(this, prevType);\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":23,\\"../../tokenizer/types\\":26,\\"../../util/identifier\\":27,\\"../../util/whitespace\\":29,\\"./xhtml\\":22,\\"babel-runtime/helpers/interop-require-default\\":35}],22:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = {\\n  quot: \\"\\\\\\"\\",\\n  amp: \\"&\\",\\n  apos: \\"\'\\",\\n  lt: \\"<\\",\\n  gt: \\">\\",\\n  nbsp: \\"\xa0\\",\\n  iexcl: \\"¡\\",\\n  cent: \\"¢\\",\\n  pound: \\"£\\",\\n  curren: \\"¤\\",\\n  yen: \\"¥\\",\\n  brvbar: \\"¦\\",\\n  sect: \\"§\\",\\n  uml: \\"¨\\",\\n  copy: \\"©\\",\\n  ordf: \\"ª\\",\\n  laquo: \\"«\\",\\n  not: \\"¬\\",\\n  shy: \\"\xad\\",\\n  reg: \\"®\\",\\n  macr: \\"¯\\",\\n  deg: \\"°\\",\\n  plusmn: \\"±\\",\\n  sup2: \\"²\\",\\n  sup3: \\"³\\",\\n  acute: \\"´\\",\\n  micro: \\"µ\\",\\n  para: \\"¶\\",\\n  middot: \\"·\\",\\n  cedil: \\"¸\\",\\n  sup1: \\"¹\\",\\n  ordm: \\"º\\",\\n  raquo: \\"»\\",\\n  frac14: \\"¼\\",\\n  frac12: \\"½\\",\\n  frac34: \\"¾\\",\\n  iquest: \\"¿\\",\\n  Agrave: \\"À\\",\\n  Aacute: \\"Á\\",\\n  Acirc: \\"Â\\",\\n  Atilde: \\"Ã\\",\\n  Auml: \\"Ä\\",\\n  Aring: \\"Å\\",\\n  AElig: \\"Æ\\",\\n  Ccedil: \\"Ç\\",\\n  Egrave: \\"È\\",\\n  Eacute: \\"É\\",\\n  Ecirc: \\"Ê\\",\\n  Euml: \\"Ë\\",\\n  Igrave: \\"Ì\\",\\n  Iacute: \\"Í\\",\\n  Icirc: \\"Î\\",\\n  Iuml: \\"Ï\\",\\n  ETH: \\"Ð\\",\\n  Ntilde: \\"Ñ\\",\\n  Ograve: \\"Ò\\",\\n  Oacute: \\"Ó\\",\\n  Ocirc: \\"Ô\\",\\n  Otilde: \\"Õ\\",\\n  Ouml: \\"Ö\\",\\n  times: \\"×\\",\\n  Oslash: \\"Ø\\",\\n  Ugrave: \\"Ù\\",\\n  Uacute: \\"Ú\\",\\n  Ucirc: \\"Û\\",\\n  Uuml: \\"Ü\\",\\n  Yacute: \\"Ý\\",\\n  THORN: \\"Þ\\",\\n  szlig: \\"ß\\",\\n  agrave: \\"à\\",\\n  aacute: \\"á\\",\\n  acirc: \\"â\\",\\n  atilde: \\"ã\\",\\n  auml: \\"ä\\",\\n  aring: \\"å\\",\\n  aelig: \\"æ\\",\\n  ccedil: \\"ç\\",\\n  egrave: \\"è\\",\\n  eacute: \\"é\\",\\n  ecirc: \\"ê\\",\\n  euml: \\"ë\\",\\n  igrave: \\"ì\\",\\n  iacute: \\"í\\",\\n  icirc: \\"î\\",\\n  iuml: \\"ï\\",\\n  eth: \\"ð\\",\\n  ntilde: \\"ñ\\",\\n  ograve: \\"ò\\",\\n  oacute: \\"ó\\",\\n  ocirc: \\"ô\\",\\n  otilde: \\"õ\\",\\n  ouml: \\"ö\\",\\n  divide: \\"÷\\",\\n  oslash: \\"ø\\",\\n  ugrave: \\"ù\\",\\n  uacute: \\"ú\\",\\n  ucirc: \\"û\\",\\n  uuml: \\"ü\\",\\n  yacute: \\"ý\\",\\n  thorn: \\"þ\\",\\n  yuml: \\"ÿ\\",\\n  OElig: \\"Œ\\",\\n  oelig: \\"œ\\",\\n  Scaron: \\"Š\\",\\n  scaron: \\"š\\",\\n  Yuml: \\"Ÿ\\",\\n  fnof: \\"ƒ\\",\\n  circ: \\"ˆ\\",\\n  tilde: \\"˜\\",\\n  Alpha: \\"Α\\",\\n  Beta: \\"Β\\",\\n  Gamma: \\"Γ\\",\\n  Delta: \\"Δ\\",\\n  Epsilon: \\"Ε\\",\\n  Zeta: \\"Ζ\\",\\n  Eta: \\"Η\\",\\n  Theta: \\"Θ\\",\\n  Iota: \\"Ι\\",\\n  Kappa: \\"Κ\\",\\n  Lambda: \\"Λ\\",\\n  Mu: \\"Μ\\",\\n  Nu: \\"Ν\\",\\n  Xi: \\"Ξ\\",\\n  Omicron: \\"Ο\\",\\n  Pi: \\"Π\\",\\n  Rho: \\"Ρ\\",\\n  Sigma: \\"Σ\\",\\n  Tau: \\"Τ\\",\\n  Upsilon: \\"Υ\\",\\n  Phi: \\"Φ\\",\\n  Chi: \\"Χ\\",\\n  Psi: \\"Ψ\\",\\n  Omega: \\"Ω\\",\\n  alpha: \\"α\\",\\n  beta: \\"β\\",\\n  gamma: \\"γ\\",\\n  delta: \\"δ\\",\\n  epsilon: \\"ε\\",\\n  zeta: \\"ζ\\",\\n  eta: \\"η\\",\\n  theta: \\"θ\\",\\n  iota: \\"ι\\",\\n  kappa: \\"κ\\",\\n  lambda: \\"λ\\",\\n  mu: \\"μ\\",\\n  nu: \\"ν\\",\\n  xi: \\"ξ\\",\\n  omicron: \\"ο\\",\\n  pi: \\"π\\",\\n  rho: \\"ρ\\",\\n  sigmaf: \\"ς\\",\\n  sigma: \\"σ\\",\\n  tau: \\"τ\\",\\n  upsilon: \\"υ\\",\\n  phi: \\"φ\\",\\n  chi: \\"χ\\",\\n  psi: \\"ψ\\",\\n  omega: \\"ω\\",\\n  thetasym: \\"ϑ\\",\\n  upsih: \\"ϒ\\",\\n  piv: \\"ϖ\\",\\n  ensp: \\"\u2002\\",\\n  emsp: \\"\u2003\\",\\n  thinsp: \\"\u2009\\",\\n  zwnj: \\"\u200c\\",\\n  zwj: \\"\u200d\\",\\n  lrm: \\"\u200e\\",\\n  rlm: \\"\u200f\\",\\n  ndash: \\"–\\",\\n  mdash: \\"—\\",\\n  lsquo: \\"‘\\",\\n  rsquo: \\"’\\",\\n  sbquo: \\"‚\\",\\n  ldquo: \\"“\\",\\n  rdquo: \\"”\\",\\n  bdquo: \\"„\\",\\n  dagger: \\"†\\",\\n  Dagger: \\"‡\\",\\n  bull: \\"•\\",\\n  hellip: \\"…\\",\\n  permil: \\"‰\\",\\n  prime: \\"′\\",\\n  Prime: \\"″\\",\\n  lsaquo: \\"‹\\",\\n  rsaquo: \\"›\\",\\n  oline: \\"‾\\",\\n  frasl: \\"⁄\\",\\n  euro: \\"€\\",\\n  image: \\"ℑ\\",\\n  weierp: \\"℘\\",\\n  real: \\"ℜ\\",\\n  trade: \\"™\\",\\n  alefsym: \\"ℵ\\",\\n  larr: \\"←\\",\\n  uarr: \\"↑\\",\\n  rarr: \\"→\\",\\n  darr: \\"↓\\",\\n  harr: \\"↔\\",\\n  crarr: \\"↵\\",\\n  lArr: \\"⇐\\",\\n  uArr: \\"⇑\\",\\n  rArr: \\"⇒\\",\\n  dArr: \\"⇓\\",\\n  hArr: \\"⇔\\",\\n  forall: \\"∀\\",\\n  part: \\"∂\\",\\n  exist: \\"∃\\",\\n  empty: \\"∅\\",\\n  nabla: \\"∇\\",\\n  isin: \\"∈\\",\\n  notin: \\"∉\\",\\n  ni: \\"∋\\",\\n  prod: \\"∏\\",\\n  sum: \\"∑\\",\\n  minus: \\"−\\",\\n  lowast: \\"∗\\",\\n  radic: \\"√\\",\\n  prop: \\"∝\\",\\n  infin: \\"∞\\",\\n  ang: \\"∠\\",\\n  and: \\"∧\\",\\n  or: \\"∨\\",\\n  cap: \\"∩\\",\\n  cup: \\"∪\\",\\n  \\"int\\": \\"∫\\",\\n  there4: \\"∴\\",\\n  sim: \\"∼\\",\\n  cong: \\"≅\\",\\n  asymp: \\"≈\\",\\n  ne: \\"≠\\",\\n  equiv: \\"≡\\",\\n  le: \\"≤\\",\\n  ge: \\"≥\\",\\n  sub: \\"⊂\\",\\n  sup: \\"⊃\\",\\n  nsub: \\"⊄\\",\\n  sube: \\"⊆\\",\\n  supe: \\"⊇\\",\\n  oplus: \\"⊕\\",\\n  otimes: \\"⊗\\",\\n  perp: \\"⊥\\",\\n  sdot: \\"⋅\\",\\n  lceil: \\"⌈\\",\\n  rceil: \\"⌉\\",\\n  lfloor: \\"⌊\\",\\n  rfloor: \\"⌋\\",\\n  lang: \\"〈\\",\\n  rang: \\"〉\\",\\n  loz: \\"◊\\",\\n  spades: \\"♠\\",\\n  clubs: \\"♣\\",\\n  hearts: \\"♥\\",\\n  diams: \\"♦\\"\\n};\\nmodule.exports = exports[\\"default\\"];\\n},{}],23:[function(require,module,exports){\\n/* @flow */\\n\\n// The algorithm used to determine whether a regexp can appear at a\\n// given point in the program is loosely based on sweet.js\' approach.\\n// See https://github.com/mozilla/sweet.js/wiki/design\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar TokContext = function TokContext(token /*: string*/, isExpr /*:: ?: boolean*/, preserveSpace /*:: ?: boolean*/, override /*:: ?: Function*/) {\\n  _classCallCheck(this, TokContext);\\n\\n  this.token = token;\\n  this.isExpr = !!isExpr;\\n  this.preserveSpace = !!preserveSpace;\\n  this.override = override;\\n};\\n\\nexports.TokContext = TokContext;\\nvar types /*: {\\n            [key: string]: TokContext;\\n          }*/ = {\\n  b_stat: new TokContext(\\"{\\", false),\\n  b_expr: new TokContext(\\"{\\", true),\\n  b_tmpl: new TokContext(\\"${\\", true),\\n  p_stat: new TokContext(\\"(\\", false),\\n  p_expr: new TokContext(\\"(\\", true),\\n  q_tmpl: new TokContext(\\"`\\", true, true, function (p) {\\n    return p.readTmplToken();\\n  }),\\n  f_expr: new TokContext(\\"function\\", true)\\n};\\n\\nexports.types = types;\\n// Token-specific context update code\\n\\n_types.types.parenR.updateContext = _types.types.braceR.updateContext = function () {\\n  if (this.state.context.length === 1) {\\n    this.state.exprAllowed = true;\\n    return;\\n  }\\n\\n  var out = this.state.context.pop();\\n  if (out === types.b_stat && this.curContext() === types.f_expr) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = false;\\n  } else if (out === types.b_tmpl) {\\n    this.state.exprAllowed = true;\\n  } else {\\n    this.state.exprAllowed = !out.isExpr;\\n  }\\n};\\n\\n_types.types.name.updateContext = function (prevType) {\\n  this.state.exprAllowed = false;\\n\\n  if (prevType === _types.types._let || prevType === _types.types._const || prevType === _types.types._var) {\\n    if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.end))) {\\n      this.state.exprAllowed = true;\\n    }\\n  }\\n};\\n\\n_types.types.braceL.updateContext = function (prevType) {\\n  this.state.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.dollarBraceL.updateContext = function () {\\n  this.state.context.push(types.b_tmpl);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.parenL.updateContext = function (prevType) {\\n  var statementParens = prevType === _types.types._if || prevType === _types.types._for || prevType === _types.types._with || prevType === _types.types._while;\\n  this.state.context.push(statementParens ? types.p_stat : types.p_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.incDec.updateContext = function () {\\n  // tokExprAllowed stays unchanged\\n};\\n\\n_types.types._function.updateContext = function () {\\n  if (this.curContext() !== types.b_stat) {\\n    this.state.context.push(types.f_expr);\\n  }\\n\\n  this.state.exprAllowed = false;\\n};\\n\\n_types.types.backQuote.updateContext = function () {\\n  if (this.curContext() === types.q_tmpl) {\\n    this.state.context.pop();\\n  } else {\\n    this.state.context.push(types.q_tmpl);\\n  }\\n  this.state.exprAllowed = false;\\n};\\n},{\\"../util/whitespace\\":29,\\"./types\\":26,\\"babel-runtime/helpers/class-call-check\\":33}],24:[function(require,module,exports){\\n/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar _state = require(\\"./state\\");\\n\\nvar _state2 = _interopRequireDefault(_state);\\n\\n// Object type used to represent tokens. Note that normally, tokens\\n// simply exist as properties on the parser object. This is only\\n// used for the onToken callback and the external tokenizer.\\n\\n/*:: import type { TokenType } from \\"./types\\";*/\\nvar Token = function Token(state) {\\n  _classCallCheck(this, Token);\\n\\n  this.type = state.type;\\n  this.value = state.value;\\n  this.start = state.start;\\n  this.end = state.end;\\n  this.loc = new _utilLocation.SourceLocation(state.startLoc, state.endLoc);\\n}\\n\\n// ## Tokenizer\\n\\n;\\n\\nexports.Token = Token;\\nfunction codePointToString(code) {\\n  // UTF-16 Decoding\\n  if (code <= 0xFFFF) {\\n    return String.fromCharCode(code);\\n  } else {\\n    return String.fromCharCode((code - 0x10000 >> 10) + 0xD800, (code - 0x10000 & 1023) + 0xDC00);\\n  }\\n}\\n\\nvar Tokenizer = (function () {\\n  function Tokenizer(options, input) {\\n    _classCallCheck(this, Tokenizer);\\n\\n    this.state = new _state2[\\"default\\"]();\\n    this.state.init(options, input);\\n  }\\n\\n  // Move to the next token\\n\\n  Tokenizer.prototype.next = function next() {\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(new Token(this.state));\\n    }\\n\\n    this.state.lastTokEnd = this.state.end;\\n    this.state.lastTokStart = this.state.start;\\n    this.state.lastTokEndLoc = this.state.endLoc;\\n    this.state.lastTokStartLoc = this.state.startLoc;\\n    this.nextToken();\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.eat = function eat(type) {\\n    if (this.match(type)) {\\n      this.next();\\n      return true;\\n    } else {\\n      return false;\\n    }\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.match = function match(type) {\\n    return this.state.type === type;\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.isKeyword = function isKeyword(word) {\\n    return _utilIdentifier.isKeyword(word);\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.lookahead = function lookahead() {\\n    var old = this.state;\\n    this.state = old.clone(true);\\n\\n    this.isLookahead = true;\\n    this.next();\\n    this.isLookahead = false;\\n\\n    var curr = this.state.clone(true);\\n    this.state = old;\\n    return curr;\\n  };\\n\\n  // Toggle strict mode. Re-reads the next number or string to please\\n  // pedantic tests (`\\"use strict\\"; 010;` should fail).\\n\\n  Tokenizer.prototype.setStrict = function setStrict(strict) {\\n    this.state.strict = strict;\\n    if (!this.match(_types.types.num) && !this.match(_types.types.string)) return;\\n    this.state.pos = this.state.start;\\n    while (this.state.pos < this.state.lineStart) {\\n      this.state.lineStart = this.input.lastIndexOf(\\"\\\\n\\", this.state.lineStart - 2) + 1;\\n      --this.state.curLine;\\n    }\\n    this.nextToken();\\n  };\\n\\n  Tokenizer.prototype.curContext = function curContext() {\\n    return this.state.context[this.state.context.length - 1];\\n  };\\n\\n  // Read a single token, updating the parser object\'s token-related\\n  // properties.\\n\\n  Tokenizer.prototype.nextToken = function nextToken() {\\n    var curContext = this.curContext();\\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\\n\\n    this.state.containsOctal = false;\\n    this.state.octalPosition = null;\\n    this.state.start = this.state.pos;\\n    this.state.startLoc = this.state.curPosition();\\n    if (this.state.pos >= this.input.length) return this.finishToken(_types.types.eof);\\n\\n    if (curContext.override) {\\n      return curContext.override(this);\\n    } else {\\n      return this.readToken(this.fullCharCodeAtPos());\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken = function readToken(code) {\\n    // Identifier or keyword. \'\\\\uXXXX\' sequences are allowed in\\n    // identifiers, so \'\\\\\' also dispatches to that.\\n    if (_utilIdentifier.isIdentifierStart(code) || code === 92 /* \'\\\\\' */) {\\n        return this.readWord();\\n      } else {\\n      return this.getTokenFromCode(code);\\n    }\\n  };\\n\\n  Tokenizer.prototype.fullCharCodeAtPos = function fullCharCodeAtPos() {\\n    var code = this.input.charCodeAt(this.state.pos);\\n    if (code <= 0xd7ff || code >= 0xe000) return code;\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    return (code << 10) + next - 0x35fdc00;\\n  };\\n\\n  Tokenizer.prototype.pushComment = function pushComment(block, text, start, end, startLoc, endLoc) {\\n    var comment = {\\n      type: block ? \\"CommentBlock\\" : \\"CommentLine\\",\\n      value: text,\\n      start: start,\\n      end: end,\\n      loc: new _utilLocation.SourceLocation(startLoc, endLoc)\\n    };\\n\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(comment);\\n      this.state.comments.push(comment);\\n    }\\n\\n    this.addComment(comment);\\n  };\\n\\n  Tokenizer.prototype.skipBlockComment = function skipBlockComment() {\\n    var startLoc = this.state.curPosition();\\n    var start = this.state.pos,\\n        end = this.input.indexOf(\\"*/\\", this.state.pos += 2);\\n    if (end === -1) this.raise(this.state.pos - 2, \\"Unterminated comment\\");\\n\\n    this.state.pos = end + 2;\\n    _utilWhitespace.lineBreakG.lastIndex = start;\\n    var match = undefined;\\n    while ((match = _utilWhitespace.lineBreakG.exec(this.input)) && match.index < this.state.pos) {\\n      ++this.state.curLine;\\n      this.state.lineStart = match.index + match[0].length;\\n    }\\n\\n    this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  Tokenizer.prototype.skipLineComment = function skipLineComment(startSkip) {\\n    var start = this.state.pos;\\n    var startLoc = this.state.curPosition();\\n    var ch = this.input.charCodeAt(this.state.pos += startSkip);\\n    while (this.state.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {\\n      ++this.state.pos;\\n      ch = this.input.charCodeAt(this.state.pos);\\n    }\\n\\n    this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  // Called at the start of the parse and after every token. Skips\\n  // whitespace and comments, and.\\n\\n  Tokenizer.prototype.skipSpace = function skipSpace() {\\n    loop: while (this.state.pos < this.input.length) {\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      switch (ch) {\\n        case 32:case 160:\\n          // \' \'\\n          ++this.state.pos;\\n          break;\\n\\n        case 13:\\n          if (this.input.charCodeAt(this.state.pos + 1) === 10) {\\n            ++this.state.pos;\\n          }\\n\\n        case 10:case 8232:case 8233:\\n          ++this.state.pos;\\n          ++this.state.curLine;\\n          this.state.lineStart = this.state.pos;\\n          break;\\n\\n        case 47:\\n          // \'/\'\\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\\n            case 42:\\n              // \'*\'\\n              this.skipBlockComment();\\n              break;\\n\\n            case 47:\\n              this.skipLineComment(2);\\n              break;\\n\\n            default:\\n              break loop;\\n          }\\n          break;\\n\\n        default:\\n          if (ch > 8 && ch < 14 || ch >= 5760 && _utilWhitespace.nonASCIIwhitespace.test(String.fromCharCode(ch))) {\\n            ++this.state.pos;\\n          } else {\\n            break loop;\\n          }\\n      }\\n    }\\n  };\\n\\n  // Called at the end of every token. Sets `end`, `val`, and\\n  // maintains `context` and `exprAllowed`, and skips the space after\\n  // the token, so that the next one\'s `start` will point at the\\n  // right position.\\n\\n  Tokenizer.prototype.finishToken = function finishToken(type, val) {\\n    this.state.end = this.state.pos;\\n    this.state.endLoc = this.state.curPosition();\\n    var prevType = this.state.type;\\n    this.state.type = type;\\n    this.state.value = val;\\n\\n    this.updateContext(prevType);\\n  };\\n\\n  // ### Token reading\\n\\n  // This is the function that is called to fetch the next token. It\\n  // is somewhat obscure, because it works in character codes rather\\n  // than characters, and because operator parsing has been inlined\\n  // into it.\\n  //\\n  // All in the name of speed.\\n  //\\n\\n  Tokenizer.prototype.readToken_dot = function readToken_dot() {\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next >= 48 && next <= 57) {\\n      return this.readNumber(true);\\n    }\\n\\n    var next2 = this.input.charCodeAt(this.state.pos + 2);\\n    if (next === 46 && next2 === 46) {\\n      // 46 = dot \'.\'\\n      this.state.pos += 3;\\n      return this.finishToken(_types.types.ellipsis);\\n    } else {\\n      ++this.state.pos;\\n      return this.finishToken(_types.types.dot);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_slash = function readToken_slash() {\\n    // \'/\'\\n    if (this.state.exprAllowed) {\\n      ++this.state.pos;\\n      return this.readRegexp();\\n    }\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.slash, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_mult_modulo = function readToken_mult_modulo(code) {\\n    // \'%*\'\\n    var type = code === 42 ? _types.types.star : _types.types.modulo;\\n    var width = 1;\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === 42 && this.hasPlugin(\\"exponentiationOperator\\")) {\\n      // \'*\'\\n      width++;\\n      next = this.input.charCodeAt(this.state.pos + 2);\\n      type = _types.types.exponent;\\n    }\\n\\n    if (next === 61) {\\n      width++;\\n      type = _types.types.assign;\\n    }\\n\\n    return this.finishOp(type, width);\\n  };\\n\\n  Tokenizer.prototype.readToken_pipe_amp = function readToken_pipe_amp(code) {\\n    // \'|&\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === code) return this.finishOp(code === 124 ? _types.types.logicalOR : _types.types.logicalAND, 2);\\n    if (next === 61) return this.finishOp(_types.types.assign, 2);\\n    return this.finishOp(code === 124 ? _types.types.bitwiseOR : _types.types.bitwiseAND, 1);\\n  };\\n\\n  Tokenizer.prototype.readToken_caret = function readToken_caret() {\\n    // \'^\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.bitwiseXOR, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_plus_min = function readToken_plus_min(code) {\\n    // \'+-\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === code) {\\n      if (next === 45 && this.input.charCodeAt(this.state.pos + 2) === 62 && _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.pos))) {\\n        // A `-->` line comment\\n        this.skipLineComment(3);\\n        this.skipSpace();\\n        return this.nextToken();\\n      }\\n      return this.finishOp(_types.types.incDec, 2);\\n    }\\n\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.plusMin, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_lt_gt = function readToken_lt_gt(code) {\\n    // \'<>\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    var size = 1;\\n\\n    if (next === code) {\\n      size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2;\\n      if (this.input.charCodeAt(this.state.pos + size) === 61) return this.finishOp(_types.types.assign, size + 1);\\n      return this.finishOp(_types.types.bitShift, size);\\n    }\\n\\n    if (next === 33 && code === 60 && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) {\\n      if (this.inModule) this.unexpected();\\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\\n      this.skipLineComment(4);\\n      this.skipSpace();\\n      return this.nextToken();\\n    }\\n\\n    if (next === 61) {\\n      size = this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2;\\n    }\\n\\n    return this.finishOp(_types.types.relational, size);\\n  };\\n\\n  Tokenizer.prototype.readToken_eq_excl = function readToken_eq_excl(code) {\\n    // \'=!\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) return this.finishOp(_types.types.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);\\n    if (code === 61 && next === 62) {\\n      // \'=>\'\\n      this.state.pos += 2;\\n      return this.finishToken(_types.types.arrow);\\n    }\\n    return this.finishOp(code === 61 ? _types.types.eq : _types.types.prefix, 1);\\n  };\\n\\n  Tokenizer.prototype.getTokenFromCode = function getTokenFromCode(code) {\\n    switch (code) {\\n      // The interpretation of a dot depends on whether it is followed\\n      // by a digit or another two dots.\\n      case 46:\\n        // \'.\'\\n        return this.readToken_dot();\\n\\n      // Punctuation tokens.\\n      case 40:\\n        ++this.state.pos;return this.finishToken(_types.types.parenL);\\n      case 41:\\n        ++this.state.pos;return this.finishToken(_types.types.parenR);\\n      case 59:\\n        ++this.state.pos;return this.finishToken(_types.types.semi);\\n      case 44:\\n        ++this.state.pos;return this.finishToken(_types.types.comma);\\n      case 91:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketL);\\n      case 93:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketR);\\n      case 123:\\n        ++this.state.pos;return this.finishToken(_types.types.braceL);\\n      case 125:\\n        ++this.state.pos;return this.finishToken(_types.types.braceR);\\n\\n      case 58:\\n        if (this.hasPlugin(\\"functionBind\\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\\n          return this.finishOp(_types.types.doubleColon, 2);\\n        } else {\\n          ++this.state.pos;\\n          return this.finishToken(_types.types.colon);\\n        }\\n\\n      case 63:\\n        ++this.state.pos;return this.finishToken(_types.types.question);\\n      case 64:\\n        ++this.state.pos;return this.finishToken(_types.types.at);\\n\\n      case 96:\\n        // \'`\'\\n        ++this.state.pos;\\n        return this.finishToken(_types.types.backQuote);\\n\\n      case 48:\\n        // \'0\'\\n        var next = this.input.charCodeAt(this.state.pos + 1);\\n        if (next === 120 || next === 88) return this.readRadixNumber(16); // \'0x\', \'0X\' - hex number\\n        if (next === 111 || next === 79) return this.readRadixNumber(8); // \'0o\', \'0O\' - octal number\\n        if (next === 98 || next === 66) return this.readRadixNumber(2); // \'0b\', \'0B\' - binary number\\n      // Anything else beginning with a digit is an integer, octal\\n      // number, or float.\\n      case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:\\n        // 1-9\\n        return this.readNumber(false);\\n\\n      // Quotes produce strings.\\n      case 34:case 39:\\n        // \'\\"\', \\"\'\\"\\n        return this.readString(code);\\n\\n      // Operators are parsed inline in tiny state machines. \'=\' (61) is\\n      // often referred to. `finishOp` simply skips the amount of\\n      // characters it is given as second argument, and returns a token\\n      // of the type given by its first argument.\\n\\n      case 47:\\n        // \'/\'\\n        return this.readToken_slash();\\n\\n      case 37:case 42:\\n        // \'%*\'\\n        return this.readToken_mult_modulo(code);\\n\\n      case 124:case 38:\\n        // \'|&\'\\n        return this.readToken_pipe_amp(code);\\n\\n      case 94:\\n        // \'^\'\\n        return this.readToken_caret();\\n\\n      case 43:case 45:\\n        // \'+-\'\\n        return this.readToken_plus_min(code);\\n\\n      case 60:case 62:\\n        // \'<>\'\\n        return this.readToken_lt_gt(code);\\n\\n      case 61:case 33:\\n        // \'=!\'\\n        return this.readToken_eq_excl(code);\\n\\n      case 126:\\n        // \'~\'\\n        return this.finishOp(_types.types.prefix, 1);\\n    }\\n\\n    this.raise(this.state.pos, \\"Unexpected character \'\\" + codePointToString(code) + \\"\'\\");\\n  };\\n\\n  Tokenizer.prototype.finishOp = function finishOp(type, size) {\\n    var str = this.input.slice(this.state.pos, this.state.pos + size);\\n    this.state.pos += size;\\n    return this.finishToken(type, str);\\n  };\\n\\n  Tokenizer.prototype.readRegexp = function readRegexp() {\\n    var escaped = undefined,\\n        inClass = undefined,\\n        start = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(start, \\"Unterminated regular expression\\");\\n      var ch = this.input.charAt(this.state.pos);\\n      if (_utilWhitespace.lineBreak.test(ch)) {\\n        this.raise(start, \\"Unterminated regular expression\\");\\n      }\\n      if (escaped) {\\n        escaped = false;\\n      } else {\\n        if (ch === \\"[\\") {\\n          inClass = true;\\n        } else if (ch === \\"]\\" && inClass) {\\n          inClass = false;\\n        } else if (ch === \\"/\\" && !inClass) {\\n          break;\\n        }\\n        escaped = ch === \\"\\\\\\\\\\";\\n      }\\n      ++this.state.pos;\\n    }\\n    var content = this.input.slice(start, this.state.pos);\\n    ++this.state.pos;\\n    // Need to use `readWord1` because \'\\\\uXXXX\' sequences are allowed\\n    // here (don\'t ask).\\n    var mods = this.readWord1();\\n    if (mods) {\\n      var validFlags = /^[gmsiyu]*$/;\\n      if (!validFlags.test(mods)) this.raise(start, \\"Invalid regular expression flag\\");\\n    }\\n    return this.finishToken(_types.types.regexp, {\\n      pattern: content,\\n      flags: mods\\n    });\\n  };\\n\\n  // Read an integer in the given radix. Return null if zero digits\\n  // were read, the integer value otherwise. When `len` is given, this\\n  // will return `null` unless the integer has exactly `len` digits.\\n\\n  Tokenizer.prototype.readInt = function readInt(radix, len) {\\n    var start = this.state.pos,\\n        total = 0;\\n    for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {\\n      var code = this.input.charCodeAt(this.state.pos),\\n          val = undefined;\\n      if (code >= 97) {\\n        val = code - 97 + 10; // a\\n      } else if (code >= 65) {\\n          val = code - 65 + 10; // A\\n        } else if (code >= 48 && code <= 57) {\\n            val = code - 48; // 0-9\\n          } else {\\n              val = Infinity;\\n            }\\n      if (val >= radix) break;\\n      ++this.state.pos;\\n      total = total * radix + val;\\n    }\\n    if (this.state.pos === start || len != null && this.state.pos - start !== len) return null;\\n\\n    return total;\\n  };\\n\\n  Tokenizer.prototype.readRadixNumber = function readRadixNumber(radix) {\\n    this.state.pos += 2; // 0x\\n    var val = this.readInt(radix);\\n    if (val == null) this.raise(this.state.start + 2, \\"Expected number in radix \\" + radix);\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read an integer, octal integer, or floating-point number.\\n\\n  Tokenizer.prototype.readNumber = function readNumber(startsWithDot) {\\n    var start = this.state.pos,\\n        isFloat = false,\\n        octal = this.input.charCodeAt(this.state.pos) === 48;\\n    if (!startsWithDot && this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n    var next = this.input.charCodeAt(this.state.pos);\\n    if (next === 46) {\\n      // \'.\'\\n      ++this.state.pos;\\n      this.readInt(10);\\n      isFloat = true;\\n      next = this.input.charCodeAt(this.state.pos);\\n    }\\n    if (next === 69 || next === 101) {\\n      // \'eE\'\\n      next = this.input.charCodeAt(++this.state.pos);\\n      if (next === 43 || next === 45) ++this.state.pos; // \'+-\'\\n      if (this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n      isFloat = true;\\n    }\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n\\n    var str = this.input.slice(start, this.state.pos),\\n        val = undefined;\\n    if (isFloat) {\\n      val = parseFloat(str);\\n    } else if (!octal || str.length === 1) {\\n      val = parseInt(str, 10);\\n    } else if (/[89]/.test(str) || this.state.strict) {\\n      this.raise(start, \\"Invalid number\\");\\n    } else {\\n      val = parseInt(str, 8);\\n    }\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read a string value, interpreting backslash-escapes.\\n\\n  Tokenizer.prototype.readCodePoint = function readCodePoint() {\\n    var ch = this.input.charCodeAt(this.state.pos),\\n        code = undefined;\\n\\n    if (ch === 123) {\\n      var codePos = ++this.state.pos;\\n      code = this.readHexChar(this.input.indexOf(\\"}\\", this.state.pos) - this.state.pos);\\n      ++this.state.pos;\\n      if (code > 0x10FFFF) this.raise(codePos, \\"Code point out of bounds\\");\\n    } else {\\n      code = this.readHexChar(4);\\n    }\\n    return code;\\n  };\\n\\n  Tokenizer.prototype.readString = function readString(quote) {\\n    var out = \\"\\",\\n        chunkStart = ++this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated string constant\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === quote) break;\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(false);\\n        chunkStart = this.state.pos;\\n      } else {\\n        if (_utilWhitespace.isNewLine(ch)) this.raise(this.state.start, \\"Unterminated string constant\\");\\n        ++this.state.pos;\\n      }\\n    }\\n    out += this.input.slice(chunkStart, this.state.pos++);\\n    return this.finishToken(_types.types.string, out);\\n  };\\n\\n  // Reads template string tokens.\\n\\n  Tokenizer.prototype.readTmplToken = function readTmplToken() {\\n    var out = \\"\\",\\n        chunkStart = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated template\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) {\\n        // \'`\', \'${\'\\n        if (this.state.pos === this.state.start && this.match(_types.types.template)) {\\n          if (ch === 36) {\\n            this.state.pos += 2;\\n            return this.finishToken(_types.types.dollarBraceL);\\n          } else {\\n            ++this.state.pos;\\n            return this.finishToken(_types.types.backQuote);\\n          }\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_types.types.template, out);\\n      }\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(true);\\n        chunkStart = this.state.pos;\\n      } else if (_utilWhitespace.isNewLine(ch)) {\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        ++this.state.pos;\\n        switch (ch) {\\n          case 13:\\n            if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos;\\n          case 10:\\n            out += \\"\\\\n\\";\\n            break;\\n          default:\\n            out += String.fromCharCode(ch);\\n            break;\\n        }\\n        ++this.state.curLine;\\n        this.state.lineStart = this.state.pos;\\n        chunkStart = this.state.pos;\\n      } else {\\n        ++this.state.pos;\\n      }\\n    }\\n  };\\n\\n  // Used to read escaped characters\\n\\n  Tokenizer.prototype.readEscapedChar = function readEscapedChar(inTemplate) {\\n    var ch = this.input.charCodeAt(++this.state.pos);\\n    ++this.state.pos;\\n    switch (ch) {\\n      case 110:\\n        return \\"\\\\n\\"; // \'n\' -> \'\\\\n\'\\n      case 114:\\n        return \\"\\\\r\\"; // \'r\' -> \'\\\\r\'\\n      case 120:\\n        return String.fromCharCode(this.readHexChar(2)); // \'x\'\\n      case 117:\\n        return codePointToString(this.readCodePoint()); // \'u\'\\n      case 116:\\n        return \\"\\\\t\\"; // \'t\' -> \'\\\\t\'\\n      case 98:\\n        return \\"\\\\b\\"; // \'b\' -> \'\\\\b\'\\n      case 118:\\n        return \\"\\\\u000b\\"; // \'v\' -> \'\\\\u000b\'\\n      case 102:\\n        return \\"\\\\f\\"; // \'f\' -> \'\\\\f\'\\n      case 13:\\n        if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos; // \'\\\\r\\\\n\'\\n      case 10:\\n        // \' \\\\n\'\\n        this.state.lineStart = this.state.pos;\\n        ++this.state.curLine;\\n        return \\"\\";\\n      default:\\n        if (ch >= 48 && ch <= 55) {\\n          var octalStr = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/)[0];\\n          var octal = parseInt(octalStr, 8);\\n          if (octal > 255) {\\n            octalStr = octalStr.slice(0, -1);\\n            octal = parseInt(octalStr, 8);\\n          }\\n          if (octal > 0) {\\n            if (!this.state.containsOctal) {\\n              this.state.containsOctal = true;\\n              this.state.octalPosition = this.state.pos - 2;\\n            }\\n            if (this.state.strict || inTemplate) {\\n              this.raise(this.state.pos - 2, \\"Octal literal in strict mode\\");\\n            }\\n          }\\n          this.state.pos += octalStr.length - 1;\\n          return String.fromCharCode(octal);\\n        }\\n        return String.fromCharCode(ch);\\n    }\\n  };\\n\\n  // Used to read character escape sequences (\'\\\\x\', \'\\\\u\', \'\\\\U\').\\n\\n  Tokenizer.prototype.readHexChar = function readHexChar(len) {\\n    var codePos = this.state.pos;\\n    var n = this.readInt(16, len);\\n    if (n === null) this.raise(codePos, \\"Bad character escape sequence\\");\\n    return n;\\n  };\\n\\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\\n  // to whether the word contained a \'\\\\u\' escape.\\n  //\\n  // Incrementally adds only escaped chars, adding other chunks as-is\\n  // as a micro-optimization.\\n\\n  Tokenizer.prototype.readWord1 = function readWord1() {\\n    this.state.containsEsc = false;\\n    var word = \\"\\",\\n        first = true,\\n        chunkStart = this.state.pos;\\n    while (this.state.pos < this.input.length) {\\n      var ch = this.fullCharCodeAtPos();\\n      if (_utilIdentifier.isIdentifierChar(ch)) {\\n        this.state.pos += ch <= 0xffff ? 1 : 2;\\n      } else if (ch === 92) {\\n        // \\"\\\\\\"\\n        this.state.containsEsc = true;\\n\\n        word += this.input.slice(chunkStart, this.state.pos);\\n        var escStart = this.state.pos;\\n\\n        if (this.input.charCodeAt(++this.state.pos) !== 117) {\\n          // \\"u\\"\\n          this.raise(this.state.pos, \\"Expecting Unicode escape sequence \\\\\\\\uXXXX\\");\\n        }\\n\\n        ++this.state.pos;\\n        var esc = this.readCodePoint();\\n        if (!(first ? _utilIdentifier.isIdentifierStart : _utilIdentifier.isIdentifierChar)(esc, true)) {\\n          this.raise(escStart, \\"Invalid Unicode escape\\");\\n        }\\n\\n        word += codePointToString(esc);\\n        chunkStart = this.state.pos;\\n      } else {\\n        break;\\n      }\\n      first = false;\\n    }\\n    return word + this.input.slice(chunkStart, this.state.pos);\\n  };\\n\\n  // Read an identifier or keyword token. Will check for reserved\\n  // words when necessary.\\n\\n  Tokenizer.prototype.readWord = function readWord() {\\n    var word = this.readWord1();\\n    var type = _types.types.name;\\n    if (!this.state.containsEsc && this.isKeyword(word)) {\\n      type = _types.keywords[word];\\n    }\\n    return this.finishToken(type, word);\\n  };\\n\\n  Tokenizer.prototype.braceIsBlock = function braceIsBlock(prevType) {\\n    if (prevType === _types.types.colon) {\\n      var _parent = this.curContext();\\n      if (_parent === _context.types.b_stat || _parent === _context.types.b_expr) {\\n        return !_parent.isExpr;\\n      }\\n    }\\n\\n    if (prevType === _types.types._return) {\\n      return _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n    }\\n\\n    if (prevType === _types.types._else || prevType === _types.types.semi || prevType === _types.types.eof || prevType === _types.types.parenR) {\\n      return true;\\n    }\\n\\n    if (prevType === _types.types.braceL) {\\n      return this.curContext() === _context.types.b_stat;\\n    }\\n\\n    return !this.state.exprAllowed;\\n  };\\n\\n  Tokenizer.prototype.updateContext = function updateContext(prevType) {\\n    var update = undefined,\\n        type = this.state.type;\\n    if (type.keyword && prevType === _types.types.dot) {\\n      this.state.exprAllowed = false;\\n    } else if (update = type.updateContext) {\\n      update.call(this, prevType);\\n    } else {\\n      this.state.exprAllowed = type.beforeExpr;\\n    }\\n  };\\n\\n  return Tokenizer;\\n})();\\n\\nexports[\\"default\\"] = Tokenizer;\\n},{\\"../util/identifier\\":27,\\"../util/location\\":28,\\"../util/whitespace\\":29,\\"./context\\":23,\\"./state\\":25,\\"./types\\":26,\\"babel-runtime/helpers/class-call-check\\":33,\\"babel-runtime/helpers/interop-require-default\\":35}],25:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _types = require(\\"./types\\");\\n\\n/*:: import type { TokContext } from \\"./context\\";*/\\n/*:: import type { Token } from \\"./index\\";*/\\nvar State = (function () {\\n  function State() {\\n    _classCallCheck(this, State);\\n  }\\n\\n  State.prototype.init = function init(options /*: Object*/, input /*: string*/) {\\n    this.strict = options.strictMode === false ? false : options.sourceType === \\"module\\";\\n\\n    this.input = input;\\n\\n    this.potentialArrowAt = -1;\\n\\n    this.inMethod = this.inFunction = this.inGenerator = this.inAsync = false;\\n\\n    this.labels = [];\\n\\n    this.decorators = [];\\n\\n    this.tokens = [];\\n\\n    this.comments = [];\\n\\n    this.trailingComments = [];\\n    this.leadingComments = [];\\n    this.commentStack = [];\\n\\n    this.pos = this.lineStart = 0;\\n    this.curLine = 1;\\n\\n    this.type = _types.types.eof;\\n    this.value = null;\\n    this.start = this.end = this.pos;\\n    this.startLoc = this.endLoc = this.curPosition();\\n\\n    this.lastTokEndLoc = this.lastTokStartLoc = null;\\n    this.lastTokStart = this.lastTokEnd = this.pos;\\n\\n    this.context = [_context.types.b_stat];\\n    this.exprAllowed = true;\\n\\n    this.containsEsc = this.containsOctal = false;\\n    this.octalPosition = null;\\n\\n    return this;\\n  };\\n\\n  // TODO\\n\\n  State.prototype.curPosition = function curPosition() {\\n    return new _utilLocation.Position(this.curLine, this.pos - this.lineStart);\\n  };\\n\\n  State.prototype.clone = function clone(skipArrays /*:: ?*/) {\\n    var state = new State();\\n    for (var key in this) {\\n      var val = this[key];\\n\\n      if ((!skipArrays || key === \\"context\\") && Array.isArray(val)) {\\n        val = val.slice();\\n      }\\n\\n      state[key] = val;\\n    }\\n    return state;\\n  };\\n\\n  return State;\\n})();\\n\\nexports[\\"default\\"] = State;\\nmodule.exports = exports[\\"default\\"];\\n\\n// TODO\\n\\n// Used to signify the start of a potential arrow function\\n\\n// Flags to track whether we are in a function, a generator.\\n\\n// Labels in scope.\\n\\n// Leading decorators.\\n\\n// Token store.\\n\\n// Comment store.\\n\\n// Comment attachment store\\n\\n// The current position of the tokenizer in the input.\\n\\n// Properties of the current token:\\n// Its type\\n\\n// For tokens that include more information than their type, the value\\n\\n// Its start and end offset\\n\\n// And, if locations are used, the {line, column} object\\n// corresponding to those offsets\\n\\n// Position information for the previous token\\n\\n// The context stack is used to superficially track syntactic\\n// context to predict whether a regular expression is allowed in a\\n// given position.\\n\\n// Used to signal to callers of `readWord1` whether the word\\n// contained any escape sequences. This is needed because words with\\n// escape sequences must not be interpreted as keywords.\\n\\n// TODO\\n},{\\"../util/location\\":28,\\"./context\\":23,\\"./types\\":26,\\"babel-runtime/helpers/class-call-check\\":33}],26:[function(require,module,exports){\\n// ## Token types\\n\\n// The assignment of fine-grained, information-carrying type objects\\n// allows the tokenizer to store the information it has about a\\n// token in a way that is very cheap for the parser to look up.\\n\\n// All token type variables start with an underscore, to make them\\n// easy to recognize.\\n\\n// The `beforeExpr` property is used to disambiguate between regular\\n// expressions and divisions. It is set on all token types that can\\n// be followed by an expression (thus, a slash after them would be a\\n// regular expression).\\n//\\n// `isLoop` marks a keyword as starting a loop, which is important\\n// to know when parsing a label, in order to allow or disallow\\n// continue jumps to that label.\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar TokenType = function TokenType(label) {\\n  var conf = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  _classCallCheck(this, TokenType);\\n\\n  this.label = label;\\n  this.keyword = conf.keyword;\\n  this.beforeExpr = !!conf.beforeExpr;\\n  this.startsExpr = !!conf.startsExpr;\\n  this.rightAssociative = !!conf.rightAssociative;\\n  this.isLoop = !!conf.isLoop;\\n  this.isAssign = !!conf.isAssign;\\n  this.prefix = !!conf.prefix;\\n  this.postfix = !!conf.postfix;\\n  this.binop = conf.binop || null;\\n  this.updateContext = null;\\n};\\n\\nexports.TokenType = TokenType;\\n\\nfunction binop(name, prec) {\\n  return new TokenType(name, { beforeExpr: true, binop: prec });\\n}\\nvar beforeExpr = { beforeExpr: true },\\n    startsExpr = { startsExpr: true };\\n\\nvar types = {\\n  num: new TokenType(\\"num\\", startsExpr),\\n  regexp: new TokenType(\\"regexp\\", startsExpr),\\n  string: new TokenType(\\"string\\", startsExpr),\\n  name: new TokenType(\\"name\\", startsExpr),\\n  eof: new TokenType(\\"eof\\"),\\n\\n  // Punctuation token types.\\n  bracketL: new TokenType(\\"[\\", { beforeExpr: true, startsExpr: true }),\\n  bracketR: new TokenType(\\"]\\"),\\n  braceL: new TokenType(\\"{\\", { beforeExpr: true, startsExpr: true }),\\n  braceR: new TokenType(\\"}\\"),\\n  parenL: new TokenType(\\"(\\", { beforeExpr: true, startsExpr: true }),\\n  parenR: new TokenType(\\")\\"),\\n  comma: new TokenType(\\",\\", beforeExpr),\\n  semi: new TokenType(\\";\\", beforeExpr),\\n  colon: new TokenType(\\":\\", beforeExpr),\\n  doubleColon: new TokenType(\\"::\\", beforeExpr),\\n  dot: new TokenType(\\".\\"),\\n  question: new TokenType(\\"?\\", beforeExpr),\\n  arrow: new TokenType(\\"=>\\", beforeExpr),\\n  template: new TokenType(\\"template\\"),\\n  ellipsis: new TokenType(\\"...\\", beforeExpr),\\n  backQuote: new TokenType(\\"`\\", startsExpr),\\n  dollarBraceL: new TokenType(\\"${\\", { beforeExpr: true, startsExpr: true }),\\n  at: new TokenType(\\"@\\"),\\n\\n  // Operators. These carry several kinds of properties to help the\\n  // parser use them properly (the presence of these properties is\\n  // what categorizes them as operators).\\n  //\\n  // `binop`, when present, specifies that this operator is a binary\\n  // operator, and will refer to its precedence.\\n  //\\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\\n  // unary operator.\\n  //\\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\\n  // binary operators with a very low precedence, that should result\\n  // in AssignmentExpression nodes.\\n\\n  eq: new TokenType(\\"=\\", { beforeExpr: true, isAssign: true }),\\n  assign: new TokenType(\\"_=\\", { beforeExpr: true, isAssign: true }),\\n  incDec: new TokenType(\\"++/--\\", { prefix: true, postfix: true, startsExpr: true }),\\n  prefix: new TokenType(\\"prefix\\", { beforeExpr: true, prefix: true, startsExpr: true }),\\n  logicalOR: binop(\\"||\\", 1),\\n  logicalAND: binop(\\"&&\\", 2),\\n  bitwiseOR: binop(\\"|\\", 3),\\n  bitwiseXOR: binop(\\"^\\", 4),\\n  bitwiseAND: binop(\\"&\\", 5),\\n  equality: binop(\\"==/!=\\", 6),\\n  relational: binop(\\"</>\\", 7),\\n  bitShift: binop(\\"<</>>\\", 8),\\n  plusMin: new TokenType(\\"+/-\\", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }),\\n  modulo: binop(\\"%\\", 10),\\n  star: binop(\\"*\\", 10),\\n  slash: binop(\\"/\\", 10),\\n  exponent: new TokenType(\\"**\\", { beforeExpr: true, binop: 11, rightAssociative: true })\\n};\\n\\nexports.types = types;\\n// Map keyword names to token types.\\n\\nvar keywords = {};\\n\\nexports.keywords = keywords;\\n// Succinct definitions of keyword token types\\nfunction kw(name) {\\n  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  options.keyword = name;\\n  keywords[name] = types[\\"_\\" + name] = new TokenType(name, options);\\n}\\n\\nkw(\\"break\\");\\nkw(\\"case\\", beforeExpr);\\nkw(\\"catch\\");\\nkw(\\"continue\\");\\nkw(\\"debugger\\");\\nkw(\\"default\\", beforeExpr);\\nkw(\\"do\\", { isLoop: true, beforeExpr: true });\\nkw(\\"else\\", beforeExpr);\\nkw(\\"finally\\");\\nkw(\\"for\\", { isLoop: true });\\nkw(\\"function\\", startsExpr);\\nkw(\\"if\\");\\nkw(\\"return\\", beforeExpr);\\nkw(\\"switch\\");\\nkw(\\"throw\\", beforeExpr);\\nkw(\\"try\\");\\nkw(\\"var\\");\\nkw(\\"let\\");\\nkw(\\"const\\");\\nkw(\\"while\\", { isLoop: true });\\nkw(\\"with\\");\\nkw(\\"new\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"this\\", startsExpr);\\nkw(\\"super\\", startsExpr);\\nkw(\\"class\\");\\nkw(\\"extends\\", beforeExpr);\\nkw(\\"export\\");\\nkw(\\"import\\");\\nkw(\\"yield\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"null\\", startsExpr);\\nkw(\\"true\\", startsExpr);\\nkw(\\"false\\", startsExpr);\\nkw(\\"in\\", { beforeExpr: true, binop: 7 });\\nkw(\\"instanceof\\", { beforeExpr: true, binop: 7 });\\nkw(\\"typeof\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"void\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"delete\\", { beforeExpr: true, prefix: true, startsExpr: true });\\n},{\\"babel-runtime/helpers/class-call-check\\":33}],27:[function(require,module,exports){\\n// This is a trick taken from Esprima. It turns out that, on\\n// non-Chrome browsers, to check whether a string is in a set, a\\n// predicate containing a big ugly `switch` statement is faster than\\n// a regular expression, and on Chrome the two are about on par.\\n// This function uses `eval` (non-lexical) to produce such a\\n// predicate from a space-separated string of words.\\n//\\n// It starts by sorting the words by length.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isIdentifierStart = isIdentifierStart;\\nexports.isIdentifierChar = isIdentifierChar;\\nfunction makePredicate(words) {\\n  words = words.split(\\" \\");\\n  return function (str) {\\n    return words.indexOf(str) >= 0;\\n  };\\n}\\n\\n// Reserved word lists for various dialects of the language\\n\\nvar reservedWords = {\\n  6: makePredicate(\\"enum await\\"),\\n  strict: makePredicate(\\"implements interface let package private protected public static yield\\"),\\n  strictBind: makePredicate(\\"eval arguments\\")\\n};\\n\\nexports.reservedWords = reservedWords;\\n// And the keywords\\n\\nvar isKeyword = makePredicate(\\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super\\");\\n\\nexports.isKeyword = isKeyword;\\n// ## Character categories\\n\\n// Big ugly regular expressions that match characters in the\\n// whitespace, identifier, and identifier-start categories. These\\n// are only applied when a character is found to actually have a\\n// code point above 128.\\n// Generated by `tools/generate-identifier-regex.js`.\\n\\nvar nonASCIIidentifierStartChars = \\"ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ\\";\\nvar nonASCIIidentifierChars = \\"\u200c\u200d·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏ᦰ-ᧀᧈᧉ᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷼-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-꣄꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︭︳︴﹍-﹏０-９＿\\";\\n\\nvar nonASCIIidentifierStart = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + \\"]\\");\\nvar nonASCIIidentifier = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \\"]\\");\\n\\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\\n\\n// These are a run-length and offset encoded representation of the\\n// >0xffff code points that are a valid part of identifiers. The\\n// offset starts at 0x10000, and each pair of numbers represents an\\n// offset to the next range, and then a size of the range. They were\\n// generated by tools/generate-identifier-regex.js\\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 17, 26, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 99, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 98, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 26, 45, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 955, 52, 76, 44, 33, 24, 27, 35, 42, 34, 4, 0, 13, 47, 15, 3, 22, 0, 38, 17, 2, 24, 133, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 32, 4, 287, 47, 21, 1, 2, 0, 185, 46, 82, 47, 21, 0, 60, 42, 502, 63, 32, 0, 449, 56, 1288, 920, 104, 110, 2962, 1070, 13266, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 881, 68, 12, 0, 67, 12, 16481, 1, 3071, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 4149, 196, 1340, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42710, 42, 4148, 12, 221, 16355, 541];\\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 1306, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 52, 0, 13, 2, 49, 13, 16, 9, 83, 11, 168, 11, 6, 9, 8, 2, 57, 0, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 316, 19, 13, 9, 214, 6, 3, 8, 112, 16, 16, 9, 82, 12, 9, 9, 535, 9, 20855, 9, 135, 4, 60, 6, 26, 9, 1016, 45, 17, 3, 19723, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 4305, 6, 792618, 239];\\n\\n// This has a complexity linear to the value of the code. The\\n// assumption is that looking up astral identifier characters is\\n// rare.\\nfunction isInAstralSet(code, set) {\\n  var pos = 0x10000;\\n  for (var i = 0; i < set.length; i += 2) {\\n    pos += set[i];\\n    if (pos > code) return false;\\n\\n    pos += set[i + 1];\\n    if (pos >= code) return true;\\n  }\\n}\\n\\n// Test whether a given character code starts an identifier.\\n\\nfunction isIdentifierStart(code) {\\n  if (code < 65) return code === 36;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes);\\n}\\n\\n// Test whether a given character is part of an identifier.\\n\\nfunction isIdentifierChar(code) {\\n  if (code < 48) return code === 36;\\n  if (code < 58) return true;\\n  if (code < 65) return false;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\\n}\\n},{}],28:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getLineInfo = getLineInfo;\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\n// These are used when `options.locations` is on, for the\\n// `startLoc` and `endLoc` properties.\\n\\nvar Position = function Position(line, col) {\\n  _classCallCheck(this, Position);\\n\\n  this.line = line;\\n  this.column = col;\\n};\\n\\nexports.Position = Position;\\n\\nvar SourceLocation = function SourceLocation(start, end) {\\n  _classCallCheck(this, SourceLocation);\\n\\n  this.start = start;\\n  this.end = end;\\n}\\n\\n// The `getLineInfo` function is mostly useful when the\\n// `locations` option is off (for performance reasons) and you\\n// want to find the line/column position for a given character\\n// offset. `input` should be the code string that the offset refers\\n// into.\\n\\n;\\n\\nexports.SourceLocation = SourceLocation;\\n\\nfunction getLineInfo(input, offset) {\\n  for (var line = 1, cur = 0;;) {\\n    _whitespace.lineBreakG.lastIndex = cur;\\n    var match = _whitespace.lineBreakG.exec(input);\\n    if (match && match.index < offset) {\\n      ++line;\\n      cur = match.index + match[0].length;\\n    } else {\\n      return new Position(line, offset - cur);\\n    }\\n  }\\n}\\n},{\\"./whitespace\\":29,\\"babel-runtime/helpers/class-call-check\\":33}],29:[function(require,module,exports){\\n/* @flow */\\n\\n// Matches a whole line break (where CRLF is considered a single\\n// line break). Used to count lines.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isNewLine = isNewLine;\\nvar lineBreak = /\\\\r\\\\n?|\\\\n|\\\\u2028|\\\\u2029/;\\nexports.lineBreak = lineBreak;\\nvar lineBreakG = new RegExp(lineBreak.source, \\"g\\");\\n\\nexports.lineBreakG = lineBreakG;\\n\\nfunction isNewLine(code /*: number*/) /*: boolean*/ {\\n  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029;\\n}\\n\\nvar nonASCIIwhitespace = /[\\\\u1680\\\\u180e\\\\u2000-\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\ufeff]/;\\nexports.nonASCIIwhitespace = nonASCIIwhitespace;\\n},{}],30:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n},{\\"core-js/library/fn/get-iterator\\":36}],31:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/create\\":37}],32:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/set-prototype-of\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/set-prototype-of\\":38}],33:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n},{}],34:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _Object$setPrototypeOf = require(\\"babel-runtime/core-js/object/set-prototype-of\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (subClass, superClass) {\\n  if (typeof superClass !== \\"function\\" && superClass !== null) {\\n    throw new TypeError(\\"Super expression must either be null or a function, not \\" + typeof superClass);\\n  }\\n\\n  subClass.prototype = _Object$create(superClass && superClass.prototype, {\\n    constructor: {\\n      value: subClass,\\n      enumerable: false,\\n      writable: true,\\n      configurable: true\\n    }\\n  });\\n  if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\\n};\\n\\nexports.__esModule = true;\\n},{\\"babel-runtime/core-js/object/create\\":31,\\"babel-runtime/core-js/object/set-prototype-of\\":32}],35:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n},{}],36:[function(require,module,exports){\\nrequire(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n},{\\"../modules/core.get-iterator\\":72,\\"../modules/es6.string.iterator\\":75,\\"../modules/web.dom.iterable\\":76}],37:[function(require,module,exports){\\nvar $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n},{\\"../../modules/$\\":59}],38:[function(require,module,exports){\\nrequire(\'../../modules/es6.object.set-prototype-of\');\\nmodule.exports = require(\'../../modules/$.core\').Object.setPrototypeOf;\\n},{\\"../../modules/$.core\\":44,\\"../../modules/es6.object.set-prototype-of\\":74}],39:[function(require,module,exports){\\nmodule.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n},{}],40:[function(require,module,exports){\\nmodule.exports = function(){ /* empty */ };\\n},{}],41:[function(require,module,exports){\\nvar isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n},{\\"./$.is-object\\":54}],42:[function(require,module,exports){\\n// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n},{\\"./$.cof\\":43,\\"./$.wks\\":70}],43:[function(require,module,exports){\\nvar toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n},{}],44:[function(require,module,exports){\\nvar core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n},{}],45:[function(require,module,exports){\\n// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n},{\\"./$.a-function\\":39}],46:[function(require,module,exports){\\n// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n},{}],47:[function(require,module,exports){\\n// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n},{\\"./$.fails\\":49}],48:[function(require,module,exports){\\nvar global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n},{\\"./$.core\\":44,\\"./$.ctx\\":45,\\"./$.global\\":50}],49:[function(require,module,exports){\\nmodule.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n},{}],50:[function(require,module,exports){\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n},{}],51:[function(require,module,exports){\\nvar hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n},{}],52:[function(require,module,exports){\\nvar $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n},{\\"./$\\":59,\\"./$.descriptors\\":47,\\"./$.property-desc\\":61}],53:[function(require,module,exports){\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n},{\\"./$.cof\\":43}],54:[function(require,module,exports){\\nmodule.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n},{}],55:[function(require,module,exports){\\n\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n},{\\"./$\\":59,\\"./$.hide\\":52,\\"./$.property-desc\\":61,\\"./$.set-to-string-tag\\":64,\\"./$.wks\\":70}],56:[function(require,module,exports){\\n\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n},{\\"./$\\":59,\\"./$.export\\":48,\\"./$.has\\":51,\\"./$.hide\\":52,\\"./$.iter-create\\":55,\\"./$.iterators\\":58,\\"./$.library\\":60,\\"./$.redefine\\":62,\\"./$.set-to-string-tag\\":64,\\"./$.wks\\":70}],57:[function(require,module,exports){\\nmodule.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n},{}],58:[function(require,module,exports){\\nmodule.exports = {};\\n},{}],59:[function(require,module,exports){\\nvar $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n},{}],60:[function(require,module,exports){\\nmodule.exports = true;\\n},{}],61:[function(require,module,exports){\\nmodule.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n},{}],62:[function(require,module,exports){\\nmodule.exports = require(\'./$.hide\');\\n},{\\"./$.hide\\":52}],63:[function(require,module,exports){\\n// Works with __proto__ only. Old v8 can\'t work with null proto objects.\\n/* eslint-disable no-proto */\\nvar getDesc  = require(\'./$\').getDesc\\n  , isObject = require(\'./$.is-object\')\\n  , anObject = require(\'./$.an-object\');\\nvar check = function(O, proto){\\n  anObject(O);\\n  if(!isObject(proto) && proto !== null)throw TypeError(proto + \\": can\'t set as prototype!\\");\\n};\\nmodule.exports = {\\n  set: Object.setPrototypeOf || (\'__proto__\' in {} ? // eslint-disable-line\\n    function(test, buggy, set){\\n      try {\\n        set = require(\'./$.ctx\')(Function.call, getDesc(Object.prototype, \'__proto__\').set, 2);\\n        set(test, []);\\n        buggy = !(test instanceof Array);\\n      } catch(e){ buggy = true; }\\n      return function setPrototypeOf(O, proto){\\n        check(O, proto);\\n        if(buggy)O.__proto__ = proto;\\n        else set(O, proto);\\n        return O;\\n      };\\n    }({}, false) : undefined),\\n  check: check\\n};\\n},{\\"./$\\":59,\\"./$.an-object\\":41,\\"./$.ctx\\":45,\\"./$.is-object\\":54}],64:[function(require,module,exports){\\nvar def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n},{\\"./$\\":59,\\"./$.has\\":51,\\"./$.wks\\":70}],65:[function(require,module,exports){\\nvar global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n},{\\"./$.global\\":50}],66:[function(require,module,exports){\\nvar toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n},{\\"./$.defined\\":46,\\"./$.to-integer\\":67}],67:[function(require,module,exports){\\n// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n},{}],68:[function(require,module,exports){\\n// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n},{\\"./$.defined\\":46,\\"./$.iobject\\":53}],69:[function(require,module,exports){\\nvar id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n},{}],70:[function(require,module,exports){\\nvar store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n},{\\"./$.global\\":50,\\"./$.shared\\":65,\\"./$.uid\\":69}],71:[function(require,module,exports){\\nvar classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n},{\\"./$.classof\\":42,\\"./$.core\\":44,\\"./$.iterators\\":58,\\"./$.wks\\":70}],72:[function(require,module,exports){\\nvar anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n},{\\"./$.an-object\\":41,\\"./$.core\\":44,\\"./core.get-iterator-method\\":71}],73:[function(require,module,exports){\\n\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n},{\\"./$.add-to-unscopables\\":40,\\"./$.iter-define\\":56,\\"./$.iter-step\\":57,\\"./$.iterators\\":58,\\"./$.to-iobject\\":68}],74:[function(require,module,exports){\\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\\nvar $export = require(\'./$.export\');\\n$export($export.S, \'Object\', {setPrototypeOf: require(\'./$.set-proto\').set});\\n},{\\"./$.export\\":48,\\"./$.set-proto\\":63}],75:[function(require,module,exports){\\n\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n},{\\"./$.iter-define\\":56,\\"./$.string-at\\":66}],76:[function(require,module,exports){\\nrequire(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n},{\\"./$.iterators\\":58,\\"./es6.array.iterator\\":73}]},{},[1])(1)\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/vendor/babylon.js\\n ** module id = 2\\n ** module chunks = 0\\n **/","var isArray = require(\'../helpers/isArray\');\\n\\nvar IGNORE = \'start,end,loc\';\\nvar UNKNOWN_NODE = \'unknown\';\\n\\nvar isIgnored = function (key) {\\n  return IGNORE.indexOf(key) >= 0;\\n};\\nvar getType = function (node) {\\n  return node && node.type ? node.type : UNKNOWN_NODE;\\n};\\n\\nmodule.exports = function (tree, visitors) {\\n  var context = {};\\n\\n  var traverse = function (node, parent, index) {\\n    var key, i;\\n    var type = getType(node);\\n    var visitor = visitors[type];\\n\\n    visitor && visitor.enter ? visitor.enter(node, parent, index, context) : null;\\n    if (isArray(node)) {\\n      for (i = 0; i < node.length; i++) {\\n        traverse(node[i], node, i);\\n      }\\n    } else {\\n      for (key in node) {\\n        if (!isIgnored(key)) {\\n          if (typeof node[key] === \'object\') {\\n            traverse(node[key], node, key);\\n          }\\n        }\\n      }\\n    }\\n    visitor && visitor.exit ? visitor.exit(node, parent, index, context) : null;\\n  };\\n\\n  traverse(tree, null, null);\\n};\\n\\nmodule.exports.isIgnored = isIgnored;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/core/traverse.js\\n ** module id = 3\\n ** module chunks = 0\\n **/","module.exports = function (v) {\\n  return Object.prototype.toString.call(v) === \'[object Array]\';\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/isArray.js\\n ** module id = 4\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _detectIndent = require(\\"detect-indent\\");\\n\\nvar _detectIndent2 = _interopRequireDefault(_detectIndent);\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\nvar _whitespace2 = _interopRequireDefault(_whitespace);\\n\\nvar _sourceMap = require(\\"./source-map\\");\\n\\nvar _sourceMap2 = _interopRequireDefault(_sourceMap);\\n\\nvar _position = require(\\"./position\\");\\n\\nvar _position2 = _interopRequireDefault(_position);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _printer = require(\\"./printer\\");\\n\\nvar _printer2 = _interopRequireDefault(_printer);\\n\\n/**\\n * Babel\'s code generator, turns an ast into code, maintaining sourcemaps,\\n * user preferences, and valid output.\\n */\\n\\nvar CodeGenerator = (function (_Printer) {\\n  _inherits(CodeGenerator, _Printer);\\n\\n  function CodeGenerator(ast, opts, code) {\\n    _classCallCheck(this, CodeGenerator);\\n\\n    opts = opts || {};\\n\\n    var comments = ast.comments || [];\\n    var tokens = ast.tokens || [];\\n    var format = CodeGenerator.normalizeOptions(code, opts, tokens);\\n\\n    var position = new _position2[\\"default\\"]();\\n\\n    _Printer.call(this, position, format);\\n\\n    this.comments = comments;\\n    this.position = position;\\n    this.tokens = tokens;\\n    this.format = format;\\n    this.opts = opts;\\n    this.ast = ast;\\n    this._inForStatementInitCounter = 0;\\n\\n    this.whitespace = new _whitespace2[\\"default\\"](tokens);\\n    this.map = new _sourceMap2[\\"default\\"](position, opts, code);\\n  }\\n\\n  /**\\n   * Normalize generator options, setting defaults.\\n   *\\n   * - Detects code indentation.\\n   * - If `opts.compact = \\"auto\\"` and the code is over 100KB, `compact` will be set to `true`.\\n    */\\n\\n  CodeGenerator.normalizeOptions = function normalizeOptions(code, opts, tokens) {\\n    var style = \\"  \\";\\n    if (code) {\\n      var _indent = _detectIndent2[\\"default\\"](code).indent;\\n      if (_indent && _indent !== \\" \\") style = _indent;\\n    }\\n\\n    var format = {\\n      auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\\n      auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\\n      shouldPrintComment: opts.shouldPrintComment,\\n      retainLines: opts.retainLines,\\n      comments: opts.comments == null || opts.comments,\\n      compact: opts.compact,\\n      minified: opts.minified,\\n      concise: opts.concise,\\n      quotes: opts.quotes || CodeGenerator.findCommonStringDelimiter(code, tokens),\\n      indent: {\\n        adjustMultilineComment: true,\\n        style: style,\\n        base: 0\\n      }\\n    };\\n\\n    if (format.minified) {\\n      format.compact = true;\\n    }\\n\\n    if (format.compact === \\"auto\\") {\\n      format.compact = code.length > 100000; // 100KB\\n\\n      if (format.compact) {\\n        console.error(\\"[BABEL] \\" + messages.get(\\"codeGeneratorDeopt\\", opts.filename, \\"100KB\\"));\\n      }\\n    }\\n\\n    if (format.compact) {\\n      format.indent.adjustMultilineComment = false;\\n    }\\n\\n    return format;\\n  };\\n\\n  /**\\n   * Determine if input code uses more single or double quotes.\\n   */\\n\\n  CodeGenerator.findCommonStringDelimiter = function findCommonStringDelimiter(code, tokens) {\\n    var occurences = {\\n      single: 0,\\n      double: 0\\n    };\\n\\n    var checked = 0;\\n\\n    for (var i = 0; i < tokens.length; i++) {\\n      var token = tokens[i];\\n      if (token.type.label !== \\"string\\") continue;\\n\\n      var raw = code.slice(token.start, token.end);\\n      if (raw[0] === \\"\'\\") {\\n        occurences.single++;\\n      } else {\\n        occurences.double++;\\n      }\\n\\n      checked++;\\n      if (checked >= 3) break;\\n    }\\n    if (occurences.single > occurences.double) {\\n      return \\"single\\";\\n    } else {\\n      return \\"double\\";\\n    }\\n  };\\n\\n  /**\\n   * Generate code and sourcemap from ast.\\n   *\\n   * Appends comments that weren\'t attached to any node to the end of the generated output.\\n   */\\n\\n  CodeGenerator.prototype.generate = function generate() {\\n    this.print(this.ast);\\n    this.printAuxAfterComment();\\n\\n    return {\\n      map: this.map.get(),\\n      code: this.get()\\n    };\\n  };\\n\\n  return CodeGenerator;\\n})(_printer2[\\"default\\"]);\\n\\nexports.CodeGenerator = CodeGenerator;\\n\\nexports[\\"default\\"] = function (ast /*: Object*/, opts /*: Object*/, code /*: string*/) /*: Object*/ {\\n  var gen = new CodeGenerator(ast, opts, code);\\n  return gen.generate();\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/index.js\\n ** module id = 5\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _Object$setPrototypeOf = require(\\"babel-runtime/core-js/object/set-prototype-of\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (subClass, superClass) {\\n  if (typeof superClass !== \\"function\\" && superClass !== null) {\\n    throw new TypeError(\\"Super expression must either be null or a function, not \\" + typeof superClass);\\n  }\\n\\n  subClass.prototype = _Object$create(superClass && superClass.prototype, {\\n    constructor: {\\n      value: subClass,\\n      enumerable: false,\\n      writable: true,\\n      configurable: true\\n    }\\n  });\\n  if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/inherits.js\\n ** module id = 6\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/create.js\\n ** module id = 7\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/create.js\\n ** module id = 8\\n ** module chunks = 0\\n **/","var $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.js\\n ** module id = 9\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/set-prototype-of\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/set-prototype-of.js\\n ** module id = 10\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.set-prototype-of\');\\nmodule.exports = require(\'../../modules/$.core\').Object.setPrototypeOf;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/set-prototype-of.js\\n ** module id = 11\\n ** module chunks = 0\\n **/","// 19.1.3.19 Object.setPrototypeOf(O, proto)\\nvar $export = require(\'./$.export\');\\n$export($export.S, \'Object\', {setPrototypeOf: require(\'./$.set-proto\').set});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.set-prototype-of.js\\n ** module id = 12\\n ** module chunks = 0\\n **/","var global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.export.js\\n ** module id = 13\\n ** module chunks = 0\\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.global.js\\n ** module id = 14\\n ** module chunks = 0\\n **/","var core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.core.js\\n ** module id = 15\\n ** module chunks = 0\\n **/","// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.ctx.js\\n ** module id = 16\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.a-function.js\\n ** module id = 17\\n ** module chunks = 0\\n **/","// Works with __proto__ only. Old v8 can\'t work with null proto objects.\\n/* eslint-disable no-proto */\\nvar getDesc  = require(\'./$\').getDesc\\n  , isObject = require(\'./$.is-object\')\\n  , anObject = require(\'./$.an-object\');\\nvar check = function(O, proto){\\n  anObject(O);\\n  if(!isObject(proto) && proto !== null)throw TypeError(proto + \\": can\'t set as prototype!\\");\\n};\\nmodule.exports = {\\n  set: Object.setPrototypeOf || (\'__proto__\' in {} ? // eslint-disable-line\\n    function(test, buggy, set){\\n      try {\\n        set = require(\'./$.ctx\')(Function.call, getDesc(Object.prototype, \'__proto__\').set, 2);\\n        set(test, []);\\n        buggy = !(test instanceof Array);\\n      } catch(e){ buggy = true; }\\n      return function setPrototypeOf(O, proto){\\n        check(O, proto);\\n        if(buggy)O.__proto__ = proto;\\n        else set(O, proto);\\n        return O;\\n      };\\n    }({}, false) : undefined),\\n  check: check\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-proto.js\\n ** module id = 18\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.is-object.js\\n ** module id = 19\\n ** module chunks = 0\\n **/","var isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.an-object.js\\n ** module id = 20\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/class-call-check.js\\n ** module id = 21\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/interop-require-default.js\\n ** module id = 22\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  if (obj && obj.__esModule) {\\n    return obj;\\n  } else {\\n    var newObj = {};\\n\\n    if (obj != null) {\\n      for (var key in obj) {\\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\\n      }\\n    }\\n\\n    newObj[\\"default\\"] = obj;\\n    return newObj;\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/helpers/interop-require-wildcard.js\\n ** module id = 23\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar repeating = require(\'repeating\');\\n\\n// detect either spaces or tabs but not both to properly handle tabs\\n// for indentation and spaces for alignment\\nvar INDENT_RE = /^(?:( )+|\\\\t+)/;\\n\\nfunction getMostUsed(indents) {\\n\\tvar result = 0;\\n\\tvar maxUsed = 0;\\n\\tvar maxWeight = 0;\\n\\n\\tfor (var n in indents) {\\n\\t\\tvar indent = indents[n];\\n\\t\\tvar u = indent[0];\\n\\t\\tvar w = indent[1];\\n\\n\\t\\tif (u > maxUsed || u === maxUsed && w > maxWeight) {\\n\\t\\t\\tmaxUsed = u;\\n\\t\\t\\tmaxWeight = w;\\n\\t\\t\\tresult = +n;\\n\\t\\t}\\n\\t}\\n\\n\\treturn result;\\n}\\n\\nmodule.exports = function (str) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string\');\\n\\t}\\n\\n\\t// used to see if tabs or spaces are the most used\\n\\tvar tabs = 0;\\n\\tvar spaces = 0;\\n\\n\\t// remember the size of previous line\'s indentation\\n\\tvar prev = 0;\\n\\n\\t// remember how many indents/unindents as occurred for a given size\\n\\t// and how much lines follow a given indentation\\n\\t//\\n\\t// indents = {\\n\\t//    3: [1, 0],\\n\\t//    4: [1, 5],\\n\\t//    5: [1, 0],\\n\\t//   12: [1, 0],\\n\\t// }\\n\\tvar indents = {};\\n\\n\\t// pointer to the array of last used indent\\n\\tvar current;\\n\\n\\t// whether the last action was an indent (opposed to an unindent)\\n\\tvar isIndent;\\n\\n\\tstr.split(/\\\\n/g).forEach(function (line) {\\n\\t\\tif (!line) {\\n\\t\\t\\t// ignore empty lines\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\n\\t\\tvar indent;\\n\\t\\tvar matches = line.match(INDENT_RE);\\n\\n\\t\\tif (!matches) {\\n\\t\\t\\tindent = 0;\\n\\t\\t} else {\\n\\t\\t\\tindent = matches[0].length;\\n\\n\\t\\t\\tif (matches[1]) {\\n\\t\\t\\t\\tspaces++;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\ttabs++;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tvar diff = indent - prev;\\n\\t\\tprev = indent;\\n\\n\\t\\tif (diff) {\\n\\t\\t\\t// an indent or unindent has been detected\\n\\n\\t\\t\\tisIndent = diff > 0;\\n\\n\\t\\t\\tcurrent = indents[isIndent ? diff : -diff];\\n\\n\\t\\t\\tif (current) {\\n\\t\\t\\t\\tcurrent[0]++;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tcurrent = indents[diff] = [1, 0];\\n\\t\\t\\t}\\n\\t\\t} else if (current) {\\n\\t\\t\\t// if the last action was an indent, increment the weight\\n\\t\\t\\tcurrent[1] += +isIndent;\\n\\t\\t}\\n\\t});\\n\\n\\tvar amount = getMostUsed(indents);\\n\\n\\tvar type;\\n\\tvar actual;\\n\\tif (!amount) {\\n\\t\\ttype = null;\\n\\t\\tactual = \'\';\\n\\t} else if (spaces >= tabs) {\\n\\t\\ttype = \'space\';\\n\\t\\tactual = repeating(\' \', amount);\\n\\t} else {\\n\\t\\ttype = \'tab\';\\n\\t\\tactual = repeating(\'\\\\t\', amount);\\n\\t}\\n\\n\\treturn {\\n\\t\\tamount: amount,\\n\\t\\ttype: type,\\n\\t\\tindent: actual\\n\\t};\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/detect-indent/index.js\\n ** module id = 24\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar isFinite = require(\'is-finite\');\\n\\nmodule.exports = function (str, n) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string as the first argument\');\\n\\t}\\n\\n\\tif (n < 0 || !isFinite(n)) {\\n\\t\\tthrow new TypeError(\'Expected a finite positive number\');\\n\\t}\\n\\n\\tvar ret = \'\';\\n\\n\\tdo {\\n\\t\\tif (n & 1) {\\n\\t\\t\\tret += str;\\n\\t\\t}\\n\\n\\t\\tstr += str;\\n\\t} while (n = n >> 1);\\n\\n\\treturn ret;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/repeating/index.js\\n ** module id = 25\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar numberIsNan = require(\'number-is-nan\');\\n\\nmodule.exports = Number.isFinite || function (val) {\\n\\treturn !(typeof val !== \'number\' || numberIsNan(val) || val === Infinity || val === -Infinity);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/repeating/~/is-finite/index.js\\n ** module id = 26\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = Number.isNaN || function (x) {\\n\\treturn x !== x;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/repeating/~/is-finite/~/number-is-nan/index.js\\n ** module id = 27\\n ** module chunks = 0\\n **/","/**\\n * Get whitespace around tokens.\\n */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar Whitespace = (function () {\\n  function Whitespace(tokens) {\\n    _classCallCheck(this, Whitespace);\\n\\n    this.tokens = tokens;\\n    this.used = {};\\n  }\\n\\n  /**\\n   * Count all the newlines before a node.\\n   */\\n\\n  Whitespace.prototype.getNewlinesBefore = function getNewlinesBefore(node) {\\n    var startToken = undefined;\\n    var endToken = undefined;\\n    var tokens = this.tokens;\\n\\n    var index = this._findToken(function (token) {\\n      return token.start - node.start;\\n    }, 0, tokens.length);\\n    if (index >= 0) {\\n      while (index && node.start === tokens[index - 1].start) --index;\\n      startToken = tokens[index - 1];\\n      endToken = tokens[index];\\n    }\\n\\n    return this.getNewlinesBetween(startToken, endToken);\\n  };\\n\\n  /**\\n   * Count all the newlines after a node.\\n   */\\n\\n  Whitespace.prototype.getNewlinesAfter = function getNewlinesAfter(node) {\\n    var startToken = undefined;\\n    var endToken = undefined;\\n    var tokens = this.tokens;\\n\\n    var index = this._findToken(function (token) {\\n      return token.end - node.end;\\n    }, 0, tokens.length);\\n    if (index >= 0) {\\n      while (index && node.end === tokens[index - 1].end) --index;\\n      startToken = tokens[index];\\n      endToken = tokens[index + 1];\\n      if (endToken.type.label === \\",\\") endToken = tokens[index + 2];\\n    }\\n\\n    if (endToken && endToken.type.label === \\"eof\\") {\\n      return 1;\\n    } else {\\n      var lines = this.getNewlinesBetween(startToken, endToken);\\n      if (node.type === \\"CommentLine\\" && !lines) {\\n        // line comment\\n        return 1;\\n      } else {\\n        return lines;\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Count all the newlines between two tokens.\\n   */\\n\\n  Whitespace.prototype.getNewlinesBetween = function getNewlinesBetween(startToken, endToken) {\\n    if (!endToken || !endToken.loc) return 0;\\n\\n    var start = startToken ? startToken.loc.end.line : 1;\\n    var end = endToken.loc.start.line;\\n    var lines = 0;\\n\\n    for (var line = start; line < end; line++) {\\n      if (typeof this.used[line] === \\"undefined\\") {\\n        this.used[line] = true;\\n        lines++;\\n      }\\n    }\\n\\n    return lines;\\n  };\\n\\n  /**\\n   * Find a token between start and end.\\n   */\\n\\n  Whitespace.prototype._findToken = function _findToken(test /*: Function*/, start /*: number*/, end /*: number*/) /*: number*/ {\\n    var middle = start + end >>> 1;\\n    var match /*: number*/ = test(this.tokens[middle]);\\n    if (match < 0 && end > middle) {\\n      return this._findToken(test, middle + 1, end);\\n    } else if (match > 0 && start < middle) {\\n      return this._findToken(test, start, middle);\\n    } else if (match === 0) {\\n      return middle;\\n    }\\n    return -1;\\n  };\\n\\n  return Whitespace;\\n})();\\n\\nexports[\\"default\\"] = Whitespace;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/whitespace.js\\n ** module id = 28\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _sourceMap = require(\\"source-map\\");\\n\\nvar _sourceMap2 = _interopRequireDefault(_sourceMap);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Build a sourcemap.\\n */\\n\\nvar SourceMap = (function () {\\n  function SourceMap(position, opts, code) {\\n    _classCallCheck(this, SourceMap);\\n\\n    this.position = position;\\n    this.opts = opts;\\n    this.last = { generated: {}, original: {} };\\n\\n    if (opts.sourceMaps) {\\n      this.map = new _sourceMap2[\\"default\\"].SourceMapGenerator({\\n        file: opts.sourceMapTarget,\\n        sourceRoot: opts.sourceRoot\\n      });\\n\\n      this.map.setSourceContent(opts.sourceFileName, code);\\n    } else {\\n      this.map = null;\\n    }\\n  }\\n\\n  /**\\n   * Get the sourcemap.\\n   */\\n\\n  SourceMap.prototype.get = function get() {\\n    var map = this.map;\\n    if (map) {\\n      return map.toJSON();\\n    } else {\\n      return map;\\n    }\\n  };\\n\\n  /**\\n   * Mark a node\'s generated position, and add it to the sourcemap.\\n   */\\n\\n  SourceMap.prototype.mark = function mark(node) {\\n    var loc = node.loc;\\n    if (!loc) return; // no location info\\n\\n    var map = this.map;\\n    if (!map) return; // no source map\\n\\n    if (t.isProgram(node) || t.isFile(node)) return; // illegal mapping nodes\\n\\n    var position = this.position;\\n\\n    var generated = {\\n      line: position.line,\\n      column: position.column\\n    };\\n\\n    var original = loc.start;\\n\\n    // Avoid emitting duplicates on either side. Duplicated\\n    // original values creates unnecesssarily large source maps\\n    // and increases compile time. Duplicates on the generated\\n    // side can lead to incorrect mappings.\\n    if (comparePosition(original, this.last.original) || comparePosition(generated, this.last.generated)) {\\n      return;\\n    }\\n\\n    this.last = {\\n      source: this.opts.sourceFileName,\\n      generated: generated,\\n      original: original\\n    };\\n\\n    map.addMapping(this.last);\\n  };\\n\\n  return SourceMap;\\n})();\\n\\nexports[\\"default\\"] = SourceMap;\\n\\nfunction comparePosition(a, b) {\\n  return a.line === b.line && a.column === b.column;\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/source-map.js\\n ** module id = 29\\n ** module chunks = 0\\n **/","/*\\n * Copyright 2009-2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE.txt or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\nexports.SourceMapGenerator = require(\'./lib/source-map-generator\').SourceMapGenerator;\\nexports.SourceMapConsumer = require(\'./lib/source-map-consumer\').SourceMapConsumer;\\nexports.SourceNode = require(\'./lib/source-node\').SourceNode;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/source-map.js\\n ** module id = 30\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var base64VLQ = require(\'./base64-vlq\');\\n  var util = require(\'./util\');\\n  var ArraySet = require(\'./array-set\').ArraySet;\\n  var MappingList = require(\'./mapping-list\').MappingList;\\n\\n  /**\\n   * An instance of the SourceMapGenerator represents a source map which is\\n   * being built incrementally. You may pass an object with the following\\n   * properties:\\n   *\\n   *   - file: The filename of the generated source.\\n   *   - sourceRoot: A root for all relative URLs in this source map.\\n   */\\n  function SourceMapGenerator(aArgs) {\\n    if (!aArgs) {\\n      aArgs = {};\\n    }\\n    this._file = util.getArg(aArgs, \'file\', null);\\n    this._sourceRoot = util.getArg(aArgs, \'sourceRoot\', null);\\n    this._skipValidation = util.getArg(aArgs, \'skipValidation\', false);\\n    this._sources = new ArraySet();\\n    this._names = new ArraySet();\\n    this._mappings = new MappingList();\\n    this._sourcesContents = null;\\n  }\\n\\n  SourceMapGenerator.prototype._version = 3;\\n\\n  /**\\n   * Creates a new SourceMapGenerator based on a SourceMapConsumer\\n   *\\n   * @param aSourceMapConsumer The SourceMap.\\n   */\\n  SourceMapGenerator.fromSourceMap =\\n    function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\\n      var sourceRoot = aSourceMapConsumer.sourceRoot;\\n      var generator = new SourceMapGenerator({\\n        file: aSourceMapConsumer.file,\\n        sourceRoot: sourceRoot\\n      });\\n      aSourceMapConsumer.eachMapping(function (mapping) {\\n        var newMapping = {\\n          generated: {\\n            line: mapping.generatedLine,\\n            column: mapping.generatedColumn\\n          }\\n        };\\n\\n        if (mapping.source != null) {\\n          newMapping.source = mapping.source;\\n          if (sourceRoot != null) {\\n            newMapping.source = util.relative(sourceRoot, newMapping.source);\\n          }\\n\\n          newMapping.original = {\\n            line: mapping.originalLine,\\n            column: mapping.originalColumn\\n          };\\n\\n          if (mapping.name != null) {\\n            newMapping.name = mapping.name;\\n          }\\n        }\\n\\n        generator.addMapping(newMapping);\\n      });\\n      aSourceMapConsumer.sources.forEach(function (sourceFile) {\\n        var content = aSourceMapConsumer.sourceContentFor(sourceFile);\\n        if (content != null) {\\n          generator.setSourceContent(sourceFile, content);\\n        }\\n      });\\n      return generator;\\n    };\\n\\n  /**\\n   * Add a single mapping from original source line and column to the generated\\n   * source\'s line and column for this source map being created. The mapping\\n   * object should have the following properties:\\n   *\\n   *   - generated: An object with the generated line and column positions.\\n   *   - original: An object with the original line and column positions.\\n   *   - source: The original source file (relative to the sourceRoot).\\n   *   - name: An optional original token name for this mapping.\\n   */\\n  SourceMapGenerator.prototype.addMapping =\\n    function SourceMapGenerator_addMapping(aArgs) {\\n      var generated = util.getArg(aArgs, \'generated\');\\n      var original = util.getArg(aArgs, \'original\', null);\\n      var source = util.getArg(aArgs, \'source\', null);\\n      var name = util.getArg(aArgs, \'name\', null);\\n\\n      if (!this._skipValidation) {\\n        this._validateMapping(generated, original, source, name);\\n      }\\n\\n      if (source != null && !this._sources.has(source)) {\\n        this._sources.add(source);\\n      }\\n\\n      if (name != null && !this._names.has(name)) {\\n        this._names.add(name);\\n      }\\n\\n      this._mappings.add({\\n        generatedLine: generated.line,\\n        generatedColumn: generated.column,\\n        originalLine: original != null && original.line,\\n        originalColumn: original != null && original.column,\\n        source: source,\\n        name: name\\n      });\\n    };\\n\\n  /**\\n   * Set the source content for a source file.\\n   */\\n  SourceMapGenerator.prototype.setSourceContent =\\n    function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\\n      var source = aSourceFile;\\n      if (this._sourceRoot != null) {\\n        source = util.relative(this._sourceRoot, source);\\n      }\\n\\n      if (aSourceContent != null) {\\n        // Add the source content to the _sourcesContents map.\\n        // Create a new _sourcesContents map if the property is null.\\n        if (!this._sourcesContents) {\\n          this._sourcesContents = {};\\n        }\\n        this._sourcesContents[util.toSetString(source)] = aSourceContent;\\n      } else if (this._sourcesContents) {\\n        // Remove the source file from the _sourcesContents map.\\n        // If the _sourcesContents map is empty, set the property to null.\\n        delete this._sourcesContents[util.toSetString(source)];\\n        if (Object.keys(this._sourcesContents).length === 0) {\\n          this._sourcesContents = null;\\n        }\\n      }\\n    };\\n\\n  /**\\n   * Applies the mappings of a sub-source-map for a specific source file to the\\n   * source map being generated. Each mapping to the supplied source file is\\n   * rewritten using the supplied source map. Note: The resolution for the\\n   * resulting mappings is the minimium of this map and the supplied map.\\n   *\\n   * @param aSourceMapConsumer The source map to be applied.\\n   * @param aSourceFile Optional. The filename of the source file.\\n   *        If omitted, SourceMapConsumer\'s file property will be used.\\n   * @param aSourceMapPath Optional. The dirname of the path to the source map\\n   *        to be applied. If relative, it is relative to the SourceMapConsumer.\\n   *        This parameter is needed when the two source maps aren\'t in the same\\n   *        directory, and the source map to be applied contains relative source\\n   *        paths. If so, those relative source paths need to be rewritten\\n   *        relative to the SourceMapGenerator.\\n   */\\n  SourceMapGenerator.prototype.applySourceMap =\\n    function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\\n      var sourceFile = aSourceFile;\\n      // If aSourceFile is omitted, we will use the file property of the SourceMap\\n      if (aSourceFile == null) {\\n        if (aSourceMapConsumer.file == null) {\\n          throw new Error(\\n            \'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, \' +\\n            \'or the source map\\\\\'s \\"file\\" property. Both were omitted.\'\\n          );\\n        }\\n        sourceFile = aSourceMapConsumer.file;\\n      }\\n      var sourceRoot = this._sourceRoot;\\n      // Make \\"sourceFile\\" relative if an absolute Url is passed.\\n      if (sourceRoot != null) {\\n        sourceFile = util.relative(sourceRoot, sourceFile);\\n      }\\n      // Applying the SourceMap can add and remove items from the sources and\\n      // the names array.\\n      var newSources = new ArraySet();\\n      var newNames = new ArraySet();\\n\\n      // Find mappings for the \\"sourceFile\\"\\n      this._mappings.unsortedForEach(function (mapping) {\\n        if (mapping.source === sourceFile && mapping.originalLine != null) {\\n          // Check if it can be mapped by the source map, then update the mapping.\\n          var original = aSourceMapConsumer.originalPositionFor({\\n            line: mapping.originalLine,\\n            column: mapping.originalColumn\\n          });\\n          if (original.source != null) {\\n            // Copy mapping\\n            mapping.source = original.source;\\n            if (aSourceMapPath != null) {\\n              mapping.source = util.join(aSourceMapPath, mapping.source)\\n            }\\n            if (sourceRoot != null) {\\n              mapping.source = util.relative(sourceRoot, mapping.source);\\n            }\\n            mapping.originalLine = original.line;\\n            mapping.originalColumn = original.column;\\n            if (original.name != null) {\\n              mapping.name = original.name;\\n            }\\n          }\\n        }\\n\\n        var source = mapping.source;\\n        if (source != null && !newSources.has(source)) {\\n          newSources.add(source);\\n        }\\n\\n        var name = mapping.name;\\n        if (name != null && !newNames.has(name)) {\\n          newNames.add(name);\\n        }\\n\\n      }, this);\\n      this._sources = newSources;\\n      this._names = newNames;\\n\\n      // Copy sourcesContents of applied map.\\n      aSourceMapConsumer.sources.forEach(function (sourceFile) {\\n        var content = aSourceMapConsumer.sourceContentFor(sourceFile);\\n        if (content != null) {\\n          if (aSourceMapPath != null) {\\n            sourceFile = util.join(aSourceMapPath, sourceFile);\\n          }\\n          if (sourceRoot != null) {\\n            sourceFile = util.relative(sourceRoot, sourceFile);\\n          }\\n          this.setSourceContent(sourceFile, content);\\n        }\\n      }, this);\\n    };\\n\\n  /**\\n   * A mapping can have one of the three levels of data:\\n   *\\n   *   1. Just the generated position.\\n   *   2. The Generated position, original position, and original source.\\n   *   3. Generated and original position, original source, as well as a name\\n   *      token.\\n   *\\n   * To maintain consistency, we validate that any new mapping being added falls\\n   * in to one of these categories.\\n   */\\n  SourceMapGenerator.prototype._validateMapping =\\n    function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\\n                                                aName) {\\n      if (aGenerated && \'line\' in aGenerated && \'column\' in aGenerated\\n          && aGenerated.line > 0 && aGenerated.column >= 0\\n          && !aOriginal && !aSource && !aName) {\\n        // Case 1.\\n        return;\\n      }\\n      else if (aGenerated && \'line\' in aGenerated && \'column\' in aGenerated\\n               && aOriginal && \'line\' in aOriginal && \'column\' in aOriginal\\n               && aGenerated.line > 0 && aGenerated.column >= 0\\n               && aOriginal.line > 0 && aOriginal.column >= 0\\n               && aSource) {\\n        // Cases 2 and 3.\\n        return;\\n      }\\n      else {\\n        throw new Error(\'Invalid mapping: \' + JSON.stringify({\\n          generated: aGenerated,\\n          source: aSource,\\n          original: aOriginal,\\n          name: aName\\n        }));\\n      }\\n    };\\n\\n  /**\\n   * Serialize the accumulated mappings in to the stream of base 64 VLQs\\n   * specified by the source map format.\\n   */\\n  SourceMapGenerator.prototype._serializeMappings =\\n    function SourceMapGenerator_serializeMappings() {\\n      var previousGeneratedColumn = 0;\\n      var previousGeneratedLine = 1;\\n      var previousOriginalColumn = 0;\\n      var previousOriginalLine = 0;\\n      var previousName = 0;\\n      var previousSource = 0;\\n      var result = \'\';\\n      var mapping;\\n      var nameIdx;\\n      var sourceIdx;\\n\\n      var mappings = this._mappings.toArray();\\n      for (var i = 0, len = mappings.length; i < len; i++) {\\n        mapping = mappings[i];\\n\\n        if (mapping.generatedLine !== previousGeneratedLine) {\\n          previousGeneratedColumn = 0;\\n          while (mapping.generatedLine !== previousGeneratedLine) {\\n            result += \';\';\\n            previousGeneratedLine++;\\n          }\\n        }\\n        else {\\n          if (i > 0) {\\n            if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\\n              continue;\\n            }\\n            result += \',\';\\n          }\\n        }\\n\\n        result += base64VLQ.encode(mapping.generatedColumn\\n                                   - previousGeneratedColumn);\\n        previousGeneratedColumn = mapping.generatedColumn;\\n\\n        if (mapping.source != null) {\\n          sourceIdx = this._sources.indexOf(mapping.source);\\n          result += base64VLQ.encode(sourceIdx - previousSource);\\n          previousSource = sourceIdx;\\n\\n          // lines are stored 0-based in SourceMap spec version 3\\n          result += base64VLQ.encode(mapping.originalLine - 1\\n                                     - previousOriginalLine);\\n          previousOriginalLine = mapping.originalLine - 1;\\n\\n          result += base64VLQ.encode(mapping.originalColumn\\n                                     - previousOriginalColumn);\\n          previousOriginalColumn = mapping.originalColumn;\\n\\n          if (mapping.name != null) {\\n            nameIdx = this._names.indexOf(mapping.name);\\n            result += base64VLQ.encode(nameIdx - previousName);\\n            previousName = nameIdx;\\n          }\\n        }\\n      }\\n\\n      return result;\\n    };\\n\\n  SourceMapGenerator.prototype._generateSourcesContent =\\n    function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\\n      return aSources.map(function (source) {\\n        if (!this._sourcesContents) {\\n          return null;\\n        }\\n        if (aSourceRoot != null) {\\n          source = util.relative(aSourceRoot, source);\\n        }\\n        var key = util.toSetString(source);\\n        return Object.prototype.hasOwnProperty.call(this._sourcesContents,\\n                                                    key)\\n          ? this._sourcesContents[key]\\n          : null;\\n      }, this);\\n    };\\n\\n  /**\\n   * Externalize the source map.\\n   */\\n  SourceMapGenerator.prototype.toJSON =\\n    function SourceMapGenerator_toJSON() {\\n      var map = {\\n        version: this._version,\\n        sources: this._sources.toArray(),\\n        names: this._names.toArray(),\\n        mappings: this._serializeMappings()\\n      };\\n      if (this._file != null) {\\n        map.file = this._file;\\n      }\\n      if (this._sourceRoot != null) {\\n        map.sourceRoot = this._sourceRoot;\\n      }\\n      if (this._sourcesContents) {\\n        map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\\n      }\\n\\n      return map;\\n    };\\n\\n  /**\\n   * Render the source map being generated to a string.\\n   */\\n  SourceMapGenerator.prototype.toString =\\n    function SourceMapGenerator_toString() {\\n      return JSON.stringify(this.toJSON());\\n    };\\n\\n  exports.SourceMapGenerator = SourceMapGenerator;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/source-map-generator.js\\n ** module id = 31\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n *\\n * Based on the Base 64 VLQ implementation in Closure Compiler:\\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\\n *\\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\\n * Redistribution and use in source and binary forms, with or without\\n * modification, are permitted provided that the following conditions are\\n * met:\\n *\\n *  * Redistributions of source code must retain the above copyright\\n *    notice, this list of conditions and the following disclaimer.\\n *  * Redistributions in binary form must reproduce the above\\n *    copyright notice, this list of conditions and the following\\n *    disclaimer in the documentation and/or other materials provided\\n *    with the distribution.\\n *  * Neither the name of Google Inc. nor the names of its\\n *    contributors may be used to endorse or promote products derived\\n *    from this software without specific prior written permission.\\n *\\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\\n * \\"AS IS\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n{\\n  var base64 = require(\'./base64\');\\n\\n  // A single base 64 digit can contain 6 bits of data. For the base 64 variable\\n  // length quantities we use in the source map spec, the first bit is the sign,\\n  // the next four bits are the actual value, and the 6th bit is the\\n  // continuation bit. The continuation bit tells us whether there are more\\n  // digits in this value following this digit.\\n  //\\n  //   Continuation\\n  //   |    Sign\\n  //   |    |\\n  //   V    V\\n  //   101011\\n\\n  var VLQ_BASE_SHIFT = 5;\\n\\n  // binary: 100000\\n  var VLQ_BASE = 1 << VLQ_BASE_SHIFT;\\n\\n  // binary: 011111\\n  var VLQ_BASE_MASK = VLQ_BASE - 1;\\n\\n  // binary: 100000\\n  var VLQ_CONTINUATION_BIT = VLQ_BASE;\\n\\n  /**\\n   * Converts from a two-complement value to a value where the sign bit is\\n   * placed in the least significant bit.  For example, as decimals:\\n   *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\\n   *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\\n   */\\n  function toVLQSigned(aValue) {\\n    return aValue < 0\\n      ? ((-aValue) << 1) + 1\\n      : (aValue << 1) + 0;\\n  }\\n\\n  /**\\n   * Converts to a two-complement value from a value where the sign bit is\\n   * placed in the least significant bit.  For example, as decimals:\\n   *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\\n   *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\\n   */\\n  function fromVLQSigned(aValue) {\\n    var isNegative = (aValue & 1) === 1;\\n    var shifted = aValue >> 1;\\n    return isNegative\\n      ? -shifted\\n      : shifted;\\n  }\\n\\n  /**\\n   * Returns the base 64 VLQ encoded value.\\n   */\\n  exports.encode = function base64VLQ_encode(aValue) {\\n    var encoded = \\"\\";\\n    var digit;\\n\\n    var vlq = toVLQSigned(aValue);\\n\\n    do {\\n      digit = vlq & VLQ_BASE_MASK;\\n      vlq >>>= VLQ_BASE_SHIFT;\\n      if (vlq > 0) {\\n        // There are still more digits in this value, so we must make sure the\\n        // continuation bit is marked.\\n        digit |= VLQ_CONTINUATION_BIT;\\n      }\\n      encoded += base64.encode(digit);\\n    } while (vlq > 0);\\n\\n    return encoded;\\n  };\\n\\n  /**\\n   * Decodes the next base 64 VLQ value from the given string and returns the\\n   * value and the rest of the string via the out parameter.\\n   */\\n  exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\\n    var strLen = aStr.length;\\n    var result = 0;\\n    var shift = 0;\\n    var continuation, digit;\\n\\n    do {\\n      if (aIndex >= strLen) {\\n        throw new Error(\\"Expected more digits in base 64 VLQ value.\\");\\n      }\\n\\n      digit = base64.decode(aStr.charCodeAt(aIndex++));\\n      if (digit === -1) {\\n        throw new Error(\\"Invalid base64 digit: \\" + aStr.charAt(aIndex - 1));\\n      }\\n\\n      continuation = !!(digit & VLQ_CONTINUATION_BIT);\\n      digit &= VLQ_BASE_MASK;\\n      result = result + (digit << shift);\\n      shift += VLQ_BASE_SHIFT;\\n    } while (continuation);\\n\\n    aOutParam.value = fromVLQSigned(result);\\n    aOutParam.rest = aIndex;\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/base64-vlq.js\\n ** module id = 32\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var intToCharMap = \'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\'.split(\'\');\\n\\n  /**\\n   * Encode an integer in the range of 0 to 63 to a single base 64 digit.\\n   */\\n  exports.encode = function (number) {\\n    if (0 <= number && number < intToCharMap.length) {\\n      return intToCharMap[number];\\n    }\\n    throw new TypeError(\\"Must be between 0 and 63: \\" + number);\\n  };\\n\\n  /**\\n   * Decode a single base 64 character code digit to an integer. Returns -1 on\\n   * failure.\\n   */\\n  exports.decode = function (charCode) {\\n    var bigA = 65;     // \'A\'\\n    var bigZ = 90;     // \'Z\'\\n\\n    var littleA = 97;  // \'a\'\\n    var littleZ = 122; // \'z\'\\n\\n    var zero = 48;     // \'0\'\\n    var nine = 57;     // \'9\'\\n\\n    var plus = 43;     // \'+\'\\n    var slash = 47;    // \'/\'\\n\\n    var littleOffset = 26;\\n    var numberOffset = 52;\\n\\n    // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\\n    if (bigA <= charCode && charCode <= bigZ) {\\n      return (charCode - bigA);\\n    }\\n\\n    // 26 - 51: abcdefghijklmnopqrstuvwxyz\\n    if (littleA <= charCode && charCode <= littleZ) {\\n      return (charCode - littleA + littleOffset);\\n    }\\n\\n    // 52 - 61: 0123456789\\n    if (zero <= charCode && charCode <= nine) {\\n      return (charCode - zero + numberOffset);\\n    }\\n\\n    // 62: +\\n    if (charCode == plus) {\\n      return 62;\\n    }\\n\\n    // 63: /\\n    if (charCode == slash) {\\n      return 63;\\n    }\\n\\n    // Invalid base64 digit.\\n    return -1;\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/base64.js\\n ** module id = 33\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  /**\\n   * This is a helper function for getting values from parameter/options\\n   * objects.\\n   *\\n   * @param args The object we are extracting values from\\n   * @param name The name of the property we are getting.\\n   * @param defaultValue An optional value to return if the property is missing\\n   * from the object. If this is not specified and the property is missing, an\\n   * error will be thrown.\\n   */\\n  function getArg(aArgs, aName, aDefaultValue) {\\n    if (aName in aArgs) {\\n      return aArgs[aName];\\n    } else if (arguments.length === 3) {\\n      return aDefaultValue;\\n    } else {\\n      throw new Error(\'\\"\' + aName + \'\\" is a required argument.\');\\n    }\\n  }\\n  exports.getArg = getArg;\\n\\n  var urlRegexp = /^(?:([\\\\w+\\\\-.]+):)?\\\\/\\\\/(?:(\\\\w+:\\\\w+)@)?([\\\\w.]*)(?::(\\\\d+))?(\\\\S*)$/;\\n  var dataUrlRegexp = /^data:.+\\\\,.+$/;\\n\\n  function urlParse(aUrl) {\\n    var match = aUrl.match(urlRegexp);\\n    if (!match) {\\n      return null;\\n    }\\n    return {\\n      scheme: match[1],\\n      auth: match[2],\\n      host: match[3],\\n      port: match[4],\\n      path: match[5]\\n    };\\n  }\\n  exports.urlParse = urlParse;\\n\\n  function urlGenerate(aParsedUrl) {\\n    var url = \'\';\\n    if (aParsedUrl.scheme) {\\n      url += aParsedUrl.scheme + \':\';\\n    }\\n    url += \'//\';\\n    if (aParsedUrl.auth) {\\n      url += aParsedUrl.auth + \'@\';\\n    }\\n    if (aParsedUrl.host) {\\n      url += aParsedUrl.host;\\n    }\\n    if (aParsedUrl.port) {\\n      url += \\":\\" + aParsedUrl.port\\n    }\\n    if (aParsedUrl.path) {\\n      url += aParsedUrl.path;\\n    }\\n    return url;\\n  }\\n  exports.urlGenerate = urlGenerate;\\n\\n  /**\\n   * Normalizes a path, or the path portion of a URL:\\n   *\\n   * - Replaces consequtive slashes with one slash.\\n   * - Removes unnecessary \'.\' parts.\\n   * - Removes unnecessary \'<dir>/..\' parts.\\n   *\\n   * Based on code in the Node.js \'path\' core module.\\n   *\\n   * @param aPath The path or url to normalize.\\n   */\\n  function normalize(aPath) {\\n    var path = aPath;\\n    var url = urlParse(aPath);\\n    if (url) {\\n      if (!url.path) {\\n        return aPath;\\n      }\\n      path = url.path;\\n    }\\n    var isAbsolute = exports.isAbsolute(path);\\n\\n    var parts = path.split(/\\\\/+/);\\n    for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\\n      part = parts[i];\\n      if (part === \'.\') {\\n        parts.splice(i, 1);\\n      } else if (part === \'..\') {\\n        up++;\\n      } else if (up > 0) {\\n        if (part === \'\') {\\n          // The first part is blank if the path is absolute. Trying to go\\n          // above the root is a no-op. Therefore we can remove all \'..\' parts\\n          // directly after the root.\\n          parts.splice(i + 1, up);\\n          up = 0;\\n        } else {\\n          parts.splice(i, 2);\\n          up--;\\n        }\\n      }\\n    }\\n    path = parts.join(\'/\');\\n\\n    if (path === \'\') {\\n      path = isAbsolute ? \'/\' : \'.\';\\n    }\\n\\n    if (url) {\\n      url.path = path;\\n      return urlGenerate(url);\\n    }\\n    return path;\\n  }\\n  exports.normalize = normalize;\\n\\n  /**\\n   * Joins two paths/URLs.\\n   *\\n   * @param aRoot The root path or URL.\\n   * @param aPath The path or URL to be joined with the root.\\n   *\\n   * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\\n   *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\\n   *   first.\\n   * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\\n   *   is updated with the result and aRoot is returned. Otherwise the result\\n   *   is returned.\\n   *   - If aPath is absolute, the result is aPath.\\n   *   - Otherwise the two paths are joined with a slash.\\n   * - Joining for example \'http://\' and \'www.example.com\' is also supported.\\n   */\\n  function join(aRoot, aPath) {\\n    if (aRoot === \\"\\") {\\n      aRoot = \\".\\";\\n    }\\n    if (aPath === \\"\\") {\\n      aPath = \\".\\";\\n    }\\n    var aPathUrl = urlParse(aPath);\\n    var aRootUrl = urlParse(aRoot);\\n    if (aRootUrl) {\\n      aRoot = aRootUrl.path || \'/\';\\n    }\\n\\n    // `join(foo, \'//www.example.org\')`\\n    if (aPathUrl && !aPathUrl.scheme) {\\n      if (aRootUrl) {\\n        aPathUrl.scheme = aRootUrl.scheme;\\n      }\\n      return urlGenerate(aPathUrl);\\n    }\\n\\n    if (aPathUrl || aPath.match(dataUrlRegexp)) {\\n      return aPath;\\n    }\\n\\n    // `join(\'http://\', \'www.example.com\')`\\n    if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\\n      aRootUrl.host = aPath;\\n      return urlGenerate(aRootUrl);\\n    }\\n\\n    var joined = aPath.charAt(0) === \'/\'\\n      ? aPath\\n      : normalize(aRoot.replace(/\\\\/+$/, \'\') + \'/\' + aPath);\\n\\n    if (aRootUrl) {\\n      aRootUrl.path = joined;\\n      return urlGenerate(aRootUrl);\\n    }\\n    return joined;\\n  }\\n  exports.join = join;\\n\\n  exports.isAbsolute = function (aPath) {\\n    return aPath.charAt(0) === \'/\' || !!aPath.match(urlRegexp);\\n  };\\n\\n  /**\\n   * Make a path relative to a URL or another path.\\n   *\\n   * @param aRoot The root path or URL.\\n   * @param aPath The path or URL to be made relative to aRoot.\\n   */\\n  function relative(aRoot, aPath) {\\n    if (aRoot === \\"\\") {\\n      aRoot = \\".\\";\\n    }\\n\\n    aRoot = aRoot.replace(/\\\\/$/, \'\');\\n\\n    // It is possible for the path to be above the root. In this case, simply\\n    // checking whether the root is a prefix of the path won\'t work. Instead, we\\n    // need to remove components from the root one by one, until either we find\\n    // a prefix that fits, or we run out of components to remove.\\n    var level = 0;\\n    while (aPath.indexOf(aRoot + \'/\') !== 0) {\\n      var index = aRoot.lastIndexOf(\\"/\\");\\n      if (index < 0) {\\n        return aPath;\\n      }\\n\\n      // If the only part of the root that is left is the scheme (i.e. http://,\\n      // file:///, etc.), one or more slashes (/), or simply nothing at all, we\\n      // have exhausted all components, so the path is not relative to the root.\\n      aRoot = aRoot.slice(0, index);\\n      if (aRoot.match(/^([^\\\\/]+:\\\\/)?\\\\/*$/)) {\\n        return aPath;\\n      }\\n\\n      ++level;\\n    }\\n\\n    // Make sure we add a \\"../\\" for each component we removed from the root.\\n    return Array(level + 1).join(\\"../\\") + aPath.substr(aRoot.length + 1);\\n  }\\n  exports.relative = relative;\\n\\n  /**\\n   * Because behavior goes wacky when you set `__proto__` on objects, we\\n   * have to prefix all the strings in our set with an arbitrary character.\\n   *\\n   * See https://github.com/mozilla/source-map/pull/31 and\\n   * https://github.com/mozilla/source-map/issues/30\\n   *\\n   * @param String aStr\\n   */\\n  function toSetString(aStr) {\\n    return \'$\' + aStr;\\n  }\\n  exports.toSetString = toSetString;\\n\\n  function fromSetString(aStr) {\\n    return aStr.substr(1);\\n  }\\n  exports.fromSetString = fromSetString;\\n\\n  /**\\n   * Comparator between two mappings where the original positions are compared.\\n   *\\n   * Optionally pass in `true` as `onlyCompareGenerated` to consider two\\n   * mappings with the same original source/line/column, but different generated\\n   * line and column the same. Useful when searching for a mapping with a\\n   * stubbed out mapping.\\n   */\\n  function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\\n    var cmp = mappingA.source - mappingB.source;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalLine - mappingB.originalLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalColumn - mappingB.originalColumn;\\n    if (cmp !== 0 || onlyCompareOriginal) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedColumn - mappingB.generatedColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedLine - mappingB.generatedLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    return mappingA.name - mappingB.name;\\n  }\\n  exports.compareByOriginalPositions = compareByOriginalPositions;\\n\\n  /**\\n   * Comparator between two mappings with deflated source and name indices where\\n   * the generated positions are compared.\\n   *\\n   * Optionally pass in `true` as `onlyCompareGenerated` to consider two\\n   * mappings with the same generated line and column, but different\\n   * source/name/original line and column the same. Useful when searching for a\\n   * mapping with a stubbed out mapping.\\n   */\\n  function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\\n    var cmp = mappingA.generatedLine - mappingB.generatedLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedColumn - mappingB.generatedColumn;\\n    if (cmp !== 0 || onlyCompareGenerated) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.source - mappingB.source;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalLine - mappingB.originalLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalColumn - mappingB.originalColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    return mappingA.name - mappingB.name;\\n  }\\n  exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\\n\\n  function strcmp(aStr1, aStr2) {\\n    if (aStr1 === aStr2) {\\n      return 0;\\n    }\\n\\n    if (aStr1 > aStr2) {\\n      return 1;\\n    }\\n\\n    return -1;\\n  }\\n\\n  /**\\n   * Comparator between two mappings with inflated source and name strings where\\n   * the generated positions are compared.\\n   */\\n  function compareByGeneratedPositionsInflated(mappingA, mappingB) {\\n    var cmp = mappingA.generatedLine - mappingB.generatedLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.generatedColumn - mappingB.generatedColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = strcmp(mappingA.source, mappingB.source);\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalLine - mappingB.originalLine;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    cmp = mappingA.originalColumn - mappingB.originalColumn;\\n    if (cmp !== 0) {\\n      return cmp;\\n    }\\n\\n    return strcmp(mappingA.name, mappingB.name);\\n  }\\n  exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/util.js\\n ** module id = 34\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var util = require(\'./util\');\\n\\n  /**\\n   * A data structure which is a combination of an array and a set. Adding a new\\n   * member is O(1), testing for membership is O(1), and finding the index of an\\n   * element is O(1). Removing elements from the set is not supported. Only\\n   * strings are supported for membership.\\n   */\\n  function ArraySet() {\\n    this._array = [];\\n    this._set = {};\\n  }\\n\\n  /**\\n   * Static method for creating ArraySet instances from an existing array.\\n   */\\n  ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\\n    var set = new ArraySet();\\n    for (var i = 0, len = aArray.length; i < len; i++) {\\n      set.add(aArray[i], aAllowDuplicates);\\n    }\\n    return set;\\n  };\\n\\n  /**\\n   * Return how many unique items are in this ArraySet. If duplicates have been\\n   * added, than those do not count towards the size.\\n   *\\n   * @returns Number\\n   */\\n  ArraySet.prototype.size = function ArraySet_size() {\\n    return Object.getOwnPropertyNames(this._set).length;\\n  };\\n\\n  /**\\n   * Add the given string to this set.\\n   *\\n   * @param String aStr\\n   */\\n  ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\\n    var sStr = util.toSetString(aStr);\\n    var isDuplicate = this._set.hasOwnProperty(sStr);\\n    var idx = this._array.length;\\n    if (!isDuplicate || aAllowDuplicates) {\\n      this._array.push(aStr);\\n    }\\n    if (!isDuplicate) {\\n      this._set[sStr] = idx;\\n    }\\n  };\\n\\n  /**\\n   * Is the given string a member of this set?\\n   *\\n   * @param String aStr\\n   */\\n  ArraySet.prototype.has = function ArraySet_has(aStr) {\\n    var sStr = util.toSetString(aStr);\\n    return this._set.hasOwnProperty(sStr);\\n  };\\n\\n  /**\\n   * What is the index of the given string in the array?\\n   *\\n   * @param String aStr\\n   */\\n  ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\\n    var sStr = util.toSetString(aStr);\\n    if (this._set.hasOwnProperty(sStr)) {\\n      return this._set[sStr];\\n    }\\n    throw new Error(\'\\"\' + aStr + \'\\" is not in the set.\');\\n  };\\n\\n  /**\\n   * What is the element at the given index?\\n   *\\n   * @param Number aIdx\\n   */\\n  ArraySet.prototype.at = function ArraySet_at(aIdx) {\\n    if (aIdx >= 0 && aIdx < this._array.length) {\\n      return this._array[aIdx];\\n    }\\n    throw new Error(\'No element indexed by \' + aIdx);\\n  };\\n\\n  /**\\n   * Returns the array representation of this set (which has the proper indices\\n   * indicated by indexOf). Note that this is a copy of the internal array used\\n   * for storing the members so that no one can mess with internal state.\\n   */\\n  ArraySet.prototype.toArray = function ArraySet_toArray() {\\n    return this._array.slice();\\n  };\\n\\n  exports.ArraySet = ArraySet;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/array-set.js\\n ** module id = 35\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2014 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var util = require(\'./util\');\\n\\n  /**\\n   * Determine whether mappingB is after mappingA with respect to generated\\n   * position.\\n   */\\n  function generatedPositionAfter(mappingA, mappingB) {\\n    // Optimized for most common case\\n    var lineA = mappingA.generatedLine;\\n    var lineB = mappingB.generatedLine;\\n    var columnA = mappingA.generatedColumn;\\n    var columnB = mappingB.generatedColumn;\\n    return lineB > lineA || lineB == lineA && columnB >= columnA ||\\n           util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\\n  }\\n\\n  /**\\n   * A data structure to provide a sorted view of accumulated mappings in a\\n   * performance conscious manner. It trades a neglibable overhead in general\\n   * case for a large speedup in case of mappings being added in order.\\n   */\\n  function MappingList() {\\n    this._array = [];\\n    this._sorted = true;\\n    // Serves as infimum\\n    this._last = {generatedLine: -1, generatedColumn: 0};\\n  }\\n\\n  /**\\n   * Iterate through internal items. This method takes the same arguments that\\n   * `Array.prototype.forEach` takes.\\n   *\\n   * NOTE: The order of the mappings is NOT guaranteed.\\n   */\\n  MappingList.prototype.unsortedForEach =\\n    function MappingList_forEach(aCallback, aThisArg) {\\n      this._array.forEach(aCallback, aThisArg);\\n    };\\n\\n  /**\\n   * Add the given source mapping.\\n   *\\n   * @param Object aMapping\\n   */\\n  MappingList.prototype.add = function MappingList_add(aMapping) {\\n    if (generatedPositionAfter(this._last, aMapping)) {\\n      this._last = aMapping;\\n      this._array.push(aMapping);\\n    } else {\\n      this._sorted = false;\\n      this._array.push(aMapping);\\n    }\\n  };\\n\\n  /**\\n   * Returns the flat, sorted array of mappings. The mappings are sorted by\\n   * generated position.\\n   *\\n   * WARNING: This method returns internal data without copying, for\\n   * performance. The return value must NOT be mutated, and should be treated as\\n   * an immutable borrow. If you want to take ownership, you must make your own\\n   * copy.\\n   */\\n  MappingList.prototype.toArray = function MappingList_toArray() {\\n    if (!this._sorted) {\\n      this._array.sort(util.compareByGeneratedPositionsInflated);\\n      this._sorted = true;\\n    }\\n    return this._array;\\n  };\\n\\n  exports.MappingList = MappingList;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/mapping-list.js\\n ** module id = 36\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var util = require(\'./util\');\\n  var binarySearch = require(\'./binary-search\');\\n  var ArraySet = require(\'./array-set\').ArraySet;\\n  var base64VLQ = require(\'./base64-vlq\');\\n  var quickSort = require(\'./quick-sort\').quickSort;\\n\\n  function SourceMapConsumer(aSourceMap) {\\n    var sourceMap = aSourceMap;\\n    if (typeof aSourceMap === \'string\') {\\n      sourceMap = JSON.parse(aSourceMap.replace(/^\\\\)\\\\]\\\\}\'/, \'\'));\\n    }\\n\\n    return sourceMap.sections != null\\n      ? new IndexedSourceMapConsumer(sourceMap)\\n      : new BasicSourceMapConsumer(sourceMap);\\n  }\\n\\n  SourceMapConsumer.fromSourceMap = function(aSourceMap) {\\n    return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\\n  }\\n\\n  /**\\n   * The version of the source mapping spec that we are consuming.\\n   */\\n  SourceMapConsumer.prototype._version = 3;\\n\\n  // `__generatedMappings` and `__originalMappings` are arrays that hold the\\n  // parsed mapping coordinates from the source map\'s \\"mappings\\" attribute. They\\n  // are lazily instantiated, accessed via the `_generatedMappings` and\\n  // `_originalMappings` getters respectively, and we only parse the mappings\\n  // and create these arrays once queried for a source location. We jump through\\n  // these hoops because there can be many thousands of mappings, and parsing\\n  // them is expensive, so we only want to do it if we must.\\n  //\\n  // Each object in the arrays is of the form:\\n  //\\n  //     {\\n  //       generatedLine: The line number in the generated code,\\n  //       generatedColumn: The column number in the generated code,\\n  //       source: The path to the original source file that generated this\\n  //               chunk of code,\\n  //       originalLine: The line number in the original source that\\n  //                     corresponds to this chunk of generated code,\\n  //       originalColumn: The column number in the original source that\\n  //                       corresponds to this chunk of generated code,\\n  //       name: The name of the original symbol which generated this chunk of\\n  //             code.\\n  //     }\\n  //\\n  // All properties except for `generatedLine` and `generatedColumn` can be\\n  // `null`.\\n  //\\n  // `_generatedMappings` is ordered by the generated positions.\\n  //\\n  // `_originalMappings` is ordered by the original positions.\\n\\n  SourceMapConsumer.prototype.__generatedMappings = null;\\n  Object.defineProperty(SourceMapConsumer.prototype, \'_generatedMappings\', {\\n    get: function () {\\n      if (!this.__generatedMappings) {\\n        this._parseMappings(this._mappings, this.sourceRoot);\\n      }\\n\\n      return this.__generatedMappings;\\n    }\\n  });\\n\\n  SourceMapConsumer.prototype.__originalMappings = null;\\n  Object.defineProperty(SourceMapConsumer.prototype, \'_originalMappings\', {\\n    get: function () {\\n      if (!this.__originalMappings) {\\n        this._parseMappings(this._mappings, this.sourceRoot);\\n      }\\n\\n      return this.__originalMappings;\\n    }\\n  });\\n\\n  SourceMapConsumer.prototype._charIsMappingSeparator =\\n    function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\\n      var c = aStr.charAt(index);\\n      return c === \\";\\" || c === \\",\\";\\n    };\\n\\n  /**\\n   * Parse the mappings in a string in to a data structure which we can easily\\n   * query (the ordered arrays in the `this.__generatedMappings` and\\n   * `this.__originalMappings` properties).\\n   */\\n  SourceMapConsumer.prototype._parseMappings =\\n    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\\n      throw new Error(\\"Subclasses must implement _parseMappings\\");\\n    };\\n\\n  SourceMapConsumer.GENERATED_ORDER = 1;\\n  SourceMapConsumer.ORIGINAL_ORDER = 2;\\n\\n  SourceMapConsumer.GREATEST_LOWER_BOUND = 1;\\n  SourceMapConsumer.LEAST_UPPER_BOUND = 2;\\n\\n  /**\\n   * Iterate over each mapping between an original source/line/column and a\\n   * generated line/column in this source map.\\n   *\\n   * @param Function aCallback\\n   *        The function that is called with each mapping.\\n   * @param Object aContext\\n   *        Optional. If specified, this object will be the value of `this` every\\n   *        time that `aCallback` is called.\\n   * @param aOrder\\n   *        Either `SourceMapConsumer.GENERATED_ORDER` or\\n   *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\\n   *        iterate over the mappings sorted by the generated file\'s line/column\\n   *        order or the original\'s source/line/column order, respectively. Defaults to\\n   *        `SourceMapConsumer.GENERATED_ORDER`.\\n   */\\n  SourceMapConsumer.prototype.eachMapping =\\n    function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\\n      var context = aContext || null;\\n      var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\\n\\n      var mappings;\\n      switch (order) {\\n      case SourceMapConsumer.GENERATED_ORDER:\\n        mappings = this._generatedMappings;\\n        break;\\n      case SourceMapConsumer.ORIGINAL_ORDER:\\n        mappings = this._originalMappings;\\n        break;\\n      default:\\n        throw new Error(\\"Unknown order of iteration.\\");\\n      }\\n\\n      var sourceRoot = this.sourceRoot;\\n      mappings.map(function (mapping) {\\n        var source = mapping.source === null ? null : this._sources.at(mapping.source);\\n        if (source != null && sourceRoot != null) {\\n          source = util.join(sourceRoot, source);\\n        }\\n        return {\\n          source: source,\\n          generatedLine: mapping.generatedLine,\\n          generatedColumn: mapping.generatedColumn,\\n          originalLine: mapping.originalLine,\\n          originalColumn: mapping.originalColumn,\\n          name: mapping.name === null ? null : this._names.at(mapping.name)\\n        };\\n      }, this).forEach(aCallback, context);\\n    };\\n\\n  /**\\n   * Returns all generated line and column information for the original source,\\n   * line, and column provided. If no column is provided, returns all mappings\\n   * corresponding to a either the line we are searching for or the next\\n   * closest line that has any mappings. Otherwise, returns all mappings\\n   * corresponding to the given line and either the column we are searching for\\n   * or the next closest column that has any offsets.\\n   *\\n   * The only argument is an object with the following properties:\\n   *\\n   *   - source: The filename of the original source.\\n   *   - line: The line number in the original source.\\n   *   - column: Optional. the column number in the original source.\\n   *\\n   * and an array of objects is returned, each with the following properties:\\n   *\\n   *   - line: The line number in the generated source, or null.\\n   *   - column: The column number in the generated source, or null.\\n   */\\n  SourceMapConsumer.prototype.allGeneratedPositionsFor =\\n    function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\\n      var line = util.getArg(aArgs, \'line\');\\n\\n      // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\\n      // returns the index of the closest mapping less than the needle. By\\n      // setting needle.originalColumn to 0, we thus find the last mapping for\\n      // the given line, provided such a mapping exists.\\n      var needle = {\\n        source: util.getArg(aArgs, \'source\'),\\n        originalLine: line,\\n        originalColumn: util.getArg(aArgs, \'column\', 0)\\n      };\\n\\n      if (this.sourceRoot != null) {\\n        needle.source = util.relative(this.sourceRoot, needle.source);\\n      }\\n      if (!this._sources.has(needle.source)) {\\n        return [];\\n      }\\n      needle.source = this._sources.indexOf(needle.source);\\n\\n      var mappings = [];\\n\\n      var index = this._findMapping(needle,\\n                                    this._originalMappings,\\n                                    \\"originalLine\\",\\n                                    \\"originalColumn\\",\\n                                    util.compareByOriginalPositions,\\n                                    binarySearch.LEAST_UPPER_BOUND);\\n      if (index >= 0) {\\n        var mapping = this._originalMappings[index];\\n\\n        if (aArgs.column === undefined) {\\n          var originalLine = mapping.originalLine;\\n\\n          // Iterate until either we run out of mappings, or we run into\\n          // a mapping for a different line than the one we found. Since\\n          // mappings are sorted, this is guaranteed to find all mappings for\\n          // the line we found.\\n          while (mapping && mapping.originalLine === originalLine) {\\n            mappings.push({\\n              line: util.getArg(mapping, \'generatedLine\', null),\\n              column: util.getArg(mapping, \'generatedColumn\', null),\\n              lastColumn: util.getArg(mapping, \'lastGeneratedColumn\', null)\\n            });\\n\\n            mapping = this._originalMappings[++index];\\n          }\\n        } else {\\n          var originalColumn = mapping.originalColumn;\\n\\n          // Iterate until either we run out of mappings, or we run into\\n          // a mapping for a different line than the one we were searching for.\\n          // Since mappings are sorted, this is guaranteed to find all mappings for\\n          // the line we are searching for.\\n          while (mapping &&\\n                 mapping.originalLine === line &&\\n                 mapping.originalColumn == originalColumn) {\\n            mappings.push({\\n              line: util.getArg(mapping, \'generatedLine\', null),\\n              column: util.getArg(mapping, \'generatedColumn\', null),\\n              lastColumn: util.getArg(mapping, \'lastGeneratedColumn\', null)\\n            });\\n\\n            mapping = this._originalMappings[++index];\\n          }\\n        }\\n      }\\n\\n      return mappings;\\n    };\\n\\n  exports.SourceMapConsumer = SourceMapConsumer;\\n\\n  /**\\n   * A BasicSourceMapConsumer instance represents a parsed source map which we can\\n   * query for information about the original file positions by giving it a file\\n   * position in the generated source.\\n   *\\n   * The only parameter is the raw source map (either as a JSON string, or\\n   * already parsed to an object). According to the spec, source maps have the\\n   * following attributes:\\n   *\\n   *   - version: Which version of the source map spec this map is following.\\n   *   - sources: An array of URLs to the original source files.\\n   *   - names: An array of identifiers which can be referrenced by individual mappings.\\n   *   - sourceRoot: Optional. The URL root from which all sources are relative.\\n   *   - sourcesContent: Optional. An array of contents of the original source files.\\n   *   - mappings: A string of base64 VLQs which contain the actual mappings.\\n   *   - file: Optional. The generated file this source map is associated with.\\n   *\\n   * Here is an example source map, taken from the source map spec[0]:\\n   *\\n   *     {\\n   *       version : 3,\\n   *       file: \\"out.js\\",\\n   *       sourceRoot : \\"\\",\\n   *       sources: [\\"foo.js\\", \\"bar.js\\"],\\n   *       names: [\\"src\\", \\"maps\\", \\"are\\", \\"fun\\"],\\n   *       mappings: \\"AA,AB;;ABCDE;\\"\\n   *     }\\n   *\\n   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\\n   */\\n  function BasicSourceMapConsumer(aSourceMap) {\\n    var sourceMap = aSourceMap;\\n    if (typeof aSourceMap === \'string\') {\\n      sourceMap = JSON.parse(aSourceMap.replace(/^\\\\)\\\\]\\\\}\'/, \'\'));\\n    }\\n\\n    var version = util.getArg(sourceMap, \'version\');\\n    var sources = util.getArg(sourceMap, \'sources\');\\n    // Sass 3.3 leaves out the \'names\' array, so we deviate from the spec (which\\n    // requires the array) to play nice here.\\n    var names = util.getArg(sourceMap, \'names\', []);\\n    var sourceRoot = util.getArg(sourceMap, \'sourceRoot\', null);\\n    var sourcesContent = util.getArg(sourceMap, \'sourcesContent\', null);\\n    var mappings = util.getArg(sourceMap, \'mappings\');\\n    var file = util.getArg(sourceMap, \'file\', null);\\n\\n    // Once again, Sass deviates from the spec and supplies the version as a\\n    // string rather than a number, so we use loose equality checking here.\\n    if (version != this._version) {\\n      throw new Error(\'Unsupported version: \' + version);\\n    }\\n\\n    sources = sources\\n      // Some source maps produce relative source paths like \\"./foo.js\\" instead of\\n      // \\"foo.js\\".  Normalize these first so that future comparisons will succeed.\\n      // See bugzil.la/1090768.\\n      .map(util.normalize)\\n      // Always ensure that absolute sources are internally stored relative to\\n      // the source root, if the source root is absolute. Not doing this would\\n      // be particularly problematic when the source root is a prefix of the\\n      // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\\n      .map(function (source) {\\n        return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\\n          ? util.relative(sourceRoot, source)\\n          : source;\\n      });\\n\\n    // Pass `true` below to allow duplicate names and sources. While source maps\\n    // are intended to be compressed and deduplicated, the TypeScript compiler\\n    // sometimes generates source maps with duplicates in them. See Github issue\\n    // #72 and bugzil.la/889492.\\n    this._names = ArraySet.fromArray(names, true);\\n    this._sources = ArraySet.fromArray(sources, true);\\n\\n    this.sourceRoot = sourceRoot;\\n    this.sourcesContent = sourcesContent;\\n    this._mappings = mappings;\\n    this.file = file;\\n  }\\n\\n  BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\\n  BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\\n\\n  /**\\n   * Create a BasicSourceMapConsumer from a SourceMapGenerator.\\n   *\\n   * @param SourceMapGenerator aSourceMap\\n   *        The source map that will be consumed.\\n   * @returns BasicSourceMapConsumer\\n   */\\n  BasicSourceMapConsumer.fromSourceMap =\\n    function SourceMapConsumer_fromSourceMap(aSourceMap) {\\n      var smc = Object.create(BasicSourceMapConsumer.prototype);\\n\\n      var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\\n      var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\\n      smc.sourceRoot = aSourceMap._sourceRoot;\\n      smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\\n                                                              smc.sourceRoot);\\n      smc.file = aSourceMap._file;\\n\\n      // Because we are modifying the entries (by converting string sources and\\n      // names to indices into the sources and names ArraySets), we have to make\\n      // a copy of the entry or else bad things happen. Shared mutable state\\n      // strikes again! See github issue #191.\\n\\n      var generatedMappings = aSourceMap._mappings.toArray().slice();\\n      var destGeneratedMappings = smc.__generatedMappings = [];\\n      var destOriginalMappings = smc.__originalMappings = [];\\n\\n      for (var i = 0, length = generatedMappings.length; i < length; i++) {\\n        var srcMapping = generatedMappings[i];\\n        var destMapping = new Mapping;\\n        destMapping.generatedLine = srcMapping.generatedLine;\\n        destMapping.generatedColumn = srcMapping.generatedColumn;\\n\\n        if (srcMapping.source) {\\n          destMapping.source = sources.indexOf(srcMapping.source);\\n          destMapping.originalLine = srcMapping.originalLine;\\n          destMapping.originalColumn = srcMapping.originalColumn;\\n\\n          if (srcMapping.name) {\\n            destMapping.name = names.indexOf(srcMapping.name);\\n          }\\n\\n          destOriginalMappings.push(destMapping);\\n        }\\n\\n        destGeneratedMappings.push(destMapping);\\n      }\\n\\n      quickSort(smc.__originalMappings, util.compareByOriginalPositions);\\n\\n      return smc;\\n    };\\n\\n  /**\\n   * The version of the source mapping spec that we are consuming.\\n   */\\n  BasicSourceMapConsumer.prototype._version = 3;\\n\\n  /**\\n   * The list of original sources.\\n   */\\n  Object.defineProperty(BasicSourceMapConsumer.prototype, \'sources\', {\\n    get: function () {\\n      return this._sources.toArray().map(function (s) {\\n        return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\\n      }, this);\\n    }\\n  });\\n\\n  /**\\n   * Provide the JIT with a nice shape / hidden class.\\n   */\\n  function Mapping() {\\n    this.generatedLine = 0;\\n    this.generatedColumn = 0;\\n    this.source = null;\\n    this.originalLine = null;\\n    this.originalColumn = null;\\n    this.name = null;\\n  }\\n\\n  /**\\n   * Parse the mappings in a string in to a data structure which we can easily\\n   * query (the ordered arrays in the `this.__generatedMappings` and\\n   * `this.__originalMappings` properties).\\n   */\\n  BasicSourceMapConsumer.prototype._parseMappings =\\n    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\\n      var generatedLine = 1;\\n      var previousGeneratedColumn = 0;\\n      var previousOriginalLine = 0;\\n      var previousOriginalColumn = 0;\\n      var previousSource = 0;\\n      var previousName = 0;\\n      var length = aStr.length;\\n      var index = 0;\\n      var cachedSegments = {};\\n      var temp = {};\\n      var originalMappings = [];\\n      var generatedMappings = [];\\n      var mapping, str, segment, end, value;\\n\\n      while (index < length) {\\n        if (aStr.charAt(index) === \';\') {\\n          generatedLine++;\\n          index++;\\n          previousGeneratedColumn = 0;\\n        }\\n        else if (aStr.charAt(index) === \',\') {\\n          index++;\\n        }\\n        else {\\n          mapping = new Mapping();\\n          mapping.generatedLine = generatedLine;\\n\\n          // Because each offset is encoded relative to the previous one,\\n          // many segments often have the same encoding. We can exploit this\\n          // fact by caching the parsed variable length fields of each segment,\\n          // allowing us to avoid a second parse if we encounter the same\\n          // segment again.\\n          for (end = index; end < length; end++) {\\n            if (this._charIsMappingSeparator(aStr, end)) {\\n              break;\\n            }\\n          }\\n          str = aStr.slice(index, end);\\n\\n          segment = cachedSegments[str];\\n          if (segment) {\\n            index += str.length;\\n          } else {\\n            segment = [];\\n            while (index < end) {\\n              base64VLQ.decode(aStr, index, temp);\\n              value = temp.value;\\n              index = temp.rest;\\n              segment.push(value);\\n            }\\n\\n            if (segment.length === 2) {\\n              throw new Error(\'Found a source, but no line and column\');\\n            }\\n\\n            if (segment.length === 3) {\\n              throw new Error(\'Found a source and line, but no column\');\\n            }\\n\\n            cachedSegments[str] = segment;\\n          }\\n\\n          // Generated column.\\n          mapping.generatedColumn = previousGeneratedColumn + segment[0];\\n          previousGeneratedColumn = mapping.generatedColumn;\\n\\n          if (segment.length > 1) {\\n            // Original source.\\n            mapping.source = previousSource + segment[1];\\n            previousSource += segment[1];\\n\\n            // Original line.\\n            mapping.originalLine = previousOriginalLine + segment[2];\\n            previousOriginalLine = mapping.originalLine;\\n            // Lines are stored 0-based\\n            mapping.originalLine += 1;\\n\\n            // Original column.\\n            mapping.originalColumn = previousOriginalColumn + segment[3];\\n            previousOriginalColumn = mapping.originalColumn;\\n\\n            if (segment.length > 4) {\\n              // Original name.\\n              mapping.name = previousName + segment[4];\\n              previousName += segment[4];\\n            }\\n          }\\n\\n          generatedMappings.push(mapping);\\n          if (typeof mapping.originalLine === \'number\') {\\n            originalMappings.push(mapping);\\n          }\\n        }\\n      }\\n\\n      quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\\n      this.__generatedMappings = generatedMappings;\\n\\n      quickSort(originalMappings, util.compareByOriginalPositions);\\n      this.__originalMappings = originalMappings;\\n    };\\n\\n  /**\\n   * Find the mapping that best matches the hypothetical \\"needle\\" mapping that\\n   * we are searching for in the given \\"haystack\\" of mappings.\\n   */\\n  BasicSourceMapConsumer.prototype._findMapping =\\n    function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\\n                                           aColumnName, aComparator, aBias) {\\n      // To return the position we are searching for, we must first find the\\n      // mapping for the given position and then return the opposite position it\\n      // points to. Because the mappings are sorted, we can use binary search to\\n      // find the best mapping.\\n\\n      if (aNeedle[aLineName] <= 0) {\\n        throw new TypeError(\'Line must be greater than or equal to 1, got \'\\n                            + aNeedle[aLineName]);\\n      }\\n      if (aNeedle[aColumnName] < 0) {\\n        throw new TypeError(\'Column must be greater than or equal to 0, got \'\\n                            + aNeedle[aColumnName]);\\n      }\\n\\n      return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\\n    };\\n\\n  /**\\n   * Compute the last column for each generated mapping. The last column is\\n   * inclusive.\\n   */\\n  BasicSourceMapConsumer.prototype.computeColumnSpans =\\n    function SourceMapConsumer_computeColumnSpans() {\\n      for (var index = 0; index < this._generatedMappings.length; ++index) {\\n        var mapping = this._generatedMappings[index];\\n\\n        // Mappings do not contain a field for the last generated columnt. We\\n        // can come up with an optimistic estimate, however, by assuming that\\n        // mappings are contiguous (i.e. given two consecutive mappings, the\\n        // first mapping ends where the second one starts).\\n        if (index + 1 < this._generatedMappings.length) {\\n          var nextMapping = this._generatedMappings[index + 1];\\n\\n          if (mapping.generatedLine === nextMapping.generatedLine) {\\n            mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\\n            continue;\\n          }\\n        }\\n\\n        // The last mapping for each line spans the entire line.\\n        mapping.lastGeneratedColumn = Infinity;\\n      }\\n    };\\n\\n  /**\\n   * Returns the original source, line, and column information for the generated\\n   * source\'s line and column positions provided. The only argument is an object\\n   * with the following properties:\\n   *\\n   *   - line: The line number in the generated source.\\n   *   - column: The column number in the generated source.\\n   *   - bias: Either \'SourceMapConsumer.GREATEST_LOWER_BOUND\' or\\n   *     \'SourceMapConsumer.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   *     Defaults to \'SourceMapConsumer.GREATEST_LOWER_BOUND\'.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - source: The original source file, or null.\\n   *   - line: The line number in the original source, or null.\\n   *   - column: The column number in the original source, or null.\\n   *   - name: The original identifier, or null.\\n   */\\n  BasicSourceMapConsumer.prototype.originalPositionFor =\\n    function SourceMapConsumer_originalPositionFor(aArgs) {\\n      var needle = {\\n        generatedLine: util.getArg(aArgs, \'line\'),\\n        generatedColumn: util.getArg(aArgs, \'column\')\\n      };\\n\\n      var index = this._findMapping(\\n        needle,\\n        this._generatedMappings,\\n        \\"generatedLine\\",\\n        \\"generatedColumn\\",\\n        util.compareByGeneratedPositionsDeflated,\\n        util.getArg(aArgs, \'bias\', SourceMapConsumer.GREATEST_LOWER_BOUND)\\n      );\\n\\n      if (index >= 0) {\\n        var mapping = this._generatedMappings[index];\\n\\n        if (mapping.generatedLine === needle.generatedLine) {\\n          var source = util.getArg(mapping, \'source\', null);\\n          if (source !== null) {\\n            source = this._sources.at(source);\\n            if (this.sourceRoot != null) {\\n              source = util.join(this.sourceRoot, source);\\n            }\\n          }\\n          var name = util.getArg(mapping, \'name\', null);\\n          if (name !== null) {\\n            name = this._names.at(name);\\n          }\\n          return {\\n            source: source,\\n            line: util.getArg(mapping, \'originalLine\', null),\\n            column: util.getArg(mapping, \'originalColumn\', null),\\n            name: name\\n          };\\n        }\\n      }\\n\\n      return {\\n        source: null,\\n        line: null,\\n        column: null,\\n        name: null\\n      };\\n    };\\n\\n  /**\\n   * Return true if we have the source content for every source in the source\\n   * map, false otherwise.\\n   */\\n  BasicSourceMapConsumer.prototype.hasContentsOfAllSources =\\n    function BasicSourceMapConsumer_hasContentsOfAllSources() {\\n      if (!this.sourcesContent) {\\n        return false;\\n      }\\n      return this.sourcesContent.length >= this._sources.size() &&\\n        !this.sourcesContent.some(function (sc) { return sc == null; });\\n    };\\n\\n  /**\\n   * Returns the original source content. The only argument is the url of the\\n   * original source file. Returns null if no original source content is\\n   * available.\\n   */\\n  BasicSourceMapConsumer.prototype.sourceContentFor =\\n    function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\\n      if (!this.sourcesContent) {\\n        return null;\\n      }\\n\\n      if (this.sourceRoot != null) {\\n        aSource = util.relative(this.sourceRoot, aSource);\\n      }\\n\\n      if (this._sources.has(aSource)) {\\n        return this.sourcesContent[this._sources.indexOf(aSource)];\\n      }\\n\\n      var url;\\n      if (this.sourceRoot != null\\n          && (url = util.urlParse(this.sourceRoot))) {\\n        // XXX: file:// URIs and absolute paths lead to unexpected behavior for\\n        // many users. We can help them out when they expect file:// URIs to\\n        // behave like it would if they were running a local HTTP server. See\\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\\n        var fileUriAbsPath = aSource.replace(/^file:\\\\/\\\\//, \\"\\");\\n        if (url.scheme == \\"file\\"\\n            && this._sources.has(fileUriAbsPath)) {\\n          return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\\n        }\\n\\n        if ((!url.path || url.path == \\"/\\")\\n            && this._sources.has(\\"/\\" + aSource)) {\\n          return this.sourcesContent[this._sources.indexOf(\\"/\\" + aSource)];\\n        }\\n      }\\n\\n      // This function is used recursively from\\n      // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\\n      // don\'t want to throw if we can\'t find the source - we just want to\\n      // return null, so we provide a flag to exit gracefully.\\n      if (nullOnMissing) {\\n        return null;\\n      }\\n      else {\\n        throw new Error(\'\\"\' + aSource + \'\\" is not in the SourceMap.\');\\n      }\\n    };\\n\\n  /**\\n   * Returns the generated line and column information for the original source,\\n   * line, and column positions provided. The only argument is an object with\\n   * the following properties:\\n   *\\n   *   - source: The filename of the original source.\\n   *   - line: The line number in the original source.\\n   *   - column: The column number in the original source.\\n   *   - bias: Either \'SourceMapConsumer.GREATEST_LOWER_BOUND\' or\\n   *     \'SourceMapConsumer.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   *     Defaults to \'SourceMapConsumer.GREATEST_LOWER_BOUND\'.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - line: The line number in the generated source, or null.\\n   *   - column: The column number in the generated source, or null.\\n   */\\n  BasicSourceMapConsumer.prototype.generatedPositionFor =\\n    function SourceMapConsumer_generatedPositionFor(aArgs) {\\n      var source = util.getArg(aArgs, \'source\');\\n      if (this.sourceRoot != null) {\\n        source = util.relative(this.sourceRoot, source);\\n      }\\n      if (!this._sources.has(source)) {\\n        return {\\n          line: null,\\n          column: null,\\n          lastColumn: null\\n        };\\n      }\\n      source = this._sources.indexOf(source);\\n\\n      var needle = {\\n        source: source,\\n        originalLine: util.getArg(aArgs, \'line\'),\\n        originalColumn: util.getArg(aArgs, \'column\')\\n      };\\n\\n      var index = this._findMapping(\\n        needle,\\n        this._originalMappings,\\n        \\"originalLine\\",\\n        \\"originalColumn\\",\\n        util.compareByOriginalPositions,\\n        util.getArg(aArgs, \'bias\', SourceMapConsumer.GREATEST_LOWER_BOUND)\\n      );\\n\\n      if (index >= 0) {\\n        var mapping = this._originalMappings[index];\\n\\n        if (mapping.source === needle.source) {\\n          return {\\n            line: util.getArg(mapping, \'generatedLine\', null),\\n            column: util.getArg(mapping, \'generatedColumn\', null),\\n            lastColumn: util.getArg(mapping, \'lastGeneratedColumn\', null)\\n          };\\n        }\\n      }\\n\\n      return {\\n        line: null,\\n        column: null,\\n        lastColumn: null\\n      };\\n    };\\n\\n  exports.BasicSourceMapConsumer = BasicSourceMapConsumer;\\n\\n  /**\\n   * An IndexedSourceMapConsumer instance represents a parsed source map which\\n   * we can query for information. It differs from BasicSourceMapConsumer in\\n   * that it takes \\"indexed\\" source maps (i.e. ones with a \\"sections\\" field) as\\n   * input.\\n   *\\n   * The only parameter is a raw source map (either as a JSON string, or already\\n   * parsed to an object). According to the spec for indexed source maps, they\\n   * have the following attributes:\\n   *\\n   *   - version: Which version of the source map spec this map is following.\\n   *   - file: Optional. The generated file this source map is associated with.\\n   *   - sections: A list of section definitions.\\n   *\\n   * Each value under the \\"sections\\" field has two fields:\\n   *   - offset: The offset into the original specified at which this section\\n   *       begins to apply, defined as an object with a \\"line\\" and \\"column\\"\\n   *       field.\\n   *   - map: A source map definition. This source map could also be indexed,\\n   *       but doesn\'t have to be.\\n   *\\n   * Instead of the \\"map\\" field, it\'s also possible to have a \\"url\\" field\\n   * specifying a URL to retrieve a source map from, but that\'s currently\\n   * unsupported.\\n   *\\n   * Here\'s an example source map, taken from the source map spec[0], but\\n   * modified to omit a section which uses the \\"url\\" field.\\n   *\\n   *  {\\n   *    version : 3,\\n   *    file: \\"app.js\\",\\n   *    sections: [{\\n   *      offset: {line:100, column:10},\\n   *      map: {\\n   *        version : 3,\\n   *        file: \\"section.js\\",\\n   *        sources: [\\"foo.js\\", \\"bar.js\\"],\\n   *        names: [\\"src\\", \\"maps\\", \\"are\\", \\"fun\\"],\\n   *        mappings: \\"AAAA,E;;ABCDE;\\"\\n   *      }\\n   *    }],\\n   *  }\\n   *\\n   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\\n   */\\n  function IndexedSourceMapConsumer(aSourceMap) {\\n    var sourceMap = aSourceMap;\\n    if (typeof aSourceMap === \'string\') {\\n      sourceMap = JSON.parse(aSourceMap.replace(/^\\\\)\\\\]\\\\}\'/, \'\'));\\n    }\\n\\n    var version = util.getArg(sourceMap, \'version\');\\n    var sections = util.getArg(sourceMap, \'sections\');\\n\\n    if (version != this._version) {\\n      throw new Error(\'Unsupported version: \' + version);\\n    }\\n\\n    this._sources = new ArraySet();\\n    this._names = new ArraySet();\\n\\n    var lastOffset = {\\n      line: -1,\\n      column: 0\\n    };\\n    this._sections = sections.map(function (s) {\\n      if (s.url) {\\n        // The url field will require support for asynchronicity.\\n        // See https://github.com/mozilla/source-map/issues/16\\n        throw new Error(\'Support for url field in sections not implemented.\');\\n      }\\n      var offset = util.getArg(s, \'offset\');\\n      var offsetLine = util.getArg(offset, \'line\');\\n      var offsetColumn = util.getArg(offset, \'column\');\\n\\n      if (offsetLine < lastOffset.line ||\\n          (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\\n        throw new Error(\'Section offsets must be ordered and non-overlapping.\');\\n      }\\n      lastOffset = offset;\\n\\n      return {\\n        generatedOffset: {\\n          // The offset fields are 0-based, but we use 1-based indices when\\n          // encoding/decoding from VLQ.\\n          generatedLine: offsetLine + 1,\\n          generatedColumn: offsetColumn + 1\\n        },\\n        consumer: new SourceMapConsumer(util.getArg(s, \'map\'))\\n      }\\n    });\\n  }\\n\\n  IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\\n  IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\\n\\n  /**\\n   * The version of the source mapping spec that we are consuming.\\n   */\\n  IndexedSourceMapConsumer.prototype._version = 3;\\n\\n  /**\\n   * The list of original sources.\\n   */\\n  Object.defineProperty(IndexedSourceMapConsumer.prototype, \'sources\', {\\n    get: function () {\\n      var sources = [];\\n      for (var i = 0; i < this._sections.length; i++) {\\n        for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\\n          sources.push(this._sections[i].consumer.sources[j]);\\n        }\\n      }\\n      return sources;\\n    }\\n  });\\n\\n  /**\\n   * Returns the original source, line, and column information for the generated\\n   * source\'s line and column positions provided. The only argument is an object\\n   * with the following properties:\\n   *\\n   *   - line: The line number in the generated source.\\n   *   - column: The column number in the generated source.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - source: The original source file, or null.\\n   *   - line: The line number in the original source, or null.\\n   *   - column: The column number in the original source, or null.\\n   *   - name: The original identifier, or null.\\n   */\\n  IndexedSourceMapConsumer.prototype.originalPositionFor =\\n    function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\\n      var needle = {\\n        generatedLine: util.getArg(aArgs, \'line\'),\\n        generatedColumn: util.getArg(aArgs, \'column\')\\n      };\\n\\n      // Find the section containing the generated position we\'re trying to map\\n      // to an original position.\\n      var sectionIndex = binarySearch.search(needle, this._sections,\\n        function(needle, section) {\\n          var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\\n          if (cmp) {\\n            return cmp;\\n          }\\n\\n          return (needle.generatedColumn -\\n                  section.generatedOffset.generatedColumn);\\n        });\\n      var section = this._sections[sectionIndex];\\n\\n      if (!section) {\\n        return {\\n          source: null,\\n          line: null,\\n          column: null,\\n          name: null\\n        };\\n      }\\n\\n      return section.consumer.originalPositionFor({\\n        line: needle.generatedLine -\\n          (section.generatedOffset.generatedLine - 1),\\n        column: needle.generatedColumn -\\n          (section.generatedOffset.generatedLine === needle.generatedLine\\n           ? section.generatedOffset.generatedColumn - 1\\n           : 0),\\n        bias: aArgs.bias\\n      });\\n    };\\n\\n  /**\\n   * Return true if we have the source content for every source in the source\\n   * map, false otherwise.\\n   */\\n  IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\\n    function IndexedSourceMapConsumer_hasContentsOfAllSources() {\\n      return this._sections.every(function (s) {\\n        return s.consumer.hasContentsOfAllSources();\\n      });\\n    };\\n\\n  /**\\n   * Returns the original source content. The only argument is the url of the\\n   * original source file. Returns null if no original source content is\\n   * available.\\n   */\\n  IndexedSourceMapConsumer.prototype.sourceContentFor =\\n    function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\\n      for (var i = 0; i < this._sections.length; i++) {\\n        var section = this._sections[i];\\n\\n        var content = section.consumer.sourceContentFor(aSource, true);\\n        if (content) {\\n          return content;\\n        }\\n      }\\n      if (nullOnMissing) {\\n        return null;\\n      }\\n      else {\\n        throw new Error(\'\\"\' + aSource + \'\\" is not in the SourceMap.\');\\n      }\\n    };\\n\\n  /**\\n   * Returns the generated line and column information for the original source,\\n   * line, and column positions provided. The only argument is an object with\\n   * the following properties:\\n   *\\n   *   - source: The filename of the original source.\\n   *   - line: The line number in the original source.\\n   *   - column: The column number in the original source.\\n   *\\n   * and an object is returned with the following properties:\\n   *\\n   *   - line: The line number in the generated source, or null.\\n   *   - column: The column number in the generated source, or null.\\n   */\\n  IndexedSourceMapConsumer.prototype.generatedPositionFor =\\n    function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\\n      for (var i = 0; i < this._sections.length; i++) {\\n        var section = this._sections[i];\\n\\n        // Only consider this section if the requested source is in the list of\\n        // sources of the consumer.\\n        if (section.consumer.sources.indexOf(util.getArg(aArgs, \'source\')) === -1) {\\n          continue;\\n        }\\n        var generatedPosition = section.consumer.generatedPositionFor(aArgs);\\n        if (generatedPosition) {\\n          var ret = {\\n            line: generatedPosition.line +\\n              (section.generatedOffset.generatedLine - 1),\\n            column: generatedPosition.column +\\n              (section.generatedOffset.generatedLine === generatedPosition.line\\n               ? section.generatedOffset.generatedColumn - 1\\n               : 0)\\n          };\\n          return ret;\\n        }\\n      }\\n\\n      return {\\n        line: null,\\n        column: null\\n      };\\n    };\\n\\n  /**\\n   * Parse the mappings in a string in to a data structure which we can easily\\n   * query (the ordered arrays in the `this.__generatedMappings` and\\n   * `this.__originalMappings` properties).\\n   */\\n  IndexedSourceMapConsumer.prototype._parseMappings =\\n    function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\\n      this.__generatedMappings = [];\\n      this.__originalMappings = [];\\n      for (var i = 0; i < this._sections.length; i++) {\\n        var section = this._sections[i];\\n        var sectionMappings = section.consumer._generatedMappings;\\n        for (var j = 0; j < sectionMappings.length; j++) {\\n          var mapping = sectionMappings[j];\\n\\n          var source = section.consumer._sources.at(mapping.source);\\n          if (section.consumer.sourceRoot !== null) {\\n            source = util.join(section.consumer.sourceRoot, source);\\n          }\\n          this._sources.add(source);\\n          source = this._sources.indexOf(source);\\n\\n          var name = section.consumer._names.at(mapping.name);\\n          this._names.add(name);\\n          name = this._names.indexOf(name);\\n\\n          // The mappings coming from the consumer for the section have\\n          // generated positions relative to the start of the section, so we\\n          // need to offset them to be relative to the start of the concatenated\\n          // generated file.\\n          var adjustedMapping = {\\n            source: source,\\n            generatedLine: mapping.generatedLine +\\n              (section.generatedOffset.generatedLine - 1),\\n            generatedColumn: mapping.generatedColumn +\\n              (section.generatedOffset.generatedLine === mapping.generatedLine\\n              ? section.generatedOffset.generatedColumn - 1\\n              : 0),\\n            originalLine: mapping.originalLine,\\n            originalColumn: mapping.originalColumn,\\n            name: name\\n          };\\n\\n          this.__generatedMappings.push(adjustedMapping);\\n          if (typeof adjustedMapping.originalLine === \'number\') {\\n            this.__originalMappings.push(adjustedMapping);\\n          }\\n        }\\n      }\\n\\n      quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\\n      quickSort(this.__originalMappings, util.compareByOriginalPositions);\\n    };\\n\\n  exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/source-map-consumer.js\\n ** module id = 37\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  exports.GREATEST_LOWER_BOUND = 1;\\n  exports.LEAST_UPPER_BOUND = 2;\\n\\n  /**\\n   * Recursive implementation of binary search.\\n   *\\n   * @param aLow Indices here and lower do not contain the needle.\\n   * @param aHigh Indices here and higher do not contain the needle.\\n   * @param aNeedle The element being searched for.\\n   * @param aHaystack The non-empty array being searched.\\n   * @param aCompare Function which takes two elements and returns -1, 0, or 1.\\n   * @param aBias Either \'binarySearch.GREATEST_LOWER_BOUND\' or\\n   *     \'binarySearch.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   */\\n  function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\\n    // This function terminates when one of the following is true:\\n    //\\n    //   1. We find the exact element we are looking for.\\n    //\\n    //   2. We did not find the exact element, but we can return the index of\\n    //      the next-closest element.\\n    //\\n    //   3. We did not find the exact element, and there is no next-closest\\n    //      element than the one we are searching for, so we return -1.\\n    var mid = Math.floor((aHigh - aLow) / 2) + aLow;\\n    var cmp = aCompare(aNeedle, aHaystack[mid], true);\\n    if (cmp === 0) {\\n      // Found the element we are looking for.\\n      return mid;\\n    }\\n    else if (cmp > 0) {\\n      // Our needle is greater than aHaystack[mid].\\n      if (aHigh - mid > 1) {\\n        // The element is in the upper half.\\n        return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\\n      }\\n\\n      // The exact needle element was not found in this haystack. Determine if\\n      // we are in termination case (3) or (2) and return the appropriate thing.\\n      if (aBias == exports.LEAST_UPPER_BOUND) {\\n        return aHigh < aHaystack.length ? aHigh : -1;\\n      } else {\\n        return mid;\\n      }\\n    }\\n    else {\\n      // Our needle is less than aHaystack[mid].\\n      if (mid - aLow > 1) {\\n        // The element is in the lower half.\\n        return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\\n      }\\n\\n      // we are in termination case (3) or (2) and return the appropriate thing.\\n      if (aBias == exports.LEAST_UPPER_BOUND) {\\n        return mid;\\n      } else {\\n        return aLow < 0 ? -1 : aLow;\\n      }\\n    }\\n  }\\n\\n  /**\\n   * This is an implementation of binary search which will always try and return\\n   * the index of the closest element if there is no exact hit. This is because\\n   * mappings between original and generated line/col pairs are single points,\\n   * and there is an implicit region between each of them, so a miss just means\\n   * that you aren\'t on the very start of a region.\\n   *\\n   * @param aNeedle The element you are looking for.\\n   * @param aHaystack The array that is being searched.\\n   * @param aCompare A function which takes the needle and an element in the\\n   *     array and returns -1, 0, or 1 depending on whether the needle is less\\n   *     than, equal to, or greater than the element, respectively.\\n   * @param aBias Either \'binarySearch.GREATEST_LOWER_BOUND\' or\\n   *     \'binarySearch.LEAST_UPPER_BOUND\'. Specifies whether to return the\\n   *     closest element that is smaller than or greater than the one we are\\n   *     searching for, respectively, if the exact element cannot be found.\\n   *     Defaults to \'binarySearch.GREATEST_LOWER_BOUND\'.\\n   */\\n  exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\\n    if (aHaystack.length === 0) {\\n      return -1;\\n    }\\n\\n    var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\\n                                aCompare, aBias || exports.GREATEST_LOWER_BOUND);\\n    if (index < 0) {\\n      return -1;\\n    }\\n\\n    // We have found either the exact element, or the next-closest element than\\n    // the one we are searching for. However, there may be more than one such\\n    // element. Make sure we always return the smallest of these.\\n    while (index - 1 >= 0) {\\n      if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\\n        break;\\n      }\\n      --index;\\n    }\\n\\n    return index;\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/binary-search.js\\n ** module id = 38\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  // It turns out that some (most?) JavaScript engines don\'t self-host\\n  // `Array.prototype.sort`. This makes sense because C++ will likely remain\\n  // faster than JS when doing raw CPU-intensive sorting. However, when using a\\n  // custom comparator function, calling back and forth between the VM\'s C++ and\\n  // JIT\'d JS is rather slow *and* loses JIT type information, resulting in\\n  // worse generated code for the comparator function than would be optimal. In\\n  // fact, when sorting with a comparator, these costs outweigh the benefits of\\n  // sorting in C++. By using our own JS-implemented Quick Sort (below), we get\\n  // a ~3500ms mean speed-up in `bench/bench.html`.\\n\\n  /**\\n   * Swap the elements indexed by `x` and `y` in the array `ary`.\\n   *\\n   * @param {Array} ary\\n   *        The array.\\n   * @param {Number} x\\n   *        The index of the first item.\\n   * @param {Number} y\\n   *        The index of the second item.\\n   */\\n  function swap(ary, x, y) {\\n    var temp = ary[x];\\n    ary[x] = ary[y];\\n    ary[y] = temp;\\n  }\\n\\n  /**\\n   * Returns a random integer within the range `low .. high` inclusive.\\n   *\\n   * @param {Number} low\\n   *        The lower bound on the range.\\n   * @param {Number} high\\n   *        The upper bound on the range.\\n   */\\n  function randomIntInRange(low, high) {\\n    return Math.round(low + (Math.random() * (high - low)));\\n  }\\n\\n  /**\\n   * The Quick Sort algorithm.\\n   *\\n   * @param {Array} ary\\n   *        An array to sort.\\n   * @param {function} comparator\\n   *        Function to use to compare two items.\\n   * @param {Number} p\\n   *        Start index of the array\\n   * @param {Number} r\\n   *        End index of the array\\n   */\\n  function doQuickSort(ary, comparator, p, r) {\\n    // If our lower bound is less than our upper bound, we (1) partition the\\n    // array into two pieces and (2) recurse on each half. If it is not, this is\\n    // the empty array and our base case.\\n\\n    if (p < r) {\\n      // (1) Partitioning.\\n      //\\n      // The partitioning chooses a pivot between `p` and `r` and moves all\\n      // elements that are less than or equal to the pivot to the before it, and\\n      // all the elements that are greater than it after it. The effect is that\\n      // once partition is done, the pivot is in the exact place it will be when\\n      // the array is put in sorted order, and it will not need to be moved\\n      // again. This runs in O(n) time.\\n\\n      // Always choose a random pivot so that an input array which is reverse\\n      // sorted does not cause O(n^2) running time.\\n      var pivotIndex = randomIntInRange(p, r);\\n      var i = p - 1;\\n\\n      swap(ary, pivotIndex, r);\\n      var pivot = ary[r];\\n\\n      // Immediately after `j` is incremented in this loop, the following hold\\n      // true:\\n      //\\n      //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\\n      //\\n      //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\\n      for (var j = p; j < r; j++) {\\n        if (comparator(ary[j], pivot) <= 0) {\\n          i += 1;\\n          swap(ary, i, j);\\n        }\\n      }\\n\\n      swap(ary, i + 1, j);\\n      var q = i + 1;\\n\\n      // (2) Recurse on each half.\\n\\n      doQuickSort(ary, comparator, p, q - 1);\\n      doQuickSort(ary, comparator, q + 1, r);\\n    }\\n  }\\n\\n  /**\\n   * Sort the given array in-place with the given comparator function.\\n   *\\n   * @param {Array} ary\\n   *        An array to sort.\\n   * @param {function} comparator\\n   *        Function to use to compare two items.\\n   */\\n  exports.quickSort = function (ary, comparator) {\\n    doQuickSort(ary, comparator, 0, ary.length - 1);\\n  };\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/quick-sort.js\\n ** module id = 39\\n ** module chunks = 0\\n **/","/* -*- Mode: js; js-indent-level: 2; -*- */\\n/*\\n * Copyright 2011 Mozilla Foundation and contributors\\n * Licensed under the New BSD license. See LICENSE or:\\n * http://opensource.org/licenses/BSD-3-Clause\\n */\\n{\\n  var SourceMapGenerator = require(\'./source-map-generator\').SourceMapGenerator;\\n  var util = require(\'./util\');\\n\\n  // Matches a Windows-style `\\\\r\\\\n` newline or a `\\\\n` newline used by all other\\n  // operating systems these days (capturing the result).\\n  var REGEX_NEWLINE = /(\\\\r?\\\\n)/;\\n\\n  // Newline character code for charCodeAt() comparisons\\n  var NEWLINE_CODE = 10;\\n\\n  // Private symbol for identifying `SourceNode`s when multiple versions of\\n  // the source-map library are loaded. This MUST NOT CHANGE across\\n  // versions!\\n  var isSourceNode = \\"$$$isSourceNode$$$\\";\\n\\n  /**\\n   * SourceNodes provide a way to abstract over interpolating/concatenating\\n   * snippets of generated JavaScript source code while maintaining the line and\\n   * column information associated with the original source code.\\n   *\\n   * @param aLine The original line number.\\n   * @param aColumn The original column number.\\n   * @param aSource The original source\'s filename.\\n   * @param aChunks Optional. An array of strings which are snippets of\\n   *        generated JS, or other SourceNodes.\\n   * @param aName The original identifier.\\n   */\\n  function SourceNode(aLine, aColumn, aSource, aChunks, aName) {\\n    this.children = [];\\n    this.sourceContents = {};\\n    this.line = aLine == null ? null : aLine;\\n    this.column = aColumn == null ? null : aColumn;\\n    this.source = aSource == null ? null : aSource;\\n    this.name = aName == null ? null : aName;\\n    this[isSourceNode] = true;\\n    if (aChunks != null) this.add(aChunks);\\n  }\\n\\n  /**\\n   * Creates a SourceNode from generated code and a SourceMapConsumer.\\n   *\\n   * @param aGeneratedCode The generated code\\n   * @param aSourceMapConsumer The SourceMap for the generated code\\n   * @param aRelativePath Optional. The path that relative sources in the\\n   *        SourceMapConsumer should be relative to.\\n   */\\n  SourceNode.fromStringWithSourceMap =\\n    function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\\n      // The SourceNode we want to fill with the generated code\\n      // and the SourceMap\\n      var node = new SourceNode();\\n\\n      // All even indices of this array are one line of the generated code,\\n      // while all odd indices are the newlines between two adjacent lines\\n      // (since `REGEX_NEWLINE` captures its match).\\n      // Processed fragments are removed from this array, by calling `shiftNextLine`.\\n      var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\\n      var shiftNextLine = function() {\\n        var lineContents = remainingLines.shift();\\n        // The last line of a file might not have a newline.\\n        var newLine = remainingLines.shift() || \\"\\";\\n        return lineContents + newLine;\\n      };\\n\\n      // We need to remember the position of \\"remainingLines\\"\\n      var lastGeneratedLine = 1, lastGeneratedColumn = 0;\\n\\n      // The generate SourceNodes we need a code range.\\n      // To extract it current and last mapping is used.\\n      // Here we store the last mapping.\\n      var lastMapping = null;\\n\\n      aSourceMapConsumer.eachMapping(function (mapping) {\\n        if (lastMapping !== null) {\\n          // We add the code from \\"lastMapping\\" to \\"mapping\\":\\n          // First check if there is a new line in between.\\n          if (lastGeneratedLine < mapping.generatedLine) {\\n            // Associate first line with \\"lastMapping\\"\\n            addMappingWithCode(lastMapping, shiftNextLine());\\n            lastGeneratedLine++;\\n            lastGeneratedColumn = 0;\\n            // The remaining code is added without mapping\\n          } else {\\n            // There is no new line in between.\\n            // Associate the code between \\"lastGeneratedColumn\\" and\\n            // \\"mapping.generatedColumn\\" with \\"lastMapping\\"\\n            var nextLine = remainingLines[0];\\n            var code = nextLine.substr(0, mapping.generatedColumn -\\n                                          lastGeneratedColumn);\\n            remainingLines[0] = nextLine.substr(mapping.generatedColumn -\\n                                                lastGeneratedColumn);\\n            lastGeneratedColumn = mapping.generatedColumn;\\n            addMappingWithCode(lastMapping, code);\\n            // No more remaining code, continue\\n            lastMapping = mapping;\\n            return;\\n          }\\n        }\\n        // We add the generated code until the first mapping\\n        // to the SourceNode without any mapping.\\n        // Each line is added as separate string.\\n        while (lastGeneratedLine < mapping.generatedLine) {\\n          node.add(shiftNextLine());\\n          lastGeneratedLine++;\\n        }\\n        if (lastGeneratedColumn < mapping.generatedColumn) {\\n          var nextLine = remainingLines[0];\\n          node.add(nextLine.substr(0, mapping.generatedColumn));\\n          remainingLines[0] = nextLine.substr(mapping.generatedColumn);\\n          lastGeneratedColumn = mapping.generatedColumn;\\n        }\\n        lastMapping = mapping;\\n      }, this);\\n      // We have processed all mappings.\\n      if (remainingLines.length > 0) {\\n        if (lastMapping) {\\n          // Associate the remaining code in the current line with \\"lastMapping\\"\\n          addMappingWithCode(lastMapping, shiftNextLine());\\n        }\\n        // and add the remaining lines without any mapping\\n        node.add(remainingLines.join(\\"\\"));\\n      }\\n\\n      // Copy sourcesContent into SourceNode\\n      aSourceMapConsumer.sources.forEach(function (sourceFile) {\\n        var content = aSourceMapConsumer.sourceContentFor(sourceFile);\\n        if (content != null) {\\n          if (aRelativePath != null) {\\n            sourceFile = util.join(aRelativePath, sourceFile);\\n          }\\n          node.setSourceContent(sourceFile, content);\\n        }\\n      });\\n\\n      return node;\\n\\n      function addMappingWithCode(mapping, code) {\\n        if (mapping === null || mapping.source === undefined) {\\n          node.add(code);\\n        } else {\\n          var source = aRelativePath\\n            ? util.join(aRelativePath, mapping.source)\\n            : mapping.source;\\n          node.add(new SourceNode(mapping.originalLine,\\n                                  mapping.originalColumn,\\n                                  source,\\n                                  code,\\n                                  mapping.name));\\n        }\\n      }\\n    };\\n\\n  /**\\n   * Add a chunk of generated JS to this source node.\\n   *\\n   * @param aChunk A string snippet of generated JS code, another instance of\\n   *        SourceNode, or an array where each member is one of those things.\\n   */\\n  SourceNode.prototype.add = function SourceNode_add(aChunk) {\\n    if (Array.isArray(aChunk)) {\\n      aChunk.forEach(function (chunk) {\\n        this.add(chunk);\\n      }, this);\\n    }\\n    else if (aChunk[isSourceNode] || typeof aChunk === \\"string\\") {\\n      if (aChunk) {\\n        this.children.push(aChunk);\\n      }\\n    }\\n    else {\\n      throw new TypeError(\\n        \\"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \\" + aChunk\\n      );\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Add a chunk of generated JS to the beginning of this source node.\\n   *\\n   * @param aChunk A string snippet of generated JS code, another instance of\\n   *        SourceNode, or an array where each member is one of those things.\\n   */\\n  SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\\n    if (Array.isArray(aChunk)) {\\n      for (var i = aChunk.length-1; i >= 0; i--) {\\n        this.prepend(aChunk[i]);\\n      }\\n    }\\n    else if (aChunk[isSourceNode] || typeof aChunk === \\"string\\") {\\n      this.children.unshift(aChunk);\\n    }\\n    else {\\n      throw new TypeError(\\n        \\"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \\" + aChunk\\n      );\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Walk over the tree of JS snippets in this node and its children. The\\n   * walking function is called once for each snippet of JS and is passed that\\n   * snippet and the its original associated source\'s line/column location.\\n   *\\n   * @param aFn The traversal function.\\n   */\\n  SourceNode.prototype.walk = function SourceNode_walk(aFn) {\\n    var chunk;\\n    for (var i = 0, len = this.children.length; i < len; i++) {\\n      chunk = this.children[i];\\n      if (chunk[isSourceNode]) {\\n        chunk.walk(aFn);\\n      }\\n      else {\\n        if (chunk !== \'\') {\\n          aFn(chunk, { source: this.source,\\n                       line: this.line,\\n                       column: this.column,\\n                       name: this.name });\\n        }\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\\n   * each of `this.children`.\\n   *\\n   * @param aSep The separator.\\n   */\\n  SourceNode.prototype.join = function SourceNode_join(aSep) {\\n    var newChildren;\\n    var i;\\n    var len = this.children.length;\\n    if (len > 0) {\\n      newChildren = [];\\n      for (i = 0; i < len-1; i++) {\\n        newChildren.push(this.children[i]);\\n        newChildren.push(aSep);\\n      }\\n      newChildren.push(this.children[i]);\\n      this.children = newChildren;\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Call String.prototype.replace on the very right-most source snippet. Useful\\n   * for trimming whitespace from the end of a source node, etc.\\n   *\\n   * @param aPattern The pattern to replace.\\n   * @param aReplacement The thing to replace the pattern with.\\n   */\\n  SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\\n    var lastChild = this.children[this.children.length - 1];\\n    if (lastChild[isSourceNode]) {\\n      lastChild.replaceRight(aPattern, aReplacement);\\n    }\\n    else if (typeof lastChild === \'string\') {\\n      this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\\n    }\\n    else {\\n      this.children.push(\'\'.replace(aPattern, aReplacement));\\n    }\\n    return this;\\n  };\\n\\n  /**\\n   * Set the source content for a source file. This will be added to the SourceMapGenerator\\n   * in the sourcesContent field.\\n   *\\n   * @param aSourceFile The filename of the source file\\n   * @param aSourceContent The content of the source file\\n   */\\n  SourceNode.prototype.setSourceContent =\\n    function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\\n      this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\\n    };\\n\\n  /**\\n   * Walk over the tree of SourceNodes. The walking function is called for each\\n   * source file content and is passed the filename and source content.\\n   *\\n   * @param aFn The traversal function.\\n   */\\n  SourceNode.prototype.walkSourceContents =\\n    function SourceNode_walkSourceContents(aFn) {\\n      for (var i = 0, len = this.children.length; i < len; i++) {\\n        if (this.children[i][isSourceNode]) {\\n          this.children[i].walkSourceContents(aFn);\\n        }\\n      }\\n\\n      var sources = Object.keys(this.sourceContents);\\n      for (var i = 0, len = sources.length; i < len; i++) {\\n        aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\\n      }\\n    };\\n\\n  /**\\n   * Return the string representation of this source node. Walks over the tree\\n   * and concatenates all the various snippets together to one string.\\n   */\\n  SourceNode.prototype.toString = function SourceNode_toString() {\\n    var str = \\"\\";\\n    this.walk(function (chunk) {\\n      str += chunk;\\n    });\\n    return str;\\n  };\\n\\n  /**\\n   * Returns the string representation of this source node along with a source\\n   * map.\\n   */\\n  SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\\n    var generated = {\\n      code: \\"\\",\\n      line: 1,\\n      column: 0\\n    };\\n    var map = new SourceMapGenerator(aArgs);\\n    var sourceMappingActive = false;\\n    var lastOriginalSource = null;\\n    var lastOriginalLine = null;\\n    var lastOriginalColumn = null;\\n    var lastOriginalName = null;\\n    this.walk(function (chunk, original) {\\n      generated.code += chunk;\\n      if (original.source !== null\\n          && original.line !== null\\n          && original.column !== null) {\\n        if(lastOriginalSource !== original.source\\n           || lastOriginalLine !== original.line\\n           || lastOriginalColumn !== original.column\\n           || lastOriginalName !== original.name) {\\n          map.addMapping({\\n            source: original.source,\\n            original: {\\n              line: original.line,\\n              column: original.column\\n            },\\n            generated: {\\n              line: generated.line,\\n              column: generated.column\\n            },\\n            name: original.name\\n          });\\n        }\\n        lastOriginalSource = original.source;\\n        lastOriginalLine = original.line;\\n        lastOriginalColumn = original.column;\\n        lastOriginalName = original.name;\\n        sourceMappingActive = true;\\n      } else if (sourceMappingActive) {\\n        map.addMapping({\\n          generated: {\\n            line: generated.line,\\n            column: generated.column\\n          }\\n        });\\n        lastOriginalSource = null;\\n        sourceMappingActive = false;\\n      }\\n      for (var idx = 0, length = chunk.length; idx < length; idx++) {\\n        if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\\n          generated.line++;\\n          generated.column = 0;\\n          // Mappings end at eol\\n          if (idx + 1 === length) {\\n            lastOriginalSource = null;\\n            sourceMappingActive = false;\\n          } else if (sourceMappingActive) {\\n            map.addMapping({\\n              source: original.source,\\n              original: {\\n                line: original.line,\\n                column: original.column\\n              },\\n              generated: {\\n                line: generated.line,\\n                column: generated.column\\n              },\\n              name: original.name\\n            });\\n          }\\n        } else {\\n          generated.column++;\\n        }\\n      }\\n    });\\n    this.walkSourceContents(function (sourceFile, sourceContent) {\\n      map.setSourceContent(sourceFile, sourceContent);\\n    });\\n\\n    return { code: generated.code, map: map };\\n  };\\n\\n  exports.SourceNode = SourceNode;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/source-map/lib/source-node.js\\n ** module id = 40\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _Object$keys = require(\\"babel-runtime/core-js/object/keys\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _defaults = require(\\"babel-runtime/helpers/defaults\\")[\\"default\\"];\\n\\nvar _interopExportWildcard = require(\\"babel-runtime/helpers/interop-export-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.is = is;\\nexports.isType = isType;\\nexports.validate = validate;\\nexports.shallowEqual = shallowEqual;\\nexports.appendToMemberExpression = appendToMemberExpression;\\nexports.prependToMemberExpression = prependToMemberExpression;\\nexports.ensureBlock = ensureBlock;\\nexports.clone = clone;\\nexports.cloneWithoutLoc = cloneWithoutLoc;\\nexports.cloneDeep = cloneDeep;\\nexports.buildMatchMemberExpression = buildMatchMemberExpression;\\nexports.removeComments = removeComments;\\nexports.inheritsComments = inheritsComments;\\nexports.inheritTrailingComments = inheritTrailingComments;\\nexports.inheritLeadingComments = inheritLeadingComments;\\nexports.inheritInnerComments = inheritInnerComments;\\nexports.inherits = inherits;\\nexports.assertNode = assertNode;\\nexports.isNode = isNode;\\n\\nvar _toFastProperties = require(\\"to-fast-properties\\");\\n\\nvar _toFastProperties2 = _interopRequireDefault(_toFastProperties);\\n\\nvar _lodashArrayCompact = require(\\"lodash/array/compact\\");\\n\\nvar _lodashArrayCompact2 = _interopRequireDefault(_lodashArrayCompact);\\n\\nvar _lodashLangClone = require(\\"lodash/lang/clone\\");\\n\\nvar _lodashLangClone2 = _interopRequireDefault(_lodashLangClone);\\n\\nvar _lodashCollectionEach = require(\\"lodash/collection/each\\");\\n\\nvar _lodashCollectionEach2 = _interopRequireDefault(_lodashCollectionEach);\\n\\nvar _lodashArrayUniq = require(\\"lodash/array/uniq\\");\\n\\nvar _lodashArrayUniq2 = _interopRequireDefault(_lodashArrayUniq);\\n\\nrequire(\\"./definitions/init\\");\\n\\nvar _definitions = require(\\"./definitions\\");\\n\\nvar _react2 = require(\\"./react\\");\\n\\nvar _react = _interopRequireWildcard(_react2);\\n\\nvar t = exports;\\n\\n/**\\n * Registers `is[Type]` and `assert[Type]` generated functions for a given `type`.\\n * Pass `skipAliasCheck` to force it to directly compare `node.type` with `type`.\\n */\\n\\nfunction registerType(type /*: string*/) {\\n  var is = t[\\"is\\" + type] = function (node, opts) {\\n    return t.is(type, node, opts);\\n  };\\n\\n  t[\\"assert\\" + type] = function (node, opts) {\\n    opts = opts || {};\\n    if (!is(node, opts)) {\\n      throw new Error(\\"Expected type \\" + JSON.stringify(type) + \\" with option \\" + JSON.stringify(opts));\\n    }\\n  };\\n}\\n\\n//\\n\\nvar _constants = require(\\"./constants\\");\\n\\n_defaults(exports, _interopExportWildcard(_constants, _defaults));\\n\\nexports.VISITOR_KEYS = _definitions.VISITOR_KEYS;\\nexports.ALIAS_KEYS = _definitions.ALIAS_KEYS;\\nexports.NODE_FIELDS = _definitions.NODE_FIELDS;\\nexports.BUILDER_KEYS = _definitions.BUILDER_KEYS;\\nexports.DEPRECATED_KEYS = _definitions.DEPRECATED_KEYS;\\nexports.react = _react;\\n\\n/**\\n * Registers `is[Type]` and `assert[Type]` for all types.\\n */\\n\\nfor (var type in t.VISITOR_KEYS) {\\n  registerType(type);\\n}\\n\\n/**\\n * Flip `ALIAS_KEYS` for faster access in the reverse direction.\\n */\\n\\nt.FLIPPED_ALIAS_KEYS = {};\\n\\n_lodashCollectionEach2[\\"default\\"](t.ALIAS_KEYS, function (aliases, type) {\\n  _lodashCollectionEach2[\\"default\\"](aliases, function (alias) {\\n    var types = t.FLIPPED_ALIAS_KEYS[alias] = t.FLIPPED_ALIAS_KEYS[alias] || [];\\n    types.push(type);\\n  });\\n});\\n\\n/**\\n * Registers `is[Alias]` and `assert[Alias]` functions for all aliases.\\n */\\n\\n_lodashCollectionEach2[\\"default\\"](t.FLIPPED_ALIAS_KEYS, function (types, type) {\\n  t[type.toUpperCase() + \\"_TYPES\\"] = types;\\n  registerType(type);\\n});\\n\\nvar TYPES = _Object$keys(t.VISITOR_KEYS).concat(_Object$keys(t.FLIPPED_ALIAS_KEYS)).concat(_Object$keys(t.DEPRECATED_KEYS));\\n\\nexports.TYPES = TYPES;\\n/**\\n * Returns whether `node` is of given `type`.\\n *\\n * For better performance, use this instead of `is[Type]` when `type` is unknown.\\n * Optionally, pass `skipAliasCheck` to directly compare `node.type` with `type`.\\n */\\n\\nfunction is(type /*: string*/, node /*: Object*/, opts /*:: ?: Object*/) /*: boolean*/ {\\n  if (!node) return false;\\n\\n  var matches = isType(node.type, type);\\n  if (!matches) return false;\\n\\n  if (typeof opts === \\"undefined\\") {\\n    return true;\\n  } else {\\n    return t.shallowEqual(node, opts);\\n  }\\n}\\n\\n/**\\n * Test if a `nodeType` is a `targetType` or if `targetType` is an alias of `nodeType`.\\n */\\n\\nfunction isType(nodeType /*: string*/, targetType /*: string*/) /*: boolean*/ {\\n  if (nodeType === targetType) return true;\\n\\n  var aliases /*: ?Array<string>*/ = t.FLIPPED_ALIAS_KEYS[targetType];\\n  if (aliases) {\\n    if (aliases[0] === nodeType) return true;\\n\\n    for (var _iterator = aliases, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var alias = _ref;\\n\\n      if (nodeType === alias) return true;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Description\\n */\\n\\n_lodashCollectionEach2[\\"default\\"](t.BUILDER_KEYS, function (keys, type) {\\n  function builder() {\\n    if (arguments.length > keys.length) {\\n      throw new Error(\\"t.\\" + type + \\": Too many arguments passed. Received \\" + arguments.length + \\" but can receive no more than \\" + keys.length);\\n    }\\n\\n    var node = {};\\n    node.type = type;\\n\\n    var i = 0;\\n\\n    for (var _iterator2 = (keys /*: Array<string>*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var key = _ref2;\\n\\n      var field = t.NODE_FIELDS[type][key];\\n\\n      var arg = arguments[i++];\\n      if (arg === undefined) arg = _lodashLangClone2[\\"default\\"](field[\\"default\\"]);\\n\\n      node[key] = arg;\\n    }\\n\\n    for (var key in node) {\\n      validate(node, key, node[key]);\\n    }\\n\\n    return node;\\n  }\\n\\n  t[type] = builder;\\n  t[type[0].toLowerCase() + type.slice(1)] = builder;\\n});\\n\\n/**\\n * Description\\n */\\n\\nvar _loop = function (type) {\\n  var proxy = function proxy(fn) {\\n    return function () {\\n      console.trace(\\"The node type \\" + type + \\" has been renamed to \\" + newType);\\n      return fn.apply(this, arguments);\\n    };\\n  };\\n\\n  var newType = t.DEPRECATED_KEYS[type];\\n\\n  t[type] = t[type[0].toLowerCase() + type.slice(1)] = proxy(t[newType]);\\n  t[\\"is\\" + type] = proxy(t[\\"is\\" + newType]);\\n  t[\\"assert\\" + type] = proxy(t[\\"assert\\" + newType]);\\n};\\n\\nfor (var type in t.DEPRECATED_KEYS) {\\n  _loop(type);\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction validate(node /*:: ?: Object*/, key /*: string*/, val /*: any*/) {\\n  if (!node) return;\\n\\n  var fields = t.NODE_FIELDS[node.type];\\n  if (!fields) return;\\n\\n  var field = fields[key];\\n  if (!field || !field.validate) return;\\n  if (field.optional && val == null) return;\\n\\n  field.validate(node, key, val);\\n}\\n\\n/**\\n * Test if an object is shallowly equal.\\n */\\n\\nfunction shallowEqual(actual /*: Object*/, expected /*: Object*/) /*: boolean*/ {\\n  var keys = _Object$keys(expected);\\n\\n  for (var _iterator3 = (keys /*: Array<string>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n    var _ref3;\\n\\n    if (_isArray3) {\\n      if (_i3 >= _iterator3.length) break;\\n      _ref3 = _iterator3[_i3++];\\n    } else {\\n      _i3 = _iterator3.next();\\n      if (_i3.done) break;\\n      _ref3 = _i3.value;\\n    }\\n\\n    var key = _ref3;\\n\\n    if (actual[key] !== expected[key]) {\\n      return false;\\n    }\\n  }\\n\\n  return true;\\n}\\n\\n/**\\n * Append a node to a member expression.\\n */\\n\\nfunction appendToMemberExpression(member /*: Object*/, append /*: Object*/, computed /*:: ?: boolean*/) /*: Object*/ {\\n  member.object = t.memberExpression(member.object, member.property, member.computed);\\n  member.property = append;\\n  member.computed = !!computed;\\n  return member;\\n}\\n\\n/**\\n * Prepend a node to a member expression.\\n */\\n\\nfunction prependToMemberExpression(member /*: Object*/, prepend /*: Object*/) /*: Object*/ {\\n  member.object = t.memberExpression(prepend, member.object);\\n  return member;\\n}\\n\\n/**\\n * Ensure the `key` (defaults to \\"body\\") of a `node` is a block.\\n * Casting it to a block if it is not.\\n */\\n\\nfunction ensureBlock(node /*: Object*/) /*: Object*/ {\\n  var key /*: string*/ = arguments.length <= 1 || arguments[1] === undefined ? \\"body\\" : arguments[1];\\n\\n  return node[key] = t.toBlock(node[key], node);\\n}\\n\\n/**\\n * Create a shallow clone of a `node` excluding `_private` properties.\\n */\\n\\nfunction clone(node /*: Object*/) /*: Object*/ {\\n  var newNode = {};\\n  for (var key in node) {\\n    if (key[0] === \\"_\\") continue;\\n    newNode[key] = node[key];\\n  }\\n  return newNode;\\n}\\n\\n/**\\n * Create a shallow clone of a `node` excluding `_private` and location properties.\\n */\\n\\nfunction cloneWithoutLoc(node /*: Object*/) /*: Object*/ {\\n  var newNode = clone(node);\\n  delete newNode.loc;\\n  return newNode;\\n}\\n\\n/**\\n * Create a deep clone of a `node` and all of it\'s child nodes\\n * exluding `_private` properties.\\n */\\n\\nfunction cloneDeep(node /*: Object*/) /*: Object*/ {\\n  var newNode = {};\\n\\n  for (var key in node) {\\n    if (key[0] === \\"_\\") continue;\\n\\n    var val = node[key];\\n\\n    if (val) {\\n      if (val.type) {\\n        val = t.cloneDeep(val);\\n      } else if (Array.isArray(val)) {\\n        val = val.map(t.cloneDeep);\\n      }\\n    }\\n\\n    newNode[key] = val;\\n  }\\n\\n  return newNode;\\n}\\n\\n/**\\n * Build a function that when called will return whether or not the\\n * input `node` `MemberExpression` matches the input `match`.\\n *\\n * For example, given the match `React.createClass` it would match the\\n * parsed nodes of `React.createClass` and `React[\\"createClass\\"]`.\\n */\\n\\nfunction buildMatchMemberExpression(match /*:string*/, allowPartial /*:: ?: boolean*/) /*: Function*/ {\\n  var parts = match.split(\\".\\");\\n\\n  return function (member) {\\n    // not a member expression\\n    if (!t.isMemberExpression(member)) return false;\\n\\n    var search = [member];\\n    var i = 0;\\n\\n    while (search.length) {\\n      var node = search.shift();\\n\\n      if (allowPartial && i === parts.length) {\\n        return true;\\n      }\\n\\n      if (t.isIdentifier(node)) {\\n        // this part doesn\'t match\\n        if (parts[i] !== node.name) return false;\\n      } else if (t.isStringLiteral(node)) {\\n        // this part doesn\'t match\\n        if (parts[i] !== node.value) return false;\\n      } else if (t.isMemberExpression(node)) {\\n        if (node.computed && !t.isStringLiteral(node.property)) {\\n          // we can\'t deal with this\\n          return false;\\n        } else {\\n          search.push(node.object);\\n          search.push(node.property);\\n          continue;\\n        }\\n      } else {\\n        // we can\'t deal with this\\n        return false;\\n      }\\n\\n      // too many parts\\n      if (++i > parts.length) {\\n        return false;\\n      }\\n    }\\n\\n    return true;\\n  };\\n}\\n\\n/**\\n * Remove comment properties from a node.\\n */\\n\\nfunction removeComments(node /*: Object*/) /*: Object*/ {\\n  for (var _iterator4 = t.COMMENT_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n    var _ref4;\\n\\n    if (_isArray4) {\\n      if (_i4 >= _iterator4.length) break;\\n      _ref4 = _iterator4[_i4++];\\n    } else {\\n      _i4 = _iterator4.next();\\n      if (_i4.done) break;\\n      _ref4 = _i4.value;\\n    }\\n\\n    var key = _ref4;\\n\\n    delete node[key];\\n  }\\n  return node;\\n}\\n\\n/**\\n * Inherit all unique comments from `parent` node to `child` node.\\n */\\n\\nfunction inheritsComments(child /*: Object*/, parent /*: Object*/) /*: Object*/ {\\n  inheritTrailingComments(child, parent);\\n  inheritLeadingComments(child, parent);\\n  inheritInnerComments(child, parent);\\n  return child;\\n}\\n\\nfunction inheritTrailingComments(child /*: Object*/, parent /*: Object*/) {\\n  _inheritComments(\\"trailingComments\\", child, parent);\\n}\\n\\nfunction inheritLeadingComments(child /*: Object*/, parent /*: Object*/) {\\n  _inheritComments(\\"leadingComments\\", child, parent);\\n}\\n\\nfunction inheritInnerComments(child /*: Object*/, parent /*: Object*/) {\\n  _inheritComments(\\"innerComments\\", child, parent);\\n}\\n\\nfunction _inheritComments(key, child, parent) {\\n  if (child && parent) {\\n    child[key] = _lodashArrayUniq2[\\"default\\"](_lodashArrayCompact2[\\"default\\"]([].concat(child[key], parent[key])));\\n  }\\n}\\n\\n/**\\n * Inherit all contextual properties from `parent` node to `child` node.\\n */\\n\\nfunction inherits(child /*: Object*/, parent /*: Object*/) /*: Object*/ {\\n  if (!child || !parent) return child;\\n\\n  // optionally inherit specific properties if not null\\n  for (var _iterator5 = (t.INHERIT_KEYS.optional /*: Array<string>*/), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n    var _ref5;\\n\\n    if (_isArray5) {\\n      if (_i5 >= _iterator5.length) break;\\n      _ref5 = _iterator5[_i5++];\\n    } else {\\n      _i5 = _iterator5.next();\\n      if (_i5.done) break;\\n      _ref5 = _i5.value;\\n    }\\n\\n    var key = _ref5;\\n\\n    if (child[key] == null) {\\n      child[key] = parent[key];\\n    }\\n  }\\n\\n  // force inherit \\"private\\" properties\\n  for (var key in parent) {\\n    if (key[0] === \\"_\\") child[key] = parent[key];\\n  }\\n\\n  // force inherit select properties\\n  for (var _iterator6 = (t.INHERIT_KEYS.force /*: Array<string>*/), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\\n    var _ref6;\\n\\n    if (_isArray6) {\\n      if (_i6 >= _iterator6.length) break;\\n      _ref6 = _iterator6[_i6++];\\n    } else {\\n      _i6 = _iterator6.next();\\n      if (_i6.done) break;\\n      _ref6 = _i6.value;\\n    }\\n\\n    var key = _ref6;\\n\\n    child[key] = parent[key];\\n  }\\n\\n  t.inheritsComments(child, parent);\\n\\n  return child;\\n}\\n\\n/**\\n * TODO\\n */\\n\\nfunction assertNode(node /*:: ?*/) {\\n  if (!isNode(node)) {\\n    // $FlowFixMe\\n    throw new TypeError(\\"Not a valid node \\" + (node && node.type));\\n  }\\n}\\n\\n/**\\n * TODO\\n */\\n\\nfunction isNode(node /*:: ?*/) /*: boolean*/ {\\n  return !!(node && _definitions.VISITOR_KEYS[node.type]);\\n}\\n\\n// Optimize property access.\\n_toFastProperties2[\\"default\\"](t);\\n_toFastProperties2[\\"default\\"](t.VISITOR_KEYS);\\n\\n//\\n\\nvar _retrievers = require(\\"./retrievers\\");\\n\\n_defaults(exports, _interopExportWildcard(_retrievers, _defaults));\\n\\nvar _validators = require(\\"./validators\\");\\n\\n_defaults(exports, _interopExportWildcard(_validators, _defaults));\\n\\nvar _converters = require(\\"./converters\\");\\n\\n_defaults(exports, _interopExportWildcard(_converters, _defaults));\\n\\nvar _flow = require(\\"./flow\\");\\n\\n_defaults(exports, _interopExportWildcard(_flow, _defaults));\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/index.js\\n ** module id = 41\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/keys\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/keys.js\\n ** module id = 42\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.keys\');\\nmodule.exports = require(\'../../modules/$.core\').Object.keys;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/keys.js\\n ** module id = 43\\n ** module chunks = 0\\n **/","// 19.1.2.14 Object.keys(O)\\nvar toObject = require(\'./$.to-object\');\\n\\nrequire(\'./$.object-sap\')(\'keys\', function($keys){\\n  return function keys(it){\\n    return $keys(toObject(it));\\n  };\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\\n ** module id = 44\\n ** module chunks = 0\\n **/","// 7.1.13 ToObject(argument)\\nvar defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return Object(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-object.js\\n ** module id = 45\\n ** module chunks = 0\\n **/","// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.defined.js\\n ** module id = 46\\n ** module chunks = 0\\n **/","// most Object methods by ES6 should accept primitives\\nvar $export = require(\'./$.export\')\\n  , core    = require(\'./$.core\')\\n  , fails   = require(\'./$.fails\');\\nmodule.exports = function(KEY, exec){\\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\\n    , exp = {};\\n  exp[KEY] = exec(fn);\\n  $export($export.S + $export.F * fails(function(){ fn(1); }), \'Object\', exp);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.object-sap.js\\n ** module id = 47\\n ** module chunks = 0\\n **/","var global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.export.js\\n ** module id = 48\\n ** module chunks = 0\\n **/","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.global.js\\n ** module id = 49\\n ** module chunks = 0\\n **/","var core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.core.js\\n ** module id = 50\\n ** module chunks = 0\\n **/","// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.ctx.js\\n ** module id = 51\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.a-function.js\\n ** module id = 52\\n ** module chunks = 0\\n **/","module.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.fails.js\\n ** module id = 53\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/get-iterator.js\\n ** module id = 54\\n ** module chunks = 0\\n **/","require(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/get-iterator.js\\n ** module id = 55\\n ** module chunks = 0\\n **/","require(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\\n ** module id = 56\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\\n ** module id = 57\\n ** module chunks = 0\\n **/","module.exports = function(){ /* empty */ };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js\\n ** module id = 58\\n ** module chunks = 0\\n **/","module.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-step.js\\n ** module id = 59\\n ** module chunks = 0\\n **/","module.exports = {};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iterators.js\\n ** module id = 60\\n ** module chunks = 0\\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js\\n ** module id = 61\\n ** module chunks = 0\\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iobject.js\\n ** module id = 62\\n ** module chunks = 0\\n **/","var toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.cof.js\\n ** module id = 63\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-define.js\\n ** module id = 64\\n ** module chunks = 0\\n **/","module.exports = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.library.js\\n ** module id = 65\\n ** module chunks = 0\\n **/","module.exports = require(\'./$.hide\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.redefine.js\\n ** module id = 66\\n ** module chunks = 0\\n **/","var $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.hide.js\\n ** module id = 67\\n ** module chunks = 0\\n **/","var $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.js\\n ** module id = 68\\n ** module chunks = 0\\n **/","module.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.property-desc.js\\n ** module id = 69\\n ** module chunks = 0\\n **/","// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.descriptors.js\\n ** module id = 70\\n ** module chunks = 0\\n **/","var hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.has.js\\n ** module id = 71\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.iter-create.js\\n ** module id = 72\\n ** module chunks = 0\\n **/","var def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js\\n ** module id = 73\\n ** module chunks = 0\\n **/","var store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.wks.js\\n ** module id = 74\\n ** module chunks = 0\\n **/","var global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.shared.js\\n ** module id = 75\\n ** module chunks = 0\\n **/","var id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.uid.js\\n ** module id = 76\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\\n ** module id = 77\\n ** module chunks = 0\\n **/","var toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.string-at.js\\n ** module id = 78\\n ** module chunks = 0\\n **/","// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.to-integer.js\\n ** module id = 79\\n ** module chunks = 0\\n **/","var anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\\n ** module id = 80\\n ** module chunks = 0\\n **/","var isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.an-object.js\\n ** module id = 81\\n ** module chunks = 0\\n **/","module.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-object.js\\n ** module id = 82\\n ** module chunks = 0\\n **/","var classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\\n ** module id = 83\\n ** module chunks = 0\\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.classof.js\\n ** module id = 84\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-require-default.js\\n ** module id = 85\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  if (obj && obj.__esModule) {\\n    return obj;\\n  } else {\\n    var newObj = {};\\n\\n    if (obj != null) {\\n      for (var key in obj) {\\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\\n      }\\n    }\\n\\n    newObj[\\"default\\"] = obj;\\n    return newObj;\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-require-wildcard.js\\n ** module id = 86\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _Object$getOwnPropertyNames = require(\\"babel-runtime/core-js/object/get-own-property-names\\")[\\"default\\"];\\n\\nvar _Object$getOwnPropertyDescriptor = require(\\"babel-runtime/core-js/object/get-own-property-descriptor\\")[\\"default\\"];\\n\\nvar _Object$defineProperty = require(\\"babel-runtime/core-js/object/define-property\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (obj, defaults) {\\n  var keys = _Object$getOwnPropertyNames(defaults);\\n\\n  for (var i = 0; i < keys.length; i++) {\\n    var key = keys[i];\\n\\n    var value = _Object$getOwnPropertyDescriptor(defaults, key);\\n\\n    if (value && value.configurable && obj[key] === undefined) {\\n      _Object$defineProperty(obj, key, value);\\n    }\\n  }\\n\\n  return obj;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/defaults.js\\n ** module id = 87\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/get-own-property-names\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/get-own-property-names.js\\n ** module id = 88\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nrequire(\'../../modules/es6.object.get-own-property-names\');\\nmodule.exports = function getOwnPropertyNames(it){\\n  return $.getNames(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-names.js\\n ** module id = 89\\n ** module chunks = 0\\n **/","// 19.1.2.7 Object.getOwnPropertyNames(O)\\nrequire(\'./$.object-sap\')(\'getOwnPropertyNames\', function(){\\n  return require(\'./$.get-names\').get;\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-names.js\\n ** module id = 90\\n ** module chunks = 0\\n **/","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\\nvar toIObject = require(\'./$.to-iobject\')\\n  , getNames  = require(\'./$\').getNames\\n  , toString  = {}.toString;\\n\\nvar windowNames = typeof window == \'object\' && Object.getOwnPropertyNames\\n  ? Object.getOwnPropertyNames(window) : [];\\n\\nvar getWindowNames = function(it){\\n  try {\\n    return getNames(it);\\n  } catch(e){\\n    return windowNames.slice();\\n  }\\n};\\n\\nmodule.exports.get = function getOwnPropertyNames(it){\\n  if(windowNames && toString.call(it) == \'[object Window]\')return getWindowNames(it);\\n  return getNames(toIObject(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.get-names.js\\n ** module id = 91\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/get-own-property-descriptor\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/get-own-property-descriptor.js\\n ** module id = 92\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nrequire(\'../../modules/es6.object.get-own-property-descriptor\');\\nmodule.exports = function getOwnPropertyDescriptor(it, key){\\n  return $.getDesc(it, key);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-descriptor.js\\n ** module id = 93\\n ** module chunks = 0\\n **/","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\\nvar toIObject = require(\'./$.to-iobject\');\\n\\nrequire(\'./$.object-sap\')(\'getOwnPropertyDescriptor\', function($getOwnPropertyDescriptor){\\n  return function getOwnPropertyDescriptor(it, key){\\n    return $getOwnPropertyDescriptor(toIObject(it), key);\\n  };\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.object.get-own-property-descriptor.js\\n ** module id = 94\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/define-property\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/define-property.js\\n ** module id = 95\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nmodule.exports = function defineProperty(it, key, desc){\\n  return $.setDesc(it, key, desc);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/define-property.js\\n ** module id = 96\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj, defaults) {\\n  var newObj = defaults({}, obj);\\n  delete newObj[\\"default\\"];\\n  return newObj;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-export-wildcard.js\\n ** module id = 97\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function toFastProperties(obj) {\\n\\t/*jshint -W027*/\\n\\tfunction f() {}\\n\\tf.prototype = obj;\\n\\tnew f();\\n\\treturn;\\n\\teval(obj);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/to-fast-properties/index.js\\n ** module id = 98\\n ** module chunks = 0\\n **/","/**\\n * Creates an array with all falsey values removed. The values `false`, `null`,\\n * `0`, `\\"\\"`, `undefined`, and `NaN` are falsey.\\n *\\n * @static\\n * @memberOf _\\n * @category Array\\n * @param {Array} array The array to compact.\\n * @returns {Array} Returns the new array of filtered values.\\n * @example\\n *\\n * _.compact([0, 1, false, 2, \'\', 3]);\\n * // => [1, 2, 3]\\n */\\nfunction compact(array) {\\n  var index = -1,\\n      length = array ? array.length : 0,\\n      resIndex = -1,\\n      result = [];\\n\\n  while (++index < length) {\\n    var value = array[index];\\n    if (value) {\\n      result[++resIndex] = value;\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = compact;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/array/compact.js\\n ** module id = 99\\n ** module chunks = 0\\n **/","var baseClone = require(\'../internal/baseClone\'),\\n    bindCallback = require(\'../internal/bindCallback\'),\\n    isIterateeCall = require(\'../internal/isIterateeCall\');\\n\\n/**\\n * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,\\n * otherwise they are assigned by reference. If `customizer` is provided it\'s\\n * invoked to produce the cloned values. If `customizer` returns `undefined`\\n * cloning is handled by the method instead. The `customizer` is bound to\\n * `thisArg` and invoked with up to three argument; (value [, index|key, object]).\\n *\\n * **Note:** This method is loosely based on the\\n * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).\\n * The enumerable properties of `arguments` objects and objects created by\\n * constructors other than `Object` are cloned to plain `Object` objects. An\\n * empty object is returned for uncloneable values such as functions, DOM nodes,\\n * Maps, Sets, and WeakMaps.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to clone.\\n * @param {boolean} [isDeep] Specify a deep clone.\\n * @param {Function} [customizer] The function to customize cloning values.\\n * @param {*} [thisArg] The `this` binding of `customizer`.\\n * @returns {*} Returns the cloned value.\\n * @example\\n *\\n * var users = [\\n *   { \'user\': \'barney\' },\\n *   { \'user\': \'fred\' }\\n * ];\\n *\\n * var shallow = _.clone(users);\\n * shallow[0] === users[0];\\n * // => true\\n *\\n * var deep = _.clone(users, true);\\n * deep[0] === users[0];\\n * // => false\\n *\\n * // using a customizer callback\\n * var el = _.clone(document.body, function(value) {\\n *   if (_.isElement(value)) {\\n *     return value.cloneNode(false);\\n *   }\\n * });\\n *\\n * el === document.body\\n * // => false\\n * el.nodeName\\n * // => BODY\\n * el.childNodes.length;\\n * // => 0\\n */\\nfunction clone(value, isDeep, customizer, thisArg) {\\n  if (isDeep && typeof isDeep != \'boolean\' && isIterateeCall(value, isDeep, customizer)) {\\n    isDeep = false;\\n  }\\n  else if (typeof isDeep == \'function\') {\\n    thisArg = customizer;\\n    customizer = isDeep;\\n    isDeep = false;\\n  }\\n  return typeof customizer == \'function\'\\n    ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 3))\\n    : baseClone(value, isDeep);\\n}\\n\\nmodule.exports = clone;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/clone.js\\n ** module id = 100\\n ** module chunks = 0\\n **/","var arrayCopy = require(\'./arrayCopy\'),\\n    arrayEach = require(\'./arrayEach\'),\\n    baseAssign = require(\'./baseAssign\'),\\n    baseForOwn = require(\'./baseForOwn\'),\\n    initCloneArray = require(\'./initCloneArray\'),\\n    initCloneByTag = require(\'./initCloneByTag\'),\\n    initCloneObject = require(\'./initCloneObject\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    funcTag = \'[object Function]\',\\n    mapTag = \'[object Map]\',\\n    numberTag = \'[object Number]\',\\n    objectTag = \'[object Object]\',\\n    regexpTag = \'[object RegExp]\',\\n    setTag = \'[object Set]\',\\n    stringTag = \'[object String]\',\\n    weakMapTag = \'[object WeakMap]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to identify `toStringTag` values supported by `_.clone`. */\\nvar cloneableTags = {};\\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\\ncloneableTags[arrayBufferTag] = cloneableTags[boolTag] =\\ncloneableTags[dateTag] = cloneableTags[float32Tag] =\\ncloneableTags[float64Tag] = cloneableTags[int8Tag] =\\ncloneableTags[int16Tag] = cloneableTags[int32Tag] =\\ncloneableTags[numberTag] = cloneableTags[objectTag] =\\ncloneableTags[regexpTag] = cloneableTags[stringTag] =\\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\\ncloneableTags[errorTag] = cloneableTags[funcTag] =\\ncloneableTags[mapTag] = cloneableTags[setTag] =\\ncloneableTags[weakMapTag] = false;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * The base implementation of `_.clone` without support for argument juggling\\n * and `this` binding `customizer` functions.\\n *\\n * @private\\n * @param {*} value The value to clone.\\n * @param {boolean} [isDeep] Specify a deep clone.\\n * @param {Function} [customizer] The function to customize cloning values.\\n * @param {string} [key] The key of `value`.\\n * @param {Object} [object] The object `value` belongs to.\\n * @param {Array} [stackA=[]] Tracks traversed source objects.\\n * @param {Array} [stackB=[]] Associates clones with source counterparts.\\n * @returns {*} Returns the cloned value.\\n */\\nfunction baseClone(value, isDeep, customizer, key, object, stackA, stackB) {\\n  var result;\\n  if (customizer) {\\n    result = object ? customizer(value, key, object) : customizer(value);\\n  }\\n  if (result !== undefined) {\\n    return result;\\n  }\\n  if (!isObject(value)) {\\n    return value;\\n  }\\n  var isArr = isArray(value);\\n  if (isArr) {\\n    result = initCloneArray(value);\\n    if (!isDeep) {\\n      return arrayCopy(value, result);\\n    }\\n  } else {\\n    var tag = objToString.call(value),\\n        isFunc = tag == funcTag;\\n\\n    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\\n      result = initCloneObject(isFunc ? {} : value);\\n      if (!isDeep) {\\n        return baseAssign(result, value);\\n      }\\n    } else {\\n      return cloneableTags[tag]\\n        ? initCloneByTag(value, tag, isDeep)\\n        : (object ? value : {});\\n    }\\n  }\\n  // Check for circular references and return its corresponding clone.\\n  stackA || (stackA = []);\\n  stackB || (stackB = []);\\n\\n  var length = stackA.length;\\n  while (length--) {\\n    if (stackA[length] == value) {\\n      return stackB[length];\\n    }\\n  }\\n  // Add the source value to the stack of traversed objects and associate it with its clone.\\n  stackA.push(value);\\n  stackB.push(result);\\n\\n  // Recursively populate clone (susceptible to call stack limits).\\n  (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {\\n    result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB);\\n  });\\n  return result;\\n}\\n\\nmodule.exports = baseClone;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseClone.js\\n ** module id = 101\\n ** module chunks = 0\\n **/","/**\\n * Copies the values of `source` to `array`.\\n *\\n * @private\\n * @param {Array} source The array to copy values from.\\n * @param {Array} [array=[]] The array to copy values to.\\n * @returns {Array} Returns `array`.\\n */\\nfunction arrayCopy(source, array) {\\n  var index = -1,\\n      length = source.length;\\n\\n  array || (array = Array(length));\\n  while (++index < length) {\\n    array[index] = source[index];\\n  }\\n  return array;\\n}\\n\\nmodule.exports = arrayCopy;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/arrayCopy.js\\n ** module id = 102\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.forEach` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns `array`.\\n */\\nfunction arrayEach(array, iteratee) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (iteratee(array[index], index, array) === false) {\\n      break;\\n    }\\n  }\\n  return array;\\n}\\n\\nmodule.exports = arrayEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/arrayEach.js\\n ** module id = 103\\n ** module chunks = 0\\n **/","var baseCopy = require(\'./baseCopy\'),\\n    keys = require(\'../object/keys\');\\n\\n/**\\n * The base implementation of `_.assign` without support for argument juggling,\\n * multiple sources, and `customizer` functions.\\n *\\n * @private\\n * @param {Object} object The destination object.\\n * @param {Object} source The source object.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseAssign(object, source) {\\n  return source == null\\n    ? object\\n    : baseCopy(source, keys(source), object);\\n}\\n\\nmodule.exports = baseAssign;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseAssign.js\\n ** module id = 104\\n ** module chunks = 0\\n **/","/**\\n * Copies properties of `source` to `object`.\\n *\\n * @private\\n * @param {Object} source The object to copy properties from.\\n * @param {Array} props The property names to copy.\\n * @param {Object} [object={}] The object to copy properties to.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseCopy(source, props, object) {\\n  object || (object = {});\\n\\n  var index = -1,\\n      length = props.length;\\n\\n  while (++index < length) {\\n    var key = props[index];\\n    object[key] = source[key];\\n  }\\n  return object;\\n}\\n\\nmodule.exports = baseCopy;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseCopy.js\\n ** module id = 105\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObject = require(\'../lang/isObject\'),\\n    shimKeys = require(\'../internal/shimKeys\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeKeys = getNative(Object, \'keys\');\\n\\n/**\\n * Creates an array of the own enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects. See the\\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\\n * for more details.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keys(new Foo);\\n * // => [\'a\', \'b\'] (iteration order is not guaranteed)\\n *\\n * _.keys(\'hi\');\\n * // => [\'0\', \'1\']\\n */\\nvar keys = !nativeKeys ? shimKeys : function(object) {\\n  var Ctor = object == null ? undefined : object.constructor;\\n  if ((typeof Ctor == \'function\' && Ctor.prototype === object) ||\\n      (typeof object != \'function\' && isArrayLike(object))) {\\n    return shimKeys(object);\\n  }\\n  return isObject(object) ? nativeKeys(object) : [];\\n};\\n\\nmodule.exports = keys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/keys.js\\n ** module id = 106\\n ** module chunks = 0\\n **/","var isNative = require(\'../lang/isNative\');\\n\\n/**\\n * Gets the native function at `key` of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {string} key The key of the method to get.\\n * @returns {*} Returns the function if it\'s native, else `undefined`.\\n */\\nfunction getNative(object, key) {\\n  var value = object == null ? undefined : object[key];\\n  return isNative(value) ? value : undefined;\\n}\\n\\nmodule.exports = getNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/getNative.js\\n ** module id = 107\\n ** module chunks = 0\\n **/","var isFunction = require(\'./isFunction\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used to detect host constructors (Safari > 5). */\\nvar reIsHostCtor = /^\\\\[object .+?Constructor\\\\]$/;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to resolve the decompiled source of functions. */\\nvar fnToString = Function.prototype.toString;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Used to detect if a method is native. */\\nvar reIsNative = RegExp(\'^\' +\\n  fnToString.call(hasOwnProperty).replace(/[\\\\\\\\^$.*+?()[\\\\]{}|]/g, \'\\\\\\\\$&\')\\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g, \'$1.*?\') + \'$\'\\n);\\n\\n/**\\n * Checks if `value` is a native function.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\\n * @example\\n *\\n * _.isNative(Array.prototype.push);\\n * // => true\\n *\\n * _.isNative(_);\\n * // => false\\n */\\nfunction isNative(value) {\\n  if (value == null) {\\n    return false;\\n  }\\n  if (isFunction(value)) {\\n    return reIsNative.test(fnToString.call(value));\\n  }\\n  return isObjectLike(value) && reIsHostCtor.test(value);\\n}\\n\\nmodule.exports = isNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isNative.js\\n ** module id = 108\\n ** module chunks = 0\\n **/","var isObject = require(\'./isObject\');\\n\\n/** `Object#toString` result references. */\\nvar funcTag = \'[object Function]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Function` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isFunction(_);\\n * // => true\\n *\\n * _.isFunction(/abc/);\\n * // => false\\n */\\nfunction isFunction(value) {\\n  // The use of `Object#toString` avoids issues with the `typeof` operator\\n  // in older versions of Chrome and Safari which return \'function\' for regexes\\n  // and Safari 8 which returns \'object\' for typed array constructors.\\n  return isObject(value) && objToString.call(value) == funcTag;\\n}\\n\\nmodule.exports = isFunction;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isFunction.js\\n ** module id = 109\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String(\'\')`)\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(1);\\n * // => false\\n */\\nfunction isObject(value) {\\n  // Avoid a V8 JIT bug in Chrome 19-20.\\n  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\\n  var type = typeof value;\\n  return !!value && (type == \'object\' || type == \'function\');\\n}\\n\\nmodule.exports = isObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isObject.js\\n ** module id = 110\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is object-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n */\\nfunction isObjectLike(value) {\\n  return !!value && typeof value == \'object\';\\n}\\n\\nmodule.exports = isObjectLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isObjectLike.js\\n ** module id = 111\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\');\\n\\n/**\\n * Checks if `value` is array-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\\n */\\nfunction isArrayLike(value) {\\n  return value != null && isLength(getLength(value));\\n}\\n\\nmodule.exports = isArrayLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isArrayLike.js\\n ** module id = 112\\n ** module chunks = 0\\n **/","var baseProperty = require(\'./baseProperty\');\\n\\n/**\\n * Gets the \\"length\\" property value of `object`.\\n *\\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {*} Returns the \\"length\\" value.\\n */\\nvar getLength = baseProperty(\'length\');\\n\\nmodule.exports = getLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/getLength.js\\n ** module id = 113\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.property` without support for deep paths.\\n *\\n * @private\\n * @param {string} key The key of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseProperty(key) {\\n  return function(object) {\\n    return object == null ? undefined : object[key];\\n  };\\n}\\n\\nmodule.exports = baseProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseProperty.js\\n ** module id = 114\\n ** module chunks = 0\\n **/","/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like length.\\n *\\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\\n */\\nfunction isLength(value) {\\n  return typeof value == \'number\' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\\n}\\n\\nmodule.exports = isLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isLength.js\\n ** module id = 115\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'./isIndex\'),\\n    isLength = require(\'./isLength\'),\\n    keysIn = require(\'../object/keysIn\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A fallback implementation of `Object.keys` which creates an array of the\\n * own enumerable property names of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n */\\nfunction shimKeys(object) {\\n  var props = keysIn(object),\\n      propsLength = props.length,\\n      length = propsLength && object.length;\\n\\n  var allowIndexes = !!length && isLength(length) &&\\n    (isArray(object) || isArguments(object));\\n\\n  var index = -1,\\n      result = [];\\n\\n  while (++index < propsLength) {\\n    var key = props[index];\\n    if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = shimKeys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/shimKeys.js\\n ** module id = 116\\n ** module chunks = 0\\n **/","var isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Native method references. */\\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\\n\\n/**\\n * Checks if `value` is classified as an `arguments` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArguments(function() { return arguments; }());\\n * // => true\\n *\\n * _.isArguments([1, 2, 3]);\\n * // => false\\n */\\nfunction isArguments(value) {\\n  return isObjectLike(value) && isArrayLike(value) &&\\n    hasOwnProperty.call(value, \'callee\') && !propertyIsEnumerable.call(value, \'callee\');\\n}\\n\\nmodule.exports = isArguments;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isArguments.js\\n ** module id = 117\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar arrayTag = \'[object Array]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeIsArray = getNative(Array, \'isArray\');\\n\\n/**\\n * Checks if `value` is classified as an `Array` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArray([1, 2, 3]);\\n * // => true\\n *\\n * _.isArray(function() { return arguments; }());\\n * // => false\\n */\\nvar isArray = nativeIsArray || function(value) {\\n  return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\\n};\\n\\nmodule.exports = isArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isArray.js\\n ** module id = 118\\n ** module chunks = 0\\n **/","/** Used to detect unsigned integer values. */\\nvar reIsUint = /^\\\\d+$/;\\n\\n/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like index.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\\n */\\nfunction isIndex(value, length) {\\n  value = (typeof value == \'number\' || reIsUint.test(value)) ? +value : -1;\\n  length = length == null ? MAX_SAFE_INTEGER : length;\\n  return value > -1 && value % 1 == 0 && value < length;\\n}\\n\\nmodule.exports = isIndex;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isIndex.js\\n ** module id = 119\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'../internal/isIndex\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Creates an array of the own and inherited enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keysIn(new Foo);\\n * // => [\'a\', \'b\', \'c\'] (iteration order is not guaranteed)\\n */\\nfunction keysIn(object) {\\n  if (object == null) {\\n    return [];\\n  }\\n  if (!isObject(object)) {\\n    object = Object(object);\\n  }\\n  var length = object.length;\\n  length = (length && isLength(length) &&\\n    (isArray(object) || isArguments(object)) && length) || 0;\\n\\n  var Ctor = object.constructor,\\n      index = -1,\\n      isProto = typeof Ctor == \'function\' && Ctor.prototype === object,\\n      result = Array(length),\\n      skipIndexes = length > 0;\\n\\n  while (++index < length) {\\n    result[index] = (index + \'\');\\n  }\\n  for (var key in object) {\\n    if (!(skipIndexes && isIndex(key, length)) &&\\n        !(key == \'constructor\' && (isProto || !hasOwnProperty.call(object, key)))) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = keysIn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/keysIn.js\\n ** module id = 120\\n ** module chunks = 0\\n **/","var baseFor = require(\'./baseFor\'),\\n    keys = require(\'../object/keys\');\\n\\n/**\\n * The base implementation of `_.forOwn` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseForOwn(object, iteratee) {\\n  return baseFor(object, iteratee, keys);\\n}\\n\\nmodule.exports = baseForOwn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseForOwn.js\\n ** module id = 121\\n ** module chunks = 0\\n **/","var createBaseFor = require(\'./createBaseFor\');\\n\\n/**\\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\\n * each property. Iteratee functions may exit iteration early by explicitly\\n * returning `false`.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @param {Function} keysFunc The function to get the keys of `object`.\\n * @returns {Object} Returns `object`.\\n */\\nvar baseFor = createBaseFor();\\n\\nmodule.exports = baseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseFor.js\\n ** module id = 122\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a base function for `_.forIn` or `_.forInRight`.\\n *\\n * @private\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseFor(fromRight) {\\n  return function(object, iteratee, keysFunc) {\\n    var iterable = toObject(object),\\n        props = keysFunc(object),\\n        length = props.length,\\n        index = fromRight ? length : -1;\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      var key = props[index];\\n      if (iteratee(iterable[key], key, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return object;\\n  };\\n}\\n\\nmodule.exports = createBaseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createBaseFor.js\\n ** module id = 123\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Converts `value` to an object if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Object} Returns the object.\\n */\\nfunction toObject(value) {\\n  return isObject(value) ? value : Object(value);\\n}\\n\\nmodule.exports = toObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/toObject.js\\n ** module id = 124\\n ** module chunks = 0\\n **/","/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Initializes an array clone.\\n *\\n * @private\\n * @param {Array} array The array to clone.\\n * @returns {Array} Returns the initialized clone.\\n */\\nfunction initCloneArray(array) {\\n  var length = array.length,\\n      result = new array.constructor(length);\\n\\n  // Add array properties assigned by `RegExp#exec`.\\n  if (length && typeof array[0] == \'string\' && hasOwnProperty.call(array, \'index\')) {\\n    result.index = array.index;\\n    result.input = array.input;\\n  }\\n  return result;\\n}\\n\\nmodule.exports = initCloneArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/initCloneArray.js\\n ** module id = 125\\n ** module chunks = 0\\n **/","var bufferClone = require(\'./bufferClone\');\\n\\n/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    numberTag = \'[object Number]\',\\n    regexpTag = \'[object RegExp]\',\\n    stringTag = \'[object String]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to match `RegExp` flags from their coerced string values. */\\nvar reFlags = /\\\\w*$/;\\n\\n/**\\n * Initializes an object clone based on its `toStringTag`.\\n *\\n * **Note:** This function only supports cloning values with tags of\\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\\n *\\n * @private\\n * @param {Object} object The object to clone.\\n * @param {string} tag The `toStringTag` of the object to clone.\\n * @param {boolean} [isDeep] Specify a deep clone.\\n * @returns {Object} Returns the initialized clone.\\n */\\nfunction initCloneByTag(object, tag, isDeep) {\\n  var Ctor = object.constructor;\\n  switch (tag) {\\n    case arrayBufferTag:\\n      return bufferClone(object);\\n\\n    case boolTag:\\n    case dateTag:\\n      return new Ctor(+object);\\n\\n    case float32Tag: case float64Tag:\\n    case int8Tag: case int16Tag: case int32Tag:\\n    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\\n      var buffer = object.buffer;\\n      return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length);\\n\\n    case numberTag:\\n    case stringTag:\\n      return new Ctor(object);\\n\\n    case regexpTag:\\n      var result = new Ctor(object.source, reFlags.exec(object));\\n      result.lastIndex = object.lastIndex;\\n  }\\n  return result;\\n}\\n\\nmodule.exports = initCloneByTag;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/initCloneByTag.js\\n ** module id = 126\\n ** module chunks = 0\\n **/","/** Native method references. */\\nvar ArrayBuffer = global.ArrayBuffer,\\n    Uint8Array = global.Uint8Array;\\n\\n/**\\n * Creates a clone of the given array buffer.\\n *\\n * @private\\n * @param {ArrayBuffer} buffer The array buffer to clone.\\n * @returns {ArrayBuffer} Returns the cloned array buffer.\\n */\\nfunction bufferClone(buffer) {\\n  var result = new ArrayBuffer(buffer.byteLength),\\n      view = new Uint8Array(result);\\n\\n  view.set(new Uint8Array(buffer));\\n  return result;\\n}\\n\\nmodule.exports = bufferClone;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/bufferClone.js\\n ** module id = 127\\n ** module chunks = 0\\n **/","/**\\n * Initializes an object clone.\\n *\\n * @private\\n * @param {Object} object The object to clone.\\n * @returns {Object} Returns the initialized clone.\\n */\\nfunction initCloneObject(object) {\\n  var Ctor = object.constructor;\\n  if (!(typeof Ctor == \'function\' && Ctor instanceof Ctor)) {\\n    Ctor = Object;\\n  }\\n  return new Ctor;\\n}\\n\\nmodule.exports = initCloneObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/initCloneObject.js\\n ** module id = 128\\n ** module chunks = 0\\n **/","var identity = require(\'../utility/identity\');\\n\\n/**\\n * A specialized version of `baseCallback` which only supports `this` binding\\n * and specifying the number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {Function} func The function to bind.\\n * @param {*} thisArg The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction bindCallback(func, thisArg, argCount) {\\n  if (typeof func != \'function\') {\\n    return identity;\\n  }\\n  if (thisArg === undefined) {\\n    return func;\\n  }\\n  switch (argCount) {\\n    case 1: return function(value) {\\n      return func.call(thisArg, value);\\n    };\\n    case 3: return function(value, index, collection) {\\n      return func.call(thisArg, value, index, collection);\\n    };\\n    case 4: return function(accumulator, value, index, collection) {\\n      return func.call(thisArg, accumulator, value, index, collection);\\n    };\\n    case 5: return function(value, other, key, object, source) {\\n      return func.call(thisArg, value, other, key, object, source);\\n    };\\n  }\\n  return function() {\\n    return func.apply(thisArg, arguments);\\n  };\\n}\\n\\nmodule.exports = bindCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/bindCallback.js\\n ** module id = 129\\n ** module chunks = 0\\n **/","/**\\n * This method returns the first argument provided to it.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {*} value Any value.\\n * @returns {*} Returns `value`.\\n * @example\\n *\\n * var object = { \'user\': \'fred\' };\\n *\\n * _.identity(object) === object;\\n * // => true\\n */\\nfunction identity(value) {\\n  return value;\\n}\\n\\nmodule.exports = identity;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/utility/identity.js\\n ** module id = 130\\n ** module chunks = 0\\n **/","var isArrayLike = require(\'./isArrayLike\'),\\n    isIndex = require(\'./isIndex\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if the provided arguments are from an iteratee call.\\n *\\n * @private\\n * @param {*} value The potential iteratee value argument.\\n * @param {*} index The potential iteratee index or key argument.\\n * @param {*} object The potential iteratee object argument.\\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\\n */\\nfunction isIterateeCall(value, index, object) {\\n  if (!isObject(object)) {\\n    return false;\\n  }\\n  var type = typeof index;\\n  if (type == \'number\'\\n      ? (isArrayLike(object) && isIndex(index, object.length))\\n      : (type == \'string\' && index in object)) {\\n    var other = object[index];\\n    return value === value ? (value === other) : (other !== other);\\n  }\\n  return false;\\n}\\n\\nmodule.exports = isIterateeCall;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isIterateeCall.js\\n ** module id = 131\\n ** module chunks = 0\\n **/","module.exports = require(\'./forEach\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/collection/each.js\\n ** module id = 132\\n ** module chunks = 0\\n **/","var arrayEach = require(\'../internal/arrayEach\'),\\n    baseEach = require(\'../internal/baseEach\'),\\n    createForEach = require(\'../internal/createForEach\');\\n\\n/**\\n * Iterates over elements of `collection` invoking `iteratee` for each element.\\n * The `iteratee` is bound to `thisArg` and invoked with three arguments:\\n * (value, index|key, collection). Iteratee functions may exit iteration early\\n * by explicitly returning `false`.\\n *\\n * **Note:** As with other \\"Collections\\" methods, objects with a \\"length\\" property\\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\\n * may be used for object iteration.\\n *\\n * @static\\n * @memberOf _\\n * @alias each\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array|Object|string} Returns `collection`.\\n * @example\\n *\\n * _([1, 2]).forEach(function(n) {\\n *   console.log(n);\\n * }).value();\\n * // => logs each value from left to right and returns the array\\n *\\n * _.forEach({ \'a\': 1, \'b\': 2 }, function(n, key) {\\n *   console.log(n, key);\\n * });\\n * // => logs each value-key pair and returns the object (iteration order is not guaranteed)\\n */\\nvar forEach = createForEach(arrayEach, baseEach);\\n\\nmodule.exports = forEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/collection/forEach.js\\n ** module id = 133\\n ** module chunks = 0\\n **/","var baseForOwn = require(\'./baseForOwn\'),\\n    createBaseEach = require(\'./createBaseEach\');\\n\\n/**\\n * The base implementation of `_.forEach` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array|Object|string} Returns `collection`.\\n */\\nvar baseEach = createBaseEach(baseForOwn);\\n\\nmodule.exports = baseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseEach.js\\n ** module id = 134\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a `baseEach` or `baseEachRight` function.\\n *\\n * @private\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseEach(eachFunc, fromRight) {\\n  return function(collection, iteratee) {\\n    var length = collection ? getLength(collection) : 0;\\n    if (!isLength(length)) {\\n      return eachFunc(collection, iteratee);\\n    }\\n    var index = fromRight ? length : -1,\\n        iterable = toObject(collection);\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      if (iteratee(iterable[index], index, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return collection;\\n  };\\n}\\n\\nmodule.exports = createBaseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createBaseEach.js\\n ** module id = 135\\n ** module chunks = 0\\n **/","var bindCallback = require(\'./bindCallback\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/**\\n * Creates a function for `_.forEach` or `_.forEachRight`.\\n *\\n * @private\\n * @param {Function} arrayFunc The function to iterate over an array.\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @returns {Function} Returns the new each function.\\n */\\nfunction createForEach(arrayFunc, eachFunc) {\\n  return function(collection, iteratee, thisArg) {\\n    return (typeof iteratee == \'function\' && thisArg === undefined && isArray(collection))\\n      ? arrayFunc(collection, iteratee)\\n      : eachFunc(collection, bindCallback(iteratee, thisArg, 3));\\n  };\\n}\\n\\nmodule.exports = createForEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createForEach.js\\n ** module id = 136\\n ** module chunks = 0\\n **/","var baseCallback = require(\'../internal/baseCallback\'),\\n    baseUniq = require(\'../internal/baseUniq\'),\\n    isIterateeCall = require(\'../internal/isIterateeCall\'),\\n    sortedUniq = require(\'../internal/sortedUniq\');\\n\\n/**\\n * Creates a duplicate-free version of an array, using\\n * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\\n * for equality comparisons, in which only the first occurence of each element\\n * is kept. Providing `true` for `isSorted` performs a faster search algorithm\\n * for sorted arrays. If an iteratee function is provided it\'s invoked for\\n * each element in the array to generate the criterion by which uniqueness\\n * is computed. The `iteratee` is bound to `thisArg` and invoked with three\\n * arguments: (value, index, array).\\n *\\n * If a property name is provided for `iteratee` the created `_.property`\\n * style callback returns the property value of the given element.\\n *\\n * If a value is also provided for `thisArg` the created `_.matchesProperty`\\n * style callback returns `true` for elements that have a matching property\\n * value, else `false`.\\n *\\n * If an object is provided for `iteratee` the created `_.matches` style\\n * callback returns `true` for elements that have the properties of the given\\n * object, else `false`.\\n *\\n * @static\\n * @memberOf _\\n * @alias unique\\n * @category Array\\n * @param {Array} array The array to inspect.\\n * @param {boolean} [isSorted] Specify the array is sorted.\\n * @param {Function|Object|string} [iteratee] The function invoked per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array} Returns the new duplicate-value-free array.\\n * @example\\n *\\n * _.uniq([2, 1, 2]);\\n * // => [2, 1]\\n *\\n * // using `isSorted`\\n * _.uniq([1, 1, 2], true);\\n * // => [1, 2]\\n *\\n * // using an iteratee function\\n * _.uniq([1, 2.5, 1.5, 2], function(n) {\\n *   return this.floor(n);\\n * }, Math);\\n * // => [1, 2.5]\\n *\\n * // using the `_.property` callback shorthand\\n * _.uniq([{ \'x\': 1 }, { \'x\': 2 }, { \'x\': 1 }], \'x\');\\n * // => [{ \'x\': 1 }, { \'x\': 2 }]\\n */\\nfunction uniq(array, isSorted, iteratee, thisArg) {\\n  var length = array ? array.length : 0;\\n  if (!length) {\\n    return [];\\n  }\\n  if (isSorted != null && typeof isSorted != \'boolean\') {\\n    thisArg = iteratee;\\n    iteratee = isIterateeCall(array, isSorted, thisArg) ? undefined : isSorted;\\n    isSorted = false;\\n  }\\n  iteratee = iteratee == null ? iteratee : baseCallback(iteratee, thisArg, 3);\\n  return (isSorted)\\n    ? sortedUniq(array, iteratee)\\n    : baseUniq(array, iteratee);\\n}\\n\\nmodule.exports = uniq;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/array/uniq.js\\n ** module id = 137\\n ** module chunks = 0\\n **/","var baseMatches = require(\'./baseMatches\'),\\n    baseMatchesProperty = require(\'./baseMatchesProperty\'),\\n    bindCallback = require(\'./bindCallback\'),\\n    identity = require(\'../utility/identity\'),\\n    property = require(\'../utility/property\');\\n\\n/**\\n * The base implementation of `_.callback` which supports specifying the\\n * number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {*} [func=_.identity] The value to convert to a callback.\\n * @param {*} [thisArg] The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction baseCallback(func, thisArg, argCount) {\\n  var type = typeof func;\\n  if (type == \'function\') {\\n    return thisArg === undefined\\n      ? func\\n      : bindCallback(func, thisArg, argCount);\\n  }\\n  if (func == null) {\\n    return identity;\\n  }\\n  if (type == \'object\') {\\n    return baseMatches(func);\\n  }\\n  return thisArg === undefined\\n    ? property(func)\\n    : baseMatchesProperty(func, thisArg);\\n}\\n\\nmodule.exports = baseCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseCallback.js\\n ** module id = 138\\n ** module chunks = 0\\n **/","var baseIsMatch = require(\'./baseIsMatch\'),\\n    getMatchData = require(\'./getMatchData\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.matches` which does not clone `source`.\\n *\\n * @private\\n * @param {Object} source The object of property values to match.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatches(source) {\\n  var matchData = getMatchData(source);\\n  if (matchData.length == 1 && matchData[0][2]) {\\n    var key = matchData[0][0],\\n        value = matchData[0][1];\\n\\n    return function(object) {\\n      if (object == null) {\\n        return false;\\n      }\\n      return object[key] === value && (value !== undefined || (key in toObject(object)));\\n    };\\n  }\\n  return function(object) {\\n    return baseIsMatch(object, matchData);\\n  };\\n}\\n\\nmodule.exports = baseMatches;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseMatches.js\\n ** module id = 139\\n ** module chunks = 0\\n **/","var baseIsEqual = require(\'./baseIsEqual\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.isMatch` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to inspect.\\n * @param {Array} matchData The propery names, values, and compare flags to match.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\\n */\\nfunction baseIsMatch(object, matchData, customizer) {\\n  var index = matchData.length,\\n      length = index,\\n      noCustomizer = !customizer;\\n\\n  if (object == null) {\\n    return !length;\\n  }\\n  object = toObject(object);\\n  while (index--) {\\n    var data = matchData[index];\\n    if ((noCustomizer && data[2])\\n          ? data[1] !== object[data[0]]\\n          : !(data[0] in object)\\n        ) {\\n      return false;\\n    }\\n  }\\n  while (++index < length) {\\n    data = matchData[index];\\n    var key = data[0],\\n        objValue = object[key],\\n        srcValue = data[1];\\n\\n    if (noCustomizer && data[2]) {\\n      if (objValue === undefined && !(key in object)) {\\n        return false;\\n      }\\n    } else {\\n      var result = customizer ? customizer(objValue, srcValue, key) : undefined;\\n      if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {\\n        return false;\\n      }\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = baseIsMatch;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIsMatch.js\\n ** module id = 140\\n ** module chunks = 0\\n **/","var baseIsEqualDeep = require(\'./baseIsEqualDeep\'),\\n    isObject = require(\'../lang/isObject\'),\\n    isObjectLike = require(\'./isObjectLike\');\\n\\n/**\\n * The base implementation of `_.isEqual` without support for `this` binding\\n * `customizer` functions.\\n *\\n * @private\\n * @param {*} value The value to compare.\\n * @param {*} other The other value to compare.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\\n */\\nfunction baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {\\n  if (value === other) {\\n    return true;\\n  }\\n  if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\\n    return value !== value && other !== other;\\n  }\\n  return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);\\n}\\n\\nmodule.exports = baseIsEqual;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIsEqual.js\\n ** module id = 141\\n ** module chunks = 0\\n **/","var equalArrays = require(\'./equalArrays\'),\\n    equalByTag = require(\'./equalByTag\'),\\n    equalObjects = require(\'./equalObjects\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isTypedArray = require(\'../lang/isTypedArray\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    objectTag = \'[object Object]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * A specialized version of `baseIsEqual` for arrays and objects which performs\\n * deep comparisons and tracks traversed objects enabling objects with circular\\n * references to be compared.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA=[]] Tracks traversed `value` objects.\\n * @param {Array} [stackB=[]] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objIsArr = isArray(object),\\n      othIsArr = isArray(other),\\n      objTag = arrayTag,\\n      othTag = arrayTag;\\n\\n  if (!objIsArr) {\\n    objTag = objToString.call(object);\\n    if (objTag == argsTag) {\\n      objTag = objectTag;\\n    } else if (objTag != objectTag) {\\n      objIsArr = isTypedArray(object);\\n    }\\n  }\\n  if (!othIsArr) {\\n    othTag = objToString.call(other);\\n    if (othTag == argsTag) {\\n      othTag = objectTag;\\n    } else if (othTag != objectTag) {\\n      othIsArr = isTypedArray(other);\\n    }\\n  }\\n  var objIsObj = objTag == objectTag,\\n      othIsObj = othTag == objectTag,\\n      isSameTag = objTag == othTag;\\n\\n  if (isSameTag && !(objIsArr || objIsObj)) {\\n    return equalByTag(object, other, objTag);\\n  }\\n  if (!isLoose) {\\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, \'__wrapped__\'),\\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, \'__wrapped__\');\\n\\n    if (objIsWrapped || othIsWrapped) {\\n      return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);\\n    }\\n  }\\n  if (!isSameTag) {\\n    return false;\\n  }\\n  // Assume cyclic values are equal.\\n  // For more information on detecting circular references see https://es5.github.io/#JO.\\n  stackA || (stackA = []);\\n  stackB || (stackB = []);\\n\\n  var length = stackA.length;\\n  while (length--) {\\n    if (stackA[length] == object) {\\n      return stackB[length] == other;\\n    }\\n  }\\n  // Add `object` and `other` to the stack of traversed objects.\\n  stackA.push(object);\\n  stackB.push(other);\\n\\n  var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);\\n\\n  stackA.pop();\\n  stackB.pop();\\n\\n  return result;\\n}\\n\\nmodule.exports = baseIsEqualDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIsEqualDeep.js\\n ** module id = 142\\n ** module chunks = 0\\n **/","var arraySome = require(\'./arraySome\');\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for arrays with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Array} array The array to compare.\\n * @param {Array} other The other array to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing arrays.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\\n */\\nfunction equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var index = -1,\\n      arrLength = array.length,\\n      othLength = other.length;\\n\\n  if (arrLength != othLength && !(isLoose && othLength > arrLength)) {\\n    return false;\\n  }\\n  // Ignore non-index properties.\\n  while (++index < arrLength) {\\n    var arrValue = array[index],\\n        othValue = other[index],\\n        result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;\\n\\n    if (result !== undefined) {\\n      if (result) {\\n        continue;\\n      }\\n      return false;\\n    }\\n    // Recursively compare arrays (susceptible to call stack limits).\\n    if (isLoose) {\\n      if (!arraySome(other, function(othValue) {\\n            return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);\\n          })) {\\n        return false;\\n      }\\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalArrays;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/equalArrays.js\\n ** module id = 143\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.some` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} predicate The function invoked per iteration.\\n * @returns {boolean} Returns `true` if any element passes the predicate check,\\n *  else `false`.\\n */\\nfunction arraySome(array, predicate) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (predicate(array[index], index, array)) {\\n      return true;\\n    }\\n  }\\n  return false;\\n}\\n\\nmodule.exports = arraySome;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/arraySome.js\\n ** module id = 144\\n ** module chunks = 0\\n **/","/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    numberTag = \'[object Number]\',\\n    regexpTag = \'[object RegExp]\',\\n    stringTag = \'[object String]\';\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for comparing objects of\\n * the same `toStringTag`.\\n *\\n * **Note:** This function only supports comparing values with tags of\\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {string} tag The `toStringTag` of the objects to compare.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalByTag(object, other, tag) {\\n  switch (tag) {\\n    case boolTag:\\n    case dateTag:\\n      // Coerce dates and booleans to numbers, dates to milliseconds and booleans\\n      // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.\\n      return +object == +other;\\n\\n    case errorTag:\\n      return object.name == other.name && object.message == other.message;\\n\\n    case numberTag:\\n      // Treat `NaN` vs. `NaN` as equal.\\n      return (object != +object)\\n        ? other != +other\\n        : object == +other;\\n\\n    case regexpTag:\\n    case stringTag:\\n      // Coerce regexes to strings and treat strings primitives and string\\n      // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.\\n      return object == (other + \'\');\\n  }\\n  return false;\\n}\\n\\nmodule.exports = equalByTag;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/equalByTag.js\\n ** module id = 145\\n ** module chunks = 0\\n **/","var keys = require(\'../object/keys\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for objects with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objProps = keys(object),\\n      objLength = objProps.length,\\n      othProps = keys(other),\\n      othLength = othProps.length;\\n\\n  if (objLength != othLength && !isLoose) {\\n    return false;\\n  }\\n  var index = objLength;\\n  while (index--) {\\n    var key = objProps[index];\\n    if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {\\n      return false;\\n    }\\n  }\\n  var skipCtor = isLoose;\\n  while (++index < objLength) {\\n    key = objProps[index];\\n    var objValue = object[key],\\n        othValue = other[key],\\n        result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;\\n\\n    // Recursively compare objects (susceptible to call stack limits).\\n    if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {\\n      return false;\\n    }\\n    skipCtor || (skipCtor = key == \'constructor\');\\n  }\\n  if (!skipCtor) {\\n    var objCtor = object.constructor,\\n        othCtor = other.constructor;\\n\\n    // Non `Object` object instances with different constructors are not equal.\\n    if (objCtor != othCtor &&\\n        (\'constructor\' in object && \'constructor\' in other) &&\\n        !(typeof objCtor == \'function\' && objCtor instanceof objCtor &&\\n          typeof othCtor == \'function\' && othCtor instanceof othCtor)) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalObjects;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/equalObjects.js\\n ** module id = 146\\n ** module chunks = 0\\n **/","var isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    funcTag = \'[object Function]\',\\n    mapTag = \'[object Map]\',\\n    numberTag = \'[object Number]\',\\n    objectTag = \'[object Object]\',\\n    regexpTag = \'[object RegExp]\',\\n    setTag = \'[object Set]\',\\n    stringTag = \'[object String]\',\\n    weakMapTag = \'[object WeakMap]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to identify `toStringTag` values of typed arrays. */\\nvar typedArrayTags = {};\\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\\ntypedArrayTags[uint32Tag] = true;\\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a typed array.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isTypedArray(new Uint8Array);\\n * // => true\\n *\\n * _.isTypedArray([]);\\n * // => false\\n */\\nfunction isTypedArray(value) {\\n  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\\n}\\n\\nmodule.exports = isTypedArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isTypedArray.js\\n ** module id = 147\\n ** module chunks = 0\\n **/","var isStrictComparable = require(\'./isStrictComparable\'),\\n    pairs = require(\'../object/pairs\');\\n\\n/**\\n * Gets the propery names, values, and compare flags of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the match data of `object`.\\n */\\nfunction getMatchData(object) {\\n  var result = pairs(object),\\n      length = result.length;\\n\\n  while (length--) {\\n    result[length][2] = isStrictComparable(result[length][1]);\\n  }\\n  return result;\\n}\\n\\nmodule.exports = getMatchData;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/getMatchData.js\\n ** module id = 148\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` if suitable for strict\\n *  equality comparisons, else `false`.\\n */\\nfunction isStrictComparable(value) {\\n  return value === value && !isObject(value);\\n}\\n\\nmodule.exports = isStrictComparable;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isStrictComparable.js\\n ** module id = 149\\n ** module chunks = 0\\n **/","var keys = require(\'./keys\'),\\n    toObject = require(\'../internal/toObject\');\\n\\n/**\\n * Creates a two dimensional array of the key-value pairs for `object`,\\n * e.g. `[[key1, value1], [key2, value2]]`.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the new array of key-value pairs.\\n * @example\\n *\\n * _.pairs({ \'barney\': 36, \'fred\': 40 });\\n * // => [[\'barney\', 36], [\'fred\', 40]] (iteration order is not guaranteed)\\n */\\nfunction pairs(object) {\\n  object = toObject(object);\\n\\n  var index = -1,\\n      props = keys(object),\\n      length = props.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    var key = props[index];\\n    result[index] = [key, object[key]];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = pairs;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/pairs.js\\n ** module id = 150\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    baseIsEqual = require(\'./baseIsEqual\'),\\n    baseSlice = require(\'./baseSlice\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isKey = require(\'./isKey\'),\\n    isStrictComparable = require(\'./isStrictComparable\'),\\n    last = require(\'../array/last\'),\\n    toObject = require(\'./toObject\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * The base implementation of `_.matchesProperty` which does not clone `srcValue`.\\n *\\n * @private\\n * @param {string} path The path of the property to get.\\n * @param {*} srcValue The value to compare.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatchesProperty(path, srcValue) {\\n  var isArr = isArray(path),\\n      isCommon = isKey(path) && isStrictComparable(srcValue),\\n      pathKey = (path + \'\');\\n\\n  path = toPath(path);\\n  return function(object) {\\n    if (object == null) {\\n      return false;\\n    }\\n    var key = pathKey;\\n    object = toObject(object);\\n    if ((isArr || !isCommon) && !(key in object)) {\\n      object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\\n      if (object == null) {\\n        return false;\\n      }\\n      key = last(path);\\n      object = toObject(object);\\n    }\\n    return object[key] === srcValue\\n      ? (srcValue !== undefined || (key in object))\\n      : baseIsEqual(srcValue, object[key], undefined, true);\\n  };\\n}\\n\\nmodule.exports = baseMatchesProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseMatchesProperty.js\\n ** module id = 151\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `get` without support for string paths\\n * and default values.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {Array} path The path of the property to get.\\n * @param {string} [pathKey] The key representation of path.\\n * @returns {*} Returns the resolved value.\\n */\\nfunction baseGet(object, path, pathKey) {\\n  if (object == null) {\\n    return;\\n  }\\n  if (pathKey !== undefined && pathKey in toObject(object)) {\\n    path = [pathKey];\\n  }\\n  var index = 0,\\n      length = path.length;\\n\\n  while (object != null && index < length) {\\n    object = object[path[index++]];\\n  }\\n  return (index && index == length) ? object : undefined;\\n}\\n\\nmodule.exports = baseGet;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseGet.js\\n ** module id = 152\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.slice` without an iteratee call guard.\\n *\\n * @private\\n * @param {Array} array The array to slice.\\n * @param {number} [start=0] The start position.\\n * @param {number} [end=array.length] The end position.\\n * @returns {Array} Returns the slice of `array`.\\n */\\nfunction baseSlice(array, start, end) {\\n  var index = -1,\\n      length = array.length;\\n\\n  start = start == null ? 0 : (+start || 0);\\n  if (start < 0) {\\n    start = -start > length ? 0 : (length + start);\\n  }\\n  end = (end === undefined || end > length) ? length : (+end || 0);\\n  if (end < 0) {\\n    end += length;\\n  }\\n  length = start > end ? 0 : ((end - start) >>> 0);\\n  start >>>= 0;\\n\\n  var result = Array(length);\\n  while (++index < length) {\\n    result[index] = array[index + start];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseSlice;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseSlice.js\\n ** module id = 153\\n ** module chunks = 0\\n **/","var isArray = require(\'../lang/isArray\'),\\n    toObject = require(\'./toObject\');\\n\\n/** Used to match property names within property paths. */\\nvar reIsDeepProp = /\\\\.|\\\\[(?:[^[\\\\]]*|([\\"\'])(?:(?!\\\\1)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?\\\\1)\\\\]/,\\n    reIsPlainProp = /^\\\\w*$/;\\n\\n/**\\n * Checks if `value` is a property name and not a property path.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {Object} [object] The object to query keys on.\\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\\n */\\nfunction isKey(value, object) {\\n  var type = typeof value;\\n  if ((type == \'string\' && reIsPlainProp.test(value)) || type == \'number\') {\\n    return true;\\n  }\\n  if (isArray(value)) {\\n    return false;\\n  }\\n  var result = !reIsDeepProp.test(value);\\n  return result || (object != null && value in toObject(object));\\n}\\n\\nmodule.exports = isKey;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/isKey.js\\n ** module id = 154\\n ** module chunks = 0\\n **/","/**\\n * Gets the last element of `array`.\\n *\\n * @static\\n * @memberOf _\\n * @category Array\\n * @param {Array} array The array to query.\\n * @returns {*} Returns the last element of `array`.\\n * @example\\n *\\n * _.last([1, 2, 3]);\\n * // => 3\\n */\\nfunction last(array) {\\n  var length = array ? array.length : 0;\\n  return length ? array[length - 1] : undefined;\\n}\\n\\nmodule.exports = last;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/array/last.js\\n ** module id = 155\\n ** module chunks = 0\\n **/","var baseToString = require(\'./baseToString\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/** Used to match property names within property paths. */\\nvar rePropName = /[^.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\"\'])((?:(?!\\\\2)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]/g;\\n\\n/** Used to match backslashes in property paths. */\\nvar reEscapeChar = /\\\\\\\\(\\\\\\\\)?/g;\\n\\n/**\\n * Converts `value` to property path array if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Array} Returns the property path array.\\n */\\nfunction toPath(value) {\\n  if (isArray(value)) {\\n    return value;\\n  }\\n  var result = [];\\n  baseToString(value).replace(rePropName, function(match, number, quote, string) {\\n    result.push(quote ? string.replace(reEscapeChar, \'$1\') : (number || match));\\n  });\\n  return result;\\n}\\n\\nmodule.exports = toPath;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/toPath.js\\n ** module id = 156\\n ** module chunks = 0\\n **/","/**\\n * Converts `value` to a string if it\'s not one. An empty string is returned\\n * for `null` or `undefined` values.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {string} Returns the string.\\n */\\nfunction baseToString(value) {\\n  return value == null ? \'\' : (value + \'\');\\n}\\n\\nmodule.exports = baseToString;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseToString.js\\n ** module id = 157\\n ** module chunks = 0\\n **/","var baseProperty = require(\'../internal/baseProperty\'),\\n    basePropertyDeep = require(\'../internal/basePropertyDeep\'),\\n    isKey = require(\'../internal/isKey\');\\n\\n/**\\n * Creates a function that returns the property value at `path` on a\\n * given object.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n * @example\\n *\\n * var objects = [\\n *   { \'a\': { \'b\': { \'c\': 2 } } },\\n *   { \'a\': { \'b\': { \'c\': 1 } } }\\n * ];\\n *\\n * _.map(objects, _.property(\'a.b.c\'));\\n * // => [2, 1]\\n *\\n * _.pluck(_.sortBy(objects, _.property([\'a\', \'b\', \'c\'])), \'a.b.c\');\\n * // => [1, 2]\\n */\\nfunction property(path) {\\n  return isKey(path) ? baseProperty(path) : basePropertyDeep(path);\\n}\\n\\nmodule.exports = property;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/utility/property.js\\n ** module id = 158\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * A specialized version of `baseProperty` which supports deep paths.\\n *\\n * @private\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction basePropertyDeep(path) {\\n  var pathKey = (path + \'\');\\n  path = toPath(path);\\n  return function(object) {\\n    return baseGet(object, path, pathKey);\\n  };\\n}\\n\\nmodule.exports = basePropertyDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/basePropertyDeep.js\\n ** module id = 159\\n ** module chunks = 0\\n **/","var baseIndexOf = require(\'./baseIndexOf\'),\\n    cacheIndexOf = require(\'./cacheIndexOf\'),\\n    createCache = require(\'./createCache\');\\n\\n/** Used as the size to enable large array optimizations. */\\nvar LARGE_ARRAY_SIZE = 200;\\n\\n/**\\n * The base implementation of `_.uniq` without support for callback shorthands\\n * and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to inspect.\\n * @param {Function} [iteratee] The function invoked per iteration.\\n * @returns {Array} Returns the new duplicate free array.\\n */\\nfunction baseUniq(array, iteratee) {\\n  var index = -1,\\n      indexOf = baseIndexOf,\\n      length = array.length,\\n      isCommon = true,\\n      isLarge = isCommon && length >= LARGE_ARRAY_SIZE,\\n      seen = isLarge ? createCache() : null,\\n      result = [];\\n\\n  if (seen) {\\n    indexOf = cacheIndexOf;\\n    isCommon = false;\\n  } else {\\n    isLarge = false;\\n    seen = iteratee ? [] : result;\\n  }\\n  outer:\\n  while (++index < length) {\\n    var value = array[index],\\n        computed = iteratee ? iteratee(value, index, array) : value;\\n\\n    if (isCommon && value === value) {\\n      var seenIndex = seen.length;\\n      while (seenIndex--) {\\n        if (seen[seenIndex] === computed) {\\n          continue outer;\\n        }\\n      }\\n      if (iteratee) {\\n        seen.push(computed);\\n      }\\n      result.push(value);\\n    }\\n    else if (indexOf(seen, computed, 0) < 0) {\\n      if (iteratee || isLarge) {\\n        seen.push(computed);\\n      }\\n      result.push(value);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseUniq;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseUniq.js\\n ** module id = 160\\n ** module chunks = 0\\n **/","var indexOfNaN = require(\'./indexOfNaN\');\\n\\n/**\\n * The base implementation of `_.indexOf` without support for binary searches.\\n *\\n * @private\\n * @param {Array} array The array to search.\\n * @param {*} value The value to search for.\\n * @param {number} fromIndex The index to search from.\\n * @returns {number} Returns the index of the matched value, else `-1`.\\n */\\nfunction baseIndexOf(array, value, fromIndex) {\\n  if (value !== value) {\\n    return indexOfNaN(array, fromIndex);\\n  }\\n  var index = fromIndex - 1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (array[index] === value) {\\n      return index;\\n    }\\n  }\\n  return -1;\\n}\\n\\nmodule.exports = baseIndexOf;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseIndexOf.js\\n ** module id = 161\\n ** module chunks = 0\\n **/","/**\\n * Gets the index at which the first occurrence of `NaN` is found in `array`.\\n *\\n * @private\\n * @param {Array} array The array to search.\\n * @param {number} fromIndex The index to search from.\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {number} Returns the index of the matched `NaN`, else `-1`.\\n */\\nfunction indexOfNaN(array, fromIndex, fromRight) {\\n  var length = array.length,\\n      index = fromIndex + (fromRight ? 0 : -1);\\n\\n  while ((fromRight ? index-- : ++index < length)) {\\n    var other = array[index];\\n    if (other !== other) {\\n      return index;\\n    }\\n  }\\n  return -1;\\n}\\n\\nmodule.exports = indexOfNaN;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/indexOfNaN.js\\n ** module id = 162\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if `value` is in `cache` mimicking the return signature of\\n * `_.indexOf` by returning `0` if the value is found, else `-1`.\\n *\\n * @private\\n * @param {Object} cache The cache to search.\\n * @param {*} value The value to search for.\\n * @returns {number} Returns `0` if `value` is found, else `-1`.\\n */\\nfunction cacheIndexOf(cache, value) {\\n  var data = cache.data,\\n      result = (typeof value == \'string\' || isObject(value)) ? data.set.has(value) : data.hash[value];\\n\\n  return result ? 0 : -1;\\n}\\n\\nmodule.exports = cacheIndexOf;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/cacheIndexOf.js\\n ** module id = 163\\n ** module chunks = 0\\n **/","var SetCache = require(\'./SetCache\'),\\n    getNative = require(\'./getNative\');\\n\\n/** Native method references. */\\nvar Set = getNative(global, \'Set\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeCreate = getNative(Object, \'create\');\\n\\n/**\\n * Creates a `Set` cache object to optimize linear searches of large arrays.\\n *\\n * @private\\n * @param {Array} [values] The values to cache.\\n * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`.\\n */\\nfunction createCache(values) {\\n  return (nativeCreate && Set) ? new SetCache(values) : null;\\n}\\n\\nmodule.exports = createCache;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createCache.js\\n ** module id = 164\\n ** module chunks = 0\\n **/","var cachePush = require(\'./cachePush\'),\\n    getNative = require(\'./getNative\');\\n\\n/** Native method references. */\\nvar Set = getNative(global, \'Set\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeCreate = getNative(Object, \'create\');\\n\\n/**\\n *\\n * Creates a cache object to store unique values.\\n *\\n * @private\\n * @param {Array} [values] The values to cache.\\n */\\nfunction SetCache(values) {\\n  var length = values ? values.length : 0;\\n\\n  this.data = { \'hash\': nativeCreate(null), \'set\': new Set };\\n  while (length--) {\\n    this.push(values[length]);\\n  }\\n}\\n\\n// Add functions to the `Set` cache.\\nSetCache.prototype.push = cachePush;\\n\\nmodule.exports = SetCache;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/SetCache.js\\n ** module id = 165\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Adds `value` to the cache.\\n *\\n * @private\\n * @name push\\n * @memberOf SetCache\\n * @param {*} value The value to cache.\\n */\\nfunction cachePush(value) {\\n  var data = this.data;\\n  if (typeof value == \'string\' || isObject(value)) {\\n    data.set.add(value);\\n  } else {\\n    data.hash[value] = true;\\n  }\\n}\\n\\nmodule.exports = cachePush;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/cachePush.js\\n ** module id = 166\\n ** module chunks = 0\\n **/","/**\\n * An implementation of `_.uniq` optimized for sorted arrays without support\\n * for callback shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to inspect.\\n * @param {Function} [iteratee] The function invoked per iteration.\\n * @returns {Array} Returns the new duplicate free array.\\n */\\nfunction sortedUniq(array, iteratee) {\\n  var seen,\\n      index = -1,\\n      length = array.length,\\n      resIndex = -1,\\n      result = [];\\n\\n  while (++index < length) {\\n    var value = array[index],\\n        computed = iteratee ? iteratee(value, index, array) : value;\\n\\n    if (!index || seen !== computed) {\\n      seen = computed;\\n      result[++resIndex] = value;\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = sortedUniq;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/sortedUniq.js\\n ** module id = 167\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nrequire(\\"./index\\");\\n\\nrequire(\\"./core\\");\\n\\nrequire(\\"./es2015\\");\\n\\nrequire(\\"./flow\\");\\n\\nrequire(\\"./jsx\\");\\n\\nrequire(\\"./misc\\");\\n\\nrequire(\\"./experimental\\");\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/init.js\\n ** module id = 168\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.assertEach = assertEach;\\nexports.assertOneOf = assertOneOf;\\nexports.assertNodeType = assertNodeType;\\nexports.assertNodeOrValueType = assertNodeOrValueType;\\nexports.assertValueType = assertValueType;\\nexports.chain = chain;\\nexports[\\"default\\"] = defineType;\\n\\nvar _index = require(\\"../index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar VISITOR_KEYS = {};\\nexports.VISITOR_KEYS = VISITOR_KEYS;\\nvar ALIAS_KEYS = {};\\nexports.ALIAS_KEYS = ALIAS_KEYS;\\nvar NODE_FIELDS = {};\\nexports.NODE_FIELDS = NODE_FIELDS;\\nvar BUILDER_KEYS = {};\\nexports.BUILDER_KEYS = BUILDER_KEYS;\\nvar DEPRECATED_KEYS = {};\\n\\nexports.DEPRECATED_KEYS = DEPRECATED_KEYS;\\nfunction getType(val) {\\n  if (Array.isArray(val)) {\\n    return \\"array\\";\\n  } else if (val === null) {\\n    return \\"null\\";\\n  } else if (val === undefined) {\\n    return \\"undefined\\";\\n  } else {\\n    return typeof val;\\n  }\\n}\\n\\nfunction assertEach(callback /*: Function*/) /*: Function*/ {\\n  function validator(node, key, val) {\\n    if (!Array.isArray(val)) return;\\n\\n    for (var i = 0; i < val.length; i++) {\\n      callback(node, key + \\"[\\" + i + \\"]\\", val[i]);\\n    }\\n  }\\n  validator.each = callback;\\n  return validator;\\n}\\n\\nfunction assertOneOf() /*: Function*/ {\\n  for (var _len = arguments.length, vals = Array(_len), _key = 0; _key < _len; _key++) {\\n    vals[_key] = arguments[_key];\\n  }\\n\\n  function validate(node, key, val) {\\n    if (vals.indexOf(val) < 0) {\\n      throw new TypeError(\\"Property \\" + key + \\" expected value to be one of \\" + JSON.stringify(vals) + \\" but got \\" + JSON.stringify(val));\\n    }\\n  }\\n\\n  validate.oneOf = vals;\\n\\n  return validate;\\n}\\n\\nfunction assertNodeType() /*: Function*/ {\\n  for (var _len2 = arguments.length, types = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\\n    types[_key2] = arguments[_key2];\\n  }\\n\\n  function validate(node, key, val) {\\n    var valid = false;\\n\\n    for (var _iterator = types, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var type = _ref;\\n\\n      if (t.is(type, val)) {\\n        valid = true;\\n        break;\\n      }\\n    }\\n\\n    if (!valid) {\\n      throw new TypeError(\\"Property \\" + key + \\" of \\" + node.type + \\" expected node to be of a type \\" + JSON.stringify(types) + \\" but instead got \\" + JSON.stringify(val && val.type));\\n    }\\n  }\\n\\n  validate.oneOfNodeTypes = types;\\n\\n  return validate;\\n}\\n\\nfunction assertNodeOrValueType() /*: Function*/ {\\n  for (var _len3 = arguments.length, types = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\\n    types[_key3] = arguments[_key3];\\n  }\\n\\n  function validate(node, key, val) {\\n    var valid = false;\\n\\n    for (var _iterator2 = types, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var type = _ref2;\\n\\n      if (getType(val) === type || t.is(type, val)) {\\n        valid = true;\\n        break;\\n      }\\n    }\\n\\n    if (!valid) {\\n      throw new TypeError(\\"Property \\" + key + \\" of \\" + node.type + \\" expected node to be of a type \\" + JSON.stringify(types) + \\" but instead got \\" + JSON.stringify(val && val.type));\\n    }\\n  }\\n\\n  validate.oneOfNodeOrValueTypes = types;\\n\\n  return validate;\\n}\\n\\nfunction assertValueType(type /*: string*/) /*: Function*/ {\\n  function validate(node, key, val) {\\n    var valid = getType(val) === type;\\n\\n    if (!valid) {\\n      throw new TypeError(\\"Property \\" + key + \\" expected type of \\" + type + \\" but got \\" + getType(val));\\n    }\\n  }\\n\\n  validate.type = type;\\n\\n  return validate;\\n}\\n\\nfunction chain() /*: Function*/ {\\n  for (var _len4 = arguments.length, fns = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\\n    fns[_key4] = arguments[_key4];\\n  }\\n\\n  function validate() {\\n    for (var _iterator3 = fns, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n      var _ref3;\\n\\n      if (_isArray3) {\\n        if (_i3 >= _iterator3.length) break;\\n        _ref3 = _iterator3[_i3++];\\n      } else {\\n        _i3 = _iterator3.next();\\n        if (_i3.done) break;\\n        _ref3 = _i3.value;\\n      }\\n\\n      var fn = _ref3;\\n\\n      fn.apply(undefined, arguments);\\n    }\\n  }\\n  validate.chainOf = fns;\\n  return validate;\\n}\\n\\nfunction defineType(type /*: string*/) {\\n  var opts /*: {\\n               fields?: Object;\\n               visitor?: Array<string>;\\n               aliases?: Array<string>;\\n               builder?: Array<string>;\\n               inherits?: string;\\n             }*/ = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  var inherits = opts.inherits && store[opts.inherits] || {};\\n\\n  opts.fields = opts.fields || inherits.fields || {};\\n  opts.visitor = opts.visitor || inherits.visitor || [];\\n  opts.aliases = opts.aliases || inherits.aliases || [];\\n  opts.builder = opts.builder || inherits.builder || opts.visitor || [];\\n\\n  if (opts.deprecatedAlias) {\\n    DEPRECATED_KEYS[opts.deprecatedAlias] = type;\\n  }\\n\\n  // ensure all field keys are represented in `fields`\\n  for (var _iterator4 = (opts.visitor.concat(opts.builder) /*: Array<string>*/), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n    var _ref4;\\n\\n    if (_isArray4) {\\n      if (_i4 >= _iterator4.length) break;\\n      _ref4 = _iterator4[_i4++];\\n    } else {\\n      _i4 = _iterator4.next();\\n      if (_i4.done) break;\\n      _ref4 = _i4.value;\\n    }\\n\\n    var key = _ref4;\\n\\n    opts.fields[key] = opts.fields[key] || {};\\n  }\\n\\n  for (var key in opts.fields) {\\n    var field = opts.fields[key];\\n\\n    if (field[\\"default\\"] === undefined) {\\n      field[\\"default\\"] = null;\\n    } else if (!field.validate) {\\n      field.validate = assertValueType(getType(field[\\"default\\"]));\\n    }\\n  }\\n\\n  VISITOR_KEYS[type] = opts.visitor;\\n  BUILDER_KEYS[type] = opts.builder;\\n  NODE_FIELDS[type] = opts.fields;\\n  ALIAS_KEYS[type] = opts.aliases;\\n\\n  store[type] = opts;\\n}\\n\\nvar store = {};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/index.js\\n ** module id = 169\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"../index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar _constants = require(\\"../constants\\");\\n\\nvar _index2 = require(\\"./index\\");\\n\\nvar _index3 = _interopRequireDefault(_index2);\\n\\n_index3[\\"default\\"](\\"ArrayExpression\\", {\\n  fields: {\\n    elements: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeOrValueType(\\"null\\", \\"Expression\\", \\"SpreadElement\\"))),\\n      \\"default\\": []\\n    }\\n  },\\n  visitor: [\\"elements\\"],\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"AssignmentExpression\\", {\\n  fields: {\\n    operator: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    },\\n    left: {\\n      validate: _index2.assertNodeType(\\"LVal\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  builder: [\\"operator\\", \\"left\\", \\"right\\"],\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"BinaryExpression\\", {\\n  builder: [\\"operator\\", \\"left\\", \\"right\\"],\\n  fields: {\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.BINARY_OPERATORS)\\n    },\\n    left: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Binary\\", \\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"Directive\\", {\\n  visitor: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertNodeType(\\"DirectiveLiteral\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"DirectiveLiteral\\", {\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"BlockStatement\\", {\\n  builder: [\\"body\\", \\"directives\\"],\\n  visitor: [\\"directives\\", \\"body\\"],\\n  fields: {\\n    directives: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Directive\\"))),\\n      \\"default\\": []\\n    },\\n    body: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Statement\\")))\\n    }\\n  },\\n  aliases: [\\"Scopable\\", \\"BlockParent\\", \\"Block\\", \\"Statement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"BreakStatement\\", {\\n  visitor: [\\"label\\"],\\n  fields: {\\n    label: {\\n      validate: _index2.assertNodeType(\\"Identifier\\"),\\n      optional: true\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"CallExpression\\", {\\n  visitor: [\\"callee\\", \\"arguments\\"],\\n  fields: {\\n    callee: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    arguments: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Expression\\", \\"SpreadElement\\")))\\n    }\\n  },\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"CatchClause\\", {\\n  visitor: [\\"param\\", \\"body\\"],\\n  fields: {\\n    param: {\\n      validate: _index2.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    }\\n  },\\n  aliases: [\\"Scopable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ConditionalExpression\\", {\\n  visitor: [\\"test\\", \\"consequent\\", \\"alternate\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    consequent: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    alternate: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Conditional\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ContinueStatement\\", {\\n  visitor: [\\"label\\"],\\n  fields: {\\n    label: {\\n      validate: _index2.assertNodeType(\\"Identifier\\"),\\n      optional: true\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"DebuggerStatement\\", {\\n  aliases: [\\"Statement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"DoWhileStatement\\", {\\n  visitor: [\\"test\\", \\"body\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"BlockParent\\", \\"Loop\\", \\"While\\", \\"Scopable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"EmptyStatement\\", {\\n  aliases: [\\"Statement\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ExpressionStatement\\", {\\n  visitor: [\\"expression\\"],\\n  fields: {\\n    expression: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  },\\n  aliases: [\\"Statement\\", \\"ExpressionWrapper\\"]\\n});\\n\\n_index3[\\"default\\"](\\"File\\", {\\n  builder: [\\"program\\", \\"comments\\", \\"tokens\\"],\\n  visitor: [\\"program\\"],\\n  fields: {\\n    program: {\\n      validate: _index2.assertNodeType(\\"Program\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ForInStatement\\", {\\n  visitor: [\\"left\\", \\"right\\", \\"body\\"],\\n  aliases: [\\"Scopable\\", \\"Statement\\", \\"For\\", \\"BlockParent\\", \\"Loop\\", \\"ForXStatement\\"],\\n  fields: {\\n    left: {\\n      validate: _index2.assertNodeType(\\"VariableDeclaration\\", \\"LVal\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ForStatement\\", {\\n  visitor: [\\"init\\", \\"test\\", \\"update\\", \\"body\\"],\\n  aliases: [\\"Scopable\\", \\"Statement\\", \\"For\\", \\"BlockParent\\", \\"Loop\\"],\\n  fields: {\\n    init: {\\n      validate: _index2.assertNodeType(\\"VariableDeclaration\\", \\"Expression\\"),\\n      optional: true\\n    },\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    },\\n    update: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"FunctionDeclaration\\", {\\n  builder: [\\"id\\", \\"params\\", \\"body\\", \\"generator\\", \\"async\\"],\\n  visitor: [\\"id\\", \\"params\\", \\"body\\", \\"returnType\\", \\"typeParameters\\"],\\n  fields: {\\n    id: {\\n      validate: _index2.assertNodeType(\\"Identifier\\")\\n    },\\n    params: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  },\\n  aliases: [\\"Scopable\\", \\"Function\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Statement\\", \\"Pureish\\", \\"Declaration\\"]\\n});\\n\\n_index3[\\"default\\"](\\"FunctionExpression\\", {\\n  inherits: \\"FunctionDeclaration\\",\\n  aliases: [\\"Scopable\\", \\"Function\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Expression\\", \\"Pureish\\"],\\n  fields: {\\n    id: {\\n      validate: _index2.assertNodeType(\\"Identifier\\"),\\n      optional: true\\n    },\\n    params: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"Identifier\\", {\\n  builder: [\\"name\\"],\\n  visitor: [\\"typeAnnotation\\"],\\n  aliases: [\\"Expression\\", \\"LVal\\"],\\n  fields: {\\n    name: {\\n      validate: function validate(node, key, val) {\\n        if (!t.isValidIdentifier(val)) {\\n          // todo\\n        }\\n      }\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"IfStatement\\", {\\n  visitor: [\\"test\\", \\"consequent\\", \\"alternate\\"],\\n  aliases: [\\"Statement\\", \\"Conditional\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    consequent: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    },\\n    alternate: {\\n      optional: true,\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"LabeledStatement\\", {\\n  visitor: [\\"label\\", \\"body\\"],\\n  aliases: [\\"Statement\\"],\\n  fields: {\\n    label: {\\n      validate: _index2.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"StringLiteral\\", {\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"NumericLiteral\\", {\\n  builder: [\\"value\\"],\\n  deprecatedAlias: \\"NumberLiteral\\",\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"number\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"NullLiteral\\", {\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"BooleanLiteral\\", {\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  },\\n  aliases: [\\"Expression\\", \\"Pureish\\", \\"Literal\\", \\"Immutable\\"]\\n});\\n\\n_index3[\\"default\\"](\\"RegExpLiteral\\", {\\n  builder: [\\"pattern\\", \\"flags\\"],\\n  deprecatedAlias: \\"RegexLiteral\\",\\n  aliases: [\\"Expression\\", \\"Literal\\"],\\n  fields: {\\n    pattern: {\\n      validate: _index2.assertValueType(\\"string\\")\\n    },\\n    flags: {\\n      validate: _index2.assertValueType(\\"string\\"),\\n      \\"default\\": \\"\\"\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"LogicalExpression\\", {\\n  builder: [\\"operator\\", \\"left\\", \\"right\\"],\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Binary\\", \\"Expression\\"],\\n  fields: {\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.LOGICAL_OPERATORS)\\n    },\\n    left: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    right: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"MemberExpression\\", {\\n  builder: [\\"object\\", \\"property\\", \\"computed\\"],\\n  visitor: [\\"object\\", \\"property\\"],\\n  aliases: [\\"Expression\\", \\"LVal\\"],\\n  fields: {\\n    object: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    property: {\\n      validate: function validate(node, key, val) {\\n        var expectedType = node.computed ? \\"Expression\\" : \\"Identifier\\";\\n        _index2.assertNodeType(expectedType)(node, key, val);\\n      }\\n    },\\n    computed: {\\n      \\"default\\": false\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"NewExpression\\", {\\n  visitor: [\\"callee\\", \\"arguments\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    callee: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    arguments: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Expression\\", \\"SpreadElement\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"Program\\", {\\n  visitor: [\\"directives\\", \\"body\\"],\\n  builder: [\\"body\\", \\"directives\\"],\\n  fields: {\\n    directives: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Directive\\"))),\\n      \\"default\\": []\\n    },\\n    body: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Statement\\")))\\n    }\\n  },\\n  aliases: [\\"Scopable\\", \\"BlockParent\\", \\"Block\\", \\"FunctionParent\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ObjectExpression\\", {\\n  visitor: [\\"properties\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    properties: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"ObjectMethod\\", \\"ObjectProperty\\", \\"SpreadProperty\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ObjectMethod\\", {\\n  builder: [\\"kind\\", \\"key\\", \\"params\\", \\"body\\", \\"computed\\"],\\n  fields: {\\n    kind: {\\n      validate: _index2.chain(_index2.assertValueType(\\"string\\"), _index2.assertOneOf(\\"method\\", \\"get\\", \\"set\\")),\\n      \\"default\\": \\"method\\"\\n    },\\n    computed: {\\n      validate: _index2.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    key: {\\n      validate: function validate(node, key, val) {\\n        var expectedTypes = node.computed ? [\\"Expression\\"] : [\\"Identifier\\", \\"StringLiteral\\", \\"NumericLiteral\\"];\\n        _index2.assertNodeType.apply(undefined, expectedTypes)(node, key, val);\\n      }\\n    },\\n    decorators: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Decorator\\")))\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index2.assertValueType(\\"boolean\\")\\n    }\\n  },\\n  visitor: [\\"key\\", \\"params\\", \\"body\\", \\"decorators\\", \\"returnType\\", \\"typeParameters\\"],\\n  aliases: [\\"UserWhitespacable\\", \\"Function\\", \\"Scopable\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Method\\", \\"ObjectMember\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ObjectProperty\\", {\\n  builder: [\\"key\\", \\"value\\", \\"computed\\", \\"shorthand\\", \\"decorators\\"],\\n  fields: {\\n    computed: {\\n      validate: _index2.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    key: {\\n      validate: function validate(node, key, val) {\\n        var expectedTypes = node.computed ? [\\"Expression\\"] : [\\"Identifier\\", \\"StringLiteral\\", \\"NumericLiteral\\"];\\n        _index2.assertNodeType.apply(undefined, expectedTypes)(node, key, val);\\n      }\\n    },\\n    value: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    shorthand: {\\n      validate: _index2.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    decorators: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Decorator\\"))),\\n      optional: true\\n    }\\n  },\\n  visitor: [\\"key\\", \\"value\\", \\"decorators\\"],\\n  aliases: [\\"UserWhitespacable\\", \\"Property\\", \\"ObjectMember\\"]\\n});\\n\\n_index3[\\"default\\"](\\"RestElement\\", {\\n  visitor: [\\"argument\\", \\"typeAnnotation\\"],\\n  aliases: [\\"LVal\\"],\\n  fields: {\\n    argument: {\\n      validate: _index2.assertNodeType(\\"LVal\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ReturnStatement\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"],\\n  fields: {\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"SequenceExpression\\", {\\n  visitor: [\\"expressions\\"],\\n  fields: {\\n    expressions: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Expression\\")))\\n    }\\n  },\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"SwitchCase\\", {\\n  visitor: [\\"test\\", \\"consequent\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\"),\\n      optional: true\\n    },\\n    consequent: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"Statement\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"SwitchStatement\\", {\\n  visitor: [\\"discriminant\\", \\"cases\\"],\\n  aliases: [\\"Statement\\", \\"BlockParent\\", \\"Scopable\\"],\\n  fields: {\\n    discriminant: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    cases: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"SwitchCase\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"ThisExpression\\", {\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"ThrowStatement\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Statement\\", \\"Terminatorless\\", \\"CompletionStatement\\"],\\n  fields: {\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n// todo: at least handler or finalizer should be set to be valid\\n_index3[\\"default\\"](\\"TryStatement\\", {\\n  visitor: [\\"block\\", \\"handler\\", \\"finalizer\\"],\\n  aliases: [\\"Statement\\"],\\n  fields: {\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    handler: {\\n      optional: true,\\n      handler: _index2.assertNodeType(\\"BlockStatement\\")\\n    },\\n    finalizer: {\\n      optional: true,\\n      validate: _index2.assertNodeType(\\"BlockStatement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"UnaryExpression\\", {\\n  builder: [\\"operator\\", \\"argument\\", \\"prefix\\"],\\n  fields: {\\n    prefix: {\\n      \\"default\\": true\\n    },\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.UNARY_OPERATORS)\\n    }\\n  },\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\", \\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"UpdateExpression\\", {\\n  builder: [\\"operator\\", \\"argument\\", \\"prefix\\"],\\n  fields: {\\n    prefix: {\\n      \\"default\\": false\\n    },\\n    argument: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    operator: {\\n      validate: _index2.assertOneOf.apply(undefined, _constants.UPDATE_OPERATORS)\\n    }\\n  },\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index3[\\"default\\"](\\"VariableDeclaration\\", {\\n  builder: [\\"kind\\", \\"declarations\\"],\\n  visitor: [\\"declarations\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    kind: {\\n      validate: _index2.chain(_index2.assertValueType(\\"string\\"), _index2.assertOneOf(\\"var\\", \\"let\\", \\"const\\"))\\n    },\\n    declarations: {\\n      validate: _index2.chain(_index2.assertValueType(\\"array\\"), _index2.assertEach(_index2.assertNodeType(\\"VariableDeclarator\\")))\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"VariableDeclarator\\", {\\n  visitor: [\\"id\\", \\"init\\"],\\n  fields: {\\n    id: {\\n      validate: _index2.assertNodeType(\\"LVal\\")\\n    },\\n    init: {\\n      optional: true,\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"WhileStatement\\", {\\n  visitor: [\\"test\\", \\"body\\"],\\n  aliases: [\\"Statement\\", \\"BlockParent\\", \\"Loop\\", \\"While\\", \\"Scopable\\"],\\n  fields: {\\n    test: {\\n      validate: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\", \\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index3[\\"default\\"](\\"WithStatement\\", {\\n  visitor: [\\"object\\", \\"body\\"],\\n  aliases: [\\"Statement\\"],\\n  fields: {\\n    object: {\\n      object: _index2.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index2.assertNodeType(\\"BlockStatement\\", \\"Statement\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/core.js\\n ** module id = 170\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _Symbol$for = require(\\"babel-runtime/core-js/symbol/for\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nvar STATEMENT_OR_BLOCK_KEYS = [\\"consequent\\", \\"body\\", \\"alternate\\"];\\nexports.STATEMENT_OR_BLOCK_KEYS = STATEMENT_OR_BLOCK_KEYS;\\nvar FLATTENABLE_KEYS = [\\"body\\", \\"expressions\\"];\\nexports.FLATTENABLE_KEYS = FLATTENABLE_KEYS;\\nvar FOR_INIT_KEYS = [\\"left\\", \\"init\\"];\\nexports.FOR_INIT_KEYS = FOR_INIT_KEYS;\\nvar COMMENT_KEYS = [\\"leadingComments\\", \\"trailingComments\\", \\"innerComments\\"];\\n\\nexports.COMMENT_KEYS = COMMENT_KEYS;\\nvar LOGICAL_OPERATORS = [\\"||\\", \\"&&\\"];\\nexports.LOGICAL_OPERATORS = LOGICAL_OPERATORS;\\nvar UPDATE_OPERATORS = [\\"++\\", \\"--\\"];\\n\\nexports.UPDATE_OPERATORS = UPDATE_OPERATORS;\\nvar BOOLEAN_NUMBER_BINARY_OPERATORS = [\\">\\", \\"<\\", \\">=\\", \\"<=\\"];\\nexports.BOOLEAN_NUMBER_BINARY_OPERATORS = BOOLEAN_NUMBER_BINARY_OPERATORS;\\nvar EQUALITY_BINARY_OPERATORS = [\\"==\\", \\"===\\", \\"!=\\", \\"!==\\"];\\nexports.EQUALITY_BINARY_OPERATORS = EQUALITY_BINARY_OPERATORS;\\nvar COMPARISON_BINARY_OPERATORS = [].concat(EQUALITY_BINARY_OPERATORS, [\\"in\\", \\"instanceof\\"]);\\nexports.COMPARISON_BINARY_OPERATORS = COMPARISON_BINARY_OPERATORS;\\nvar BOOLEAN_BINARY_OPERATORS = [].concat(COMPARISON_BINARY_OPERATORS, BOOLEAN_NUMBER_BINARY_OPERATORS);\\nexports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS;\\nvar NUMBER_BINARY_OPERATORS = [\\"-\\", \\"/\\", \\"%\\", \\"*\\", \\"**\\", \\"&\\", \\"|\\", \\">>\\", \\">>>\\", \\"<<\\", \\"^\\"];\\nexports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS;\\nvar BINARY_OPERATORS = [\\"+\\"].concat(NUMBER_BINARY_OPERATORS, BOOLEAN_BINARY_OPERATORS);\\n\\nexports.BINARY_OPERATORS = BINARY_OPERATORS;\\nvar BOOLEAN_UNARY_OPERATORS = [\\"delete\\", \\"!\\"];\\nexports.BOOLEAN_UNARY_OPERATORS = BOOLEAN_UNARY_OPERATORS;\\nvar NUMBER_UNARY_OPERATORS = [\\"+\\", \\"-\\", \\"++\\", \\"--\\", \\"~\\"];\\nexports.NUMBER_UNARY_OPERATORS = NUMBER_UNARY_OPERATORS;\\nvar STRING_UNARY_OPERATORS = [\\"typeof\\"];\\nexports.STRING_UNARY_OPERATORS = STRING_UNARY_OPERATORS;\\nvar UNARY_OPERATORS = [\\"void\\"].concat(BOOLEAN_UNARY_OPERATORS, NUMBER_UNARY_OPERATORS, STRING_UNARY_OPERATORS);\\n\\nexports.UNARY_OPERATORS = UNARY_OPERATORS;\\nvar INHERIT_KEYS = {\\n  optional: [\\"typeAnnotation\\", \\"typeParameters\\", \\"returnType\\"],\\n  force: [\\"start\\", \\"loc\\", \\"end\\"]\\n};\\n\\nexports.INHERIT_KEYS = INHERIT_KEYS;\\nvar BLOCK_SCOPED_SYMBOL = _Symbol$for(\\"var used to be block scoped\\");\\nexports.BLOCK_SCOPED_SYMBOL = BLOCK_SCOPED_SYMBOL;\\nvar NOT_LOCAL_BINDING = _Symbol$for(\\"should not be considered a local binding\\");\\nexports.NOT_LOCAL_BINDING = NOT_LOCAL_BINDING;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/constants.js\\n ** module id = 171\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/symbol/for\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/symbol/for.js\\n ** module id = 172\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.symbol\');\\nmodule.exports = require(\'../../modules/$.core\').Symbol[\'for\'];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/for.js\\n ** module id = 173\\n ** module chunks = 0\\n **/","\'use strict\';\\n// ECMAScript 6 symbols shim\\nvar $              = require(\'./$\')\\n  , global         = require(\'./$.global\')\\n  , has            = require(\'./$.has\')\\n  , DESCRIPTORS    = require(\'./$.descriptors\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , $fails         = require(\'./$.fails\')\\n  , shared         = require(\'./$.shared\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , uid            = require(\'./$.uid\')\\n  , wks            = require(\'./$.wks\')\\n  , keyOf          = require(\'./$.keyof\')\\n  , $names         = require(\'./$.get-names\')\\n  , enumKeys       = require(\'./$.enum-keys\')\\n  , isArray        = require(\'./$.is-array\')\\n  , anObject       = require(\'./$.an-object\')\\n  , toIObject      = require(\'./$.to-iobject\')\\n  , createDesc     = require(\'./$.property-desc\')\\n  , getDesc        = $.getDesc\\n  , setDesc        = $.setDesc\\n  , _create        = $.create\\n  , getNames       = $names.get\\n  , $Symbol        = global.Symbol\\n  , $JSON          = global.JSON\\n  , _stringify     = $JSON && $JSON.stringify\\n  , setter         = false\\n  , HIDDEN         = wks(\'_hidden\')\\n  , isEnum         = $.isEnum\\n  , SymbolRegistry = shared(\'symbol-registry\')\\n  , AllSymbols     = shared(\'symbols\')\\n  , useNative      = typeof $Symbol == \'function\'\\n  , ObjectProto    = Object.prototype;\\n\\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\\n  return _create(setDesc({}, \'a\', {\\n    get: function(){ return setDesc(this, \'a\', {value: 7}).a; }\\n  })).a != 7;\\n}) ? function(it, key, D){\\n  var protoDesc = getDesc(ObjectProto, key);\\n  if(protoDesc)delete ObjectProto[key];\\n  setDesc(it, key, D);\\n  if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\\n} : setDesc;\\n\\nvar wrap = function(tag){\\n  var sym = AllSymbols[tag] = _create($Symbol.prototype);\\n  sym._k = tag;\\n  DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\\n    configurable: true,\\n    set: function(value){\\n      if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\\n      setSymbolDesc(this, tag, createDesc(1, value));\\n    }\\n  });\\n  return sym;\\n};\\n\\nvar isSymbol = function(it){\\n  return typeof it == \'symbol\';\\n};\\n\\nvar $defineProperty = function defineProperty(it, key, D){\\n  if(D && has(AllSymbols, key)){\\n    if(!D.enumerable){\\n      if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\\n      it[HIDDEN][key] = true;\\n    } else {\\n      if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\\n      D = _create(D, {enumerable: createDesc(0, false)});\\n    } return setSymbolDesc(it, key, D);\\n  } return setDesc(it, key, D);\\n};\\nvar $defineProperties = function defineProperties(it, P){\\n  anObject(it);\\n  var keys = enumKeys(P = toIObject(P))\\n    , i    = 0\\n    , l = keys.length\\n    , key;\\n  while(l > i)$defineProperty(it, key = keys[i++], P[key]);\\n  return it;\\n};\\nvar $create = function create(it, P){\\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\\n};\\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\\n  var E = isEnum.call(this, key);\\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\\n    ? E : true;\\n};\\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\\n  var D = getDesc(it = toIObject(it), key);\\n  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\\n  return D;\\n};\\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\\n  var names  = getNames(toIObject(it))\\n    , result = []\\n    , i      = 0\\n    , key;\\n  while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\\n  return result;\\n};\\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\\n  var names  = getNames(toIObject(it))\\n    , result = []\\n    , i      = 0\\n    , key;\\n  while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\\n  return result;\\n};\\nvar $stringify = function stringify(it){\\n  if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\\n  var args = [it]\\n    , i    = 1\\n    , $$   = arguments\\n    , replacer, $replacer;\\n  while($$.length > i)args.push($$[i++]);\\n  replacer = args[1];\\n  if(typeof replacer == \'function\')$replacer = replacer;\\n  if($replacer || !isArray(replacer))replacer = function(key, value){\\n    if($replacer)value = $replacer.call(this, key, value);\\n    if(!isSymbol(value))return value;\\n  };\\n  args[1] = replacer;\\n  return _stringify.apply($JSON, args);\\n};\\nvar buggyJSON = $fails(function(){\\n  var S = $Symbol();\\n  // MS Edge converts symbol values to JSON as {}\\n  // WebKit converts symbol values to JSON as null\\n  // V8 throws on boxed symbols\\n  return _stringify([S]) != \'[null]\' || _stringify({a: S}) != \'{}\' || _stringify(Object(S)) != \'{}\';\\n});\\n\\n// 19.4.1.1 Symbol([description])\\nif(!useNative){\\n  $Symbol = function Symbol(){\\n    if(isSymbol(this))throw TypeError(\'Symbol is not a constructor\');\\n    return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\\n  };\\n  redefine($Symbol.prototype, \'toString\', function toString(){\\n    return this._k;\\n  });\\n\\n  isSymbol = function(it){\\n    return it instanceof $Symbol;\\n  };\\n\\n  $.create     = $create;\\n  $.isEnum     = $propertyIsEnumerable;\\n  $.getDesc    = $getOwnPropertyDescriptor;\\n  $.setDesc    = $defineProperty;\\n  $.setDescs   = $defineProperties;\\n  $.getNames   = $names.get = $getOwnPropertyNames;\\n  $.getSymbols = $getOwnPropertySymbols;\\n\\n  if(DESCRIPTORS && !require(\'./$.library\')){\\n    redefine(ObjectProto, \'propertyIsEnumerable\', $propertyIsEnumerable, true);\\n  }\\n}\\n\\nvar symbolStatics = {\\n  // 19.4.2.1 Symbol.for(key)\\n  \'for\': function(key){\\n    return has(SymbolRegistry, key += \'\')\\n      ? SymbolRegistry[key]\\n      : SymbolRegistry[key] = $Symbol(key);\\n  },\\n  // 19.4.2.5 Symbol.keyFor(sym)\\n  keyFor: function keyFor(key){\\n    return keyOf(SymbolRegistry, key);\\n  },\\n  useSetter: function(){ setter = true; },\\n  useSimple: function(){ setter = false; }\\n};\\n// 19.4.2.2 Symbol.hasInstance\\n// 19.4.2.3 Symbol.isConcatSpreadable\\n// 19.4.2.4 Symbol.iterator\\n// 19.4.2.6 Symbol.match\\n// 19.4.2.8 Symbol.replace\\n// 19.4.2.9 Symbol.search\\n// 19.4.2.10 Symbol.species\\n// 19.4.2.11 Symbol.split\\n// 19.4.2.12 Symbol.toPrimitive\\n// 19.4.2.13 Symbol.toStringTag\\n// 19.4.2.14 Symbol.unscopables\\n$.each.call((\\n  \'hasInstance,isConcatSpreadable,iterator,match,replace,search,\' +\\n  \'species,split,toPrimitive,toStringTag,unscopables\'\\n).split(\',\'), function(it){\\n  var sym = wks(it);\\n  symbolStatics[it] = useNative ? sym : wrap(sym);\\n});\\n\\nsetter = true;\\n\\n$export($export.G + $export.W, {Symbol: $Symbol});\\n\\n$export($export.S, \'Symbol\', symbolStatics);\\n\\n$export($export.S + $export.F * !useNative, \'Object\', {\\n  // 19.1.2.2 Object.create(O [, Properties])\\n  create: $create,\\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\\n  defineProperty: $defineProperty,\\n  // 19.1.2.3 Object.defineProperties(O, Properties)\\n  defineProperties: $defineProperties,\\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\\n  getOwnPropertyNames: $getOwnPropertyNames,\\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\\n  getOwnPropertySymbols: $getOwnPropertySymbols\\n});\\n\\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\\n$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), \'JSON\', {stringify: $stringify});\\n\\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\\nsetToStringTag($Symbol, \'Symbol\');\\n// 20.2.1.9 Math[@@toStringTag]\\nsetToStringTag(Math, \'Math\', true);\\n// 24.3.3 JSON[@@toStringTag]\\nsetToStringTag(global.JSON, \'JSON\', true);\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.symbol.js\\n ** module id = 174\\n ** module chunks = 0\\n **/","var $         = require(\'./$\')\\n  , toIObject = require(\'./$.to-iobject\');\\nmodule.exports = function(object, el){\\n  var O      = toIObject(object)\\n    , keys   = $.getKeys(O)\\n    , length = keys.length\\n    , index  = 0\\n    , key;\\n  while(length > index)if(O[key = keys[index++]] === el)return key;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.keyof.js\\n ** module id = 175\\n ** module chunks = 0\\n **/","// all enumerable object keys, includes symbols\\nvar $ = require(\'./$\');\\nmodule.exports = function(it){\\n  var keys       = $.getKeys(it)\\n    , getSymbols = $.getSymbols;\\n  if(getSymbols){\\n    var symbols = getSymbols(it)\\n      , isEnum  = $.isEnum\\n      , i       = 0\\n      , key;\\n    while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\\n  }\\n  return keys;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.enum-keys.js\\n ** module id = 176\\n ** module chunks = 0\\n **/","// 7.2.2 IsArray(argument)\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Array.isArray || function(arg){\\n  return cof(arg) == \'Array\';\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/$.is-array.js\\n ** module id = 177\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"AssignmentPattern\\", {\\n  visitor: [\\"left\\", \\"right\\"],\\n  aliases: [\\"Pattern\\", \\"LVal\\"],\\n  fields: {\\n    left: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    right: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ArrayPattern\\", {\\n  visitor: [\\"elements\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Pattern\\", \\"LVal\\"],\\n  fields: {\\n    elements: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Expression\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ArrowFunctionExpression\\", {\\n  builder: [\\"params\\", \\"body\\", \\"async\\"],\\n  visitor: [\\"params\\", \\"body\\", \\"returnType\\"],\\n  aliases: [\\"Scopable\\", \\"Function\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Expression\\", \\"Pureish\\"],\\n  fields: {\\n    params: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"BlockStatement\\", \\"Expression\\")\\n    },\\n    async: {\\n      validate: _index.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassBody\\", {\\n  visitor: [\\"body\\"],\\n  fields: {\\n    body: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"ClassMethod\\", \\"ClassProperty\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassDeclaration\\", {\\n  builder: [\\"id\\", \\"superClass\\", \\"body\\", \\"decorators\\"],\\n  visitor: [\\"id\\", \\"body\\", \\"superClass\\", \\"mixins\\", \\"typeParameters\\", \\"superTypeParameters\\", \\"implements\\", \\"decorators\\"],\\n  aliases: [\\"Scopable\\", \\"Class\\", \\"Statement\\", \\"Declaration\\", \\"Pureish\\"],\\n  fields: {\\n    id: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"ClassBody\\")\\n    },\\n    superClass: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    decorators: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Decorator\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassExpression\\", {\\n  inherits: \\"ClassDeclaration\\",\\n  aliases: [\\"Scopable\\", \\"Class\\", \\"Expression\\", \\"Pureish\\"],\\n  fields: {\\n    id: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"ClassBody\\")\\n    },\\n    superClass: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    decorators: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Decorator\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportAllDeclaration\\", {\\n  visitor: [\\"source\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\", \\"ExportDeclaration\\"],\\n  fields: {\\n    source: {\\n      validate: _index.assertNodeType(\\"StringLiteral\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportDefaultDeclaration\\", {\\n  visitor: [\\"declaration\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\", \\"ExportDeclaration\\"],\\n  fields: {\\n    declaration: {\\n      validate: _index.assertNodeType(\\"FunctionDeclaration\\", \\"ClassDeclaration\\", \\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportNamedDeclaration\\", {\\n  visitor: [\\"declaration\\", \\"specifiers\\", \\"source\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\", \\"ExportDeclaration\\"],\\n  fields: {\\n    declaration: {\\n      validate: _index.assertNodeType(\\"Declaration\\"),\\n      optional: true\\n    },\\n    specifiers: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"ExportSpecifier\\")))\\n    },\\n    source: {\\n      validate: _index.assertNodeType(\\"StringLiteral\\"),\\n      optional: true\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportSpecifier\\", {\\n  visitor: [\\"local\\", \\"exported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    imported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ForOfStatement\\", {\\n  visitor: [\\"left\\", \\"right\\", \\"body\\"],\\n  aliases: [\\"Scopable\\", \\"Statement\\", \\"For\\", \\"BlockParent\\", \\"Loop\\", \\"ForXStatement\\"],\\n  fields: {\\n    left: {\\n      validate: _index.assertNodeType(\\"VariableDeclaration\\", \\"LVal\\")\\n    },\\n    right: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"Statement\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportDeclaration\\", {\\n  visitor: [\\"specifiers\\", \\"source\\"],\\n  aliases: [\\"Statement\\", \\"Declaration\\", \\"ModuleDeclaration\\"],\\n  fields: {\\n    specifiers: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"ImportSpecifier\\", \\"ImportDefaultSpecifier\\", \\"ImportNamespaceSpecifier\\")))\\n    },\\n    source: {\\n      validate: _index.assertNodeType(\\"StringLiteral\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportDefaultSpecifier\\", {\\n  visitor: [\\"local\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportNamespaceSpecifier\\", {\\n  visitor: [\\"local\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ImportSpecifier\\", {\\n  visitor: [\\"local\\", \\"imported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    local: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    },\\n    imported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"MetaProperty\\", {\\n  visitor: [\\"meta\\", \\"property\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    // todo: limit to new.target\\n    meta: {\\n      validate: _index.assertValueType(\\"string\\")\\n    },\\n    property: {\\n      validate: _index.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassMethod\\", {\\n  aliases: [\\"Function\\", \\"Scopable\\", \\"BlockParent\\", \\"FunctionParent\\", \\"Method\\"],\\n  builder: [\\"kind\\", \\"key\\", \\"params\\", \\"body\\", \\"computed\\", \\"static\\"],\\n  visitor: [\\"key\\", \\"params\\", \\"body\\", \\"decorators\\", \\"returnType\\", \\"typeParameters\\"],\\n  fields: {\\n    kind: {\\n      validate: _index.chain(_index.assertValueType(\\"string\\"), _index.assertOneOf(\\"get\\", \\"set\\", \\"method\\", \\"constructor\\")),\\n      \\"default\\": \\"method\\"\\n    },\\n    computed: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    \\"static\\": {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    key: {\\n      validate: function validate(node, key, val) {\\n        var expectedTypes = node.computed ? [\\"Expression\\"] : [\\"Identifier\\", \\"StringLiteral\\", \\"NumericLiteral\\"];\\n        _index.assertNodeType.apply(undefined, expectedTypes)(node, key, val);\\n      }\\n    },\\n    params: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"LVal\\")))\\n    },\\n    body: {\\n      validate: _index.assertNodeType(\\"BlockStatement\\")\\n    },\\n    generator: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    async: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectPattern\\", {\\n  visitor: [\\"properties\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Pattern\\", \\"LVal\\"],\\n  fields: {\\n    properties: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"RestProperty\\", \\"Property\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"SpreadElement\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"Super\\", {\\n  aliases: [\\"Expression\\"]\\n});\\n\\n_index2[\\"default\\"](\\"TaggedTemplateExpression\\", {\\n  visitor: [\\"tag\\", \\"quasi\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    tag: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    },\\n    quasi: {\\n      validate: _index.assertNodeType(\\"TemplateLiteral\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TemplateElement\\", {\\n  builder: [\\"value\\", \\"tail\\"],\\n  fields: {\\n    value: {\\n      // todo: flatten `raw` into main node\\n    },\\n    tail: {\\n      validate: _index.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TemplateLiteral\\", {\\n  visitor: [\\"quasis\\", \\"expressions\\"],\\n  aliases: [\\"Expression\\", \\"Literal\\"],\\n  fields: {\\n    quasis: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"TemplateElement\\")))\\n    },\\n    expressions: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"Expression\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"YieldExpression\\", {\\n  builder: [\\"argument\\", \\"delegate\\"],\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Expression\\", \\"Terminatorless\\"],\\n  fields: {\\n    delegate: {\\n      validate: _index.assertValueType(\\"boolean\\"),\\n      \\"default\\": false\\n    },\\n    argument: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/es2015.js\\n ** module id = 178\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"AnyTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ArrayTypeAnnotation\\", {\\n  visitor: [\\"elementType\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"BooleanTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"BooleanLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\"],\\n  fields: {}\\n});\\n\\n_index2[\\"default\\"](\\"NullLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {}\\n});\\n\\n_index2[\\"default\\"](\\"ClassImplements\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ClassProperty\\", {\\n  visitor: [\\"key\\", \\"value\\", \\"typeAnnotation\\", \\"decorators\\"],\\n  aliases: [\\"Flow\\", \\"Property\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareClass\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"extends\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareFunction\\", {\\n  visitor: [\\"id\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareInterface\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"extends\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareModule\\", {\\n  visitor: [\\"id\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareTypeAlias\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"right\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DeclareVariable\\", {\\n  visitor: [\\"id\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExistentialTypeParam\\", {\\n  aliases: [\\"Flow\\"]\\n});\\n\\n_index2[\\"default\\"](\\"FunctionTypeAnnotation\\", {\\n  visitor: [\\"typeParameters\\", \\"params\\", \\"rest\\", \\"returnType\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"FunctionTypeParam\\", {\\n  visitor: [\\"name\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"GenericTypeAnnotation\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"InterfaceExtends\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"InterfaceDeclaration\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"extends\\", \\"body\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"IntersectionTypeAnnotation\\", {\\n  visitor: [\\"types\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"MixedTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"]\\n});\\n\\n_index2[\\"default\\"](\\"NullableTypeAnnotation\\", {\\n  visitor: [\\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"NumericLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"NumberTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"StringLiteralTypeAnnotation\\", {\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"StringTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ThisTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {}\\n});\\n\\n_index2[\\"default\\"](\\"TupleTypeAnnotation\\", {\\n  visitor: [\\"types\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeofTypeAnnotation\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeAlias\\", {\\n  visitor: [\\"id\\", \\"typeParameters\\", \\"right\\"],\\n  aliases: [\\"Flow\\", \\"FlowDeclaration\\", \\"Statement\\", \\"Declaration\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeAnnotation\\", {\\n  visitor: [\\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeCastExpression\\", {\\n  visitor: [\\"expression\\", \\"typeAnnotation\\"],\\n  aliases: [\\"Flow\\", \\"ExpressionWrapper\\", \\"Expression\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeParameterDeclaration\\", {\\n  visitor: [\\"params\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"TypeParameterInstantiation\\", {\\n  visitor: [\\"params\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeAnnotation\\", {\\n  visitor: [\\"properties\\", \\"indexers\\", \\"callProperties\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeCallProperty\\", {\\n  visitor: [\\"value\\"],\\n  aliases: [\\"Flow\\", \\"UserWhitespacable\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeIndexer\\", {\\n  visitor: [\\"id\\", \\"key\\", \\"value\\"],\\n  aliases: [\\"Flow\\", \\"UserWhitespacable\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ObjectTypeProperty\\", {\\n  visitor: [\\"key\\", \\"value\\"],\\n  aliases: [\\"Flow\\", \\"UserWhitespacable\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"QualifiedTypeIdentifier\\", {\\n  visitor: [\\"id\\", \\"qualification\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"UnionTypeAnnotation\\", {\\n  visitor: [\\"types\\"],\\n  aliases: [\\"Flow\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"VoidTypeAnnotation\\", {\\n  aliases: [\\"Flow\\", \\"FlowBaseAnnotation\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/flow.js\\n ** module id = 179\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"JSXAttribute\\", {\\n  visitor: [\\"name\\", \\"value\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\", \\"JSXNamespacedName\\")\\n    },\\n    value: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"JSXElement\\", \\"StringLiteral\\", \\"JSXExpressionContainer\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXClosingElement\\", {\\n  visitor: [\\"name\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\", \\"JSXMemberExpression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXElement\\", {\\n  builder: [\\"openingElement\\", \\"closingElement\\", \\"children\\", \\"selfClosing\\"],\\n  visitor: [\\"openingElement\\", \\"children\\", \\"closingElement\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\", \\"Expression\\"],\\n  fields: {\\n    openingElement: {\\n      validate: _index.assertNodeType(\\"JSXOpeningElement\\")\\n    },\\n    closingElement: {\\n      optional: true,\\n      validate: _index.assertNodeType(\\"JSXClosingElement\\")\\n    },\\n    children: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"JSXText\\", \\"JSXExpressionContainer\\", \\"JSXElement\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXEmptyExpression\\", {\\n  aliases: [\\"JSX\\", \\"Expression\\"]\\n});\\n\\n_index2[\\"default\\"](\\"JSXExpressionContainer\\", {\\n  visitor: [\\"expression\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    expression: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXIdentifier\\", {\\n  builder: [\\"name\\"],\\n  aliases: [\\"JSX\\", \\"Expression\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXMemberExpression\\", {\\n  visitor: [\\"object\\", \\"property\\"],\\n  aliases: [\\"JSX\\", \\"Expression\\"],\\n  fields: {\\n    object: {\\n      validate: _index.assertNodeType(\\"JSXMemberExpression\\", \\"JSXIdentifier\\")\\n    },\\n    property: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXNamespacedName\\", {\\n  visitor: [\\"namespace\\", \\"name\\"],\\n  aliases: [\\"JSX\\"],\\n  fields: {\\n    namespace: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\")\\n    },\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXOpeningElement\\", {\\n  builder: [\\"name\\", \\"attributes\\", \\"selfClosing\\"],\\n  visitor: [\\"name\\", \\"attributes\\"],\\n  aliases: [\\"JSX\\", \\"Immutable\\"],\\n  fields: {\\n    name: {\\n      validate: _index.assertNodeType(\\"JSXIdentifier\\", \\"JSXMemberExpression\\")\\n    },\\n    selfClosing: {\\n      \\"default\\": false,\\n      validate: _index.assertValueType(\\"boolean\\")\\n    },\\n    attributes: {\\n      validate: _index.chain(_index.assertValueType(\\"array\\"), _index.assertEach(_index.assertNodeType(\\"JSXAttribute\\", \\"JSXSpreadAttribute\\")))\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXSpreadAttribute\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"JSX\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"JSXText\\", {\\n  aliases: [\\"JSX\\"],\\n  builder: [\\"value\\"],\\n  fields: {\\n    value: {\\n      validate: _index.assertValueType(\\"string\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/jsx.js\\n ** module id = 180\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"Noop\\", {\\n  visitor: []\\n});\\n\\n_index2[\\"default\\"](\\"ParenthesizedExpression\\", {\\n  visitor: [\\"expression\\"],\\n  aliases: [\\"Expression\\", \\"ExpressionWrapper\\"],\\n  fields: {\\n    expression: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/misc.js\\n ** module id = 181\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n_index2[\\"default\\"](\\"AwaitExpression\\", {\\n  builder: [\\"argument\\"],\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"Expression\\", \\"Terminatorless\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"BindExpression\\", {\\n  visitor: [\\"object\\", \\"callee\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    // todo\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"Decorator\\", {\\n  visitor: [\\"expression\\"],\\n  fields: {\\n    expression: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"DoExpression\\", {\\n  visitor: [\\"body\\"],\\n  aliases: [\\"Expression\\"],\\n  fields: {\\n    body: {\\n      validate: _index.assertNodeType(\\"BlockStatement\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportDefaultSpecifier\\", {\\n  visitor: [\\"exported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    exported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"ExportNamespaceSpecifier\\", {\\n  visitor: [\\"exported\\"],\\n  aliases: [\\"ModuleSpecifier\\"],\\n  fields: {\\n    exported: {\\n      validate: _index.assertNodeType(\\"Identifier\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"RestProperty\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"LVal\\")\\n    }\\n  }\\n});\\n\\n_index2[\\"default\\"](\\"SpreadProperty\\", {\\n  visitor: [\\"argument\\"],\\n  aliases: [\\"UnaryLike\\"],\\n  fields: {\\n    argument: {\\n      validate: _index.assertNodeType(\\"Expression\\")\\n    }\\n  }\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/definitions/experimental.js\\n ** module id = 182\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.isCompatTag = isCompatTag;\\nexports.buildChildren = buildChildren;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar isReactComponent = t.buildMatchMemberExpression(\\"React.Component\\");\\n\\nexports.isReactComponent = isReactComponent;\\n\\nfunction isCompatTag(tagName /*:: ?: string*/) /*: boolean*/ {\\n  return !!tagName && /^[a-z]|\\\\-/.test(tagName);\\n}\\n\\nfunction cleanJSXElementLiteralChild(child /*: { value: string }*/, args /*: Array<Object>*/) {\\n  var lines = child.value.split(/\\\\r\\\\n|\\\\n|\\\\r/);\\n\\n  var lastNonEmptyLine = 0;\\n\\n  for (var i = 0; i < lines.length; i++) {\\n    if (lines[i].match(/[^ \\\\t]/)) {\\n      lastNonEmptyLine = i;\\n    }\\n  }\\n\\n  var str = \\"\\";\\n\\n  for (var i = 0; i < lines.length; i++) {\\n    var line = lines[i];\\n\\n    var isFirstLine = i === 0;\\n    var isLastLine = i === lines.length - 1;\\n    var isLastNonEmptyLine = i === lastNonEmptyLine;\\n\\n    // replace rendered whitespace tabs with spaces\\n    var trimmedLine = line.replace(/\\\\t/g, \\" \\");\\n\\n    // trim whitespace touching a newline\\n    if (!isFirstLine) {\\n      trimmedLine = trimmedLine.replace(/^[ ]+/, \\"\\");\\n    }\\n\\n    // trim whitespace touching an endline\\n    if (!isLastLine) {\\n      trimmedLine = trimmedLine.replace(/[ ]+$/, \\"\\");\\n    }\\n\\n    if (trimmedLine) {\\n      if (!isLastNonEmptyLine) {\\n        trimmedLine += \\" \\";\\n      }\\n\\n      str += trimmedLine;\\n    }\\n  }\\n\\n  if (str) args.push(t.stringLiteral(str));\\n}\\n\\nfunction buildChildren(node /*: Object*/) /*: Array<Object>*/ {\\n  var elems = [];\\n\\n  for (var i = 0; i < node.children.length; i++) {\\n    var child = node.children[i];\\n\\n    if (t.isJSXText(child)) {\\n      cleanJSXElementLiteralChild(child, elems);\\n      continue;\\n    }\\n\\n    if (t.isJSXExpressionContainer(child)) child = child.expression;\\n    if (t.isJSXEmptyExpression(child)) continue;\\n\\n    elems.push(child);\\n  }\\n\\n  return elems;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/react.js\\n ** module id = 183\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getBindingIdentifiers = getBindingIdentifiers;\\nexports.getOuterBindingIdentifiers = getOuterBindingIdentifiers;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\n/**\\n * Return a list of binding identifiers associated with the input `node`.\\n */\\n\\nfunction getBindingIdentifiers(node /*: Object*/, duplicates /*:: ?: boolean*/, outerOnly /*:: ?: boolean*/) /*: Object*/ {\\n  var search = [].concat(node);\\n  var ids = _Object$create(null);\\n\\n  while (search.length) {\\n    var id = search.shift();\\n    if (!id) continue;\\n\\n    var keys = t.getBindingIdentifiers.keys[id.type];\\n\\n    if (t.isIdentifier(id)) {\\n      if (duplicates) {\\n        var _ids = ids[id.name] = ids[id.name] || [];\\n        _ids.push(id);\\n      } else {\\n        ids[id.name] = id;\\n      }\\n      continue;\\n    }\\n\\n    if (t.isExportDeclaration(id)) {\\n      if (t.isDeclaration(node.declaration)) {\\n        search.push(node.declaration);\\n      }\\n      continue;\\n    }\\n\\n    if (outerOnly) {\\n      if (t.isFunctionDeclaration(id)) {\\n        search.push(id.id);\\n        continue;\\n      }\\n\\n      if (t.isFunctionExpression(id)) {\\n        continue;\\n      }\\n    }\\n\\n    if (keys) {\\n      for (var i = 0; i < keys.length; i++) {\\n        var key = keys[i];\\n        if (id[key]) {\\n          search = search.concat(id[key]);\\n        }\\n      }\\n    }\\n  }\\n\\n  return ids;\\n}\\n\\n/**\\n * Mapping of types to their identifier keys.\\n */\\n\\ngetBindingIdentifiers.keys = {\\n  DeclareClass: [\\"id\\"],\\n  DeclareFunction: [\\"id\\"],\\n  DeclareModule: [\\"id\\"],\\n  DeclareVariable: [\\"id\\"],\\n  InterfaceDeclaration: [\\"id\\"],\\n  TypeAlias: [\\"id\\"],\\n\\n  CatchClause: [\\"param\\"],\\n  LabeledStatement: [\\"label\\"],\\n  UnaryExpression: [\\"argument\\"],\\n  AssignmentExpression: [\\"left\\"],\\n\\n  ImportSpecifier: [\\"local\\"],\\n  ImportNamespaceSpecifier: [\\"local\\"],\\n  ImportDefaultSpecifier: [\\"local\\"],\\n  ImportDeclaration: [\\"specifiers\\"],\\n\\n  ExportSpecifier: [\\"exported\\"],\\n  ExportNamespaceSpecifier: [\\"exported\\"],\\n  ExportDefaultSpecifier: [\\"exported\\"],\\n\\n  FunctionDeclaration: [\\"id\\", \\"params\\"],\\n  FunctionExpression: [\\"id\\", \\"params\\"],\\n\\n  ClassDeclaration: [\\"id\\"],\\n  ClassExpression: [\\"id\\"],\\n\\n  RestElement: [\\"argument\\"],\\n  UpdateExpression: [\\"argument\\"],\\n\\n  SpreadProperty: [\\"argument\\"],\\n  ObjectProperty: [\\"value\\"],\\n\\n  AssignmentPattern: [\\"left\\"],\\n  ArrayPattern: [\\"elements\\"],\\n  ObjectPattern: [\\"properties\\"],\\n\\n  VariableDeclaration: [\\"declarations\\"],\\n  VariableDeclarator: [\\"id\\"]\\n};\\n\\nfunction getOuterBindingIdentifiers(node /*: Object*/, duplicates /*:: ?: boolean*/) /*: Object*/ {\\n  return getBindingIdentifiers(node, duplicates, true);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/retrievers.js\\n ** module id = 184\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/create.js\\n ** module id = 185\\n ** module chunks = 0\\n **/","var $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/create.js\\n ** module id = 186\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.isBinding = isBinding;\\nexports.isReferenced = isReferenced;\\nexports.isValidIdentifier = isValidIdentifier;\\nexports.isLet = isLet;\\nexports.isBlockScoped = isBlockScoped;\\nexports.isVar = isVar;\\nexports.isSpecifierDefault = isSpecifierDefault;\\nexports.isScope = isScope;\\nexports.isImmutable = isImmutable;\\n\\nvar _retrievers = require(\\"./retrievers\\");\\n\\nvar _esutils = require(\\"esutils\\");\\n\\nvar _esutils2 = _interopRequireDefault(_esutils);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\nvar _constants = require(\\"./constants\\");\\n\\n/**\\n * Check if the input `node` is a binding identifier.\\n */\\n\\nfunction isBinding(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  var keys = _retrievers.getBindingIdentifiers.keys[parent.type];\\n  if (keys) {\\n    for (var i = 0; i < keys.length; i++) {\\n      var key = keys[i];\\n      var val = parent[key];\\n      if (Array.isArray(val)) {\\n        if (val.indexOf(node) >= 0) return true;\\n      } else {\\n        if (val === node) return true;\\n      }\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Check if the input `node` is a reference to a bound variable.\\n */\\n\\nfunction isReferenced(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  switch (parent.type) {\\n    // yes: PARENT[NODE]\\n    // yes: NODE.child\\n    // no: parent.NODE\\n    case \\"MemberExpression\\":\\n    case \\"JSXMemberExpression\\":\\n    case \\"BindExpression\\":\\n      if (parent.property === node && parent.computed) {\\n        return true;\\n      } else if (parent.object === node) {\\n        return true;\\n      } else {\\n        return false;\\n      }\\n\\n    // no: new.NODE\\n    // no: NODE.target\\n    case \\"MetaProperty\\":\\n      return false;\\n\\n    // yes: { [NODE]: \\"\\" }\\n    // yes: { NODE }\\n    // no: { NODE: \\"\\" }\\n    case \\"ObjectProperty\\":\\n      if (parent.key === node) {\\n        return parent.computed;\\n      }\\n\\n    // no: let NODE = init;\\n    // yes: let id = NODE;\\n    case \\"VariableDeclarator\\":\\n      return parent.id !== node;\\n\\n    // no: function NODE() {}\\n    // no: function foo(NODE) {}\\n    case \\"ArrowFunctionExpression\\":\\n    case \\"FunctionDeclaration\\":\\n    case \\"FunctionExpression\\":\\n      for (var _iterator = (parent.params /*: Array<any>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n        var _ref;\\n\\n        if (_isArray) {\\n          if (_i >= _iterator.length) break;\\n          _ref = _iterator[_i++];\\n        } else {\\n          _i = _iterator.next();\\n          if (_i.done) break;\\n          _ref = _i.value;\\n        }\\n\\n        var param = _ref;\\n\\n        if (param === node) return false;\\n      }\\n\\n      return parent.id !== node;\\n\\n    // no: export { foo as NODE };\\n    // yes: export { NODE as foo };\\n    // no: export { NODE as foo } from \\"foo\\";\\n    case \\"ExportSpecifier\\":\\n      if (parent.source) {\\n        return false;\\n      } else {\\n        return parent.local === node;\\n      }\\n\\n    // no: export NODE from \\"foo\\";\\n    // no: export * as NODE from \\"foo\\";\\n    case \\"ExportNamespaceSpecifier\\":\\n    case \\"ExportDefaultSpecifier\\":\\n      return false;\\n\\n    // no: <div NODE=\\"foo\\" />\\n    case \\"JSXAttribute\\":\\n      return parent.name !== node;\\n\\n    // no: class { NODE = value; }\\n    // yes: class { key = NODE; }\\n    case \\"ClassProperty\\":\\n      return parent.value === node;\\n\\n    // no: import NODE from \\"foo\\";\\n    // no: import * as NODE from \\"foo\\";\\n    // no: import { NODE as foo } from \\"foo\\";\\n    // no: import { foo as NODE } from \\"foo\\";\\n    // no: import NODE from \\"bar\\";\\n    case \\"ImportDefaultSpecifier\\":\\n    case \\"ImportNamespaceSpecifier\\":\\n    case \\"ImportSpecifier\\":\\n      return false;\\n\\n    // no: class NODE {}\\n    case \\"ClassDeclaration\\":\\n    case \\"ClassExpression\\":\\n      return parent.id !== node;\\n\\n    // yes: class { [NODE](){} }\\n    case \\"ClassMethod\\":\\n    case \\"ObjectMethod\\":\\n      return parent.key === node && parent.computed;\\n\\n    // no: NODE: for (;;) {}\\n    case \\"LabeledStatement\\":\\n      return false;\\n\\n    // no: try {} catch (NODE) {}\\n    case \\"CatchClause\\":\\n      return parent.param !== node;\\n\\n    // no: function foo(...NODE) {}\\n    case \\"RestElement\\":\\n      return false;\\n\\n    // yes: left = NODE;\\n    // no: NODE = right;\\n    case \\"AssignmentExpression\\":\\n      return parent.right === node;\\n\\n    // no: [NODE = foo] = [];\\n    // yes: [foo = NODE] = [];\\n    case \\"AssignmentPattern\\":\\n      return parent.right === node;\\n\\n    // no: [NODE] = [];\\n    // no: ({ NODE }) = [];\\n    case \\"ObjectPattern\\":\\n    case \\"ArrayPattern\\":\\n      return false;\\n  }\\n\\n  return true;\\n}\\n\\n/**\\n * Check if the input `name` is a valid identifier name\\n * and isn\'t a reserved word.\\n */\\n\\nfunction isValidIdentifier(name /*: string*/) /*: boolean*/ {\\n  if (typeof name !== \\"string\\" || _esutils2[\\"default\\"].keyword.isReservedWordES6(name, true)) {\\n    return false;\\n  } else {\\n    return _esutils2[\\"default\\"].keyword.isIdentifierNameES6(name);\\n  }\\n}\\n\\n/**\\n * Check if the input `node` is a `let` variable declaration.\\n */\\n\\nfunction isLet(node /*: Object*/) /*: boolean*/ {\\n  return t.isVariableDeclaration(node) && (node.kind !== \\"var\\" || node[_constants.BLOCK_SCOPED_SYMBOL]);\\n}\\n\\n/**\\n * Check if the input `node` is block scoped.\\n */\\n\\nfunction isBlockScoped(node /*: Object*/) /*: boolean*/ {\\n  return t.isFunctionDeclaration(node) || t.isClassDeclaration(node) || t.isLet(node);\\n}\\n\\n/**\\n * Check if the input `node` is a variable declaration.\\n */\\n\\nfunction isVar(node /*: Object*/) /*: boolean*/ {\\n  return t.isVariableDeclaration(node, { kind: \\"var\\" }) && !node[_constants.BLOCK_SCOPED_SYMBOL];\\n}\\n\\n/**\\n * Check if the input `specifier` is a `default` import or export.\\n */\\n\\nfunction isSpecifierDefault(specifier /*: Object*/) /*: boolean*/ {\\n  return t.isImportDefaultSpecifier(specifier) || t.isIdentifier(specifier.imported || specifier.exported, { name: \\"default\\" });\\n}\\n\\n/**\\n * Check if the input `node` is a scope.\\n */\\n\\nfunction isScope(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isBlockStatement(node) && t.isFunction(parent, { body: node })) {\\n    return false;\\n  }\\n\\n  return t.isScopable(node);\\n}\\n\\n/**\\n * Check if the input `node` is definitely immutable.\\n */\\n\\nfunction isImmutable(node /*: Object*/) /*: boolean*/ {\\n  if (t.isType(node.type, \\"Immutable\\")) return true;\\n\\n  if (t.isIdentifier(node)) {\\n    if (node.name === \\"undefined\\") {\\n      // immutable!\\n      return true;\\n    } else {\\n      // no idea...\\n      return false;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/validators.js\\n ** module id = 187\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n\\n(function () {\\n    \'use strict\';\\n\\n    exports.ast = require(\'./ast\');\\n    exports.code = require(\'./code\');\\n    exports.keyword = require(\'./keyword\');\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/utils.js\\n ** module id = 188\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \'AS IS\'\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n(function () {\\n    \'use strict\';\\n\\n    function isExpression(node) {\\n        if (node == null) { return false; }\\n        switch (node.type) {\\n            case \'ArrayExpression\':\\n            case \'AssignmentExpression\':\\n            case \'BinaryExpression\':\\n            case \'CallExpression\':\\n            case \'ConditionalExpression\':\\n            case \'FunctionExpression\':\\n            case \'Identifier\':\\n            case \'Literal\':\\n            case \'LogicalExpression\':\\n            case \'MemberExpression\':\\n            case \'NewExpression\':\\n            case \'ObjectExpression\':\\n            case \'SequenceExpression\':\\n            case \'ThisExpression\':\\n            case \'UnaryExpression\':\\n            case \'UpdateExpression\':\\n                return true;\\n        }\\n        return false;\\n    }\\n\\n    function isIterationStatement(node) {\\n        if (node == null) { return false; }\\n        switch (node.type) {\\n            case \'DoWhileStatement\':\\n            case \'ForInStatement\':\\n            case \'ForStatement\':\\n            case \'WhileStatement\':\\n                return true;\\n        }\\n        return false;\\n    }\\n\\n    function isStatement(node) {\\n        if (node == null) { return false; }\\n        switch (node.type) {\\n            case \'BlockStatement\':\\n            case \'BreakStatement\':\\n            case \'ContinueStatement\':\\n            case \'DebuggerStatement\':\\n            case \'DoWhileStatement\':\\n            case \'EmptyStatement\':\\n            case \'ExpressionStatement\':\\n            case \'ForInStatement\':\\n            case \'ForStatement\':\\n            case \'IfStatement\':\\n            case \'LabeledStatement\':\\n            case \'ReturnStatement\':\\n            case \'SwitchStatement\':\\n            case \'ThrowStatement\':\\n            case \'TryStatement\':\\n            case \'VariableDeclaration\':\\n            case \'WhileStatement\':\\n            case \'WithStatement\':\\n                return true;\\n        }\\n        return false;\\n    }\\n\\n    function isSourceElement(node) {\\n      return isStatement(node) || node != null && node.type === \'FunctionDeclaration\';\\n    }\\n\\n    function trailingStatement(node) {\\n        switch (node.type) {\\n        case \'IfStatement\':\\n            if (node.alternate != null) {\\n                return node.alternate;\\n            }\\n            return node.consequent;\\n\\n        case \'LabeledStatement\':\\n        case \'ForStatement\':\\n        case \'ForInStatement\':\\n        case \'WhileStatement\':\\n        case \'WithStatement\':\\n            return node.body;\\n        }\\n        return null;\\n    }\\n\\n    function isProblematicIfStatement(node) {\\n        var current;\\n\\n        if (node.type !== \'IfStatement\') {\\n            return false;\\n        }\\n        if (node.alternate == null) {\\n            return false;\\n        }\\n        current = node.consequent;\\n        do {\\n            if (current.type === \'IfStatement\') {\\n                if (current.alternate == null)  {\\n                    return true;\\n                }\\n            }\\n            current = trailingStatement(current);\\n        } while (current);\\n\\n        return false;\\n    }\\n\\n    module.exports = {\\n        isExpression: isExpression,\\n        isStatement: isStatement,\\n        isIterationStatement: isIterationStatement,\\n        isSourceElement: isSourceElement,\\n        isProblematicIfStatement: isProblematicIfStatement,\\n\\n        trailingStatement: trailingStatement\\n    };\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/ast.js\\n ** module id = 189\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013-2014 Yusuke Suzuki <utatane.tea@gmail.com>\\n  Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n(function () {\\n    \'use strict\';\\n\\n    var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch;\\n\\n    // See `tools/generate-identifier-regex.js`.\\n    ES5Regex = {\\n        // ECMAScript 5.1/Unicode v7.0.0 NonAsciiIdentifierStart:\\n        NonAsciiIdentifierStart: /[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]/,\\n        // ECMAScript 5.1/Unicode v7.0.0 NonAsciiIdentifierPart:\\n        NonAsciiIdentifierPart: /[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19D9\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099\\\\u309A\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]/\\n    };\\n\\n    ES6Regex = {\\n        // ECMAScript 6/Unicode v7.0.0 NonAsciiIdentifierStart:\\n        NonAsciiIdentifierStart: /[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309B-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA]|\\\\uD806[\\\\uDCA0-\\\\uDCDF\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD808[\\\\uDC00-\\\\uDF98]|\\\\uD809[\\\\uDC00-\\\\uDC6E]|[\\\\uD80C\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50\\\\uDF93-\\\\uDF9F]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD83A[\\\\uDC00-\\\\uDCC4]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]/,\\n        // ECMAScript 6/Unicode v7.0.0 NonAsciiIdentifierPart:\\n        NonAsciiIdentifierPart: /[\\\\xAA\\\\xB5\\\\xB7\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1369-\\\\u1371\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19DA\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDDFD\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDEE0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF7A\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCA0-\\\\uDCA9\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE6\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48]|\\\\uD804[\\\\uDC00-\\\\uDC46\\\\uDC66-\\\\uDC6F\\\\uDC7F-\\\\uDCBA\\\\uDCD0-\\\\uDCE8\\\\uDCF0-\\\\uDCF9\\\\uDD00-\\\\uDD34\\\\uDD36-\\\\uDD3F\\\\uDD50-\\\\uDD73\\\\uDD76\\\\uDD80-\\\\uDDC4\\\\uDDD0-\\\\uDDDA\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE37\\\\uDEB0-\\\\uDEEA\\\\uDEF0-\\\\uDEF9\\\\uDF01-\\\\uDF03\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3C-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF5D-\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC80-\\\\uDCC5\\\\uDCC7\\\\uDCD0-\\\\uDCD9\\\\uDD80-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDE00-\\\\uDE40\\\\uDE44\\\\uDE50-\\\\uDE59\\\\uDE80-\\\\uDEB7\\\\uDEC0-\\\\uDEC9]|\\\\uD806[\\\\uDCA0-\\\\uDCE9\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD808[\\\\uDC00-\\\\uDF98]|\\\\uD809[\\\\uDC00-\\\\uDC6E]|[\\\\uD80C\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE60-\\\\uDE69\\\\uDED0-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDF00-\\\\uDF36\\\\uDF40-\\\\uDF43\\\\uDF50-\\\\uDF59\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50-\\\\uDF7E\\\\uDF8F-\\\\uDF9F]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9D\\\\uDC9E]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB\\\\uDFCE-\\\\uDFFF]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDCD0-\\\\uDCD6]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uDB40[\\\\uDD00-\\\\uDDEF]/\\n    };\\n\\n    function isDecimalDigit(ch) {\\n        return 0x30 <= ch && ch <= 0x39;  // 0..9\\n    }\\n\\n    function isHexDigit(ch) {\\n        return 0x30 <= ch && ch <= 0x39 ||  // 0..9\\n            0x61 <= ch && ch <= 0x66 ||     // a..f\\n            0x41 <= ch && ch <= 0x46;       // A..F\\n    }\\n\\n    function isOctalDigit(ch) {\\n        return ch >= 0x30 && ch <= 0x37;  // 0..7\\n    }\\n\\n    // 7.2 White Space\\n\\n    NON_ASCII_WHITESPACES = [\\n        0x1680, 0x180E,\\n        0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,\\n        0x202F, 0x205F,\\n        0x3000,\\n        0xFEFF\\n    ];\\n\\n    function isWhiteSpace(ch) {\\n        return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 ||\\n            ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0;\\n    }\\n\\n    // 7.3 Line Terminators\\n\\n    function isLineTerminator(ch) {\\n        return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\\n    }\\n\\n    // 7.6 Identifier Names and Identifiers\\n\\n    function fromCodePoint(cp) {\\n        if (cp <= 0xFFFF) { return String.fromCharCode(cp); }\\n        var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800);\\n        var cu2 = String.fromCharCode(((cp - 0x10000) % 0x400) + 0xDC00);\\n        return cu1 + cu2;\\n    }\\n\\n    IDENTIFIER_START = new Array(0x80);\\n    for(ch = 0; ch < 0x80; ++ch) {\\n        IDENTIFIER_START[ch] =\\n            ch >= 0x61 && ch <= 0x7A ||  // a..z\\n            ch >= 0x41 && ch <= 0x5A ||  // A..Z\\n            ch === 0x24 || ch === 0x5F;  // $ (dollar) and _ (underscore)\\n    }\\n\\n    IDENTIFIER_PART = new Array(0x80);\\n    for(ch = 0; ch < 0x80; ++ch) {\\n        IDENTIFIER_PART[ch] =\\n            ch >= 0x61 && ch <= 0x7A ||  // a..z\\n            ch >= 0x41 && ch <= 0x5A ||  // A..Z\\n            ch >= 0x30 && ch <= 0x39 ||  // 0..9\\n            ch === 0x24 || ch === 0x5F;  // $ (dollar) and _ (underscore)\\n    }\\n\\n    function isIdentifierStartES5(ch) {\\n        return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\\n    }\\n\\n    function isIdentifierPartES5(ch) {\\n        return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\\n    }\\n\\n    function isIdentifierStartES6(ch) {\\n        return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\\n    }\\n\\n    function isIdentifierPartES6(ch) {\\n        return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\\n    }\\n\\n    module.exports = {\\n        isDecimalDigit: isDecimalDigit,\\n        isHexDigit: isHexDigit,\\n        isOctalDigit: isOctalDigit,\\n        isWhiteSpace: isWhiteSpace,\\n        isLineTerminator: isLineTerminator,\\n        isIdentifierStartES5: isIdentifierStartES5,\\n        isIdentifierPartES5: isIdentifierPartES5,\\n        isIdentifierStartES6: isIdentifierStartES6,\\n        isIdentifierPartES6: isIdentifierPartES6\\n    };\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/code.js\\n ** module id = 190\\n ** module chunks = 0\\n **/","/*\\n  Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\\n\\n  Redistribution and use in source and binary forms, with or without\\n  modification, are permitted provided that the following conditions are met:\\n\\n    * Redistributions of source code must retain the above copyright\\n      notice, this list of conditions and the following disclaimer.\\n    * Redistributions in binary form must reproduce the above copyright\\n      notice, this list of conditions and the following disclaimer in the\\n      documentation and/or other materials provided with the distribution.\\n\\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n*/\\n\\n(function () {\\n    \'use strict\';\\n\\n    var code = require(\'./code\');\\n\\n    function isStrictModeReservedWordES6(id) {\\n        switch (id) {\\n        case \'implements\':\\n        case \'interface\':\\n        case \'package\':\\n        case \'private\':\\n        case \'protected\':\\n        case \'public\':\\n        case \'static\':\\n        case \'let\':\\n            return true;\\n        default:\\n            return false;\\n        }\\n    }\\n\\n    function isKeywordES5(id, strict) {\\n        // yield should not be treated as keyword under non-strict mode.\\n        if (!strict && id === \'yield\') {\\n            return false;\\n        }\\n        return isKeywordES6(id, strict);\\n    }\\n\\n    function isKeywordES6(id, strict) {\\n        if (strict && isStrictModeReservedWordES6(id)) {\\n            return true;\\n        }\\n\\n        switch (id.length) {\\n        case 2:\\n            return (id === \'if\') || (id === \'in\') || (id === \'do\');\\n        case 3:\\n            return (id === \'var\') || (id === \'for\') || (id === \'new\') || (id === \'try\');\\n        case 4:\\n            return (id === \'this\') || (id === \'else\') || (id === \'case\') ||\\n                (id === \'void\') || (id === \'with\') || (id === \'enum\');\\n        case 5:\\n            return (id === \'while\') || (id === \'break\') || (id === \'catch\') ||\\n                (id === \'throw\') || (id === \'const\') || (id === \'yield\') ||\\n                (id === \'class\') || (id === \'super\');\\n        case 6:\\n            return (id === \'return\') || (id === \'typeof\') || (id === \'delete\') ||\\n                (id === \'switch\') || (id === \'export\') || (id === \'import\');\\n        case 7:\\n            return (id === \'default\') || (id === \'finally\') || (id === \'extends\');\\n        case 8:\\n            return (id === \'function\') || (id === \'continue\') || (id === \'debugger\');\\n        case 10:\\n            return (id === \'instanceof\');\\n        default:\\n            return false;\\n        }\\n    }\\n\\n    function isReservedWordES5(id, strict) {\\n        return id === \'null\' || id === \'true\' || id === \'false\' || isKeywordES5(id, strict);\\n    }\\n\\n    function isReservedWordES6(id, strict) {\\n        return id === \'null\' || id === \'true\' || id === \'false\' || isKeywordES6(id, strict);\\n    }\\n\\n    function isRestrictedWord(id) {\\n        return id === \'eval\' || id === \'arguments\';\\n    }\\n\\n    function isIdentifierNameES5(id) {\\n        var i, iz, ch;\\n\\n        if (id.length === 0) { return false; }\\n\\n        ch = id.charCodeAt(0);\\n        if (!code.isIdentifierStartES5(ch)) {\\n            return false;\\n        }\\n\\n        for (i = 1, iz = id.length; i < iz; ++i) {\\n            ch = id.charCodeAt(i);\\n            if (!code.isIdentifierPartES5(ch)) {\\n                return false;\\n            }\\n        }\\n        return true;\\n    }\\n\\n    function decodeUtf16(lead, trail) {\\n        return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\\n    }\\n\\n    function isIdentifierNameES6(id) {\\n        var i, iz, ch, lowCh, check;\\n\\n        if (id.length === 0) { return false; }\\n\\n        check = code.isIdentifierStartES6;\\n        for (i = 0, iz = id.length; i < iz; ++i) {\\n            ch = id.charCodeAt(i);\\n            if (0xD800 <= ch && ch <= 0xDBFF) {\\n                ++i;\\n                if (i >= iz) { return false; }\\n                lowCh = id.charCodeAt(i);\\n                if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) {\\n                    return false;\\n                }\\n                ch = decodeUtf16(ch, lowCh);\\n            }\\n            if (!check(ch)) {\\n                return false;\\n            }\\n            check = code.isIdentifierPartES6;\\n        }\\n        return true;\\n    }\\n\\n    function isIdentifierES5(id, strict) {\\n        return isIdentifierNameES5(id) && !isReservedWordES5(id, strict);\\n    }\\n\\n    function isIdentifierES6(id, strict) {\\n        return isIdentifierNameES6(id) && !isReservedWordES6(id, strict);\\n    }\\n\\n    module.exports = {\\n        isKeywordES5: isKeywordES5,\\n        isKeywordES6: isKeywordES6,\\n        isReservedWordES5: isReservedWordES5,\\n        isReservedWordES6: isReservedWordES6,\\n        isRestrictedWord: isRestrictedWord,\\n        isIdentifierNameES5: isIdentifierNameES5,\\n        isIdentifierNameES6: isIdentifierNameES6,\\n        isIdentifierES5: isIdentifierES5,\\n        isIdentifierES6: isIdentifierES6\\n    };\\n}());\\n/* vim: set sw=4 ts=4 et tw=80 : */\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/esutils/lib/keyword.js\\n ** module id = 191\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Number$MAX_SAFE_INTEGER = require(\\"babel-runtime/core-js/number/max-safe-integer\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.toComputedKey = toComputedKey;\\nexports.toSequenceExpression = toSequenceExpression;\\nexports.toKeyAlias = toKeyAlias;\\nexports.toIdentifier = toIdentifier;\\nexports.toBindingIdentifierName = toBindingIdentifierName;\\nexports.toStatement = toStatement;\\nexports.toExpression = toExpression;\\nexports.toBlock = toBlock;\\nexports.valueToNode = valueToNode;\\n\\nvar _lodashLangIsPlainObject = require(\\"lodash/lang/isPlainObject\\");\\n\\nvar _lodashLangIsPlainObject2 = _interopRequireDefault(_lodashLangIsPlainObject);\\n\\nvar _lodashLangIsNumber = require(\\"lodash/lang/isNumber\\");\\n\\nvar _lodashLangIsNumber2 = _interopRequireDefault(_lodashLangIsNumber);\\n\\nvar _lodashLangIsRegExp = require(\\"lodash/lang/isRegExp\\");\\n\\nvar _lodashLangIsRegExp2 = _interopRequireDefault(_lodashLangIsRegExp);\\n\\nvar _lodashLangIsString = require(\\"lodash/lang/isString\\");\\n\\nvar _lodashLangIsString2 = _interopRequireDefault(_lodashLangIsString);\\n\\nvar _babelTraverse = require(\\"babel-traverse\\");\\n\\nvar _babelTraverse2 = _interopRequireDefault(_babelTraverse);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\n/*:: import type { Scope } from \\"babel-traverse\\";*/\\nfunction toComputedKey(node /*: Object*/) /*: Object*/ {\\n  var key /*: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? node.key || node.property : arguments[1];\\n  return (function () {\\n    if (!node.computed) {\\n      if (t.isIdentifier(key)) key = t.stringLiteral(key.name);\\n    }\\n    return key;\\n  })();\\n}\\n\\n/**\\n * Turn an array of statement `nodes` into a `SequenceExpression`.\\n *\\n * Variable declarations are turned into simple assignments and their\\n * declarations hoisted to the top of the current scope.\\n *\\n * Expression statements are just resolved to their expression.\\n */\\n\\nfunction toSequenceExpression(nodes /*: Array<Object>*/, scope /*: Scope*/) /*: ?Object*/ {\\n  if (!nodes || !nodes.length) return;\\n\\n  var declars = [];\\n  var bailed = false;\\n\\n  var result = convert(nodes);\\n  if (bailed) return;\\n\\n  for (var i = 0; i < declars.length; i++) {\\n    scope.push(declars[i]);\\n  }\\n\\n  return result;\\n\\n  function convert(nodes) {\\n    var ensureLastUndefined = false;\\n    var exprs = [];\\n\\n    for (var _iterator = (nodes /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var node = _ref;\\n\\n      if (t.isExpression(node)) {\\n        exprs.push(node);\\n      } else if (t.isExpressionStatement(node)) {\\n        exprs.push(node.expression);\\n      } else if (t.isVariableDeclaration(node)) {\\n        if (node.kind !== \\"var\\") return bailed = true; // bailed\\n\\n        for (var _iterator2 = (node.declarations /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n          var _ref2;\\n\\n          if (_isArray2) {\\n            if (_i2 >= _iterator2.length) break;\\n            _ref2 = _iterator2[_i2++];\\n          } else {\\n            _i2 = _iterator2.next();\\n            if (_i2.done) break;\\n            _ref2 = _i2.value;\\n          }\\n\\n          var declar = _ref2;\\n\\n          var bindings = t.getBindingIdentifiers(declar);\\n          for (var key in bindings) {\\n            declars.push({\\n              kind: node.kind,\\n              id: bindings[key]\\n            });\\n          }\\n\\n          if (declar.init) {\\n            exprs.push(t.assignmentExpression(\\"=\\", declar.id, declar.init));\\n          }\\n        }\\n\\n        ensureLastUndefined = true;\\n        continue;\\n      } else if (t.isIfStatement(node)) {\\n        var consequent = node.consequent ? convert([node.consequent]) : scope.buildUndefinedNode();\\n        var alternate = node.alternate ? convert([node.alternate]) : scope.buildUndefinedNode();\\n        if (!consequent || !alternate) return bailed = true;\\n\\n        exprs.push(t.conditionalExpression(node.test, consequent, alternate));\\n      } else if (t.isBlockStatement(node)) {\\n        exprs.push(convert(node.body));\\n      } else if (t.isEmptyStatement(node)) {\\n        // empty statement so ensure the last item is undefined if we\'re last\\n        ensureLastUndefined = true;\\n        continue;\\n      } else {\\n        // bailed, we can\'t turn this statement into an expression\\n        return bailed = true;\\n      }\\n\\n      ensureLastUndefined = false;\\n    }\\n\\n    if (ensureLastUndefined || exprs.length === 0) {\\n      exprs.push(scope.buildUndefinedNode());\\n    }\\n\\n    //\\n\\n    if (exprs.length === 1) {\\n      return exprs[0];\\n    } else {\\n      return t.sequenceExpression(exprs);\\n    }\\n  }\\n}\\n\\nfunction toKeyAlias(node /*: Object*/) /*: string*/ {\\n  var key /*: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? node.key : arguments[1];\\n  return (function () {\\n    var alias = undefined;\\n\\n    if (node.kind === \\"method\\") {\\n      return toKeyAlias.increment() + \\"\\";\\n    } else if (t.isIdentifier(key)) {\\n      alias = key.name;\\n    } else if (t.isStringLiteral(key)) {\\n      alias = JSON.stringify(key.value);\\n    } else {\\n      alias = JSON.stringify(_babelTraverse2[\\"default\\"].removeProperties(t.cloneDeep(key)));\\n    }\\n\\n    if (node.computed) {\\n      alias = \\"[\\" + alias + \\"]\\";\\n    }\\n\\n    if (node[\\"static\\"]) {\\n      alias = \\"static:\\" + alias;\\n    }\\n\\n    return alias;\\n  })();\\n}\\n\\ntoKeyAlias.uid = 0;\\n\\ntoKeyAlias.increment = function () {\\n  if (toKeyAlias.uid >= _Number$MAX_SAFE_INTEGER) {\\n    return toKeyAlias.uid = 0;\\n  } else {\\n    return toKeyAlias.uid++;\\n  }\\n};\\n\\nfunction toIdentifier(name /*: string*/) /*: string*/ {\\n  name = name + \\"\\";\\n\\n  // replace all non-valid identifiers with dashes\\n  name = name.replace(/[^a-zA-Z0-9$_]/g, \\"-\\");\\n\\n  // remove all dashes and numbers from start of name\\n  name = name.replace(/^[-0-9]+/, \\"\\");\\n\\n  // camel case\\n  name = name.replace(/[-\\\\s]+(.)?/g, function (match, c) {\\n    return c ? c.toUpperCase() : \\"\\";\\n  });\\n\\n  if (!t.isValidIdentifier(name)) {\\n    name = \\"_\\" + name;\\n  }\\n\\n  return name || \\"_\\";\\n}\\n\\nfunction toBindingIdentifierName(name /*: string*/) /*: string*/ {\\n  name = toIdentifier(name);\\n  if (name === \\"eval\\" || name === \\"arguments\\") name = \\"_\\" + name;\\n  return name;\\n}\\n\\n/**\\n * [Please add a description.]\\n * @returns {Object|Boolean}\\n */\\n\\nfunction toStatement(node /*: Object*/, ignore /*:: ?: boolean*/) {\\n  if (t.isStatement(node)) {\\n    return node;\\n  }\\n\\n  var mustHaveId = false;\\n  var newType = undefined;\\n\\n  if (t.isClass(node)) {\\n    mustHaveId = true;\\n    newType = \\"ClassDeclaration\\";\\n  } else if (t.isFunction(node)) {\\n    mustHaveId = true;\\n    newType = \\"FunctionDeclaration\\";\\n  } else if (t.isAssignmentExpression(node)) {\\n    return t.expressionStatement(node);\\n  }\\n\\n  if (mustHaveId && !node.id) {\\n    newType = false;\\n  }\\n\\n  if (!newType) {\\n    if (ignore) {\\n      return false;\\n    } else {\\n      throw new Error(\\"cannot turn \\" + node.type + \\" to a statement\\");\\n    }\\n  }\\n\\n  node.type = newType;\\n\\n  return node;\\n}\\n\\nfunction toExpression(node /*: Object*/) /*: Object*/ {\\n  if (t.isExpressionStatement(node)) {\\n    node = node.expression;\\n  }\\n\\n  if (t.isClass(node)) {\\n    node.type = \\"ClassExpression\\";\\n  } else if (t.isFunction(node)) {\\n    node.type = \\"FunctionExpression\\";\\n  }\\n\\n  if (t.isExpression(node)) {\\n    return node;\\n  } else {\\n    throw new Error(\\"cannot turn \\" + node.type + \\" to an expression\\");\\n  }\\n}\\n\\nfunction toBlock(node /*: Object*/, parent /*: Object*/) /*: Object*/ {\\n  if (t.isBlockStatement(node)) {\\n    return node;\\n  }\\n\\n  if (t.isEmptyStatement(node)) {\\n    node = [];\\n  }\\n\\n  if (!Array.isArray(node)) {\\n    if (!t.isStatement(node)) {\\n      if (t.isFunction(parent)) {\\n        node = t.returnStatement(node);\\n      } else {\\n        node = t.expressionStatement(node);\\n      }\\n    }\\n\\n    node = [node];\\n  }\\n\\n  return t.blockStatement(node);\\n}\\n\\nfunction valueToNode(value /*: any*/) /*: Object*/ {\\n  // undefined\\n  if (value === undefined) {\\n    return t.identifier(\\"undefined\\");\\n  }\\n\\n  // boolean\\n  if (value === true || value === false) {\\n    return t.booleanLiteral(value);\\n  }\\n\\n  // null\\n  if (value === null) {\\n    return t.nullLiteral();\\n  }\\n\\n  // strings\\n  if (_lodashLangIsString2[\\"default\\"](value)) {\\n    return t.stringLiteral(value);\\n  }\\n\\n  // numbers\\n  if (_lodashLangIsNumber2[\\"default\\"](value)) {\\n    return t.numericLiteral(value);\\n  }\\n\\n  // regexes\\n  if (_lodashLangIsRegExp2[\\"default\\"](value)) {\\n    var pattern = value.source;\\n    var flags = value.toString().match(/\\\\/([a-z]+|)$/)[1];\\n    return t.regExpLiteral(pattern, flags);\\n  }\\n\\n  // array\\n  if (Array.isArray(value)) {\\n    return t.arrayExpression(value.map(t.valueToNode));\\n  }\\n\\n  // object\\n  if (_lodashLangIsPlainObject2[\\"default\\"](value)) {\\n    var props = [];\\n    for (var key in value) {\\n      var nodeKey = undefined;\\n      if (t.isValidIdentifier(key)) {\\n        nodeKey = t.identifier(key);\\n      } else {\\n        nodeKey = t.stringLiteral(key);\\n      }\\n      props.push(t.objectProperty(nodeKey, t.valueToNode(value[key])));\\n    }\\n    return t.objectExpression(props);\\n  }\\n\\n  throw new Error(\\"don\'t know how to turn this value into a node\\");\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/converters.js\\n ** module id = 192\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/number/max-safe-integer\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/number/max-safe-integer.js\\n ** module id = 193\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.number.max-safe-integer\');\\nmodule.exports = 0x1fffffffffffff;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/number/max-safe-integer.js\\n ** module id = 194\\n ** module chunks = 0\\n **/","// 20.1.2.6 Number.MAX_SAFE_INTEGER\\nvar $export = require(\'./$.export\');\\n\\n$export($export.S, \'Number\', {MAX_SAFE_INTEGER: 0x1fffffffffffff});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/modules/es6.number.max-safe-integer.js\\n ** module id = 195\\n ** module chunks = 0\\n **/","var baseForIn = require(\'../internal/baseForIn\'),\\n    isArguments = require(\'./isArguments\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar objectTag = \'[object Object]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is a plain object, that is, an object created by the\\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\\n *\\n * **Note:** This method assumes objects created by the `Object` constructor\\n * have no inherited enumerable properties.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n * }\\n *\\n * _.isPlainObject(new Foo);\\n * // => false\\n *\\n * _.isPlainObject([1, 2, 3]);\\n * // => false\\n *\\n * _.isPlainObject({ \'x\': 0, \'y\': 0 });\\n * // => true\\n *\\n * _.isPlainObject(Object.create(null));\\n * // => true\\n */\\nfunction isPlainObject(value) {\\n  var Ctor;\\n\\n  // Exit early for non `Object` objects.\\n  if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isArguments(value)) ||\\n      (!hasOwnProperty.call(value, \'constructor\') && (Ctor = value.constructor, typeof Ctor == \'function\' && !(Ctor instanceof Ctor)))) {\\n    return false;\\n  }\\n  // IE < 9 iterates inherited properties before own properties. If the first\\n  // iterated property is an object\'s own property then there are no inherited\\n  // enumerable properties.\\n  var result;\\n  // In most environments an object\'s own properties are iterated before\\n  // its inherited properties. If the last iterated property is an object\'s\\n  // own property then there are no inherited enumerable properties.\\n  baseForIn(value, function(subValue, key) {\\n    result = key;\\n  });\\n  return result === undefined || hasOwnProperty.call(value, result);\\n}\\n\\nmodule.exports = isPlainObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isPlainObject.js\\n ** module id = 196\\n ** module chunks = 0\\n **/","var baseFor = require(\'./baseFor\'),\\n    keysIn = require(\'../object/keysIn\');\\n\\n/**\\n * The base implementation of `_.forIn` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseForIn(object, iteratee) {\\n  return baseFor(object, iteratee, keysIn);\\n}\\n\\nmodule.exports = baseForIn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseForIn.js\\n ** module id = 197\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar numberTag = \'[object Number]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Number` primitive or object.\\n *\\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\\n * as numbers, use the `_.isFinite` method.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isNumber(8.4);\\n * // => true\\n *\\n * _.isNumber(NaN);\\n * // => true\\n *\\n * _.isNumber(\'8.4\');\\n * // => false\\n */\\nfunction isNumber(value) {\\n  return typeof value == \'number\' || (isObjectLike(value) && objToString.call(value) == numberTag);\\n}\\n\\nmodule.exports = isNumber;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isNumber.js\\n ** module id = 198\\n ** module chunks = 0\\n **/","var isObject = require(\'./isObject\');\\n\\n/** `Object#toString` result references. */\\nvar regexpTag = \'[object RegExp]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `RegExp` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isRegExp(/abc/);\\n * // => true\\n *\\n * _.isRegExp(\'/abc/\');\\n * // => false\\n */\\nfunction isRegExp(value) {\\n  return isObject(value) && objToString.call(value) == regexpTag;\\n}\\n\\nmodule.exports = isRegExp;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isRegExp.js\\n ** module id = 199\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar stringTag = \'[object String]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `String` primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isString(\'abc\');\\n * // => true\\n *\\n * _.isString(1);\\n * // => false\\n */\\nfunction isString(value) {\\n  return typeof value == \'string\' || (isObjectLike(value) && objToString.call(value) == stringTag);\\n}\\n\\nmodule.exports = isString;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/lang/isString.js\\n ** module id = 200\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$getOwnPropertySymbols = require(\\"babel-runtime/core-js/object/get-own-property-symbols\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequire = require(\\"babel-runtime/helpers/interop-require\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = traverse;\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _context2 = _interopRequireDefault(_context);\\n\\nvar _visitors = require(\\"./visitors\\");\\n\\nvar visitors = _interopRequireWildcard(_visitors);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _lodashCollectionIncludes = require(\\"lodash/collection/includes\\");\\n\\nvar _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _path = require(\\"./path\\");\\n\\nexports.NodePath = _interopRequire(_path);\\n\\nvar _scope = require(\\"./scope\\");\\n\\nexports.Scope = _interopRequire(_scope);\\n\\nvar _hub = require(\\"./hub\\");\\n\\nexports.Hub = _interopRequire(_hub);\\nexports.visitors = visitors;\\n\\nfunction traverse(parent /*: Object | Array<Object>*/, opts /*:: ?: Object*/, scope /*:: ?: Object*/, state /*: Object*/, parentPath /*: Object*/) {\\n  if (!parent) return;\\n  if (!opts) opts = {};\\n\\n  if (!opts.noScope && !scope) {\\n    if (parent.type !== \\"Program\\" && parent.type !== \\"File\\") {\\n      throw new Error(messages.get(\\"traverseNeedsParent\\", parent.type));\\n    }\\n  }\\n\\n  visitors.explode(opts);\\n\\n  traverse.node(parent, opts, scope, state, parentPath);\\n}\\n\\ntraverse.visitors = visitors;\\ntraverse.verify = visitors.verify;\\ntraverse.explode = visitors.explode;\\n\\ntraverse.NodePath = require(\\"./path\\");\\ntraverse.Scope = require(\\"./scope\\");\\ntraverse.Hub = require(\\"./hub\\");\\n\\ntraverse.cheap = function (node, enter) {\\n  if (!node) return;\\n\\n  var keys = t.VISITOR_KEYS[node.type];\\n  if (!keys) return;\\n\\n  enter(node);\\n\\n  for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var key = _ref;\\n\\n    var subNode = node[key];\\n\\n    if (Array.isArray(subNode)) {\\n      for (var _iterator2 = subNode, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var _node = _ref2;\\n\\n        traverse.cheap(_node, enter);\\n      }\\n    } else {\\n      traverse.cheap(subNode, enter);\\n    }\\n  }\\n};\\n\\ntraverse.node = function (node /*: Object*/, opts /*: Object*/, scope /*: Object*/, state /*: Object*/, parentPath /*: Object*/, skipKeys /*:: ?*/) {\\n  var keys /*: Array*/ = t.VISITOR_KEYS[node.type];\\n  if (!keys) return;\\n\\n  var context = new _context2[\\"default\\"](scope, opts, state, parentPath);\\n  for (var _iterator3 = keys, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n    var _ref3;\\n\\n    if (_isArray3) {\\n      if (_i3 >= _iterator3.length) break;\\n      _ref3 = _iterator3[_i3++];\\n    } else {\\n      _i3 = _iterator3.next();\\n      if (_i3.done) break;\\n      _ref3 = _i3.value;\\n    }\\n\\n    var key = _ref3;\\n\\n    if (skipKeys && skipKeys[key]) continue;\\n    if (context.visit(node, key)) return;\\n  }\\n};\\n\\nvar CLEAR_KEYS /*: Array*/ = t.COMMENT_KEYS.concat([\\"tokens\\", \\"comments\\", \\"start\\", \\"end\\", \\"loc\\", \\"raw\\", \\"rawValue\\"]);\\n\\ntraverse.clearNode = function (node) {\\n  for (var _iterator4 = CLEAR_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n    var _ref4;\\n\\n    if (_isArray4) {\\n      if (_i4 >= _iterator4.length) break;\\n      _ref4 = _iterator4[_i4++];\\n    } else {\\n      _i4 = _iterator4.next();\\n      if (_i4.done) break;\\n      _ref4 = _i4.value;\\n    }\\n\\n    var key = _ref4;\\n\\n    if (node[key] != null) node[key] = undefined;\\n  }\\n\\n  for (var key in node) {\\n    if (key[0] === \\"_\\" && node[key] != null) node[key] = undefined;\\n  }\\n\\n  var syms /*: Array<Symbol>*/ = _Object$getOwnPropertySymbols(node);\\n  for (var _iterator5 = syms, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n    var _ref5;\\n\\n    if (_isArray5) {\\n      if (_i5 >= _iterator5.length) break;\\n      _ref5 = _iterator5[_i5++];\\n    } else {\\n      _i5 = _iterator5.next();\\n      if (_i5.done) break;\\n      _ref5 = _i5.value;\\n    }\\n\\n    var sym = _ref5;\\n\\n    node[sym] = null;\\n  }\\n};\\n\\ntraverse.removeProperties = function (tree) {\\n  traverse.cheap(tree, traverse.clearNode);\\n  return tree;\\n};\\n\\nfunction hasBlacklistedType(path, state) {\\n  if (path.node.type === state.type) {\\n    state.has = true;\\n    path.skip();\\n  }\\n}\\n\\ntraverse.hasType = function (tree /*: Object*/, scope /*: Object*/, type /*: Object*/, blacklistTypes /*: Array<string>*/) /*: boolean*/ {\\n  // the node we\'re searching in is blacklisted\\n  if (_lodashCollectionIncludes2[\\"default\\"](blacklistTypes, tree.type)) return false;\\n\\n  // the type we\'re looking for is the same as the passed node\\n  if (tree.type === type) return true;\\n\\n  var state = {\\n    has: false,\\n    type: type\\n  };\\n\\n  traverse(tree, {\\n    blacklist: blacklistTypes,\\n    enter: hasBlacklistedType\\n  }, scope, state);\\n\\n  return state.has;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/index.js\\n ** module id = 201\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/get-own-property-symbols\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/object/get-own-property-symbols.js\\n ** module id = 202\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.symbol\');\\nmodule.exports = require(\'../../modules/$.core\').Object.getOwnPropertySymbols;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/object/get-own-property-symbols.js\\n ** module id = 203\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj[\\"default\\"] : obj;\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/interop-require.js\\n ** module id = 204\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _path = require(\\"./path\\");\\n\\nvar _path2 = _interopRequireDefault(_path);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar testing = process.env.NODE_ENV === \\"test\\";\\n\\nvar TraversalContext = (function () {\\n  function TraversalContext(scope, opts, state, parentPath) {\\n    _classCallCheck(this, TraversalContext);\\n\\n    this.parentPath = parentPath;\\n    this.scope = scope;\\n    this.state = state;\\n    this.opts = opts;\\n  }\\n\\n  /**\\n   * This method does a simple check to determine whether or not we really need to attempt\\n   * visit a node. This will prevent us from constructing a NodePath.\\n   */\\n\\n  TraversalContext.prototype.shouldVisit = function shouldVisit(node) /*: boolean*/ {\\n    var opts = this.opts;\\n    if (opts.enter || opts.exit) return true;\\n\\n    // check if we have a visitor for this node\\n    if (opts[node.type]) return true;\\n\\n    // check if we\'re going to traverse into this node\\n    var keys /*: ?Array<string>*/ = t.VISITOR_KEYS[node.type];\\n    if (!keys || !keys.length) return false;\\n\\n    // we need to traverse into this node so ensure that it has children to traverse into!\\n    for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var key = _ref;\\n\\n      if (node[key]) return true;\\n    }\\n\\n    return false;\\n  };\\n\\n  TraversalContext.prototype.create = function create(node, obj, key, listKey) /*: NodePath*/ {\\n    return _path2[\\"default\\"].get({\\n      parentPath: this.parentPath,\\n      parent: node,\\n      container: obj,\\n      key: key,\\n      listKey: listKey\\n    });\\n  };\\n\\n  TraversalContext.prototype.maybeQueue = function maybeQueue(path, notPriority /*:: ?: boolean*/) {\\n    if (this.trap) {\\n      throw new Error(\\"Infinite cycle detected\\");\\n    }\\n\\n    if (this.queue) {\\n      if (notPriority) {\\n        this.queue.push(path);\\n      } else {\\n        this.priorityQueue.push(path);\\n      }\\n    }\\n  };\\n\\n  TraversalContext.prototype.visitMultiple = function visitMultiple(container, parent, listKey) {\\n    // nothing to traverse!\\n    if (container.length === 0) return false;\\n\\n    var queue = [];\\n\\n    // build up initial queue\\n    for (var key = 0; key < container.length; key++) {\\n      var node = container[key];\\n      if (node && this.shouldVisit(node)) {\\n        queue.push(this.create(parent, container, key, listKey));\\n      }\\n    }\\n\\n    return this.visitQueue(queue);\\n  };\\n\\n  TraversalContext.prototype.visitSingle = function visitSingle(node, key) /*: boolean*/ {\\n    if (this.shouldVisit(node[key])) {\\n      return this.visitQueue([this.create(node, node, key)]);\\n    } else {\\n      return false;\\n    }\\n  };\\n\\n  TraversalContext.prototype.visitQueue = function visitQueue(queue /*: Array<NodePath>*/) {\\n    // set queue\\n    this.queue = queue;\\n    this.priorityQueue = [];\\n\\n    var visited = [];\\n    var stop = false;\\n\\n    // visit the queue\\n    for (var _iterator2 = queue, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var path = _ref2;\\n\\n      path.resync();\\n      path.pushContext(this);\\n\\n      // this path no longer belongs to the tree\\n      if (path.key === null) continue;\\n\\n      if (testing && queue.length >= 1000) {\\n        this.trap = true;\\n      }\\n\\n      // ensure we don\'t visit the same node twice\\n      if (visited.indexOf(path.node) >= 0) continue;\\n      visited.push(path.node);\\n\\n      if (path.visit()) {\\n        stop = true;\\n        break;\\n      }\\n\\n      if (this.priorityQueue.length) {\\n        stop = this.visitQueue(this.priorityQueue);\\n        this.priorityQueue = [];\\n        this.queue = queue;\\n        if (stop) break;\\n      }\\n    }\\n\\n    // clear queue\\n    for (var _iterator3 = queue, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n      var _ref3;\\n\\n      if (_isArray3) {\\n        if (_i3 >= _iterator3.length) break;\\n        _ref3 = _iterator3[_i3++];\\n      } else {\\n        _i3 = _iterator3.next();\\n        if (_i3.done) break;\\n        _ref3 = _i3.value;\\n      }\\n\\n      var path = _ref3;\\n\\n      path.popContext();\\n    }\\n\\n    // clear queue\\n    this.queue = null;\\n\\n    return stop;\\n  };\\n\\n  TraversalContext.prototype.visit = function visit(node, key) {\\n    var nodes = node[key];\\n    if (!nodes) return false;\\n\\n    if (Array.isArray(nodes)) {\\n      return this.visitMultiple(nodes, node, key);\\n    } else {\\n      return this.visitSingle(node, key);\\n    }\\n  };\\n\\n  return TraversalContext;\\n})();\\n\\nexports[\\"default\\"] = TraversalContext;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/context.js\\n ** module id = 205\\n ** module chunks = 0\\n **/","// shim for using process in browser\\n\\nvar process = module.exports = {};\\nvar queue = [];\\nvar draining = false;\\nvar currentQueue;\\nvar queueIndex = -1;\\n\\nfunction cleanUpNextTick() {\\n    draining = false;\\n    if (currentQueue.length) {\\n        queue = currentQueue.concat(queue);\\n    } else {\\n        queueIndex = -1;\\n    }\\n    if (queue.length) {\\n        drainQueue();\\n    }\\n}\\n\\nfunction drainQueue() {\\n    if (draining) {\\n        return;\\n    }\\n    var timeout = setTimeout(cleanUpNextTick);\\n    draining = true;\\n\\n    var len = queue.length;\\n    while(len) {\\n        currentQueue = queue;\\n        queue = [];\\n        while (++queueIndex < len) {\\n            if (currentQueue) {\\n                currentQueue[queueIndex].run();\\n            }\\n        }\\n        queueIndex = -1;\\n        len = queue.length;\\n    }\\n    currentQueue = null;\\n    draining = false;\\n    clearTimeout(timeout);\\n}\\n\\nprocess.nextTick = function (fun) {\\n    var args = new Array(arguments.length - 1);\\n    if (arguments.length > 1) {\\n        for (var i = 1; i < arguments.length; i++) {\\n            args[i - 1] = arguments[i];\\n        }\\n    }\\n    queue.push(new Item(fun, args));\\n    if (queue.length === 1 && !draining) {\\n        setTimeout(drainQueue, 0);\\n    }\\n};\\n\\n// v8 likes predictible objects\\nfunction Item(fun, array) {\\n    this.fun = fun;\\n    this.array = array;\\n}\\nItem.prototype.run = function () {\\n    this.fun.apply(null, this.array);\\n};\\nprocess.title = \'browser\';\\nprocess.browser = true;\\nprocess.env = {};\\nprocess.argv = [];\\nprocess.version = \'\'; // empty string to avoid regexp issues\\nprocess.versions = {};\\n\\nfunction noop() {}\\n\\nprocess.on = noop;\\nprocess.addListener = noop;\\nprocess.once = noop;\\nprocess.off = noop;\\nprocess.removeListener = noop;\\nprocess.removeAllListeners = noop;\\nprocess.emit = noop;\\n\\nprocess.binding = function (name) {\\n    throw new Error(\'process.binding is not supported\');\\n};\\n\\nprocess.cwd = function () { return \'/\' };\\nprocess.chdir = function (dir) {\\n    throw new Error(\'process.chdir is not supported\');\\n};\\nprocess.umask = function() { return 0; };\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/process/browser.js\\n ** module id = 206\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/helpers/class-call-check.js\\n ** module id = 207\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _libVirtualTypes = require(\\"./lib/virtual-types\\");\\n\\nvar virtualTypes = _interopRequireWildcard(_libVirtualTypes);\\n\\nvar _debug2 = require(\\"debug\\");\\n\\nvar _debug3 = _interopRequireDefault(_debug2);\\n\\nvar _constants = require(\\"./constants\\");\\n\\nvar _invariant = require(\\"invariant\\");\\n\\nvar _invariant2 = _interopRequireDefault(_invariant);\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _lodashObjectAssign = require(\\"lodash/object/assign\\");\\n\\nvar _lodashObjectAssign2 = _interopRequireDefault(_lodashObjectAssign);\\n\\nvar _scope = require(\\"../scope\\");\\n\\nvar _scope2 = _interopRequireDefault(_scope);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type Hub from \\"../hub\\";*/\\n/*:: import type TraversalContext from \\"../context\\";*/\\n\\nvar _debug = _debug3[\\"default\\"](\\"babel\\");\\n\\nvar NodePath = (function () {\\n  function NodePath(hub /*: Hub*/, parent /*: Object*/) {\\n    _classCallCheck(this, NodePath);\\n\\n    this.parent = parent;\\n    this.hub = hub;\\n    this.contexts = [];\\n    this.data = {};\\n    this.shouldSkip = false;\\n    this.shouldStop = false;\\n    this.removed = false;\\n    this.state = null;\\n    this.opts = null;\\n    this.skipKeys = null;\\n    this.parentPath = null;\\n    this.context = null;\\n    this.container = null;\\n    this.listKey = null;\\n    this.inList = false;\\n    this.parentKey = null;\\n    this.key = null;\\n    this.node = null;\\n    this.scope = null;\\n    this.type = null;\\n    this.typeAnnotation = null;\\n  }\\n\\n  NodePath.get = function get(_ref2) /*: NodePath*/ {\\n    var hub = _ref2.hub;\\n    var parentPath = _ref2.parentPath;\\n    var parent = _ref2.parent;\\n    var container = _ref2.container;\\n    var listKey = _ref2.listKey;\\n    var key = _ref2.key;\\n\\n    if (!hub && parentPath) {\\n      hub = parentPath.hub;\\n    }\\n\\n    _invariant2[\\"default\\"](parent, \\"To get a node path the parent needs to exist\\");\\n\\n    var targetNode = container[key];\\n\\n    var paths = parent[_constants.PATH_CACHE_KEY] = parent[_constants.PATH_CACHE_KEY] || [];\\n    var path = undefined;\\n\\n    for (var i = 0; i < paths.length; i++) {\\n      var pathCheck = paths[i];\\n      if (pathCheck.node === targetNode) {\\n        path = pathCheck;\\n        break;\\n      }\\n    }\\n\\n    if (path && !(path instanceof NodePath)) {\\n      if (path.constructor.name === \\"NodePath\\") {\\n        // we\'re going to absolutley thrash the tree and allocate way too many node paths\\n        // than is necessary but there\'s no way around this as the node module resolution\\n        // algorithm is ridiculous\\n        path = null;\\n      } else {\\n        // badly deserialised probably\\n        throw new Error(\\"We found a path that isn\'t a NodePath instance. Possiblly due to bad serialisation.\\");\\n      }\\n    }\\n\\n    if (!path) {\\n      path = new NodePath(hub, parent);\\n      paths.push(path);\\n    }\\n\\n    path.setup(parentPath, container, listKey, key);\\n\\n    return path;\\n  };\\n\\n  NodePath.prototype.getScope = function getScope(scope /*: Scope*/) {\\n    var ourScope = scope;\\n\\n    // we\'re entering a new scope so let\'s construct it!\\n    if (this.isScope()) {\\n      ourScope = new _scope2[\\"default\\"](this, scope);\\n    }\\n\\n    return ourScope;\\n  };\\n\\n  NodePath.prototype.setData = function setData(key /*: string*/, val /*: any*/) /*: any*/ {\\n    return this.data[key] = val;\\n  };\\n\\n  NodePath.prototype.getData = function getData(key /*: string*/, def /*:: ?: any*/) /*: any*/ {\\n    var val = this.data[key];\\n    if (!val && def) val = this.data[key] = def;\\n    return val;\\n  };\\n\\n  NodePath.prototype.buildCodeFrameError = function buildCodeFrameError(msg /*: string*/) /*: Error*/ {\\n    var Error /*: typeof Error*/ = arguments.length <= 1 || arguments[1] === undefined ? SyntaxError : arguments[1];\\n\\n    return this.hub.file.buildCodeFrameError(this.node, msg, Error);\\n  };\\n\\n  NodePath.prototype.traverse = function traverse(visitor /*: Object*/, state /*:: ?: any*/) {\\n    _index2[\\"default\\"](this.node, visitor, this.scope, state, this);\\n  };\\n\\n  NodePath.prototype.mark = function mark(type /*: string*/, message /*: string*/) {\\n    this.hub.file.metadata.marked.push({\\n      type: type,\\n      message: message,\\n      loc: this.node.loc\\n    });\\n  };\\n\\n  NodePath.prototype.set = function set(key /*: string*/, node /*: Object*/) {\\n    t.validate(this.node, key, node);\\n    this.node[key] = node;\\n  };\\n\\n  NodePath.prototype.getPathLocation = function getPathLocation() /*: string*/ {\\n    var parts = [];\\n    var path = this;\\n    do {\\n      var key = path.key;\\n      if (path.inList) key = path.listKey + \\"[\\" + key + \\"]\\";\\n      parts.unshift(key);\\n    } while (path = path.parentPath);\\n    return parts.join(\\".\\");\\n  };\\n\\n  NodePath.prototype.debug = function debug(buildMessage /*: Function*/) {\\n    if (!_debug.enabled) return;\\n    _debug(this.getPathLocation() + \\" \\" + this.type + \\": \\" + buildMessage());\\n  };\\n\\n  return NodePath;\\n})();\\n\\nexports[\\"default\\"] = NodePath;\\n\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./ancestry\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./inference\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./replacement\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./evaluation\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./conversion\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./introspection\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./context\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./removal\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./modification\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./family\\"));\\n_lodashObjectAssign2[\\"default\\"](NodePath.prototype, require(\\"./comments\\"));\\n\\nvar _loop = function () {\\n  if (_isArray) {\\n    if (_i >= _iterator.length) return \\"break\\";\\n    _ref = _iterator[_i++];\\n  } else {\\n    _i = _iterator.next();\\n    if (_i.done) return \\"break\\";\\n    _ref = _i.value;\\n  }\\n\\n  var type = _ref;\\n\\n  var typeKey = \\"is\\" + type;\\n  NodePath.prototype[typeKey] = function (opts) {\\n    return t[typeKey](this.node, opts);\\n  };\\n\\n  NodePath.prototype[\\"assert\\" + type] = function (opts) {\\n    if (!this[typeKey](opts)) {\\n      throw new TypeError(\\"Expected node path of type \\" + type);\\n    }\\n  };\\n};\\n\\nfor (var _iterator = (t.TYPES /*: Array<string>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n  var _ref;\\n\\n  var _ret = _loop();\\n\\n  // istanbul ignore next\\n  if (_ret === \\"break\\") break;\\n}\\n\\nvar _loop2 = function (type) {\\n  if (type[0] === \\"_\\") return \\"continue\\";\\n  if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type);\\n\\n  var virtualType = virtualTypes[type];\\n\\n  NodePath.prototype[\\"is\\" + type] = function (opts) {\\n    return virtualType.checkPath(this, opts);\\n  };\\n};\\n\\nfor (var type in virtualTypes) {\\n  var _ret2 = _loop2(type);\\n\\n  // istanbul ignore next\\n  if (_ret2 === \\"continue\\") continue;\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/index.js\\n ** module id = 208\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type NodePath from \\"../index\\";*/var ReferencedIdentifier = {\\n  types: [\\"Identifier\\", \\"JSXIdentifier\\"],\\n  checkPath: function checkPath(_ref /*: NodePath*/, opts /*:: ?: Object*/) /*: boolean*/ {\\n    var node = _ref.node;\\n    var parent = _ref.parent;\\n\\n    if (!t.isIdentifier(node, opts)) {\\n      if (t.isJSXIdentifier(node, opts)) {\\n        if (_babelTypes.react.isCompatTag(node.name)) return false;\\n      } else {\\n        // not a JSXIdentifier or an Identifier\\n        return false;\\n      }\\n    }\\n\\n    // check if node is referenced\\n    return t.isReferenced(node, parent);\\n  }\\n};\\n\\nexports.ReferencedIdentifier = ReferencedIdentifier;\\nvar ReferencedMemberExpression = {\\n  types: [\\"MemberExpression\\"],\\n  checkPath: function checkPath(_ref2) {\\n    var node = _ref2.node;\\n    var parent = _ref2.parent;\\n\\n    return t.isMemberExpression(node) && t.isReferenced(node, parent);\\n  }\\n};\\n\\nexports.ReferencedMemberExpression = ReferencedMemberExpression;\\nvar BindingIdentifier = {\\n  types: [\\"Identifier\\"],\\n  checkPath: function checkPath(_ref3 /*: NodePath*/) /*: boolean*/ {\\n    var node = _ref3.node;\\n    var parent = _ref3.parent;\\n\\n    return t.isIdentifier(node) && t.isBinding(node, parent);\\n  }\\n};\\n\\nexports.BindingIdentifier = BindingIdentifier;\\nvar Statement = {\\n  types: [\\"Statement\\"],\\n  checkPath: function checkPath(_ref4 /*: NodePath*/) /*: boolean*/ {\\n    var node = _ref4.node;\\n    var parent = _ref4.parent;\\n\\n    if (t.isStatement(node)) {\\n      if (t.isVariableDeclaration(node)) {\\n        if (t.isForXStatement(parent, { left: node })) return false;\\n        if (t.isForStatement(parent, { init: node })) return false;\\n      }\\n\\n      return true;\\n    } else {\\n      return false;\\n    }\\n  }\\n};\\n\\nexports.Statement = Statement;\\nvar Expression = {\\n  types: [\\"Expression\\"],\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    if (path.isIdentifier()) {\\n      return path.isReferencedIdentifier();\\n    } else {\\n      return t.isExpression(path.node);\\n    }\\n  }\\n};\\n\\nexports.Expression = Expression;\\nvar Scope = {\\n  types: [\\"Scopable\\"],\\n  checkPath: function checkPath(path) {\\n    return t.isScope(path.node, path.parent);\\n  }\\n};\\n\\nexports.Scope = Scope;\\nvar Referenced = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return t.isReferenced(path.node, path.parent);\\n  }\\n};\\n\\nexports.Referenced = Referenced;\\nvar BlockScoped = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return t.isBlockScoped(path.node);\\n  }\\n};\\n\\nexports.BlockScoped = BlockScoped;\\nvar Var = {\\n  types: [\\"VariableDeclaration\\"],\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return t.isVar(path.node);\\n  }\\n};\\n\\nexports.Var = Var;\\nvar User = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return path.node && !!path.node.loc;\\n  }\\n};\\n\\nexports.User = User;\\nvar Generated = {\\n  checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ {\\n    return !path.isUser();\\n  }\\n};\\n\\nexports.Generated = Generated;\\nvar Pure = {\\n  checkPath: function checkPath(path /*: NodePath*/, opts /*:: ?*/) /*: boolean*/ {\\n    return path.scope.isPure(path.node, opts);\\n  }\\n};\\n\\nexports.Pure = Pure;\\nvar Flow = {\\n  types: [\\"Flow\\", \\"ImportDeclaration\\", \\"ExportDeclaration\\"],\\n  checkPath: function checkPath(_ref5 /*: NodePath*/) /*: boolean*/ {\\n    var node = _ref5.node;\\n\\n    if (t.isFlow(node)) {\\n      return true;\\n    } else if (t.isImportDeclaration(node)) {\\n      return node.importKind === \\"type\\" || node.importKind === \\"typeof\\";\\n    } else if (t.isExportDeclaration(node)) {\\n      return node.exportKind === \\"type\\";\\n    } else {\\n      return false;\\n    }\\n  }\\n};\\nexports.Flow = Flow;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/lib/virtual-types.js\\n ** module id = 209\\n ** module chunks = 0\\n **/","\\n/**\\n * This is the web browser implementation of `debug()`.\\n *\\n * Expose `debug()` as the module.\\n */\\n\\nexports = module.exports = require(\'./debug\');\\nexports.log = log;\\nexports.formatArgs = formatArgs;\\nexports.save = save;\\nexports.load = load;\\nexports.useColors = useColors;\\nexports.storage = \'undefined\' != typeof chrome\\n               && \'undefined\' != typeof chrome.storage\\n                  ? chrome.storage.local\\n                  : localstorage();\\n\\n/**\\n * Colors.\\n */\\n\\nexports.colors = [\\n  \'lightseagreen\',\\n  \'forestgreen\',\\n  \'goldenrod\',\\n  \'dodgerblue\',\\n  \'darkorchid\',\\n  \'crimson\'\\n];\\n\\n/**\\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\\n * and the Firebug extension (any Firefox version) are known\\n * to support \\"%c\\" CSS customizations.\\n *\\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\\n */\\n\\nfunction useColors() {\\n  // is webkit? http://stackoverflow.com/a/16459606/376773\\n  return (\'WebkitAppearance\' in document.documentElement.style) ||\\n    // is firebug? http://stackoverflow.com/a/398120/376773\\n    (window.console && (console.firebug || (console.exception && console.table))) ||\\n    // is firefox >= v31?\\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\\n    (navigator.userAgent.toLowerCase().match(/firefox\\\\/(\\\\d+)/) && parseInt(RegExp.$1, 10) >= 31);\\n}\\n\\n/**\\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\\n */\\n\\nexports.formatters.j = function(v) {\\n  return JSON.stringify(v);\\n};\\n\\n\\n/**\\n * Colorize log arguments if enabled.\\n *\\n * @api public\\n */\\n\\nfunction formatArgs() {\\n  var args = arguments;\\n  var useColors = this.useColors;\\n\\n  args[0] = (useColors ? \'%c\' : \'\')\\n    + this.namespace\\n    + (useColors ? \' %c\' : \' \')\\n    + args[0]\\n    + (useColors ? \'%c \' : \' \')\\n    + \'+\' + exports.humanize(this.diff);\\n\\n  if (!useColors) return args;\\n\\n  var c = \'color: \' + this.color;\\n  args = [args[0], c, \'color: inherit\'].concat(Array.prototype.slice.call(args, 1));\\n\\n  // the final \\"%c\\" is somewhat tricky, because there could be other\\n  // arguments passed either before or after the %c, so we need to\\n  // figure out the correct index to insert the CSS into\\n  var index = 0;\\n  var lastC = 0;\\n  args[0].replace(/%[a-z%]/g, function(match) {\\n    if (\'%%\' === match) return;\\n    index++;\\n    if (\'%c\' === match) {\\n      // we only are interested in the *last* %c\\n      // (the user may have provided their own)\\n      lastC = index;\\n    }\\n  });\\n\\n  args.splice(lastC, 0, c);\\n  return args;\\n}\\n\\n/**\\n * Invokes `console.log()` when available.\\n * No-op when `console.log` is not a \\"function\\".\\n *\\n * @api public\\n */\\n\\nfunction log() {\\n  // this hackery is required for IE8/9, where\\n  // the `console.log` function doesn\'t have \'apply\'\\n  return \'object\' === typeof console\\n    && console.log\\n    && Function.prototype.apply.call(console.log, console, arguments);\\n}\\n\\n/**\\n * Save `namespaces`.\\n *\\n * @param {String} namespaces\\n * @api private\\n */\\n\\nfunction save(namespaces) {\\n  try {\\n    if (null == namespaces) {\\n      exports.storage.removeItem(\'debug\');\\n    } else {\\n      exports.storage.debug = namespaces;\\n    }\\n  } catch(e) {}\\n}\\n\\n/**\\n * Load `namespaces`.\\n *\\n * @return {String} returns the previously persisted debug modes\\n * @api private\\n */\\n\\nfunction load() {\\n  var r;\\n  try {\\n    r = exports.storage.debug;\\n  } catch(e) {}\\n  return r;\\n}\\n\\n/**\\n * Enable namespaces listed in `localStorage.debug` initially.\\n */\\n\\nexports.enable(load());\\n\\n/**\\n * Localstorage attempts to return the localstorage.\\n *\\n * This is necessary because safari throws\\n * when a user disables cookies/localstorage\\n * and you attempt to access it.\\n *\\n * @return {LocalStorage}\\n * @api private\\n */\\n\\nfunction localstorage(){\\n  try {\\n    return window.localStorage;\\n  } catch (e) {}\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/debug/browser.js\\n ** module id = 210\\n ** module chunks = 0\\n **/","\\n/**\\n * This is the common logic for both the Node.js and web browser\\n * implementations of `debug()`.\\n *\\n * Expose `debug()` as the module.\\n */\\n\\nexports = module.exports = debug;\\nexports.coerce = coerce;\\nexports.disable = disable;\\nexports.enable = enable;\\nexports.enabled = enabled;\\nexports.humanize = require(\'ms\');\\n\\n/**\\n * The currently active debug mode names, and names to skip.\\n */\\n\\nexports.names = [];\\nexports.skips = [];\\n\\n/**\\n * Map of special \\"%n\\" handling functions, for the debug \\"format\\" argument.\\n *\\n * Valid key names are a single, lowercased letter, i.e. \\"n\\".\\n */\\n\\nexports.formatters = {};\\n\\n/**\\n * Previously assigned color.\\n */\\n\\nvar prevColor = 0;\\n\\n/**\\n * Previous log timestamp.\\n */\\n\\nvar prevTime;\\n\\n/**\\n * Select a color.\\n *\\n * @return {Number}\\n * @api private\\n */\\n\\nfunction selectColor() {\\n  return exports.colors[prevColor++ % exports.colors.length];\\n}\\n\\n/**\\n * Create a debugger with the given `namespace`.\\n *\\n * @param {String} namespace\\n * @return {Function}\\n * @api public\\n */\\n\\nfunction debug(namespace) {\\n\\n  // define the `disabled` version\\n  function disabled() {\\n  }\\n  disabled.enabled = false;\\n\\n  // define the `enabled` version\\n  function enabled() {\\n\\n    var self = enabled;\\n\\n    // set `diff` timestamp\\n    var curr = +new Date();\\n    var ms = curr - (prevTime || curr);\\n    self.diff = ms;\\n    self.prev = prevTime;\\n    self.curr = curr;\\n    prevTime = curr;\\n\\n    // add the `color` if not set\\n    if (null == self.useColors) self.useColors = exports.useColors();\\n    if (null == self.color && self.useColors) self.color = selectColor();\\n\\n    var args = Array.prototype.slice.call(arguments);\\n\\n    args[0] = exports.coerce(args[0]);\\n\\n    if (\'string\' !== typeof args[0]) {\\n      // anything else let\'s inspect with %o\\n      args = [\'%o\'].concat(args);\\n    }\\n\\n    // apply any `formatters` transformations\\n    var index = 0;\\n    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {\\n      // if we encounter an escaped % then don\'t increase the array index\\n      if (match === \'%%\') return match;\\n      index++;\\n      var formatter = exports.formatters[format];\\n      if (\'function\' === typeof formatter) {\\n        var val = args[index];\\n        match = formatter.call(self, val);\\n\\n        // now we need to remove `args[index]` since it\'s inlined in the `format`\\n        args.splice(index, 1);\\n        index--;\\n      }\\n      return match;\\n    });\\n\\n    if (\'function\' === typeof exports.formatArgs) {\\n      args = exports.formatArgs.apply(self, args);\\n    }\\n    var logFn = enabled.log || exports.log || console.log.bind(console);\\n    logFn.apply(self, args);\\n  }\\n  enabled.enabled = true;\\n\\n  var fn = exports.enabled(namespace) ? enabled : disabled;\\n\\n  fn.namespace = namespace;\\n\\n  return fn;\\n}\\n\\n/**\\n * Enables a debug mode by namespaces. This can include modes\\n * separated by a colon and wildcards.\\n *\\n * @param {String} namespaces\\n * @api public\\n */\\n\\nfunction enable(namespaces) {\\n  exports.save(namespaces);\\n\\n  var split = (namespaces || \'\').split(/[\\\\s,]+/);\\n  var len = split.length;\\n\\n  for (var i = 0; i < len; i++) {\\n    if (!split[i]) continue; // ignore empty strings\\n    namespaces = split[i].replace(/\\\\*/g, \'.*?\');\\n    if (namespaces[0] === \'-\') {\\n      exports.skips.push(new RegExp(\'^\' + namespaces.substr(1) + \'$\'));\\n    } else {\\n      exports.names.push(new RegExp(\'^\' + namespaces + \'$\'));\\n    }\\n  }\\n}\\n\\n/**\\n * Disable debug output.\\n *\\n * @api public\\n */\\n\\nfunction disable() {\\n  exports.enable(\'\');\\n}\\n\\n/**\\n * Returns true if the given mode name is enabled, false otherwise.\\n *\\n * @param {String} name\\n * @return {Boolean}\\n * @api public\\n */\\n\\nfunction enabled(name) {\\n  var i, len;\\n  for (i = 0, len = exports.skips.length; i < len; i++) {\\n    if (exports.skips[i].test(name)) {\\n      return false;\\n    }\\n  }\\n  for (i = 0, len = exports.names.length; i < len; i++) {\\n    if (exports.names[i].test(name)) {\\n      return true;\\n    }\\n  }\\n  return false;\\n}\\n\\n/**\\n * Coerce `val`.\\n *\\n * @param {Mixed} val\\n * @return {Mixed}\\n * @api private\\n */\\n\\nfunction coerce(val) {\\n  if (val instanceof Error) return val.stack || val.message;\\n  return val;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/debug/debug.js\\n ** module id = 211\\n ** module chunks = 0\\n **/","/**\\n * Helpers.\\n */\\n\\nvar s = 1000;\\nvar m = s * 60;\\nvar h = m * 60;\\nvar d = h * 24;\\nvar y = d * 365.25;\\n\\n/**\\n * Parse or format the given `val`.\\n *\\n * Options:\\n *\\n *  - `long` verbose formatting [false]\\n *\\n * @param {String|Number} val\\n * @param {Object} options\\n * @return {String|Number}\\n * @api public\\n */\\n\\nmodule.exports = function(val, options){\\n  options = options || {};\\n  if (\'string\' == typeof val) return parse(val);\\n  return options.long\\n    ? long(val)\\n    : short(val);\\n};\\n\\n/**\\n * Parse the given `str` and return milliseconds.\\n *\\n * @param {String} str\\n * @return {Number}\\n * @api private\\n */\\n\\nfunction parse(str) {\\n  str = \'\' + str;\\n  if (str.length > 10000) return;\\n  var match = /^((?:\\\\d+)?\\\\.?\\\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\\n  if (!match) return;\\n  var n = parseFloat(match[1]);\\n  var type = (match[2] || \'ms\').toLowerCase();\\n  switch (type) {\\n    case \'years\':\\n    case \'year\':\\n    case \'yrs\':\\n    case \'yr\':\\n    case \'y\':\\n      return n * y;\\n    case \'days\':\\n    case \'day\':\\n    case \'d\':\\n      return n * d;\\n    case \'hours\':\\n    case \'hour\':\\n    case \'hrs\':\\n    case \'hr\':\\n    case \'h\':\\n      return n * h;\\n    case \'minutes\':\\n    case \'minute\':\\n    case \'mins\':\\n    case \'min\':\\n    case \'m\':\\n      return n * m;\\n    case \'seconds\':\\n    case \'second\':\\n    case \'secs\':\\n    case \'sec\':\\n    case \'s\':\\n      return n * s;\\n    case \'milliseconds\':\\n    case \'millisecond\':\\n    case \'msecs\':\\n    case \'msec\':\\n    case \'ms\':\\n      return n;\\n  }\\n}\\n\\n/**\\n * Short format for `ms`.\\n *\\n * @param {Number} ms\\n * @return {String}\\n * @api private\\n */\\n\\nfunction short(ms) {\\n  if (ms >= d) return Math.round(ms / d) + \'d\';\\n  if (ms >= h) return Math.round(ms / h) + \'h\';\\n  if (ms >= m) return Math.round(ms / m) + \'m\';\\n  if (ms >= s) return Math.round(ms / s) + \'s\';\\n  return ms + \'ms\';\\n}\\n\\n/**\\n * Long format for `ms`.\\n *\\n * @param {Number} ms\\n * @return {String}\\n * @api private\\n */\\n\\nfunction long(ms) {\\n  return plural(ms, d, \'day\')\\n    || plural(ms, h, \'hour\')\\n    || plural(ms, m, \'minute\')\\n    || plural(ms, s, \'second\')\\n    || ms + \' ms\';\\n}\\n\\n/**\\n * Pluralization helper.\\n */\\n\\nfunction plural(ms, n, name) {\\n  if (ms < n) return;\\n  if (ms < n * 1.5) return Math.floor(ms / n) + \' \' + name;\\n  return Math.ceil(ms / n) + \' \' + name + \'s\';\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/debug/~/ms/index.js\\n ** module id = 212\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nexports.__esModule = true;\\nvar PATH_CACHE_KEY = \\"_paths\\";exports.PATH_CACHE_KEY = PATH_CACHE_KEY;\\n//Symbol();\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/constants.js\\n ** module id = 213\\n ** module chunks = 0\\n **/","/**\\n * Copyright 2013-2015, Facebook, Inc.\\n * All rights reserved.\\n *\\n * This source code is licensed under the BSD-style license found in the\\n * LICENSE file in the root directory of this source tree. An additional grant\\n * of patent rights can be found in the PATENTS file in the same directory.\\n */\\n\\n\'use strict\';\\n\\n/**\\n * Use invariant() to assert state which your program assumes to be true.\\n *\\n * Provide sprintf-style format (only %s is supported) and arguments\\n * to provide information about what broke and what you were\\n * expecting.\\n *\\n * The invariant message will be stripped in production, but the invariant\\n * will remain to ensure logic does not differ in production.\\n */\\n\\nvar invariant = function(condition, format, a, b, c, d, e, f) {\\n  if (process.env.NODE_ENV !== \'production\') {\\n    if (format === undefined) {\\n      throw new Error(\'invariant requires an error message argument\');\\n    }\\n  }\\n\\n  if (!condition) {\\n    var error;\\n    if (format === undefined) {\\n      error = new Error(\\n        \'Minified exception occurred; use the non-minified dev environment \' +\\n        \'for the full error message and additional helpful warnings.\'\\n      );\\n    } else {\\n      var args = [a, b, c, d, e, f];\\n      var argIndex = 0;\\n      error = new Error(\\n        format.replace(/%s/g, function() { return args[argIndex++]; })\\n      );\\n      error.name = \'Invariant Violation\';\\n    }\\n\\n    error.framesToPop = 1; // we don\'t care about invariant\'s own frame\\n    throw error;\\n  }\\n};\\n\\nmodule.exports = invariant;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/invariant/browser.js\\n ** module id = 214\\n ** module chunks = 0\\n **/","var assignWith = require(\'../internal/assignWith\'),\\n    baseAssign = require(\'../internal/baseAssign\'),\\n    createAssigner = require(\'../internal/createAssigner\');\\n\\n/**\\n * Assigns own enumerable properties of source object(s) to the destination\\n * object. Subsequent sources overwrite property assignments of previous sources.\\n * If `customizer` is provided it\'s invoked to produce the assigned values.\\n * The `customizer` is bound to `thisArg` and invoked with five arguments:\\n * (objectValue, sourceValue, key, object, source).\\n *\\n * **Note:** This method mutates `object` and is based on\\n * [`Object.assign`](http://ecma-international.org/ecma-262/6.0/#sec-object.assign).\\n *\\n * @static\\n * @memberOf _\\n * @alias extend\\n * @category Object\\n * @param {Object} object The destination object.\\n * @param {...Object} [sources] The source objects.\\n * @param {Function} [customizer] The function to customize assigned values.\\n * @param {*} [thisArg] The `this` binding of `customizer`.\\n * @returns {Object} Returns `object`.\\n * @example\\n *\\n * _.assign({ \'user\': \'barney\' }, { \'age\': 40 }, { \'user\': \'fred\' });\\n * // => { \'user\': \'fred\', \'age\': 40 }\\n *\\n * // using a customizer callback\\n * var defaults = _.partialRight(_.assign, function(value, other) {\\n *   return _.isUndefined(value) ? other : value;\\n * });\\n *\\n * defaults({ \'user\': \'barney\' }, { \'age\': 36 }, { \'user\': \'fred\' });\\n * // => { \'user\': \'barney\', \'age\': 36 }\\n */\\nvar assign = createAssigner(function(object, source, customizer) {\\n  return customizer\\n    ? assignWith(object, source, customizer)\\n    : baseAssign(object, source);\\n});\\n\\nmodule.exports = assign;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/assign.js\\n ** module id = 215\\n ** module chunks = 0\\n **/","var keys = require(\'../object/keys\');\\n\\n/**\\n * A specialized version of `_.assign` for customizing assigned values without\\n * support for argument juggling, multiple sources, and `this` binding `customizer`\\n * functions.\\n *\\n * @private\\n * @param {Object} object The destination object.\\n * @param {Object} source The source object.\\n * @param {Function} customizer The function to customize assigned values.\\n * @returns {Object} Returns `object`.\\n */\\nfunction assignWith(object, source, customizer) {\\n  var index = -1,\\n      props = keys(source),\\n      length = props.length;\\n\\n  while (++index < length) {\\n    var key = props[index],\\n        value = object[key],\\n        result = customizer(value, source[key], key, object, source);\\n\\n    if ((result === result ? (result !== value) : (value === value)) ||\\n        (value === undefined && !(key in object))) {\\n      object[key] = result;\\n    }\\n  }\\n  return object;\\n}\\n\\nmodule.exports = assignWith;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/assignWith.js\\n ** module id = 216\\n ** module chunks = 0\\n **/","var bindCallback = require(\'./bindCallback\'),\\n    isIterateeCall = require(\'./isIterateeCall\'),\\n    restParam = require(\'../function/restParam\');\\n\\n/**\\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\\n *\\n * @private\\n * @param {Function} assigner The function to assign values.\\n * @returns {Function} Returns the new assigner function.\\n */\\nfunction createAssigner(assigner) {\\n  return restParam(function(object, sources) {\\n    var index = -1,\\n        length = object == null ? 0 : sources.length,\\n        customizer = length > 2 ? sources[length - 2] : undefined,\\n        guard = length > 2 ? sources[2] : undefined,\\n        thisArg = length > 1 ? sources[length - 1] : undefined;\\n\\n    if (typeof customizer == \'function\') {\\n      customizer = bindCallback(customizer, thisArg, 5);\\n      length -= 2;\\n    } else {\\n      customizer = typeof thisArg == \'function\' ? thisArg : undefined;\\n      length -= (customizer ? 1 : 0);\\n    }\\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\\n      customizer = length < 3 ? undefined : customizer;\\n      length = 1;\\n    }\\n    while (++index < length) {\\n      var source = sources[index];\\n      if (source) {\\n        assigner(object, source, customizer);\\n      }\\n    }\\n    return object;\\n  });\\n}\\n\\nmodule.exports = createAssigner;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createAssigner.js\\n ** module id = 217\\n ** module chunks = 0\\n **/","/** Used as the `TypeError` message for \\"Functions\\" methods. */\\nvar FUNC_ERROR_TEXT = \'Expected a function\';\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max;\\n\\n/**\\n * Creates a function that invokes `func` with the `this` binding of the\\n * created function and arguments from `start` and beyond provided as an array.\\n *\\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\\n *\\n * @static\\n * @memberOf _\\n * @category Function\\n * @param {Function} func The function to apply a rest parameter to.\\n * @param {number} [start=func.length-1] The start position of the rest parameter.\\n * @returns {Function} Returns the new function.\\n * @example\\n *\\n * var say = _.restParam(function(what, names) {\\n *   return what + \' \' + _.initial(names).join(\', \') +\\n *     (_.size(names) > 1 ? \', & \' : \'\') + _.last(names);\\n * });\\n *\\n * say(\'hello\', \'fred\', \'barney\', \'pebbles\');\\n * // => \'hello fred, barney, & pebbles\'\\n */\\nfunction restParam(func, start) {\\n  if (typeof func != \'function\') {\\n    throw new TypeError(FUNC_ERROR_TEXT);\\n  }\\n  start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\\n  return function() {\\n    var args = arguments,\\n        index = -1,\\n        length = nativeMax(args.length - start, 0),\\n        rest = Array(length);\\n\\n    while (++index < length) {\\n      rest[index] = args[start + index];\\n    }\\n    switch (start) {\\n      case 0: return func.call(this, rest);\\n      case 1: return func.call(this, args[0], rest);\\n      case 2: return func.call(this, args[0], args[1], rest);\\n    }\\n    var otherArgs = Array(start + 1);\\n    index = -1;\\n    while (++index < start) {\\n      otherArgs[index] = args[index];\\n    }\\n    otherArgs[start] = rest;\\n    return func.apply(this, otherArgs);\\n  };\\n}\\n\\nmodule.exports = restParam;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/function/restParam.js\\n ** module id = 218\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _Symbol = require(\\"babel-runtime/core-js/symbol\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _lodashCollectionIncludes = require(\\"lodash/collection/includes\\");\\n\\nvar _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes);\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _libRenamer = require(\\"./lib/renamer\\");\\n\\nvar _libRenamer2 = _interopRequireDefault(_libRenamer);\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _lodashObjectDefaults = require(\\"lodash/object/defaults\\");\\n\\nvar _lodashObjectDefaults2 = _interopRequireDefault(_lodashObjectDefaults);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _binding = require(\\"./binding\\");\\n\\nvar _binding2 = _interopRequireDefault(_binding);\\n\\nvar _globals = require(\\"globals\\");\\n\\nvar _globals2 = _interopRequireDefault(_globals);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n//\\n\\n/*:: import type NodePath from \\"../path\\";*/var CACHE_SINGLE_KEY = _Symbol();\\nvar CACHE_MULTIPLE_KEY = _Symbol();\\n\\n/**\\n * To avoid creating a new Scope instance for each traversal, we maintain a cache on the\\n * node itself containing all scopes it has been associated with.\\n *\\n * We also optimise for the case of there being only a single scope associated with a node.\\n */\\n\\nfunction getCache(node, parentScope, self) {\\n  var singleCache = node[CACHE_SINGLE_KEY];\\n\\n  if (singleCache) {\\n    // we\'ve only ever associated one scope with this node so let\'s check it\\n    if (matchesParent(singleCache, parentScope)) {\\n      return singleCache;\\n    }\\n  } else if (!node[CACHE_MULTIPLE_KEY]) {\\n    // no scope has ever been associated with this node\\n    node[CACHE_SINGLE_KEY] = self;\\n    return;\\n  }\\n\\n  // looks like we have either a single scope association that was never matched or\\n  // multiple assocations, let\'s find the right one!\\n  return getCacheMultiple(node, parentScope, self, singleCache);\\n}\\n\\nfunction matchesParent(scope, parentScope) {\\n  if (scope.parent === parentScope) {\\n    return true;\\n  }\\n}\\n\\nfunction getCacheMultiple(node, parentScope, self, singleCache) {\\n  var scopes /*: Array<Scope>*/ = node[CACHE_MULTIPLE_KEY] = node[CACHE_MULTIPLE_KEY] || [];\\n\\n  if (singleCache) {\\n    // we have a scope assocation miss so push it onto our scopes\\n    scopes.push(singleCache);\\n    node[CACHE_SINGLE_KEY] = null;\\n  }\\n\\n  // loop through and check each scope to see if it matches our parent\\n  for (var _iterator = scopes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var scope = _ref;\\n\\n    if (matchesParent(scope, parentScope)) return scope;\\n  }\\n\\n  scopes.push(self);\\n}\\n\\n//\\n\\nvar collectorVisitor = {\\n  For: function For(path) {\\n    for (var _iterator2 = (t.FOR_INIT_KEYS /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var key = _ref2;\\n\\n      var declar = path.get(key);\\n      if (declar.isVar()) path.scope.getFunctionParent().registerBinding(\\"var\\", declar);\\n    }\\n  },\\n\\n  Declaration: function Declaration(path) {\\n    // delegate block scope handling to the `blockVariableVisitor`\\n    if (path.isBlockScoped()) return;\\n\\n    // this will be hit again once we traverse into it after this iteration\\n    if (path.isExportDeclaration() && path.get(\\"declaration\\").isDeclaration()) return;\\n\\n    // we\'ve ran into a declaration!\\n    path.scope.getFunctionParent().registerDeclaration(path);\\n  },\\n\\n  ReferencedIdentifier: function ReferencedIdentifier(path, state) {\\n    state.references.push(path);\\n  },\\n\\n  ForXStatement: function ForXStatement(path, state) {\\n    var left = path.get(\\"left\\");\\n    if (left.isPattern() || left.isIdentifier()) {\\n      state.constantViolations.push(left);\\n    }\\n  },\\n\\n  ExportDeclaration: {\\n    exit: function exit(_ref20) {\\n      var node = _ref20.node;\\n      var scope = _ref20.scope;\\n\\n      var declar = node.declaration;\\n      if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) {\\n        var _id = declar.id;\\n        if (!_id) return;\\n\\n        var binding = scope.getBinding(_id.name);\\n        if (binding) binding.reference();\\n      } else if (t.isVariableDeclaration(declar)) {\\n        for (var _iterator3 = (declar.declarations /*: Array<Object>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n          var _ref3;\\n\\n          if (_isArray3) {\\n            if (_i3 >= _iterator3.length) break;\\n            _ref3 = _iterator3[_i3++];\\n          } else {\\n            _i3 = _iterator3.next();\\n            if (_i3.done) break;\\n            _ref3 = _i3.value;\\n          }\\n\\n          var decl = _ref3;\\n\\n          var ids = t.getBindingIdentifiers(decl);\\n          for (var _name in ids) {\\n            var binding = scope.getBinding(_name);\\n            if (binding) binding.reference();\\n          }\\n        }\\n      }\\n    }\\n  },\\n\\n  LabeledStatement: function LabeledStatement(path) {\\n    path.scope.getProgramParent().addGlobal(path.node);\\n    path.scope.getBlockParent().registerDeclaration(path);\\n  },\\n\\n  AssignmentExpression: function AssignmentExpression(path, state) {\\n    state.assignments.push(path);\\n  },\\n\\n  UpdateExpression: function UpdateExpression(path, state) {\\n    state.constantViolations.push(path.get(\\"argument\\"));\\n  },\\n\\n  UnaryExpression: function UnaryExpression(path, state) {\\n    if (path.node.operator === \\"delete\\") {\\n      state.constantViolations.push(path.get(\\"argument\\"));\\n    }\\n  },\\n\\n  BlockScoped: function BlockScoped(path) {\\n    var scope = path.scope;\\n    if (scope.path === path) scope = scope.parent;\\n    scope.getBlockParent().registerDeclaration(path);\\n  },\\n\\n  ClassDeclaration: function ClassDeclaration(path) {\\n    var id = path.node.id;\\n    if (!id) return;\\n\\n    var name = id.name;\\n    path.scope.bindings[name] = path.scope.getBinding(name);\\n  },\\n\\n  Block: function Block(path) {\\n    var paths = path.get(\\"body\\");\\n    for (var _iterator4 = (paths /*: Array*/), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n      var _ref4;\\n\\n      if (_isArray4) {\\n        if (_i4 >= _iterator4.length) break;\\n        _ref4 = _iterator4[_i4++];\\n      } else {\\n        _i4 = _iterator4.next();\\n        if (_i4.done) break;\\n        _ref4 = _i4.value;\\n      }\\n\\n      var bodyPath = _ref4;\\n\\n      if (bodyPath.isFunctionDeclaration()) {\\n        path.scope.getBlockParent().registerDeclaration(bodyPath);\\n      }\\n    }\\n  }\\n};\\n\\nvar uid = 0;\\n\\nvar Scope = (function () {\\n\\n  /**\\n   * This searches the current \\"scope\\" and collects all references/bindings\\n   * within.\\n   */\\n\\n  function Scope(path /*: NodePath*/, parentScope /*:: ?: Scope*/) {\\n    _classCallCheck(this, Scope);\\n\\n    if (parentScope && parentScope.block === path.node) {\\n      return parentScope;\\n    }\\n\\n    var cached = getCache(path.node, parentScope, this);\\n    if (cached) return cached;\\n\\n    this.uid = uid++;\\n    this.parent = parentScope;\\n    this.hub = path.hub;\\n\\n    this.parentBlock = path.parent;\\n    this.block = path.node;\\n    this.path = path;\\n  }\\n\\n  /**\\n   * Globals.\\n   */\\n\\n  /**\\n   * Traverse node with current scope and path.\\n   */\\n\\n  Scope.prototype.traverse = function traverse(node /*: Object*/, opts /*: Object*/, state /*:: ?*/) {\\n    _index2[\\"default\\"](node, opts, this, state, this.path);\\n  };\\n\\n  /**\\n   * Generate a unique identifier and add it to the current scope.\\n   */\\n\\n  Scope.prototype.generateDeclaredUidIdentifier = function generateDeclaredUidIdentifier() {\\n    var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? \\"temp\\" : arguments[0];\\n\\n    var id = this.generateUidIdentifier(name);\\n    this.push({ id: id });\\n    return id;\\n  };\\n\\n  /**\\n   * Generate a unique identifier.\\n   */\\n\\n  Scope.prototype.generateUidIdentifier = function generateUidIdentifier() {\\n    var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? \\"temp\\" : arguments[0];\\n\\n    return t.identifier(this.generateUid(name));\\n  };\\n\\n  /**\\n   * Generate a unique `_id1` binding.\\n   */\\n\\n  Scope.prototype.generateUid = function generateUid() {\\n    var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? \\"temp\\" : arguments[0];\\n\\n    name = t.toIdentifier(name).replace(/^_+/, \\"\\").replace(/[0-9]+$/g, \\"\\");\\n\\n    var uid = undefined;\\n    var i = 0;\\n    do {\\n      uid = this._generateUid(name, i);\\n      i++;\\n    } while (this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid));\\n\\n    var program = this.getProgramParent();\\n    program.references[uid] = true;\\n    program.uids[uid] = true;\\n\\n    return uid;\\n  };\\n\\n  /**\\n   * Generate an `_id1`.\\n   */\\n\\n  Scope.prototype._generateUid = function _generateUid(name, i) {\\n    var id = name;\\n    if (i > 1) id += i;\\n    return \\"_\\" + id;\\n  };\\n\\n  /**\\n   * Generate a unique identifier based on a node.\\n   */\\n\\n  Scope.prototype.generateUidIdentifierBasedOnNode = function generateUidIdentifierBasedOnNode(parent /*: Object*/, defaultName /*:: ?: String*/) /*:  Object*/ {\\n    var node = parent;\\n\\n    if (t.isAssignmentExpression(parent)) {\\n      node = parent.left;\\n    } else if (t.isVariableDeclarator(parent)) {\\n      node = parent.id;\\n    } else if (t.isObjectProperty(node) || t.isObjectMethod(node)) {\\n      node = node.key;\\n    }\\n\\n    var parts = [];\\n\\n    var add = function add(node) {\\n      if (t.isModuleDeclaration(node)) {\\n        if (node.source) {\\n          add(node.source);\\n        } else if (node.specifiers && node.specifiers.length) {\\n          for (var _iterator5 = (node.specifiers /*: Array*/), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n            var _ref5;\\n\\n            if (_isArray5) {\\n              if (_i5 >= _iterator5.length) break;\\n              _ref5 = _iterator5[_i5++];\\n            } else {\\n              _i5 = _iterator5.next();\\n              if (_i5.done) break;\\n              _ref5 = _i5.value;\\n            }\\n\\n            var specifier = _ref5;\\n\\n            add(specifier);\\n          }\\n        } else if (node.declaration) {\\n          add(node.declaration);\\n        }\\n      } else if (t.isModuleSpecifier(node)) {\\n        add(node.local);\\n      } else if (t.isMemberExpression(node)) {\\n        add(node.object);\\n        add(node.property);\\n      } else if (t.isIdentifier(node)) {\\n        parts.push(node.name);\\n      } else if (t.isLiteral(node)) {\\n        parts.push(node.value);\\n      } else if (t.isCallExpression(node)) {\\n        add(node.callee);\\n      } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) {\\n        for (var _iterator6 = (node.properties /*: Array*/), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) {\\n          var _ref6;\\n\\n          if (_isArray6) {\\n            if (_i6 >= _iterator6.length) break;\\n            _ref6 = _iterator6[_i6++];\\n          } else {\\n            _i6 = _iterator6.next();\\n            if (_i6.done) break;\\n            _ref6 = _i6.value;\\n          }\\n\\n          var prop = _ref6;\\n\\n          add(prop.key || prop.argument);\\n        }\\n      }\\n    };\\n\\n    add(node);\\n\\n    var id = parts.join(\\"$\\");\\n    id = id.replace(/^_/, \\"\\") || defaultName || \\"ref\\";\\n\\n    return this.generateUidIdentifier(id.slice(0, 20));\\n  };\\n\\n  /**\\n   * Determine whether evaluating the specific input `node` is a consequenceless reference. ie.\\n   * evaluating it wont result in potentially arbitrary code from being ran. The following are\\n   * whitelisted and determined not to cause side effects:\\n   *\\n   *  - `this` expressions\\n   *  - `super` expressions\\n   *  - Bound identifiers\\n   */\\n\\n  Scope.prototype.isStatic = function isStatic(node /*: Object*/) /*: boolean*/ {\\n    if (t.isThisExpression(node) || t.isSuper(node)) {\\n      return true;\\n    }\\n\\n    if (t.isIdentifier(node)) {\\n      var binding = this.getBinding(node.name);\\n      if (binding) {\\n        return binding.constant;\\n      } else {\\n        return this.hasBinding(node.name);\\n      }\\n    }\\n\\n    return false;\\n  };\\n\\n  /**\\n   * Possibly generate a memoised identifier if it is not static and has consequences.\\n   */\\n\\n  Scope.prototype.maybeGenerateMemoised = function maybeGenerateMemoised(node /*: Object*/, dontPush /*:: ?: boolean*/) /*: ?Object*/ {\\n    if (this.isStatic(node)) {\\n      return null;\\n    } else {\\n      var _id2 = this.generateUidIdentifierBasedOnNode(node);\\n      if (!dontPush) this.push({ id: _id2 });\\n      return _id2;\\n    }\\n  };\\n\\n  Scope.prototype.checkBlockScopedCollisions = function checkBlockScopedCollisions(local, kind /*: string*/, name /*: string*/, id /*: Object*/) {\\n    // ignore parameters\\n    if (kind === \\"param\\") return;\\n\\n    // ignore hoisted functions if there\'s also a local let\\n    if (kind === \\"hoisted\\" && local.kind === \\"let\\") return;\\n\\n    var duplicate = false;\\n\\n    // don\'t allow duplicate bindings to exist alongside\\n    if (!duplicate) duplicate = kind === \\"let\\" || local.kind === \\"let\\" || local.kind === \\"const\\" || local.kind === \\"module\\";\\n\\n    // don\'t allow a local of param with a kind of let\\n    if (!duplicate) duplicate = local.kind === \\"param\\" && (kind === \\"let\\" || kind === \\"const\\");\\n\\n    if (duplicate) {\\n      throw this.hub.file.buildCodeFrameError(id, messages.get(\\"scopeDuplicateDeclaration\\", name), TypeError);\\n    }\\n  };\\n\\n  Scope.prototype.rename = function rename(oldName /*: string*/, newName /*: string*/, block /*:: ?*/) {\\n    var binding = this.getBinding(oldName);\\n    if (binding) {\\n      newName = newName || this.generateUidIdentifier(oldName).name;\\n      return new _libRenamer2[\\"default\\"](binding, oldName, newName).rename(block);\\n    }\\n  };\\n\\n  Scope.prototype._renameFromMap = function _renameFromMap(map, oldName, newName, value) {\\n    if (map[oldName]) {\\n      map[newName] = value;\\n      map[oldName] = null;\\n    }\\n  };\\n\\n  Scope.prototype.dump = function dump() {\\n    var sep = _repeating2[\\"default\\"](\\"-\\", 60);\\n    console.log(sep);\\n    var scope = this;\\n    do {\\n      console.log(\\"#\\", scope.block.type);\\n      for (var _name2 in scope.bindings) {\\n        var binding = scope.bindings[_name2];\\n        console.log(\\" -\\", _name2, {\\n          constant: binding.constant,\\n          references: binding.references,\\n          violations: binding.constantViolations.length,\\n          kind: binding.kind\\n        });\\n      }\\n    } while (scope = scope.parent);\\n    console.log(sep);\\n  };\\n\\n  Scope.prototype.toArray = function toArray(node /*: Object*/, i /*:: ?: number*/) {\\n    var file = this.hub.file;\\n\\n    if (t.isIdentifier(node)) {\\n      var binding = this.getBinding(node.name);\\n      if (binding && binding.constant && binding.path.isGenericType(\\"Array\\")) return node;\\n    }\\n\\n    if (t.isArrayExpression(node)) {\\n      return node;\\n    }\\n\\n    if (t.isIdentifier(node, { name: \\"arguments\\" })) {\\n      return t.callExpression(t.memberExpression(t.memberExpression(t.memberExpression(t.identifier(\\"Array\\"), t.identifier(\\"prototype\\")), t.identifier(\\"slice\\")), t.identifier(\\"call\\")), [node]);\\n    }\\n\\n    var helperName = \\"toArray\\";\\n    var args = [node];\\n    if (i === true) {\\n      helperName = \\"toConsumableArray\\";\\n    } else if (i) {\\n      args.push(t.numericLiteral(i));\\n      helperName = \\"slicedToArray\\";\\n      // TODO if (this.hub.file.isLoose(\\"es6.forOf\\")) helperName += \\"-loose\\";\\n    }\\n    return t.callExpression(file.addHelper(helperName), args);\\n  };\\n\\n  Scope.prototype.registerDeclaration = function registerDeclaration(path /*: NodePath*/) {\\n    if (path.isLabeledStatement()) {\\n      this.registerBinding(\\"label\\", path);\\n    } else if (path.isFunctionDeclaration()) {\\n      this.registerBinding(\\"hoisted\\", path.get(\\"id\\"), path);\\n    } else if (path.isVariableDeclaration()) {\\n      var declarations = path.get(\\"declarations\\");\\n      for (var _iterator7 = (declarations /*: Array*/), _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _getIterator(_iterator7);;) {\\n        var _ref7;\\n\\n        if (_isArray7) {\\n          if (_i7 >= _iterator7.length) break;\\n          _ref7 = _iterator7[_i7++];\\n        } else {\\n          _i7 = _iterator7.next();\\n          if (_i7.done) break;\\n          _ref7 = _i7.value;\\n        }\\n\\n        var declar = _ref7;\\n\\n        this.registerBinding(path.node.kind, declar);\\n      }\\n    } else if (path.isClassDeclaration()) {\\n      this.registerBinding(\\"let\\", path);\\n    } else if (path.isImportDeclaration()) {\\n      var specifiers = path.get(\\"specifiers\\");\\n      for (var _iterator8 = (specifiers /*: Array*/), _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _getIterator(_iterator8);;) {\\n        var _ref8;\\n\\n        if (_isArray8) {\\n          if (_i8 >= _iterator8.length) break;\\n          _ref8 = _iterator8[_i8++];\\n        } else {\\n          _i8 = _iterator8.next();\\n          if (_i8.done) break;\\n          _ref8 = _i8.value;\\n        }\\n\\n        var specifier = _ref8;\\n\\n        this.registerBinding(\\"module\\", specifier);\\n      }\\n    } else if (path.isExportDeclaration()) {\\n      var declar = path.get(\\"declaration\\");\\n      if (declar.isClassDeclaration() || declar.isFunctionDeclaration() || declar.isVariableDeclaration()) {\\n        this.registerDeclaration(declar);\\n      }\\n    } else {\\n      this.registerBinding(\\"unknown\\", path);\\n    }\\n  };\\n\\n  Scope.prototype.buildUndefinedNode = function buildUndefinedNode() {\\n    if (this.hasBinding(\\"undefined\\")) {\\n      return t.unaryExpression(\\"void\\", t.numericLiteral(0), true);\\n    } else {\\n      return t.identifier(\\"undefined\\");\\n    }\\n  };\\n\\n  Scope.prototype.registerConstantViolation = function registerConstantViolation(path /*: NodePath*/) {\\n    var ids = path.getBindingIdentifiers();\\n    for (var _name3 in ids) {\\n      var binding = this.getBinding(_name3);\\n      if (binding) binding.reassign(path);\\n    }\\n  };\\n\\n  Scope.prototype.registerBinding = function registerBinding(kind /*: string*/, path /*: NodePath*/) {\\n    var bindingPath = arguments.length <= 2 || arguments[2] === undefined ? path : arguments[2];\\n    return (function () {\\n      if (!kind) throw new ReferenceError(\\"no `kind`\\");\\n\\n      if (path.isVariableDeclaration()) {\\n        var declarators /*: Array<NodePath>*/ = path.get(\\"declarations\\");\\n        for (var _iterator9 = declarators, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _getIterator(_iterator9);;) {\\n          var _ref9;\\n\\n          if (_isArray9) {\\n            if (_i9 >= _iterator9.length) break;\\n            _ref9 = _iterator9[_i9++];\\n          } else {\\n            _i9 = _iterator9.next();\\n            if (_i9.done) break;\\n            _ref9 = _i9.value;\\n          }\\n\\n          var declar = _ref9;\\n\\n          this.registerBinding(kind, declar);\\n        }\\n        return;\\n      }\\n\\n      var parent = this.getProgramParent();\\n      var ids = path.getBindingIdentifiers(true);\\n\\n      for (var _name4 in ids) {\\n        for (var _iterator10 = (ids[_name4] /*: Array<Object>*/), _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _getIterator(_iterator10);;) {\\n          var _ref10;\\n\\n          if (_isArray10) {\\n            if (_i10 >= _iterator10.length) break;\\n            _ref10 = _iterator10[_i10++];\\n          } else {\\n            _i10 = _iterator10.next();\\n            if (_i10.done) break;\\n            _ref10 = _i10.value;\\n          }\\n\\n          var _id3 = _ref10;\\n\\n          var local = this.getOwnBinding(_name4);\\n          if (local) {\\n            // same identifier so continue safely as we\'re likely trying to register it\\n            // multiple times\\n            if (local.identifier === _id3) continue;\\n\\n            this.checkBlockScopedCollisions(local, kind, _name4, _id3);\\n          }\\n\\n          parent.references[_name4] = true;\\n\\n          this.bindings[_name4] = new _binding2[\\"default\\"]({\\n            identifier: _id3,\\n            existing: local,\\n            scope: this,\\n            path: bindingPath,\\n            kind: kind\\n          });\\n        }\\n      }\\n    }).apply(this, arguments);\\n  };\\n\\n  Scope.prototype.addGlobal = function addGlobal(node /*: Object*/) {\\n    this.globals[node.name] = node;\\n  };\\n\\n  Scope.prototype.hasUid = function hasUid(name) /*: boolean*/ {\\n    var scope = this;\\n\\n    do {\\n      if (scope.uids[name]) return true;\\n    } while (scope = scope.parent);\\n\\n    return false;\\n  };\\n\\n  Scope.prototype.hasGlobal = function hasGlobal(name /*: string*/) /*: boolean*/ {\\n    var scope = this;\\n\\n    do {\\n      if (scope.globals[name]) return true;\\n    } while (scope = scope.parent);\\n\\n    return false;\\n  };\\n\\n  Scope.prototype.hasReference = function hasReference(name /*: string*/) /*: boolean*/ {\\n    var scope = this;\\n\\n    do {\\n      if (scope.references[name]) return true;\\n    } while (scope = scope.parent);\\n\\n    return false;\\n  };\\n\\n  Scope.prototype.isPure = function isPure(node, constantsOnly /*:: ?: boolean*/) {\\n    if (t.isIdentifier(node)) {\\n      var binding = this.getBinding(node.name);\\n      if (!binding) return false;\\n      if (constantsOnly) return binding.constant;\\n      return true;\\n    } else if (t.isClass(node)) {\\n      if (node.superClass && !this.isPure(node.superClass, constantsOnly)) return false;\\n      return this.isPure(node.body, constantsOnly);\\n    } else if (t.isClassBody(node)) {\\n      for (var _iterator11 = node.body, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _getIterator(_iterator11);;) {\\n        var _ref11;\\n\\n        if (_isArray11) {\\n          if (_i11 >= _iterator11.length) break;\\n          _ref11 = _iterator11[_i11++];\\n        } else {\\n          _i11 = _iterator11.next();\\n          if (_i11.done) break;\\n          _ref11 = _i11.value;\\n        }\\n\\n        var method = _ref11;\\n\\n        if (!this.isPure(method, constantsOnly)) return false;\\n      }\\n      return true;\\n    } else if (t.isBinary(node)) {\\n      return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly);\\n    } else if (t.isArrayExpression(node)) {\\n      for (var _iterator12 = (node.elements /*: Array<Object>*/), _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _getIterator(_iterator12);;) {\\n        var _ref12;\\n\\n        if (_isArray12) {\\n          if (_i12 >= _iterator12.length) break;\\n          _ref12 = _iterator12[_i12++];\\n        } else {\\n          _i12 = _iterator12.next();\\n          if (_i12.done) break;\\n          _ref12 = _i12.value;\\n        }\\n\\n        var elem = _ref12;\\n\\n        if (!this.isPure(elem, constantsOnly)) return false;\\n      }\\n      return true;\\n    } else if (t.isObjectExpression(node)) {\\n      for (var _iterator13 = (node.properties /*: Array<Object>*/), _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _getIterator(_iterator13);;) {\\n        var _ref13;\\n\\n        if (_isArray13) {\\n          if (_i13 >= _iterator13.length) break;\\n          _ref13 = _iterator13[_i13++];\\n        } else {\\n          _i13 = _iterator13.next();\\n          if (_i13.done) break;\\n          _ref13 = _i13.value;\\n        }\\n\\n        var prop = _ref13;\\n\\n        if (!this.isPure(prop, constantsOnly)) return false;\\n      }\\n      return true;\\n    } else if (t.isClassMethod(node)) {\\n      if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\\n      if (node.kind === \\"get\\" || node.kind === \\"set\\") return false;\\n      return true;\\n    } else if (t.isClassProperty(node) || t.isObjectProperty(node)) {\\n      if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\\n      return this.isPure(node.value, constantsOnly);\\n    } else if (t.isUnaryExpression(node)) {\\n      return this.isPure(node.argument, constantsOnly);\\n    } else {\\n      return t.isPureish(node);\\n    }\\n  };\\n\\n  /**\\n   * Set some arbitrary data on the current scope.\\n   */\\n\\n  Scope.prototype.setData = function setData(key, val) {\\n    return this.data[key] = val;\\n  };\\n\\n  /**\\n   * Recursively walk up scope tree looking for the data `key`.\\n   */\\n\\n  Scope.prototype.getData = function getData(key) {\\n    var scope = this;\\n    do {\\n      var data = scope.data[key];\\n      if (data != null) return data;\\n    } while (scope = scope.parent);\\n  };\\n\\n  /**\\n   * Recursively walk up scope tree looking for the data `key` and if it exists,\\n   * remove it.\\n   */\\n\\n  Scope.prototype.removeData = function removeData(key) {\\n    var scope = this;\\n    do {\\n      var data = scope.data[key];\\n      if (data != null) scope.data[key] = null;\\n    } while (scope = scope.parent);\\n  };\\n\\n  Scope.prototype.init = function init() {\\n    if (!this.references) this.crawl();\\n  };\\n\\n  Scope.prototype.crawl = function crawl() {\\n    var path = this.path;\\n\\n    //\\n\\n    this.references = _Object$create(null);\\n    this.bindings = _Object$create(null);\\n    this.globals = _Object$create(null);\\n    this.uids = _Object$create(null);\\n    this.data = _Object$create(null);\\n\\n    // ForStatement - left, init\\n\\n    if (path.isLoop()) {\\n      for (var _iterator14 = (t.FOR_INIT_KEYS /*: Array<string>*/), _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _getIterator(_iterator14);;) {\\n        var _ref14;\\n\\n        if (_isArray14) {\\n          if (_i14 >= _iterator14.length) break;\\n          _ref14 = _iterator14[_i14++];\\n        } else {\\n          _i14 = _iterator14.next();\\n          if (_i14.done) break;\\n          _ref14 = _i14.value;\\n        }\\n\\n        var key = _ref14;\\n\\n        var node = path.get(key);\\n        if (node.isBlockScoped()) this.registerBinding(node.node.kind, node);\\n      }\\n    }\\n\\n    // FunctionExpression - id\\n\\n    if (path.isFunctionExpression() && path.has(\\"id\\")) {\\n      if (!path.get(\\"id\\").node[t.NOT_LOCAL_BINDING]) {\\n        this.registerBinding(\\"local\\", path.get(\\"id\\"), path);\\n      }\\n    }\\n\\n    // Class\\n\\n    if (path.isClassExpression() && path.has(\\"id\\")) {\\n      if (!path.get(\\"id\\").node[t.NOT_LOCAL_BINDING]) {\\n        this.registerBinding(\\"local\\", path);\\n      }\\n    }\\n\\n    // Function - params, rest\\n\\n    if (path.isFunction()) {\\n      var params /*: Array<NodePath>*/ = path.get(\\"params\\");\\n      for (var _iterator15 = params, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _getIterator(_iterator15);;) {\\n        var _ref15;\\n\\n        if (_isArray15) {\\n          if (_i15 >= _iterator15.length) break;\\n          _ref15 = _iterator15[_i15++];\\n        } else {\\n          _i15 = _iterator15.next();\\n          if (_i15.done) break;\\n          _ref15 = _i15.value;\\n        }\\n\\n        var param = _ref15;\\n\\n        this.registerBinding(\\"param\\", param);\\n      }\\n    }\\n\\n    // CatchClause - param\\n\\n    if (path.isCatchClause()) {\\n      this.registerBinding(\\"let\\", path);\\n    }\\n\\n    // Program\\n\\n    var parent = this.getProgramParent();\\n    if (parent.crawling) return;\\n\\n    var state = {\\n      references: [],\\n      constantViolations: [],\\n      assignments: []\\n    };\\n\\n    this.crawling = true;\\n    path.traverse(collectorVisitor, state);\\n    this.crawling = false;\\n\\n    // register assignments\\n    for (var _iterator16 = state.assignments, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _getIterator(_iterator16);;) {\\n      var _ref16;\\n\\n      if (_isArray16) {\\n        if (_i16 >= _iterator16.length) break;\\n        _ref16 = _iterator16[_i16++];\\n      } else {\\n        _i16 = _iterator16.next();\\n        if (_i16.done) break;\\n        _ref16 = _i16.value;\\n      }\\n\\n      var _path = _ref16;\\n\\n      // register undeclared bindings as globals\\n      var ids = _path.getBindingIdentifiers();\\n      var programParent = undefined;\\n      for (var _name5 in ids) {\\n        if (_path.scope.getBinding(_name5)) continue;\\n\\n        programParent = programParent || _path.scope.getProgramParent();\\n        programParent.addGlobal(ids[_name5]);\\n      }\\n\\n      // register as constant violation\\n      _path.scope.registerConstantViolation(_path);\\n    }\\n\\n    // register references\\n    for (var _iterator17 = state.references, _isArray17 = Array.isArray(_iterator17), _i17 = 0, _iterator17 = _isArray17 ? _iterator17 : _getIterator(_iterator17);;) {\\n      var _ref17;\\n\\n      if (_isArray17) {\\n        if (_i17 >= _iterator17.length) break;\\n        _ref17 = _iterator17[_i17++];\\n      } else {\\n        _i17 = _iterator17.next();\\n        if (_i17.done) break;\\n        _ref17 = _i17.value;\\n      }\\n\\n      var ref = _ref17;\\n\\n      var binding = ref.scope.getBinding(ref.node.name);\\n      if (binding) {\\n        binding.reference(ref);\\n      } else {\\n        ref.scope.getProgramParent().addGlobal(ref.node);\\n      }\\n    }\\n\\n    // register constant violations\\n    for (var _iterator18 = state.constantViolations, _isArray18 = Array.isArray(_iterator18), _i18 = 0, _iterator18 = _isArray18 ? _iterator18 : _getIterator(_iterator18);;) {\\n      var _ref18;\\n\\n      if (_isArray18) {\\n        if (_i18 >= _iterator18.length) break;\\n        _ref18 = _iterator18[_i18++];\\n      } else {\\n        _i18 = _iterator18.next();\\n        if (_i18.done) break;\\n        _ref18 = _i18.value;\\n      }\\n\\n      var _path2 = _ref18;\\n\\n      _path2.scope.registerConstantViolation(_path2);\\n    }\\n  };\\n\\n  Scope.prototype.push = function push(opts /*: {\\n                                                id: Object;\\n                                                init: ?Object;\\n                                                unique: ?boolean;\\n                                                _blockHoist: ?number;\\n                                                kind: \\"var\\" | \\"let\\";\\n                                              }*/) {\\n    var path = this.path;\\n\\n    if (!path.isBlockStatement() && !path.isProgram()) {\\n      path = this.getBlockParent().path;\\n    }\\n\\n    if (path.isSwitchStatement()) {\\n      path = this.getFunctionParent().path;\\n    }\\n\\n    if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\\n      t.ensureBlock(path.node);\\n      path = path.get(\\"body\\");\\n    }\\n\\n    var unique = opts.unique;\\n    var kind = opts.kind || \\"var\\";\\n    var blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\\n\\n    var dataKey = \\"declaration:\\" + kind + \\":\\" + blockHoist;\\n    var declarPath = !unique && path.getData(dataKey);\\n\\n    if (!declarPath) {\\n      var declar = t.variableDeclaration(kind, []);\\n      declar._generated = true;\\n      declar._blockHoist = blockHoist;\\n\\n      var _path$unshiftContainer = path.unshiftContainer(\\"body\\", [declar]);\\n\\n      declarPath = _path$unshiftContainer[0];\\n\\n      if (!unique) path.setData(dataKey, declarPath);\\n    }\\n\\n    var declarator = t.variableDeclarator(opts.id, opts.init);\\n    declarPath.node.declarations.push(declarator);\\n    this.registerBinding(kind, declarPath.get(\\"declarations\\").pop());\\n  };\\n\\n  /**\\n   * Walk up to the top of the scope tree and get the `Program`.\\n   */\\n\\n  Scope.prototype.getProgramParent = function getProgramParent() {\\n    var scope = this;\\n    do {\\n      if (scope.path.isProgram()) {\\n        return scope;\\n      }\\n    } while (scope = scope.parent);\\n    throw new Error(\\"We couldn\'t find a Function or Program...\\");\\n  };\\n\\n  /**\\n   * Walk up the scope tree until we hit either a Function or reach the\\n   * very top and hit Program.\\n   */\\n\\n  Scope.prototype.getFunctionParent = function getFunctionParent() {\\n    var scope = this;\\n    do {\\n      if (scope.path.isFunctionParent()) {\\n        return scope;\\n      }\\n    } while (scope = scope.parent);\\n    throw new Error(\\"We couldn\'t find a Function or Program...\\");\\n  };\\n\\n  /**\\n   * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the\\n   * very top and hit Program.\\n   */\\n\\n  Scope.prototype.getBlockParent = function getBlockParent() {\\n    var scope = this;\\n    do {\\n      if (scope.path.isBlockParent()) {\\n        return scope;\\n      }\\n    } while (scope = scope.parent);\\n    throw new Error(\\"We couldn\'t find a BlockStatement, For, Switch, Function, Loop or Program...\\");\\n  };\\n\\n  /**\\n   * Walks the scope tree and gathers **all** bindings.\\n   */\\n\\n  Scope.prototype.getAllBindings = function getAllBindings() /*: Object*/ {\\n    var ids = _Object$create(null);\\n\\n    var scope = this;\\n    do {\\n      _lodashObjectDefaults2[\\"default\\"](ids, scope.bindings);\\n      scope = scope.parent;\\n    } while (scope);\\n\\n    return ids;\\n  };\\n\\n  /**\\n   * Walks the scope tree and gathers all declarations of `kind`.\\n   */\\n\\n  Scope.prototype.getAllBindingsOfKind = function getAllBindingsOfKind() /*: Object*/ {\\n    var ids = _Object$create(null);\\n\\n    for (var _iterator19 = (arguments /*: Array*/), _isArray19 = Array.isArray(_iterator19), _i19 = 0, _iterator19 = _isArray19 ? _iterator19 : _getIterator(_iterator19);;) {\\n      var _ref19;\\n\\n      if (_isArray19) {\\n        if (_i19 >= _iterator19.length) break;\\n        _ref19 = _iterator19[_i19++];\\n      } else {\\n        _i19 = _iterator19.next();\\n        if (_i19.done) break;\\n        _ref19 = _i19.value;\\n      }\\n\\n      var kind = _ref19;\\n\\n      var scope = this;\\n      do {\\n        for (var _name6 in scope.bindings) {\\n          var binding = scope.bindings[_name6];\\n          if (binding.kind === kind) ids[_name6] = binding;\\n        }\\n        scope = scope.parent;\\n      } while (scope);\\n    }\\n\\n    return ids;\\n  };\\n\\n  Scope.prototype.bindingIdentifierEquals = function bindingIdentifierEquals(name /*: string*/, node /*: Object*/) /*: boolean*/ {\\n    return this.getBindingIdentifier(name) === node;\\n  };\\n\\n  Scope.prototype.getBinding = function getBinding(name /*: string*/) {\\n    var scope = this;\\n\\n    do {\\n      var binding = scope.getOwnBinding(name);\\n      if (binding) return binding;\\n    } while (scope = scope.parent);\\n  };\\n\\n  Scope.prototype.getOwnBinding = function getOwnBinding(name /*: string*/) {\\n    return this.bindings[name];\\n  };\\n\\n  Scope.prototype.getBindingIdentifier = function getBindingIdentifier(name /*: string*/) {\\n    var info = this.getBinding(name);\\n    return info && info.identifier;\\n  };\\n\\n  Scope.prototype.getOwnBindingIdentifier = function getOwnBindingIdentifier(name /*: string*/) {\\n    var binding = this.bindings[name];\\n    return binding && binding.identifier;\\n  };\\n\\n  Scope.prototype.hasOwnBinding = function hasOwnBinding(name /*: string*/) {\\n    return !!this.getOwnBinding(name);\\n  };\\n\\n  Scope.prototype.hasBinding = function hasBinding(name /*: string*/, noGlobals /*:: ?*/) {\\n    if (!name) return false;\\n    if (this.hasOwnBinding(name)) return true;\\n    if (this.parentHasBinding(name, noGlobals)) return true;\\n    if (this.hasUid(name)) return true;\\n    if (!noGlobals && _lodashCollectionIncludes2[\\"default\\"](Scope.globals, name)) return true;\\n    if (!noGlobals && _lodashCollectionIncludes2[\\"default\\"](Scope.contextVariables, name)) return true;\\n    return false;\\n  };\\n\\n  Scope.prototype.parentHasBinding = function parentHasBinding(name /*: string*/, noGlobals /*:: ?*/) {\\n    return this.parent && this.parent.hasBinding(name, noGlobals);\\n  };\\n\\n  /**\\n   * Move a binding of `name` to another `scope`.\\n   */\\n\\n  Scope.prototype.moveBindingTo = function moveBindingTo(name, scope) {\\n    var info = this.getBinding(name);\\n    if (info) {\\n      info.scope.removeOwnBinding(name);\\n      info.scope = scope;\\n      scope.bindings[name] = info;\\n    }\\n  };\\n\\n  Scope.prototype.removeOwnBinding = function removeOwnBinding(name /*: string*/) {\\n    delete this.bindings[name];\\n  };\\n\\n  Scope.prototype.removeBinding = function removeBinding(name /*: string*/) {\\n    // clear literal binding\\n    var info = this.getBinding(name);\\n    if (info) {\\n      info.scope.removeOwnBinding(name);\\n    }\\n\\n    // clear uids with this name - https://github.com/babel/babel/issues/2101\\n    var scope = this;\\n    do {\\n      if (scope.uids[name]) {\\n        scope.uids[name] = false;\\n      }\\n    } while (scope = scope.parent);\\n  };\\n\\n  return Scope;\\n})();\\n\\nexports[\\"default\\"] = Scope;\\nmodule.exports = exports[\\"default\\"];\\n\\n/**\\n * Variables available in current context.\\n */\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/scope/index.js\\n ** module id = 219\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/symbol\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/core-js/symbol.js\\n ** module id = 220\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.symbol\');\\nrequire(\'../../modules/es6.object.to-string\');\\nmodule.exports = require(\'../../modules/$.core\').Symbol;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-runtime/~/core-js/library/fn/symbol/index.js\\n ** module id = 221\\n ** module chunks = 0\\n **/","var baseIndexOf = require(\'../internal/baseIndexOf\'),\\n    getLength = require(\'../internal/getLength\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIterateeCall = require(\'../internal/isIterateeCall\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isString = require(\'../lang/isString\'),\\n    values = require(\'../object/values\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeMax = Math.max;\\n\\n/**\\n * Checks if `target` is in `collection` using\\n * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\\n * for equality comparisons. If `fromIndex` is negative, it\'s used as the offset\\n * from the end of `collection`.\\n *\\n * @static\\n * @memberOf _\\n * @alias contains, include\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to search.\\n * @param {*} target The value to search for.\\n * @param {number} [fromIndex=0] The index to search from.\\n * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`.\\n * @returns {boolean} Returns `true` if a matching element is found, else `false`.\\n * @example\\n *\\n * _.includes([1, 2, 3], 1);\\n * // => true\\n *\\n * _.includes([1, 2, 3], 1, 2);\\n * // => false\\n *\\n * _.includes({ \'user\': \'fred\', \'age\': 40 }, \'fred\');\\n * // => true\\n *\\n * _.includes(\'pebbles\', \'eb\');\\n * // => true\\n */\\nfunction includes(collection, target, fromIndex, guard) {\\n  var length = collection ? getLength(collection) : 0;\\n  if (!isLength(length)) {\\n    collection = values(collection);\\n    length = collection.length;\\n  }\\n  if (typeof fromIndex != \'number\' || (guard && isIterateeCall(target, fromIndex, guard))) {\\n    fromIndex = 0;\\n  } else {\\n    fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0);\\n  }\\n  return (typeof collection == \'string\' || !isArray(collection) && isString(collection))\\n    ? (fromIndex <= length && collection.indexOf(target, fromIndex) > -1)\\n    : (!!length && baseIndexOf(collection, target, fromIndex) > -1);\\n}\\n\\nmodule.exports = includes;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/collection/includes.js\\n ** module id = 223\\n ** module chunks = 0\\n **/","var baseValues = require(\'../internal/baseValues\'),\\n    keys = require(\'./keys\');\\n\\n/**\\n * Creates an array of the own enumerable property values of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property values.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.values(new Foo);\\n * // => [1, 2] (iteration order is not guaranteed)\\n *\\n * _.values(\'hi\');\\n * // => [\'h\', \'i\']\\n */\\nfunction values(object) {\\n  return baseValues(object, keys(object));\\n}\\n\\nmodule.exports = values;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/values.js\\n ** module id = 224\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.values` and `_.valuesIn` which creates an\\n * array of `object` property values corresponding to the property names\\n * of `props`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {Array} props The property names to get values for.\\n * @returns {Object} Returns the array of property values.\\n */\\nfunction baseValues(object, props) {\\n  var index = -1,\\n      length = props.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    result[index] = object[props[index]];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseValues;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/baseValues.js\\n ** module id = 225\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar isFinite = require(\'is-finite\');\\n\\nmodule.exports = function (str, n) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string as the first argument\');\\n\\t}\\n\\n\\tif (n < 0 || !isFinite(n)) {\\n\\t\\tthrow new TypeError(\'Expected a finite positive number\');\\n\\t}\\n\\n\\tvar ret = \'\';\\n\\n\\tdo {\\n\\t\\tif (n & 1) {\\n\\t\\t\\tret += str;\\n\\t\\t}\\n\\n\\t\\tstr += str;\\n\\t} while (n = n >> 1);\\n\\n\\treturn ret;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/repeating/index.js\\n ** module id = 226\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar numberIsNan = require(\'number-is-nan\');\\n\\nmodule.exports = Number.isFinite || function (val) {\\n\\treturn !(typeof val !== \'number\' || numberIsNan(val) || val === Infinity || val === -Infinity);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/index.js\\n ** module id = 227\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = Number.isNaN || function (x) {\\n\\treturn x !== x;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/repeating/~/is-finite/~/number-is-nan/index.js\\n ** module id = 228\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _binding = require(\\"../binding\\");\\n\\nvar _binding2 = _interopRequireDefault(_binding);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar renameVisitor = {\\n  ReferencedIdentifier: function ReferencedIdentifier(_ref, state) {\\n    var node = _ref.node;\\n\\n    if (node.name === state.oldName) {\\n      node.name = state.newName;\\n    }\\n  },\\n\\n  Scope: function Scope(path, state) {\\n    if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) {\\n      path.skip();\\n    }\\n  },\\n\\n  \\"AssignmentExpression|Declaration\\": function AssignmentExpressionDeclaration(path, state) {\\n    var ids = path.getOuterBindingIdentifiers();\\n\\n    for (var _name in ids) {\\n      if (_name === state.oldName) ids[_name].name = state.newName;\\n    }\\n  }\\n};\\n\\nvar Renamer = (function () {\\n  function Renamer(binding /*: Binding*/, oldName /*: string*/, newName /*: string*/) {\\n    _classCallCheck(this, Renamer);\\n\\n    this.newName = newName;\\n    this.oldName = oldName;\\n    this.binding = binding;\\n  }\\n\\n  Renamer.prototype.maybeConvertFromExportDeclaration = function maybeConvertFromExportDeclaration(parentDeclar) {\\n    var exportDeclar = parentDeclar.parentPath.isExportDeclaration() && parentDeclar.parentPath;\\n    if (!exportDeclar) return;\\n\\n    // build specifiers that point back to this export declaration\\n    var isDefault = exportDeclar.isExportDefaultDeclaration();\\n\\n    if (isDefault && (parentDeclar.isFunctionDeclaration() || parentDeclar.isClassDeclaration()) && !parentDeclar.node.id) {\\n      // Ensure that default class and function exports have a name so they have a identifier to\\n      // reference from the export specifier list.\\n      parentDeclar.node.id = parentDeclar.scope.generateUidIdentifier(\\"default\\");\\n    }\\n\\n    var bindingIdentifiers = parentDeclar.getOuterBindingIdentifiers();\\n    var specifiers = [];\\n\\n    for (var _name2 in bindingIdentifiers) {\\n      var localName = _name2 === this.oldName ? this.newName : _name2;\\n      var exportedName = isDefault ? \\"default\\" : _name2;\\n      specifiers.push(t.exportSpecifier(t.identifier(localName), t.identifier(exportedName)));\\n    }\\n\\n    var aliasDeclar = t.exportNamedDeclaration(null, specifiers);\\n\\n    // hoist to the top if it\'s a function\\n    if (parentDeclar.isFunctionDeclaration()) {\\n      aliasDeclar._blockHoist = 3;\\n    }\\n\\n    exportDeclar.insertAfter(aliasDeclar);\\n    exportDeclar.replaceWith(parentDeclar.node);\\n  };\\n\\n  Renamer.prototype.maybeConvertFromClassFunctionDeclaration = function maybeConvertFromClassFunctionDeclaration(path) {\\n    return; // TODO\\n\\n    // retain the `name` of a class/function declaration\\n\\n    if (!path.isFunctionDeclaration() && !path.isClassDeclaration()) return;\\n    if (this.binding.kind !== \\"hoisted\\") return;\\n\\n    path.node.id = t.identifier(this.oldName);\\n    path.node._blockHoist = 3;\\n\\n    path.replaceWith(t.variableDeclaration(\\"let\\", [t.variableDeclarator(t.identifier(this.newName), t.toExpression(path.node))]));\\n  };\\n\\n  Renamer.prototype.maybeConvertFromClassFunctionExpression = function maybeConvertFromClassFunctionExpression(path) {\\n    return; // TODO\\n\\n    // retain the `name` of a class/function expression\\n\\n    if (!path.isFunctionExpression() && !path.isClassExpression()) return;\\n    if (this.binding.kind !== \\"local\\") return;\\n\\n    path.node.id = t.identifier(this.oldName);\\n\\n    this.binding.scope.parent.push({\\n      id: t.identifier(this.newName)\\n    });\\n\\n    path.replaceWith(t.assignmentExpression(\\"=\\", t.identifier(this.newName), path.node));\\n  };\\n\\n  Renamer.prototype.rename = function rename(block /*:: ?*/) {\\n    var binding = this.binding;\\n    var oldName = this.oldName;\\n    var newName = this.newName;\\n    var scope = binding.scope;\\n    var path = binding.path;\\n\\n    var parentDeclar = path.find(function (path) {\\n      return path.isDeclaration() || path.isFunctionExpression();\\n    });\\n    if (parentDeclar) {\\n      this.maybeConvertFromExportDeclaration(parentDeclar);\\n    }\\n\\n    scope.traverse(block || scope.block, renameVisitor, this);\\n\\n    if (!block) {\\n      scope.removeOwnBinding(oldName);\\n      scope.bindings[newName] = binding;\\n      this.binding.identifier.name = newName;\\n    }\\n\\n    if (binding.type === \\"hoisted\\") {\\n      // https://github.com/babel/babel/issues/2435\\n      // todo: hoist and convert function to a let\\n    }\\n\\n    if (parentDeclar) {\\n      this.maybeConvertFromClassFunctionDeclaration(parentDeclar);\\n      this.maybeConvertFromClassFunctionExpression(parentDeclar);\\n    }\\n  };\\n\\n  return Renamer;\\n})();\\n\\nexports[\\"default\\"] = Renamer;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/scope/lib/renamer.js\\n ** module id = 229\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\n/**\\n * This class is responsible for a binding inside of a scope.\\n *\\n * It tracks the following:\\n *\\n *  * Node path.\\n *  * Amount of times referenced by other nodes.\\n *  * Paths to nodes that reassign or modify this binding.\\n *  * The kind of binding. (Is it a parameter, declaration etc)\\n */\\n\\n/*:: import type NodePath from \\"../path\\";*/\\nvar Binding = (function () {\\n  function Binding(_ref) {\\n    var existing = _ref.existing;\\n    var identifier = _ref.identifier;\\n    var scope = _ref.scope;\\n    var path = _ref.path;\\n    var kind = _ref.kind;\\n\\n    _classCallCheck(this, Binding);\\n\\n    this.identifier = identifier;\\n    this.scope = scope;\\n    this.path = path;\\n    this.kind = kind;\\n\\n    this.constantViolations = [];\\n    this.constant = true;\\n\\n    this.referencePaths = [];\\n    this.referenced = false;\\n    this.references = 0;\\n\\n    this.clearValue();\\n\\n    if (existing) {\\n      this.constantViolations = [].concat(existing.path, existing.constantViolations, this.constantViolations);\\n    }\\n  }\\n\\n  Binding.prototype.deoptValue = function deoptValue() {\\n    this.clearValue();\\n    this.hasDeoptedValue = true;\\n  };\\n\\n  Binding.prototype.setValue = function setValue(value /*: any*/) {\\n    if (this.hasDeoptedValue) return;\\n    this.hasValue = true;\\n    this.value = value;\\n  };\\n\\n  Binding.prototype.clearValue = function clearValue() {\\n    this.hasDeoptedValue = false;\\n    this.hasValue = false;\\n    this.value = null;\\n  };\\n\\n  /**\\n   * Register a constant violation with the provided `path`.\\n   */\\n\\n  Binding.prototype.reassign = function reassign(path /*: Object*/) {\\n    this.constant = false;\\n    this.constantViolations.push(path);\\n  };\\n\\n  /**\\n   * Increment the amount of references to this binding.\\n   */\\n\\n  Binding.prototype.reference = function reference(path /*: NodePath*/) {\\n    this.referenced = true;\\n    this.references++;\\n    this.referencePaths.push(path);\\n  };\\n\\n  /**\\n   * Decrement the amount of references to this binding.\\n   */\\n\\n  Binding.prototype.dereference = function dereference() {\\n    this.references--;\\n    this.referenced = !!this.references;\\n  };\\n\\n  return Binding;\\n})();\\n\\nexports[\\"default\\"] = Binding;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/scope/binding.js\\n ** module id = 230\\n ** module chunks = 0\\n **/","var assign = require(\'./assign\'),\\n    assignDefaults = require(\'../internal/assignDefaults\'),\\n    createDefaults = require(\'../internal/createDefaults\');\\n\\n/**\\n * Assigns own enumerable properties of source object(s) to the destination\\n * object for all destination properties that resolve to `undefined`. Once a\\n * property is set, additional values of the same property are ignored.\\n *\\n * **Note:** This method mutates `object`.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The destination object.\\n * @param {...Object} [sources] The source objects.\\n * @returns {Object} Returns `object`.\\n * @example\\n *\\n * _.defaults({ \'user\': \'barney\' }, { \'age\': 36 }, { \'user\': \'fred\' });\\n * // => { \'user\': \'barney\', \'age\': 36 }\\n */\\nvar defaults = createDefaults(assign, assignDefaults);\\n\\nmodule.exports = defaults;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/object/defaults.js\\n ** module id = 231\\n ** module chunks = 0\\n **/","/**\\n * Used by `_.defaults` to customize its `_.assign` use.\\n *\\n * @private\\n * @param {*} objectValue The destination object property value.\\n * @param {*} sourceValue The source object property value.\\n * @returns {*} Returns the value to assign to the destination object.\\n */\\nfunction assignDefaults(objectValue, sourceValue) {\\n  return objectValue === undefined ? sourceValue : objectValue;\\n}\\n\\nmodule.exports = assignDefaults;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/assignDefaults.js\\n ** module id = 232\\n ** module chunks = 0\\n **/","var restParam = require(\'../function/restParam\');\\n\\n/**\\n * Creates a `_.defaults` or `_.defaultsDeep` function.\\n *\\n * @private\\n * @param {Function} assigner The function to assign values.\\n * @param {Function} customizer The function to customize assigned values.\\n * @returns {Function} Returns the new defaults function.\\n */\\nfunction createDefaults(assigner, customizer) {\\n  return restParam(function(args) {\\n    var object = args[0];\\n    if (object == null) {\\n      return object;\\n    }\\n    args.push(customizer);\\n    return assigner.apply(undefined, args);\\n  });\\n}\\n\\nmodule.exports = createDefaults;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/lodash/internal/createDefaults.js\\n ** module id = 233\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.get = get;\\nexports.parseArgs = parseArgs;\\n\\nvar _util = require(\\"util\\");\\n\\nvar util = _interopRequireWildcard(_util);\\n\\n/**\\n * Mapping of messages to be used in Babel.\\n * Messages can include $0-style placeholders.\\n */\\n\\nvar MESSAGES = {\\n  tailCallReassignmentDeopt: \\"Function reference has been reassigned, so it will probably be dereferenced, therefore we can\'t optimise this with confidence\\",\\n  classesIllegalBareSuper: \\"Illegal use of bare super\\",\\n  classesIllegalSuperCall: \\"Direct super call is illegal in non-constructor, use super.$1() instead\\",\\n  scopeDuplicateDeclaration: \\"Duplicate declaration $1\\",\\n  settersNoRest: \\"Setters aren\'t allowed to have a rest\\",\\n  noAssignmentsInForHead: \\"No assignments allowed in for-in/of head\\",\\n  expectedMemberExpressionOrIdentifier: \\"Expected type MemberExpression or Identifier\\",\\n  invalidParentForThisNode: \\"We don\'t know how to handle this node within the current parent - please open an issue\\",\\n  readOnly: \\"$1 is read-only\\",\\n  unknownForHead: \\"Unknown node type $1 in ForStatement\\",\\n  didYouMean: \\"Did you mean $1?\\",\\n  codeGeneratorDeopt: \\"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.\\",\\n  missingTemplatesDirectory: \\"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues\\",\\n  unsupportedOutputType: \\"Unsupported output type $1\\",\\n  illegalMethodName: \\"Illegal method name $1\\",\\n  lostTrackNodePath: \\"We lost track of this node\'s position, likely because the AST was directly manipulated\\",\\n\\n  modulesIllegalExportName: \\"Illegal export $1\\",\\n  modulesDuplicateDeclarations: \\"Duplicate module declarations with the same source but in different scopes\\",\\n\\n  undeclaredVariable: \\"Reference to undeclared variable $1\\",\\n  undeclaredVariableType: \\"Referencing a type alias outside of a type annotation\\",\\n  undeclaredVariableSuggestion: \\"Reference to undeclared variable $1 - did you mean $2?\\",\\n\\n  traverseNeedsParent: \\"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.\\",\\n  traverseVerifyRootFunction: \\"You passed `traverse()` a function when it expected a visitor object, are you sure you didn\'t mean `{ enter: Function }`?\\",\\n  traverseVerifyVisitorProperty: \\"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2\\",\\n  traverseVerifyNodeType: \\"You gave us a visitor for the node type $1 but it\'s not a valid type\\",\\n\\n  pluginNotObject: \\"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3\\",\\n  pluginNotFunction: \\"Plugin $2 specified in $1 was expected to return a function but returned $3\\",\\n  pluginUnknown: \\"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4\\",\\n  pluginInvalidProperty: \\"Plugin $2 specified in $1 provided an invalid property of $3\\"\\n};\\n\\nexports.MESSAGES = MESSAGES;\\n/**\\n * Get a message with $0 placeholders replaced by arguments.\\n */\\n\\nfunction get(key /*: string*/) /*: string*/ {\\n  for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\\n    args[_key - 1] = arguments[_key];\\n  }\\n\\n  var msg = MESSAGES[key];\\n  if (!msg) throw new ReferenceError(\\"Unknown message \\" + JSON.stringify(key));\\n\\n  // stringify args\\n  args = parseArgs(args);\\n\\n  // replace $0 placeholders with args\\n  return msg.replace(/\\\\$(\\\\d+)/g, function (str, i) {\\n    return args[i - 1];\\n  });\\n}\\n\\n/**\\n * Stingify arguments to be used inside messages.\\n */\\n\\nfunction parseArgs(args /*: Array<any>*/) /*: Array<string>*/ {\\n  return args.map(function (val) {\\n    if (val != null && val.inspect) {\\n      return val.inspect();\\n    } else {\\n      try {\\n        return JSON.stringify(val) || val + \\"\\";\\n      } catch (e) {\\n        return util.inspect(val);\\n      }\\n    }\\n  });\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-messages/lib/index.js\\n ** module id = 234\\n ** module chunks = 0\\n **/","// Copyright Joyent, Inc. and other Node contributors.\\n//\\n// Permission is hereby granted, free of charge, to any person obtaining a\\n// copy of this software and associated documentation files (the\\n// \\"Software\\"), to deal in the Software without restriction, including\\n// without limitation the rights to use, copy, modify, merge, publish,\\n// distribute, sublicense, and/or sell copies of the Software, and to permit\\n// persons to whom the Software is furnished to do so, subject to the\\n// following conditions:\\n//\\n// The above copyright notice and this permission notice shall be included\\n// in all copies or substantial portions of the Software.\\n//\\n// THE SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\\nvar formatRegExp = /%[sdj%]/g;\\nexports.format = function(f) {\\n  if (!isString(f)) {\\n    var objects = [];\\n    for (var i = 0; i < arguments.length; i++) {\\n      objects.push(inspect(arguments[i]));\\n    }\\n    return objects.join(\' \');\\n  }\\n\\n  var i = 1;\\n  var args = arguments;\\n  var len = args.length;\\n  var str = String(f).replace(formatRegExp, function(x) {\\n    if (x === \'%%\') return \'%\';\\n    if (i >= len) return x;\\n    switch (x) {\\n      case \'%s\': return String(args[i++]);\\n      case \'%d\': return Number(args[i++]);\\n      case \'%j\':\\n        try {\\n          return JSON.stringify(args[i++]);\\n        } catch (_) {\\n          return \'[Circular]\';\\n        }\\n      default:\\n        return x;\\n    }\\n  });\\n  for (var x = args[i]; i < len; x = args[++i]) {\\n    if (isNull(x) || !isObject(x)) {\\n      str += \' \' + x;\\n    } else {\\n      str += \' \' + inspect(x);\\n    }\\n  }\\n  return str;\\n};\\n\\n\\n// Mark that a method should not be used.\\n// Returns a modified function which warns once by default.\\n// If --no-deprecation is set, then it is a no-op.\\nexports.deprecate = function(fn, msg) {\\n  // Allow for deprecating things in the process of starting up.\\n  if (isUndefined(global.process)) {\\n    return function() {\\n      return exports.deprecate(fn, msg).apply(this, arguments);\\n    };\\n  }\\n\\n  if (process.noDeprecation === true) {\\n    return fn;\\n  }\\n\\n  var warned = false;\\n  function deprecated() {\\n    if (!warned) {\\n      if (process.throwDeprecation) {\\n        throw new Error(msg);\\n      } else if (process.traceDeprecation) {\\n        console.trace(msg);\\n      } else {\\n        console.error(msg);\\n      }\\n      warned = true;\\n    }\\n    return fn.apply(this, arguments);\\n  }\\n\\n  return deprecated;\\n};\\n\\n\\nvar debugs = {};\\nvar debugEnviron;\\nexports.debuglog = function(set) {\\n  if (isUndefined(debugEnviron))\\n    debugEnviron = process.env.NODE_DEBUG || \'\';\\n  set = set.toUpperCase();\\n  if (!debugs[set]) {\\n    if (new RegExp(\'\\\\\\\\b\' + set + \'\\\\\\\\b\', \'i\').test(debugEnviron)) {\\n      var pid = process.pid;\\n      debugs[set] = function() {\\n        var msg = exports.format.apply(exports, arguments);\\n        console.error(\'%s %d: %s\', set, pid, msg);\\n      };\\n    } else {\\n      debugs[set] = function() {};\\n    }\\n  }\\n  return debugs[set];\\n};\\n\\n\\n/**\\n * Echos the value of a value. Trys to print the value out\\n * in the best way possible given the different types.\\n *\\n * @param {Object} obj The object to print out.\\n * @param {Object} opts Optional options object that alters the output.\\n */\\n/* legacy: obj, showHidden, depth, colors*/\\nfunction inspect(obj, opts) {\\n  // default options\\n  var ctx = {\\n    seen: [],\\n    stylize: stylizeNoColor\\n  };\\n  // legacy...\\n  if (arguments.length >= 3) ctx.depth = arguments[2];\\n  if (arguments.length >= 4) ctx.colors = arguments[3];\\n  if (isBoolean(opts)) {\\n    // legacy...\\n    ctx.showHidden = opts;\\n  } else if (opts) {\\n    // got an \\"options\\" object\\n    exports._extend(ctx, opts);\\n  }\\n  // set default options\\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\\n  if (isUndefined(ctx.colors)) ctx.colors = false;\\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\\n  return formatValue(ctx, obj, ctx.depth);\\n}\\nexports.inspect = inspect;\\n\\n\\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\\ninspect.colors = {\\n  \'bold\' : [1, 22],\\n  \'italic\' : [3, 23],\\n  \'underline\' : [4, 24],\\n  \'inverse\' : [7, 27],\\n  \'white\' : [37, 39],\\n  \'grey\' : [90, 39],\\n  \'black\' : [30, 39],\\n  \'blue\' : [34, 39],\\n  \'cyan\' : [36, 39],\\n  \'green\' : [32, 39],\\n  \'magenta\' : [35, 39],\\n  \'red\' : [31, 39],\\n  \'yellow\' : [33, 39]\\n};\\n\\n// Don\'t use \'blue\' not visible on cmd.exe\\ninspect.styles = {\\n  \'special\': \'cyan\',\\n  \'number\': \'yellow\',\\n  \'boolean\': \'yellow\',\\n  \'undefined\': \'grey\',\\n  \'null\': \'bold\',\\n  \'string\': \'green\',\\n  \'date\': \'magenta\',\\n  // \\"name\\": intentionally not styling\\n  \'regexp\': \'red\'\\n};\\n\\n\\nfunction stylizeWithColor(str, styleType) {\\n  var style = inspect.styles[styleType];\\n\\n  if (style) {\\n    return \'\\\\u001b[\' + inspect.colors[style][0] + \'m\' + str +\\n           \'\\\\u001b[\' + inspect.colors[style][1] + \'m\';\\n  } else {\\n    return str;\\n  }\\n}\\n\\n\\nfunction stylizeNoColor(str, styleType) {\\n  return str;\\n}\\n\\n\\nfunction arrayToHash(array) {\\n  var hash = {};\\n\\n  array.forEach(function(val, idx) {\\n    hash[val] = true;\\n  });\\n\\n  return hash;\\n}\\n\\n\\nfunction formatValue(ctx, value, recurseTimes) {\\n  // Provide a hook for user-specified inspect functions.\\n  // Check that value is an object with an inspect function on it\\n  if (ctx.customInspect &&\\n      value &&\\n      isFunction(value.inspect) &&\\n      // Filter out the util module, it\'s inspect function is special\\n      value.inspect !== exports.inspect &&\\n      // Also filter out any prototype objects using the circular check.\\n      !(value.constructor && value.constructor.prototype === value)) {\\n    var ret = value.inspect(recurseTimes, ctx);\\n    if (!isString(ret)) {\\n      ret = formatValue(ctx, ret, recurseTimes);\\n    }\\n    return ret;\\n  }\\n\\n  // Primitive types cannot have properties\\n  var primitive = formatPrimitive(ctx, value);\\n  if (primitive) {\\n    return primitive;\\n  }\\n\\n  // Look up the keys of the object.\\n  var keys = Object.keys(value);\\n  var visibleKeys = arrayToHash(keys);\\n\\n  if (ctx.showHidden) {\\n    keys = Object.getOwnPropertyNames(value);\\n  }\\n\\n  // IE doesn\'t make error fields non-enumerable\\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\\n  if (isError(value)\\n      && (keys.indexOf(\'message\') >= 0 || keys.indexOf(\'description\') >= 0)) {\\n    return formatError(value);\\n  }\\n\\n  // Some type of object without properties can be shortcutted.\\n  if (keys.length === 0) {\\n    if (isFunction(value)) {\\n      var name = value.name ? \': \' + value.name : \'\';\\n      return ctx.stylize(\'[Function\' + name + \']\', \'special\');\\n    }\\n    if (isRegExp(value)) {\\n      return ctx.stylize(RegExp.prototype.toString.call(value), \'regexp\');\\n    }\\n    if (isDate(value)) {\\n      return ctx.stylize(Date.prototype.toString.call(value), \'date\');\\n    }\\n    if (isError(value)) {\\n      return formatError(value);\\n    }\\n  }\\n\\n  var base = \'\', array = false, braces = [\'{\', \'}\'];\\n\\n  // Make Array say that they are Array\\n  if (isArray(value)) {\\n    array = true;\\n    braces = [\'[\', \']\'];\\n  }\\n\\n  // Make functions say that they are functions\\n  if (isFunction(value)) {\\n    var n = value.name ? \': \' + value.name : \'\';\\n    base = \' [Function\' + n + \']\';\\n  }\\n\\n  // Make RegExps say that they are RegExps\\n  if (isRegExp(value)) {\\n    base = \' \' + RegExp.prototype.toString.call(value);\\n  }\\n\\n  // Make dates with properties first say the date\\n  if (isDate(value)) {\\n    base = \' \' + Date.prototype.toUTCString.call(value);\\n  }\\n\\n  // Make error with message first say the error\\n  if (isError(value)) {\\n    base = \' \' + formatError(value);\\n  }\\n\\n  if (keys.length === 0 && (!array || value.length == 0)) {\\n    return braces[0] + base + braces[1];\\n  }\\n\\n  if (recurseTimes < 0) {\\n    if (isRegExp(value)) {\\n      return ctx.stylize(RegExp.prototype.toString.call(value), \'regexp\');\\n    } else {\\n      return ctx.stylize(\'[Object]\', \'special\');\\n    }\\n  }\\n\\n  ctx.seen.push(value);\\n\\n  var output;\\n  if (array) {\\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\\n  } else {\\n    output = keys.map(function(key) {\\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\\n    });\\n  }\\n\\n  ctx.seen.pop();\\n\\n  return reduceToSingleString(output, base, braces);\\n}\\n\\n\\nfunction formatPrimitive(ctx, value) {\\n  if (isUndefined(value))\\n    return ctx.stylize(\'undefined\', \'undefined\');\\n  if (isString(value)) {\\n    var simple = \'\\\\\'\' + JSON.stringify(value).replace(/^\\"|\\"$/g, \'\')\\n                                             .replace(/\'/g, \\"\\\\\\\\\'\\")\\n                                             .replace(/\\\\\\\\\\"/g, \'\\"\') + \'\\\\\'\';\\n    return ctx.stylize(simple, \'string\');\\n  }\\n  if (isNumber(value))\\n    return ctx.stylize(\'\' + value, \'number\');\\n  if (isBoolean(value))\\n    return ctx.stylize(\'\' + value, \'boolean\');\\n  // For some reason typeof null is \\"object\\", so special case here.\\n  if (isNull(value))\\n    return ctx.stylize(\'null\', \'null\');\\n}\\n\\n\\nfunction formatError(value) {\\n  return \'[\' + Error.prototype.toString.call(value) + \']\';\\n}\\n\\n\\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\\n  var output = [];\\n  for (var i = 0, l = value.length; i < l; ++i) {\\n    if (hasOwnProperty(value, String(i))) {\\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\\n          String(i), true));\\n    } else {\\n      output.push(\'\');\\n    }\\n  }\\n  keys.forEach(function(key) {\\n    if (!key.match(/^\\\\d+$/)) {\\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\\n          key, true));\\n    }\\n  });\\n  return output;\\n}\\n\\n\\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\\n  var name, str, desc;\\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\\n  if (desc.get) {\\n    if (desc.set) {\\n      str = ctx.stylize(\'[Getter/Setter]\', \'special\');\\n    } else {\\n      str = ctx.stylize(\'[Getter]\', \'special\');\\n    }\\n  } else {\\n    if (desc.set) {\\n      str = ctx.stylize(\'[Setter]\', \'special\');\\n    }\\n  }\\n  if (!hasOwnProperty(visibleKeys, key)) {\\n    name = \'[\' + key + \']\';\\n  }\\n  if (!str) {\\n    if (ctx.seen.indexOf(desc.value) < 0) {\\n      if (isNull(recurseTimes)) {\\n        str = formatValue(ctx, desc.value, null);\\n      } else {\\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\\n      }\\n      if (str.indexOf(\'\\\\n\') > -1) {\\n        if (array) {\\n          str = str.split(\'\\\\n\').map(function(line) {\\n            return \'  \' + line;\\n          }).join(\'\\\\n\').substr(2);\\n        } else {\\n          str = \'\\\\n\' + str.split(\'\\\\n\').map(function(line) {\\n            return \'   \' + line;\\n          }).join(\'\\\\n\');\\n        }\\n      }\\n    } else {\\n      str = ctx.stylize(\'[Circular]\', \'special\');\\n    }\\n  }\\n  if (isUndefined(name)) {\\n    if (array && key.match(/^\\\\d+$/)) {\\n      return str;\\n    }\\n    name = JSON.stringify(\'\' + key);\\n    if (name.match(/^\\"([a-zA-Z_][a-zA-Z_0-9]*)\\"$/)) {\\n      name = name.substr(1, name.length - 2);\\n      name = ctx.stylize(name, \'name\');\\n    } else {\\n      name = name.replace(/\'/g, \\"\\\\\\\\\'\\")\\n                 .replace(/\\\\\\\\\\"/g, \'\\"\')\\n                 .replace(/(^\\"|\\"$)/g, \\"\'\\");\\n      name = ctx.stylize(name, \'string\');\\n    }\\n  }\\n\\n  return name + \': \' + str;\\n}\\n\\n\\nfunction reduceToSingleString(output, base, braces) {\\n  var numLinesEst = 0;\\n  var length = output.reduce(function(prev, cur) {\\n    numLinesEst++;\\n    if (cur.indexOf(\'\\\\n\') >= 0) numLinesEst++;\\n    return prev + cur.replace(/\\\\u001b\\\\[\\\\d\\\\d?m/g, \'\').length + 1;\\n  }, 0);\\n\\n  if (length > 60) {\\n    return braces[0] +\\n           (base === \'\' ? \'\' : base + \'\\\\n \') +\\n           \' \' +\\n           output.join(\',\\\\n  \') +\\n           \' \' +\\n           braces[1];\\n  }\\n\\n  return braces[0] + base + \' \' + output.join(\', \') + \' \' + braces[1];\\n}\\n\\n\\n// NOTE: These type checking functions intentionally don\'t use `instanceof`\\n// because it is fragile and can be easily faked with `Object.create()`.\\nfunction isArray(ar) {\\n  return Array.isArray(ar);\\n}\\nexports.isArray = isArray;\\n\\nfunction isBoolean(arg) {\\n  return typeof arg === \'boolean\';\\n}\\nexports.isBoolean = isBoolean;\\n\\nfunction isNull(arg) {\\n  return arg === null;\\n}\\nexports.isNull = isNull;\\n\\nfunction isNullOrUndefined(arg) {\\n  return arg == null;\\n}\\nexports.isNullOrUndefined = isNullOrUndefined;\\n\\nfunction isNumber(arg) {\\n  return typeof arg === \'number\';\\n}\\nexports.isNumber = isNumber;\\n\\nfunction isString(arg) {\\n  return typeof arg === \'string\';\\n}\\nexports.isString = isString;\\n\\nfunction isSymbol(arg) {\\n  return typeof arg === \'symbol\';\\n}\\nexports.isSymbol = isSymbol;\\n\\nfunction isUndefined(arg) {\\n  return arg === void 0;\\n}\\nexports.isUndefined = isUndefined;\\n\\nfunction isRegExp(re) {\\n  return isObject(re) && objectToString(re) === \'[object RegExp]\';\\n}\\nexports.isRegExp = isRegExp;\\n\\nfunction isObject(arg) {\\n  return typeof arg === \'object\' && arg !== null;\\n}\\nexports.isObject = isObject;\\n\\nfunction isDate(d) {\\n  return isObject(d) && objectToString(d) === \'[object Date]\';\\n}\\nexports.isDate = isDate;\\n\\nfunction isError(e) {\\n  return isObject(e) &&\\n      (objectToString(e) === \'[object Error]\' || e instanceof Error);\\n}\\nexports.isError = isError;\\n\\nfunction isFunction(arg) {\\n  return typeof arg === \'function\';\\n}\\nexports.isFunction = isFunction;\\n\\nfunction isPrimitive(arg) {\\n  return arg === null ||\\n         typeof arg === \'boolean\' ||\\n         typeof arg === \'number\' ||\\n         typeof arg === \'string\' ||\\n         typeof arg === \'symbol\' ||  // ES6 symbol\\n         typeof arg === \'undefined\';\\n}\\nexports.isPrimitive = isPrimitive;\\n\\nexports.isBuffer = require(\'./support/isBuffer\');\\n\\nfunction objectToString(o) {\\n  return Object.prototype.toString.call(o);\\n}\\n\\n\\nfunction pad(n) {\\n  return n < 10 ? \'0\' + n.toString(10) : n.toString(10);\\n}\\n\\n\\nvar months = [\'Jan\', \'Feb\', \'Mar\', \'Apr\', \'May\', \'Jun\', \'Jul\', \'Aug\', \'Sep\',\\n              \'Oct\', \'Nov\', \'Dec\'];\\n\\n// 26 Feb 16:19:34\\nfunction timestamp() {\\n  var d = new Date();\\n  var time = [pad(d.getHours()),\\n              pad(d.getMinutes()),\\n              pad(d.getSeconds())].join(\':\');\\n  return [d.getDate(), months[d.getMonth()], time].join(\' \');\\n}\\n\\n\\n// log is just a thin wrapper to console.log that prepends a timestamp\\nexports.log = function() {\\n  console.log(\'%s - %s\', timestamp(), exports.format.apply(exports, arguments));\\n};\\n\\n\\n/**\\n * Inherit the prototype methods from one constructor into another.\\n *\\n * The Function.prototype.inherits from lang.js rewritten as a standalone\\n * function (not on Function.prototype). NOTE: If this file is to be loaded\\n * during bootstrapping this function needs to be rewritten using some native\\n * functions as prototype setup using normal JavaScript does not work as\\n * expected during bootstrapping (see mirror.js in r114903).\\n *\\n * @param {function} ctor Constructor function which needs to inherit the\\n *     prototype.\\n * @param {function} superCtor Constructor function to inherit prototype from.\\n */\\nexports.inherits = require(\'inherits\');\\n\\nexports._extend = function(origin, add) {\\n  // Don\'t do anything if add isn\'t an object\\n  if (!add || !isObject(add)) return origin;\\n\\n  var keys = Object.keys(add);\\n  var i = keys.length;\\n  while (i--) {\\n    origin[keys[i]] = add[keys[i]];\\n  }\\n  return origin;\\n};\\n\\nfunction hasOwnProperty(obj, prop) {\\n  return Object.prototype.hasOwnProperty.call(obj, prop);\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/util/util.js\\n ** module id = 235\\n ** module chunks = 0\\n **/","module.exports = function isBuffer(arg) {\\n  return arg && typeof arg === \'object\'\\n    && typeof arg.copy === \'function\'\\n    && typeof arg.fill === \'function\'\\n    && typeof arg.readUInt8 === \'function\';\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js\\n ** module id = 236\\n ** module chunks = 0\\n **/","if (typeof Object.create === \'function\') {\\n  // implementation from standard node.js \'util\' module\\n  module.exports = function inherits(ctor, superCtor) {\\n    ctor.super_ = superCtor\\n    ctor.prototype = Object.create(superCtor.prototype, {\\n      constructor: {\\n        value: ctor,\\n        enumerable: false,\\n        writable: true,\\n        configurable: true\\n      }\\n    });\\n  };\\n} else {\\n  // old school shim for old browsers\\n  module.exports = function inherits(ctor, superCtor) {\\n    ctor.super_ = superCtor\\n    var TempCtor = function () {}\\n    TempCtor.prototype = superCtor.prototype\\n    ctor.prototype = new TempCtor()\\n    ctor.prototype.constructor = ctor\\n  }\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js\\n ** module id = 237\\n ** module chunks = 0\\n **/","module.exports = require(\'./globals.json\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/globals/index.js\\n ** module id = 238\\n ** module chunks = 0\\n **/","module.exports = {\\n\\t\\"builtin\\": {\\n\\t\\t\\"Array\\": false,\\n\\t\\t\\"ArrayBuffer\\": false,\\n\\t\\t\\"Boolean\\": false,\\n\\t\\t\\"constructor\\": false,\\n\\t\\t\\"DataView\\": false,\\n\\t\\t\\"Date\\": false,\\n\\t\\t\\"decodeURI\\": false,\\n\\t\\t\\"decodeURIComponent\\": false,\\n\\t\\t\\"encodeURI\\": false,\\n\\t\\t\\"encodeURIComponent\\": false,\\n\\t\\t\\"Error\\": false,\\n\\t\\t\\"escape\\": false,\\n\\t\\t\\"eval\\": false,\\n\\t\\t\\"EvalError\\": false,\\n\\t\\t\\"Float32Array\\": false,\\n\\t\\t\\"Float64Array\\": false,\\n\\t\\t\\"Function\\": false,\\n\\t\\t\\"hasOwnProperty\\": false,\\n\\t\\t\\"Infinity\\": false,\\n\\t\\t\\"Int16Array\\": false,\\n\\t\\t\\"Int32Array\\": false,\\n\\t\\t\\"Int8Array\\": false,\\n\\t\\t\\"isFinite\\": false,\\n\\t\\t\\"isNaN\\": false,\\n\\t\\t\\"isPrototypeOf\\": false,\\n\\t\\t\\"JSON\\": false,\\n\\t\\t\\"Map\\": false,\\n\\t\\t\\"Math\\": false,\\n\\t\\t\\"NaN\\": false,\\n\\t\\t\\"Number\\": false,\\n\\t\\t\\"Object\\": false,\\n\\t\\t\\"parseFloat\\": false,\\n\\t\\t\\"parseInt\\": false,\\n\\t\\t\\"Promise\\": false,\\n\\t\\t\\"propertyIsEnumerable\\": false,\\n\\t\\t\\"Proxy\\": false,\\n\\t\\t\\"RangeError\\": false,\\n\\t\\t\\"ReferenceError\\": false,\\n\\t\\t\\"Reflect\\": false,\\n\\t\\t\\"RegExp\\": false,\\n\\t\\t\\"Set\\": false,\\n\\t\\t\\"String\\": false,\\n\\t\\t\\"Symbol\\": false,\\n\\t\\t\\"SyntaxError\\": false,\\n\\t\\t\\"System\\": false,\\n\\t\\t\\"toLocaleString\\": false,\\n\\t\\t\\"toString\\": false,\\n\\t\\t\\"TypeError\\": false,\\n\\t\\t\\"Uint16Array\\": false,\\n\\t\\t\\"Uint32Array\\": false,\\n\\t\\t\\"Uint8Array\\": false,\\n\\t\\t\\"Uint8ClampedArray\\": false,\\n\\t\\t\\"undefined\\": false,\\n\\t\\t\\"unescape\\": false,\\n\\t\\t\\"URIError\\": false,\\n\\t\\t\\"valueOf\\": false,\\n\\t\\t\\"WeakMap\\": false,\\n\\t\\t\\"WeakSet\\": false\\n\\t},\\n\\t\\"es5\\": {\\n\\t\\t\\"Array\\": false,\\n\\t\\t\\"Boolean\\": false,\\n\\t\\t\\"constructor\\": false,\\n\\t\\t\\"Date\\": false,\\n\\t\\t\\"decodeURI\\": false,\\n\\t\\t\\"decodeURIComponent\\": false,\\n\\t\\t\\"encodeURI\\": false,\\n\\t\\t\\"encodeURIComponent\\": false,\\n\\t\\t\\"Error\\": false,\\n\\t\\t\\"escape\\": false,\\n\\t\\t\\"eval\\": false,\\n\\t\\t\\"EvalError\\": false,\\n\\t\\t\\"Float32Array\\": false,\\n\\t\\t\\"Float64Array\\": false,\\n\\t\\t\\"Function\\": false,\\n\\t\\t\\"hasOwnProperty\\": false,\\n\\t\\t\\"Infinity\\": false,\\n\\t\\t\\"isFinite\\": false,\\n\\t\\t\\"isNaN\\": false,\\n\\t\\t\\"isPrototypeOf\\": false,\\n\\t\\t\\"JSON\\": false,\\n\\t\\t\\"Math\\": false,\\n\\t\\t\\"NaN\\": false,\\n\\t\\t\\"Number\\": false,\\n\\t\\t\\"Object\\": false,\\n\\t\\t\\"parseFloat\\": false,\\n\\t\\t\\"parseInt\\": false,\\n\\t\\t\\"propertyIsEnumerable\\": false,\\n\\t\\t\\"RangeError\\": false,\\n\\t\\t\\"ReferenceError\\": false,\\n\\t\\t\\"RegExp\\": false,\\n\\t\\t\\"String\\": false,\\n\\t\\t\\"SyntaxError\\": false,\\n\\t\\t\\"toLocaleString\\": false,\\n\\t\\t\\"toString\\": false,\\n\\t\\t\\"TypeError\\": false,\\n\\t\\t\\"undefined\\": false,\\n\\t\\t\\"unescape\\": false,\\n\\t\\t\\"URIError\\": false,\\n\\t\\t\\"valueOf\\": false\\n\\t},\\n\\t\\"es6\\": {\\n\\t\\t\\"Array\\": false,\\n\\t\\t\\"ArrayBuffer\\": false,\\n\\t\\t\\"Boolean\\": false,\\n\\t\\t\\"constructor\\": false,\\n\\t\\t\\"DataView\\": false,\\n\\t\\t\\"Date\\": false,\\n\\t\\t\\"decodeURI\\": false,\\n\\t\\t\\"decodeURIComponent\\": false,\\n\\t\\t\\"encodeURI\\": false,\\n\\t\\t\\"encodeURIComponent\\": false,\\n\\t\\t\\"Error\\": false,\\n\\t\\t\\"escape\\": false,\\n\\t\\t\\"eval\\": false,\\n\\t\\t\\"EvalError\\": false,\\n\\t\\t\\"Float32Array\\": false,\\n\\t\\t\\"Float64Array\\": false,\\n\\t\\t\\"Function\\": false,\\n\\t\\t\\"hasOwnProperty\\": false,\\n\\t\\t\\"Infinity\\": false,\\n\\t\\t\\"Int16Array\\": false,\\n\\t\\t\\"Int32Array\\": false,\\n\\t\\t\\"Int8Array\\": false,\\n\\t\\t\\"isFinite\\": false,\\n\\t\\t\\"isNaN\\": false,\\n\\t\\t\\"isPrototypeOf\\": false,\\n\\t\\t\\"JSON\\": false,\\n\\t\\t\\"Map\\": false,\\n\\t\\t\\"Math\\": false,\\n\\t\\t\\"NaN\\": false,\\n\\t\\t\\"Number\\": false,\\n\\t\\t\\"Object\\": false,\\n\\t\\t\\"parseFloat\\": false,\\n\\t\\t\\"parseInt\\": false,\\n\\t\\t\\"Promise\\": false,\\n\\t\\t\\"propertyIsEnumerable\\": false,\\n\\t\\t\\"Proxy\\": false,\\n\\t\\t\\"RangeError\\": false,\\n\\t\\t\\"ReferenceError\\": false,\\n\\t\\t\\"Reflect\\": false,\\n\\t\\t\\"RegExp\\": false,\\n\\t\\t\\"Set\\": false,\\n\\t\\t\\"String\\": false,\\n\\t\\t\\"Symbol\\": false,\\n\\t\\t\\"SyntaxError\\": false,\\n\\t\\t\\"System\\": false,\\n\\t\\t\\"toLocaleString\\": false,\\n\\t\\t\\"toString\\": false,\\n\\t\\t\\"TypeError\\": false,\\n\\t\\t\\"Uint16Array\\": false,\\n\\t\\t\\"Uint32Array\\": false,\\n\\t\\t\\"Uint8Array\\": false,\\n\\t\\t\\"Uint8ClampedArray\\": false,\\n\\t\\t\\"undefined\\": false,\\n\\t\\t\\"unescape\\": false,\\n\\t\\t\\"URIError\\": false,\\n\\t\\t\\"valueOf\\": false,\\n\\t\\t\\"WeakMap\\": false,\\n\\t\\t\\"WeakSet\\": false\\n\\t},\\n\\t\\"browser\\": {\\n\\t\\t\\"addEventListener\\": false,\\n\\t\\t\\"alert\\": false,\\n\\t\\t\\"AnalyserNode\\": false,\\n\\t\\t\\"AnimationEvent\\": false,\\n\\t\\t\\"applicationCache\\": false,\\n\\t\\t\\"ApplicationCache\\": false,\\n\\t\\t\\"ApplicationCacheErrorEvent\\": false,\\n\\t\\t\\"atob\\": false,\\n\\t\\t\\"Attr\\": false,\\n\\t\\t\\"Audio\\": false,\\n\\t\\t\\"AudioBuffer\\": false,\\n\\t\\t\\"AudioBufferSourceNode\\": false,\\n\\t\\t\\"AudioContext\\": false,\\n\\t\\t\\"AudioDestinationNode\\": false,\\n\\t\\t\\"AudioListener\\": false,\\n\\t\\t\\"AudioNode\\": false,\\n\\t\\t\\"AudioParam\\": false,\\n\\t\\t\\"AudioProcessingEvent\\": false,\\n\\t\\t\\"AutocompleteErrorEvent\\": false,\\n\\t\\t\\"BarProp\\": false,\\n\\t\\t\\"BatteryManager\\": false,\\n\\t\\t\\"BeforeUnloadEvent\\": false,\\n\\t\\t\\"BiquadFilterNode\\": false,\\n\\t\\t\\"Blob\\": false,\\n\\t\\t\\"blur\\": false,\\n\\t\\t\\"btoa\\": false,\\n\\t\\t\\"Cache\\": false,\\n\\t\\t\\"caches\\": false,\\n\\t\\t\\"CacheStorage\\": false,\\n\\t\\t\\"cancelAnimationFrame\\": false,\\n\\t\\t\\"CanvasGradient\\": false,\\n\\t\\t\\"CanvasPattern\\": false,\\n\\t\\t\\"CanvasRenderingContext2D\\": false,\\n\\t\\t\\"CDATASection\\": false,\\n\\t\\t\\"ChannelMergerNode\\": false,\\n\\t\\t\\"ChannelSplitterNode\\": false,\\n\\t\\t\\"CharacterData\\": false,\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"clientInformation\\": false,\\n\\t\\t\\"ClientRect\\": false,\\n\\t\\t\\"ClientRectList\\": false,\\n\\t\\t\\"ClipboardEvent\\": false,\\n\\t\\t\\"close\\": false,\\n\\t\\t\\"closed\\": false,\\n\\t\\t\\"CloseEvent\\": false,\\n\\t\\t\\"Comment\\": false,\\n\\t\\t\\"CompositionEvent\\": false,\\n\\t\\t\\"confirm\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"ConvolverNode\\": false,\\n\\t\\t\\"crypto\\": false,\\n\\t\\t\\"Crypto\\": false,\\n\\t\\t\\"CryptoKey\\": false,\\n\\t\\t\\"CSS\\": false,\\n\\t\\t\\"CSSFontFaceRule\\": false,\\n\\t\\t\\"CSSImportRule\\": false,\\n\\t\\t\\"CSSKeyframeRule\\": false,\\n\\t\\t\\"CSSKeyframesRule\\": false,\\n\\t\\t\\"CSSMediaRule\\": false,\\n\\t\\t\\"CSSPageRule\\": false,\\n\\t\\t\\"CSSRule\\": false,\\n\\t\\t\\"CSSRuleList\\": false,\\n\\t\\t\\"CSSStyleDeclaration\\": false,\\n\\t\\t\\"CSSStyleRule\\": false,\\n\\t\\t\\"CSSStyleSheet\\": false,\\n\\t\\t\\"CSSSupportsRule\\": false,\\n\\t\\t\\"CSSUnknownRule\\": false,\\n\\t\\t\\"CSSViewportRule\\": false,\\n\\t\\t\\"CustomEvent\\": false,\\n\\t\\t\\"DataTransfer\\": false,\\n\\t\\t\\"DataTransferItem\\": false,\\n\\t\\t\\"DataTransferItemList\\": false,\\n\\t\\t\\"Debug\\": false,\\n\\t\\t\\"defaultStatus\\": false,\\n\\t\\t\\"defaultstatus\\": false,\\n\\t\\t\\"DelayNode\\": false,\\n\\t\\t\\"DeviceMotionEvent\\": false,\\n\\t\\t\\"DeviceOrientationEvent\\": false,\\n\\t\\t\\"devicePixelRatio\\": false,\\n\\t\\t\\"dispatchEvent\\": false,\\n\\t\\t\\"document\\": false,\\n\\t\\t\\"Document\\": false,\\n\\t\\t\\"DocumentFragment\\": false,\\n\\t\\t\\"DocumentType\\": false,\\n\\t\\t\\"DOMError\\": false,\\n\\t\\t\\"DOMException\\": false,\\n\\t\\t\\"DOMImplementation\\": false,\\n\\t\\t\\"DOMParser\\": false,\\n\\t\\t\\"DOMSettableTokenList\\": false,\\n\\t\\t\\"DOMStringList\\": false,\\n\\t\\t\\"DOMStringMap\\": false,\\n\\t\\t\\"DOMTokenList\\": false,\\n\\t\\t\\"DragEvent\\": false,\\n\\t\\t\\"DynamicsCompressorNode\\": false,\\n\\t\\t\\"Element\\": false,\\n\\t\\t\\"ElementTimeControl\\": false,\\n\\t\\t\\"ErrorEvent\\": false,\\n\\t\\t\\"event\\": false,\\n\\t\\t\\"Event\\": false,\\n\\t\\t\\"EventSource\\": false,\\n\\t\\t\\"EventTarget\\": false,\\n\\t\\t\\"external\\": false,\\n\\t\\t\\"fetch\\": false,\\n\\t\\t\\"File\\": false,\\n\\t\\t\\"FileError\\": false,\\n\\t\\t\\"FileList\\": false,\\n\\t\\t\\"FileReader\\": false,\\n\\t\\t\\"find\\": false,\\n\\t\\t\\"focus\\": false,\\n\\t\\t\\"FocusEvent\\": false,\\n\\t\\t\\"FontFace\\": false,\\n\\t\\t\\"FormData\\": false,\\n\\t\\t\\"frameElement\\": false,\\n\\t\\t\\"frames\\": false,\\n\\t\\t\\"GainNode\\": false,\\n\\t\\t\\"Gamepad\\": false,\\n\\t\\t\\"GamepadButton\\": false,\\n\\t\\t\\"GamepadEvent\\": false,\\n\\t\\t\\"getComputedStyle\\": false,\\n\\t\\t\\"getSelection\\": false,\\n\\t\\t\\"HashChangeEvent\\": false,\\n\\t\\t\\"Headers\\": false,\\n\\t\\t\\"history\\": false,\\n\\t\\t\\"History\\": false,\\n\\t\\t\\"HTMLAllCollection\\": false,\\n\\t\\t\\"HTMLAnchorElement\\": false,\\n\\t\\t\\"HTMLAppletElement\\": false,\\n\\t\\t\\"HTMLAreaElement\\": false,\\n\\t\\t\\"HTMLAudioElement\\": false,\\n\\t\\t\\"HTMLBaseElement\\": false,\\n\\t\\t\\"HTMLBlockquoteElement\\": false,\\n\\t\\t\\"HTMLBodyElement\\": false,\\n\\t\\t\\"HTMLBRElement\\": false,\\n\\t\\t\\"HTMLButtonElement\\": false,\\n\\t\\t\\"HTMLCanvasElement\\": false,\\n\\t\\t\\"HTMLCollection\\": false,\\n\\t\\t\\"HTMLContentElement\\": false,\\n\\t\\t\\"HTMLDataListElement\\": false,\\n\\t\\t\\"HTMLDetailsElement\\": false,\\n\\t\\t\\"HTMLDialogElement\\": false,\\n\\t\\t\\"HTMLDirectoryElement\\": false,\\n\\t\\t\\"HTMLDivElement\\": false,\\n\\t\\t\\"HTMLDListElement\\": false,\\n\\t\\t\\"HTMLDocument\\": false,\\n\\t\\t\\"HTMLElement\\": false,\\n\\t\\t\\"HTMLEmbedElement\\": false,\\n\\t\\t\\"HTMLFieldSetElement\\": false,\\n\\t\\t\\"HTMLFontElement\\": false,\\n\\t\\t\\"HTMLFormControlsCollection\\": false,\\n\\t\\t\\"HTMLFormElement\\": false,\\n\\t\\t\\"HTMLFrameElement\\": false,\\n\\t\\t\\"HTMLFrameSetElement\\": false,\\n\\t\\t\\"HTMLHeadElement\\": false,\\n\\t\\t\\"HTMLHeadingElement\\": false,\\n\\t\\t\\"HTMLHRElement\\": false,\\n\\t\\t\\"HTMLHtmlElement\\": false,\\n\\t\\t\\"HTMLIFrameElement\\": false,\\n\\t\\t\\"HTMLImageElement\\": false,\\n\\t\\t\\"HTMLInputElement\\": false,\\n\\t\\t\\"HTMLIsIndexElement\\": false,\\n\\t\\t\\"HTMLKeygenElement\\": false,\\n\\t\\t\\"HTMLLabelElement\\": false,\\n\\t\\t\\"HTMLLayerElement\\": false,\\n\\t\\t\\"HTMLLegendElement\\": false,\\n\\t\\t\\"HTMLLIElement\\": false,\\n\\t\\t\\"HTMLLinkElement\\": false,\\n\\t\\t\\"HTMLMapElement\\": false,\\n\\t\\t\\"HTMLMarqueeElement\\": false,\\n\\t\\t\\"HTMLMediaElement\\": false,\\n\\t\\t\\"HTMLMenuElement\\": false,\\n\\t\\t\\"HTMLMetaElement\\": false,\\n\\t\\t\\"HTMLMeterElement\\": false,\\n\\t\\t\\"HTMLModElement\\": false,\\n\\t\\t\\"HTMLObjectElement\\": false,\\n\\t\\t\\"HTMLOListElement\\": false,\\n\\t\\t\\"HTMLOptGroupElement\\": false,\\n\\t\\t\\"HTMLOptionElement\\": false,\\n\\t\\t\\"HTMLOptionsCollection\\": false,\\n\\t\\t\\"HTMLOutputElement\\": false,\\n\\t\\t\\"HTMLParagraphElement\\": false,\\n\\t\\t\\"HTMLParamElement\\": false,\\n\\t\\t\\"HTMLPictureElement\\": false,\\n\\t\\t\\"HTMLPreElement\\": false,\\n\\t\\t\\"HTMLProgressElement\\": false,\\n\\t\\t\\"HTMLQuoteElement\\": false,\\n\\t\\t\\"HTMLScriptElement\\": false,\\n\\t\\t\\"HTMLSelectElement\\": false,\\n\\t\\t\\"HTMLShadowElement\\": false,\\n\\t\\t\\"HTMLSourceElement\\": false,\\n\\t\\t\\"HTMLSpanElement\\": false,\\n\\t\\t\\"HTMLStyleElement\\": false,\\n\\t\\t\\"HTMLTableCaptionElement\\": false,\\n\\t\\t\\"HTMLTableCellElement\\": false,\\n\\t\\t\\"HTMLTableColElement\\": false,\\n\\t\\t\\"HTMLTableElement\\": false,\\n\\t\\t\\"HTMLTableRowElement\\": false,\\n\\t\\t\\"HTMLTableSectionElement\\": false,\\n\\t\\t\\"HTMLTemplateElement\\": false,\\n\\t\\t\\"HTMLTextAreaElement\\": false,\\n\\t\\t\\"HTMLTitleElement\\": false,\\n\\t\\t\\"HTMLTrackElement\\": false,\\n\\t\\t\\"HTMLUListElement\\": false,\\n\\t\\t\\"HTMLUnknownElement\\": false,\\n\\t\\t\\"HTMLVideoElement\\": false,\\n\\t\\t\\"IDBCursor\\": false,\\n\\t\\t\\"IDBCursorWithValue\\": false,\\n\\t\\t\\"IDBDatabase\\": false,\\n\\t\\t\\"IDBEnvironment\\": false,\\n\\t\\t\\"IDBFactory\\": false,\\n\\t\\t\\"IDBIndex\\": false,\\n\\t\\t\\"IDBKeyRange\\": false,\\n\\t\\t\\"IDBObjectStore\\": false,\\n\\t\\t\\"IDBOpenDBRequest\\": false,\\n\\t\\t\\"IDBRequest\\": false,\\n\\t\\t\\"IDBTransaction\\": false,\\n\\t\\t\\"IDBVersionChangeEvent\\": false,\\n\\t\\t\\"Image\\": false,\\n\\t\\t\\"ImageBitmap\\": false,\\n\\t\\t\\"ImageData\\": false,\\n\\t\\t\\"indexedDB\\": false,\\n\\t\\t\\"innerHeight\\": false,\\n\\t\\t\\"innerWidth\\": false,\\n\\t\\t\\"InputEvent\\": false,\\n\\t\\t\\"InputMethodContext\\": false,\\n\\t\\t\\"Intl\\": false,\\n\\t\\t\\"KeyboardEvent\\": false,\\n\\t\\t\\"length\\": false,\\n\\t\\t\\"localStorage\\": false,\\n\\t\\t\\"location\\": false,\\n\\t\\t\\"Location\\": false,\\n\\t\\t\\"locationbar\\": false,\\n\\t\\t\\"matchMedia\\": false,\\n\\t\\t\\"MediaElementAudioSourceNode\\": false,\\n\\t\\t\\"MediaEncryptedEvent\\": false,\\n\\t\\t\\"MediaError\\": false,\\n\\t\\t\\"MediaKeyError\\": false,\\n\\t\\t\\"MediaKeyEvent\\": false,\\n\\t\\t\\"MediaKeyMessageEvent\\": false,\\n\\t\\t\\"MediaKeys\\": false,\\n\\t\\t\\"MediaKeySession\\": false,\\n\\t\\t\\"MediaKeyStatusMap\\": false,\\n\\t\\t\\"MediaKeySystemAccess\\": false,\\n\\t\\t\\"MediaList\\": false,\\n\\t\\t\\"MediaQueryList\\": false,\\n\\t\\t\\"MediaQueryListEvent\\": false,\\n\\t\\t\\"MediaSource\\": false,\\n\\t\\t\\"MediaStreamAudioDestinationNode\\": false,\\n\\t\\t\\"MediaStreamAudioSourceNode\\": false,\\n\\t\\t\\"MediaStreamEvent\\": false,\\n\\t\\t\\"MediaStreamTrack\\": false,\\n\\t\\t\\"menubar\\": false,\\n\\t\\t\\"MessageChannel\\": false,\\n\\t\\t\\"MessageEvent\\": false,\\n\\t\\t\\"MessagePort\\": false,\\n\\t\\t\\"MIDIAccess\\": false,\\n\\t\\t\\"MIDIConnectionEvent\\": false,\\n\\t\\t\\"MIDIInput\\": false,\\n\\t\\t\\"MIDIInputMap\\": false,\\n\\t\\t\\"MIDIMessageEvent\\": false,\\n\\t\\t\\"MIDIOutput\\": false,\\n\\t\\t\\"MIDIOutputMap\\": false,\\n\\t\\t\\"MIDIPort\\": false,\\n\\t\\t\\"MimeType\\": false,\\n\\t\\t\\"MimeTypeArray\\": false,\\n\\t\\t\\"MouseEvent\\": false,\\n\\t\\t\\"moveBy\\": false,\\n\\t\\t\\"moveTo\\": false,\\n\\t\\t\\"MutationEvent\\": false,\\n\\t\\t\\"MutationObserver\\": false,\\n\\t\\t\\"MutationRecord\\": false,\\n\\t\\t\\"name\\": false,\\n\\t\\t\\"NamedNodeMap\\": false,\\n\\t\\t\\"navigator\\": false,\\n\\t\\t\\"Navigator\\": false,\\n\\t\\t\\"Node\\": false,\\n\\t\\t\\"NodeFilter\\": false,\\n\\t\\t\\"NodeIterator\\": false,\\n\\t\\t\\"NodeList\\": false,\\n\\t\\t\\"Notification\\": false,\\n\\t\\t\\"OfflineAudioCompletionEvent\\": false,\\n\\t\\t\\"OfflineAudioContext\\": false,\\n\\t\\t\\"offscreenBuffering\\": false,\\n\\t\\t\\"onbeforeunload\\": true,\\n\\t\\t\\"onblur\\": true,\\n\\t\\t\\"onerror\\": true,\\n\\t\\t\\"onfocus\\": true,\\n\\t\\t\\"onload\\": true,\\n\\t\\t\\"onresize\\": true,\\n\\t\\t\\"onunload\\": true,\\n\\t\\t\\"open\\": false,\\n\\t\\t\\"openDatabase\\": false,\\n\\t\\t\\"opener\\": false,\\n\\t\\t\\"opera\\": false,\\n\\t\\t\\"Option\\": false,\\n\\t\\t\\"OscillatorNode\\": false,\\n\\t\\t\\"outerHeight\\": false,\\n\\t\\t\\"outerWidth\\": false,\\n\\t\\t\\"PageTransitionEvent\\": false,\\n\\t\\t\\"pageXOffset\\": false,\\n\\t\\t\\"pageYOffset\\": false,\\n\\t\\t\\"parent\\": false,\\n\\t\\t\\"Path2D\\": false,\\n\\t\\t\\"performance\\": false,\\n\\t\\t\\"Performance\\": false,\\n\\t\\t\\"PerformanceEntry\\": false,\\n\\t\\t\\"PerformanceMark\\": false,\\n\\t\\t\\"PerformanceMeasure\\": false,\\n\\t\\t\\"PerformanceNavigation\\": false,\\n\\t\\t\\"PerformanceResourceTiming\\": false,\\n\\t\\t\\"PerformanceTiming\\": false,\\n\\t\\t\\"PeriodicWave\\": false,\\n\\t\\t\\"Permissions\\": false,\\n\\t\\t\\"PermissionStatus\\": false,\\n\\t\\t\\"personalbar\\": false,\\n\\t\\t\\"Plugin\\": false,\\n\\t\\t\\"PluginArray\\": false,\\n\\t\\t\\"PopStateEvent\\": false,\\n\\t\\t\\"postMessage\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"ProcessingInstruction\\": false,\\n\\t\\t\\"ProgressEvent\\": false,\\n\\t\\t\\"prompt\\": false,\\n\\t\\t\\"PushManager\\": false,\\n\\t\\t\\"PushSubscription\\": false,\\n\\t\\t\\"RadioNodeList\\": false,\\n\\t\\t\\"Range\\": false,\\n\\t\\t\\"ReadableByteStream\\": false,\\n\\t\\t\\"ReadableStream\\": false,\\n\\t\\t\\"removeEventListener\\": false,\\n\\t\\t\\"Request\\": false,\\n\\t\\t\\"requestAnimationFrame\\": false,\\n\\t\\t\\"resizeBy\\": false,\\n\\t\\t\\"resizeTo\\": false,\\n\\t\\t\\"Response\\": false,\\n\\t\\t\\"RTCIceCandidate\\": false,\\n\\t\\t\\"RTCSessionDescription\\": false,\\n\\t\\t\\"screen\\": false,\\n\\t\\t\\"Screen\\": false,\\n\\t\\t\\"screenLeft\\": false,\\n\\t\\t\\"ScreenOrientation\\": false,\\n\\t\\t\\"screenTop\\": false,\\n\\t\\t\\"screenX\\": false,\\n\\t\\t\\"screenY\\": false,\\n\\t\\t\\"ScriptProcessorNode\\": false,\\n\\t\\t\\"scroll\\": false,\\n\\t\\t\\"scrollbars\\": false,\\n\\t\\t\\"scrollBy\\": false,\\n\\t\\t\\"scrollTo\\": false,\\n\\t\\t\\"scrollX\\": false,\\n\\t\\t\\"scrollY\\": false,\\n\\t\\t\\"SecurityPolicyViolationEvent\\": false,\\n\\t\\t\\"Selection\\": false,\\n\\t\\t\\"self\\": false,\\n\\t\\t\\"ServiceWorker\\": false,\\n\\t\\t\\"ServiceWorkerContainer\\": false,\\n\\t\\t\\"ServiceWorkerRegistration\\": false,\\n\\t\\t\\"sessionStorage\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false,\\n\\t\\t\\"ShadowRoot\\": false,\\n\\t\\t\\"SharedWorker\\": false,\\n\\t\\t\\"showModalDialog\\": false,\\n\\t\\t\\"speechSynthesis\\": false,\\n\\t\\t\\"SpeechSynthesisEvent\\": false,\\n\\t\\t\\"SpeechSynthesisUtterance\\": false,\\n\\t\\t\\"status\\": false,\\n\\t\\t\\"statusbar\\": false,\\n\\t\\t\\"stop\\": false,\\n\\t\\t\\"Storage\\": false,\\n\\t\\t\\"StorageEvent\\": false,\\n\\t\\t\\"styleMedia\\": false,\\n\\t\\t\\"StyleSheet\\": false,\\n\\t\\t\\"StyleSheetList\\": false,\\n\\t\\t\\"SubtleCrypto\\": false,\\n\\t\\t\\"SVGAElement\\": false,\\n\\t\\t\\"SVGAltGlyphDefElement\\": false,\\n\\t\\t\\"SVGAltGlyphElement\\": false,\\n\\t\\t\\"SVGAltGlyphItemElement\\": false,\\n\\t\\t\\"SVGAngle\\": false,\\n\\t\\t\\"SVGAnimateColorElement\\": false,\\n\\t\\t\\"SVGAnimatedAngle\\": false,\\n\\t\\t\\"SVGAnimatedBoolean\\": false,\\n\\t\\t\\"SVGAnimatedEnumeration\\": false,\\n\\t\\t\\"SVGAnimatedInteger\\": false,\\n\\t\\t\\"SVGAnimatedLength\\": false,\\n\\t\\t\\"SVGAnimatedLengthList\\": false,\\n\\t\\t\\"SVGAnimatedNumber\\": false,\\n\\t\\t\\"SVGAnimatedNumberList\\": false,\\n\\t\\t\\"SVGAnimatedPathData\\": false,\\n\\t\\t\\"SVGAnimatedPoints\\": false,\\n\\t\\t\\"SVGAnimatedPreserveAspectRatio\\": false,\\n\\t\\t\\"SVGAnimatedRect\\": false,\\n\\t\\t\\"SVGAnimatedString\\": false,\\n\\t\\t\\"SVGAnimatedTransformList\\": false,\\n\\t\\t\\"SVGAnimateElement\\": false,\\n\\t\\t\\"SVGAnimateMotionElement\\": false,\\n\\t\\t\\"SVGAnimateTransformElement\\": false,\\n\\t\\t\\"SVGAnimationElement\\": false,\\n\\t\\t\\"SVGCircleElement\\": false,\\n\\t\\t\\"SVGClipPathElement\\": false,\\n\\t\\t\\"SVGColor\\": false,\\n\\t\\t\\"SVGColorProfileElement\\": false,\\n\\t\\t\\"SVGColorProfileRule\\": false,\\n\\t\\t\\"SVGComponentTransferFunctionElement\\": false,\\n\\t\\t\\"SVGCSSRule\\": false,\\n\\t\\t\\"SVGCursorElement\\": false,\\n\\t\\t\\"SVGDefsElement\\": false,\\n\\t\\t\\"SVGDescElement\\": false,\\n\\t\\t\\"SVGDiscardElement\\": false,\\n\\t\\t\\"SVGDocument\\": false,\\n\\t\\t\\"SVGElement\\": false,\\n\\t\\t\\"SVGElementInstance\\": false,\\n\\t\\t\\"SVGElementInstanceList\\": false,\\n\\t\\t\\"SVGEllipseElement\\": false,\\n\\t\\t\\"SVGEvent\\": false,\\n\\t\\t\\"SVGExternalResourcesRequired\\": false,\\n\\t\\t\\"SVGFEBlendElement\\": false,\\n\\t\\t\\"SVGFEColorMatrixElement\\": false,\\n\\t\\t\\"SVGFEComponentTransferElement\\": false,\\n\\t\\t\\"SVGFECompositeElement\\": false,\\n\\t\\t\\"SVGFEConvolveMatrixElement\\": false,\\n\\t\\t\\"SVGFEDiffuseLightingElement\\": false,\\n\\t\\t\\"SVGFEDisplacementMapElement\\": false,\\n\\t\\t\\"SVGFEDistantLightElement\\": false,\\n\\t\\t\\"SVGFEDropShadowElement\\": false,\\n\\t\\t\\"SVGFEFloodElement\\": false,\\n\\t\\t\\"SVGFEFuncAElement\\": false,\\n\\t\\t\\"SVGFEFuncBElement\\": false,\\n\\t\\t\\"SVGFEFuncGElement\\": false,\\n\\t\\t\\"SVGFEFuncRElement\\": false,\\n\\t\\t\\"SVGFEGaussianBlurElement\\": false,\\n\\t\\t\\"SVGFEImageElement\\": false,\\n\\t\\t\\"SVGFEMergeElement\\": false,\\n\\t\\t\\"SVGFEMergeNodeElement\\": false,\\n\\t\\t\\"SVGFEMorphologyElement\\": false,\\n\\t\\t\\"SVGFEOffsetElement\\": false,\\n\\t\\t\\"SVGFEPointLightElement\\": false,\\n\\t\\t\\"SVGFESpecularLightingElement\\": false,\\n\\t\\t\\"SVGFESpotLightElement\\": false,\\n\\t\\t\\"SVGFETileElement\\": false,\\n\\t\\t\\"SVGFETurbulenceElement\\": false,\\n\\t\\t\\"SVGFilterElement\\": false,\\n\\t\\t\\"SVGFilterPrimitiveStandardAttributes\\": false,\\n\\t\\t\\"SVGFitToViewBox\\": false,\\n\\t\\t\\"SVGFontElement\\": false,\\n\\t\\t\\"SVGFontFaceElement\\": false,\\n\\t\\t\\"SVGFontFaceFormatElement\\": false,\\n\\t\\t\\"SVGFontFaceNameElement\\": false,\\n\\t\\t\\"SVGFontFaceSrcElement\\": false,\\n\\t\\t\\"SVGFontFaceUriElement\\": false,\\n\\t\\t\\"SVGForeignObjectElement\\": false,\\n\\t\\t\\"SVGGElement\\": false,\\n\\t\\t\\"SVGGeometryElement\\": false,\\n\\t\\t\\"SVGGlyphElement\\": false,\\n\\t\\t\\"SVGGlyphRefElement\\": false,\\n\\t\\t\\"SVGGradientElement\\": false,\\n\\t\\t\\"SVGGraphicsElement\\": false,\\n\\t\\t\\"SVGHKernElement\\": false,\\n\\t\\t\\"SVGICCColor\\": false,\\n\\t\\t\\"SVGImageElement\\": false,\\n\\t\\t\\"SVGLangSpace\\": false,\\n\\t\\t\\"SVGLength\\": false,\\n\\t\\t\\"SVGLengthList\\": false,\\n\\t\\t\\"SVGLinearGradientElement\\": false,\\n\\t\\t\\"SVGLineElement\\": false,\\n\\t\\t\\"SVGLocatable\\": false,\\n\\t\\t\\"SVGMarkerElement\\": false,\\n\\t\\t\\"SVGMaskElement\\": false,\\n\\t\\t\\"SVGMatrix\\": false,\\n\\t\\t\\"SVGMetadataElement\\": false,\\n\\t\\t\\"SVGMissingGlyphElement\\": false,\\n\\t\\t\\"SVGMPathElement\\": false,\\n\\t\\t\\"SVGNumber\\": false,\\n\\t\\t\\"SVGNumberList\\": false,\\n\\t\\t\\"SVGPaint\\": false,\\n\\t\\t\\"SVGPathElement\\": false,\\n\\t\\t\\"SVGPathSeg\\": false,\\n\\t\\t\\"SVGPathSegArcAbs\\": false,\\n\\t\\t\\"SVGPathSegArcRel\\": false,\\n\\t\\t\\"SVGPathSegClosePath\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicRel\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicSmoothAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoCubicSmoothRel\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticRel\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticSmoothAbs\\": false,\\n\\t\\t\\"SVGPathSegCurvetoQuadraticSmoothRel\\": false,\\n\\t\\t\\"SVGPathSegLinetoAbs\\": false,\\n\\t\\t\\"SVGPathSegLinetoHorizontalAbs\\": false,\\n\\t\\t\\"SVGPathSegLinetoHorizontalRel\\": false,\\n\\t\\t\\"SVGPathSegLinetoRel\\": false,\\n\\t\\t\\"SVGPathSegLinetoVerticalAbs\\": false,\\n\\t\\t\\"SVGPathSegLinetoVerticalRel\\": false,\\n\\t\\t\\"SVGPathSegList\\": false,\\n\\t\\t\\"SVGPathSegMovetoAbs\\": false,\\n\\t\\t\\"SVGPathSegMovetoRel\\": false,\\n\\t\\t\\"SVGPatternElement\\": false,\\n\\t\\t\\"SVGPoint\\": false,\\n\\t\\t\\"SVGPointList\\": false,\\n\\t\\t\\"SVGPolygonElement\\": false,\\n\\t\\t\\"SVGPolylineElement\\": false,\\n\\t\\t\\"SVGPreserveAspectRatio\\": false,\\n\\t\\t\\"SVGRadialGradientElement\\": false,\\n\\t\\t\\"SVGRect\\": false,\\n\\t\\t\\"SVGRectElement\\": false,\\n\\t\\t\\"SVGRenderingIntent\\": false,\\n\\t\\t\\"SVGScriptElement\\": false,\\n\\t\\t\\"SVGSetElement\\": false,\\n\\t\\t\\"SVGStopElement\\": false,\\n\\t\\t\\"SVGStringList\\": false,\\n\\t\\t\\"SVGStylable\\": false,\\n\\t\\t\\"SVGStyleElement\\": false,\\n\\t\\t\\"SVGSVGElement\\": false,\\n\\t\\t\\"SVGSwitchElement\\": false,\\n\\t\\t\\"SVGSymbolElement\\": false,\\n\\t\\t\\"SVGTests\\": false,\\n\\t\\t\\"SVGTextContentElement\\": false,\\n\\t\\t\\"SVGTextElement\\": false,\\n\\t\\t\\"SVGTextPathElement\\": false,\\n\\t\\t\\"SVGTextPositioningElement\\": false,\\n\\t\\t\\"SVGTitleElement\\": false,\\n\\t\\t\\"SVGTransform\\": false,\\n\\t\\t\\"SVGTransformable\\": false,\\n\\t\\t\\"SVGTransformList\\": false,\\n\\t\\t\\"SVGTRefElement\\": false,\\n\\t\\t\\"SVGTSpanElement\\": false,\\n\\t\\t\\"SVGUnitTypes\\": false,\\n\\t\\t\\"SVGURIReference\\": false,\\n\\t\\t\\"SVGUseElement\\": false,\\n\\t\\t\\"SVGViewElement\\": false,\\n\\t\\t\\"SVGViewSpec\\": false,\\n\\t\\t\\"SVGVKernElement\\": false,\\n\\t\\t\\"SVGZoomAndPan\\": false,\\n\\t\\t\\"SVGZoomEvent\\": false,\\n\\t\\t\\"Text\\": false,\\n\\t\\t\\"TextDecoder\\": false,\\n\\t\\t\\"TextEncoder\\": false,\\n\\t\\t\\"TextEvent\\": false,\\n\\t\\t\\"TextMetrics\\": false,\\n\\t\\t\\"TextTrack\\": false,\\n\\t\\t\\"TextTrackCue\\": false,\\n\\t\\t\\"TextTrackCueList\\": false,\\n\\t\\t\\"TextTrackList\\": false,\\n\\t\\t\\"TimeEvent\\": false,\\n\\t\\t\\"TimeRanges\\": false,\\n\\t\\t\\"toolbar\\": false,\\n\\t\\t\\"top\\": false,\\n\\t\\t\\"Touch\\": false,\\n\\t\\t\\"TouchEvent\\": false,\\n\\t\\t\\"TouchList\\": false,\\n\\t\\t\\"TrackEvent\\": false,\\n\\t\\t\\"TransitionEvent\\": false,\\n\\t\\t\\"TreeWalker\\": false,\\n\\t\\t\\"UIEvent\\": false,\\n\\t\\t\\"URL\\": false,\\n\\t\\t\\"ValidityState\\": false,\\n\\t\\t\\"VTTCue\\": false,\\n\\t\\t\\"WaveShaperNode\\": false,\\n\\t\\t\\"WebGLActiveInfo\\": false,\\n\\t\\t\\"WebGLBuffer\\": false,\\n\\t\\t\\"WebGLContextEvent\\": false,\\n\\t\\t\\"WebGLFramebuffer\\": false,\\n\\t\\t\\"WebGLProgram\\": false,\\n\\t\\t\\"WebGLRenderbuffer\\": false,\\n\\t\\t\\"WebGLRenderingContext\\": false,\\n\\t\\t\\"WebGLShader\\": false,\\n\\t\\t\\"WebGLShaderPrecisionFormat\\": false,\\n\\t\\t\\"WebGLTexture\\": false,\\n\\t\\t\\"WebGLUniformLocation\\": false,\\n\\t\\t\\"WebSocket\\": false,\\n\\t\\t\\"WheelEvent\\": false,\\n\\t\\t\\"window\\": false,\\n\\t\\t\\"Window\\": false,\\n\\t\\t\\"Worker\\": false,\\n\\t\\t\\"XDomainRequest\\": false,\\n\\t\\t\\"XMLDocument\\": false,\\n\\t\\t\\"XMLHttpRequest\\": false,\\n\\t\\t\\"XMLHttpRequestEventTarget\\": false,\\n\\t\\t\\"XMLHttpRequestProgressEvent\\": false,\\n\\t\\t\\"XMLHttpRequestUpload\\": false,\\n\\t\\t\\"XMLSerializer\\": false,\\n\\t\\t\\"XPathEvaluator\\": false,\\n\\t\\t\\"XPathException\\": false,\\n\\t\\t\\"XPathExpression\\": false,\\n\\t\\t\\"XPathNamespace\\": false,\\n\\t\\t\\"XPathNSResolver\\": false,\\n\\t\\t\\"XPathResult\\": false,\\n\\t\\t\\"XSLTProcessor\\": false\\n\\t},\\n\\t\\"worker\\": {\\n\\t\\t\\"applicationCache\\": false,\\n\\t\\t\\"atob\\": false,\\n\\t\\t\\"Blob\\": false,\\n\\t\\t\\"BroadcastChannel\\": false,\\n\\t\\t\\"btoa\\": false,\\n\\t\\t\\"Cache\\": false,\\n\\t\\t\\"caches\\": false,\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"close\\": true,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"fetch\\": false,\\n\\t\\t\\"FileReaderSync\\": false,\\n\\t\\t\\"FormData\\": false,\\n\\t\\t\\"Headers\\": false,\\n\\t\\t\\"IDBCursor\\": false,\\n\\t\\t\\"IDBCursorWithValue\\": false,\\n\\t\\t\\"IDBDatabase\\": false,\\n\\t\\t\\"IDBFactory\\": false,\\n\\t\\t\\"IDBIndex\\": false,\\n\\t\\t\\"IDBKeyRange\\": false,\\n\\t\\t\\"IDBObjectStore\\": false,\\n\\t\\t\\"IDBOpenDBRequest\\": false,\\n\\t\\t\\"IDBRequest\\": false,\\n\\t\\t\\"IDBTransaction\\": false,\\n\\t\\t\\"IDBVersionChangeEvent\\": false,\\n\\t\\t\\"ImageData\\": false,\\n\\t\\t\\"importScripts\\": true,\\n\\t\\t\\"indexedDB\\": false,\\n\\t\\t\\"location\\": false,\\n\\t\\t\\"MessageChannel\\": false,\\n\\t\\t\\"MessagePort\\": false,\\n\\t\\t\\"name\\": false,\\n\\t\\t\\"navigator\\": false,\\n\\t\\t\\"Notification\\": false,\\n\\t\\t\\"onclose\\": true,\\n\\t\\t\\"onconnect\\": true,\\n\\t\\t\\"onerror\\": true,\\n\\t\\t\\"onlanguagechange\\": true,\\n\\t\\t\\"onmessage\\": true,\\n\\t\\t\\"onoffline\\": true,\\n\\t\\t\\"ononline\\": true,\\n\\t\\t\\"onrejectionhandled\\": true,\\n\\t\\t\\"onunhandledrejection\\": true,\\n\\t\\t\\"performance\\": false,\\n\\t\\t\\"Performance\\": false,\\n\\t\\t\\"PerformanceEntry\\": false,\\n\\t\\t\\"PerformanceMark\\": false,\\n\\t\\t\\"PerformanceMeasure\\": false,\\n\\t\\t\\"PerformanceNavigation\\": false,\\n\\t\\t\\"PerformanceResourceTiming\\": false,\\n\\t\\t\\"PerformanceTiming\\": false,\\n\\t\\t\\"postMessage\\": true,\\n\\t\\t\\"Promise\\": false,\\n\\t\\t\\"Request\\": false,\\n\\t\\t\\"Response\\": false,\\n\\t\\t\\"self\\": true,\\n\\t\\t\\"ServiceWorkerRegistration\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false,\\n\\t\\t\\"TextDecoder\\": false,\\n\\t\\t\\"TextEncoder\\": false,\\n\\t\\t\\"URL\\": false,\\n\\t\\t\\"WebSocket\\": false,\\n\\t\\t\\"Worker\\": false,\\n\\t\\t\\"XMLHttpRequest\\": false\\n\\t},\\n\\t\\"node\\": {\\n\\t\\t\\"__dirname\\": false,\\n\\t\\t\\"__filename\\": false,\\n\\t\\t\\"arguments\\": false,\\n\\t\\t\\"Buffer\\": false,\\n\\t\\t\\"clearImmediate\\": false,\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"exports\\": true,\\n\\t\\t\\"GLOBAL\\": false,\\n\\t\\t\\"global\\": false,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"process\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"root\\": false,\\n\\t\\t\\"setImmediate\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false\\n\\t},\\n\\t\\"commonjs\\": {\\n\\t\\t\\"exports\\": true,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"global\\": false\\n\\t},\\n\\t\\"amd\\": {\\n\\t\\t\\"define\\": false,\\n\\t\\t\\"require\\": false\\n\\t},\\n\\t\\"mocha\\": {\\n\\t\\t\\"after\\": false,\\n\\t\\t\\"afterEach\\": false,\\n\\t\\t\\"before\\": false,\\n\\t\\t\\"beforeEach\\": false,\\n\\t\\t\\"context\\": false,\\n\\t\\t\\"describe\\": false,\\n\\t\\t\\"it\\": false,\\n\\t\\t\\"mocha\\": false,\\n\\t\\t\\"setup\\": false,\\n\\t\\t\\"specify\\": false,\\n\\t\\t\\"suite\\": false,\\n\\t\\t\\"suiteSetup\\": false,\\n\\t\\t\\"suiteTeardown\\": false,\\n\\t\\t\\"teardown\\": false,\\n\\t\\t\\"test\\": false,\\n\\t\\t\\"xcontext\\": false,\\n\\t\\t\\"xdescribe\\": false,\\n\\t\\t\\"xit\\": false,\\n\\t\\t\\"xspecify\\": false\\n\\t},\\n\\t\\"jasmine\\": {\\n\\t\\t\\"afterAll\\": false,\\n\\t\\t\\"afterEach\\": false,\\n\\t\\t\\"beforeAll\\": false,\\n\\t\\t\\"beforeEach\\": false,\\n\\t\\t\\"describe\\": false,\\n\\t\\t\\"expect\\": false,\\n\\t\\t\\"fail\\": false,\\n\\t\\t\\"fdescribe\\": false,\\n\\t\\t\\"fit\\": false,\\n\\t\\t\\"it\\": false,\\n\\t\\t\\"jasmine\\": false,\\n\\t\\t\\"pending\\": false,\\n\\t\\t\\"runs\\": false,\\n\\t\\t\\"spyOn\\": false,\\n\\t\\t\\"waits\\": false,\\n\\t\\t\\"waitsFor\\": false,\\n\\t\\t\\"xdescribe\\": false,\\n\\t\\t\\"xit\\": false\\n\\t},\\n\\t\\"jest\\": {\\n\\t\\t\\"afterEach\\": false,\\n\\t\\t\\"beforeEach\\": false,\\n\\t\\t\\"describe\\": false,\\n\\t\\t\\"expect\\": false,\\n\\t\\t\\"it\\": false,\\n\\t\\t\\"jest\\": false,\\n\\t\\t\\"pit\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"xdescribe\\": false,\\n\\t\\t\\"xit\\": false\\n\\t},\\n\\t\\"qunit\\": {\\n\\t\\t\\"asyncTest\\": false,\\n\\t\\t\\"deepEqual\\": false,\\n\\t\\t\\"equal\\": false,\\n\\t\\t\\"expect\\": false,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"notDeepEqual\\": false,\\n\\t\\t\\"notEqual\\": false,\\n\\t\\t\\"notOk\\": false,\\n\\t\\t\\"notPropEqual\\": false,\\n\\t\\t\\"notStrictEqual\\": false,\\n\\t\\t\\"ok\\": false,\\n\\t\\t\\"propEqual\\": false,\\n\\t\\t\\"QUnit\\": false,\\n\\t\\t\\"raises\\": false,\\n\\t\\t\\"start\\": false,\\n\\t\\t\\"stop\\": false,\\n\\t\\t\\"strictEqual\\": false,\\n\\t\\t\\"test\\": false,\\n\\t\\t\\"throws\\": false\\n\\t},\\n\\t\\"phantomjs\\": {\\n\\t\\t\\"console\\": true,\\n\\t\\t\\"exports\\": true,\\n\\t\\t\\"phantom\\": true,\\n\\t\\t\\"require\\": true,\\n\\t\\t\\"WebPage\\": true\\n\\t},\\n\\t\\"couch\\": {\\n\\t\\t\\"emit\\": false,\\n\\t\\t\\"exports\\": false,\\n\\t\\t\\"getRow\\": false,\\n\\t\\t\\"log\\": false,\\n\\t\\t\\"module\\": false,\\n\\t\\t\\"provides\\": false,\\n\\t\\t\\"require\\": false,\\n\\t\\t\\"respond\\": false,\\n\\t\\t\\"send\\": false,\\n\\t\\t\\"start\\": false,\\n\\t\\t\\"sum\\": false\\n\\t},\\n\\t\\"rhino\\": {\\n\\t\\t\\"defineClass\\": false,\\n\\t\\t\\"deserialize\\": false,\\n\\t\\t\\"gc\\": false,\\n\\t\\t\\"help\\": false,\\n\\t\\t\\"importClass\\": false,\\n\\t\\t\\"importPackage\\": false,\\n\\t\\t\\"java\\": false,\\n\\t\\t\\"load\\": false,\\n\\t\\t\\"loadClass\\": false,\\n\\t\\t\\"Packages\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"quit\\": false,\\n\\t\\t\\"readFile\\": false,\\n\\t\\t\\"readUrl\\": false,\\n\\t\\t\\"runCommand\\": false,\\n\\t\\t\\"seal\\": false,\\n\\t\\t\\"serialize\\": false,\\n\\t\\t\\"spawn\\": false,\\n\\t\\t\\"sync\\": false,\\n\\t\\t\\"toint32\\": false,\\n\\t\\t\\"version\\": false\\n\\t},\\n\\t\\"nashorn\\": {\\n\\t\\t\\"__DIR__\\": false,\\n\\t\\t\\"__FILE__\\": false,\\n\\t\\t\\"__LINE__\\": false,\\n\\t\\t\\"com\\": false,\\n\\t\\t\\"edu\\": false,\\n\\t\\t\\"exit\\": false,\\n\\t\\t\\"Java\\": false,\\n\\t\\t\\"java\\": false,\\n\\t\\t\\"javafx\\": false,\\n\\t\\t\\"JavaImporter\\": false,\\n\\t\\t\\"javax\\": false,\\n\\t\\t\\"JSAdapter\\": false,\\n\\t\\t\\"load\\": false,\\n\\t\\t\\"loadWithNewGlobal\\": false,\\n\\t\\t\\"org\\": false,\\n\\t\\t\\"Packages\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"quit\\": false\\n\\t},\\n\\t\\"wsh\\": {\\n\\t\\t\\"ActiveXObject\\": true,\\n\\t\\t\\"Enumerator\\": true,\\n\\t\\t\\"GetObject\\": true,\\n\\t\\t\\"ScriptEngine\\": true,\\n\\t\\t\\"ScriptEngineBuildVersion\\": true,\\n\\t\\t\\"ScriptEngineMajorVersion\\": true,\\n\\t\\t\\"ScriptEngineMinorVersion\\": true,\\n\\t\\t\\"VBArray\\": true,\\n\\t\\t\\"WScript\\": true,\\n\\t\\t\\"WSH\\": true,\\n\\t\\t\\"XDomainRequest\\": true\\n\\t},\\n\\t\\"jquery\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"jQuery\\": false\\n\\t},\\n\\t\\"yui\\": {\\n\\t\\t\\"Y\\": false,\\n\\t\\t\\"YUI\\": false,\\n\\t\\t\\"YUI_config\\": false\\n\\t},\\n\\t\\"shelljs\\": {\\n\\t\\t\\"cat\\": false,\\n\\t\\t\\"cd\\": false,\\n\\t\\t\\"chmod\\": false,\\n\\t\\t\\"config\\": false,\\n\\t\\t\\"cp\\": false,\\n\\t\\t\\"dirs\\": false,\\n\\t\\t\\"echo\\": false,\\n\\t\\t\\"env\\": false,\\n\\t\\t\\"error\\": false,\\n\\t\\t\\"exec\\": false,\\n\\t\\t\\"exit\\": false,\\n\\t\\t\\"find\\": false,\\n\\t\\t\\"grep\\": false,\\n\\t\\t\\"ls\\": false,\\n\\t\\t\\"ln\\": false,\\n\\t\\t\\"mkdir\\": false,\\n\\t\\t\\"mv\\": false,\\n\\t\\t\\"popd\\": false,\\n\\t\\t\\"pushd\\": false,\\n\\t\\t\\"pwd\\": false,\\n\\t\\t\\"rm\\": false,\\n\\t\\t\\"sed\\": false,\\n\\t\\t\\"target\\": false,\\n\\t\\t\\"tempdir\\": false,\\n\\t\\t\\"test\\": false,\\n\\t\\t\\"which\\": false\\n\\t},\\n\\t\\"prototypejs\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"$$\\": false,\\n\\t\\t\\"$A\\": false,\\n\\t\\t\\"$break\\": false,\\n\\t\\t\\"$continue\\": false,\\n\\t\\t\\"$F\\": false,\\n\\t\\t\\"$H\\": false,\\n\\t\\t\\"$R\\": false,\\n\\t\\t\\"$w\\": false,\\n\\t\\t\\"Abstract\\": false,\\n\\t\\t\\"Ajax\\": false,\\n\\t\\t\\"Autocompleter\\": false,\\n\\t\\t\\"Builder\\": false,\\n\\t\\t\\"Class\\": false,\\n\\t\\t\\"Control\\": false,\\n\\t\\t\\"Draggable\\": false,\\n\\t\\t\\"Draggables\\": false,\\n\\t\\t\\"Droppables\\": false,\\n\\t\\t\\"Effect\\": false,\\n\\t\\t\\"Element\\": false,\\n\\t\\t\\"Enumerable\\": false,\\n\\t\\t\\"Event\\": false,\\n\\t\\t\\"Field\\": false,\\n\\t\\t\\"Form\\": false,\\n\\t\\t\\"Hash\\": false,\\n\\t\\t\\"Insertion\\": false,\\n\\t\\t\\"ObjectRange\\": false,\\n\\t\\t\\"PeriodicalExecuter\\": false,\\n\\t\\t\\"Position\\": false,\\n\\t\\t\\"Prototype\\": false,\\n\\t\\t\\"Scriptaculous\\": false,\\n\\t\\t\\"Selector\\": false,\\n\\t\\t\\"Sortable\\": false,\\n\\t\\t\\"SortableObserver\\": false,\\n\\t\\t\\"Sound\\": false,\\n\\t\\t\\"Template\\": false,\\n\\t\\t\\"Toggle\\": false,\\n\\t\\t\\"Try\\": false\\n\\t},\\n\\t\\"meteor\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"_\\": false,\\n\\t\\t\\"Accounts\\": false,\\n\\t\\t\\"App\\": false,\\n\\t\\t\\"Assets\\": false,\\n\\t\\t\\"Blaze\\": false,\\n\\t\\t\\"check\\": false,\\n\\t\\t\\"Cordova\\": false,\\n\\t\\t\\"DDP\\": false,\\n\\t\\t\\"DDPServer\\": false,\\n\\t\\t\\"Deps\\": false,\\n\\t\\t\\"EJSON\\": false,\\n\\t\\t\\"Email\\": false,\\n\\t\\t\\"HTTP\\": false,\\n\\t\\t\\"Log\\": false,\\n\\t\\t\\"Match\\": false,\\n\\t\\t\\"Meteor\\": false,\\n\\t\\t\\"Mongo\\": false,\\n\\t\\t\\"MongoInternals\\": false,\\n\\t\\t\\"Npm\\": false,\\n\\t\\t\\"Package\\": false,\\n\\t\\t\\"Plugin\\": false,\\n\\t\\t\\"process\\": false,\\n\\t\\t\\"Random\\": false,\\n\\t\\t\\"ReactiveDict\\": false,\\n\\t\\t\\"ReactiveVar\\": false,\\n\\t\\t\\"Router\\": false,\\n\\t\\t\\"Session\\": false,\\n\\t\\t\\"share\\": false,\\n\\t\\t\\"Spacebars\\": false,\\n\\t\\t\\"Template\\": false,\\n\\t\\t\\"Tinytest\\": false,\\n\\t\\t\\"Tracker\\": false,\\n\\t\\t\\"UI\\": false,\\n\\t\\t\\"Utils\\": false,\\n\\t\\t\\"WebApp\\": false,\\n\\t\\t\\"WebAppInternals\\": false\\n\\t},\\n\\t\\"mongo\\": {\\n\\t\\t\\"_isWindows\\": false,\\n\\t\\t\\"_rand\\": false,\\n\\t\\t\\"BulkWriteResult\\": false,\\n\\t\\t\\"cat\\": false,\\n\\t\\t\\"cd\\": false,\\n\\t\\t\\"connect\\": false,\\n\\t\\t\\"db\\": false,\\n\\t\\t\\"getHostName\\": false,\\n\\t\\t\\"getMemInfo\\": false,\\n\\t\\t\\"hostname\\": false,\\n\\t\\t\\"listFiles\\": false,\\n\\t\\t\\"load\\": false,\\n\\t\\t\\"ls\\": false,\\n\\t\\t\\"md5sumFile\\": false,\\n\\t\\t\\"mkdir\\": false,\\n\\t\\t\\"Mongo\\": false,\\n\\t\\t\\"ObjectId\\": false,\\n\\t\\t\\"PlanCache\\": false,\\n\\t\\t\\"print\\": false,\\n\\t\\t\\"printjson\\": false,\\n\\t\\t\\"pwd\\": false,\\n\\t\\t\\"quit\\": false,\\n\\t\\t\\"removeFile\\": false,\\n\\t\\t\\"rs\\": false,\\n\\t\\t\\"sh\\": false,\\n\\t\\t\\"UUID\\": false,\\n\\t\\t\\"version\\": false,\\n\\t\\t\\"WriteResult\\": false\\n\\t},\\n\\t\\"applescript\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"Application\\": false,\\n\\t\\t\\"Automation\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"delay\\": false,\\n\\t\\t\\"Library\\": false,\\n\\t\\t\\"ObjC\\": false,\\n\\t\\t\\"ObjectSpecifier\\": false,\\n\\t\\t\\"Path\\": false,\\n\\t\\t\\"Progress\\": false,\\n\\t\\t\\"Ref\\": false\\n\\t},\\n\\t\\"serviceworker\\": {\\n\\t\\t\\"caches\\": false,\\n\\t\\t\\"Cache\\": false,\\n\\t\\t\\"CacheStorage\\": false,\\n\\t\\t\\"Client\\": false,\\n\\t\\t\\"clients\\": false,\\n\\t\\t\\"Clients\\": false,\\n\\t\\t\\"ExtendableEvent\\": false,\\n\\t\\t\\"ExtendableMessageEvent\\": false,\\n\\t\\t\\"FetchEvent\\": false,\\n\\t\\t\\"importScripts\\": false,\\n\\t\\t\\"registration\\": false,\\n\\t\\t\\"self\\": false,\\n\\t\\t\\"ServiceWorker\\": false,\\n\\t\\t\\"ServiceWorkerContainer\\": false,\\n\\t\\t\\"ServiceWorkerGlobalScope\\": false,\\n\\t\\t\\"ServiceWorkerMessageEvent\\": false,\\n\\t\\t\\"ServiceWorkerRegistration\\": false,\\n\\t\\t\\"skipWaiting\\": false,\\n\\t\\t\\"WindowClient\\": false\\n\\t},\\n\\t\\"atomtest\\": {\\n\\t\\t\\"advanceClock\\": false,\\n\\t\\t\\"fakeClearInterval\\": false,\\n\\t\\t\\"fakeClearTimeout\\": false,\\n\\t\\t\\"fakeSetInterval\\": false,\\n\\t\\t\\"fakeSetTimeout\\": false,\\n\\t\\t\\"resetTimeouts\\": false,\\n\\t\\t\\"waitsForPromise\\": false\\n\\t},\\n\\t\\"embertest\\": {\\n\\t\\t\\"andThen\\": false,\\n\\t\\t\\"click\\": false,\\n\\t\\t\\"currentPath\\": false,\\n\\t\\t\\"currentRouteName\\": false,\\n\\t\\t\\"currentURL\\": false,\\n\\t\\t\\"fillIn\\": false,\\n\\t\\t\\"find\\": false,\\n\\t\\t\\"findWithAssert\\": false,\\n\\t\\t\\"keyEvent\\": false,\\n\\t\\t\\"pauseTest\\": false,\\n\\t\\t\\"triggerEvent\\": false,\\n\\t\\t\\"visit\\": false\\n\\t},\\n\\t\\"protractor\\": {\\n\\t\\t\\"$\\": false,\\n\\t\\t\\"$$\\": false,\\n\\t\\t\\"browser\\": false,\\n\\t\\t\\"By\\": false,\\n\\t\\t\\"by\\": false,\\n\\t\\t\\"DartObject\\": false,\\n\\t\\t\\"element\\": false,\\n\\t\\t\\"protractor\\": false\\n\\t},\\n\\t\\"shared-node-browser\\": {\\n\\t\\t\\"clearInterval\\": false,\\n\\t\\t\\"clearTimeout\\": false,\\n\\t\\t\\"console\\": false,\\n\\t\\t\\"setInterval\\": false,\\n\\t\\t\\"setTimeout\\": false\\n\\t},\\n\\t\\"webextensions\\": {\\n\\t\\t\\"browser\\": false,\\n\\t\\t\\"chrome\\": false,\\n\\t\\t\\"opr\\": false\\n\\t},\\n\\t\\"greasemonkey\\": {\\n\\t\\t\\"GM_addStyle\\": false,\\n\\t\\t\\"GM_deleteValue\\": false,\\n\\t\\t\\"GM_getResourceText\\": false,\\n\\t\\t\\"GM_getResourceURL\\": false,\\n\\t\\t\\"GM_getValue\\": false,\\n\\t\\t\\"GM_info\\": false,\\n\\t\\t\\"GM_listValues\\": false,\\n\\t\\t\\"GM_log\\": false,\\n\\t\\t\\"GM_openInTab\\": false,\\n\\t\\t\\"GM_registerMenuCommand\\": false,\\n\\t\\t\\"GM_setClipboard\\": false,\\n\\t\\t\\"GM_setValue\\": false,\\n\\t\\t\\"GM_xmlhttpRequest\\": false,\\n\\t\\t\\"unsafeWindow\\": false\\n\\t}\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/globals/globals.json\\n ** module id = 239\\n ** module chunks = 0\\n **/","// This file contains that retrieve or validate anything related to the current paths ancestry.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.findParent = findParent;\\nexports.find = find;\\nexports.getFunctionParent = getFunctionParent;\\nexports.getStatementParent = getStatementParent;\\nexports.getEarliestCommonAncestorFrom = getEarliestCommonAncestorFrom;\\nexports.getDeepestCommonAncestorFrom = getDeepestCommonAncestorFrom;\\nexports.getAncestry = getAncestry;\\nexports.inType = inType;\\nexports.inShadow = inShadow;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\n/**\\n * Call the provided `callback` with the `NodePath`s of all the parents.\\n * When the `callback` returns a truthy value, we return that node path.\\n */\\n\\nfunction findParent(callback) {\\n  var path = this;\\n  while (path = path.parentPath) {\\n    if (callback(path)) return path;\\n  }\\n  return null;\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction find(callback) {\\n  var path = this;\\n  do {\\n    if (callback(path)) return path;\\n  } while (path = path.parentPath);\\n  return null;\\n}\\n\\n/**\\n * Get the parent function of the current path.\\n */\\n\\nfunction getFunctionParent() {\\n  return this.findParent(function (path) {\\n    return path.isFunction() || path.isProgram();\\n  });\\n}\\n\\n/**\\n * Walk up the tree until we hit a parent node path in a list.\\n */\\n\\nfunction getStatementParent() {\\n  var path = this;\\n  do {\\n    if (Array.isArray(path.container)) {\\n      return path;\\n    }\\n  } while (path = path.parentPath);\\n}\\n\\n/**\\n * Get the deepest common ancestor and then from it, get the earliest relationship path\\n * to that ancestor.\\n *\\n * Earliest is defined as being \\"before\\" all the other nodes in terms of list container\\n * position and visiting key.\\n */\\n\\nfunction getEarliestCommonAncestorFrom(paths /*: Array<NodePath>*/) /*: NodePath*/ {\\n  return this.getDeepestCommonAncestorFrom(paths, function (deepest, i, ancestries) {\\n    var earliest = undefined;\\n    var keys = t.VISITOR_KEYS[deepest.type];\\n\\n    for (var _iterator = (ancestries /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var ancestry = _ref;\\n\\n      var path = ancestry[i + 1];\\n\\n      // first path\\n      if (!earliest) {\\n        earliest = path;\\n        continue;\\n      }\\n\\n      // handle containers\\n      if (path.listKey && earliest.listKey === path.listKey) {\\n        // we\'re in the same container so check if we\'re earlier\\n        if (path.key < earliest.key) {\\n          earliest = path;\\n          continue;\\n        }\\n      }\\n\\n      // handle keys\\n      var earliestKeyIndex = keys.indexOf(earliest.parentKey);\\n      var currentKeyIndex = keys.indexOf(path.parentKey);\\n      if (earliestKeyIndex > currentKeyIndex) {\\n        // key appears before so it\'s earlier\\n        earliest = path;\\n      }\\n    }\\n\\n    return earliest;\\n  });\\n}\\n\\n/**\\n * Get the earliest path in the tree where the provided `paths` intersect.\\n *\\n * TODO: Possible optimisation target.\\n */\\n\\nfunction getDeepestCommonAncestorFrom(paths /*: Array<NodePath>*/, filter /*:: ?: Function*/) /*: NodePath*/ {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  if (!paths.length) {\\n    return this;\\n  }\\n\\n  if (paths.length === 1) {\\n    return paths[0];\\n  }\\n\\n  // minimum depth of the tree so we know the highest node\\n  var minDepth = Infinity;\\n\\n  // last common ancestor\\n  var lastCommonIndex = undefined,\\n      lastCommon = undefined;\\n\\n  // get the ancestors of the path, breaking when the parent exceeds ourselves\\n  var ancestries = paths.map(function (path) {\\n    var ancestry = [];\\n\\n    do {\\n      ancestry.unshift(path);\\n    } while ((path = path.parentPath) && path !== _this);\\n\\n    // save min depth to avoid going too far in\\n    if (ancestry.length < minDepth) {\\n      minDepth = ancestry.length;\\n    }\\n\\n    return ancestry;\\n  });\\n\\n  // get the first ancestry so we have a seed to assess all other ancestries with\\n  var first = ancestries[0];\\n\\n  // check ancestor equality\\n  depthLoop: for (var i = 0; i < minDepth; i++) {\\n    var shouldMatch = first[i];\\n\\n    for (var _iterator2 = (ancestries /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var ancestry = _ref2;\\n\\n      if (ancestry[i] !== shouldMatch) {\\n        // we\'ve hit a snag\\n        break depthLoop;\\n      }\\n    }\\n\\n    // next iteration may break so store these so they can be returned\\n    lastCommonIndex = i;\\n    lastCommon = shouldMatch;\\n  }\\n\\n  if (lastCommon) {\\n    if (filter) {\\n      return filter(lastCommon, lastCommonIndex, ancestries);\\n    } else {\\n      return lastCommon;\\n    }\\n  } else {\\n    throw new Error(\\"Couldn\'t find intersection\\");\\n  }\\n}\\n\\n/**\\n * Build an array of node paths containing the entire ancestry of the current node path.\\n *\\n * NOTE: The current node path is included in this.\\n */\\n\\nfunction getAncestry() {\\n  var path = this;\\n  var paths = [];\\n  do {\\n    paths.push(path);\\n  } while (path = path.parentPath);\\n  return paths;\\n}\\n\\nfunction inType() {\\n  var path = this;\\n  while (path) {\\n    for (var _iterator3 = (arguments /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n      var _ref3;\\n\\n      if (_isArray3) {\\n        if (_i3 >= _iterator3.length) break;\\n        _ref3 = _iterator3[_i3++];\\n      } else {\\n        _i3 = _iterator3.next();\\n        if (_i3.done) break;\\n        _ref3 = _i3.value;\\n      }\\n\\n      var type = _ref3;\\n\\n      if (path.node.type === type) return true;\\n    }\\n    path = path.parentPath;\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Check if we\'re inside a shadowed function.\\n */\\n\\nfunction inShadow(key /*:: ?*/) {\\n  var path = this;\\n  do {\\n    if (path.isFunction()) {\\n      var shadow = path.node.shadow;\\n      if (shadow) {\\n        // this is because sometimes we may have a `shadow` value of:\\n        //\\n        //   { this: false }\\n        //\\n        // we need to catch this case if `inShadow` has been passed a `key`\\n        if (!key || shadow[key] !== false) {\\n          return path;\\n        }\\n      } else if (path.isArrowFunctionExpression()) {\\n        return path;\\n      }\\n\\n      // normal function, we\'ve found our function context\\n      return null;\\n    }\\n  } while (path = path.parentPath);\\n  return null;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/ancestry.js\\n ** module id = 240\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getTypeAnnotation = getTypeAnnotation;\\nexports._getTypeAnnotation = _getTypeAnnotation;\\nexports.isBaseType = isBaseType;\\nexports.couldBeBaseType = couldBeBaseType;\\nexports.baseTypeStrictlyMatches = baseTypeStrictlyMatches;\\nexports.isGenericType = isGenericType;\\n\\nvar _inferers = require(\\"./inferers\\");\\n\\nvar inferers = _interopRequireWildcard(_inferers);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Infer the type of the current `NodePath`.\\n */\\n\\n/*:: import type NodePath from \\"./index\\";*/\\nfunction getTypeAnnotation() /*: Object*/ {\\n  if (this.typeAnnotation) return this.typeAnnotation;\\n\\n  var type = this._getTypeAnnotation() || t.anyTypeAnnotation();\\n  if (t.isTypeAnnotation(type)) type = type.typeAnnotation;\\n  return this.typeAnnotation = type;\\n}\\n\\n/**\\n * todo: split up this method\\n */\\n\\nfunction _getTypeAnnotation() /*: ?Object*/ {\\n  var node = this.node;\\n\\n  if (!node) {\\n    // handle initializerless variables, add in checks for loop initializers too\\n    if (this.key === \\"init\\" && this.parentPath.isVariableDeclarator()) {\\n      var declar = this.parentPath.parentPath;\\n      var declarParent = declar.parentPath;\\n\\n      // for (let NODE in bar) {}\\n      if (declar.key === \\"left\\" && declarParent.isForInStatement()) {\\n        return t.stringTypeAnnotation();\\n      }\\n\\n      // for (let NODE of bar) {}\\n      if (declar.key === \\"left\\" && declarParent.isForOfStatement()) {\\n        return t.anyTypeAnnotation();\\n      }\\n\\n      return t.voidTypeAnnotation();\\n    } else {\\n      return;\\n    }\\n  }\\n\\n  if (node.typeAnnotation) {\\n    return node.typeAnnotation;\\n  }\\n\\n  var inferer = inferers[node.type];\\n  if (inferer) {\\n    return inferer.call(this, node);\\n  }\\n\\n  inferer = inferers[this.parentPath.type];\\n  if (inferer && inferer.validParent) {\\n    return this.parentPath.getTypeAnnotation();\\n  }\\n}\\n\\nfunction isBaseType(baseName /*: string*/, soft /*:: ?: boolean*/) /*: boolean*/ {\\n  return _isBaseType(baseName, this.getTypeAnnotation(), soft);\\n}\\n\\nfunction _isBaseType(baseName /*: string*/, type, /*:: ?*/soft /*:: ?*/) /*: boolean*/ {\\n  if (baseName === \\"string\\") {\\n    return t.isStringTypeAnnotation(type);\\n  } else if (baseName === \\"number\\") {\\n    return t.isNumberTypeAnnotation(type);\\n  } else if (baseName === \\"boolean\\") {\\n    return t.isBooleanTypeAnnotation(type);\\n  } else if (baseName === \\"any\\") {\\n    return t.isAnyTypeAnnotation(type);\\n  } else if (baseName === \\"mixed\\") {\\n    return t.isMixedTypeAnnotation(type);\\n  } else if (baseName === \\"void\\") {\\n    return t.isVoidTypeAnnotation(type);\\n  } else {\\n    if (soft) {\\n      return false;\\n    } else {\\n      throw new Error(\\"Unknown base type \\" + baseName);\\n    }\\n  }\\n}\\n\\nfunction couldBeBaseType(name /*: string*/) /*: boolean*/ {\\n  var type = this.getTypeAnnotation();\\n  if (t.isAnyTypeAnnotation(type)) return true;\\n\\n  if (t.isUnionTypeAnnotation(type)) {\\n    for (var _iterator = (type.types /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var type2 = _ref;\\n\\n      if (t.isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  } else {\\n    return _isBaseType(name, type, true);\\n  }\\n}\\n\\nfunction baseTypeStrictlyMatches(right /*: NodePath*/) {\\n  var left = this.getTypeAnnotation();\\n  right = right.getTypeAnnotation();\\n\\n  if (!t.isAnyTypeAnnotation(left) && t.isFlowBaseAnnotation(left)) {\\n    return right.type === left.type;\\n  }\\n}\\n\\nfunction isGenericType(genericName /*: string*/) /*: boolean*/ {\\n  var type = this.getTypeAnnotation();\\n  return t.isGenericTypeAnnotation(type) && t.isIdentifier(type.id, { name: genericName });\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/inference/index.js\\n ** module id = 241\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequire = require(\\"babel-runtime/helpers/interop-require\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.VariableDeclarator = VariableDeclarator;\\nexports.TypeCastExpression = TypeCastExpression;\\nexports.NewExpression = NewExpression;\\nexports.TemplateLiteral = TemplateLiteral;\\nexports.UnaryExpression = UnaryExpression;\\nexports.BinaryExpression = BinaryExpression;\\nexports.LogicalExpression = LogicalExpression;\\nexports.ConditionalExpression = ConditionalExpression;\\nexports.SequenceExpression = SequenceExpression;\\nexports.AssignmentExpression = AssignmentExpression;\\nexports.UpdateExpression = UpdateExpression;\\nexports.StringLiteral = StringLiteral;\\nexports.NumericLiteral = NumericLiteral;\\nexports.BooleanLiteral = BooleanLiteral;\\nexports.NullLiteral = NullLiteral;\\nexports.RegExpLiteral = RegExpLiteral;\\nexports.ObjectExpression = ObjectExpression;\\nexports.ArrayExpression = ArrayExpression;\\nexports.RestElement = RestElement;\\nexports.CallExpression = CallExpression;\\nexports.TaggedTemplateExpression = TaggedTemplateExpression;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _infererReference = require(\\"./inferer-reference\\");\\n\\nexports.Identifier = _interopRequire(_infererReference);\\n\\nfunction VariableDeclarator() {\\n  var id = this.get(\\"id\\");\\n\\n  if (id.isIdentifier()) {\\n    return this.get(\\"init\\").getTypeAnnotation();\\n  } else {\\n    return;\\n  }\\n}\\n\\nfunction TypeCastExpression(node) {\\n  return node.typeAnnotation;\\n}\\n\\nTypeCastExpression.validParent = true;\\n\\nfunction NewExpression(node) {\\n  if (this.get(\\"callee\\").isIdentifier()) {\\n    // only resolve identifier callee\\n    return t.genericTypeAnnotation(node.callee);\\n  }\\n}\\n\\nfunction TemplateLiteral() {\\n  return t.stringTypeAnnotation();\\n}\\n\\nfunction UnaryExpression(node) {\\n  var operator = node.operator;\\n\\n  if (operator === \\"void\\") {\\n    return t.voidTypeAnnotation();\\n  } else if (t.NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.numberTypeAnnotation();\\n  } else if (t.STRING_UNARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.stringTypeAnnotation();\\n  } else if (t.BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.booleanTypeAnnotation();\\n  }\\n}\\n\\nfunction BinaryExpression(node) {\\n  var operator = node.operator;\\n\\n  if (t.NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.numberTypeAnnotation();\\n  } else if (t.BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) {\\n    return t.booleanTypeAnnotation();\\n  } else if (operator === \\"+\\") {\\n    var right = this.get(\\"right\\");\\n    var left = this.get(\\"left\\");\\n\\n    if (left.isBaseType(\\"number\\") && right.isBaseType(\\"number\\")) {\\n      // both numbers so this will be a number\\n      return t.numberTypeAnnotation();\\n    } else if (left.isBaseType(\\"string\\") || right.isBaseType(\\"string\\")) {\\n      // one is a string so the result will be a string\\n      return t.stringTypeAnnotation();\\n    }\\n\\n    // unsure if left and right are strings or numbers so stay on the safe side\\n    return t.unionTypeAnnotation([t.stringTypeAnnotation(), t.numberTypeAnnotation()]);\\n  }\\n}\\n\\nfunction LogicalExpression() {\\n  return t.createUnionTypeAnnotation([this.get(\\"left\\").getTypeAnnotation(), this.get(\\"right\\").getTypeAnnotation()]);\\n}\\n\\nfunction ConditionalExpression() {\\n  return t.createUnionTypeAnnotation([this.get(\\"consequent\\").getTypeAnnotation(), this.get(\\"alternate\\").getTypeAnnotation()]);\\n}\\n\\nfunction SequenceExpression() {\\n  return this.get(\\"expressions\\").pop().getTypeAnnotation();\\n}\\n\\nfunction AssignmentExpression() {\\n  return this.get(\\"right\\").getTypeAnnotation();\\n}\\n\\nfunction UpdateExpression(node) {\\n  var operator = node.operator;\\n  if (operator === \\"++\\" || operator === \\"--\\") {\\n    return t.numberTypeAnnotation();\\n  }\\n}\\n\\nfunction StringLiteral() {\\n  return t.stringTypeAnnotation();\\n}\\n\\nfunction NumericLiteral() {\\n  return t.numberTypeAnnotation();\\n}\\n\\nfunction BooleanLiteral() {\\n  return t.booleanTypeAnnotation();\\n}\\n\\nfunction NullLiteral() {\\n  return t.nullLiteralTypeAnnotation();\\n}\\n\\nfunction RegExpLiteral() {\\n  return t.genericTypeAnnotation(t.identifier(\\"RegExp\\"));\\n}\\n\\nfunction ObjectExpression() {\\n  return t.genericTypeAnnotation(t.identifier(\\"Object\\"));\\n}\\n\\nfunction ArrayExpression() {\\n  return t.genericTypeAnnotation(t.identifier(\\"Array\\"));\\n}\\n\\nfunction RestElement() {\\n  return ArrayExpression();\\n}\\n\\nRestElement.validParent = true;\\n\\nfunction Func() {\\n  return t.genericTypeAnnotation(t.identifier(\\"Function\\"));\\n}\\n\\nexports.Function = Func;\\nexports.Class = Func;\\n\\nfunction CallExpression() {\\n  return resolveCall(this.get(\\"callee\\"));\\n}\\n\\nfunction TaggedTemplateExpression() {\\n  return resolveCall(this.get(\\"tag\\"));\\n}\\n\\nfunction resolveCall(callee) {\\n  callee = callee.resolve();\\n\\n  if (callee.isFunction()) {\\n    if (callee.is(\\"async\\")) {\\n      if (callee.is(\\"generator\\")) {\\n        return t.genericTypeAnnotation(t.identifier(\\"AsyncIterator\\"));\\n      } else {\\n        return t.genericTypeAnnotation(t.identifier(\\"Promise\\"));\\n      }\\n    } else {\\n      if (callee.node.returnType) {\\n        return callee.node.returnType;\\n      } else {\\n        // todo: get union type of all return arguments\\n      }\\n    }\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/inference/inferers.js\\n ** module id = 242\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type NodePath from \\"../index\\";*/\\nexports[\\"default\\"] = function (node /*: Object*/) {\\n  if (!this.isReferenced()) return;\\n\\n  // check if a binding exists of this value and if so then return a union type of all\\n  // possible types that the binding could be\\n  var binding = this.scope.getBinding(node.name);\\n  if (binding) {\\n    if (binding.identifier.typeAnnotation) {\\n      return binding.identifier.typeAnnotation;\\n    } else {\\n      return getTypeAnnotationBindingConstantViolations(this, node.name);\\n    }\\n  }\\n\\n  // built-in values\\n  if (node.name === \\"undefined\\") {\\n    return t.voidTypeAnnotation();\\n  } else if (node.name === \\"NaN\\" || node.name === \\"Infinity\\") {\\n    return t.numberTypeAnnotation();\\n  } else if (node.name === \\"arguments\\") {\\n    // todo\\n  }\\n};\\n\\nfunction getTypeAnnotationBindingConstantViolations(path, name) {\\n  var binding = path.scope.getBinding(name);\\n\\n  var types = [];\\n  path.typeAnnotation = t.unionTypeAnnotation(types);\\n\\n  var functionConstantViolations = [];\\n  var constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations);\\n\\n  var testType = getConditionalAnnotation(path, name);\\n  if (testType) {\\n    (function () {\\n      var testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement);\\n\\n      // remove constant violations observed before the IfStatement\\n      constantViolations = constantViolations.filter(function (path) {\\n        return testConstantViolations.indexOf(path) < 0;\\n      });\\n\\n      // clear current types and add in observed test type\\n      types.push(testType.typeAnnotation);\\n    })();\\n  }\\n\\n  if (constantViolations.length) {\\n    // pick one constant from each scope which will represent the last possible\\n    // control flow path that it could\'ve taken/been\\n    /* This code is broken for the following problems:\\n     * It thinks that assignments can only happen in scopes.\\n     * What about conditionals, if statements without block,\\n     * or guarded assignments.\\n     * It also checks to see if one of the assignments is in the\\n     * same scope and uses that as the only \\"violation\\". However,\\n     * the binding is returned by `getConstantViolationsBefore` so we for\\n     * sure always going to return that as the only \\"violation\\".\\n    let rawConstantViolations = constantViolations.reverse();\\n    let visitedScopes = [];\\n    constantViolations = [];\\n    for (let violation of (rawConstantViolations: Array<NodePath>)) {\\n      let violationScope = violation.scope;\\n      if (visitedScopes.indexOf(violationScope) >= 0) continue;\\n       visitedScopes.push(violationScope);\\n      constantViolations.push(violation);\\n       if (violationScope === path.scope) {\\n        constantViolations = [violation];\\n        break;\\n      }\\n    }*/\\n\\n    // add back on function constant violations since we can\'t track calls\\n    constantViolations = constantViolations.concat(functionConstantViolations);\\n\\n    // push on inferred types of violated paths\\n    for (var _iterator = (constantViolations /*: Array<NodePath>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var violation = _ref;\\n\\n      types.push(violation.getTypeAnnotation());\\n    }\\n  }\\n\\n  if (types.length) {\\n    return t.createUnionTypeAnnotation(types);\\n  }\\n}\\n\\nfunction getConstantViolationsBefore(binding, path, functions) {\\n  var violations = binding.constantViolations.slice();\\n  violations.unshift(binding.path);\\n  return violations.filter(function (violation) {\\n    violation = violation.resolve();\\n    var status = violation._guessExecutionStatusRelativeTo(path);\\n    if (functions && status === \\"function\\") functions.push(violation);\\n    return status === \\"before\\";\\n  });\\n}\\n\\nfunction inferAnnotationFromBinaryExpression(name, path) {\\n  var operator = path.node.operator;\\n\\n  var right = path.get(\\"right\\").resolve();\\n  var left = path.get(\\"left\\").resolve();\\n\\n  var target = undefined;\\n  if (left.isIdentifier({ name: name })) {\\n    target = right;\\n  } else if (right.isIdentifier({ name: name })) {\\n    target = left;\\n  }\\n  if (target) {\\n    if (operator === \\"===\\") {\\n      return target.getTypeAnnotation();\\n    } else if (t.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) {\\n      return t.numberTypeAnnotation();\\n    } else {\\n      return;\\n    }\\n  } else {\\n    if (operator !== \\"===\\") return;\\n  }\\n\\n  //\\n  var typeofPath = undefined;\\n  var typePath = undefined;\\n  if (left.isUnaryExpression({ operator: \\"typeof\\" })) {\\n    typeofPath = left;\\n    typePath = right;\\n  } else if (right.isUnaryExpression({ operator: \\"typeof\\" })) {\\n    typeofPath = right;\\n    typePath = left;\\n  }\\n  if (!typePath && !typeofPath) return;\\n\\n  // ensure that the type path is a Literal\\n  typePath = typePath.resolve();\\n  if (!typePath.isLiteral()) return;\\n\\n  // and that it\'s a string so we can infer it\\n  var typeValue = typePath.node.value;\\n  if (typeof typeValue !== \\"string\\") return;\\n\\n  // and that the argument of the typeof path references us!\\n  if (!typeofPath.get(\\"argument\\").isIdentifier({ name: name })) return;\\n\\n  // turn type value into a type annotation\\n  return t.createTypeAnnotationBasedOnTypeof(typePath.node.value);\\n}\\n\\nfunction getParentConditionalPath(path) {\\n  var parentPath = undefined;\\n  while (parentPath = path.parentPath) {\\n    if (parentPath.isIfStatement() || parentPath.isConditionalExpression()) {\\n      if (path.key === \\"test\\") {\\n        return;\\n      } else {\\n        return parentPath;\\n      }\\n    } else {\\n      path = parentPath;\\n    }\\n  }\\n}\\n\\nfunction getConditionalAnnotation(path, name) {\\n  var ifStatement = getParentConditionalPath(path);\\n  if (!ifStatement) return;\\n\\n  var test = ifStatement.get(\\"test\\");\\n  var paths = [test];\\n  var types = [];\\n\\n  do {\\n    var _path = paths.shift().resolve();\\n\\n    if (_path.isLogicalExpression()) {\\n      paths.push(_path.get(\\"left\\"));\\n      paths.push(_path.get(\\"right\\"));\\n    }\\n\\n    if (_path.isBinaryExpression()) {\\n      var type = inferAnnotationFromBinaryExpression(name, _path);\\n      if (type) types.push(type);\\n    }\\n  } while (paths.length);\\n\\n  if (types.length) {\\n    return {\\n      typeAnnotation: t.createUnionTypeAnnotation(types),\\n      ifStatement: ifStatement\\n    };\\n  } else {\\n    return getConditionalAnnotation(ifStatement, name);\\n  }\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/inference/inferer-reference.js\\n ** module id = 243\\n ** module chunks = 0\\n **/","// This file contains methods responsible for replacing a node with another.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.replaceWithMultiple = replaceWithMultiple;\\nexports.replaceWithSourceString = replaceWithSourceString;\\nexports.replaceWith = replaceWith;\\nexports._replaceWith = _replaceWith;\\nexports.replaceExpressionWithStatements = replaceExpressionWithStatements;\\nexports.replaceInline = replaceInline;\\n\\nvar _babelCodeFrame = require(\\"babel-code-frame\\");\\n\\nvar _babelCodeFrame2 = _interopRequireDefault(_babelCodeFrame);\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _index3 = require(\\"./index\\");\\n\\nvar _index4 = _interopRequireDefault(_index3);\\n\\nvar _babylon = require(\\"babylon\\");\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar hoistVariablesVisitor = {\\n  Function: function Function(path) {\\n    path.skip();\\n  },\\n\\n  VariableDeclaration: function VariableDeclaration(path) {\\n    if (path.node.kind !== \\"var\\") return;\\n\\n    var bindings = path.getBindingIdentifiers();\\n    for (var key in bindings) {\\n      path.scope.push({ id: bindings[key] });\\n    }\\n\\n    var exprs = [];\\n\\n    for (var _iterator = (path.node.declarations /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var declar = _ref;\\n\\n      if (declar.init) {\\n        exprs.push(t.expressionStatement(t.assignmentExpression(\\"=\\", declar.id, declar.init)));\\n      }\\n    }\\n\\n    path.replaceWithMultiple(exprs);\\n  }\\n};\\n\\n/**\\n * Replace a node with an array of multiple. This method performs the following steps:\\n *\\n *  - Inherit the comments of first provided node with that of the current node.\\n *  - Insert the provided nodes after the current node.\\n *  - Remove the current node.\\n */\\n\\nfunction replaceWithMultiple(nodes /*: Array<Object>*/) {\\n  this.resync();\\n\\n  nodes = this._verifyNodeList(nodes);\\n  t.inheritLeadingComments(nodes[0], this.node);\\n  t.inheritTrailingComments(nodes[nodes.length - 1], this.node);\\n  this.node = this.container[this.key] = null;\\n  this.insertAfter(nodes);\\n\\n  if (this.node) {\\n    this.requeue();\\n  } else {\\n    this.remove();\\n  }\\n}\\n\\n/**\\n * Parse a string as an expression and replace the current node with the result.\\n *\\n * NOTE: This is typically not a good idea to use. Building source strings when\\n * transforming ASTs is an antipattern and SHOULD NOT be encouraged. Even if it\'s\\n * easier to use, your transforms will be extremely brittle.\\n */\\n\\nfunction replaceWithSourceString(replacement) {\\n  this.resync();\\n\\n  try {\\n    replacement = \\"(\\" + replacement + \\")\\";\\n    replacement = _babylon.parse(replacement);\\n  } catch (err) {\\n    var loc = err.loc;\\n    if (loc) {\\n      err.message += \\" - make sure this is an expression.\\";\\n      err.message += \\"\\\\n\\" + _babelCodeFrame2[\\"default\\"](replacement, loc.line, loc.column + 1);\\n    }\\n    throw err;\\n  }\\n\\n  replacement = replacement.program.body[0].expression;\\n  _index2[\\"default\\"].removeProperties(replacement);\\n  return this.replaceWith(replacement);\\n}\\n\\n/**\\n * Replace the current node with another.\\n */\\n\\nfunction replaceWith(replacement) {\\n  this.resync();\\n\\n  if (this.removed) {\\n    throw new Error(\\"You can\'t replace this node, we\'ve already removed it\\");\\n  }\\n\\n  if (replacement instanceof _index4[\\"default\\"]) {\\n    replacement = replacement.node;\\n  }\\n\\n  if (!replacement) {\\n    throw new Error(\\"You passed `path.replaceWith()` a falsy node, use `path.remove()` instead\\");\\n  }\\n\\n  if (this.node === replacement) {\\n    return;\\n  }\\n\\n  if (this.isProgram() && !t.isProgram(replacement)) {\\n    throw new Error(\\"You can only replace a Program root node with another Program node\\");\\n  }\\n\\n  if (Array.isArray(replacement)) {\\n    throw new Error(\\"Don\'t use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`\\");\\n  }\\n\\n  if (typeof replacement === \\"string\\") {\\n    throw new Error(\\"Don\'t use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`\\");\\n  }\\n\\n  // replacing a statement with an expression so wrap it in an expression statement\\n  if (this.isNodeType(\\"Statement\\") && t.isExpression(replacement) && !this.canHaveVariableDeclarationOrExpression()) {\\n    replacement = t.expressionStatement(replacement);\\n  }\\n\\n  // replacing an expression with a statement so let\'s explode it\\n  if (this.isNodeType(\\"Expression\\") && t.isStatement(replacement)) {\\n    return this.replaceExpressionWithStatements([replacement]);\\n  }\\n\\n  var oldNode = this.node;\\n  if (oldNode) {\\n    t.inheritsComments(replacement, oldNode);\\n    t.removeComments(oldNode);\\n  }\\n\\n  // replace the node\\n  this._replaceWith(replacement);\\n  this.type = replacement.type;\\n\\n  // potentially create new scope\\n  this.setScope();\\n\\n  // requeue for visiting\\n  this.requeue();\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction _replaceWith(node) {\\n  if (!this.container) {\\n    throw new ReferenceError(\\"Container is falsy\\");\\n  }\\n\\n  if (this.inList) {\\n    t.validate(this.parent, this.key, [node]);\\n  } else {\\n    t.validate(this.parent, this.key, node);\\n  }\\n\\n  this.debug(function () {\\n    return \\"Replace with \\" + (node && node.type);\\n  });\\n\\n  this.node = this.container[this.key] = node;\\n}\\n\\n/**\\n * This method takes an array of statements nodes and then explodes it\\n * into expressions. This method retains completion records which is\\n * extremely important to retain original semantics.\\n */\\n\\nfunction replaceExpressionWithStatements(nodes /*: Array<Object>*/) {\\n  this.resync();\\n\\n  var toSequenceExpression = t.toSequenceExpression(nodes, this.scope);\\n\\n  if (t.isSequenceExpression(toSequenceExpression)) {\\n    var exprs = toSequenceExpression.expressions;\\n\\n    if (exprs.length >= 2 && this.parentPath.isExpressionStatement()) {\\n      this._maybePopFromStatements(exprs);\\n    }\\n\\n    // could be just one element due to the previous maybe popping\\n    if (exprs.length === 1) {\\n      this.replaceWith(exprs[0]);\\n    } else {\\n      this.replaceWith(toSequenceExpression);\\n    }\\n  } else if (toSequenceExpression) {\\n    this.replaceWith(toSequenceExpression);\\n  } else {\\n    var container = t.functionExpression(null, [], t.blockStatement(nodes));\\n    container.shadow = true;\\n\\n    this.replaceWith(t.callExpression(container, []));\\n    this.traverse(hoistVariablesVisitor);\\n\\n    // add implicit returns to all ending expression statements\\n    var completionRecords /*: Array<NodePath>*/ = this.get(\\"callee\\").getCompletionRecords();\\n    for (var _iterator2 = completionRecords, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var path = _ref2;\\n\\n      if (!path.isExpressionStatement()) continue;\\n\\n      var loop = path.findParent(function (path) {\\n        return path.isLoop();\\n      });\\n      if (loop) {\\n        var callee = this.get(\\"callee\\");\\n\\n        var uid = callee.scope.generateDeclaredUidIdentifier(\\"ret\\");\\n        callee.get(\\"body\\").pushContainer(\\"body\\", t.returnStatement(uid));\\n\\n        path.get(\\"expression\\").replaceWith(t.assignmentExpression(\\"=\\", uid, path.node.expression));\\n      } else {\\n        path.replaceWith(t.returnStatement(path.node.expression));\\n      }\\n    }\\n\\n    return this.node;\\n  }\\n}\\n\\nfunction replaceInline(nodes /*: Object | Array<Object>*/) {\\n  this.resync();\\n\\n  if (Array.isArray(nodes)) {\\n    if (Array.isArray(this.container)) {\\n      nodes = this._verifyNodeList(nodes);\\n      this._containerInsertAfter(nodes);\\n      return this.remove();\\n    } else {\\n      return this.replaceWithMultiple(nodes);\\n    }\\n  } else {\\n    return this.replaceWith(nodes);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/replacement.js\\n ** module id = 244\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _lineNumbers = require(\\"line-numbers\\");\\n\\nvar _lineNumbers2 = _interopRequireDefault(_lineNumbers);\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _jsTokens = require(\\"js-tokens\\");\\n\\nvar _jsTokens2 = _interopRequireDefault(_jsTokens);\\n\\nvar _esutils = require(\\"esutils\\");\\n\\nvar _esutils2 = _interopRequireDefault(_esutils);\\n\\nvar _chalk = require(\\"chalk\\");\\n\\nvar _chalk2 = _interopRequireDefault(_chalk);\\n\\n/**\\n * Chalk styles for token types.\\n */\\n\\nvar defs = {\\n  string: _chalk2[\\"default\\"].red,\\n  punctuator: _chalk2[\\"default\\"].bold,\\n  curly: _chalk2[\\"default\\"].green,\\n  parens: _chalk2[\\"default\\"].blue.bold,\\n  square: _chalk2[\\"default\\"].yellow,\\n  keyword: _chalk2[\\"default\\"].cyan,\\n  number: _chalk2[\\"default\\"].magenta,\\n  regex: _chalk2[\\"default\\"].magenta,\\n  comment: _chalk2[\\"default\\"].grey,\\n  invalid: _chalk2[\\"default\\"].inverse\\n};\\n\\n/**\\n * RegExp to test for newlines in terminal.\\n */\\n\\nvar NEWLINE = /\\\\r\\\\n|[\\\\n\\\\r\\\\u2028\\\\u2029]/;\\n\\n/**\\n * Get the type of token, specifying punctuator type.\\n */\\n\\nfunction getTokenType(match) {\\n  var token = _jsTokens2[\\"default\\"].matchToToken(match);\\n  if (token.type === \\"name\\" && _esutils2[\\"default\\"].keyword.isReservedWordES6(token.value)) {\\n    return \\"keyword\\";\\n  }\\n\\n  if (token.type === \\"punctuator\\") {\\n    switch (token.value) {\\n      case \\"{\\":\\n      case \\"}\\":\\n        return \\"curly\\";\\n      case \\"(\\":\\n      case \\")\\":\\n        return \\"parens\\";\\n      case \\"[\\":\\n      case \\"]\\":\\n        return \\"square\\";\\n    }\\n  }\\n\\n  return token.type;\\n}\\n\\n/**\\n * Highlight `text`.\\n */\\n\\nfunction highlight(text /*: string*/) {\\n  return text.replace(_jsTokens2[\\"default\\"], function () {\\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\\n      args[_key] = arguments[_key];\\n    }\\n\\n    var type = getTokenType(args);\\n    var colorize = defs[type];\\n    if (colorize) {\\n      return args[0].split(NEWLINE).map(function (str) {\\n        return colorize(str);\\n      }).join(\\"\\\\n\\");\\n    } else {\\n      return args[0];\\n    }\\n  });\\n}\\n\\n/**\\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\\n */\\n\\nexports[\\"default\\"] = function (rawLines /*: string*/, lineNumber /*: number*/, colNumber /*: number*/) /*: string*/ {\\n  var opts /*: Object*/ = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\\n\\n  colNumber = Math.max(colNumber, 0);\\n\\n  var highlighted = opts.highlightCode && _chalk2[\\"default\\"].supportsColor;\\n  if (highlighted) rawLines = highlight(rawLines);\\n\\n  var lines = rawLines.split(NEWLINE);\\n  var start = Math.max(lineNumber - 3, 0);\\n  var end = Math.min(lines.length, lineNumber + 3);\\n\\n  if (!lineNumber && !colNumber) {\\n    start = 0;\\n    end = lines.length;\\n  }\\n\\n  var frame = _lineNumbers2[\\"default\\"](lines.slice(start, end), {\\n    start: start + 1,\\n    before: \\"  \\",\\n    after: \\" | \\",\\n    transform: function transform(params) {\\n      if (params.number !== lineNumber) {\\n        return;\\n      }\\n\\n      if (colNumber) {\\n        params.line += \\"\\\\n\\" + params.before + _repeating2[\\"default\\"](\\" \\", params.width) + params.after + _repeating2[\\"default\\"](\\" \\", colNumber - 1) + \\"^\\";\\n      }\\n\\n      params.before = params.before.replace(/^./, \\">\\");\\n    }\\n  }).join(\\"\\\\n\\");\\n\\n  if (highlighted) {\\n    return _chalk2[\\"default\\"].reset(frame);\\n  } else {\\n    return frame;\\n  }\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/lib/index.js\\n ** module id = 245\\n ** module chunks = 0\\n **/","// Copyright 2014, 2015 Simon Lydell\\n// X11 (“MIT”) Licensed. (See LICENSE.)\\n\\nvar leftPad = require(\\"left-pad\\")\\n\\nfunction get(options, key, defaultValue) {\\n  return (key in options ? options[key] : defaultValue)\\n}\\n\\nfunction lineNumbers(code, options) {\\n  var getOption = get.bind(null, options || {})\\n  var transform = getOption(\\"transform\\", Function.prototype)\\n  var padding   = getOption(\\"padding\\", \\" \\")\\n  var before    = getOption(\\"before\\", \\" \\")\\n  var after     = getOption(\\"after\\", \\" | \\")\\n  var start     = getOption(\\"start\\", 1)\\n  var isArray   = Array.isArray(code)\\n  var lines     = (isArray ? code : code.split(\\"\\\\n\\"))\\n  var end       = start + lines.length - 1\\n  var width     = String(end).length\\n  var numbered  = lines.map(function(line, index) {\\n    var number  = start + index\\n    var params  = {before: before, number: number, width: width, after: after,\\n                   line: line}\\n    transform(params)\\n    return params.before + leftPad(params.number, width, padding) +\\n           params.after + params.line\\n  })\\n  return (isArray ? numbered : numbered.join(\\"\\\\n\\"))\\n}\\n\\nmodule.exports = lineNumbers\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/index.js\\n ** module id = 246\\n ** module chunks = 0\\n **/","module.exports = leftpad;\\n\\nfunction leftpad (str, len, ch) {\\n  str = String(str);\\n\\n  var i = -1;\\n\\n  ch || (ch = \' \');\\n  len = len - str.length;\\n\\n\\n  while (++i < len) {\\n    str = ch + str;\\n  }\\n\\n  return str;\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/line-numbers/~/left-pad/index.js\\n ** module id = 247\\n ** module chunks = 0\\n **/","// Copyright 2014, 2015 Simon Lydell\\n// X11 (“MIT”) Licensed. (See LICENSE.)\\n\\n// This regex comes from regex.coffee, and is inserted here by generate-index.js\\n// (run `npm run build`).\\nmodule.exports = /(([\'\\"])(?:(?!\\\\2|\\\\\\\\).|\\\\\\\\(?:\\\\r\\\\n|[\\\\s\\\\S]))*(\\\\2)?|`(?:[^`\\\\\\\\$]|\\\\\\\\[\\\\s\\\\S]|\\\\$(?!\\\\{)|\\\\$\\\\{(?:[^{}]|\\\\{[^}]*\\\\}?)*\\\\}?)*(`)?)|(\\\\/\\\\/.*)|(\\\\/\\\\*(?:[^*]|\\\\*(?!\\\\/))*(\\\\*\\\\/)?)|(\\\\/(?!\\\\*)(?:\\\\[(?:(?![\\\\]\\\\\\\\]).|\\\\\\\\.)*\\\\]|(?![\\\\/\\\\]\\\\\\\\]).|\\\\\\\\.)+\\\\/(?:(?!\\\\s*(?:\\\\b|[\\\\u0080-\\\\uFFFF$\\\\\\\\\'\\"~({]|[+\\\\-!](?!=)|\\\\.?\\\\d))|[gmiyu]{1,5}\\\\b(?![\\\\u0080-\\\\uFFFF$\\\\\\\\]|\\\\s*(?:[+\\\\-*%&|^<>!=?({]|\\\\/(?![\\\\/*])))))|((?:0[xX][\\\\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.?)(?:[eE][+-]?\\\\d+)?))|((?!\\\\d)(?:(?!\\\\s)[$\\\\w\\\\u0080-\\\\uFFFF]|\\\\\\\\u[\\\\da-fA-F]{4}|\\\\\\\\u\\\\{[\\\\da-fA-F]{1,6}\\\\})+)|(--|\\\\+\\\\+|&&|\\\\|\\\\||=>|\\\\.{3}|(?:[+\\\\-*\\\\/%&|^]|<{1,2}|>{1,3}|!=?|={1,2})=?|[?:~]|[;,.[\\\\](){}])|(\\\\s+)|(^$|[\\\\s\\\\S])/g\\n\\nmodule.exports.matchToToken = function(match) {\\n  var token = {type: \\"invalid\\", value: match[0]}\\n       if (match[ 1]) token.type = \\"string\\" , token.closed = !!(match[3] || match[4])\\n  else if (match[ 5]) token.type = \\"comment\\"\\n  else if (match[ 6]) token.type = \\"comment\\", token.closed = !!match[7]\\n  else if (match[ 8]) token.type = \\"regex\\"\\n  else if (match[ 9]) token.type = \\"number\\"\\n  else if (match[10]) token.type = \\"name\\"\\n  else if (match[11]) token.type = \\"punctuator\\"\\n  else if (match[12]) token.type = \\"whitespace\\"\\n  return token\\n}\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/js-tokens/index.js\\n ** module id = 248\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar escapeStringRegexp = require(\'escape-string-regexp\');\\nvar ansiStyles = require(\'ansi-styles\');\\nvar stripAnsi = require(\'strip-ansi\');\\nvar hasAnsi = require(\'has-ansi\');\\nvar supportsColor = require(\'supports-color\');\\nvar defineProps = Object.defineProperties;\\nvar isSimpleWindowsTerm = process.platform === \'win32\' && !/^xterm/i.test(process.env.TERM);\\n\\nfunction Chalk(options) {\\n\\t// detect mode if not set manually\\n\\tthis.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;\\n}\\n\\n// use bright blue on Windows as the normal blue color is illegible\\nif (isSimpleWindowsTerm) {\\n\\tansiStyles.blue.open = \'\\\\u001b[94m\';\\n}\\n\\nvar styles = (function () {\\n\\tvar ret = {};\\n\\n\\tObject.keys(ansiStyles).forEach(function (key) {\\n\\t\\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), \'g\');\\n\\n\\t\\tret[key] = {\\n\\t\\t\\tget: function () {\\n\\t\\t\\t\\treturn build.call(this, this._styles.concat(key));\\n\\t\\t\\t}\\n\\t\\t};\\n\\t});\\n\\n\\treturn ret;\\n})();\\n\\nvar proto = defineProps(function chalk() {}, styles);\\n\\nfunction build(_styles) {\\n\\tvar builder = function () {\\n\\t\\treturn applyStyle.apply(builder, arguments);\\n\\t};\\n\\n\\tbuilder._styles = _styles;\\n\\tbuilder.enabled = this.enabled;\\n\\t// __proto__ is used because we must return a function, but there is\\n\\t// no way to create a function with a different prototype.\\n\\t/* eslint-disable no-proto */\\n\\tbuilder.__proto__ = proto;\\n\\n\\treturn builder;\\n}\\n\\nfunction applyStyle() {\\n\\t// support varags, but simply cast to string in case there\'s only one arg\\n\\tvar args = arguments;\\n\\tvar argsLen = args.length;\\n\\tvar str = argsLen !== 0 && String(arguments[0]);\\n\\n\\tif (argsLen > 1) {\\n\\t\\t// don\'t slice `arguments`, it prevents v8 optimizations\\n\\t\\tfor (var a = 1; a < argsLen; a++) {\\n\\t\\t\\tstr += \' \' + args[a];\\n\\t\\t}\\n\\t}\\n\\n\\tif (!this.enabled || !str) {\\n\\t\\treturn str;\\n\\t}\\n\\n\\tvar nestedStyles = this._styles;\\n\\tvar i = nestedStyles.length;\\n\\n\\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\\n\\t// see https://github.com/chalk/chalk/issues/58\\n\\t// If we\'re on Windows and we\'re dealing with a gray color, temporarily make \'dim\' a noop.\\n\\tvar originalDim = ansiStyles.dim.open;\\n\\tif (isSimpleWindowsTerm && (nestedStyles.indexOf(\'gray\') !== -1 || nestedStyles.indexOf(\'grey\') !== -1)) {\\n\\t\\tansiStyles.dim.open = \'\';\\n\\t}\\n\\n\\twhile (i--) {\\n\\t\\tvar code = ansiStyles[nestedStyles[i]];\\n\\n\\t\\t// Replace any instances already present with a re-opening code\\n\\t\\t// otherwise only the part of the string until said closing code\\n\\t\\t// will be colored, and the rest will simply be \'plain\'.\\n\\t\\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\\n\\t}\\n\\n\\t// Reset the original \'dim\' if we changed it to work around the Windows dimmed gray issue.\\n\\tansiStyles.dim.open = originalDim;\\n\\n\\treturn str;\\n}\\n\\nfunction init() {\\n\\tvar ret = {};\\n\\n\\tObject.keys(styles).forEach(function (name) {\\n\\t\\tret[name] = {\\n\\t\\t\\tget: function () {\\n\\t\\t\\t\\treturn build.call(this, [name]);\\n\\t\\t\\t}\\n\\t\\t};\\n\\t});\\n\\n\\treturn ret;\\n}\\n\\ndefineProps(Chalk.prototype, init());\\n\\nmodule.exports = new Chalk();\\nmodule.exports.styles = ansiStyles;\\nmodule.exports.hasColor = hasAnsi;\\nmodule.exports.stripColor = stripAnsi;\\nmodule.exports.supportsColor = supportsColor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/index.js\\n ** module id = 249\\n ** module chunks = 0\\n **/","\'use strict\';\\n\\nvar matchOperatorsRe = /[|\\\\\\\\{}()[\\\\]^$+*?.]/g;\\n\\nmodule.exports = function (str) {\\n\\tif (typeof str !== \'string\') {\\n\\t\\tthrow new TypeError(\'Expected a string\');\\n\\t}\\n\\n\\treturn str.replace(matchOperatorsRe, \'\\\\\\\\$&\');\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/escape-string-regexp/index.js\\n ** module id = 250\\n ** module chunks = 0\\n **/","\'use strict\';\\n\\nfunction assembleStyles () {\\n\\tvar styles = {\\n\\t\\tmodifiers: {\\n\\t\\t\\treset: [0, 0],\\n\\t\\t\\tbold: [1, 22], // 21 isn\'t widely supported and 22 does the same thing\\n\\t\\t\\tdim: [2, 22],\\n\\t\\t\\titalic: [3, 23],\\n\\t\\t\\tunderline: [4, 24],\\n\\t\\t\\tinverse: [7, 27],\\n\\t\\t\\thidden: [8, 28],\\n\\t\\t\\tstrikethrough: [9, 29]\\n\\t\\t},\\n\\t\\tcolors: {\\n\\t\\t\\tblack: [30, 39],\\n\\t\\t\\tred: [31, 39],\\n\\t\\t\\tgreen: [32, 39],\\n\\t\\t\\tyellow: [33, 39],\\n\\t\\t\\tblue: [34, 39],\\n\\t\\t\\tmagenta: [35, 39],\\n\\t\\t\\tcyan: [36, 39],\\n\\t\\t\\twhite: [37, 39],\\n\\t\\t\\tgray: [90, 39]\\n\\t\\t},\\n\\t\\tbgColors: {\\n\\t\\t\\tbgBlack: [40, 49],\\n\\t\\t\\tbgRed: [41, 49],\\n\\t\\t\\tbgGreen: [42, 49],\\n\\t\\t\\tbgYellow: [43, 49],\\n\\t\\t\\tbgBlue: [44, 49],\\n\\t\\t\\tbgMagenta: [45, 49],\\n\\t\\t\\tbgCyan: [46, 49],\\n\\t\\t\\tbgWhite: [47, 49]\\n\\t\\t}\\n\\t};\\n\\n\\t// fix humans\\n\\tstyles.colors.grey = styles.colors.gray;\\n\\n\\tObject.keys(styles).forEach(function (groupName) {\\n\\t\\tvar group = styles[groupName];\\n\\n\\t\\tObject.keys(group).forEach(function (styleName) {\\n\\t\\t\\tvar style = group[styleName];\\n\\n\\t\\t\\tstyles[styleName] = group[styleName] = {\\n\\t\\t\\t\\topen: \'\\\\u001b[\' + style[0] + \'m\',\\n\\t\\t\\t\\tclose: \'\\\\u001b[\' + style[1] + \'m\'\\n\\t\\t\\t};\\n\\t\\t});\\n\\n\\t\\tObject.defineProperty(styles, groupName, {\\n\\t\\t\\tvalue: group,\\n\\t\\t\\tenumerable: false\\n\\t\\t});\\n\\t});\\n\\n\\treturn styles;\\n}\\n\\nObject.defineProperty(module, \'exports\', {\\n\\tenumerable: true,\\n\\tget: assembleStyles\\n});\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/ansi-styles/index.js\\n ** module id = 251\\n ** module chunks = 0\\n **/","module.exports = function(module) {\\r\\n\\tif(!module.webpackPolyfill) {\\r\\n\\t\\tmodule.deprecate = function() {};\\r\\n\\t\\tmodule.paths = [];\\r\\n\\t\\t// module.parent = undefined by default\\r\\n\\t\\tmodule.children = [];\\r\\n\\t\\tmodule.webpackPolyfill = 1;\\r\\n\\t}\\r\\n\\treturn module;\\r\\n}\\r\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/buildin/module.js\\n ** module id = 252\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar ansiRegex = require(\'ansi-regex\')();\\n\\nmodule.exports = function (str) {\\n\\treturn typeof str === \'string\' ? str.replace(ansiRegex, \'\') : str;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/index.js\\n ** module id = 253\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function () {\\n\\treturn /[\\\\u001b\\\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/strip-ansi/~/ansi-regex/index.js\\n ** module id = 254\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar ansiRegex = require(\'ansi-regex\');\\nvar re = new RegExp(ansiRegex().source); // remove the `g` flag\\nmodule.exports = re.test.bind(re);\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/index.js\\n ** module id = 255\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function () {\\n\\treturn /[\\\\u001b\\\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/has-ansi/~/ansi-regex/index.js\\n ** module id = 256\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar argv = process.argv;\\n\\nvar terminator = argv.indexOf(\'--\');\\nvar hasFlag = function (flag) {\\n\\tflag = \'--\' + flag;\\n\\tvar pos = argv.indexOf(flag);\\n\\treturn pos !== -1 && (terminator !== -1 ? pos < terminator : true);\\n};\\n\\nmodule.exports = (function () {\\n\\tif (\'FORCE_COLOR\' in process.env) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (hasFlag(\'no-color\') ||\\n\\t\\thasFlag(\'no-colors\') ||\\n\\t\\thasFlag(\'color=false\')) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif (hasFlag(\'color\') ||\\n\\t\\thasFlag(\'colors\') ||\\n\\t\\thasFlag(\'color=true\') ||\\n\\t\\thasFlag(\'color=always\')) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (process.stdout && !process.stdout.isTTY) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif (process.platform === \'win32\') {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (\'COLORTERM\' in process.env) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\tif (process.env.TERM === \'dumb\') {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {\\n\\t\\treturn true;\\n\\t}\\n\\n\\treturn false;\\n})();\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babel-code-frame/~/chalk/~/supports-color/index.js\\n ** module id = 257\\n ** module chunks = 0\\n **/","(function(f){if(typeof exports===\\"object\\"&&typeof module!==\\"undefined\\"){module.exports=f()}else if(typeof define===\\"function\\"&&define.amd){define([],f)}else{var g;if(typeof window!==\\"undefined\\"){g=window}else if(typeof global!==\\"undefined\\"){g=global}else if(typeof self!==\\"undefined\\"){g=self}else{g=this}g.babylon = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\\"function\\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\\"Cannot find module \'\\"+o+\\"\'\\");throw f.code=\\"MODULE_NOT_FOUND\\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\\"function\\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.parse = parse;\\n\\nvar _parser = require(\\"./parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nrequire(\\"./parser/util\\");\\n\\nrequire(\\"./parser/statement\\");\\n\\nrequire(\\"./parser/lval\\");\\n\\nrequire(\\"./parser/expression\\");\\n\\nrequire(\\"./parser/node\\");\\n\\nrequire(\\"./parser/location\\");\\n\\nrequire(\\"./parser/comments\\");\\n\\nvar _tokenizerTypes = require(\\"./tokenizer/types\\");\\n\\nrequire(\\"./tokenizer\\");\\n\\nrequire(\\"./tokenizer/context\\");\\n\\nvar _pluginsFlow = require(\\"./plugins/flow\\");\\n\\nvar _pluginsFlow2 = _interopRequireDefault(_pluginsFlow);\\n\\nvar _pluginsJsx = require(\\"./plugins/jsx\\");\\n\\nvar _pluginsJsx2 = _interopRequireDefault(_pluginsJsx);\\n\\n_parser.plugins.flow = _pluginsFlow2[\\"default\\"];\\n_parser.plugins.jsx = _pluginsJsx2[\\"default\\"];\\n\\nfunction parse(input, options) {\\n  return new _parser2[\\"default\\"](options, input).parse();\\n}\\n\\nexports.tokTypes = _tokenizerTypes.types;\\n},{\\"./parser\\":5,\\"./parser/comments\\":3,\\"./parser/expression\\":4,\\"./parser/location\\":6,\\"./parser/lval\\":7,\\"./parser/node\\":8,\\"./parser/statement\\":9,\\"./parser/util\\":10,\\"./plugins/flow\\":11,\\"./plugins/jsx\\":12,\\"./tokenizer\\":15,\\"./tokenizer/context\\":14,\\"./tokenizer/types\\":17,\\"babel-runtime/helpers/interop-require-default\\":26}],2:[function(require,module,exports){\\n/* @flow */\\n// A second optional argument can be given to further configure\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.getOptions = getOptions;\\nvar defaultOptions /*: {\\n                     sourceType: string,\\n                     allowReturnOutsideFunction: boolean,\\n                     allowImportExportEverywhere: boolean,\\n                     allowSuperOutsideMethod: boolean,\\n                     plugins: Array<string>,\\n                     strictMode: any\\n                   }*/ = {\\n  // Source type (\\"script\\" or \\"module\\") for different semantics\\n  sourceType: \\"script\\",\\n  // When enabled, a return at the top level is not considered an\\n  // error.\\n  allowReturnOutsideFunction: false,\\n  // When enabled, import/export statements are not constrained to\\n  // appearing at the top of the program.\\n  allowImportExportEverywhere: false,\\n  // TODO\\n  allowSuperOutsideMethod: false,\\n  // An array of plugins to enable\\n  plugins: [],\\n  // TODO\\n  strictMode: null\\n};\\n\\nexports.defaultOptions = defaultOptions;\\n// Interpret and default an options object\\n\\nfunction getOptions(opts /*:: ?: Object*/) /*: Object*/ {\\n  var options = {};\\n  for (var key in defaultOptions) {\\n    options[key] = opts && key in opts ? opts[key] : defaultOptions[key];\\n  }\\n  return options;\\n}\\n\\n// the parser process. These options are recognized:\\n},{}],3:[function(require,module,exports){\\n/* @flow */\\n\\n/**\\n * Based on the comment attachment algorithm used in espree and estraverse.\\n *\\n * Redistribution and use in source and binary forms, with or without\\n * modification, are permitted provided that the following conditions are met:\\n *\\n * * Redistributions of source code must retain the above copyright\\n *   notice, this list of conditions and the following disclaimer.\\n * * Redistributions in binary form must reproduce the above copyright\\n *   notice, this list of conditions and the following disclaimer in the\\n *   documentation and/or other materials provided with the distribution.\\n *\\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\"AS IS\\"\\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nfunction last(stack) {\\n  return stack[stack.length - 1];\\n}\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\npp.addComment = function (comment) {\\n  this.state.trailingComments.push(comment);\\n  this.state.leadingComments.push(comment);\\n};\\n\\npp.processComment = function (node) {\\n  if (node.type === \\"Program\\" && node.body.length > 0) return;\\n\\n  var stack = this.state.commentStack;\\n\\n  var lastChild = undefined,\\n      trailingComments = undefined,\\n      i = undefined;\\n\\n  if (this.state.trailingComments.length > 0) {\\n    // If the first comment in trailingComments comes after the\\n    // current node, then we\'re good - all comments in the array will\\n    // come after the node and so it\'s safe to add them as official\\n    // trailingComments.\\n    if (this.state.trailingComments[0].start >= node.end) {\\n      trailingComments = this.state.trailingComments;\\n      this.state.trailingComments = [];\\n    } else {\\n      // Otherwise, if the first comment doesn\'t come after the\\n      // current node, that means we have a mix of leading and trailing\\n      // comments in the array and that leadingComments contains the\\n      // same items as trailingComments. Reset trailingComments to\\n      // zero items and we\'ll handle this by evaluating leadingComments\\n      // later.\\n      this.state.trailingComments.length = 0;\\n    }\\n  } else {\\n    var lastInStack = last(stack);\\n    if (stack.length > 0 && lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) {\\n      trailingComments = lastInStack.trailingComments;\\n      lastInStack.trailingComments = null;\\n    }\\n  }\\n\\n  // Eating the stack.\\n  while (stack.length > 0 && last(stack).start >= node.start) {\\n    lastChild = stack.pop();\\n  }\\n\\n  if (lastChild) {\\n    if (lastChild.leadingComments) {\\n      if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) {\\n        node.leadingComments = lastChild.leadingComments;\\n        lastChild.leadingComments = null;\\n      } else {\\n        // A leading comment for an anonymous class had been stolen by its first ClassMethod,\\n        // so this takes back the leading comment.\\n        // See also: https://github.com/eslint/espree/issues/158\\n        for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\\n          if (lastChild.leadingComments[i].end <= node.start) {\\n            node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\\n            break;\\n          }\\n        }\\n      }\\n    }\\n  } else if (this.state.leadingComments.length > 0) {\\n    if (last(this.state.leadingComments).end <= node.start) {\\n      node.leadingComments = this.state.leadingComments;\\n      this.state.leadingComments = [];\\n    } else {\\n      // https://github.com/eslint/espree/issues/2\\n      //\\n      // In special cases, such as return (without a value) and\\n      // debugger, all comments will end up as leadingComments and\\n      // will otherwise be eliminated. This step runs when the\\n      // commentStack is empty and there are comments left\\n      // in leadingComments.\\n      //\\n      // This loop figures out the stopping point between the actual\\n      // leading and trailing comments by finding the location of the\\n      // first comment that comes after the given node.\\n      for (i = 0; i < this.state.leadingComments.length; i++) {\\n        if (this.state.leadingComments[i].end > node.start) {\\n          break;\\n        }\\n      }\\n\\n      // Split the array based on the location of the first comment\\n      // that comes after the node. Keep in mind that this could\\n      // result in an empty array, and if so, the array must be\\n      // deleted.\\n      node.leadingComments = this.state.leadingComments.slice(0, i);\\n      if ((node.leadingComments /*: Array<any>*/).length === 0) {\\n        node.leadingComments = null;\\n      }\\n\\n      // Similarly, trailing comments are attached later. The variable\\n      // must be reset to null if there are no trailing comments.\\n      trailingComments = this.state.leadingComments.slice(i);\\n      if (trailingComments.length === 0) {\\n        trailingComments = null;\\n      }\\n    }\\n  }\\n\\n  if (trailingComments) {\\n    if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) {\\n      node.innerComments = trailingComments;\\n    } else {\\n      node.trailingComments = trailingComments;\\n    }\\n  }\\n\\n  stack.push(node);\\n};\\n},{\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":26}],4:[function(require,module,exports){\\n// A recursive descent parser operates by defining functions for all\\n// syntactic elements, and recursively calling those, each function\\n// advancing the input stream and returning an AST node. Precedence\\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\\n// instead of `(!x)[1]` is handled by the fact that the parser\\n// function that parses unary prefix operators is called first, and\\n// in turn calls the function that parses `[]` subscripts — that\\n// way, it\'ll receive the node for `x[1]` already parsed, and wraps\\n// *that* in the unary operator node.\\n//\\n// Acorn uses an [operator precedence parser][opp] to handle binary\\n// operator precedence, because it is much more compact than using\\n// the technique outlined above, which uses different, nesting\\n// functions to specify precedence, for all of the ten binary\\n// precedence levels that JavaScript defines.\\n//\\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\\n\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Check if property name clashes with already added.\\n// Object/class getters and setters are not allowed to clash —\\n// either with each other or with an init property — and in\\n// strict mode, init properties are also not allowed to be repeated.\\n\\npp.checkPropClash = function (prop, propHash) {\\n  if (prop.computed) return;\\n\\n  var key = prop.key;\\n  var name = undefined;\\n  switch (key.type) {\\n    case \\"Identifier\\":\\n      name = key.name;\\n      break;\\n\\n    case \\"StringLiteral\\":\\n    case \\"NumericLiteral\\":\\n      name = String(key.value);\\n      break;\\n\\n    default:\\n      return;\\n  }\\n\\n  if (name === \\"__proto__\\" && prop.kind === \\"init\\") {\\n    if (propHash.proto) this.raise(key.start, \\"Redefinition of __proto__ property\\");\\n    propHash.proto = true;\\n  }\\n};\\n\\n// ### Expression parsing\\n\\n// These nest, from the most general expression type at the top to\\n// \'atomic\', nondivisible expression types at the bottom. Most of\\n// the functions will simply let the function (s) below them parse,\\n// and, *if* the syntactic construct they handle is present, wrap\\n// the AST node that the inner parser gave them in another node.\\n\\n// Parse a full expression. The optional arguments are used to\\n// forbid the `in` operator (in for loops initalization expressions)\\n// and provide reference for storing \'=\' operator inside shorthand\\n// property assignment in contexts where both object expression\\n// and object pattern might appear (so it\'s possible to raise\\n// delayed syntax error at correct position).\\n\\npp.parseExpression = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeAssign(noIn, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types.comma)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.expressions = [expr];\\n    while (this.eat(_tokenizerTypes.types.comma)) {\\n      node.expressions.push(this.parseMaybeAssign(noIn, refShorthandDefaultPos));\\n    }\\n    this.toReferencedList(node.expressions);\\n    return this.finishNode(node, \\"SequenceExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse an assignment expression. This includes applications of\\n// operators like `+=`.\\n\\npp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) {\\n  if (this.match(_tokenizerTypes.types._yield) && this.state.inGenerator) {\\n    return this.parseYield();\\n  }\\n\\n  var failOnShorthandAssign = undefined;\\n  if (refShorthandDefaultPos) {\\n    failOnShorthandAssign = false;\\n  } else {\\n    refShorthandDefaultPos = { start: 0 };\\n    failOnShorthandAssign = true;\\n  }\\n\\n  var startPos = this.state.start;\\n  var startLoc = this.state.startLoc;\\n\\n  if (this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.name)) {\\n    this.state.potentialArrowAt = this.state.start;\\n  }\\n\\n  var left = this.parseMaybeConditional(noIn, refShorthandDefaultPos);\\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc);\\n  if (this.state.type.isAssign) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.left = this.match(_tokenizerTypes.types.eq) ? this.toAssignable(left) : left;\\n    refShorthandDefaultPos.start = 0; // reset because shorthand default was used correctly\\n\\n    this.checkLVal(left);\\n\\n    if (left.extra && left.extra.parenthesized) {\\n      var errorMsg = undefined;\\n      if (left.type === \\"ObjectPattern\\") {\\n        errorMsg = \\"`({a}) = 0` use `({a} = 0)`\\";\\n      } else if (left.type === \\"ArrayPattern\\") {\\n        errorMsg = \\"`([a]) = 0` use `([a] = 0)`\\";\\n      }\\n      if (errorMsg) {\\n        this.raise(left.start, \\"You\'re trying to assign to a parenthesized expression, eg. instead of \\" + errorMsg);\\n      }\\n    }\\n\\n    this.next();\\n    node.right = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"AssignmentExpression\\");\\n  } else if (failOnShorthandAssign && refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n\\n  return left;\\n};\\n\\n// Parse a ternary conditional (`?:`) operator.\\n\\npp.parseMaybeConditional = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprOps(noIn, refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.test = expr;\\n    node.consequent = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.colon);\\n    node.alternate = this.parseMaybeAssign(noIn);\\n    return this.finishNode(node, \\"ConditionalExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Start the precedence parser.\\n\\npp.parseExprOps = function (noIn, refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseMaybeUnary(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  } else {\\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\\n  }\\n};\\n\\n// Parse binary operators with the operator precedence parsing\\n// algorithm. `left` is the left-hand side of the operator.\\n// `minPrec` provides context that allows the function to stop and\\n// defer further parser to one of its callers when it encounters an\\n// operator that has a lower precedence than the set it is parsing.\\n\\npp.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, noIn) {\\n  var prec = this.state.type.binop;\\n  if (prec != null && (!noIn || !this.match(_tokenizerTypes.types._in))) {\\n    if (prec > minPrec) {\\n      var node = this.startNodeAt(leftStartPos, leftStartLoc);\\n      node.left = left;\\n      node.operator = this.state.value;\\n\\n      if (node.operator === \\"**\\" && left.type === \\"UnaryExpression\\" && left.extra && !left.extra.parenthesizedArgument) {\\n        this.raise(left.argument.start, \\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\\");\\n      }\\n\\n      var op = this.state.type;\\n      this.next();\\n\\n      var startPos = this.state.start;\\n      var startLoc = this.state.startLoc;\\n      node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec, noIn);\\n\\n      this.finishNode(node, op === _tokenizerTypes.types.logicalOR || op === _tokenizerTypes.types.logicalAND ? \\"LogicalExpression\\" : \\"BinaryExpression\\");\\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);\\n    }\\n  }\\n  return left;\\n};\\n\\n// Parse unary operators, both prefix and postfix.\\n\\npp.parseMaybeUnary = function (refShorthandDefaultPos) {\\n  if (this.state.type.prefix) {\\n    var node = this.startNode();\\n    var update = this.match(_tokenizerTypes.types.incDec);\\n    node.operator = this.state.value;\\n    node.prefix = true;\\n    this.next();\\n\\n    var argType = this.state.type;\\n    this.addExtra(node, \\"parenthesizedArgument\\", argType === _tokenizerTypes.types.parenL);\\n    node.argument = this.parseMaybeUnary();\\n\\n    if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n      this.unexpected(refShorthandDefaultPos.start);\\n    }\\n\\n    if (update) {\\n      this.checkLVal(node.argument);\\n    } else if (this.state.strict && node.operator === \\"delete\\" && node.argument.type === \\"Identifier\\") {\\n      this.raise(node.start, \\"Deleting local variable in strict mode\\");\\n    }\\n\\n    return this.finishNode(node, update ? \\"UpdateExpression\\" : \\"UnaryExpression\\");\\n  }\\n\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var expr = this.parseExprSubscripts(refShorthandDefaultPos);\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr;\\n  while (this.state.type.postfix && !this.canInsertSemicolon()) {\\n    var node = this.startNodeAt(startPos, startLoc);\\n    node.operator = this.state.value;\\n    node.prefix = false;\\n    node.argument = expr;\\n    this.checkLVal(expr);\\n    this.next();\\n    expr = this.finishNode(node, \\"UpdateExpression\\");\\n  }\\n  return expr;\\n};\\n\\n// Parse call, dot, and `[]`-subscript expressions.\\n\\npp.parseExprSubscripts = function (refShorthandDefaultPos) {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var potentialArrowAt = this.state.potentialArrowAt;\\n  var expr = this.parseExprAtom(refShorthandDefaultPos);\\n\\n  if (expr.type === \\"ArrowFunctionExpression\\" && expr.start === potentialArrowAt) {\\n    return expr;\\n  }\\n\\n  if (refShorthandDefaultPos && refShorthandDefaultPos.start) {\\n    return expr;\\n  }\\n\\n  return this.parseSubscripts(expr, startPos, startLoc);\\n};\\n\\npp.parseSubscripts = function (base, startPos, startLoc, noCalls) {\\n  for (;;) {\\n    if (!noCalls && this.eat(_tokenizerTypes.types.doubleColon)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.callee = this.parseNoCallExpr();\\n      return this.parseSubscripts(this.finishNode(node, \\"BindExpression\\"), startPos, startLoc, noCalls);\\n    } else if (this.eat(_tokenizerTypes.types.dot)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseIdentifier(true);\\n      node.computed = false;\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (this.eat(_tokenizerTypes.types.bracketL)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.object = base;\\n      node.property = this.parseExpression();\\n      node.computed = true;\\n      this.expect(_tokenizerTypes.types.bracketR);\\n      base = this.finishNode(node, \\"MemberExpression\\");\\n    } else if (!noCalls && this.match(_tokenizerTypes.types.parenL)) {\\n      var possibleAsync = this.state.potentialArrowAt === base.start && base.type === \\"Identifier\\" && base.name === \\"async\\" && !this.canInsertSemicolon();\\n      this.next();\\n\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.callee = base;\\n      node.arguments = this.parseCallExpressionArguments(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"), possibleAsync);\\n      base = this.finishNode(node, \\"CallExpression\\");\\n\\n      if (possibleAsync && this.shouldParseAsyncArrow()) {\\n        return this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node);\\n      } else {\\n        this.toReferencedList(node.arguments);\\n      }\\n    } else if (this.match(_tokenizerTypes.types.backQuote)) {\\n      var node = this.startNodeAt(startPos, startLoc);\\n      node.tag = base;\\n      node.quasi = this.parseTemplate();\\n      base = this.finishNode(node, \\"TaggedTemplateExpression\\");\\n    } else {\\n      return base;\\n    }\\n  }\\n};\\n\\npp.parseCallExpressionArguments = function (close, allowTrailingComma, possibleAsyncArrow) {\\n  var innerParenStart = undefined;\\n\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    // we need to make sure that if this is an async arrow functions, that we don\'t allow inner parens inside the params\\n    if (this.match(_tokenizerTypes.types.parenL) && !innerParenStart) {\\n      innerParenStart = this.state.start;\\n    }\\n\\n    elts.push(this.parseExprListItem());\\n  }\\n\\n  // we found an async arrow function so let\'s not allow any inner parens\\n  if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\\n    this.unexpected();\\n  }\\n\\n  return elts;\\n};\\n\\npp.shouldParseAsyncArrow = function () {\\n  return this.match(_tokenizerTypes.types.arrow);\\n};\\n\\npp.parseAsyncArrowFromCallExpression = function (node, call) {\\n  if (!this.hasPlugin(\\"asyncFunctions\\")) this.unexpected();\\n  this.expect(_tokenizerTypes.types.arrow);\\n  return this.parseArrowExpression(node, call.arguments, true);\\n};\\n\\n// Parse a no-call expression (like argument of `new` or `::` operators).\\n\\npp.parseNoCallExpr = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\\n};\\n\\n// Parse an atomic expression — either a single token that is an\\n// expression, an expression started by a keyword like `function` or\\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\\n// or `{}`.\\n\\npp.parseExprAtom = function (refShorthandDefaultPos) {\\n  var node = undefined,\\n      canBeArrow = this.state.potentialArrowAt === this.state.start;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._super:\\n      if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) {\\n        this.raise(this.state.start, \\"\'super\' outside of function or class\\");\\n      }\\n\\n      node = this.startNode();\\n      this.next();\\n      if (!this.match(_tokenizerTypes.types.parenL) && !this.match(_tokenizerTypes.types.bracketL) && !this.match(_tokenizerTypes.types.dot)) {\\n        this.unexpected();\\n      }\\n      if (this.match(_tokenizerTypes.types.parenL) && this.state.inMethod !== \\"constructor\\" && !this.options.allowSuperOutsideMethod) {\\n        this.raise(node.start, \\"super() outside of class constructor\\");\\n      }\\n      return this.finishNode(node, \\"Super\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"ThisExpression\\");\\n\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      node = this.startNode();\\n      var allowAwait = this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"await\\" && this.state.inAsync;\\n      var allowYield = this.shouldAllowYieldIdentifier();\\n      var id = this.parseIdentifier(allowAwait || allowYield);\\n\\n      if (this.hasPlugin(\\"asyncFunctions\\")) {\\n        if (id.name === \\"await\\") {\\n          if (this.state.inAsync || this.inModule) {\\n            return this.parseAwait(node);\\n          }\\n        } else if (id.name === \\"async\\" && this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.next();\\n          return this.parseFunction(node, false, false, true);\\n        } else if (canBeArrow && id.name === \\"async\\" && this.match(_tokenizerTypes.types.name)) {\\n          var params = [this.parseIdentifier()];\\n          this.expect(_tokenizerTypes.types.arrow);\\n          // let foo = bar => {};\\n          return this.parseArrowExpression(node, params, true);\\n        }\\n      }\\n\\n      if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n        return this.parseArrowExpression(node, [id]);\\n      }\\n\\n      return id;\\n\\n    case _tokenizerTypes.types._do:\\n      if (this.hasPlugin(\\"doExpressions\\")) {\\n        var _node = this.startNode();\\n        this.next();\\n        var oldInFunction = this.state.inFunction;\\n        var oldLabels = this.state.labels;\\n        this.state.labels = [];\\n        this.state.inFunction = false;\\n        _node.body = this.parseBlock(false, true);\\n        this.state.inFunction = oldInFunction;\\n        this.state.labels = oldLabels;\\n        return this.finishNode(_node, \\"DoExpression\\");\\n      }\\n\\n    case _tokenizerTypes.types.regexp:\\n      var value = this.state.value;\\n      node = this.parseLiteral(value.value, \\"RegExpLiteral\\");\\n      node.pattern = value.pattern;\\n      node.flags = value.flags;\\n      return node;\\n\\n    case _tokenizerTypes.types.num:\\n      return this.parseLiteral(this.state.value, \\"NumericLiteral\\");\\n\\n    case _tokenizerTypes.types.string:\\n      return this.parseLiteral(this.state.value, \\"StringLiteral\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node = this.startNode();\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteral\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node = this.startNode();\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteral\\");\\n\\n    case _tokenizerTypes.types.parenL:\\n      return this.parseParenAndDistinguishExpression(null, null, canBeArrow);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      node = this.startNode();\\n      this.next();\\n      node.elements = this.parseExprList(_tokenizerTypes.types.bracketR, true, true, refShorthandDefaultPos);\\n      this.toReferencedList(node.elements);\\n      return this.finishNode(node, \\"ArrayExpression\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(false, refShorthandDefaultPos);\\n\\n    case _tokenizerTypes.types._function:\\n      return this.parseFunctionExpression();\\n\\n    case _tokenizerTypes.types.at:\\n      this.parseDecorators();\\n\\n    case _tokenizerTypes.types._class:\\n      node = this.startNode();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, false);\\n\\n    case _tokenizerTypes.types._new:\\n      return this.parseNew();\\n\\n    case _tokenizerTypes.types.backQuote:\\n      return this.parseTemplate();\\n\\n    case _tokenizerTypes.types.doubleColon:\\n      node = this.startNode();\\n      this.next();\\n      node.object = null;\\n      var callee = node.callee = this.parseNoCallExpr();\\n      if (callee.type === \\"MemberExpression\\") {\\n        return this.finishNode(node, \\"BindExpression\\");\\n      } else {\\n        this.raise(callee.start, \\"Binding should be performed on object property.\\");\\n      }\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseFunctionExpression = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n  if (this.state.inGenerator && this.eat(_tokenizerTypes.types.dot) && this.hasPlugin(\\"functionSent\\")) {\\n    return this.parseMetaProperty(node, meta, \\"sent\\");\\n  } else {\\n    return this.parseFunction(node, false);\\n  }\\n};\\n\\npp.parseMetaProperty = function (node, meta, propertyName) {\\n  node.meta = meta;\\n  node.property = this.parseIdentifier(true);\\n\\n  if (node.property.name !== propertyName) {\\n    this.raise(node.property.start, \\"The only valid meta property for new is \\" + meta.name + \\".\\" + propertyName);\\n  }\\n\\n  return this.finishNode(node, \\"MetaProperty\\");\\n};\\n\\npp.parseLiteral = function (value, type) {\\n  var node = this.startNode();\\n  this.addExtra(node, \\"rawValue\\", value);\\n  this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n  node.value = value;\\n  this.next();\\n  return this.finishNode(node, type);\\n};\\n\\npp.parseParenExpression = function () {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var val = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  return val;\\n};\\n\\npp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow, isAsync, allowOptionalCommaStart) {\\n  startPos = startPos || this.state.start;\\n  startLoc = startLoc || this.state.startLoc;\\n\\n  var val = undefined;\\n  this.next();\\n\\n  var innerStartPos = this.state.start,\\n      innerStartLoc = this.state.startLoc;\\n  var exprList = [],\\n      first = true;\\n  var refShorthandDefaultPos = { start: 0 },\\n      spreadStart = undefined,\\n      optionalCommaStart = undefined;\\n  while (!this.match(_tokenizerTypes.types.parenR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.match(_tokenizerTypes.types.parenR) && this.hasPlugin(\\"trailingFunctionCommas\\")) {\\n        optionalCommaStart = this.state.start;\\n        break;\\n      }\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      var spreadNodeStartPos = this.state.start,\\n          spreadNodeStartLoc = this.state.startLoc;\\n      spreadStart = this.state.start;\\n      exprList.push(this.parseParenItem(this.parseRest(), spreadNodeStartLoc, spreadNodeStartPos));\\n      break;\\n    } else {\\n      exprList.push(this.parseMaybeAssign(false, refShorthandDefaultPos, this.parseParenItem));\\n    }\\n  }\\n\\n  var innerEndPos = this.state.start;\\n  var innerEndLoc = this.state.startLoc;\\n  this.expect(_tokenizerTypes.types.parenR);\\n\\n  if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) {\\n    for (var _i = 0; _i < exprList.length; _i++) {\\n      var param = exprList[_i];\\n      if (param.extra && param.extra.parenthesized) this.unexpected(param.extra.parenStart);\\n    }\\n\\n    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, isAsync);\\n  }\\n\\n  if (!exprList.length) {\\n    if (isAsync) {\\n      return;\\n    } else {\\n      this.unexpected(this.state.lastTokStart);\\n    }\\n  }\\n  if (optionalCommaStart && !allowOptionalCommaStart) this.unexpected(optionalCommaStart);\\n  if (spreadStart) this.unexpected(spreadStart);\\n  if (refShorthandDefaultPos.start) this.unexpected(refShorthandDefaultPos.start);\\n\\n  if (exprList.length > 1) {\\n    val = this.startNodeAt(innerStartPos, innerStartLoc);\\n    val.expressions = exprList;\\n    this.toReferencedList(val.expressions);\\n    this.finishNodeAt(val, \\"SequenceExpression\\", innerEndPos, innerEndLoc);\\n  } else {\\n    val = exprList[0];\\n  }\\n\\n  this.addExtra(val, \\"parenthesized\\", true);\\n  this.addExtra(val, \\"parenStart\\", startPos);\\n\\n  return val;\\n};\\n\\npp.parseParenItem = function (node) {\\n  return node;\\n};\\n\\n// New\'s precedence is slightly tricky. It must allow its argument\\n// to be a `[]` or dot subscript expression, but not a call — at\\n// least, not without wrapping it in parentheses. Thus, it uses the\\n\\npp.parseNew = function () {\\n  var node = this.startNode();\\n  var meta = this.parseIdentifier(true);\\n\\n  if (this.eat(_tokenizerTypes.types.dot)) {\\n    return this.parseMetaProperty(node, meta, \\"target\\");\\n  }\\n\\n  node.callee = this.parseNoCallExpr();\\n\\n  if (this.eat(_tokenizerTypes.types.parenL)) {\\n    node.arguments = this.parseExprList(_tokenizerTypes.types.parenR, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n    this.toReferencedList(node.arguments);\\n  } else {\\n    node.arguments = [];\\n  }\\n\\n  return this.finishNode(node, \\"NewExpression\\");\\n};\\n\\n// Parse template expression.\\n\\npp.parseTemplateElement = function () {\\n  var elem = this.startNode();\\n  elem.value = {\\n    raw: this.input.slice(this.state.start, this.state.end).replace(/\\\\r\\\\n?/g, \\"\\\\n\\"),\\n    cooked: this.state.value\\n  };\\n  this.next();\\n  elem.tail = this.match(_tokenizerTypes.types.backQuote);\\n  return this.finishNode(elem, \\"TemplateElement\\");\\n};\\n\\npp.parseTemplate = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.expressions = [];\\n  var curElt = this.parseTemplateElement();\\n  node.quasis = [curElt];\\n  while (!curElt.tail) {\\n    this.expect(_tokenizerTypes.types.dollarBraceL);\\n    node.expressions.push(this.parseExpression());\\n    this.expect(_tokenizerTypes.types.braceR);\\n    node.quasis.push(curElt = this.parseTemplateElement());\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"TemplateLiteral\\");\\n};\\n\\n// Parse an object literal or binding pattern.\\n\\npp.parseObj = function (isPattern, refShorthandDefaultPos) {\\n  var decorators = [];\\n  var propHash = _Object$create(null);\\n  var first = true;\\n  var node = this.startNode();\\n\\n  node.properties = [];\\n  this.next();\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    while (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n    }\\n\\n    var prop = this.startNode(),\\n        isGenerator = false,\\n        isAsync = false,\\n        startPos = undefined,\\n        startLoc = undefined;\\n    if (decorators.length) {\\n      prop.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    if (this.hasPlugin(\\"objectRestSpread\\") && this.match(_tokenizerTypes.types.ellipsis)) {\\n      prop = this.parseSpread();\\n      prop.type = isPattern ? \\"RestProperty\\" : \\"SpreadProperty\\";\\n      node.properties.push(prop);\\n      continue;\\n    }\\n\\n    prop.method = false;\\n    prop.shorthand = false;\\n\\n    if (isPattern || refShorthandDefaultPos) {\\n      startPos = this.state.start;\\n      startLoc = this.state.startLoc;\\n    }\\n\\n    if (!isPattern) {\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n    }\\n\\n    if (!isPattern && this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\")) {\\n      if (isGenerator) this.unexpected();\\n\\n      var asyncId = this.parseIdentifier();\\n      if (this.match(_tokenizerTypes.types.colon) || this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.braceR)) {\\n        prop.key = asyncId;\\n      } else {\\n        isAsync = true;\\n        if (this.hasPlugin(\\"asyncGenerators\\")) isGenerator = this.eat(_tokenizerTypes.types.star);\\n        this.parsePropertyName(prop);\\n      }\\n    } else {\\n      this.parsePropertyName(prop);\\n    }\\n\\n    this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos);\\n    this.checkPropClash(prop, propHash);\\n\\n    if (prop.shorthand) {\\n      this.addExtra(prop, \\"shorthand\\", true);\\n    }\\n\\n    node.properties.push(prop);\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no property\\");\\n  }\\n\\n  return this.finishNode(node, isPattern ? \\"ObjectPattern\\" : \\"ObjectExpression\\");\\n};\\n\\npp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos) {\\n  if (isAsync || isGenerator || this.match(_tokenizerTypes.types.parenL)) {\\n    if (isPattern) this.unexpected();\\n    prop.kind = \\"method\\";\\n    prop.method = true;\\n    this.parseMethod(prop, isGenerator, isAsync);\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.colon)) {\\n    prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refShorthandDefaultPos);\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\" && (prop.key.name === \\"get\\" || prop.key.name === \\"set\\") && !this.match(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    if (isGenerator || isAsync || isPattern) this.unexpected();\\n    prop.kind = prop.key.name;\\n    this.parsePropertyName(prop);\\n    this.parseMethod(prop, false);\\n    var paramCount = prop.kind === \\"get\\" ? 0 : 1;\\n    if (prop.params.length !== paramCount) {\\n      var start = prop.start;\\n      if (prop.kind === \\"get\\") {\\n        this.raise(start, \\"getter should have no params\\");\\n      } else {\\n        this.raise(start, \\"setter should have exactly one param\\");\\n      }\\n    }\\n    return this.finishNode(prop, \\"ObjectMethod\\");\\n  }\\n\\n  if (!prop.computed && prop.key.type === \\"Identifier\\") {\\n    if (isPattern) {\\n      var illegalBinding = this.isKeyword(prop.key.name);\\n      if (!illegalBinding && this.state.strict) {\\n        illegalBinding = _utilIdentifier.reservedWords.strictBind(prop.key.name) || _utilIdentifier.reservedWords.strict(prop.key.name);\\n      }\\n      if (illegalBinding) {\\n        this.raise(prop.key.start, \\"Binding \\" + prop.key.name);\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else if (this.match(_tokenizerTypes.types.eq) && refShorthandDefaultPos) {\\n      if (!refShorthandDefaultPos.start) {\\n        refShorthandDefaultPos.start = this.state.start;\\n      }\\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());\\n    } else {\\n      prop.value = prop.key.__clone();\\n    }\\n    prop.shorthand = true;\\n    return this.finishNode(prop, \\"ObjectProperty\\");\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.parsePropertyName = function (prop) {\\n  if (this.eat(_tokenizerTypes.types.bracketL)) {\\n    prop.computed = true;\\n    prop.key = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return prop.key;\\n  } else {\\n    prop.computed = false;\\n    return prop.key = this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n  }\\n};\\n\\n// Initialize empty function node.\\n\\npp.initFunction = function (node, isAsync) {\\n  node.id = null;\\n  node.generator = false;\\n  node.expression = false;\\n  if (this.hasPlugin(\\"asyncFunctions\\")) {\\n    node.async = !!isAsync;\\n  }\\n};\\n\\n// Parse object or class method.\\n\\npp.parseMethod = function (node, isGenerator, isAsync) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = node.kind || true;\\n  this.initFunction(node, isAsync);\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n  node.generator = isGenerator;\\n  this.parseFunctionBody(node);\\n  this.state.inMethod = oldInMethod;\\n  return node;\\n};\\n\\n// Parse arrow function expression with given parameters.\\n\\npp.parseArrowExpression = function (node, params, isAsync) {\\n  this.initFunction(node, isAsync);\\n  node.params = this.toAssignableList(params, true);\\n  this.parseFunctionBody(node, true);\\n  return this.finishNode(node, \\"ArrowFunctionExpression\\");\\n};\\n\\n// Parse function body and check parameters.\\n\\npp.parseFunctionBody = function (node, allowExpression) {\\n  var isExpression = allowExpression && !this.match(_tokenizerTypes.types.braceL);\\n\\n  var oldInAsync = this.state.inAsync;\\n  this.state.inAsync = node.async;\\n  if (isExpression) {\\n    node.body = this.parseMaybeAssign();\\n    node.expression = true;\\n  } else {\\n    // Start a new scope with regard to labels and the `inFunction`\\n    // flag (restore them to their old value afterwards).\\n    var oldInFunc = this.state.inFunction,\\n        oldInGen = this.state.inGenerator,\\n        oldLabels = this.state.labels;\\n    this.state.inFunction = true;this.state.inGenerator = node.generator;this.state.labels = [];\\n    node.body = this.parseBlock(true);\\n    node.expression = false;\\n    this.state.inFunction = oldInFunc;this.state.inGenerator = oldInGen;this.state.labels = oldLabels;\\n  }\\n  this.state.inAsync = oldInAsync;\\n\\n  // If this is a strict mode function, verify that argument names\\n  // are not repeated, and it does not try to bind the words `eval`\\n  // or `arguments`.\\n  var checkLVal = this.state.strict;\\n  var checkLValStrict = false;\\n  var isStrict = false;\\n\\n  // arrow function\\n  if (allowExpression) checkLVal = true;\\n\\n  // normal function\\n  if (!isExpression && node.body.directives.length) {\\n    for (var _iterator = (node.body.directives /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i2 >= _iterator.length) break;\\n        _ref = _iterator[_i2++];\\n      } else {\\n        _i2 = _iterator.next();\\n        if (_i2.done) break;\\n        _ref = _i2.value;\\n      }\\n\\n      var directive = _ref;\\n\\n      if (directive.value.value === \\"use strict\\") {\\n        isStrict = true;\\n        checkLVal = true;\\n        checkLValStrict = true;\\n        break;\\n      }\\n    }\\n  }\\n\\n  //\\n  if (isStrict && node.id && node.id.type === \\"Identifier\\" && node.id.name === \\"yield\\") {\\n    this.raise(node.id.start, \\"Binding yield in strict mode\\");\\n  }\\n\\n  if (checkLVal) {\\n    var nameHash = _Object$create(null);\\n    var oldStrict = this.state.strict;\\n    if (checkLValStrict) this.state.strict = true;\\n    if (node.id) {\\n      this.checkLVal(node.id, true);\\n    }\\n    for (var _iterator2 = (node.params /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i3 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i3++];\\n      } else {\\n        _i3 = _iterator2.next();\\n        if (_i3.done) break;\\n        _ref2 = _i3.value;\\n      }\\n\\n      var param = _ref2;\\n\\n      this.checkLVal(param, true, nameHash);\\n    }\\n    this.state.strict = oldStrict;\\n  }\\n};\\n\\n// Parses a comma-separated list of expressions, and returns them as\\n// an array. `close` is the token type that ends the list, and\\n// `allowEmpty` can be turned on to allow subsequent commas with\\n// nothing in between them to be parsed as `null` (which is needed\\n// for array literals).\\n\\npp.parseExprList = function (close, allowTrailingComma, allowEmpty, refShorthandDefaultPos) {\\n  var elts = [],\\n      first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (allowTrailingComma && this.eat(close)) break;\\n    }\\n\\n    elts.push(this.parseExprListItem(allowEmpty, refShorthandDefaultPos));\\n  }\\n  return elts;\\n};\\n\\npp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) {\\n  var elt = undefined;\\n  if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n    elt = null;\\n  } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n    elt = this.parseSpread(refShorthandDefaultPos);\\n  } else {\\n    elt = this.parseMaybeAssign(false, refShorthandDefaultPos);\\n  }\\n  return elt;\\n};\\n\\n// Parse the next token as an identifier. If `liberal` is true (used\\n// when parsing properties), it will also convert keywords into\\n// identifiers.\\n\\npp.parseIdentifier = function (liberal) {\\n  var node = this.startNode();\\n\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    if (!liberal && this.state.strict && _utilIdentifier.reservedWords.strict(this.state.value)) {\\n      this.raise(this.state.start, \\"The keyword \'\\" + this.state.value + \\"\' is reserved\\");\\n    }\\n\\n    node.name = this.state.value;\\n  } else if (liberal && this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n\\n  if (!liberal && node.name === \\"await\\" && this.state.inAsync) {\\n    this.raise(node.start, \\"invalid use of await inside of an async function\\");\\n  }\\n\\n  this.next();\\n  return this.finishNode(node, \\"Identifier\\");\\n};\\n\\n// Parses await expression inside async function.\\n\\npp.parseAwait = function (node) {\\n  if (!this.state.inAsync) {\\n    this.unexpected();\\n  }\\n  if (this.isLineTerminator()) {\\n    this.unexpected();\\n  }\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    this.raise(node.start, \\"await* has been removed from the async functions proposal. Use Promise.all() instead.\\");\\n  }\\n  node.argument = this.parseMaybeUnary();\\n  return this.finishNode(node, \\"AwaitExpression\\");\\n};\\n\\n// Parses yield expression inside generator.\\n\\npp.parseYield = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon() || !this.match(_tokenizerTypes.types.star) && !this.state.type.startsExpr) {\\n    node.delegate = false;\\n    node.argument = null;\\n  } else {\\n    node.delegate = this.eat(_tokenizerTypes.types.star);\\n    node.argument = this.parseMaybeAssign();\\n  }\\n  return this.finishNode(node, \\"YieldExpression\\");\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/identifier\\":18,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/core-js/object/create\\":22,\\"babel-runtime/helpers/interop-require-default\\":26}],5:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _options = require(\\"../options\\");\\n\\nvar _tokenizer = require(\\"../tokenizer\\");\\n\\nvar _tokenizer2 = _interopRequireDefault(_tokenizer);\\n\\nvar plugins = {};\\n\\nexports.plugins = plugins;\\n\\nvar Parser = (function (_Tokenizer) {\\n  _inherits(Parser, _Tokenizer);\\n\\n  function Parser(options /*: Object*/, input /*: string*/) {\\n    _classCallCheck(this, Parser);\\n\\n    options = _options.getOptions(options);\\n    _Tokenizer.call(this, options, input);\\n\\n    this.options = options;\\n    this.inModule = this.options.sourceType === \\"module\\";\\n    this.isReservedWord = _utilIdentifier.reservedWords[6];\\n    this.input = input;\\n    this.plugins = this.loadPlugins(this.options.plugins);\\n\\n    // If enabled, skip leading hashbang line.\\n    if (this.state.pos === 0 && this.input[0] === \\"#\\" && this.input[1] === \\"!\\") {\\n      this.skipLineComment(2);\\n    }\\n  }\\n\\n  Parser.prototype.hasPlugin = function hasPlugin(name /*: string*/) /*: boolean*/ {\\n    return !!(this.plugins[\\"*\\"] || this.plugins[name]);\\n  };\\n\\n  Parser.prototype.extend = function extend(name /*: string*/, f /*: Function*/) {\\n    this[name] = f(this[name]);\\n  };\\n\\n  Parser.prototype.loadPlugins = function loadPlugins(plugins /*: Array<string>*/) /*: Object*/ {\\n    var pluginMap = {};\\n\\n    if (plugins.indexOf(\\"flow\\") >= 0) {\\n      // ensure flow plugin loads last\\n      plugins = plugins.filter(function (plugin) {\\n        return plugin !== \\"flow\\";\\n      });\\n      plugins.push(\\"flow\\");\\n    }\\n\\n    for (var _iterator = plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var _name = _ref;\\n\\n      if (!pluginMap[_name]) {\\n        pluginMap[_name] = true;\\n\\n        var plugin = exports.plugins[_name];\\n        if (plugin) plugin(this);\\n      }\\n    }\\n\\n    return pluginMap;\\n  };\\n\\n  Parser.prototype.parse = function parse() /*: {\\n                                                type: \\"File\\",\\n                                                program: {\\n                                                  type: \\"Program\\",\\n                                                  body: Array<Object>\\n                                                }\\n                                              }*/ {\\n    var file = this.startNode();\\n    var program = this.startNode();\\n    this.nextToken();\\n    return this.parseTopLevel(file, program);\\n  };\\n\\n  return Parser;\\n})(_tokenizer2[\\"default\\"]);\\n\\nexports[\\"default\\"] = Parser;\\n},{\\"../options\\":2,\\"../tokenizer\\":15,\\"../util/identifier\\":18,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/helpers/class-call-check\\":24,\\"babel-runtime/helpers/inherits\\":25,\\"babel-runtime/helpers/interop-require-default\\":26}],6:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// This function is used to raise exceptions on parse errors. It\\n// takes an offset integer (into the current `input`) to indicate\\n// the location of the error, attaches the position to the end\\n// of the error message, and then raises a `SyntaxError` with that\\n// message.\\n\\npp.raise = function (pos, message) {\\n  var loc = _utilLocation.getLineInfo(this.input, pos);\\n  message += \\" (\\" + loc.line + \\":\\" + loc.column + \\")\\";\\n  var err = new SyntaxError(message);\\n  err.pos = pos;\\n  err.loc = loc;\\n  throw err;\\n};\\n},{\\"../util/location\\":19,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":26}],7:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// Convert existing expression atom to assignable pattern\\n// if possible.\\n\\npp.toAssignable = function (node, isBinding) {\\n  if (node) {\\n    switch (node.type) {\\n      case \\"Identifier\\":\\n      case \\"ObjectPattern\\":\\n      case \\"ArrayPattern\\":\\n      case \\"AssignmentPattern\\":\\n        break;\\n\\n      case \\"ObjectExpression\\":\\n        node.type = \\"ObjectPattern\\";\\n        for (var _iterator = (node.properties /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n          var _ref;\\n\\n          if (_isArray) {\\n            if (_i >= _iterator.length) break;\\n            _ref = _iterator[_i++];\\n          } else {\\n            _i = _iterator.next();\\n            if (_i.done) break;\\n            _ref = _i.value;\\n          }\\n\\n          var prop = _ref;\\n\\n          if (prop.type === \\"ObjectMethod\\") {\\n            if (prop.kind === \\"get\\" || prop.kind === \\"set\\") {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain getter or setter\\");\\n            } else {\\n              this.raise(prop.key.start, \\"Object pattern can\'t contain methods\\");\\n            }\\n          } else {\\n            this.toAssignable(prop, isBinding);\\n          }\\n        }\\n        break;\\n\\n      case \\"ObjectProperty\\":\\n        this.toAssignable(node.value, isBinding);\\n        break;\\n\\n      case \\"SpreadProperty\\":\\n        node.type = \\"RestProperty\\";\\n        break;\\n\\n      case \\"ArrayExpression\\":\\n        node.type = \\"ArrayPattern\\";\\n        this.toAssignableList(node.elements, isBinding);\\n        break;\\n\\n      case \\"AssignmentExpression\\":\\n        if (node.operator === \\"=\\") {\\n          node.type = \\"AssignmentPattern\\";\\n          delete node.operator;\\n        } else {\\n          this.raise(node.left.end, \\"Only \'=\' operator can be used for specifying default value.\\");\\n        }\\n        break;\\n\\n      case \\"MemberExpression\\":\\n        if (!isBinding) break;\\n\\n      default:\\n        this.raise(node.start, \\"Assigning to rvalue\\");\\n    }\\n  }\\n  return node;\\n};\\n\\n// Convert list of expression atoms to binding list.\\n\\npp.toAssignableList = function (exprList, isBinding) {\\n  var end = exprList.length;\\n  if (end) {\\n    var last = exprList[end - 1];\\n    if (last && last.type === \\"RestElement\\") {\\n      --end;\\n    } else if (last && last.type === \\"SpreadElement\\") {\\n      last.type = \\"RestElement\\";\\n      var arg = last.argument;\\n      this.toAssignable(arg, isBinding);\\n      if (arg.type !== \\"Identifier\\" && arg.type !== \\"MemberExpression\\" && arg.type !== \\"ArrayPattern\\") {\\n        this.unexpected(arg.start);\\n      }\\n      --end;\\n    }\\n  }\\n  for (var i = 0; i < end; i++) {\\n    var elt = exprList[i];\\n    if (elt) this.toAssignable(elt, isBinding);\\n  }\\n  return exprList;\\n};\\n\\n// Convert list of expression atoms to a list of\\n\\npp.toReferencedList = function (exprList) {\\n  return exprList;\\n};\\n\\n// Parses spread element.\\n\\npp.parseSpread = function (refShorthandDefaultPos) {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseMaybeAssign(refShorthandDefaultPos);\\n  return this.finishNode(node, \\"SpreadElement\\");\\n};\\n\\npp.parseRest = function () {\\n  var node = this.startNode();\\n  this.next();\\n  node.argument = this.parseBindingIdentifier();\\n  return this.finishNode(node, \\"RestElement\\");\\n};\\n\\npp.shouldAllowYieldIdentifier = function () {\\n  return this.match(_tokenizerTypes.types._yield) && !this.state.strict && !this.state.inGenerator;\\n};\\n\\npp.parseBindingIdentifier = function () {\\n  return this.parseIdentifier(this.shouldAllowYieldIdentifier());\\n};\\n\\n// Parses lvalue (assignable) atom.\\n\\npp.parseBindingAtom = function () {\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types._yield:\\n      if (this.state.strict || this.state.inGenerator) this.unexpected();\\n\\n    case _tokenizerTypes.types.name:\\n      return this.parseIdentifier(true);\\n\\n    case _tokenizerTypes.types.bracketL:\\n      var node = this.startNode();\\n      this.next();\\n      node.elements = this.parseBindingList(_tokenizerTypes.types.bracketR, true, true);\\n      return this.finishNode(node, \\"ArrayPattern\\");\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseObj(true);\\n\\n    default:\\n      this.unexpected();\\n  }\\n};\\n\\npp.parseBindingList = function (close, allowEmpty, allowTrailingComma) {\\n  var elts = [];\\n  var first = true;\\n  while (!this.eat(close)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n    if (allowEmpty && this.match(_tokenizerTypes.types.comma)) {\\n      elts.push(null);\\n    } else if (allowTrailingComma && this.eat(close)) {\\n      break;\\n    } else if (this.match(_tokenizerTypes.types.ellipsis)) {\\n      elts.push(this.parseAssignableListItemTypes(this.parseRest()));\\n      this.expect(close);\\n      break;\\n    } else {\\n      var left = this.parseMaybeDefault();\\n      this.parseAssignableListItemTypes(left);\\n      elts.push(this.parseMaybeDefault(null, null, left));\\n    }\\n  }\\n  return elts;\\n};\\n\\npp.parseAssignableListItemTypes = function (param) {\\n  return param;\\n};\\n\\n// Parses assignment pattern around given atom if possible.\\n\\npp.parseMaybeDefault = function (startPos, startLoc, left) {\\n  startLoc = startLoc || this.state.startLoc;\\n  startPos = startPos || this.state.start;\\n  left = left || this.parseBindingAtom();\\n  if (!this.eat(_tokenizerTypes.types.eq)) return left;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.left = left;\\n  node.right = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"AssignmentPattern\\");\\n};\\n\\n// Verify that a node is an lval — something that can be assigned\\n// to.\\n\\npp.checkLVal = function (expr, isBinding, checkClashes) {\\n  switch (expr.type) {\\n    case \\"Identifier\\":\\n      if (this.state.strict && (_utilIdentifier.reservedWords.strictBind(expr.name) || _utilIdentifier.reservedWords.strict(expr.name))) {\\n        this.raise(expr.start, (isBinding ? \\"Binding \\" : \\"Assigning to \\") + expr.name + \\" in strict mode\\");\\n      }\\n\\n      if (checkClashes) {\\n        // we need to prefix this with an underscore for the cases where we have a key of\\n        // `__proto__`. there\'s a bug in old V8 where the following wouldn\'t work:\\n        //\\n        //   > var obj = Object.create(null);\\n        //   undefined\\n        //   > obj.__proto__\\n        //   null\\n        //   > obj.__proto__ = true;\\n        //   true\\n        //   > obj.__proto__\\n        //   null\\n        var key = \\"_\\" + expr.name;\\n\\n        if (checkClashes[key]) {\\n          this.raise(expr.start, \\"Argument name clash in strict mode\\");\\n        } else {\\n          checkClashes[key] = true;\\n        }\\n      }\\n      break;\\n\\n    case \\"MemberExpression\\":\\n      if (isBinding) this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" member expression\\");\\n      break;\\n\\n    case \\"ObjectPattern\\":\\n      for (var _iterator2 = (expr.properties /*: Array<Object>*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var prop = _ref2;\\n\\n        if (prop.type === \\"ObjectProperty\\") prop = prop.value;\\n        this.checkLVal(prop, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"ArrayPattern\\":\\n      for (var _iterator3 = (expr.elements /*: Array<Object>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n        var _ref3;\\n\\n        if (_isArray3) {\\n          if (_i3 >= _iterator3.length) break;\\n          _ref3 = _iterator3[_i3++];\\n        } else {\\n          _i3 = _iterator3.next();\\n          if (_i3.done) break;\\n          _ref3 = _i3.value;\\n        }\\n\\n        var elem = _ref3;\\n\\n        if (elem) this.checkLVal(elem, isBinding, checkClashes);\\n      }\\n      break;\\n\\n    case \\"AssignmentPattern\\":\\n      this.checkLVal(expr.left, isBinding, checkClashes);\\n      break;\\n\\n    case \\"RestProperty\\":\\n    case \\"RestElement\\":\\n      this.checkLVal(expr.argument, isBinding, checkClashes);\\n      break;\\n\\n    default:\\n      this.raise(expr.start, (isBinding ? \\"Binding\\" : \\"Assigning to\\") + \\" rvalue\\");\\n  }\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/identifier\\":18,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/helpers/interop-require-default\\":26}],8:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\n// Start an AST node, attaching a start offset.\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\nvar Node = (function () {\\n  function Node(pos /*:: ?: number*/, loc /*:: ?: SourceLocation*/) {\\n    _classCallCheck(this, Node);\\n\\n    this.type = \\"\\";\\n    this.start = pos;\\n    this.end = 0;\\n    this.loc = new _utilLocation.SourceLocation(loc);\\n  }\\n\\n  Node.prototype.__clone = function __clone() /*: Node*/ {\\n    var node2 = new Node();\\n    for (var key in this) {\\n      node2[key] = this[key];\\n    }return node2;\\n  };\\n\\n  return Node;\\n})();\\n\\npp.startNode = function () {\\n  return new Node(this.state.start, this.state.startLoc);\\n};\\n\\npp.startNodeAt = function (pos, loc) {\\n  return new Node(pos, loc);\\n};\\n\\nfunction finishNodeAt(node, type, pos, loc) {\\n  node.type = type;\\n  node.end = pos;\\n  node.loc.end = loc;\\n  this.processComment(node);\\n  return node;\\n}\\n\\n// Finish an AST node, adding `type` and `end` properties.\\n\\npp.finishNode = function (node, type) {\\n  return finishNodeAt.call(this, node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);\\n};\\n\\n// Finish node at given position\\n\\npp.finishNodeAt = function (node, type, pos, loc) {\\n  return finishNodeAt.call(this, node, type, pos, loc);\\n};\\n},{\\"../util/location\\":19,\\"./index\\":5,\\"babel-runtime/helpers/class-call-check\\":24,\\"babel-runtime/helpers/interop-require-default\\":26}],9:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ### Statement parsing\\n\\n// Parse a program. Initializes the parser, reads any number of\\n// statements, and wraps them in a Program node.  Optionally takes a\\n// `program` argument.  If present, the statements will be appended\\n// to its body instead of creating a new node.\\n\\npp.parseTopLevel = function (file, program) {\\n  program.sourceType = this.options.sourceType;\\n\\n  this.parseBlockBody(program, true, true, _tokenizerTypes.types.eof);\\n\\n  file.program = this.finishNode(program, \\"Program\\");\\n  file.comments = this.state.comments;\\n  file.tokens = this.state.tokens;\\n\\n  return this.finishNode(file, \\"File\\");\\n};\\n\\nvar loopLabel = { kind: \\"loop\\" },\\n    switchLabel = { kind: \\"switch\\" };\\n\\n// TODO\\n\\npp.stmtToDirective = function (stmt) {\\n  var expr = stmt.expression;\\n\\n  var directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\\n  var directive = this.startNodeAt(stmt.start, stmt.loc.start);\\n\\n  var raw = this.input.slice(expr.start, expr.end);\\n  var val = directiveLiteral.value = raw.slice(1, -1); // remove quotes\\n\\n  this.addExtra(directiveLiteral, \\"raw\\", raw);\\n  this.addExtra(directiveLiteral, \\"rawValue\\", val);\\n\\n  directive.value = this.finishNodeAt(directiveLiteral, \\"DirectiveLiteral\\", expr.end, expr.loc.end);\\n\\n  return this.finishNodeAt(directive, \\"Directive\\", stmt.end, stmt.loc.end);\\n};\\n\\n// Parse a single statement.\\n//\\n// If expecting a statement and finding a slash operator, parse a\\n// regular expression literal. This is to handle cases like\\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\\n// does not help.\\n\\npp.parseStatement = function (declaration, topLevel) {\\n  if (this.match(_tokenizerTypes.types.at)) {\\n    this.parseDecorators(true);\\n  }\\n\\n  var starttype = this.state.type,\\n      node = this.startNode();\\n\\n  // Most types of statements are recognized by the keyword they\\n  // start with. Many are trivial to parse, some require a bit of\\n  // complexity.\\n\\n  switch (starttype) {\\n    case _tokenizerTypes.types._break:case _tokenizerTypes.types._continue:\\n      return this.parseBreakContinueStatement(node, starttype.keyword);\\n    case _tokenizerTypes.types._debugger:\\n      return this.parseDebuggerStatement(node);\\n    case _tokenizerTypes.types._do:\\n      return this.parseDoStatement(node);\\n    case _tokenizerTypes.types._for:\\n      return this.parseForStatement(node);\\n    case _tokenizerTypes.types._function:\\n      if (!declaration) this.unexpected();\\n      return this.parseFunctionStatement(node);\\n\\n    case _tokenizerTypes.types._class:\\n      if (!declaration) this.unexpected();\\n      this.takeDecorators(node);\\n      return this.parseClass(node, true);\\n\\n    case _tokenizerTypes.types._if:\\n      return this.parseIfStatement(node);\\n    case _tokenizerTypes.types._return:\\n      return this.parseReturnStatement(node);\\n    case _tokenizerTypes.types._switch:\\n      return this.parseSwitchStatement(node);\\n    case _tokenizerTypes.types._throw:\\n      return this.parseThrowStatement(node);\\n    case _tokenizerTypes.types._try:\\n      return this.parseTryStatement(node);\\n\\n    case _tokenizerTypes.types._let:\\n    case _tokenizerTypes.types._const:\\n      if (!declaration) this.unexpected(); // NOTE: falls through to _var\\n\\n    case _tokenizerTypes.types._var:\\n      return this.parseVarStatement(node, starttype);\\n\\n    case _tokenizerTypes.types._while:\\n      return this.parseWhileStatement(node);\\n    case _tokenizerTypes.types._with:\\n      return this.parseWithStatement(node);\\n    case _tokenizerTypes.types.braceL:\\n      return this.parseBlock();\\n    case _tokenizerTypes.types.semi:\\n      return this.parseEmptyStatement(node);\\n    case _tokenizerTypes.types._export:\\n    case _tokenizerTypes.types._import:\\n      if (!this.options.allowImportExportEverywhere) {\\n        if (!topLevel) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may only appear at the top level\\");\\n        }\\n\\n        if (!this.inModule) {\\n          this.raise(this.state.start, \\"\'import\' and \'export\' may appear only with \'sourceType: module\'\\");\\n        }\\n      }\\n      return starttype === _tokenizerTypes.types._import ? this.parseImport(node) : this.parseExport(node);\\n\\n    case _tokenizerTypes.types.name:\\n      if (this.hasPlugin(\\"asyncFunctions\\") && this.state.value === \\"async\\") {\\n        // peek ahead and see if next token is a function\\n        var state = this.state.clone();\\n        this.next();\\n        if (this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) {\\n          this.expect(_tokenizerTypes.types._function);\\n          return this.parseFunction(node, true, false, true);\\n        } else {\\n          this.state = state;\\n        }\\n      }\\n  }\\n\\n  // If the statement does not start with a statement keyword or a\\n  // brace, it\'s an ExpressionStatement or LabeledStatement. We\\n  // simply start parsing an expression, and afterwards, if the\\n  // next token is a colon and the expression was a simple\\n  // Identifier node, we switch to interpreting it as a label.\\n  var maybeName = this.state.value;\\n  var expr = this.parseExpression();\\n\\n  if (starttype === _tokenizerTypes.types.name && expr.type === \\"Identifier\\" && this.eat(_tokenizerTypes.types.colon)) {\\n    return this.parseLabeledStatement(node, maybeName, expr);\\n  } else {\\n    return this.parseExpressionStatement(node, expr);\\n  }\\n};\\n\\npp.takeDecorators = function (node) {\\n  if (this.state.decorators.length) {\\n    node.decorators = this.state.decorators;\\n    this.state.decorators = [];\\n  }\\n};\\n\\npp.parseDecorators = function (allowExport) {\\n  while (this.match(_tokenizerTypes.types.at)) {\\n    this.state.decorators.push(this.parseDecorator());\\n  }\\n\\n  if (allowExport && this.match(_tokenizerTypes.types._export)) {\\n    return;\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._class)) {\\n    this.raise(this.state.start, \\"Leading decorators must be attached to a class declaration\\");\\n  }\\n};\\n\\npp.parseDecorator = function () {\\n  if (!this.hasPlugin(\\"decorators\\")) {\\n    this.unexpected();\\n  }\\n  var node = this.startNode();\\n  this.next();\\n  node.expression = this.parseMaybeAssign();\\n  return this.finishNode(node, \\"Decorator\\");\\n};\\n\\npp.parseBreakContinueStatement = function (node, keyword) {\\n  var isBreak = keyword === \\"break\\";\\n  this.next();\\n\\n  if (this.isLineTerminator()) {\\n    node.label = null;\\n  } else if (!this.match(_tokenizerTypes.types.name)) {\\n    this.unexpected();\\n  } else {\\n    node.label = this.parseIdentifier();\\n    this.semicolon();\\n  }\\n\\n  // Verify that there is an actual destination to break or\\n  // continue to.\\n  var i = undefined;\\n  for (i = 0; i < this.state.labels.length; ++i) {\\n    var lab = this.state.labels[i];\\n    if (node.label == null || lab.name === node.label.name) {\\n      if (lab.kind != null && (isBreak || lab.kind === \\"loop\\")) break;\\n      if (node.label && isBreak) break;\\n    }\\n  }\\n  if (i === this.state.labels.length) this.raise(node.start, \\"Unsyntactic \\" + keyword);\\n  return this.finishNode(node, isBreak ? \\"BreakStatement\\" : \\"ContinueStatement\\");\\n};\\n\\npp.parseDebuggerStatement = function (node) {\\n  this.next();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DebuggerStatement\\");\\n};\\n\\npp.parseDoStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  this.expect(_tokenizerTypes.types._while);\\n  node.test = this.parseParenExpression();\\n  this.eat(_tokenizerTypes.types.semi);\\n  return this.finishNode(node, \\"DoWhileStatement\\");\\n};\\n\\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\\n// loop is non-trivial. Basically, we have to parse the init `var`\\n// statement or expression, disallowing the `in` operator (see\\n// the second parameter to `parseExpression`), and then check\\n// whether the next token is `in` or `of`. When there is no init\\n// part (semicolon immediately after the opening parenthesis), it\\n// is a regular `for` loop.\\n\\npp.parseForStatement = function (node) {\\n  this.next();\\n  this.state.labels.push(loopLabel);\\n  this.expect(_tokenizerTypes.types.parenL);\\n\\n  if (this.match(_tokenizerTypes.types.semi)) {\\n    return this.parseFor(node, null);\\n  }\\n\\n  if (this.match(_tokenizerTypes.types._var) || this.match(_tokenizerTypes.types._let) || this.match(_tokenizerTypes.types._const)) {\\n    var _init = this.startNode(),\\n        varKind = this.state.type;\\n    this.next();\\n    this.parseVar(_init, true, varKind);\\n    this.finishNode(_init, \\"VariableDeclaration\\");\\n\\n    if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n      if (_init.declarations.length === 1 && !_init.declarations[0].init) {\\n        return this.parseForIn(node, _init);\\n      }\\n    }\\n\\n    return this.parseFor(node, _init);\\n  }\\n\\n  var refShorthandDefaultPos = { start: 0 };\\n  var init = this.parseExpression(true, refShorthandDefaultPos);\\n  if (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")) {\\n    this.toAssignable(init);\\n    this.checkLVal(init);\\n    return this.parseForIn(node, init);\\n  } else if (refShorthandDefaultPos.start) {\\n    this.unexpected(refShorthandDefaultPos.start);\\n  }\\n  return this.parseFor(node, init);\\n};\\n\\npp.parseFunctionStatement = function (node) {\\n  this.next();\\n  return this.parseFunction(node, true);\\n};\\n\\npp.parseIfStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  node.consequent = this.parseStatement(false);\\n  node.alternate = this.eat(_tokenizerTypes.types._else) ? this.parseStatement(false) : null;\\n  return this.finishNode(node, \\"IfStatement\\");\\n};\\n\\npp.parseReturnStatement = function (node) {\\n  if (!this.state.inFunction && !this.options.allowReturnOutsideFunction) {\\n    this.raise(this.state.start, \\"\'return\' outside of function\\");\\n  }\\n\\n  this.next();\\n\\n  // In `return` (and `break`/`continue`), the keywords with\\n  // optional arguments, we eagerly look for a semicolon or the\\n  // possibility to insert one.\\n\\n  if (this.isLineTerminator()) {\\n    node.argument = null;\\n  } else {\\n    node.argument = this.parseExpression();\\n    this.semicolon();\\n  }\\n\\n  return this.finishNode(node, \\"ReturnStatement\\");\\n};\\n\\npp.parseSwitchStatement = function (node) {\\n  this.next();\\n  node.discriminant = this.parseParenExpression();\\n  node.cases = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.state.labels.push(switchLabel);\\n\\n  // Statements under must be grouped (by label) in SwitchCase\\n  // nodes. `cur` is used to keep the node that we are currently\\n  // adding statements to.\\n\\n  var cur = undefined;\\n  for (var sawDefault = undefined; !this.match(_tokenizerTypes.types.braceR);) {\\n    if (this.match(_tokenizerTypes.types._case) || this.match(_tokenizerTypes.types._default)) {\\n      var isCase = this.match(_tokenizerTypes.types._case);\\n      if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n      node.cases.push(cur = this.startNode());\\n      cur.consequent = [];\\n      this.next();\\n      if (isCase) {\\n        cur.test = this.parseExpression();\\n      } else {\\n        if (sawDefault) this.raise(this.state.lastTokStart, \\"Multiple default clauses\\");\\n        sawDefault = true;\\n        cur.test = null;\\n      }\\n      this.expect(_tokenizerTypes.types.colon);\\n    } else {\\n      if (cur) {\\n        cur.consequent.push(this.parseStatement(true));\\n      } else {\\n        this.unexpected();\\n      }\\n    }\\n  }\\n  if (cur) this.finishNode(cur, \\"SwitchCase\\");\\n  this.next(); // Closing brace\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"SwitchStatement\\");\\n};\\n\\npp.parseThrowStatement = function (node) {\\n  this.next();\\n  if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) this.raise(this.state.lastTokEnd, \\"Illegal newline after throw\\");\\n  node.argument = this.parseExpression();\\n  this.semicolon();\\n  return this.finishNode(node, \\"ThrowStatement\\");\\n};\\n\\n// Reused empty array added for node fields that are always empty.\\n\\nvar empty = [];\\n\\npp.parseTryStatement = function (node) {\\n  this.next();\\n\\n  node.block = this.parseBlock();\\n  node.handler = null;\\n\\n  if (this.match(_tokenizerTypes.types._catch)) {\\n    var clause = this.startNode();\\n    this.next();\\n\\n    this.expect(_tokenizerTypes.types.parenL);\\n    clause.param = this.parseBindingAtom();\\n    this.checkLVal(clause.param, true, _Object$create(null));\\n    this.expect(_tokenizerTypes.types.parenR);\\n\\n    clause.body = this.parseBlock();\\n    node.handler = this.finishNode(clause, \\"CatchClause\\");\\n  }\\n\\n  node.guardedHandlers = empty;\\n  node.finalizer = this.eat(_tokenizerTypes.types._finally) ? this.parseBlock() : null;\\n\\n  if (!node.handler && !node.finalizer) {\\n    this.raise(node.start, \\"Missing catch or finally clause\\");\\n  }\\n\\n  return this.finishNode(node, \\"TryStatement\\");\\n};\\n\\npp.parseVarStatement = function (node, kind) {\\n  this.next();\\n  this.parseVar(node, false, kind);\\n  this.semicolon();\\n  return this.finishNode(node, \\"VariableDeclaration\\");\\n};\\n\\npp.parseWhileStatement = function (node) {\\n  this.next();\\n  node.test = this.parseParenExpression();\\n  this.state.labels.push(loopLabel);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"WhileStatement\\");\\n};\\n\\npp.parseWithStatement = function (node) {\\n  if (this.state.strict) this.raise(this.state.start, \\"\'with\' in strict mode\\");\\n  this.next();\\n  node.object = this.parseParenExpression();\\n  node.body = this.parseStatement(false);\\n  return this.finishNode(node, \\"WithStatement\\");\\n};\\n\\npp.parseEmptyStatement = function (node) {\\n  this.next();\\n  return this.finishNode(node, \\"EmptyStatement\\");\\n};\\n\\npp.parseLabeledStatement = function (node, maybeName, expr) {\\n  for (var _iterator = (this.state.labels /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var label = _ref;\\n\\n    if (label.name === maybeName) {\\n      this.raise(expr.start, \\"Label \'\\" + maybeName + \\"\' is already declared\\");\\n    }\\n  }\\n\\n  var kind = this.state.type.isLoop ? \\"loop\\" : this.match(_tokenizerTypes.types._switch) ? \\"switch\\" : null;\\n  for (var i = this.state.labels.length - 1; i >= 0; i--) {\\n    var label = this.state.labels[i];\\n    if (label.statementStart === node.start) {\\n      label.statementStart = this.state.start;\\n      label.kind = kind;\\n    } else {\\n      break;\\n    }\\n  }\\n\\n  this.state.labels.push({ name: maybeName, kind: kind, statementStart: this.state.start });\\n  node.body = this.parseStatement(true);\\n  this.state.labels.pop();\\n  node.label = expr;\\n  return this.finishNode(node, \\"LabeledStatement\\");\\n};\\n\\npp.parseExpressionStatement = function (node, expr) {\\n  node.expression = expr;\\n  this.semicolon();\\n  return this.finishNode(node, \\"ExpressionStatement\\");\\n};\\n\\n// Parse a semicolon-enclosed block of statements, handling `\\"use\\n// strict\\"` declarations when `allowStrict` is true (used for\\n// function bodies).\\n\\npp.parseBlock = function (allowDirectives /*:: ?*/) {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types.braceL);\\n  this.parseBlockBody(node, allowDirectives, false, _tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"BlockStatement\\");\\n};\\n\\n// TODO\\n\\npp.parseBlockBody = function (node, allowDirectives, topLevel, end) {\\n  node.body = [];\\n  node.directives = [];\\n\\n  var parsedNonDirective = false;\\n  var oldStrict = undefined;\\n  var octalPosition = undefined;\\n\\n  while (!this.eat(end)) {\\n    if (!parsedNonDirective && this.state.containsOctal && !octalPosition) {\\n      octalPosition = this.state.octalPosition;\\n    }\\n\\n    var stmt = this.parseStatement(true, topLevel);\\n\\n    if (allowDirectives && !parsedNonDirective && stmt.type === \\"ExpressionStatement\\" && stmt.expression.type === \\"StringLiteral\\" && !stmt.expression.extra.parenthesized) {\\n      var directive = this.stmtToDirective(stmt);\\n      node.directives.push(directive);\\n\\n      if (oldStrict === undefined && directive.value.value === \\"use strict\\") {\\n        oldStrict = this.state.strict;\\n        this.setStrict(true);\\n\\n        if (octalPosition) {\\n          this.raise(octalPosition, \\"Octal literal in strict mode\\");\\n        }\\n      }\\n\\n      continue;\\n    }\\n\\n    parsedNonDirective = true;\\n    node.body.push(stmt);\\n  }\\n\\n  if (oldStrict === false) {\\n    this.setStrict(false);\\n  }\\n};\\n\\n// Parse a regular `for` loop. The disambiguation code in\\n// `parseStatement` will already have parsed the init statement or\\n// expression.\\n\\npp.parseFor = function (node, init) {\\n  node.init = init;\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.test = this.match(_tokenizerTypes.types.semi) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.semi);\\n  node.update = this.match(_tokenizerTypes.types.parenR) ? null : this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, \\"ForStatement\\");\\n};\\n\\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\\n// same from parser\'s perspective.\\n\\npp.parseForIn = function (node, init) {\\n  var type = this.match(_tokenizerTypes.types._in) ? \\"ForInStatement\\" : \\"ForOfStatement\\";\\n  this.next();\\n  node.left = init;\\n  node.right = this.parseExpression();\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.body = this.parseStatement(false);\\n  this.state.labels.pop();\\n  return this.finishNode(node, type);\\n};\\n\\n// Parse a list of variable declarations.\\n\\npp.parseVar = function (node, isFor, kind) {\\n  node.declarations = [];\\n  node.kind = kind.keyword;\\n  for (;;) {\\n    var decl = this.startNode();\\n    this.parseVarHead(decl);\\n    if (this.eat(_tokenizerTypes.types.eq)) {\\n      decl.init = this.parseMaybeAssign(isFor);\\n    } else if (kind === _tokenizerTypes.types._const && !(this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\"))) {\\n      this.unexpected();\\n    } else if (decl.id.type !== \\"Identifier\\" && !(isFor && (this.match(_tokenizerTypes.types._in) || this.isContextual(\\"of\\")))) {\\n      this.raise(this.state.lastTokEnd, \\"Complex binding patterns require an initialization value\\");\\n    } else {\\n      decl.init = null;\\n    }\\n    node.declarations.push(this.finishNode(decl, \\"VariableDeclarator\\"));\\n    if (!this.eat(_tokenizerTypes.types.comma)) break;\\n  }\\n  return node;\\n};\\n\\npp.parseVarHead = function (decl) {\\n  decl.id = this.parseBindingAtom();\\n  this.checkLVal(decl.id, true);\\n};\\n\\n// Parse a function declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) {\\n  var oldInMethod = this.state.inMethod;\\n  this.state.inMethod = false;\\n\\n  this.initFunction(node, isAsync);\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    if (node.async && !this.hasPlugin(\\"asyncGenerators\\")) {\\n      this.unexpected();\\n    } else {\\n      node.generator = true;\\n      this.next();\\n    }\\n  }\\n\\n  if (isStatement && !optionalId && !this.match(_tokenizerTypes.types.name) && !this.match(_tokenizerTypes.types._yield)) {\\n    this.unexpected();\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._yield)) {\\n    node.id = this.parseBindingIdentifier();\\n  }\\n\\n  this.parseFunctionParams(node);\\n  this.parseFunctionBody(node, allowExpressionBody);\\n\\n  this.state.inMethod = oldInMethod;\\n\\n  return this.finishNode(node, isStatement ? \\"FunctionDeclaration\\" : \\"FunctionExpression\\");\\n};\\n\\npp.parseFunctionParams = function (node) {\\n  this.expect(_tokenizerTypes.types.parenL);\\n  node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n};\\n\\n// Parse a class declaration or literal (depending on the\\n// `isStatement` parameter).\\n\\npp.parseClass = function (node, isStatement, optionalId) {\\n  this.next();\\n  this.parseClassId(node, isStatement, optionalId);\\n  this.parseClassSuper(node);\\n  this.parseClassBody(node);\\n  return this.finishNode(node, isStatement ? \\"ClassDeclaration\\" : \\"ClassExpression\\");\\n};\\n\\npp.isClassProperty = function () {\\n  return this.match(_tokenizerTypes.types.eq) || this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\npp.parseClassBody = function (node) {\\n  // class bodies are implicitly strict\\n  var oldStrict = this.state.strict;\\n  this.state.strict = true;\\n\\n  var hadConstructorCall = false;\\n  var hadConstructor = false;\\n  var decorators = [];\\n  var classBody = this.startNode();\\n\\n  classBody.body = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (this.eat(_tokenizerTypes.types.semi)) {\\n      continue;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.at)) {\\n      decorators.push(this.parseDecorator());\\n      continue;\\n    }\\n\\n    var method = this.startNode();\\n\\n    // steal the decorators if there are any\\n    if (decorators.length) {\\n      method.decorators = decorators;\\n      decorators = [];\\n    }\\n\\n    var isConstructorCall = false;\\n    var isMaybeStatic = this.match(_tokenizerTypes.types.name) && this.state.value === \\"static\\";\\n    var isGenerator = this.eat(_tokenizerTypes.types.star);\\n    var isGetSet = false;\\n    var isAsync = false;\\n\\n    this.parsePropertyName(method);\\n\\n    method[\\"static\\"] = isMaybeStatic && !this.match(_tokenizerTypes.types.parenL);\\n    if (method[\\"static\\"]) {\\n      if (isGenerator) this.unexpected();\\n      isGenerator = this.eat(_tokenizerTypes.types.star);\\n      this.parsePropertyName(method);\\n    }\\n\\n    if (!isGenerator && method.key.type === \\"Identifier\\" && !method.computed) {\\n      if (this.isClassProperty()) {\\n        classBody.body.push(this.parseClassProperty(method));\\n        continue;\\n      }\\n\\n      if (this.hasPlugin(\\"classConstructorCall\\") && method.key.name === \\"call\\" && this.match(_tokenizerTypes.types.name) && this.state.value === \\"constructor\\") {\\n        isConstructorCall = true;\\n        this.parsePropertyName(method);\\n      }\\n    }\\n\\n    var isAsyncMethod = this.hasPlugin(\\"asyncFunctions\\") && !this.match(_tokenizerTypes.types.parenL) && !method.computed && method.key.type === \\"Identifier\\" && method.key.name === \\"async\\";\\n    if (isAsyncMethod) {\\n      if (this.hasPlugin(\\"asyncGenerators\\") && this.eat(_tokenizerTypes.types.star)) isGenerator = true;\\n      isAsync = true;\\n      this.parsePropertyName(method);\\n    }\\n\\n    method.kind = \\"method\\";\\n\\n    if (!method.computed) {\\n      var key = method.key;\\n\\n      // handle get/set methods\\n      // eg. class Foo { get bar() {} set bar() {} }\\n      if (!isAsync && !isGenerator && key.type === \\"Identifier\\" && !this.match(_tokenizerTypes.types.parenL) && (key.name === \\"get\\" || key.name === \\"set\\")) {\\n        isGetSet = true;\\n        method.kind = key.name;\\n        key = this.parsePropertyName(method);\\n      }\\n\\n      // disallow invalid constructors\\n      var isConstructor = !isConstructorCall && !method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"constructor\\" || key.type === \\"StringLiteral\\" && key.value === \\"constructor\\");\\n      if (isConstructor) {\\n        if (hadConstructor) this.raise(key.start, \\"Duplicate constructor in the same class\\");\\n        if (isGetSet) this.raise(key.start, \\"Constructor can\'t have get/set modifier\\");\\n        if (isGenerator) this.raise(key.start, \\"Constructor can\'t be a generator\\");\\n        if (isAsync) this.raise(key.start, \\"Constructor can\'t be an async function\\");\\n        method.kind = \\"constructor\\";\\n        hadConstructor = true;\\n      }\\n\\n      // disallow static prototype method\\n      var isStaticPrototype = method[\\"static\\"] && (key.type === \\"Identifier\\" && key.name === \\"prototype\\" || key.type === \\"StringLiteral\\" && key.value === \\"prototype\\");\\n      if (isStaticPrototype) {\\n        this.raise(key.start, \\"Classes may not have static property named prototype\\");\\n      }\\n    }\\n\\n    // convert constructor to a constructor call\\n    if (isConstructorCall) {\\n      if (hadConstructorCall) this.raise(method.start, \\"Duplicate constructor call in the same class\\");\\n      method.kind = \\"constructorCall\\";\\n      hadConstructorCall = true;\\n    }\\n\\n    // disallow decorators on class constructors\\n    if ((method.kind === \\"constructor\\" || method.kind === \\"constructorCall\\") && method.decorators) {\\n      this.raise(method.start, \\"You can\'t attach decorators to a class constructor\\");\\n    }\\n\\n    this.parseClassMethod(classBody, method, isGenerator, isAsync);\\n\\n    // get methods aren\'t allowed to have any parameters\\n    // set methods must have exactly 1 parameter\\n    if (isGetSet) {\\n      var paramCount = method.kind === \\"get\\" ? 0 : 1;\\n      if (method.params.length !== paramCount) {\\n        var start = method.start;\\n        if (method.kind === \\"get\\") {\\n          this.raise(start, \\"getter should have no params\\");\\n        } else {\\n          this.raise(start, \\"setter should have exactly one param\\");\\n        }\\n      }\\n    }\\n  }\\n\\n  if (decorators.length) {\\n    this.raise(this.state.start, \\"You have trailing decorators with no method\\");\\n  }\\n\\n  node.body = this.finishNode(classBody, \\"ClassBody\\");\\n\\n  this.state.strict = oldStrict;\\n};\\n\\npp.parseClassProperty = function (node) {\\n  if (this.match(_tokenizerTypes.types.eq)) {\\n    if (!this.hasPlugin(\\"classProperties\\")) this.unexpected();\\n    this.next();\\n    node.value = this.parseMaybeAssign();\\n  } else {\\n    node.value = null;\\n  }\\n  if (!this.eat(_tokenizerTypes.types.semi)) {\\n    this.raise(node.value && node.value.end || node.key.end, \\"A semicolon is required after a class property\\");\\n  }\\n  return this.finishNode(node, \\"ClassProperty\\");\\n};\\n\\npp.parseClassMethod = function (classBody, method, isGenerator, isAsync) {\\n  this.parseMethod(method, isGenerator, isAsync);\\n  classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n};\\n\\npp.parseClassId = function (node, isStatement, optionalId) {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    node.id = this.parseIdentifier();\\n  } else {\\n    if (optionalId || !isStatement) {\\n      node.id = null;\\n    } else {\\n      this.unexpected();\\n    }\\n  }\\n};\\n\\npp.parseClassSuper = function (node) {\\n  node.superClass = this.eat(_tokenizerTypes.types._extends) ? this.parseExprSubscripts() : null;\\n};\\n\\n// Parses module export declaration.\\n\\npp.parseExport = function (node) {\\n  this.next();\\n  // export * from \'...\'\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    if (this.hasPlugin(\\"exportExtensions\\") && this.eatContextual(\\"as\\")) {\\n      specifier.exported = this.parseIdentifier();\\n      node.specifiers = [this.finishNode(specifier, \\"ExportNamespaceSpecifier\\")];\\n      this.parseExportSpecifiersMaybe(node);\\n      this.parseExportFrom(node, true);\\n    } else {\\n      this.parseExportFrom(node, true);\\n      return this.finishNode(node, \\"ExportAllDeclaration\\");\\n    }\\n  } else if (this.hasPlugin(\\"exportExtensions\\") && this.isExportDefaultSpecifier()) {\\n    var specifier = this.startNode();\\n    specifier.exported = this.parseIdentifier(true);\\n    node.specifiers = [this.finishNode(specifier, \\"ExportDefaultSpecifier\\")];\\n    if (this.match(_tokenizerTypes.types.comma) && this.lookahead().type === _tokenizerTypes.types.star) {\\n      this.expect(_tokenizerTypes.types.comma);\\n      var _specifier = this.startNode();\\n      this.expect(_tokenizerTypes.types.star);\\n      this.expectContextual(\\"as\\");\\n      _specifier.exported = this.parseIdentifier();\\n      node.specifiers.push(this.finishNode(_specifier, \\"ExportNamespaceSpecifier\\"));\\n    } else {\\n      this.parseExportSpecifiersMaybe(node);\\n    }\\n    this.parseExportFrom(node, true);\\n  } else if (this.eat(_tokenizerTypes.types._default)) {\\n    // export default ...\\n    var expr = this.startNode();\\n    var needsSemi = false;\\n    if (this.eat(_tokenizerTypes.types._function)) {\\n      expr = this.parseFunction(expr, true, false, false, true);\\n    } else if (this.match(_tokenizerTypes.types._class)) {\\n      expr = this.parseClass(expr, true, true);\\n    } else {\\n      needsSemi = true;\\n      expr = this.parseMaybeAssign();\\n    }\\n    node.declaration = expr;\\n    if (needsSemi) this.semicolon();\\n    this.checkExport(node);\\n    return this.finishNode(node, \\"ExportDefaultDeclaration\\");\\n  } else if (this.state.type.keyword || this.shouldParseExportDeclaration()) {\\n    node.specifiers = [];\\n    node.source = null;\\n    node.declaration = this.parseExportDeclaration(node);\\n  } else {\\n    // export { x, y as z } [from \'...\']\\n    node.declaration = null;\\n    node.specifiers = this.parseExportSpecifiers();\\n    this.parseExportFrom(node);\\n  }\\n  this.checkExport(node);\\n  return this.finishNode(node, \\"ExportNamedDeclaration\\");\\n};\\n\\npp.parseExportDeclaration = function () {\\n  return this.parseStatement(true);\\n};\\n\\npp.isExportDefaultSpecifier = function () {\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    return this.state.value !== \\"type\\" && this.state.value !== \\"async\\" && this.state.value !== \\"interface\\";\\n  }\\n\\n  if (!this.match(_tokenizerTypes.types._default)) {\\n    return false;\\n  }\\n\\n  var lookahead = this.lookahead();\\n  return lookahead.type === _tokenizerTypes.types.comma || lookahead.type === _tokenizerTypes.types.name && lookahead.value === \\"from\\";\\n};\\n\\npp.parseExportSpecifiersMaybe = function (node) {\\n  if (this.eat(_tokenizerTypes.types.comma)) {\\n    node.specifiers = node.specifiers.concat(this.parseExportSpecifiers());\\n  }\\n};\\n\\npp.parseExportFrom = function (node, expect /*:: ?*/) {\\n  if (this.eatContextual(\\"from\\")) {\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n    this.checkExport(node);\\n  } else {\\n    if (expect) {\\n      this.unexpected();\\n    } else {\\n      node.source = null;\\n    }\\n  }\\n\\n  this.semicolon();\\n};\\n\\npp.shouldParseExportDeclaration = function () {\\n  return this.hasPlugin(\\"asyncFunctions\\") && this.isContextual(\\"async\\");\\n};\\n\\npp.checkExport = function (node) {\\n  if (this.state.decorators.length) {\\n    var isClass = node.declaration && (node.declaration.type === \\"ClassDeclaration\\" || node.declaration.type === \\"ClassExpression\\");\\n    if (!node.declaration || !isClass) {\\n      this.raise(node.start, \\"You can only use decorators on an export when exporting a class\\");\\n    }\\n    this.takeDecorators(node.declaration);\\n  }\\n};\\n\\n// Parses a comma-separated list of module exports.\\n\\npp.parseExportSpecifiers = function () {\\n  var nodes = [];\\n  var first = true;\\n  var needsFrom = undefined;\\n\\n  // export { x, y as z } [from \'...\']\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var isDefault = this.match(_tokenizerTypes.types._default);\\n    if (isDefault && !needsFrom) needsFrom = true;\\n\\n    var node = this.startNode();\\n    node.local = this.parseIdentifier(isDefault);\\n    node.exported = this.eatContextual(\\"as\\") ? this.parseIdentifier(true) : node.local.__clone();\\n    nodes.push(this.finishNode(node, \\"ExportSpecifier\\"));\\n  }\\n\\n  // https://github.com/ember-cli/ember-cli/pull/3739\\n  if (needsFrom && !this.isContextual(\\"from\\")) {\\n    this.unexpected();\\n  }\\n\\n  return nodes;\\n};\\n\\n// Parses import declaration.\\n\\npp.parseImport = function (node) {\\n  this.next();\\n\\n  // import \'...\'\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.specifiers = [];\\n    node.source = this.parseExprAtom();\\n  } else {\\n    node.specifiers = [];\\n    this.parseImportSpecifiers(node);\\n    this.expectContextual(\\"from\\");\\n    node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected();\\n  }\\n  this.semicolon();\\n  return this.finishNode(node, \\"ImportDeclaration\\");\\n};\\n\\n// Parses a comma-separated list of module imports.\\n\\npp.parseImportSpecifiers = function (node) {\\n  var first = true;\\n  if (this.match(_tokenizerTypes.types.name)) {\\n    // import defaultObj, { x, y as z } from \'...\'\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc));\\n    if (!this.eat(_tokenizerTypes.types.comma)) return;\\n  }\\n\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var specifier = this.startNode();\\n    this.next();\\n    this.expectContextual(\\"as\\");\\n    specifier.local = this.parseIdentifier();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportNamespaceSpecifier\\"));\\n    return;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.eat(_tokenizerTypes.types.braceR)) {\\n    if (first) {\\n      first = false;\\n    } else {\\n      this.expect(_tokenizerTypes.types.comma);\\n      if (this.eat(_tokenizerTypes.types.braceR)) break;\\n    }\\n\\n    var specifier = this.startNode();\\n    specifier.imported = this.parseIdentifier(true);\\n    specifier.local = this.eatContextual(\\"as\\") ? this.parseIdentifier() : specifier.imported.__clone();\\n    this.checkLVal(specifier.local, true);\\n    node.specifiers.push(this.finishNode(specifier, \\"ImportSpecifier\\"));\\n  }\\n};\\n\\npp.parseImportSpecifierDefault = function (id, startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.local = id;\\n  this.checkLVal(node.local, true);\\n  return this.finishNode(node, \\"ImportDefaultSpecifier\\");\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/whitespace\\":20,\\"./index\\":5,\\"babel-runtime/core-js/get-iterator\\":21,\\"babel-runtime/core-js/object/create\\":22,\\"babel-runtime/helpers/interop-require-default\\":26}],10:[function(require,module,exports){\\n/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar pp = _index2[\\"default\\"].prototype;\\n\\n// ## Parser utilities\\n\\n// TODO\\n\\npp.addExtra = function (node, key, val) {\\n  if (!node) return;\\n\\n  var extra = node.extra = node.extra || {};\\n  extra[key] = val;\\n};\\n\\n// TODO\\n\\npp.isRelational = function (op) {\\n  return this.match(_tokenizerTypes.types.relational) && this.state.value === op;\\n};\\n\\n// TODO\\n\\npp.expectRelational = function (op) {\\n  if (this.isRelational(op)) {\\n    this.next();\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\n// Tests whether parsed token is a contextual keyword.\\n\\npp.isContextual = function (name) {\\n  return this.match(_tokenizerTypes.types.name) && this.state.value === name;\\n};\\n\\n// Consumes contextual keyword if possible.\\n\\npp.eatContextual = function (name) {\\n  return this.state.value === name && this.eat(_tokenizerTypes.types.name);\\n};\\n\\n// Asserts that following token is given contextual keyword.\\n\\npp.expectContextual = function (name) {\\n  if (!this.eatContextual(name)) this.unexpected();\\n};\\n\\n// Test whether a semicolon can be inserted at the current position.\\n\\npp.canInsertSemicolon = function () {\\n  return this.match(_tokenizerTypes.types.eof) || this.match(_tokenizerTypes.types.braceR) || _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n};\\n\\n// TODO\\n\\npp.isLineTerminator = function () {\\n  return this.eat(_tokenizerTypes.types.semi) || this.canInsertSemicolon();\\n};\\n\\n// Consume a semicolon, or, failing that, see if we are allowed to\\n// pretend that there is a semicolon at this position.\\n\\npp.semicolon = function () {\\n  if (!this.isLineTerminator()) this.unexpected();\\n};\\n\\n// Expect a token of a given type. If found, consume it, otherwise,\\n// raise an unexpected token error.\\n\\npp.expect = function (type) {\\n  return this.eat(type) || this.unexpected();\\n};\\n\\n// Raise an unexpected token error.\\n\\npp.unexpected = function (pos) {\\n  this.raise(pos != null ? pos : this.state.start, \\"Unexpected token\\");\\n};\\n},{\\"../tokenizer/types\\":17,\\"../util/whitespace\\":20,\\"./index\\":5,\\"babel-runtime/helpers/interop-require-default\\":26}],11:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _tokenizerTypes = require(\\"../tokenizer/types\\");\\n\\nvar _parser = require(\\"../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\npp.flowParseTypeInitialiser = function (tok, allowLeadingPipeOrAnd) {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  this.expect(tok || _tokenizerTypes.types.colon);\\n  if (allowLeadingPipeOrAnd) {\\n    if (this.match(_tokenizerTypes.types.bitwiseAND) || this.match(_tokenizerTypes.types.bitwiseOR)) {\\n      this.next();\\n    }\\n  }\\n  var type = this.flowParseType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseDeclareClass = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node, true);\\n  return this.finishNode(node, \\"DeclareClass\\");\\n};\\n\\npp.flowParseDeclareFunction = function (node) {\\n  this.next();\\n\\n  var id = node.id = this.parseIdentifier();\\n\\n  var typeNode = this.startNode();\\n  var typeContainer = this.startNode();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    typeNode.typeParameters = null;\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  var tmp = this.flowParseFunctionTypeParams();\\n  typeNode.params = tmp.params;\\n  typeNode.rest = tmp.rest;\\n  this.expect(_tokenizerTypes.types.parenR);\\n  typeNode.returnType = this.flowParseTypeInitialiser();\\n\\n  typeContainer.typeAnnotation = this.finishNode(typeNode, \\"FunctionTypeAnnotation\\");\\n  id.typeAnnotation = this.finishNode(typeContainer, \\"TypeAnnotation\\");\\n\\n  this.finishNode(id, id.type);\\n\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"DeclareFunction\\");\\n};\\n\\npp.flowParseDeclare = function (node) {\\n  if (this.match(_tokenizerTypes.types._class)) {\\n    return this.flowParseDeclareClass(node);\\n  } else if (this.match(_tokenizerTypes.types._function)) {\\n    return this.flowParseDeclareFunction(node);\\n  } else if (this.match(_tokenizerTypes.types._var)) {\\n    return this.flowParseDeclareVariable(node);\\n  } else if (this.isContextual(\\"module\\")) {\\n    return this.flowParseDeclareModule(node);\\n  } else if (this.isContextual(\\"type\\")) {\\n    return this.flowParseDeclareTypeAlias(node);\\n  } else if (this.isContextual(\\"interface\\")) {\\n    return this.flowParseDeclareInterface(node);\\n  } else {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseDeclareVariable = function (node) {\\n  this.next();\\n  node.id = this.flowParseTypeAnnotatableIdentifier();\\n  this.semicolon();\\n  return this.finishNode(node, \\"DeclareVariable\\");\\n};\\n\\npp.flowParseDeclareModule = function (node) {\\n  this.next();\\n\\n  if (this.match(_tokenizerTypes.types.string)) {\\n    node.id = this.parseExprAtom();\\n  } else {\\n    node.id = this.parseIdentifier();\\n  }\\n\\n  var bodyNode = node.body = this.startNode();\\n  var body = bodyNode.body = [];\\n  this.expect(_tokenizerTypes.types.braceL);\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var node2 = this.startNode();\\n\\n    // todo: declare check\\n    this.next();\\n\\n    body.push(this.flowParseDeclare(node2));\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  this.finishNode(bodyNode, \\"BlockStatement\\");\\n  return this.finishNode(node, \\"DeclareModule\\");\\n};\\n\\npp.flowParseDeclareTypeAlias = function (node) {\\n  this.next();\\n  this.flowParseTypeAlias(node);\\n  return this.finishNode(node, \\"DeclareTypeAlias\\");\\n};\\n\\npp.flowParseDeclareInterface = function (node) {\\n  this.next();\\n  this.flowParseInterfaceish(node);\\n  return this.finishNode(node, \\"DeclareInterface\\");\\n};\\n\\n// Interfaces\\n\\npp.flowParseInterfaceish = function (node, allowStatic) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node[\\"extends\\"] = [];\\n  node.mixins = [];\\n\\n  if (this.eat(_tokenizerTypes.types._extends)) {\\n    do {\\n      node[\\"extends\\"].push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  if (this.isContextual(\\"mixins\\")) {\\n    this.next();\\n    do {\\n      node.mixins.push(this.flowParseInterfaceExtends());\\n    } while (this.eat(_tokenizerTypes.types.comma));\\n  }\\n\\n  node.body = this.flowParseObjectType(allowStatic);\\n};\\n\\npp.flowParseInterfaceExtends = function () {\\n  var node = this.startNode();\\n\\n  node.id = this.parseIdentifier();\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  return this.finishNode(node, \\"InterfaceExtends\\");\\n};\\n\\npp.flowParseInterface = function (node) {\\n  this.flowParseInterfaceish(node, false);\\n  return this.finishNode(node, \\"InterfaceDeclaration\\");\\n};\\n\\n// Type aliases\\n\\npp.flowParseTypeAlias = function (node) {\\n  node.id = this.parseIdentifier();\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  } else {\\n    node.typeParameters = null;\\n  }\\n\\n  node.right = this.flowParseTypeInitialiser(_tokenizerTypes.types.eq,\\n  /*allowLeadingPipeOrAnd*/true);\\n  this.semicolon();\\n\\n  return this.finishNode(node, \\"TypeAlias\\");\\n};\\n\\n// Type annotations\\n\\npp.flowParseTypeParameterDeclaration = function () {\\n  var node = this.startNode();\\n  node.params = [];\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseTypeAnnotatableIdentifier());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  return this.finishNode(node, \\"TypeParameterDeclaration\\");\\n};\\n\\npp.flowParseExistentialTypeParam = function () {\\n  if (this.match(_tokenizerTypes.types.star)) {\\n    var node = this.startNode();\\n    this.next();\\n    return this.finishNode(node, \\"ExistentialTypeParam\\");\\n  }\\n};\\n\\npp.flowParseTypeParameterInstantiation = function () {\\n  var node = this.startNode(),\\n      oldInType = this.state.inType;\\n  node.params = [];\\n\\n  this.state.inType = true;\\n\\n  this.expectRelational(\\"<\\");\\n  while (!this.isRelational(\\">\\")) {\\n    node.params.push(this.flowParseExistentialTypeParam() || this.flowParseType());\\n    if (!this.isRelational(\\">\\")) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  this.expectRelational(\\">\\");\\n\\n  this.state.inType = oldInType;\\n\\n  return this.finishNode(node, \\"TypeParameterInstantiation\\");\\n};\\n\\npp.flowParseObjectPropertyKey = function () {\\n  return this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true);\\n};\\n\\npp.flowParseObjectTypeIndexer = function (node, isStatic) {\\n  node[\\"static\\"] = isStatic;\\n\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  node.id = this.flowParseObjectPropertyKey();\\n  node.key = this.flowParseTypeInitialiser();\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  node.value = this.flowParseTypeInitialiser();\\n\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeIndexer\\");\\n};\\n\\npp.flowParseObjectTypeMethodish = function (node) {\\n  node.params = [];\\n  node.rest = null;\\n  node.typeParameters = null;\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterDeclaration();\\n  }\\n\\n  this.expect(_tokenizerTypes.types.parenL);\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    node.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    node.rest = this.flowParseFunctionTypeParam();\\n  }\\n  this.expect(_tokenizerTypes.types.parenR);\\n  node.returnType = this.flowParseTypeInitialiser();\\n\\n  return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n};\\n\\npp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(startPos, startLoc));\\n  node[\\"static\\"] = isStatic;\\n  node.key = key;\\n  node.optional = false;\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeProperty\\");\\n};\\n\\npp.flowParseObjectTypeCallProperty = function (node, isStatic) {\\n  var valueNode = this.startNode();\\n  node[\\"static\\"] = isStatic;\\n  node.value = this.flowParseObjectTypeMethodish(valueNode);\\n  this.flowObjectTypeSemicolon();\\n  return this.finishNode(node, \\"ObjectTypeCallProperty\\");\\n};\\n\\npp.flowParseObjectType = function (allowStatic) {\\n  var nodeStart = this.startNode();\\n  var node = undefined;\\n  var propertyKey = undefined;\\n  var isStatic = undefined;\\n\\n  nodeStart.callProperties = [];\\n  nodeStart.properties = [];\\n  nodeStart.indexers = [];\\n\\n  this.expect(_tokenizerTypes.types.braceL);\\n\\n  while (!this.match(_tokenizerTypes.types.braceR)) {\\n    var optional = false;\\n    var startPos = this.state.start,\\n        startLoc = this.state.startLoc;\\n    node = this.startNode();\\n    if (allowStatic && this.isContextual(\\"static\\")) {\\n      this.next();\\n      isStatic = true;\\n    }\\n\\n    if (this.match(_tokenizerTypes.types.bracketL)) {\\n      nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic));\\n    } else if (this.match(_tokenizerTypes.types.parenL) || this.isRelational(\\"<\\")) {\\n      nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, allowStatic));\\n    } else {\\n      if (isStatic && this.match(_tokenizerTypes.types.colon)) {\\n        propertyKey = this.parseIdentifier();\\n      } else {\\n        propertyKey = this.flowParseObjectPropertyKey();\\n      }\\n      if (this.isRelational(\\"<\\") || this.match(_tokenizerTypes.types.parenL)) {\\n        // This is a method property\\n        nodeStart.properties.push(this.flowParseObjectTypeMethod(startPos, startLoc, isStatic, propertyKey));\\n      } else {\\n        if (this.eat(_tokenizerTypes.types.question)) {\\n          optional = true;\\n        }\\n        node.key = propertyKey;\\n        node.value = this.flowParseTypeInitialiser();\\n        node.optional = optional;\\n        node[\\"static\\"] = isStatic;\\n        this.flowObjectTypeSemicolon();\\n        nodeStart.properties.push(this.finishNode(node, \\"ObjectTypeProperty\\"));\\n      }\\n    }\\n  }\\n\\n  this.expect(_tokenizerTypes.types.braceR);\\n\\n  return this.finishNode(nodeStart, \\"ObjectTypeAnnotation\\");\\n};\\n\\npp.flowObjectTypeSemicolon = function () {\\n  if (!this.eat(_tokenizerTypes.types.semi) && !this.eat(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) {\\n    this.unexpected();\\n  }\\n};\\n\\npp.flowParseGenericType = function (startPos, startLoc, id) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n\\n  node.typeParameters = null;\\n  node.id = id;\\n\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var node2 = this.startNodeAt(startPos, startLoc);\\n    node2.qualification = node.id;\\n    node2.id = this.parseIdentifier();\\n    node.id = this.finishNode(node2, \\"QualifiedTypeIdentifier\\");\\n  }\\n\\n  if (this.isRelational(\\"<\\")) {\\n    node.typeParameters = this.flowParseTypeParameterInstantiation();\\n  }\\n\\n  return this.finishNode(node, \\"GenericTypeAnnotation\\");\\n};\\n\\npp.flowParseTypeofType = function () {\\n  var node = this.startNode();\\n  this.expect(_tokenizerTypes.types._typeof);\\n  node.argument = this.flowParsePrimaryType();\\n  return this.finishNode(node, \\"TypeofTypeAnnotation\\");\\n};\\n\\npp.flowParseTupleType = function () {\\n  var node = this.startNode();\\n  node.types = [];\\n  this.expect(_tokenizerTypes.types.bracketL);\\n  // We allow trailing commas\\n  while (this.state.pos < this.input.length && !this.match(_tokenizerTypes.types.bracketR)) {\\n    node.types.push(this.flowParseType());\\n    if (this.match(_tokenizerTypes.types.bracketR)) break;\\n    this.expect(_tokenizerTypes.types.comma);\\n  }\\n  this.expect(_tokenizerTypes.types.bracketR);\\n  return this.finishNode(node, \\"TupleTypeAnnotation\\");\\n};\\n\\npp.flowParseFunctionTypeParam = function () {\\n  var optional = false;\\n  var node = this.startNode();\\n  node.name = this.parseIdentifier();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    optional = true;\\n  }\\n  node.optional = optional;\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"FunctionTypeParam\\");\\n};\\n\\npp.flowParseFunctionTypeParams = function () {\\n  var ret = { params: [], rest: null };\\n  while (this.match(_tokenizerTypes.types.name)) {\\n    ret.params.push(this.flowParseFunctionTypeParam());\\n    if (!this.match(_tokenizerTypes.types.parenR)) {\\n      this.expect(_tokenizerTypes.types.comma);\\n    }\\n  }\\n  if (this.eat(_tokenizerTypes.types.ellipsis)) {\\n    ret.rest = this.flowParseFunctionTypeParam();\\n  }\\n  return ret;\\n};\\n\\npp.flowIdentToTypeAnnotation = function (startPos, startLoc, node, id) {\\n  switch (id.name) {\\n    case \\"any\\":\\n      return this.finishNode(node, \\"AnyTypeAnnotation\\");\\n\\n    case \\"void\\":\\n      return this.finishNode(node, \\"VoidTypeAnnotation\\");\\n\\n    case \\"bool\\":\\n    case \\"boolean\\":\\n      return this.finishNode(node, \\"BooleanTypeAnnotation\\");\\n\\n    case \\"mixed\\":\\n      return this.finishNode(node, \\"MixedTypeAnnotation\\");\\n\\n    case \\"number\\":\\n      return this.finishNode(node, \\"NumberTypeAnnotation\\");\\n\\n    case \\"string\\":\\n      return this.finishNode(node, \\"StringTypeAnnotation\\");\\n\\n    default:\\n      return this.flowParseGenericType(startPos, startLoc, id);\\n  }\\n};\\n\\n// The parsing of types roughly parallels the parsing of expressions, and\\n// primary types are kind of like primary expressions...they\'re the\\n// primitives with which other types are constructed.\\npp.flowParsePrimaryType = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.startNode();\\n  var tmp = undefined;\\n  var type = undefined;\\n  var isGroupedType = false;\\n\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.name:\\n      return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier());\\n\\n    case _tokenizerTypes.types.braceL:\\n      return this.flowParseObjectType();\\n\\n    case _tokenizerTypes.types.bracketL:\\n      return this.flowParseTupleType();\\n\\n    case _tokenizerTypes.types.relational:\\n      if (this.state.value === \\"<\\") {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n        this.expect(_tokenizerTypes.types.parenL);\\n        tmp = this.flowParseFunctionTypeParams();\\n        node.params = tmp.params;\\n        node.rest = tmp.rest;\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        this.expect(_tokenizerTypes.types.arrow);\\n\\n        node.returnType = this.flowParseType();\\n\\n        return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n      }\\n\\n    case _tokenizerTypes.types.parenL:\\n      this.next();\\n\\n      // Check to see if this is actually a grouped type\\n      if (!this.match(_tokenizerTypes.types.parenR) && !this.match(_tokenizerTypes.types.ellipsis)) {\\n        if (this.match(_tokenizerTypes.types.name)) {\\n          var token = this.lookahead().type;\\n          isGroupedType = token !== _tokenizerTypes.types.question && token !== _tokenizerTypes.types.colon;\\n        } else {\\n          isGroupedType = true;\\n        }\\n      }\\n\\n      if (isGroupedType) {\\n        type = this.flowParseType();\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        // If we see a => next then someone was probably confused about\\n        // function types, so we can provide a better error message\\n        if (this.eat(_tokenizerTypes.types.arrow)) {\\n          this.raise(node, \\"Unexpected token =>. It looks like \\" + \\"you are trying to write a function type, but you ended up \\" + \\"writing a grouped type followed by an =>, which is a syntax \\" + \\"error. Remember, function type parameters are named so function \\" + \\"types look like (name1: type1, name2: type2) => returnType. You \\" + \\"probably wrote (type1) => returnType\\");\\n        }\\n\\n        return type;\\n      }\\n\\n      tmp = this.flowParseFunctionTypeParams();\\n      node.params = tmp.params;\\n      node.rest = tmp.rest;\\n\\n      this.expect(_tokenizerTypes.types.parenR);\\n\\n      this.expect(_tokenizerTypes.types.arrow);\\n\\n      node.returnType = this.flowParseType();\\n      node.typeParameters = null;\\n\\n      return this.finishNode(node, \\"FunctionTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.string:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"StringLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._true:case _tokenizerTypes.types._false:\\n      node.value = this.match(_tokenizerTypes.types._true);\\n      this.next();\\n      return this.finishNode(node, \\"BooleanLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types.num:\\n      node.value = this.state.value;\\n      this.addExtra(node, \\"rawValue\\", node.value);\\n      this.addExtra(node, \\"raw\\", this.input.slice(this.state.start, this.state.end));\\n      this.next();\\n      return this.finishNode(node, \\"NumericLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._null:\\n      node.value = this.match(_tokenizerTypes.types._null);\\n      this.next();\\n      return this.finishNode(node, \\"NullLiteralTypeAnnotation\\");\\n\\n    case _tokenizerTypes.types._this:\\n      node.value = this.match(_tokenizerTypes.types._this);\\n      this.next();\\n      return this.finishNode(node, \\"ThisTypeAnnotation\\");\\n\\n    default:\\n      if (this.state.type.keyword === \\"typeof\\") {\\n        return this.flowParseTypeofType();\\n      }\\n  }\\n\\n  this.unexpected();\\n};\\n\\npp.flowParsePostfixType = function () {\\n  var node = this.startNode();\\n  var type = node.elementType = this.flowParsePrimaryType();\\n  if (this.match(_tokenizerTypes.types.bracketL)) {\\n    this.expect(_tokenizerTypes.types.bracketL);\\n    this.expect(_tokenizerTypes.types.bracketR);\\n    return this.finishNode(node, \\"ArrayTypeAnnotation\\");\\n  } else {\\n    return type;\\n  }\\n};\\n\\npp.flowParsePrefixType = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.question)) {\\n    node.typeAnnotation = this.flowParsePrefixType();\\n    return this.finishNode(node, \\"NullableTypeAnnotation\\");\\n  } else {\\n    return this.flowParsePostfixType();\\n  }\\n};\\n\\npp.flowParseIntersectionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParsePrefixType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseAND)) {\\n    node.types.push(this.flowParsePrefixType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"IntersectionTypeAnnotation\\");\\n};\\n\\npp.flowParseUnionType = function () {\\n  var node = this.startNode();\\n  var type = this.flowParseIntersectionType();\\n  node.types = [type];\\n  while (this.eat(_tokenizerTypes.types.bitwiseOR)) {\\n    node.types.push(this.flowParseIntersectionType());\\n  }\\n  return node.types.length === 1 ? type : this.finishNode(node, \\"UnionTypeAnnotation\\");\\n};\\n\\npp.flowParseType = function () {\\n  var oldInType = this.state.inType;\\n  this.state.inType = true;\\n  var type = this.flowParseUnionType();\\n  this.state.inType = oldInType;\\n  return type;\\n};\\n\\npp.flowParseTypeAnnotation = function () {\\n  var node = this.startNode();\\n  node.typeAnnotation = this.flowParseTypeInitialiser();\\n  return this.finishNode(node, \\"TypeAnnotation\\");\\n};\\n\\npp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) {\\n  var ident = this.parseIdentifier();\\n  var isOptionalParam = false;\\n\\n  if (canBeOptionalParam && this.eat(_tokenizerTypes.types.question)) {\\n    this.expect(_tokenizerTypes.types.question);\\n    isOptionalParam = true;\\n  }\\n\\n  if (requireTypeAnnotation || this.match(_tokenizerTypes.types.colon)) {\\n    ident.typeAnnotation = this.flowParseTypeAnnotation();\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  if (isOptionalParam) {\\n    ident.optional = true;\\n    this.finishNode(ident, ident.type);\\n  }\\n\\n  return ident;\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  // plain function return types: function name(): string {}\\n  instance.extend(\\"parseFunctionBody\\", function (inner) {\\n    return function (node, allowExpression) {\\n      if (this.match(_tokenizerTypes.types.colon) && !allowExpression) {\\n        // if allowExpression is true then we\'re parsing an arrow function and if\\n        // there\'s a return type then it\'s been handled elsewhere\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, allowExpression);\\n    };\\n  });\\n\\n  // interfaces\\n  instance.extend(\\"parseStatement\\", function (inner) {\\n    return function (declaration, topLevel) {\\n      // strict mode handling of `interface` since it\'s a reserved word\\n      if (this.state.strict && this.match(_tokenizerTypes.types.name) && this.state.value === \\"interface\\") {\\n        var node = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(node);\\n      } else {\\n        return inner.call(this, declaration, topLevel);\\n      }\\n    };\\n  });\\n\\n  // declares, interfaces and type aliases\\n  instance.extend(\\"parseExpressionStatement\\", function (inner) {\\n    return function (node, expr) {\\n      if (expr.type === \\"Identifier\\") {\\n        if (expr.name === \\"declare\\") {\\n          if (this.match(_tokenizerTypes.types._class) || this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._function) || this.match(_tokenizerTypes.types._var)) {\\n            return this.flowParseDeclare(node);\\n          }\\n        } else if (this.match(_tokenizerTypes.types.name)) {\\n          if (expr.name === \\"interface\\") {\\n            return this.flowParseInterface(node);\\n          } else if (expr.name === \\"type\\") {\\n            return this.flowParseTypeAlias(node);\\n          }\\n        }\\n      }\\n\\n      return inner.call(this, node, expr);\\n    };\\n  });\\n\\n  // export type\\n  instance.extend(\\"shouldParseExportDeclaration\\", function (inner) {\\n    return function () {\\n      return this.isContextual(\\"type\\") || this.isContextual(\\"interface\\") || inner.call(this);\\n    };\\n  });\\n\\n  instance.extend(\\"parseParenItem\\", function () {\\n    return function (node, startLoc, startPos, forceArrow /*:: ?*/) {\\n      var canBeArrow = this.state.potentialArrowAt = startPos;\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        var typeCastNode = this.startNodeAt(startLoc, startPos);\\n        typeCastNode.expression = node;\\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\\n\\n        if (forceArrow && !this.match(_tokenizerTypes.types.arrow)) {\\n          this.unexpected();\\n        }\\n\\n        if (canBeArrow && this.eat(_tokenizerTypes.types.arrow)) {\\n          // ((lol): number => {});\\n          var params = node.type === \\"SequenceExpression\\" ? node.expressions : [node];\\n          var func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), params);\\n          func.returnType = typeCastNode.typeAnnotation;\\n          return func;\\n        } else {\\n          return this.finishNode(typeCastNode, \\"TypeCastExpression\\");\\n        }\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseExport\\", function (inner) {\\n    return function (node) {\\n      node = inner.call(this, node);\\n      if (node.type === \\"ExportNamedDeclaration\\") {\\n        node.exportKind = node.exportKind || \\"value\\";\\n      }\\n      return node;\\n    };\\n  });\\n\\n  instance.extend(\\"parseExportDeclaration\\", function (inner) {\\n    return function (node) {\\n      if (this.isContextual(\\"type\\")) {\\n        node.exportKind = \\"type\\";\\n\\n        var declarationNode = this.startNode();\\n        this.next();\\n\\n        if (this.match(_tokenizerTypes.types.braceL)) {\\n          // export type { foo, bar };\\n          node.specifiers = this.parseExportSpecifiers();\\n          this.parseExportFrom(node);\\n          return null;\\n        } else {\\n          // export type Foo = Bar;\\n          return this.flowParseTypeAlias(declarationNode);\\n        }\\n      } else if (this.isContextual(\\"interface\\")) {\\n        node.exportKind = \\"type\\";\\n        var declarationNode = this.startNode();\\n        this.next();\\n        return this.flowParseInterface(declarationNode);\\n      } else {\\n        return inner.call(this, node);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseClassId\\", function (inner) {\\n    return function (node) {\\n      inner.apply(this, arguments);\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n    };\\n  });\\n\\n  // don\'t consider `void` to be a keyword as then it\'ll use the void token type\\n  // and set startExpr\\n  instance.extend(\\"isKeyword\\", function (inner) {\\n    return function (name) {\\n      if (this.state.inType && name === \\"void\\") {\\n        return false;\\n      } else {\\n        return inner.call(this, name);\\n      }\\n    };\\n  });\\n\\n  // ensure that inside flow types, we bypass the jsx parser plugin\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      if (this.state.inType && (code === 62 || code === 60)) {\\n        return this.finishOp(_tokenizerTypes.types.relational, 1);\\n      } else {\\n        return inner.call(this, code);\\n      }\\n    };\\n  });\\n\\n  // don\'t lex any token as a jsx one inside a flow type\\n  instance.extend(\\"jsx_readToken\\", function (inner) {\\n    return function () {\\n      if (!this.state.inType) return inner.call(this);\\n    };\\n  });\\n\\n  function typeCastToParameter(node) {\\n    node.expression.typeAnnotation = node.typeAnnotation;\\n    return node.expression;\\n  }\\n\\n  instance.extend(\\"toAssignable\\", function (inner) {\\n    return function (node) {\\n      if (node.type === \\"TypeCastExpression\\") {\\n        return typeCastToParameter(node);\\n      } else {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // turn type casts that we found in function parameter head into type annotated params\\n  instance.extend(\\"toAssignableList\\", function (inner) {\\n    return function (exprList, isBinding) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr.type === \\"TypeCastExpression\\") {\\n          exprList[i] = typeCastToParameter(expr);\\n        }\\n      }\\n      return inner.call(this, exprList, isBinding);\\n    };\\n  });\\n\\n  // this is a list of nodes, from something like a call expression, we need to filter the\\n  // type casts that we\'ve found that are illegal in this context\\n  instance.extend(\\"toReferencedList\\", function () {\\n    return function (exprList) {\\n      for (var i = 0; i < exprList.length; i++) {\\n        var expr = exprList[i];\\n        if (expr && expr._exprListItem && expr.type === \\"TypeCastExpression\\") {\\n          this.raise(expr.start, \\"Unexpected type cast\\");\\n        }\\n      }\\n\\n      return exprList;\\n    };\\n  });\\n\\n  // parse an item inside a expression list eg. `(NODE, NODE)` where NODE represents\\n  // the position where this function is cal;ed\\n  instance.extend(\\"parseExprListItem\\", function (inner) {\\n    return function (allowEmpty, refShorthandDefaultPos) {\\n      var container = this.startNode();\\n      var node = inner.call(this, allowEmpty, refShorthandDefaultPos);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        container._exprListItem = true;\\n        container.expression = node;\\n        container.typeAnnotation = this.flowParseTypeAnnotation();\\n        return this.finishNode(container, \\"TypeCastExpression\\");\\n      } else {\\n        return node;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"checkLVal\\", function (inner) {\\n    return function (node) {\\n      if (node.type !== \\"TypeCastExpression\\") {\\n        return inner.apply(this, arguments);\\n      }\\n    };\\n  });\\n\\n  // parse class property type annotations\\n  instance.extend(\\"parseClassProperty\\", function (inner) {\\n    return function (node) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      return inner.call(this, node);\\n    };\\n  });\\n\\n  // determine whether or not we\'re currently in the position where a class property would appear\\n  instance.extend(\\"isClassProperty\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // parse type parameters for class methods\\n  instance.extend(\\"parseClassMethod\\", function () {\\n    return function (classBody, method, isGenerator, isAsync) {\\n      if (this.isRelational(\\"<\\")) {\\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      this.parseMethod(method, isGenerator, isAsync);\\n      classBody.body.push(this.finishNode(method, \\"ClassMethod\\"));\\n    };\\n  });\\n\\n  // parse a the super class type parameters and implements\\n  instance.extend(\\"parseClassSuper\\", function (inner) {\\n    return function (node, isStatement) {\\n      inner.call(this, node, isStatement);\\n      if (node.superClass && this.isRelational(\\"<\\")) {\\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\\n      }\\n      if (this.isContextual(\\"implements\\")) {\\n        this.next();\\n        var implemented = node[\\"implements\\"] = [];\\n        do {\\n          var _node = this.startNode();\\n          _node.id = this.parseIdentifier();\\n          if (this.isRelational(\\"<\\")) {\\n            _node.typeParameters = this.flowParseTypeParameterInstantiation();\\n          } else {\\n            _node.typeParameters = null;\\n          }\\n          implemented.push(this.finishNode(_node, \\"ClassImplements\\"));\\n        } while (this.eat(_tokenizerTypes.types.comma));\\n      }\\n    };\\n  });\\n\\n  // parse type parameters for object method shorthand\\n  instance.extend(\\"parseObjPropValue\\", function (inner) {\\n    return function (prop) {\\n      var typeParameters = undefined;\\n\\n      // method shorthand\\n      if (this.isRelational(\\"<\\")) {\\n        typeParameters = this.flowParseTypeParameterDeclaration();\\n        if (!this.match(_tokenizerTypes.types.parenL)) this.unexpected();\\n      }\\n\\n      inner.apply(this, arguments);\\n\\n      // add typeParameters if we found them\\n      if (typeParameters) {\\n        (prop.value || prop).typeParameters = typeParameters;\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"parseAssignableListItemTypes\\", function () {\\n    return function (param) {\\n      if (this.eat(_tokenizerTypes.types.question)) {\\n        param.optional = true;\\n      }\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        param.typeAnnotation = this.flowParseTypeAnnotation();\\n      }\\n      this.finishNode(param, param.type);\\n      return param;\\n    };\\n  });\\n\\n  // parse typeof and type imports\\n  instance.extend(\\"parseImportSpecifiers\\", function (inner) {\\n    return function (node) {\\n      node.importKind = \\"value\\";\\n\\n      var kind = null;\\n      if (this.match(_tokenizerTypes.types._typeof)) {\\n        kind = \\"typeof\\";\\n      } else if (this.isContextual(\\"type\\")) {\\n        kind = \\"type\\";\\n      }\\n      if (kind) {\\n        var lh = this.lookahead();\\n        if (lh.type === _tokenizerTypes.types.name && lh.value !== \\"from\\" || lh.type === _tokenizerTypes.types.braceL || lh.type === _tokenizerTypes.types.star) {\\n          this.next();\\n          node.importKind = kind;\\n        }\\n      }\\n\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse function type parameters - function foo<T>() {}\\n  instance.extend(\\"parseFunctionParams\\", function (inner) {\\n    return function (node) {\\n      if (this.isRelational(\\"<\\")) {\\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\\n      }\\n      inner.call(this, node);\\n    };\\n  });\\n\\n  // parse flow type annotations on variable declarator heads - let foo: string = bar\\n  instance.extend(\\"parseVarHead\\", function (inner) {\\n    return function (decl) {\\n      inner.call(this, decl);\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\\n        this.finishNode(decl.id, decl.id.type);\\n      }\\n    };\\n  });\\n\\n  // parse the return type of an async arrow function - let foo = (async (): number => {});\\n  instance.extend(\\"parseAsyncArrowFromCallExpression\\", function (inner) {\\n    return function (node, call) {\\n      if (this.match(_tokenizerTypes.types.colon)) {\\n        node.returnType = this.flowParseTypeAnnotation();\\n      }\\n\\n      return inner.call(this, node, call);\\n    };\\n  });\\n\\n  // todo description\\n  instance.extend(\\"shouldParseAsyncArrow\\", function (inner) {\\n    return function () {\\n      return this.match(_tokenizerTypes.types.colon) || inner.call(this);\\n    };\\n  });\\n\\n  // handle return types for arrow functions\\n  instance.extend(\\"parseParenAndDistinguishExpression\\", function (inner) {\\n    return function (startPos, startLoc, canBeArrow, isAsync) {\\n      startPos = startPos || this.state.start;\\n      startLoc = startLoc || this.state.startLoc;\\n\\n      if (canBeArrow && this.lookahead().type === _tokenizerTypes.types.parenR) {\\n        // let foo = (): number => {};\\n        this.expect(_tokenizerTypes.types.parenL);\\n        this.expect(_tokenizerTypes.types.parenR);\\n\\n        var node = this.startNodeAt(startPos, startLoc);\\n        if (this.match(_tokenizerTypes.types.colon)) node.returnType = this.flowParseTypeAnnotation();\\n        this.expect(_tokenizerTypes.types.arrow);\\n        return this.parseArrowExpression(node, [], isAsync);\\n      } else {\\n        // let foo = (foo): number => {};\\n        var node = inner.call(this, startPos, startLoc, canBeArrow, isAsync, this.hasPlugin(\\"trailingFunctionCommas\\"));\\n\\n        if (this.match(_tokenizerTypes.types.colon)) {\\n          var state = this.state.clone();\\n          try {\\n            return this.parseParenItem(node, startPos, startLoc, true);\\n          } catch (err) {\\n            if (err instanceof SyntaxError) {\\n              this.state = state;\\n              return node;\\n            } else {\\n              throw err;\\n            }\\n          }\\n        } else {\\n          return node;\\n        }\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../parser\\":5,\\"../tokenizer/types\\":17,\\"babel-runtime/helpers/interop-require-default\\":26}],12:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _xhtml = require(\\"./xhtml\\");\\n\\nvar _xhtml2 = _interopRequireDefault(_xhtml);\\n\\nvar _tokenizerTypes = require(\\"../../tokenizer/types\\");\\n\\nvar _tokenizerContext = require(\\"../../tokenizer/context\\");\\n\\nvar _parser = require(\\"../../parser\\");\\n\\nvar _parser2 = _interopRequireDefault(_parser);\\n\\nvar _utilIdentifier = require(\\"../../util/identifier\\");\\n\\nvar _utilWhitespace = require(\\"../../util/whitespace\\");\\n\\nvar HEX_NUMBER = /^[\\\\da-fA-F]+$/;\\nvar DECIMAL_NUMBER = /^\\\\d+$/;\\n\\n_tokenizerContext.types.j_oTag = new _tokenizerContext.TokContext(\\"<tag\\", false);\\n_tokenizerContext.types.j_cTag = new _tokenizerContext.TokContext(\\"</tag\\", false);\\n_tokenizerContext.types.j_expr = new _tokenizerContext.TokContext(\\"<tag>...</tag>\\", true, true);\\n\\n_tokenizerTypes.types.jsxName = new _tokenizerTypes.TokenType(\\"jsxName\\");\\n_tokenizerTypes.types.jsxText = new _tokenizerTypes.TokenType(\\"jsxText\\", { beforeExpr: true });\\n_tokenizerTypes.types.jsxTagStart = new _tokenizerTypes.TokenType(\\"jsxTagStart\\");\\n_tokenizerTypes.types.jsxTagEnd = new _tokenizerTypes.TokenType(\\"jsxTagEnd\\");\\n\\n_tokenizerTypes.types.jsxTagStart.updateContext = function () {\\n  this.state.context.push(_tokenizerContext.types.j_expr); // treat as beginning of JSX expression\\n  this.state.context.push(_tokenizerContext.types.j_oTag); // start opening tag context\\n  this.state.exprAllowed = false;\\n};\\n\\n_tokenizerTypes.types.jsxTagEnd.updateContext = function (prevType) {\\n  var out = this.state.context.pop();\\n  if (out === _tokenizerContext.types.j_oTag && prevType === _tokenizerTypes.types.slash || out === _tokenizerContext.types.j_cTag) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = this.curContext() === _tokenizerContext.types.j_expr;\\n  } else {\\n    this.state.exprAllowed = true;\\n  }\\n};\\n\\nvar pp = _parser2[\\"default\\"].prototype;\\n\\n// Reads inline JSX contents token.\\n\\npp.jsxReadToken = function () {\\n  var out = \\"\\";\\n  var chunkStart = this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated JSX contents\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n\\n    switch (ch) {\\n      case 60: // \\"<\\"\\n      case 123:\\n        // \\"{\\"\\n        if (this.state.pos === this.state.start) {\\n          if (ch === 60 && this.state.exprAllowed) {\\n            ++this.state.pos;\\n            return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n          }\\n          return this.getTokenFromCode(ch);\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_tokenizerTypes.types.jsxText, out);\\n\\n      case 38:\\n        // \\"&\\"\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.jsxReadEntity();\\n        chunkStart = this.state.pos;\\n        break;\\n\\n      default:\\n        if (_utilWhitespace.isNewLine(ch)) {\\n          out += this.input.slice(chunkStart, this.state.pos);\\n          out += this.jsxReadNewLine(true);\\n          chunkStart = this.state.pos;\\n        } else {\\n          ++this.state.pos;\\n        }\\n    }\\n  }\\n};\\n\\npp.jsxReadNewLine = function (normalizeCRLF) {\\n  var ch = this.input.charCodeAt(this.state.pos);\\n  var out = undefined;\\n  ++this.state.pos;\\n  if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {\\n    ++this.state.pos;\\n    out = normalizeCRLF ? \\"\\\\n\\" : \\"\\\\r\\\\n\\";\\n  } else {\\n    out = String.fromCharCode(ch);\\n  }\\n  ++this.state.curLine;\\n  this.state.lineStart = this.state.pos;\\n\\n  return out;\\n};\\n\\npp.jsxReadString = function (quote) {\\n  var out = \\"\\";\\n  var chunkStart = ++this.state.pos;\\n  for (;;) {\\n    if (this.state.pos >= this.input.length) {\\n      this.raise(this.state.start, \\"Unterminated string constant\\");\\n    }\\n\\n    var ch = this.input.charCodeAt(this.state.pos);\\n    if (ch === quote) break;\\n    if (ch === 38) {\\n      // \\"&\\"\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadEntity();\\n      chunkStart = this.state.pos;\\n    } else if (_utilWhitespace.isNewLine(ch)) {\\n      out += this.input.slice(chunkStart, this.state.pos);\\n      out += this.jsxReadNewLine(false);\\n      chunkStart = this.state.pos;\\n    } else {\\n      ++this.state.pos;\\n    }\\n  }\\n  out += this.input.slice(chunkStart, this.state.pos++);\\n  return this.finishToken(_tokenizerTypes.types.string, out);\\n};\\n\\npp.jsxReadEntity = function () {\\n  var str = \\"\\";\\n  var count = 0;\\n  var entity = undefined;\\n  var ch = this.input[this.state.pos];\\n\\n  var startPos = ++this.state.pos;\\n  while (this.state.pos < this.input.length && count++ < 10) {\\n    ch = this.input[this.state.pos++];\\n    if (ch === \\";\\") {\\n      if (str[0] === \\"#\\") {\\n        if (str[1] === \\"x\\") {\\n          str = str.substr(2);\\n          if (HEX_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 16));\\n        } else {\\n          str = str.substr(1);\\n          if (DECIMAL_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 10));\\n        }\\n      } else {\\n        entity = _xhtml2[\\"default\\"][str];\\n      }\\n      break;\\n    }\\n    str += ch;\\n  }\\n  if (!entity) {\\n    this.state.pos = startPos;\\n    return \\"&\\";\\n  }\\n  return entity;\\n};\\n\\n// Read a JSX identifier (valid tag or attribute name).\\n//\\n// Optimized version since JSX identifiers can\\"t contain\\n// escape characters and so can be read as single slice.\\n// Also assumes that first character was already checked\\n// by isIdentifierStart in readToken.\\n\\npp.jsxReadWord = function () {\\n  var ch = undefined;\\n  var start = this.state.pos;\\n  do {\\n    ch = this.input.charCodeAt(++this.state.pos);\\n  } while (_utilIdentifier.isIdentifierChar(ch) || ch === 45); // \\"-\\"\\n  return this.finishToken(_tokenizerTypes.types.jsxName, this.input.slice(start, this.state.pos));\\n};\\n\\n// Transforms JSX element name to string.\\n\\nfunction getQualifiedJSXName(object) {\\n  if (object.type === \\"JSXIdentifier\\") {\\n    return object.name;\\n  }\\n\\n  if (object.type === \\"JSXNamespacedName\\") {\\n    return object.namespace.name + \\":\\" + object.name.name;\\n  }\\n\\n  if (object.type === \\"JSXMemberExpression\\") {\\n    return getQualifiedJSXName(object.object) + \\".\\" + getQualifiedJSXName(object.property);\\n  }\\n}\\n\\n// Parse next token as JSX identifier\\n\\npp.jsxParseIdentifier = function () {\\n  var node = this.startNode();\\n  if (this.match(_tokenizerTypes.types.jsxName)) {\\n    node.name = this.state.value;\\n  } else if (this.state.type.keyword) {\\n    node.name = this.state.type.keyword;\\n  } else {\\n    this.unexpected();\\n  }\\n  this.next();\\n  return this.finishNode(node, \\"JSXIdentifier\\");\\n};\\n\\n// Parse namespaced identifier.\\n\\npp.jsxParseNamespacedName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var name = this.jsxParseIdentifier();\\n  if (!this.eat(_tokenizerTypes.types.colon)) return name;\\n\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.namespace = name;\\n  node.name = this.jsxParseIdentifier();\\n  return this.finishNode(node, \\"JSXNamespacedName\\");\\n};\\n\\n// Parses element name in any form - namespaced, member\\n// or single identifier.\\n\\npp.jsxParseElementName = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  var node = this.jsxParseNamespacedName();\\n  while (this.eat(_tokenizerTypes.types.dot)) {\\n    var newNode = this.startNodeAt(startPos, startLoc);\\n    newNode.object = node;\\n    newNode.property = this.jsxParseIdentifier();\\n    node = this.finishNode(newNode, \\"JSXMemberExpression\\");\\n  }\\n  return node;\\n};\\n\\n// Parses any type of JSX attribute value.\\n\\npp.jsxParseAttributeValue = function () {\\n  var node = undefined;\\n  switch (this.state.type) {\\n    case _tokenizerTypes.types.braceL:\\n      node = this.jsxParseExpressionContainer();\\n      if (node.expression.type === \\"JSXEmptyExpression\\") {\\n        this.raise(node.start, \\"JSX attributes must only be assigned a non-empty expression\\");\\n      } else {\\n        return node;\\n      }\\n\\n    case _tokenizerTypes.types.jsxTagStart:\\n    case _tokenizerTypes.types.string:\\n      node = this.parseExprAtom();\\n      node.extra = null;\\n      return node;\\n\\n    default:\\n      this.raise(this.state.start, \\"JSX value should be either an expression or a quoted JSX text\\");\\n  }\\n};\\n\\n// JSXEmptyExpression is unique type since it doesn\'t actually parse anything,\\n// and so it should start at the end of last read token (left brace) and finish\\n// at the beginning of the next one (right brace).\\n\\npp.jsxParseEmptyExpression = function () {\\n  var node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc);\\n  return this.finishNodeAt(node, \\"JSXEmptyExpression\\", this.start, this.startLoc);\\n};\\n\\n// Parses JSX expression enclosed into curly brackets.\\n\\npp.jsxParseExpressionContainer = function () {\\n  var node = this.startNode();\\n  this.next();\\n  if (this.match(_tokenizerTypes.types.braceR)) {\\n    node.expression = this.jsxParseEmptyExpression();\\n  } else {\\n    node.expression = this.parseExpression();\\n  }\\n  this.expect(_tokenizerTypes.types.braceR);\\n  return this.finishNode(node, \\"JSXExpressionContainer\\");\\n};\\n\\n// Parses following JSX attribute name-value pair.\\n\\npp.jsxParseAttribute = function () {\\n  var node = this.startNode();\\n  if (this.eat(_tokenizerTypes.types.braceL)) {\\n    this.expect(_tokenizerTypes.types.ellipsis);\\n    node.argument = this.parseMaybeAssign();\\n    this.expect(_tokenizerTypes.types.braceR);\\n    return this.finishNode(node, \\"JSXSpreadAttribute\\");\\n  }\\n  node.name = this.jsxParseNamespacedName();\\n  node.value = this.eat(_tokenizerTypes.types.eq) ? this.jsxParseAttributeValue() : null;\\n  return this.finishNode(node, \\"JSXAttribute\\");\\n};\\n\\n// Parses JSX opening tag starting after \\"<\\".\\n\\npp.jsxParseOpeningElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.attributes = [];\\n  node.name = this.jsxParseElementName();\\n  while (!this.match(_tokenizerTypes.types.slash) && !this.match(_tokenizerTypes.types.jsxTagEnd)) {\\n    node.attributes.push(this.jsxParseAttribute());\\n  }\\n  node.selfClosing = this.eat(_tokenizerTypes.types.slash);\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXOpeningElement\\");\\n};\\n\\n// Parses JSX closing tag starting after \\"</\\".\\n\\npp.jsxParseClosingElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  node.name = this.jsxParseElementName();\\n  this.expect(_tokenizerTypes.types.jsxTagEnd);\\n  return this.finishNode(node, \\"JSXClosingElement\\");\\n};\\n\\n// Parses entire JSX element, including it\\"s opening tag\\n// (starting after \\"<\\"), attributes, contents and closing tag.\\n\\npp.jsxParseElementAt = function (startPos, startLoc) {\\n  var node = this.startNodeAt(startPos, startLoc);\\n  var children = [];\\n  var openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\\n  var closingElement = null;\\n\\n  if (!openingElement.selfClosing) {\\n    contents: for (;;) {\\n      switch (this.state.type) {\\n        case _tokenizerTypes.types.jsxTagStart:\\n          startPos = this.state.start;startLoc = this.state.startLoc;\\n          this.next();\\n          if (this.eat(_tokenizerTypes.types.slash)) {\\n            closingElement = this.jsxParseClosingElementAt(startPos, startLoc);\\n            break contents;\\n          }\\n          children.push(this.jsxParseElementAt(startPos, startLoc));\\n          break;\\n\\n        case _tokenizerTypes.types.jsxText:\\n          children.push(this.parseExprAtom());\\n          break;\\n\\n        case _tokenizerTypes.types.braceL:\\n          children.push(this.jsxParseExpressionContainer());\\n          break;\\n\\n        default:\\n          this.unexpected();\\n      }\\n    }\\n\\n    if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\\n      this.raise(closingElement.start, \\"Expected corresponding JSX closing tag for <\\" + getQualifiedJSXName(openingElement.name) + \\">\\");\\n    }\\n  }\\n\\n  node.openingElement = openingElement;\\n  node.closingElement = closingElement;\\n  node.children = children;\\n  if (this.match(_tokenizerTypes.types.relational) && this.state.value === \\"<\\") {\\n    this.raise(this.state.start, \\"Adjacent JSX elements must be wrapped in an enclosing tag\\");\\n  }\\n  return this.finishNode(node, \\"JSXElement\\");\\n};\\n\\n// Parses entire JSX element from current position.\\n\\npp.jsxParseElement = function () {\\n  var startPos = this.state.start,\\n      startLoc = this.state.startLoc;\\n  this.next();\\n  return this.jsxParseElementAt(startPos, startLoc);\\n};\\n\\nexports[\\"default\\"] = function (instance) {\\n  instance.extend(\\"parseExprAtom\\", function (inner) {\\n    return function (refShortHandDefaultPos) {\\n      if (this.match(_tokenizerTypes.types.jsxText)) {\\n        var node = this.parseLiteral(this.state.value, \\"JSXText\\");\\n        // https://github.com/babel/babel/issues/2078\\n        node.extra = null;\\n        return node;\\n      } else if (this.match(_tokenizerTypes.types.jsxTagStart)) {\\n        return this.jsxParseElement();\\n      } else {\\n        return inner.call(this, refShortHandDefaultPos);\\n      }\\n    };\\n  });\\n\\n  instance.extend(\\"readToken\\", function (inner) {\\n    return function (code) {\\n      var context = this.curContext();\\n\\n      if (context === _tokenizerContext.types.j_expr) {\\n        return this.jsxReadToken();\\n      }\\n\\n      if (context === _tokenizerContext.types.j_oTag || context === _tokenizerContext.types.j_cTag) {\\n        if (_utilIdentifier.isIdentifierStart(code)) {\\n          return this.jsxReadWord();\\n        }\\n\\n        if (code === 62) {\\n          ++this.state.pos;\\n          return this.finishToken(_tokenizerTypes.types.jsxTagEnd);\\n        }\\n\\n        if ((code === 34 || code === 39) && context === _tokenizerContext.types.j_oTag) {\\n          return this.jsxReadString(code);\\n        }\\n      }\\n\\n      if (code === 60 && this.state.exprAllowed) {\\n        ++this.state.pos;\\n        return this.finishToken(_tokenizerTypes.types.jsxTagStart);\\n      }\\n\\n      return inner.call(this, code);\\n    };\\n  });\\n\\n  instance.extend(\\"updateContext\\", function (inner) {\\n    return function (prevType) {\\n      if (this.match(_tokenizerTypes.types.braceL)) {\\n        var curContext = this.curContext();\\n        if (curContext === _tokenizerContext.types.j_oTag) {\\n          this.state.context.push(_tokenizerContext.types.b_expr);\\n        } else if (curContext === _tokenizerContext.types.j_expr) {\\n          this.state.context.push(_tokenizerContext.types.b_tmpl);\\n        } else {\\n          inner.call(this, prevType);\\n        }\\n        this.state.exprAllowed = true;\\n      } else if (this.match(_tokenizerTypes.types.slash) && prevType === _tokenizerTypes.types.jsxTagStart) {\\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\\n        this.state.context.push(_tokenizerContext.types.j_cTag); // reconsider as closing tag context\\n        this.state.exprAllowed = false;\\n      } else {\\n        return inner.call(this, prevType);\\n      }\\n    };\\n  });\\n};\\n\\nmodule.exports = exports[\\"default\\"];\\n},{\\"../../parser\\":5,\\"../../tokenizer/context\\":14,\\"../../tokenizer/types\\":17,\\"../../util/identifier\\":18,\\"../../util/whitespace\\":20,\\"./xhtml\\":13,\\"babel-runtime/helpers/interop-require-default\\":26}],13:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports[\\"default\\"] = {\\n  quot: \\"\\\\\\"\\",\\n  amp: \\"&\\",\\n  apos: \\"\'\\",\\n  lt: \\"<\\",\\n  gt: \\">\\",\\n  nbsp: \\"\xa0\\",\\n  iexcl: \\"¡\\",\\n  cent: \\"¢\\",\\n  pound: \\"£\\",\\n  curren: \\"¤\\",\\n  yen: \\"¥\\",\\n  brvbar: \\"¦\\",\\n  sect: \\"§\\",\\n  uml: \\"¨\\",\\n  copy: \\"©\\",\\n  ordf: \\"ª\\",\\n  laquo: \\"«\\",\\n  not: \\"¬\\",\\n  shy: \\"\xad\\",\\n  reg: \\"®\\",\\n  macr: \\"¯\\",\\n  deg: \\"°\\",\\n  plusmn: \\"±\\",\\n  sup2: \\"²\\",\\n  sup3: \\"³\\",\\n  acute: \\"´\\",\\n  micro: \\"µ\\",\\n  para: \\"¶\\",\\n  middot: \\"·\\",\\n  cedil: \\"¸\\",\\n  sup1: \\"¹\\",\\n  ordm: \\"º\\",\\n  raquo: \\"»\\",\\n  frac14: \\"¼\\",\\n  frac12: \\"½\\",\\n  frac34: \\"¾\\",\\n  iquest: \\"¿\\",\\n  Agrave: \\"À\\",\\n  Aacute: \\"Á\\",\\n  Acirc: \\"Â\\",\\n  Atilde: \\"Ã\\",\\n  Auml: \\"Ä\\",\\n  Aring: \\"Å\\",\\n  AElig: \\"Æ\\",\\n  Ccedil: \\"Ç\\",\\n  Egrave: \\"È\\",\\n  Eacute: \\"É\\",\\n  Ecirc: \\"Ê\\",\\n  Euml: \\"Ë\\",\\n  Igrave: \\"Ì\\",\\n  Iacute: \\"Í\\",\\n  Icirc: \\"Î\\",\\n  Iuml: \\"Ï\\",\\n  ETH: \\"Ð\\",\\n  Ntilde: \\"Ñ\\",\\n  Ograve: \\"Ò\\",\\n  Oacute: \\"Ó\\",\\n  Ocirc: \\"Ô\\",\\n  Otilde: \\"Õ\\",\\n  Ouml: \\"Ö\\",\\n  times: \\"×\\",\\n  Oslash: \\"Ø\\",\\n  Ugrave: \\"Ù\\",\\n  Uacute: \\"Ú\\",\\n  Ucirc: \\"Û\\",\\n  Uuml: \\"Ü\\",\\n  Yacute: \\"Ý\\",\\n  THORN: \\"Þ\\",\\n  szlig: \\"ß\\",\\n  agrave: \\"à\\",\\n  aacute: \\"á\\",\\n  acirc: \\"â\\",\\n  atilde: \\"ã\\",\\n  auml: \\"ä\\",\\n  aring: \\"å\\",\\n  aelig: \\"æ\\",\\n  ccedil: \\"ç\\",\\n  egrave: \\"è\\",\\n  eacute: \\"é\\",\\n  ecirc: \\"ê\\",\\n  euml: \\"ë\\",\\n  igrave: \\"ì\\",\\n  iacute: \\"í\\",\\n  icirc: \\"î\\",\\n  iuml: \\"ï\\",\\n  eth: \\"ð\\",\\n  ntilde: \\"ñ\\",\\n  ograve: \\"ò\\",\\n  oacute: \\"ó\\",\\n  ocirc: \\"ô\\",\\n  otilde: \\"õ\\",\\n  ouml: \\"ö\\",\\n  divide: \\"÷\\",\\n  oslash: \\"ø\\",\\n  ugrave: \\"ù\\",\\n  uacute: \\"ú\\",\\n  ucirc: \\"û\\",\\n  uuml: \\"ü\\",\\n  yacute: \\"ý\\",\\n  thorn: \\"þ\\",\\n  yuml: \\"ÿ\\",\\n  OElig: \\"Œ\\",\\n  oelig: \\"œ\\",\\n  Scaron: \\"Š\\",\\n  scaron: \\"š\\",\\n  Yuml: \\"Ÿ\\",\\n  fnof: \\"ƒ\\",\\n  circ: \\"ˆ\\",\\n  tilde: \\"˜\\",\\n  Alpha: \\"Α\\",\\n  Beta: \\"Β\\",\\n  Gamma: \\"Γ\\",\\n  Delta: \\"Δ\\",\\n  Epsilon: \\"Ε\\",\\n  Zeta: \\"Ζ\\",\\n  Eta: \\"Η\\",\\n  Theta: \\"Θ\\",\\n  Iota: \\"Ι\\",\\n  Kappa: \\"Κ\\",\\n  Lambda: \\"Λ\\",\\n  Mu: \\"Μ\\",\\n  Nu: \\"Ν\\",\\n  Xi: \\"Ξ\\",\\n  Omicron: \\"Ο\\",\\n  Pi: \\"Π\\",\\n  Rho: \\"Ρ\\",\\n  Sigma: \\"Σ\\",\\n  Tau: \\"Τ\\",\\n  Upsilon: \\"Υ\\",\\n  Phi: \\"Φ\\",\\n  Chi: \\"Χ\\",\\n  Psi: \\"Ψ\\",\\n  Omega: \\"Ω\\",\\n  alpha: \\"α\\",\\n  beta: \\"β\\",\\n  gamma: \\"γ\\",\\n  delta: \\"δ\\",\\n  epsilon: \\"ε\\",\\n  zeta: \\"ζ\\",\\n  eta: \\"η\\",\\n  theta: \\"θ\\",\\n  iota: \\"ι\\",\\n  kappa: \\"κ\\",\\n  lambda: \\"λ\\",\\n  mu: \\"μ\\",\\n  nu: \\"ν\\",\\n  xi: \\"ξ\\",\\n  omicron: \\"ο\\",\\n  pi: \\"π\\",\\n  rho: \\"ρ\\",\\n  sigmaf: \\"ς\\",\\n  sigma: \\"σ\\",\\n  tau: \\"τ\\",\\n  upsilon: \\"υ\\",\\n  phi: \\"φ\\",\\n  chi: \\"χ\\",\\n  psi: \\"ψ\\",\\n  omega: \\"ω\\",\\n  thetasym: \\"ϑ\\",\\n  upsih: \\"ϒ\\",\\n  piv: \\"ϖ\\",\\n  ensp: \\"\u2002\\",\\n  emsp: \\"\u2003\\",\\n  thinsp: \\"\u2009\\",\\n  zwnj: \\"\u200c\\",\\n  zwj: \\"\u200d\\",\\n  lrm: \\"\u200e\\",\\n  rlm: \\"\u200f\\",\\n  ndash: \\"–\\",\\n  mdash: \\"—\\",\\n  lsquo: \\"‘\\",\\n  rsquo: \\"’\\",\\n  sbquo: \\"‚\\",\\n  ldquo: \\"“\\",\\n  rdquo: \\"”\\",\\n  bdquo: \\"„\\",\\n  dagger: \\"†\\",\\n  Dagger: \\"‡\\",\\n  bull: \\"•\\",\\n  hellip: \\"…\\",\\n  permil: \\"‰\\",\\n  prime: \\"′\\",\\n  Prime: \\"″\\",\\n  lsaquo: \\"‹\\",\\n  rsaquo: \\"›\\",\\n  oline: \\"‾\\",\\n  frasl: \\"⁄\\",\\n  euro: \\"€\\",\\n  image: \\"ℑ\\",\\n  weierp: \\"℘\\",\\n  real: \\"ℜ\\",\\n  trade: \\"™\\",\\n  alefsym: \\"ℵ\\",\\n  larr: \\"←\\",\\n  uarr: \\"↑\\",\\n  rarr: \\"→\\",\\n  darr: \\"↓\\",\\n  harr: \\"↔\\",\\n  crarr: \\"↵\\",\\n  lArr: \\"⇐\\",\\n  uArr: \\"⇑\\",\\n  rArr: \\"⇒\\",\\n  dArr: \\"⇓\\",\\n  hArr: \\"⇔\\",\\n  forall: \\"∀\\",\\n  part: \\"∂\\",\\n  exist: \\"∃\\",\\n  empty: \\"∅\\",\\n  nabla: \\"∇\\",\\n  isin: \\"∈\\",\\n  notin: \\"∉\\",\\n  ni: \\"∋\\",\\n  prod: \\"∏\\",\\n  sum: \\"∑\\",\\n  minus: \\"−\\",\\n  lowast: \\"∗\\",\\n  radic: \\"√\\",\\n  prop: \\"∝\\",\\n  infin: \\"∞\\",\\n  ang: \\"∠\\",\\n  and: \\"∧\\",\\n  or: \\"∨\\",\\n  cap: \\"∩\\",\\n  cup: \\"∪\\",\\n  \\"int\\": \\"∫\\",\\n  there4: \\"∴\\",\\n  sim: \\"∼\\",\\n  cong: \\"≅\\",\\n  asymp: \\"≈\\",\\n  ne: \\"≠\\",\\n  equiv: \\"≡\\",\\n  le: \\"≤\\",\\n  ge: \\"≥\\",\\n  sub: \\"⊂\\",\\n  sup: \\"⊃\\",\\n  nsub: \\"⊄\\",\\n  sube: \\"⊆\\",\\n  supe: \\"⊇\\",\\n  oplus: \\"⊕\\",\\n  otimes: \\"⊗\\",\\n  perp: \\"⊥\\",\\n  sdot: \\"⋅\\",\\n  lceil: \\"⌈\\",\\n  rceil: \\"⌉\\",\\n  lfloor: \\"⌊\\",\\n  rfloor: \\"⌋\\",\\n  lang: \\"〈\\",\\n  rang: \\"〉\\",\\n  loz: \\"◊\\",\\n  spades: \\"♠\\",\\n  clubs: \\"♣\\",\\n  hearts: \\"♥\\",\\n  diams: \\"♦\\"\\n};\\nmodule.exports = exports[\\"default\\"];\\n},{}],14:[function(require,module,exports){\\n/* @flow */\\n\\n// The algorithm used to determine whether a regexp can appear at a\\n// given point in the program is loosely based on sweet.js\' approach.\\n// See https://github.com/mozilla/sweet.js/wiki/design\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar TokContext = function TokContext(token /*: string*/, isExpr /*:: ?: boolean*/, preserveSpace /*:: ?: boolean*/, override /*:: ?: Function*/) {\\n  _classCallCheck(this, TokContext);\\n\\n  this.token = token;\\n  this.isExpr = !!isExpr;\\n  this.preserveSpace = !!preserveSpace;\\n  this.override = override;\\n};\\n\\nexports.TokContext = TokContext;\\nvar types /*: {\\n            [key: string]: TokContext;\\n          }*/ = {\\n  b_stat: new TokContext(\\"{\\", false),\\n  b_expr: new TokContext(\\"{\\", true),\\n  b_tmpl: new TokContext(\\"${\\", true),\\n  p_stat: new TokContext(\\"(\\", false),\\n  p_expr: new TokContext(\\"(\\", true),\\n  q_tmpl: new TokContext(\\"`\\", true, true, function (p) {\\n    return p.readTmplToken();\\n  }),\\n  f_expr: new TokContext(\\"function\\", true)\\n};\\n\\nexports.types = types;\\n// Token-specific context update code\\n\\n_types.types.parenR.updateContext = _types.types.braceR.updateContext = function () {\\n  if (this.state.context.length === 1) {\\n    this.state.exprAllowed = true;\\n    return;\\n  }\\n\\n  var out = this.state.context.pop();\\n  if (out === types.b_stat && this.curContext() === types.f_expr) {\\n    this.state.context.pop();\\n    this.state.exprAllowed = false;\\n  } else if (out === types.b_tmpl) {\\n    this.state.exprAllowed = true;\\n  } else {\\n    this.state.exprAllowed = !out.isExpr;\\n  }\\n};\\n\\n_types.types.name.updateContext = function (prevType) {\\n  this.state.exprAllowed = false;\\n\\n  if (prevType === _types.types._let || prevType === _types.types._const || prevType === _types.types._var) {\\n    if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.end))) {\\n      this.state.exprAllowed = true;\\n    }\\n  }\\n};\\n\\n_types.types.braceL.updateContext = function (prevType) {\\n  this.state.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.dollarBraceL.updateContext = function () {\\n  this.state.context.push(types.b_tmpl);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.parenL.updateContext = function (prevType) {\\n  var statementParens = prevType === _types.types._if || prevType === _types.types._for || prevType === _types.types._with || prevType === _types.types._while;\\n  this.state.context.push(statementParens ? types.p_stat : types.p_expr);\\n  this.state.exprAllowed = true;\\n};\\n\\n_types.types.incDec.updateContext = function () {\\n  // tokExprAllowed stays unchanged\\n};\\n\\n_types.types._function.updateContext = function () {\\n  if (this.curContext() !== types.b_stat) {\\n    this.state.context.push(types.f_expr);\\n  }\\n\\n  this.state.exprAllowed = false;\\n};\\n\\n_types.types.backQuote.updateContext = function () {\\n  if (this.curContext() === types.q_tmpl) {\\n    this.state.context.pop();\\n  } else {\\n    this.state.context.push(types.q_tmpl);\\n  }\\n  this.state.exprAllowed = false;\\n};\\n},{\\"../util/whitespace\\":20,\\"./types\\":17,\\"babel-runtime/helpers/class-call-check\\":24}],15:[function(require,module,exports){\\n/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilIdentifier = require(\\"../util/identifier\\");\\n\\nvar _types = require(\\"./types\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _utilWhitespace = require(\\"../util/whitespace\\");\\n\\nvar _state = require(\\"./state\\");\\n\\nvar _state2 = _interopRequireDefault(_state);\\n\\n// Object type used to represent tokens. Note that normally, tokens\\n// simply exist as properties on the parser object. This is only\\n// used for the onToken callback and the external tokenizer.\\n\\n/*:: import type { TokenType } from \\"./types\\";*/\\nvar Token = function Token(state) {\\n  _classCallCheck(this, Token);\\n\\n  this.type = state.type;\\n  this.value = state.value;\\n  this.start = state.start;\\n  this.end = state.end;\\n  this.loc = new _utilLocation.SourceLocation(state.startLoc, state.endLoc);\\n}\\n\\n// ## Tokenizer\\n\\n;\\n\\nexports.Token = Token;\\nfunction codePointToString(code) {\\n  // UTF-16 Decoding\\n  if (code <= 0xFFFF) {\\n    return String.fromCharCode(code);\\n  } else {\\n    return String.fromCharCode((code - 0x10000 >> 10) + 0xD800, (code - 0x10000 & 1023) + 0xDC00);\\n  }\\n}\\n\\nvar Tokenizer = (function () {\\n  function Tokenizer(options, input) {\\n    _classCallCheck(this, Tokenizer);\\n\\n    this.state = new _state2[\\"default\\"]();\\n    this.state.init(options, input);\\n  }\\n\\n  // Move to the next token\\n\\n  Tokenizer.prototype.next = function next() {\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(new Token(this.state));\\n    }\\n\\n    this.state.lastTokEnd = this.state.end;\\n    this.state.lastTokStart = this.state.start;\\n    this.state.lastTokEndLoc = this.state.endLoc;\\n    this.state.lastTokStartLoc = this.state.startLoc;\\n    this.nextToken();\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.eat = function eat(type) {\\n    if (this.match(type)) {\\n      this.next();\\n      return true;\\n    } else {\\n      return false;\\n    }\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.match = function match(type) {\\n    return this.state.type === type;\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.isKeyword = function isKeyword(word) {\\n    return _utilIdentifier.isKeyword(word);\\n  };\\n\\n  // TODO\\n\\n  Tokenizer.prototype.lookahead = function lookahead() {\\n    var old = this.state;\\n    this.state = old.clone(true);\\n\\n    this.isLookahead = true;\\n    this.next();\\n    this.isLookahead = false;\\n\\n    var curr = this.state.clone(true);\\n    this.state = old;\\n    return curr;\\n  };\\n\\n  // Toggle strict mode. Re-reads the next number or string to please\\n  // pedantic tests (`\\"use strict\\"; 010;` should fail).\\n\\n  Tokenizer.prototype.setStrict = function setStrict(strict) {\\n    this.state.strict = strict;\\n    if (!this.match(_types.types.num) && !this.match(_types.types.string)) return;\\n    this.state.pos = this.state.start;\\n    while (this.state.pos < this.state.lineStart) {\\n      this.state.lineStart = this.input.lastIndexOf(\\"\\\\n\\", this.state.lineStart - 2) + 1;\\n      --this.state.curLine;\\n    }\\n    this.nextToken();\\n  };\\n\\n  Tokenizer.prototype.curContext = function curContext() {\\n    return this.state.context[this.state.context.length - 1];\\n  };\\n\\n  // Read a single token, updating the parser object\'s token-related\\n  // properties.\\n\\n  Tokenizer.prototype.nextToken = function nextToken() {\\n    var curContext = this.curContext();\\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\\n\\n    this.state.containsOctal = false;\\n    this.state.octalPosition = null;\\n    this.state.start = this.state.pos;\\n    this.state.startLoc = this.state.curPosition();\\n    if (this.state.pos >= this.input.length) return this.finishToken(_types.types.eof);\\n\\n    if (curContext.override) {\\n      return curContext.override(this);\\n    } else {\\n      return this.readToken(this.fullCharCodeAtPos());\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken = function readToken(code) {\\n    // Identifier or keyword. \'\\\\uXXXX\' sequences are allowed in\\n    // identifiers, so \'\\\\\' also dispatches to that.\\n    if (_utilIdentifier.isIdentifierStart(code) || code === 92 /* \'\\\\\' */) {\\n        return this.readWord();\\n      } else {\\n      return this.getTokenFromCode(code);\\n    }\\n  };\\n\\n  Tokenizer.prototype.fullCharCodeAtPos = function fullCharCodeAtPos() {\\n    var code = this.input.charCodeAt(this.state.pos);\\n    if (code <= 0xd7ff || code >= 0xe000) return code;\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    return (code << 10) + next - 0x35fdc00;\\n  };\\n\\n  Tokenizer.prototype.pushComment = function pushComment(block, text, start, end, startLoc, endLoc) {\\n    var comment = {\\n      type: block ? \\"CommentBlock\\" : \\"CommentLine\\",\\n      value: text,\\n      start: start,\\n      end: end,\\n      loc: new _utilLocation.SourceLocation(startLoc, endLoc)\\n    };\\n\\n    if (!this.isLookahead) {\\n      this.state.tokens.push(comment);\\n      this.state.comments.push(comment);\\n    }\\n\\n    this.addComment(comment);\\n  };\\n\\n  Tokenizer.prototype.skipBlockComment = function skipBlockComment() {\\n    var startLoc = this.state.curPosition();\\n    var start = this.state.pos,\\n        end = this.input.indexOf(\\"*/\\", this.state.pos += 2);\\n    if (end === -1) this.raise(this.state.pos - 2, \\"Unterminated comment\\");\\n\\n    this.state.pos = end + 2;\\n    _utilWhitespace.lineBreakG.lastIndex = start;\\n    var match = undefined;\\n    while ((match = _utilWhitespace.lineBreakG.exec(this.input)) && match.index < this.state.pos) {\\n      ++this.state.curLine;\\n      this.state.lineStart = match.index + match[0].length;\\n    }\\n\\n    this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  Tokenizer.prototype.skipLineComment = function skipLineComment(startSkip) {\\n    var start = this.state.pos;\\n    var startLoc = this.state.curPosition();\\n    var ch = this.input.charCodeAt(this.state.pos += startSkip);\\n    while (this.state.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {\\n      ++this.state.pos;\\n      ch = this.input.charCodeAt(this.state.pos);\\n    }\\n\\n    this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition());\\n  };\\n\\n  // Called at the start of the parse and after every token. Skips\\n  // whitespace and comments, and.\\n\\n  Tokenizer.prototype.skipSpace = function skipSpace() {\\n    loop: while (this.state.pos < this.input.length) {\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      switch (ch) {\\n        case 32:case 160:\\n          // \' \'\\n          ++this.state.pos;\\n          break;\\n\\n        case 13:\\n          if (this.input.charCodeAt(this.state.pos + 1) === 10) {\\n            ++this.state.pos;\\n          }\\n\\n        case 10:case 8232:case 8233:\\n          ++this.state.pos;\\n          ++this.state.curLine;\\n          this.state.lineStart = this.state.pos;\\n          break;\\n\\n        case 47:\\n          // \'/\'\\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\\n            case 42:\\n              // \'*\'\\n              this.skipBlockComment();\\n              break;\\n\\n            case 47:\\n              this.skipLineComment(2);\\n              break;\\n\\n            default:\\n              break loop;\\n          }\\n          break;\\n\\n        default:\\n          if (ch > 8 && ch < 14 || ch >= 5760 && _utilWhitespace.nonASCIIwhitespace.test(String.fromCharCode(ch))) {\\n            ++this.state.pos;\\n          } else {\\n            break loop;\\n          }\\n      }\\n    }\\n  };\\n\\n  // Called at the end of every token. Sets `end`, `val`, and\\n  // maintains `context` and `exprAllowed`, and skips the space after\\n  // the token, so that the next one\'s `start` will point at the\\n  // right position.\\n\\n  Tokenizer.prototype.finishToken = function finishToken(type, val) {\\n    this.state.end = this.state.pos;\\n    this.state.endLoc = this.state.curPosition();\\n    var prevType = this.state.type;\\n    this.state.type = type;\\n    this.state.value = val;\\n\\n    this.updateContext(prevType);\\n  };\\n\\n  // ### Token reading\\n\\n  // This is the function that is called to fetch the next token. It\\n  // is somewhat obscure, because it works in character codes rather\\n  // than characters, and because operator parsing has been inlined\\n  // into it.\\n  //\\n  // All in the name of speed.\\n  //\\n\\n  Tokenizer.prototype.readToken_dot = function readToken_dot() {\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next >= 48 && next <= 57) {\\n      return this.readNumber(true);\\n    }\\n\\n    var next2 = this.input.charCodeAt(this.state.pos + 2);\\n    if (next === 46 && next2 === 46) {\\n      // 46 = dot \'.\'\\n      this.state.pos += 3;\\n      return this.finishToken(_types.types.ellipsis);\\n    } else {\\n      ++this.state.pos;\\n      return this.finishToken(_types.types.dot);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_slash = function readToken_slash() {\\n    // \'/\'\\n    if (this.state.exprAllowed) {\\n      ++this.state.pos;\\n      return this.readRegexp();\\n    }\\n\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.slash, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_mult_modulo = function readToken_mult_modulo(code) {\\n    // \'%*\'\\n    var type = code === 42 ? _types.types.star : _types.types.modulo;\\n    var width = 1;\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === 42 && this.hasPlugin(\\"exponentiationOperator\\")) {\\n      // \'*\'\\n      width++;\\n      next = this.input.charCodeAt(this.state.pos + 2);\\n      type = _types.types.exponent;\\n    }\\n\\n    if (next === 61) {\\n      width++;\\n      type = _types.types.assign;\\n    }\\n\\n    return this.finishOp(type, width);\\n  };\\n\\n  Tokenizer.prototype.readToken_pipe_amp = function readToken_pipe_amp(code) {\\n    // \'|&\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === code) return this.finishOp(code === 124 ? _types.types.logicalOR : _types.types.logicalAND, 2);\\n    if (next === 61) return this.finishOp(_types.types.assign, 2);\\n    return this.finishOp(code === 124 ? _types.types.bitwiseOR : _types.types.bitwiseAND, 1);\\n  };\\n\\n  Tokenizer.prototype.readToken_caret = function readToken_caret() {\\n    // \'^\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.bitwiseXOR, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_plus_min = function readToken_plus_min(code) {\\n    // \'+-\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n\\n    if (next === code) {\\n      if (next === 45 && this.input.charCodeAt(this.state.pos + 2) === 62 && _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.pos))) {\\n        // A `-->` line comment\\n        this.skipLineComment(3);\\n        this.skipSpace();\\n        return this.nextToken();\\n      }\\n      return this.finishOp(_types.types.incDec, 2);\\n    }\\n\\n    if (next === 61) {\\n      return this.finishOp(_types.types.assign, 2);\\n    } else {\\n      return this.finishOp(_types.types.plusMin, 1);\\n    }\\n  };\\n\\n  Tokenizer.prototype.readToken_lt_gt = function readToken_lt_gt(code) {\\n    // \'<>\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    var size = 1;\\n\\n    if (next === code) {\\n      size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2;\\n      if (this.input.charCodeAt(this.state.pos + size) === 61) return this.finishOp(_types.types.assign, size + 1);\\n      return this.finishOp(_types.types.bitShift, size);\\n    }\\n\\n    if (next === 33 && code === 60 && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) {\\n      if (this.inModule) this.unexpected();\\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\\n      this.skipLineComment(4);\\n      this.skipSpace();\\n      return this.nextToken();\\n    }\\n\\n    if (next === 61) {\\n      size = this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2;\\n    }\\n\\n    return this.finishOp(_types.types.relational, size);\\n  };\\n\\n  Tokenizer.prototype.readToken_eq_excl = function readToken_eq_excl(code) {\\n    // \'=!\'\\n    var next = this.input.charCodeAt(this.state.pos + 1);\\n    if (next === 61) return this.finishOp(_types.types.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);\\n    if (code === 61 && next === 62) {\\n      // \'=>\'\\n      this.state.pos += 2;\\n      return this.finishToken(_types.types.arrow);\\n    }\\n    return this.finishOp(code === 61 ? _types.types.eq : _types.types.prefix, 1);\\n  };\\n\\n  Tokenizer.prototype.getTokenFromCode = function getTokenFromCode(code) {\\n    switch (code) {\\n      // The interpretation of a dot depends on whether it is followed\\n      // by a digit or another two dots.\\n      case 46:\\n        // \'.\'\\n        return this.readToken_dot();\\n\\n      // Punctuation tokens.\\n      case 40:\\n        ++this.state.pos;return this.finishToken(_types.types.parenL);\\n      case 41:\\n        ++this.state.pos;return this.finishToken(_types.types.parenR);\\n      case 59:\\n        ++this.state.pos;return this.finishToken(_types.types.semi);\\n      case 44:\\n        ++this.state.pos;return this.finishToken(_types.types.comma);\\n      case 91:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketL);\\n      case 93:\\n        ++this.state.pos;return this.finishToken(_types.types.bracketR);\\n      case 123:\\n        ++this.state.pos;return this.finishToken(_types.types.braceL);\\n      case 125:\\n        ++this.state.pos;return this.finishToken(_types.types.braceR);\\n\\n      case 58:\\n        if (this.hasPlugin(\\"functionBind\\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\\n          return this.finishOp(_types.types.doubleColon, 2);\\n        } else {\\n          ++this.state.pos;\\n          return this.finishToken(_types.types.colon);\\n        }\\n\\n      case 63:\\n        ++this.state.pos;return this.finishToken(_types.types.question);\\n      case 64:\\n        ++this.state.pos;return this.finishToken(_types.types.at);\\n\\n      case 96:\\n        // \'`\'\\n        ++this.state.pos;\\n        return this.finishToken(_types.types.backQuote);\\n\\n      case 48:\\n        // \'0\'\\n        var next = this.input.charCodeAt(this.state.pos + 1);\\n        if (next === 120 || next === 88) return this.readRadixNumber(16); // \'0x\', \'0X\' - hex number\\n        if (next === 111 || next === 79) return this.readRadixNumber(8); // \'0o\', \'0O\' - octal number\\n        if (next === 98 || next === 66) return this.readRadixNumber(2); // \'0b\', \'0B\' - binary number\\n      // Anything else beginning with a digit is an integer, octal\\n      // number, or float.\\n      case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:\\n        // 1-9\\n        return this.readNumber(false);\\n\\n      // Quotes produce strings.\\n      case 34:case 39:\\n        // \'\\"\', \\"\'\\"\\n        return this.readString(code);\\n\\n      // Operators are parsed inline in tiny state machines. \'=\' (61) is\\n      // often referred to. `finishOp` simply skips the amount of\\n      // characters it is given as second argument, and returns a token\\n      // of the type given by its first argument.\\n\\n      case 47:\\n        // \'/\'\\n        return this.readToken_slash();\\n\\n      case 37:case 42:\\n        // \'%*\'\\n        return this.readToken_mult_modulo(code);\\n\\n      case 124:case 38:\\n        // \'|&\'\\n        return this.readToken_pipe_amp(code);\\n\\n      case 94:\\n        // \'^\'\\n        return this.readToken_caret();\\n\\n      case 43:case 45:\\n        // \'+-\'\\n        return this.readToken_plus_min(code);\\n\\n      case 60:case 62:\\n        // \'<>\'\\n        return this.readToken_lt_gt(code);\\n\\n      case 61:case 33:\\n        // \'=!\'\\n        return this.readToken_eq_excl(code);\\n\\n      case 126:\\n        // \'~\'\\n        return this.finishOp(_types.types.prefix, 1);\\n    }\\n\\n    this.raise(this.state.pos, \\"Unexpected character \'\\" + codePointToString(code) + \\"\'\\");\\n  };\\n\\n  Tokenizer.prototype.finishOp = function finishOp(type, size) {\\n    var str = this.input.slice(this.state.pos, this.state.pos + size);\\n    this.state.pos += size;\\n    return this.finishToken(type, str);\\n  };\\n\\n  Tokenizer.prototype.readRegexp = function readRegexp() {\\n    var escaped = undefined,\\n        inClass = undefined,\\n        start = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(start, \\"Unterminated regular expression\\");\\n      var ch = this.input.charAt(this.state.pos);\\n      if (_utilWhitespace.lineBreak.test(ch)) {\\n        this.raise(start, \\"Unterminated regular expression\\");\\n      }\\n      if (escaped) {\\n        escaped = false;\\n      } else {\\n        if (ch === \\"[\\") {\\n          inClass = true;\\n        } else if (ch === \\"]\\" && inClass) {\\n          inClass = false;\\n        } else if (ch === \\"/\\" && !inClass) {\\n          break;\\n        }\\n        escaped = ch === \\"\\\\\\\\\\";\\n      }\\n      ++this.state.pos;\\n    }\\n    var content = this.input.slice(start, this.state.pos);\\n    ++this.state.pos;\\n    // Need to use `readWord1` because \'\\\\uXXXX\' sequences are allowed\\n    // here (don\'t ask).\\n    var mods = this.readWord1();\\n    if (mods) {\\n      var validFlags = /^[gmsiyu]*$/;\\n      if (!validFlags.test(mods)) this.raise(start, \\"Invalid regular expression flag\\");\\n    }\\n    return this.finishToken(_types.types.regexp, {\\n      pattern: content,\\n      flags: mods\\n    });\\n  };\\n\\n  // Read an integer in the given radix. Return null if zero digits\\n  // were read, the integer value otherwise. When `len` is given, this\\n  // will return `null` unless the integer has exactly `len` digits.\\n\\n  Tokenizer.prototype.readInt = function readInt(radix, len) {\\n    var start = this.state.pos,\\n        total = 0;\\n    for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {\\n      var code = this.input.charCodeAt(this.state.pos),\\n          val = undefined;\\n      if (code >= 97) {\\n        val = code - 97 + 10; // a\\n      } else if (code >= 65) {\\n          val = code - 65 + 10; // A\\n        } else if (code >= 48 && code <= 57) {\\n            val = code - 48; // 0-9\\n          } else {\\n              val = Infinity;\\n            }\\n      if (val >= radix) break;\\n      ++this.state.pos;\\n      total = total * radix + val;\\n    }\\n    if (this.state.pos === start || len != null && this.state.pos - start !== len) return null;\\n\\n    return total;\\n  };\\n\\n  Tokenizer.prototype.readRadixNumber = function readRadixNumber(radix) {\\n    this.state.pos += 2; // 0x\\n    var val = this.readInt(radix);\\n    if (val == null) this.raise(this.state.start + 2, \\"Expected number in radix \\" + radix);\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read an integer, octal integer, or floating-point number.\\n\\n  Tokenizer.prototype.readNumber = function readNumber(startsWithDot) {\\n    var start = this.state.pos,\\n        isFloat = false,\\n        octal = this.input.charCodeAt(this.state.pos) === 48;\\n    if (!startsWithDot && this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n    var next = this.input.charCodeAt(this.state.pos);\\n    if (next === 46) {\\n      // \'.\'\\n      ++this.state.pos;\\n      this.readInt(10);\\n      isFloat = true;\\n      next = this.input.charCodeAt(this.state.pos);\\n    }\\n    if (next === 69 || next === 101) {\\n      // \'eE\'\\n      next = this.input.charCodeAt(++this.state.pos);\\n      if (next === 43 || next === 45) ++this.state.pos; // \'+-\'\\n      if (this.readInt(10) === null) this.raise(start, \\"Invalid number\\");\\n      isFloat = true;\\n    }\\n    if (_utilIdentifier.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, \\"Identifier directly after number\\");\\n\\n    var str = this.input.slice(start, this.state.pos),\\n        val = undefined;\\n    if (isFloat) {\\n      val = parseFloat(str);\\n    } else if (!octal || str.length === 1) {\\n      val = parseInt(str, 10);\\n    } else if (/[89]/.test(str) || this.state.strict) {\\n      this.raise(start, \\"Invalid number\\");\\n    } else {\\n      val = parseInt(str, 8);\\n    }\\n    return this.finishToken(_types.types.num, val);\\n  };\\n\\n  // Read a string value, interpreting backslash-escapes.\\n\\n  Tokenizer.prototype.readCodePoint = function readCodePoint() {\\n    var ch = this.input.charCodeAt(this.state.pos),\\n        code = undefined;\\n\\n    if (ch === 123) {\\n      var codePos = ++this.state.pos;\\n      code = this.readHexChar(this.input.indexOf(\\"}\\", this.state.pos) - this.state.pos);\\n      ++this.state.pos;\\n      if (code > 0x10FFFF) this.raise(codePos, \\"Code point out of bounds\\");\\n    } else {\\n      code = this.readHexChar(4);\\n    }\\n    return code;\\n  };\\n\\n  Tokenizer.prototype.readString = function readString(quote) {\\n    var out = \\"\\",\\n        chunkStart = ++this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated string constant\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === quote) break;\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(false);\\n        chunkStart = this.state.pos;\\n      } else {\\n        if (_utilWhitespace.isNewLine(ch)) this.raise(this.state.start, \\"Unterminated string constant\\");\\n        ++this.state.pos;\\n      }\\n    }\\n    out += this.input.slice(chunkStart, this.state.pos++);\\n    return this.finishToken(_types.types.string, out);\\n  };\\n\\n  // Reads template string tokens.\\n\\n  Tokenizer.prototype.readTmplToken = function readTmplToken() {\\n    var out = \\"\\",\\n        chunkStart = this.state.pos;\\n    for (;;) {\\n      if (this.state.pos >= this.input.length) this.raise(this.state.start, \\"Unterminated template\\");\\n      var ch = this.input.charCodeAt(this.state.pos);\\n      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) {\\n        // \'`\', \'${\'\\n        if (this.state.pos === this.state.start && this.match(_types.types.template)) {\\n          if (ch === 36) {\\n            this.state.pos += 2;\\n            return this.finishToken(_types.types.dollarBraceL);\\n          } else {\\n            ++this.state.pos;\\n            return this.finishToken(_types.types.backQuote);\\n          }\\n        }\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        return this.finishToken(_types.types.template, out);\\n      }\\n      if (ch === 92) {\\n        // \'\\\\\'\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        out += this.readEscapedChar(true);\\n        chunkStart = this.state.pos;\\n      } else if (_utilWhitespace.isNewLine(ch)) {\\n        out += this.input.slice(chunkStart, this.state.pos);\\n        ++this.state.pos;\\n        switch (ch) {\\n          case 13:\\n            if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos;\\n          case 10:\\n            out += \\"\\\\n\\";\\n            break;\\n          default:\\n            out += String.fromCharCode(ch);\\n            break;\\n        }\\n        ++this.state.curLine;\\n        this.state.lineStart = this.state.pos;\\n        chunkStart = this.state.pos;\\n      } else {\\n        ++this.state.pos;\\n      }\\n    }\\n  };\\n\\n  // Used to read escaped characters\\n\\n  Tokenizer.prototype.readEscapedChar = function readEscapedChar(inTemplate) {\\n    var ch = this.input.charCodeAt(++this.state.pos);\\n    ++this.state.pos;\\n    switch (ch) {\\n      case 110:\\n        return \\"\\\\n\\"; // \'n\' -> \'\\\\n\'\\n      case 114:\\n        return \\"\\\\r\\"; // \'r\' -> \'\\\\r\'\\n      case 120:\\n        return String.fromCharCode(this.readHexChar(2)); // \'x\'\\n      case 117:\\n        return codePointToString(this.readCodePoint()); // \'u\'\\n      case 116:\\n        return \\"\\\\t\\"; // \'t\' -> \'\\\\t\'\\n      case 98:\\n        return \\"\\\\b\\"; // \'b\' -> \'\\\\b\'\\n      case 118:\\n        return \\"\\\\u000b\\"; // \'v\' -> \'\\\\u000b\'\\n      case 102:\\n        return \\"\\\\f\\"; // \'f\' -> \'\\\\f\'\\n      case 13:\\n        if (this.input.charCodeAt(this.state.pos) === 10) ++this.state.pos; // \'\\\\r\\\\n\'\\n      case 10:\\n        // \' \\\\n\'\\n        this.state.lineStart = this.state.pos;\\n        ++this.state.curLine;\\n        return \\"\\";\\n      default:\\n        if (ch >= 48 && ch <= 55) {\\n          var octalStr = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/)[0];\\n          var octal = parseInt(octalStr, 8);\\n          if (octal > 255) {\\n            octalStr = octalStr.slice(0, -1);\\n            octal = parseInt(octalStr, 8);\\n          }\\n          if (octal > 0) {\\n            if (!this.state.containsOctal) {\\n              this.state.containsOctal = true;\\n              this.state.octalPosition = this.state.pos - 2;\\n            }\\n            if (this.state.strict || inTemplate) {\\n              this.raise(this.state.pos - 2, \\"Octal literal in strict mode\\");\\n            }\\n          }\\n          this.state.pos += octalStr.length - 1;\\n          return String.fromCharCode(octal);\\n        }\\n        return String.fromCharCode(ch);\\n    }\\n  };\\n\\n  // Used to read character escape sequences (\'\\\\x\', \'\\\\u\', \'\\\\U\').\\n\\n  Tokenizer.prototype.readHexChar = function readHexChar(len) {\\n    var codePos = this.state.pos;\\n    var n = this.readInt(16, len);\\n    if (n === null) this.raise(codePos, \\"Bad character escape sequence\\");\\n    return n;\\n  };\\n\\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\\n  // to whether the word contained a \'\\\\u\' escape.\\n  //\\n  // Incrementally adds only escaped chars, adding other chunks as-is\\n  // as a micro-optimization.\\n\\n  Tokenizer.prototype.readWord1 = function readWord1() {\\n    this.state.containsEsc = false;\\n    var word = \\"\\",\\n        first = true,\\n        chunkStart = this.state.pos;\\n    while (this.state.pos < this.input.length) {\\n      var ch = this.fullCharCodeAtPos();\\n      if (_utilIdentifier.isIdentifierChar(ch)) {\\n        this.state.pos += ch <= 0xffff ? 1 : 2;\\n      } else if (ch === 92) {\\n        // \\"\\\\\\"\\n        this.state.containsEsc = true;\\n\\n        word += this.input.slice(chunkStart, this.state.pos);\\n        var escStart = this.state.pos;\\n\\n        if (this.input.charCodeAt(++this.state.pos) !== 117) {\\n          // \\"u\\"\\n          this.raise(this.state.pos, \\"Expecting Unicode escape sequence \\\\\\\\uXXXX\\");\\n        }\\n\\n        ++this.state.pos;\\n        var esc = this.readCodePoint();\\n        if (!(first ? _utilIdentifier.isIdentifierStart : _utilIdentifier.isIdentifierChar)(esc, true)) {\\n          this.raise(escStart, \\"Invalid Unicode escape\\");\\n        }\\n\\n        word += codePointToString(esc);\\n        chunkStart = this.state.pos;\\n      } else {\\n        break;\\n      }\\n      first = false;\\n    }\\n    return word + this.input.slice(chunkStart, this.state.pos);\\n  };\\n\\n  // Read an identifier or keyword token. Will check for reserved\\n  // words when necessary.\\n\\n  Tokenizer.prototype.readWord = function readWord() {\\n    var word = this.readWord1();\\n    var type = _types.types.name;\\n    if (!this.state.containsEsc && this.isKeyword(word)) {\\n      type = _types.keywords[word];\\n    }\\n    return this.finishToken(type, word);\\n  };\\n\\n  Tokenizer.prototype.braceIsBlock = function braceIsBlock(prevType) {\\n    if (prevType === _types.types.colon) {\\n      var _parent = this.curContext();\\n      if (_parent === _context.types.b_stat || _parent === _context.types.b_expr) {\\n        return !_parent.isExpr;\\n      }\\n    }\\n\\n    if (prevType === _types.types._return) {\\n      return _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));\\n    }\\n\\n    if (prevType === _types.types._else || prevType === _types.types.semi || prevType === _types.types.eof || prevType === _types.types.parenR) {\\n      return true;\\n    }\\n\\n    if (prevType === _types.types.braceL) {\\n      return this.curContext() === _context.types.b_stat;\\n    }\\n\\n    return !this.state.exprAllowed;\\n  };\\n\\n  Tokenizer.prototype.updateContext = function updateContext(prevType) {\\n    var update = undefined,\\n        type = this.state.type;\\n    if (type.keyword && prevType === _types.types.dot) {\\n      this.state.exprAllowed = false;\\n    } else if (update = type.updateContext) {\\n      update.call(this, prevType);\\n    } else {\\n      this.state.exprAllowed = type.beforeExpr;\\n    }\\n  };\\n\\n  return Tokenizer;\\n})();\\n\\nexports[\\"default\\"] = Tokenizer;\\n},{\\"../util/identifier\\":18,\\"../util/location\\":19,\\"../util/whitespace\\":20,\\"./context\\":14,\\"./state\\":16,\\"./types\\":17,\\"babel-runtime/helpers/class-call-check\\":24,\\"babel-runtime/helpers/interop-require-default\\":26}],16:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _utilLocation = require(\\"../util/location\\");\\n\\nvar _context = require(\\"./context\\");\\n\\nvar _types = require(\\"./types\\");\\n\\n/*:: import type { TokContext } from \\"./context\\";*/\\n/*:: import type { Token } from \\"./index\\";*/\\nvar State = (function () {\\n  function State() {\\n    _classCallCheck(this, State);\\n  }\\n\\n  State.prototype.init = function init(options /*: Object*/, input /*: string*/) {\\n    this.strict = options.strictMode === false ? false : options.sourceType === \\"module\\";\\n\\n    this.input = input;\\n\\n    this.potentialArrowAt = -1;\\n\\n    this.inMethod = this.inFunction = this.inGenerator = this.inAsync = false;\\n\\n    this.labels = [];\\n\\n    this.decorators = [];\\n\\n    this.tokens = [];\\n\\n    this.comments = [];\\n\\n    this.trailingComments = [];\\n    this.leadingComments = [];\\n    this.commentStack = [];\\n\\n    this.pos = this.lineStart = 0;\\n    this.curLine = 1;\\n\\n    this.type = _types.types.eof;\\n    this.value = null;\\n    this.start = this.end = this.pos;\\n    this.startLoc = this.endLoc = this.curPosition();\\n\\n    this.lastTokEndLoc = this.lastTokStartLoc = null;\\n    this.lastTokStart = this.lastTokEnd = this.pos;\\n\\n    this.context = [_context.types.b_stat];\\n    this.exprAllowed = true;\\n\\n    this.containsEsc = this.containsOctal = false;\\n    this.octalPosition = null;\\n\\n    return this;\\n  };\\n\\n  // TODO\\n\\n  State.prototype.curPosition = function curPosition() {\\n    return new _utilLocation.Position(this.curLine, this.pos - this.lineStart);\\n  };\\n\\n  State.prototype.clone = function clone(skipArrays /*:: ?*/) {\\n    var state = new State();\\n    for (var key in this) {\\n      var val = this[key];\\n\\n      if ((!skipArrays || key === \\"context\\") && Array.isArray(val)) {\\n        val = val.slice();\\n      }\\n\\n      state[key] = val;\\n    }\\n    return state;\\n  };\\n\\n  return State;\\n})();\\n\\nexports[\\"default\\"] = State;\\nmodule.exports = exports[\\"default\\"];\\n\\n// TODO\\n\\n// Used to signify the start of a potential arrow function\\n\\n// Flags to track whether we are in a function, a generator.\\n\\n// Labels in scope.\\n\\n// Leading decorators.\\n\\n// Token store.\\n\\n// Comment store.\\n\\n// Comment attachment store\\n\\n// The current position of the tokenizer in the input.\\n\\n// Properties of the current token:\\n// Its type\\n\\n// For tokens that include more information than their type, the value\\n\\n// Its start and end offset\\n\\n// And, if locations are used, the {line, column} object\\n// corresponding to those offsets\\n\\n// Position information for the previous token\\n\\n// The context stack is used to superficially track syntactic\\n// context to predict whether a regular expression is allowed in a\\n// given position.\\n\\n// Used to signal to callers of `readWord1` whether the word\\n// contained any escape sequences. This is needed because words with\\n// escape sequences must not be interpreted as keywords.\\n\\n// TODO\\n},{\\"../util/location\\":19,\\"./context\\":14,\\"./types\\":17,\\"babel-runtime/helpers/class-call-check\\":24}],17:[function(require,module,exports){\\n// ## Token types\\n\\n// The assignment of fine-grained, information-carrying type objects\\n// allows the tokenizer to store the information it has about a\\n// token in a way that is very cheap for the parser to look up.\\n\\n// All token type variables start with an underscore, to make them\\n// easy to recognize.\\n\\n// The `beforeExpr` property is used to disambiguate between regular\\n// expressions and divisions. It is set on all token types that can\\n// be followed by an expression (thus, a slash after them would be a\\n// regular expression).\\n//\\n// `isLoop` marks a keyword as starting a loop, which is important\\n// to know when parsing a label, in order to allow or disallow\\n// continue jumps to that label.\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar TokenType = function TokenType(label) {\\n  var conf = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  _classCallCheck(this, TokenType);\\n\\n  this.label = label;\\n  this.keyword = conf.keyword;\\n  this.beforeExpr = !!conf.beforeExpr;\\n  this.startsExpr = !!conf.startsExpr;\\n  this.rightAssociative = !!conf.rightAssociative;\\n  this.isLoop = !!conf.isLoop;\\n  this.isAssign = !!conf.isAssign;\\n  this.prefix = !!conf.prefix;\\n  this.postfix = !!conf.postfix;\\n  this.binop = conf.binop || null;\\n  this.updateContext = null;\\n};\\n\\nexports.TokenType = TokenType;\\n\\nfunction binop(name, prec) {\\n  return new TokenType(name, { beforeExpr: true, binop: prec });\\n}\\nvar beforeExpr = { beforeExpr: true },\\n    startsExpr = { startsExpr: true };\\n\\nvar types = {\\n  num: new TokenType(\\"num\\", startsExpr),\\n  regexp: new TokenType(\\"regexp\\", startsExpr),\\n  string: new TokenType(\\"string\\", startsExpr),\\n  name: new TokenType(\\"name\\", startsExpr),\\n  eof: new TokenType(\\"eof\\"),\\n\\n  // Punctuation token types.\\n  bracketL: new TokenType(\\"[\\", { beforeExpr: true, startsExpr: true }),\\n  bracketR: new TokenType(\\"]\\"),\\n  braceL: new TokenType(\\"{\\", { beforeExpr: true, startsExpr: true }),\\n  braceR: new TokenType(\\"}\\"),\\n  parenL: new TokenType(\\"(\\", { beforeExpr: true, startsExpr: true }),\\n  parenR: new TokenType(\\")\\"),\\n  comma: new TokenType(\\",\\", beforeExpr),\\n  semi: new TokenType(\\";\\", beforeExpr),\\n  colon: new TokenType(\\":\\", beforeExpr),\\n  doubleColon: new TokenType(\\"::\\", beforeExpr),\\n  dot: new TokenType(\\".\\"),\\n  question: new TokenType(\\"?\\", beforeExpr),\\n  arrow: new TokenType(\\"=>\\", beforeExpr),\\n  template: new TokenType(\\"template\\"),\\n  ellipsis: new TokenType(\\"...\\", beforeExpr),\\n  backQuote: new TokenType(\\"`\\", startsExpr),\\n  dollarBraceL: new TokenType(\\"${\\", { beforeExpr: true, startsExpr: true }),\\n  at: new TokenType(\\"@\\"),\\n\\n  // Operators. These carry several kinds of properties to help the\\n  // parser use them properly (the presence of these properties is\\n  // what categorizes them as operators).\\n  //\\n  // `binop`, when present, specifies that this operator is a binary\\n  // operator, and will refer to its precedence.\\n  //\\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\\n  // unary operator.\\n  //\\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\\n  // binary operators with a very low precedence, that should result\\n  // in AssignmentExpression nodes.\\n\\n  eq: new TokenType(\\"=\\", { beforeExpr: true, isAssign: true }),\\n  assign: new TokenType(\\"_=\\", { beforeExpr: true, isAssign: true }),\\n  incDec: new TokenType(\\"++/--\\", { prefix: true, postfix: true, startsExpr: true }),\\n  prefix: new TokenType(\\"prefix\\", { beforeExpr: true, prefix: true, startsExpr: true }),\\n  logicalOR: binop(\\"||\\", 1),\\n  logicalAND: binop(\\"&&\\", 2),\\n  bitwiseOR: binop(\\"|\\", 3),\\n  bitwiseXOR: binop(\\"^\\", 4),\\n  bitwiseAND: binop(\\"&\\", 5),\\n  equality: binop(\\"==/!=\\", 6),\\n  relational: binop(\\"</>\\", 7),\\n  bitShift: binop(\\"<</>>\\", 8),\\n  plusMin: new TokenType(\\"+/-\\", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }),\\n  modulo: binop(\\"%\\", 10),\\n  star: binop(\\"*\\", 10),\\n  slash: binop(\\"/\\", 10),\\n  exponent: new TokenType(\\"**\\", { beforeExpr: true, binop: 11, rightAssociative: true })\\n};\\n\\nexports.types = types;\\n// Map keyword names to token types.\\n\\nvar keywords = {};\\n\\nexports.keywords = keywords;\\n// Succinct definitions of keyword token types\\nfunction kw(name) {\\n  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  options.keyword = name;\\n  keywords[name] = types[\\"_\\" + name] = new TokenType(name, options);\\n}\\n\\nkw(\\"break\\");\\nkw(\\"case\\", beforeExpr);\\nkw(\\"catch\\");\\nkw(\\"continue\\");\\nkw(\\"debugger\\");\\nkw(\\"default\\", beforeExpr);\\nkw(\\"do\\", { isLoop: true, beforeExpr: true });\\nkw(\\"else\\", beforeExpr);\\nkw(\\"finally\\");\\nkw(\\"for\\", { isLoop: true });\\nkw(\\"function\\", startsExpr);\\nkw(\\"if\\");\\nkw(\\"return\\", beforeExpr);\\nkw(\\"switch\\");\\nkw(\\"throw\\", beforeExpr);\\nkw(\\"try\\");\\nkw(\\"var\\");\\nkw(\\"let\\");\\nkw(\\"const\\");\\nkw(\\"while\\", { isLoop: true });\\nkw(\\"with\\");\\nkw(\\"new\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"this\\", startsExpr);\\nkw(\\"super\\", startsExpr);\\nkw(\\"class\\");\\nkw(\\"extends\\", beforeExpr);\\nkw(\\"export\\");\\nkw(\\"import\\");\\nkw(\\"yield\\", { beforeExpr: true, startsExpr: true });\\nkw(\\"null\\", startsExpr);\\nkw(\\"true\\", startsExpr);\\nkw(\\"false\\", startsExpr);\\nkw(\\"in\\", { beforeExpr: true, binop: 7 });\\nkw(\\"instanceof\\", { beforeExpr: true, binop: 7 });\\nkw(\\"typeof\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"void\\", { beforeExpr: true, prefix: true, startsExpr: true });\\nkw(\\"delete\\", { beforeExpr: true, prefix: true, startsExpr: true });\\n},{\\"babel-runtime/helpers/class-call-check\\":24}],18:[function(require,module,exports){\\n// This is a trick taken from Esprima. It turns out that, on\\n// non-Chrome browsers, to check whether a string is in a set, a\\n// predicate containing a big ugly `switch` statement is faster than\\n// a regular expression, and on Chrome the two are about on par.\\n// This function uses `eval` (non-lexical) to produce such a\\n// predicate from a space-separated string of words.\\n//\\n// It starts by sorting the words by length.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isIdentifierStart = isIdentifierStart;\\nexports.isIdentifierChar = isIdentifierChar;\\nfunction makePredicate(words) {\\n  words = words.split(\\" \\");\\n  return function (str) {\\n    return words.indexOf(str) >= 0;\\n  };\\n}\\n\\n// Reserved word lists for various dialects of the language\\n\\nvar reservedWords = {\\n  6: makePredicate(\\"enum await\\"),\\n  strict: makePredicate(\\"implements interface let package private protected public static yield\\"),\\n  strictBind: makePredicate(\\"eval arguments\\")\\n};\\n\\nexports.reservedWords = reservedWords;\\n// And the keywords\\n\\nvar isKeyword = makePredicate(\\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super\\");\\n\\nexports.isKeyword = isKeyword;\\n// ## Character categories\\n\\n// Big ugly regular expressions that match characters in the\\n// whitespace, identifier, and identifier-start categories. These\\n// are only applied when a character is found to actually have a\\n// code point above 128.\\n// Generated by `tools/generate-identifier-regex.js`.\\n\\nvar nonASCIIidentifierStartChars = \\"ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ\\";\\nvar nonASCIIidentifierChars = \\"\u200c\u200d·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏ᦰ-ᧀᧈᧉ᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷼-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-꣄꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︭︳︴﹍-﹏０-９＿\\";\\n\\nvar nonASCIIidentifierStart = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + \\"]\\");\\nvar nonASCIIidentifier = new RegExp(\\"[\\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \\"]\\");\\n\\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\\n\\n// These are a run-length and offset encoded representation of the\\n// >0xffff code points that are a valid part of identifiers. The\\n// offset starts at 0x10000, and each pair of numbers represents an\\n// offset to the next range, and then a size of the range. They were\\n// generated by tools/generate-identifier-regex.js\\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 17, 26, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 99, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 98, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 26, 45, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 955, 52, 76, 44, 33, 24, 27, 35, 42, 34, 4, 0, 13, 47, 15, 3, 22, 0, 38, 17, 2, 24, 133, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 32, 4, 287, 47, 21, 1, 2, 0, 185, 46, 82, 47, 21, 0, 60, 42, 502, 63, 32, 0, 449, 56, 1288, 920, 104, 110, 2962, 1070, 13266, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 881, 68, 12, 0, 67, 12, 16481, 1, 3071, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 4149, 196, 1340, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42710, 42, 4148, 12, 221, 16355, 541];\\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 1306, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 52, 0, 13, 2, 49, 13, 16, 9, 83, 11, 168, 11, 6, 9, 8, 2, 57, 0, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 316, 19, 13, 9, 214, 6, 3, 8, 112, 16, 16, 9, 82, 12, 9, 9, 535, 9, 20855, 9, 135, 4, 60, 6, 26, 9, 1016, 45, 17, 3, 19723, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 4305, 6, 792618, 239];\\n\\n// This has a complexity linear to the value of the code. The\\n// assumption is that looking up astral identifier characters is\\n// rare.\\nfunction isInAstralSet(code, set) {\\n  var pos = 0x10000;\\n  for (var i = 0; i < set.length; i += 2) {\\n    pos += set[i];\\n    if (pos > code) return false;\\n\\n    pos += set[i + 1];\\n    if (pos >= code) return true;\\n  }\\n}\\n\\n// Test whether a given character code starts an identifier.\\n\\nfunction isIdentifierStart(code) {\\n  if (code < 65) return code === 36;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes);\\n}\\n\\n// Test whether a given character is part of an identifier.\\n\\nfunction isIdentifierChar(code) {\\n  if (code < 48) return code === 36;\\n  if (code < 58) return true;\\n  if (code < 65) return false;\\n  if (code < 91) return true;\\n  if (code < 97) return code === 95;\\n  if (code < 123) return true;\\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\\n}\\n},{}],19:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getLineInfo = getLineInfo;\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\n// These are used when `options.locations` is on, for the\\n// `startLoc` and `endLoc` properties.\\n\\nvar Position = function Position(line, col) {\\n  _classCallCheck(this, Position);\\n\\n  this.line = line;\\n  this.column = col;\\n};\\n\\nexports.Position = Position;\\n\\nvar SourceLocation = function SourceLocation(start, end) {\\n  _classCallCheck(this, SourceLocation);\\n\\n  this.start = start;\\n  this.end = end;\\n}\\n\\n// The `getLineInfo` function is mostly useful when the\\n// `locations` option is off (for performance reasons) and you\\n// want to find the line/column position for a given character\\n// offset. `input` should be the code string that the offset refers\\n// into.\\n\\n;\\n\\nexports.SourceLocation = SourceLocation;\\n\\nfunction getLineInfo(input, offset) {\\n  for (var line = 1, cur = 0;;) {\\n    _whitespace.lineBreakG.lastIndex = cur;\\n    var match = _whitespace.lineBreakG.exec(input);\\n    if (match && match.index < offset) {\\n      ++line;\\n      cur = match.index + match[0].length;\\n    } else {\\n      return new Position(line, offset - cur);\\n    }\\n  }\\n}\\n},{\\"./whitespace\\":20,\\"babel-runtime/helpers/class-call-check\\":24}],20:[function(require,module,exports){\\n/* @flow */\\n\\n// Matches a whole line break (where CRLF is considered a single\\n// line break). Used to count lines.\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.isNewLine = isNewLine;\\nvar lineBreak = /\\\\r\\\\n?|\\\\n|\\\\u2028|\\\\u2029/;\\nexports.lineBreak = lineBreak;\\nvar lineBreakG = new RegExp(lineBreak.source, \\"g\\");\\n\\nexports.lineBreakG = lineBreakG;\\n\\nfunction isNewLine(code /*: number*/) /*: boolean*/ {\\n  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029;\\n}\\n\\nvar nonASCIIwhitespace = /[\\\\u1680\\\\u180e\\\\u2000-\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\ufeff]/;\\nexports.nonASCIIwhitespace = nonASCIIwhitespace;\\n},{}],21:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n},{\\"core-js/library/fn/get-iterator\\":27}],22:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/create\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/create\\":28}],23:[function(require,module,exports){\\nmodule.exports = { \\"default\\": require(\\"core-js/library/fn/object/set-prototype-of\\"), __esModule: true };\\n},{\\"core-js/library/fn/object/set-prototype-of\\":29}],24:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (instance, Constructor) {\\n  if (!(instance instanceof Constructor)) {\\n    throw new TypeError(\\"Cannot call a class as a function\\");\\n  }\\n};\\n\\nexports.__esModule = true;\\n},{}],25:[function(require,module,exports){\\n\\"use strict\\";\\n\\nvar _Object$create = require(\\"babel-runtime/core-js/object/create\\")[\\"default\\"];\\n\\nvar _Object$setPrototypeOf = require(\\"babel-runtime/core-js/object/set-prototype-of\\")[\\"default\\"];\\n\\nexports[\\"default\\"] = function (subClass, superClass) {\\n  if (typeof superClass !== \\"function\\" && superClass !== null) {\\n    throw new TypeError(\\"Super expression must either be null or a function, not \\" + typeof superClass);\\n  }\\n\\n  subClass.prototype = _Object$create(superClass && superClass.prototype, {\\n    constructor: {\\n      value: subClass,\\n      enumerable: false,\\n      writable: true,\\n      configurable: true\\n    }\\n  });\\n  if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\\n};\\n\\nexports.__esModule = true;\\n},{\\"babel-runtime/core-js/object/create\\":22,\\"babel-runtime/core-js/object/set-prototype-of\\":23}],26:[function(require,module,exports){\\n\\"use strict\\";\\n\\nexports[\\"default\\"] = function (obj) {\\n  return obj && obj.__esModule ? obj : {\\n    \\"default\\": obj\\n  };\\n};\\n\\nexports.__esModule = true;\\n},{}],27:[function(require,module,exports){\\nrequire(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n},{\\"../modules/core.get-iterator\\":63,\\"../modules/es6.string.iterator\\":66,\\"../modules/web.dom.iterable\\":67}],28:[function(require,module,exports){\\nvar $ = require(\'../../modules/$\');\\nmodule.exports = function create(P, D){\\n  return $.create(P, D);\\n};\\n},{\\"../../modules/$\\":50}],29:[function(require,module,exports){\\nrequire(\'../../modules/es6.object.set-prototype-of\');\\nmodule.exports = require(\'../../modules/$.core\').Object.setPrototypeOf;\\n},{\\"../../modules/$.core\\":35,\\"../../modules/es6.object.set-prototype-of\\":65}],30:[function(require,module,exports){\\nmodule.exports = function(it){\\n  if(typeof it != \'function\')throw TypeError(it + \' is not a function!\');\\n  return it;\\n};\\n},{}],31:[function(require,module,exports){\\nmodule.exports = function(){ /* empty */ };\\n},{}],32:[function(require,module,exports){\\nvar isObject = require(\'./$.is-object\');\\nmodule.exports = function(it){\\n  if(!isObject(it))throw TypeError(it + \' is not an object!\');\\n  return it;\\n};\\n},{\\"./$.is-object\\":45}],33:[function(require,module,exports){\\n// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n},{\\"./$.cof\\":34,\\"./$.wks\\":61}],34:[function(require,module,exports){\\nvar toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n},{}],35:[function(require,module,exports){\\nvar core = module.exports = {version: \'1.2.6\'};\\nif(typeof __e == \'number\')__e = core; // eslint-disable-line no-undef\\n},{}],36:[function(require,module,exports){\\n// optional / simple context binding\\nvar aFunction = require(\'./$.a-function\');\\nmodule.exports = function(fn, that, length){\\n  aFunction(fn);\\n  if(that === undefined)return fn;\\n  switch(length){\\n    case 1: return function(a){\\n      return fn.call(that, a);\\n    };\\n    case 2: return function(a, b){\\n      return fn.call(that, a, b);\\n    };\\n    case 3: return function(a, b, c){\\n      return fn.call(that, a, b, c);\\n    };\\n  }\\n  return function(/* ...args */){\\n    return fn.apply(that, arguments);\\n  };\\n};\\n},{\\"./$.a-function\\":30}],37:[function(require,module,exports){\\n// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n},{}],38:[function(require,module,exports){\\n// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n},{\\"./$.fails\\":40}],39:[function(require,module,exports){\\nvar global    = require(\'./$.global\')\\n  , core      = require(\'./$.core\')\\n  , ctx       = require(\'./$.ctx\')\\n  , PROTOTYPE = \'prototype\';\\n\\nvar $export = function(type, name, source){\\n  var IS_FORCED = type & $export.F\\n    , IS_GLOBAL = type & $export.G\\n    , IS_STATIC = type & $export.S\\n    , IS_PROTO  = type & $export.P\\n    , IS_BIND   = type & $export.B\\n    , IS_WRAP   = type & $export.W\\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\\n    , key, own, out;\\n  if(IS_GLOBAL)source = name;\\n  for(key in source){\\n    // contains in native\\n    own = !IS_FORCED && target && key in target;\\n    if(own && key in exports)continue;\\n    // export native or passed\\n    out = own ? target[key] : source[key];\\n    // prevent global pollution for namespaces\\n    exports[key] = IS_GLOBAL && typeof target[key] != \'function\' ? source[key]\\n    // bind timers to global for call from export context\\n    : IS_BIND && own ? ctx(out, global)\\n    // wrap global constructors for prevent change them in library\\n    : IS_WRAP && target[key] == out ? (function(C){\\n      var F = function(param){\\n        return this instanceof C ? new C(param) : C(param);\\n      };\\n      F[PROTOTYPE] = C[PROTOTYPE];\\n      return F;\\n    // make static versions for prototype methods\\n    })(out) : IS_PROTO && typeof out == \'function\' ? ctx(Function.call, out) : out;\\n    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\\n  }\\n};\\n// type bitmap\\n$export.F = 1;  // forced\\n$export.G = 2;  // global\\n$export.S = 4;  // static\\n$export.P = 8;  // proto\\n$export.B = 16; // bind\\n$export.W = 32; // wrap\\nmodule.exports = $export;\\n},{\\"./$.core\\":35,\\"./$.ctx\\":36,\\"./$.global\\":41}],40:[function(require,module,exports){\\nmodule.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n},{}],41:[function(require,module,exports){\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nvar global = module.exports = typeof window != \'undefined\' && window.Math == Math\\n  ? window : typeof self != \'undefined\' && self.Math == Math ? self : Function(\'return this\')();\\nif(typeof __g == \'number\')__g = global; // eslint-disable-line no-undef\\n},{}],42:[function(require,module,exports){\\nvar hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n},{}],43:[function(require,module,exports){\\nvar $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n},{\\"./$\\":50,\\"./$.descriptors\\":38,\\"./$.property-desc\\":52}],44:[function(require,module,exports){\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n},{\\"./$.cof\\":34}],45:[function(require,module,exports){\\nmodule.exports = function(it){\\n  return typeof it === \'object\' ? it !== null : typeof it === \'function\';\\n};\\n},{}],46:[function(require,module,exports){\\n\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n},{\\"./$\\":50,\\"./$.hide\\":43,\\"./$.property-desc\\":52,\\"./$.set-to-string-tag\\":55,\\"./$.wks\\":61}],47:[function(require,module,exports){\\n\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n},{\\"./$\\":50,\\"./$.export\\":39,\\"./$.has\\":42,\\"./$.hide\\":43,\\"./$.iter-create\\":46,\\"./$.iterators\\":49,\\"./$.library\\":51,\\"./$.redefine\\":53,\\"./$.set-to-string-tag\\":55,\\"./$.wks\\":61}],48:[function(require,module,exports){\\nmodule.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n},{}],49:[function(require,module,exports){\\nmodule.exports = {};\\n},{}],50:[function(require,module,exports){\\nvar $Object = Object;\\nmodule.exports = {\\n  create:     $Object.create,\\n  getProto:   $Object.getPrototypeOf,\\n  isEnum:     {}.propertyIsEnumerable,\\n  getDesc:    $Object.getOwnPropertyDescriptor,\\n  setDesc:    $Object.defineProperty,\\n  setDescs:   $Object.defineProperties,\\n  getKeys:    $Object.keys,\\n  getNames:   $Object.getOwnPropertyNames,\\n  getSymbols: $Object.getOwnPropertySymbols,\\n  each:       [].forEach\\n};\\n},{}],51:[function(require,module,exports){\\nmodule.exports = true;\\n},{}],52:[function(require,module,exports){\\nmodule.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n},{}],53:[function(require,module,exports){\\nmodule.exports = require(\'./$.hide\');\\n},{\\"./$.hide\\":43}],54:[function(require,module,exports){\\n// Works with __proto__ only. Old v8 can\'t work with null proto objects.\\n/* eslint-disable no-proto */\\nvar getDesc  = require(\'./$\').getDesc\\n  , isObject = require(\'./$.is-object\')\\n  , anObject = require(\'./$.an-object\');\\nvar check = function(O, proto){\\n  anObject(O);\\n  if(!isObject(proto) && proto !== null)throw TypeError(proto + \\": can\'t set as prototype!\\");\\n};\\nmodule.exports = {\\n  set: Object.setPrototypeOf || (\'__proto__\' in {} ? // eslint-disable-line\\n    function(test, buggy, set){\\n      try {\\n        set = require(\'./$.ctx\')(Function.call, getDesc(Object.prototype, \'__proto__\').set, 2);\\n        set(test, []);\\n        buggy = !(test instanceof Array);\\n      } catch(e){ buggy = true; }\\n      return function setPrototypeOf(O, proto){\\n        check(O, proto);\\n        if(buggy)O.__proto__ = proto;\\n        else set(O, proto);\\n        return O;\\n      };\\n    }({}, false) : undefined),\\n  check: check\\n};\\n},{\\"./$\\":50,\\"./$.an-object\\":32,\\"./$.ctx\\":36,\\"./$.is-object\\":45}],55:[function(require,module,exports){\\nvar def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n},{\\"./$\\":50,\\"./$.has\\":42,\\"./$.wks\\":61}],56:[function(require,module,exports){\\nvar global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n},{\\"./$.global\\":41}],57:[function(require,module,exports){\\nvar toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n},{\\"./$.defined\\":37,\\"./$.to-integer\\":58}],58:[function(require,module,exports){\\n// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n},{}],59:[function(require,module,exports){\\n// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n},{\\"./$.defined\\":37,\\"./$.iobject\\":44}],60:[function(require,module,exports){\\nvar id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n},{}],61:[function(require,module,exports){\\nvar store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n},{\\"./$.global\\":41,\\"./$.shared\\":56,\\"./$.uid\\":60}],62:[function(require,module,exports){\\nvar classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n},{\\"./$.classof\\":33,\\"./$.core\\":35,\\"./$.iterators\\":49,\\"./$.wks\\":61}],63:[function(require,module,exports){\\nvar anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n},{\\"./$.an-object\\":32,\\"./$.core\\":35,\\"./core.get-iterator-method\\":62}],64:[function(require,module,exports){\\n\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n},{\\"./$.add-to-unscopables\\":31,\\"./$.iter-define\\":47,\\"./$.iter-step\\":48,\\"./$.iterators\\":49,\\"./$.to-iobject\\":59}],65:[function(require,module,exports){\\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\\nvar $export = require(\'./$.export\');\\n$export($export.S, \'Object\', {setPrototypeOf: require(\'./$.set-proto\').set});\\n},{\\"./$.export\\":39,\\"./$.set-proto\\":54}],66:[function(require,module,exports){\\n\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n},{\\"./$.iter-define\\":47,\\"./$.string-at\\":57}],67:[function(require,module,exports){\\nrequire(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n},{\\"./$.iterators\\":49,\\"./es6.array.iterator\\":64}]},{},[1])(1)\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/~/babylon/index.js\\n ** module id = 258\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.evaluateTruthy = evaluateTruthy;\\nexports.evaluate = evaluate;\\n\\n// This file contains Babels metainterpreter that can evaluate static code.\\n\\n/* eslint eqeqeq: 0 */\\n\\n/*:: import type NodePath from \\"./index\\";*/var VALID_CALLEES = [\\"String\\", \\"Number\\", \\"Math\\"];\\nvar INVALID_METHODS = [\\"random\\"];\\n\\n/**\\n * Walk the input `node` and statically evaluate if it\'s truthy.\\n *\\n * Returning `true` when we\'re sure that the expression will evaluate to a\\n * truthy value, `false` if we\'re sure that it will evaluate to a falsy\\n * value and `undefined` if we aren\'t sure. Because of this please do not\\n * rely on coercion when using this method and check with === if it\'s false.\\n *\\n * For example do:\\n *\\n *   if (t.evaluateTruthy(node) === false) falsyLogic();\\n *\\n * **AND NOT**\\n *\\n *   if (!t.evaluateTruthy(node)) falsyLogic();\\n *\\n */\\n\\nfunction evaluateTruthy() /*: boolean*/ {\\n  var res = this.evaluate();\\n  if (res.confident) return !!res.value;\\n}\\n\\n/**\\n * Walk the input `node` and statically evaluate it.\\n *\\n * Returns an object in the form `{ confident, value }`. `confident` indicates\\n * whether or not we had to drop out of evaluating the expression because of\\n * hitting an unknown node that we couldn\'t confidently find the value of.\\n *\\n * Example:\\n *\\n *   t.evaluate(parse(\\"5 + 5\\")) // { confident: true, value: 10 }\\n *   t.evaluate(parse(\\"!true\\")) // { confident: true, value: false }\\n *   t.evaluate(parse(\\"foo + foo\\")) // { confident: false, value: undefined }\\n *\\n */\\n\\nfunction evaluate() /*: { confident: boolean; value: any }*/ {\\n  var confident = true;\\n  var deoptPath /*: ?NodePath*/ = undefined;\\n\\n  function deopt(path) {\\n    if (!confident) return;\\n    deoptPath = path;\\n    confident = false;\\n  }\\n\\n  var value = evaluate(this);\\n  if (!confident) value = undefined;\\n  return {\\n    confident: confident,\\n    deopt: deoptPath,\\n    value: value\\n  };\\n\\n  function evaluate(path) {\\n    if (!confident) return;\\n\\n    var node = path.node;\\n\\n    if (path.isSequenceExpression()) {\\n      var exprs = path.get(\\"expressions\\");\\n      return evaluate(exprs[exprs.length - 1]);\\n    }\\n\\n    if (path.isStringLiteral() || path.isNumericLiteral() || path.isBooleanLiteral()) {\\n      return node.value;\\n    }\\n\\n    if (path.isNullLiteral()) {\\n      return null;\\n    }\\n\\n    if (path.isTemplateLiteral()) {\\n      var str = \\"\\";\\n\\n      var i = 0;\\n      var exprs = path.get(\\"expressions\\");\\n\\n      for (var _iterator = (node.quasis /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n        var _ref;\\n\\n        if (_isArray) {\\n          if (_i >= _iterator.length) break;\\n          _ref = _iterator[_i++];\\n        } else {\\n          _i = _iterator.next();\\n          if (_i.done) break;\\n          _ref = _i.value;\\n        }\\n\\n        var elem = _ref;\\n\\n        // not confident, evaluated an expression we don\'t like\\n        if (!confident) break;\\n\\n        // add on cooked element\\n        str += elem.value.cooked;\\n\\n        // add on interpolated expression if it\'s present\\n        var expr = exprs[i++];\\n        if (expr) str += String(evaluate(expr));\\n      }\\n\\n      if (!confident) return;\\n      return str;\\n    }\\n\\n    if (path.isConditionalExpression()) {\\n      var testResult = evaluate(path.get(\\"test\\"));\\n      if (!confident) return;\\n      if (testResult) {\\n        return evaluate(path.get(\\"consequent\\"));\\n      } else {\\n        return evaluate(path.get(\\"alternate\\"));\\n      }\\n    }\\n\\n    if (path.isExpressionWrapper()) {\\n      // TypeCastExpression, ExpressionStatement etc\\n      return evaluate(path.get(\\"expression\\"));\\n    }\\n\\n    // \\"foo\\".length\\n    if (path.isMemberExpression() && !path.parentPath.isCallExpression({ callee: node })) {\\n      var property = path.get(\\"property\\");\\n      var object = path.get(\\"object\\");\\n\\n      if (object.isLiteral() && property.isIdentifier()) {\\n        var _value = object.node.value;\\n        var type = typeof _value;\\n        if (type === \\"number\\" || type === \\"string\\") {\\n          return _value[property.node.name];\\n        }\\n      }\\n    }\\n\\n    if (path.isReferencedIdentifier()) {\\n      var binding = path.scope.getBinding(node.name);\\n      if (binding && binding.hasValue) {\\n        return binding.value;\\n      } else {\\n        if (node.name === \\"undefined\\") {\\n          return undefined;\\n        } else if (node.name === \\"Infinity\\") {\\n          return Infinity;\\n        } else if (node.name === \\"NaN\\") {\\n          return NaN;\\n        }\\n\\n        var resolved = path.resolve();\\n        if (resolved === path) {\\n          return deopt(path);\\n        } else {\\n          return evaluate(resolved);\\n        }\\n      }\\n    }\\n\\n    if (path.isUnaryExpression({ prefix: true })) {\\n      if (node.operator === \\"void\\") {\\n        // we don\'t need to evaluate the argument to know what this will return\\n        return undefined;\\n      }\\n\\n      var argument = path.get(\\"argument\\");\\n      if (node.operator === \\"typeof\\" && (argument.isFunction() || argument.isClass())) {\\n        return \\"function\\";\\n      }\\n\\n      var arg = evaluate(argument);\\n      if (!confident) return;\\n      switch (node.operator) {\\n        case \\"!\\":\\n          return !arg;\\n        case \\"+\\":\\n          return +arg;\\n        case \\"-\\":\\n          return -arg;\\n        case \\"~\\":\\n          return ~arg;\\n        case \\"typeof\\":\\n          return typeof arg;\\n      }\\n    }\\n\\n    if (path.isArrayExpression()) {\\n      var arr = [];\\n      var elems /*: Array<NodePath>*/ = path.get(\\"elements\\");\\n      for (var _iterator2 = elems, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n        var _ref2;\\n\\n        if (_isArray2) {\\n          if (_i2 >= _iterator2.length) break;\\n          _ref2 = _iterator2[_i2++];\\n        } else {\\n          _i2 = _iterator2.next();\\n          if (_i2.done) break;\\n          _ref2 = _i2.value;\\n        }\\n\\n        var elem = _ref2;\\n\\n        elem = elem.evaluate();\\n\\n        if (elem.confident) {\\n          arr.push(elem.value);\\n        } else {\\n          return deopt(elem);\\n        }\\n      }\\n      return arr;\\n    }\\n\\n    if (path.isObjectExpression()) {\\n      // todo\\n    }\\n\\n    if (path.isLogicalExpression()) {\\n      // If we are confident that one side of an && is false, or the left\\n      // side of an || is true, we can be confident about the entire expression\\n      var wasConfident = confident;\\n      var left = evaluate(path.get(\\"left\\"));\\n      var leftConfident = confident;\\n      confident = wasConfident;\\n      var right = evaluate(path.get(\\"right\\"));\\n      var rightConfident = confident;\\n      confident = leftConfident && rightConfident;\\n\\n      switch (node.operator) {\\n        case \\"||\\":\\n          // TODO consider having a \\"truthy type\\" that doesn\'t bail on\\n          // left uncertainity but can still evaluate to truthy.\\n          if (left && leftConfident) {\\n            confident = true;\\n            return left;\\n          }\\n\\n          if (!confident) return;\\n\\n          return left || right;\\n        case \\"&&\\":\\n          if (!left && leftConfident || !right && rightConfident) {\\n            confident = true;\\n          }\\n\\n          if (!confident) return;\\n\\n          return left && right;\\n      }\\n    }\\n\\n    if (path.isBinaryExpression()) {\\n      var left = evaluate(path.get(\\"left\\"));\\n      if (!confident) return;\\n      var right = evaluate(path.get(\\"right\\"));\\n      if (!confident) return;\\n\\n      switch (node.operator) {\\n        case \\"-\\":\\n          return left - right;\\n        case \\"+\\":\\n          return left + right;\\n        case \\"/\\":\\n          return left / right;\\n        case \\"*\\":\\n          return left * right;\\n        case \\"%\\":\\n          return left % right;\\n        case \\"**\\":\\n          return Math.pow(left, right);\\n        case \\"<\\":\\n          return left < right;\\n        case \\">\\":\\n          return left > right;\\n        case \\"<=\\":\\n          return left <= right;\\n        case \\">=\\":\\n          return left >= right;\\n        case \\"==\\":\\n          return left == right;\\n        case \\"!=\\":\\n          return left != right;\\n        case \\"===\\":\\n          return left === right;\\n        case \\"!==\\":\\n          return left !== right;\\n        case \\"|\\":\\n          return left | right;\\n        case \\"&\\":\\n          return left & right;\\n        case \\"^\\":\\n          return left ^ right;\\n        case \\"<<\\":\\n          return left << right;\\n        case \\">>\\":\\n          return left >> right;\\n        case \\">>>\\":\\n          return left >>> right;\\n      }\\n    }\\n\\n    if (path.isCallExpression()) {\\n      var callee = path.get(\\"callee\\");\\n      var context = undefined;\\n      var func = undefined;\\n\\n      // Number(1);\\n      if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name, true) && VALID_CALLEES.indexOf(callee.node.name) >= 0) {\\n        func = global[node.callee.name];\\n      }\\n\\n      if (callee.isMemberExpression()) {\\n        var object = callee.get(\\"object\\");\\n        var property = callee.get(\\"property\\");\\n\\n        // Math.min(1, 2)\\n        if (object.isIdentifier() && property.isIdentifier() && VALID_CALLEES.indexOf(object.node.name) >= 0 && INVALID_METHODS.indexOf(property.node.name) < 0) {\\n          context = global[object.node.name];\\n          func = context[property.node.name];\\n        }\\n\\n        // \\"abc\\".charCodeAt(4)\\n        if (object.isLiteral() && property.isIdentifier()) {\\n          var type = typeof object.node.value;\\n          if (type === \\"string\\" || type === \\"number\\") {\\n            context = object.node.value;\\n            func = context[property.node.name];\\n          }\\n        }\\n      }\\n\\n      if (func) {\\n        var args = path.get(\\"arguments\\").map(evaluate);\\n        if (!confident) return;\\n\\n        return func.apply(context, args);\\n      }\\n    }\\n\\n    deopt(path);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/evaluation.js\\n ** module id = 259\\n ** module chunks = 0\\n **/","// This file contains methods that convert the path node into another node or some other type of data.\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.toComputedKey = toComputedKey;\\nexports.ensureBlock = ensureBlock;\\nexports.arrowFunctionToShadowed = arrowFunctionToShadowed;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction toComputedKey() /*: Object*/ {\\n  var node = this.node;\\n\\n  var key = undefined;\\n  if (this.isMemberExpression()) {\\n    key = node.property;\\n  } else if (this.isProperty() || this.isMethod()) {\\n    key = node.key;\\n  } else {\\n    throw new ReferenceError(\\"todo\\");\\n  }\\n\\n  if (!node.computed) {\\n    if (t.isIdentifier(key)) key = t.stringLiteral(key.name);\\n  }\\n\\n  return key;\\n}\\n\\nfunction ensureBlock() {\\n  return t.ensureBlock(this.node);\\n}\\n\\nfunction arrowFunctionToShadowed() {\\n  // todo: maybe error\\n  if (!this.isArrowFunctionExpression()) return;\\n\\n  this.ensureBlock();\\n\\n  var node = this.node;\\n\\n  node.expression = false;\\n  node.type = \\"FunctionExpression\\";\\n  node.shadow = node.shadow || true;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/conversion.js\\n ** module id = 260\\n ** module chunks = 0\\n **/","// This file contains methods responsible for introspecting the current path for certain values.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.matchesPattern = matchesPattern;\\nexports.has = has;\\nexports.isStatic = isStatic;\\nexports.isnt = isnt;\\nexports.equals = equals;\\nexports.isNodeType = isNodeType;\\nexports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression;\\nexports.isCompletionRecord = isCompletionRecord;\\nexports.isStatementOrBlock = isStatementOrBlock;\\nexports.referencesImport = referencesImport;\\nexports.getSource = getSource;\\nexports.willIMaybeExecuteBefore = willIMaybeExecuteBefore;\\nexports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo;\\nexports._guessExecutionStatusRelativeToDifferentFunctions = _guessExecutionStatusRelativeToDifferentFunctions;\\nexports.resolve = resolve;\\nexports._resolve = _resolve;\\n\\nvar _lodashCollectionIncludes = require(\\"lodash/collection/includes\\");\\n\\nvar _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Match the current node if it matches the provided `pattern`.\\n *\\n * For example, given the match `React.createClass` it would match the\\n * parsed nodes of `React.createClass` and `React[\\"createClass\\"]`.\\n */\\n\\n/*:: import type NodePath from \\"./index\\";*/\\nfunction matchesPattern(pattern /*: string*/, allowPartial /*:: ?: boolean*/) /*: boolean*/ {\\n  // not a member expression\\n  if (!this.isMemberExpression()) return false;\\n\\n  var parts = pattern.split(\\".\\");\\n  var search = [this.node];\\n  var i = 0;\\n\\n  function matches(name) {\\n    var part = parts[i];\\n    return part === \\"*\\" || name === part;\\n  }\\n\\n  while (search.length) {\\n    var node = search.shift();\\n\\n    if (allowPartial && i === parts.length) {\\n      return true;\\n    }\\n\\n    if (t.isIdentifier(node)) {\\n      // this part doesn\'t match\\n      if (!matches(node.name)) return false;\\n    } else if (t.isLiteral(node)) {\\n      // this part doesn\'t match\\n      if (!matches(node.value)) return false;\\n    } else if (t.isMemberExpression(node)) {\\n      if (node.computed && !t.isLiteral(node.property)) {\\n        // we can\'t deal with this\\n        return false;\\n      } else {\\n        search.unshift(node.property);\\n        search.unshift(node.object);\\n        continue;\\n      }\\n    } else if (t.isThisExpression(node)) {\\n      if (!matches(\\"this\\")) return false;\\n    } else {\\n      // we can\'t deal with this\\n      return false;\\n    }\\n\\n    // too many parts\\n    if (++i > parts.length) {\\n      return false;\\n    }\\n  }\\n\\n  return i === parts.length;\\n}\\n\\n/**\\n * Check whether we have the input `key`. If the `key` references an array then we check\\n * if the array has any items, otherwise we just check if it\'s falsy.\\n */\\n\\nfunction has(key) /*: boolean*/ {\\n  var val = this.node && this.node[key];\\n  if (val && Array.isArray(val)) {\\n    return !!val.length;\\n  } else {\\n    return !!val;\\n  }\\n}\\n\\n/**\\n * Description\\n */\\n\\nfunction isStatic() {\\n  return this.scope.isStatic(this.node);\\n}\\n\\n/**\\n * Alias of `has`.\\n */\\n\\nvar is = has;\\n\\nexports.is = is;\\n/**\\n * Opposite of `has`.\\n */\\n\\nfunction isnt(key) /*: boolean*/ {\\n  return !this.has(key);\\n}\\n\\n/**\\n * Check whether the path node `key` strict equals `value`.\\n */\\n\\nfunction equals(key, value) /*: boolean*/ {\\n  return this.node[key] === value;\\n}\\n\\n/**\\n * Check the type against our stored internal type of the node. This is handy when a node has\\n * been removed yet we still internally know the type and need it to calculate node replacement.\\n */\\n\\nfunction isNodeType(type /*: string*/) /*: boolean*/ {\\n  return t.isType(this.type, type);\\n}\\n\\n/**\\n * This checks whether or now we\'re in one of the following positions:\\n *\\n *   for (KEY in right);\\n *   for (KEY;;);\\n *\\n * This is because these spots allow VariableDeclarations AND normal expressions so we need\\n * to tell the path replacement that it\'s ok to replace this with an expression.\\n */\\n\\nfunction canHaveVariableDeclarationOrExpression() {\\n  return (this.key === \\"init\\" || this.key === \\"left\\") && this.parentPath.isFor();\\n}\\n\\n/**\\n * Check whether the current path references a completion record\\n */\\n\\nfunction isCompletionRecord(allowInsideFunction /*:: ?*/) {\\n  var path = this;\\n  var first = true;\\n\\n  do {\\n    var container = path.container;\\n\\n    // we\'re in a function so can\'t be a completion record\\n    if (path.isFunction() && !first) {\\n      return !!allowInsideFunction;\\n    }\\n\\n    first = false;\\n\\n    // check to see if we\'re the last item in the container and if we are\\n    // we\'re a completion record!\\n    if (Array.isArray(container) && path.key !== container.length - 1) {\\n      return false;\\n    }\\n  } while ((path = path.parentPath) && !path.isProgram());\\n\\n  return true;\\n}\\n\\n/**\\n * Check whether or not the current `key` allows either a single statement or block statement\\n * so we can explode it if necessary.\\n */\\n\\nfunction isStatementOrBlock() {\\n  if (this.parentPath.isLabeledStatement() || t.isBlockStatement(this.container)) {\\n    return false;\\n  } else {\\n    return _lodashCollectionIncludes2[\\"default\\"](t.STATEMENT_OR_BLOCK_KEYS, this.key);\\n  }\\n}\\n\\n/**\\n * Check if the currently assigned path references the `importName` of `moduleSource`.\\n */\\n\\nfunction referencesImport(moduleSource, importName) {\\n  if (!this.isReferencedIdentifier()) return false;\\n\\n  var binding = this.scope.getBinding(this.node.name);\\n  if (!binding || binding.kind !== \\"module\\") return false;\\n\\n  var path = binding.path;\\n  var parent = path.parentPath;\\n  if (!parent.isImportDeclaration()) return false;\\n\\n  // check moduleSource\\n  if (parent.node.source.value === moduleSource) {\\n    if (!importName) return true;\\n  } else {\\n    return false;\\n  }\\n\\n  if (path.isImportDefaultSpecifier() && importName === \\"default\\") {\\n    return true;\\n  }\\n\\n  if (path.isImportNamespaceSpecifier() && importName === \\"*\\") {\\n    return true;\\n  }\\n\\n  if (path.isImportSpecifier() && path.node.imported.name === importName) {\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\n/**\\n * Get the source code associated with this node.\\n */\\n\\nfunction getSource() {\\n  var node = this.node;\\n  if (node.end) {\\n    return this.hub.file.code.slice(node.start, node.end);\\n  } else {\\n    return \\"\\";\\n  }\\n}\\n\\nfunction willIMaybeExecuteBefore(target) {\\n  return this._guessExecutionStatusRelativeTo(target) !== \\"after\\";\\n}\\n\\n/**\\n * Given a `target` check the execution status of it relative to the current path.\\n *\\n * \\"Execution status\\" simply refers to where or not we **think** this will execuete\\n * before or after the input `target` element.\\n */\\n\\nfunction _guessExecutionStatusRelativeTo(target) {\\n  // check if the two paths are in different functions, we can\'t track execution of these\\n  var targetFuncParent = target.scope.getFunctionParent();\\n  var selfFuncParent = this.scope.getFunctionParent();\\n\\n  // here we check the `node` equality as sometimes we may have different paths for the\\n  // same node due to path thrashing\\n  if (targetFuncParent.node !== selfFuncParent.node) {\\n    var _status = this._guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent);\\n    if (_status) {\\n      return _status;\\n    } else {\\n      target = targetFuncParent.path;\\n    }\\n  }\\n\\n  var targetPaths = target.getAncestry();\\n  if (targetPaths.indexOf(this) >= 0) return \\"after\\";\\n\\n  var selfPaths = this.getAncestry();\\n\\n  // get ancestor where the branches intersect\\n  var commonPath = undefined;\\n  var targetIndex = undefined;\\n  var selfIndex = undefined;\\n  for (selfIndex = 0; selfIndex < selfPaths.length; selfIndex++) {\\n    var selfPath = selfPaths[selfIndex];\\n    targetIndex = targetPaths.indexOf(selfPath);\\n    if (targetIndex >= 0) {\\n      commonPath = selfPath;\\n      break;\\n    }\\n  }\\n  if (!commonPath) {\\n    return \\"before\\";\\n  }\\n\\n  // get the relationship paths that associate these nodes to their common ancestor\\n  var targetRelationship = targetPaths[targetIndex - 1];\\n  var selfRelationship = selfPaths[selfIndex - 1];\\n  if (!targetRelationship || !selfRelationship) {\\n    return \\"before\\";\\n  }\\n\\n  // container list so let\'s see which one is after the other\\n  if (targetRelationship.listKey && targetRelationship.container === selfRelationship.container) {\\n    return targetRelationship.key > selfRelationship.key ? \\"before\\" : \\"after\\";\\n  }\\n\\n  // otherwise we\'re associated by a parent node, check which key comes before the other\\n  var targetKeyPosition = t.VISITOR_KEYS[targetRelationship.type].indexOf(targetRelationship.key);\\n  var selfKeyPosition = t.VISITOR_KEYS[selfRelationship.type].indexOf(selfRelationship.key);\\n  return targetKeyPosition > selfKeyPosition ? \\"before\\" : \\"after\\";\\n}\\n\\nfunction _guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent) {\\n  var targetFuncPath = targetFuncParent.path;\\n  if (!targetFuncPath.isFunctionDeclaration()) return;\\n\\n  // so we\'re in a completely different function, if this is a function declaration\\n  // then we can be a bit smarter and handle cases where the function is either\\n  // a. not called at all (part of an export)\\n  // b. called directly\\n  var binding = targetFuncPath.scope.getBinding(targetFuncPath.node.id.name);\\n\\n  // no references!\\n  if (!binding.references) return \\"before\\";\\n\\n  var referencePaths /*: Array<NodePath>*/ = binding.referencePaths;\\n\\n  // verify that all of the references are calls\\n  for (var _iterator = referencePaths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var path = _ref;\\n\\n    if (path.key !== \\"callee\\" || !path.parentPath.isCallExpression()) {\\n      return;\\n    }\\n  }\\n\\n  var allStatus = undefined;\\n\\n  // verify that all the calls have the same execution status\\n  for (var _iterator2 = referencePaths, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n    var _ref2;\\n\\n    if (_isArray2) {\\n      if (_i2 >= _iterator2.length) break;\\n      _ref2 = _iterator2[_i2++];\\n    } else {\\n      _i2 = _iterator2.next();\\n      if (_i2.done) break;\\n      _ref2 = _i2.value;\\n    }\\n\\n    var path = _ref2;\\n\\n    // if a reference is a child of the function we\'re checking against then we can\\n    // safelty ignore it\\n    var childOfFunction = !!path.find(function (path) {\\n      return path.node === targetFuncPath.node;\\n    });\\n    if (childOfFunction) continue;\\n\\n    var _status2 = this._guessExecutionStatusRelativeTo(path);\\n\\n    if (allStatus) {\\n      if (allStatus !== _status2) return;\\n    } else {\\n      allStatus = _status2;\\n    }\\n  }\\n\\n  return allStatus;\\n}\\n\\n/**\\n * Resolve a \\"pointer\\" `NodePath` to it\'s absolute path.\\n */\\n\\nfunction resolve(dangerous, resolved) {\\n  return this._resolve(dangerous, resolved) || this;\\n}\\n\\nfunction _resolve(dangerous, /*:: ?*/resolved /*:: ?*/) /*: ?NodePath*/ {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  // detect infinite recursion\\n  // todo: possibly have a max length on this just to be safe\\n  if (resolved && resolved.indexOf(this) >= 0) return;\\n\\n  // we store all the paths we\'ve \\"resolved\\" in this array to prevent infinite recursion\\n  resolved = resolved || [];\\n  resolved.push(this);\\n\\n  if (this.isVariableDeclarator()) {\\n    if (this.get(\\"id\\").isIdentifier()) {\\n      return this.get(\\"init\\").resolve(dangerous, resolved);\\n    } else {\\n      // otherwise it\'s a request for a pattern and that\'s a bit more tricky\\n    }\\n  } else if (this.isReferencedIdentifier()) {\\n      var binding = this.scope.getBinding(this.node.name);\\n      if (!binding) return;\\n\\n      // reassigned so we can\'t really resolve it\\n      if (!binding.constant) return;\\n\\n      // todo - lookup module in dependency graph\\n      if (binding.kind === \\"module\\") return;\\n\\n      if (binding.path !== this) {\\n        var _ret = (function () {\\n          var ret = binding.path.resolve(dangerous, resolved);\\n          // If the identifier resolves to parent node then we can\'t really resolve it.\\n          if (_this.find(function (parent) {\\n            return parent.node === ret.node;\\n          })) return {\\n              v: undefined\\n            };\\n          return {\\n            v: ret\\n          };\\n        })();\\n\\n        // istanbul ignore next\\n        if (typeof _ret === \\"object\\") return _ret.v;\\n      }\\n    } else if (this.isTypeCastExpression()) {\\n      return this.get(\\"expression\\").resolve(dangerous, resolved);\\n    } else if (dangerous && this.isMemberExpression()) {\\n      // this is dangerous, as non-direct target assignments will mutate it\'s state\\n      // making this resolution inaccurate\\n\\n      var targetKey = this.toComputedKey();\\n      if (!t.isLiteral(targetKey)) return;\\n\\n      var targetName = targetKey.value;\\n\\n      var target = this.get(\\"object\\").resolve(dangerous, resolved);\\n\\n      if (target.isObjectExpression()) {\\n        var props = target.get(\\"properties\\");\\n        for (var _iterator3 = (props /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n          var _ref3;\\n\\n          if (_isArray3) {\\n            if (_i3 >= _iterator3.length) break;\\n            _ref3 = _iterator3[_i3++];\\n          } else {\\n            _i3 = _iterator3.next();\\n            if (_i3.done) break;\\n            _ref3 = _i3.value;\\n          }\\n\\n          var prop = _ref3;\\n\\n          if (!prop.isProperty()) continue;\\n\\n          var key = prop.get(\\"key\\");\\n\\n          // { foo: obj }\\n          var match = prop.isnt(\\"computed\\") && key.isIdentifier({ name: targetName });\\n\\n          // { \\"foo\\": \\"obj\\" } or { [\\"foo\\"]: \\"obj\\" }\\n          match = match || key.isLiteral({ value: targetName });\\n\\n          if (match) return prop.get(\\"value\\").resolve(dangerous, resolved);\\n        }\\n      } else if (target.isArrayExpression() && !isNaN(+targetName)) {\\n        var elems = target.get(\\"elements\\");\\n        var elem = elems[targetName];\\n        if (elem) return elem.resolve(dangerous, resolved);\\n      }\\n    }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/introspection.js\\n ** module id = 261\\n ** module chunks = 0\\n **/","// This file contains methods responsible for maintaining a TraversalContext.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.call = call;\\nexports._call = _call;\\nexports.isBlacklisted = isBlacklisted;\\nexports.visit = visit;\\nexports.skip = skip;\\nexports.skipKey = skipKey;\\nexports.stop = stop;\\nexports.setScope = setScope;\\nexports.setContext = setContext;\\nexports.resync = resync;\\nexports._resyncParent = _resyncParent;\\nexports._resyncKey = _resyncKey;\\nexports._resyncList = _resyncList;\\nexports._resyncRemoved = _resyncRemoved;\\nexports.popContext = popContext;\\nexports.pushContext = pushContext;\\nexports.setup = setup;\\nexports.setKey = setKey;\\nexports.requeue = requeue;\\n\\nvar _index = require(\\"../index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nfunction call(key) /*: boolean*/ {\\n  var opts = this.opts;\\n\\n  this.debug(function () {\\n    return key;\\n  });\\n\\n  if (this.node) {\\n    if (this._call(opts[key])) return true;\\n  }\\n\\n  if (this.node) {\\n    return this._call(opts[this.node.type] && opts[this.node.type][key]);\\n  }\\n\\n  return false;\\n}\\n\\nfunction _call(fns /*:: ?: Array<Function>*/) /*: boolean*/ {\\n  if (!fns) return false;\\n\\n  for (var _iterator = fns, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var fn = _ref;\\n\\n    if (!fn) continue;\\n\\n    var node = this.node;\\n    if (!node) return true;\\n\\n    var ret = fn.call(this.state, this, this.state);\\n    if (ret) throw new Error(\\"Unexpected return value from visitor method \\" + fn);\\n\\n    // node has been replaced, it will have been requeued\\n    if (this.node !== node) return true;\\n\\n    if (this.shouldStop || this.shouldSkip || this.removed) return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction isBlacklisted() /*: boolean*/ {\\n  var blacklist = this.opts.blacklist;\\n  return blacklist && blacklist.indexOf(this.node.type) > -1;\\n}\\n\\nfunction visit() /*: boolean*/ {\\n  if (!this.node) {\\n    return false;\\n  }\\n\\n  if (this.isBlacklisted()) {\\n    return false;\\n  }\\n\\n  if (this.opts.shouldSkip && this.opts.shouldSkip(this)) {\\n    return false;\\n  }\\n\\n  if (this.call(\\"enter\\") || this.shouldSkip) {\\n    this.debug(function () {\\n      return \\"Skip...\\";\\n    });\\n    return this.shouldStop;\\n  }\\n\\n  this.debug(function () {\\n    return \\"Recursing into...\\";\\n  });\\n  _index2[\\"default\\"].node(this.node, this.opts, this.scope, this.state, this, this.skipKeys);\\n\\n  this.call(\\"exit\\");\\n\\n  return this.shouldStop;\\n}\\n\\nfunction skip() {\\n  this.shouldSkip = true;\\n}\\n\\nfunction skipKey(key) {\\n  this.skipKeys[key] = true;\\n}\\n\\nfunction stop() {\\n  this.shouldStop = true;\\n  this.shouldSkip = true;\\n}\\n\\nfunction setScope() {\\n  if (this.opts && this.opts.noScope) return;\\n\\n  var target = this.context && this.context.scope;\\n\\n  if (!target) {\\n    var path = this.parentPath;\\n    while (path && !target) {\\n      if (path.opts && path.opts.noScope) return;\\n\\n      target = path.scope;\\n      path = path.parentPath;\\n    }\\n  }\\n\\n  this.scope = this.getScope(target);\\n  if (this.scope) this.scope.init();\\n}\\n\\nfunction setContext(context) {\\n  this.shouldSkip = false;\\n  this.shouldStop = false;\\n  this.removed = false;\\n  this.skipKeys = {};\\n\\n  if (context) {\\n    this.context = context;\\n    this.state = context.state;\\n    this.opts = context.opts;\\n  }\\n\\n  this.setScope();\\n\\n  return this;\\n}\\n\\n/**\\n * Here we resync the node paths `key` and `container`. If they\'ve changed according\\n * to what we have stored internally then we attempt to resync by crawling and looking\\n * for the new values.\\n */\\n\\nfunction resync() {\\n  if (this.removed) return;\\n\\n  this._resyncParent();\\n  this._resyncList();\\n  this._resyncKey();\\n  //this._resyncRemoved();\\n}\\n\\nfunction _resyncParent() {\\n  if (this.parentPath) {\\n    this.parent = this.parentPath.node;\\n  }\\n}\\n\\nfunction _resyncKey() {\\n  if (!this.container) return;\\n\\n  if (this.node === this.container[this.key]) return;\\n\\n  // grrr, path key is out of sync. this is likely due to a modification to the AST\\n  // not done through our path APIs\\n\\n  if (Array.isArray(this.container)) {\\n    for (var i = 0; i < this.container.length; i++) {\\n      if (this.container[i] === this.node) {\\n        return this.setKey(i);\\n      }\\n    }\\n  } else {\\n    for (var key in this.container) {\\n      if (this.container[key] === this.node) {\\n        return this.setKey(key);\\n      }\\n    }\\n  }\\n\\n  // ¯\\\\_(ツ)_/¯ who knows where it\'s gone lol\\n  this.key = null;\\n}\\n\\nfunction _resyncList() {\\n  if (!this.parent || !this.inList) return;\\n\\n  var newContainer = this.parent[this.listKey];\\n  if (this.container === newContainer) return;\\n\\n  // container is out of sync. this is likely the result of it being reassigned\\n  this.container = newContainer || null;\\n}\\n\\nfunction _resyncRemoved() {\\n  if (this.key == null || !this.container || this.container[this.key] !== this.node) {\\n    this._markRemoved();\\n  }\\n}\\n\\nfunction popContext() {\\n  this.contexts.pop();\\n  this.setContext(this.contexts[this.contexts.length - 1]);\\n}\\n\\nfunction pushContext(context) {\\n  this.contexts.push(context);\\n  this.setContext(context);\\n}\\n\\nfunction setup(parentPath, container, listKey, key) {\\n  this.inList = !!listKey;\\n  this.listKey = listKey;\\n  this.parentKey = listKey || key;\\n  this.container = container;\\n\\n  this.parentPath = parentPath || this.parentPath;\\n  this.setKey(key);\\n}\\n\\nfunction setKey(key) {\\n  this.key = key;\\n  this.node = this.container[this.key];\\n  this.type = this.node && this.node.type;\\n}\\n\\nfunction requeue() {\\n  var path = arguments.length <= 0 || arguments[0] === undefined ? this : arguments[0];\\n\\n  if (path.removed) return;\\n\\n  for (var _iterator2 = this.contexts, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n    var _ref2;\\n\\n    if (_isArray2) {\\n      if (_i2 >= _iterator2.length) break;\\n      _ref2 = _iterator2[_i2++];\\n    } else {\\n      _i2 = _iterator2.next();\\n      if (_i2.done) break;\\n      _ref2 = _i2.value;\\n    }\\n\\n    var context = _ref2;\\n\\n    context.maybeQueue(path);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/context.js\\n ** module id = 262\\n ** module chunks = 0\\n **/","// This file contains methods responsible for removing a node.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.remove = remove;\\nexports._callRemovalHooks = _callRemovalHooks;\\nexports._remove = _remove;\\nexports._markRemoved = _markRemoved;\\nexports._assertUnremoved = _assertUnremoved;\\n\\nvar _libRemovalHooks = require(\\"./lib/removal-hooks\\");\\n\\nfunction remove() {\\n  this._assertUnremoved();\\n\\n  this.resync();\\n\\n  if (this._callRemovalHooks()) {\\n    this._markRemoved();\\n    return;\\n  }\\n\\n  this.shareCommentsWithSiblings();\\n  this._remove();\\n  this._markRemoved();\\n}\\n\\nfunction _callRemovalHooks() {\\n  for (var _iterator = (_libRemovalHooks.hooks /*: Array<Function>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var fn = _ref;\\n\\n    if (fn(this, this.parentPath)) return true;\\n  }\\n}\\n\\nfunction _remove() {\\n  if (Array.isArray(this.container)) {\\n    this.container.splice(this.key, 1);\\n    this.updateSiblingKeys(this.key, -1);\\n  } else {\\n    this._replaceWith(null);\\n  }\\n}\\n\\nfunction _markRemoved() {\\n  this.shouldSkip = true;\\n  this.removed = true;\\n  this.node = null;\\n}\\n\\nfunction _assertUnremoved() {\\n  if (this.removed) {\\n    throw this.buildCodeFrameError(\\"NodePath has been removed so is read-only.\\");\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/removal.js\\n ** module id = 263\\n ** module chunks = 0\\n **/","// this file contains hooks that handle ancestry cleanup of parent nodes when removing children\\n\\n/**\\n * Pre hooks should be used for either rejecting removal or delegating removal\\n */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nvar hooks = [function (self, parent) {\\n  if (self.key === \\"body\\" && parent.isArrowFunctionExpression()) {\\n    self.replaceWith(self.scope.buildUndefinedNode());\\n    return true;\\n  }\\n}, function (self, parent) {\\n  var removeParent = false;\\n\\n  // while (NODE);\\n  // removing the test of a while/switch, we can either just remove it entirely *or* turn the `test` into `true`\\n  // unlikely that the latter will ever be what\'s wanted so we just remove the loop to avoid infinite recursion\\n  removeParent = removeParent || self.key === \\"test\\" && (parent.isWhile() || parent.isSwitchCase());\\n\\n  // export NODE;\\n  // just remove a declaration for an export as this is no longer valid\\n  removeParent = removeParent || self.key === \\"declaration\\" && parent.isExportDeclaration();\\n\\n  // label: NODE\\n  // stray labeled statement with no body\\n  removeParent = removeParent || self.key === \\"body\\" && parent.isLabeledStatement();\\n\\n  // let NODE;\\n  // remove an entire declaration if there are no declarators left\\n  removeParent = removeParent || self.listKey === \\"declarations\\" && parent.isVariableDeclaration() && parent.node.declarations.length === 1;\\n\\n  // NODE;\\n  // remove the entire expression statement if there\'s no expression\\n  removeParent = removeParent || self.key === \\"expression\\" && parent.isExpressionStatement();\\n\\n  if (removeParent) {\\n    parent.remove();\\n    return true;\\n  }\\n}, function (self, parent) {\\n  if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {\\n    // (node, NODE);\\n    // we\'ve just removed the second element of a sequence expression so let\'s turn that sequence\\n    // expression into a regular expression\\n    parent.replaceWith(parent.node.expressions[0]);\\n    return true;\\n  }\\n}, function (self, parent) {\\n  if (parent.isBinary()) {\\n    // left + NODE;\\n    // NODE + right;\\n    // we\'re in a binary expression, better remove it and replace it with the last expression\\n    if (self.key === \\"left\\") {\\n      parent.replaceWith(parent.node.right);\\n    } else {\\n      // key === \\"right\\"\\n      parent.replaceWith(parent.node.left);\\n    }\\n    return true;\\n  }\\n}];\\nexports.hooks = hooks;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/lib/removal-hooks.js\\n ** module id = 264\\n ** module chunks = 0\\n **/","// This file contains methods that modify the path/node in some ways.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.insertBefore = insertBefore;\\nexports._containerInsert = _containerInsert;\\nexports._containerInsertBefore = _containerInsertBefore;\\nexports._containerInsertAfter = _containerInsertAfter;\\nexports._maybePopFromStatements = _maybePopFromStatements;\\nexports.insertAfter = insertAfter;\\nexports.updateSiblingKeys = updateSiblingKeys;\\nexports._verifyNodeList = _verifyNodeList;\\nexports.unshiftContainer = unshiftContainer;\\nexports.pushContainer = pushContainer;\\nexports.hoist = hoist;\\n\\nvar _constants = require(\\"./constants\\");\\n\\nvar _libHoister = require(\\"./lib/hoister\\");\\n\\nvar _libHoister2 = _interopRequireDefault(_libHoister);\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Insert the provided nodes before the current one.\\n */\\n\\nfunction insertBefore(nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  if (this.parentPath.isExpressionStatement() || this.parentPath.isLabeledStatement()) {\\n    return this.parentPath.insertBefore(nodes);\\n  } else if (this.isNodeType(\\"Expression\\") || this.parentPath.isForStatement() && this.key === \\"init\\") {\\n    if (this.node) nodes.push(this.node);\\n    this.replaceExpressionWithStatements(nodes);\\n  } else {\\n    this._maybePopFromStatements(nodes);\\n    if (Array.isArray(this.container)) {\\n      return this._containerInsertBefore(nodes);\\n    } else if (this.isStatementOrBlock()) {\\n      if (this.node) nodes.push(this.node);\\n      this._replaceWith(t.blockStatement(nodes));\\n    } else {\\n      throw new Error(\\"We don\'t know what to do with this node type. We were previously a Statement but we can\'t fit in here?\\");\\n    }\\n  }\\n\\n  return [this];\\n}\\n\\nfunction _containerInsert(from, nodes) {\\n  this.updateSiblingKeys(from, nodes.length);\\n\\n  var paths = [];\\n\\n  for (var i = 0; i < nodes.length; i++) {\\n    var to = from + i;\\n    var node = nodes[i];\\n    this.container.splice(to, 0, node);\\n\\n    if (this.context) {\\n      var _path = this.context.create(this.parent, this.container, to, this.listKey);\\n      paths.push(_path);\\n    } else {\\n      paths.push(_index2[\\"default\\"].get({\\n        parentPath: this.parentPath,\\n        parent: this.parent,\\n        container: this.container,\\n        listKey: this.listKey,\\n        key: to\\n      }));\\n    }\\n  }\\n\\n  var contexts = this.contexts;\\n  var path = this;\\n  while (!contexts.length) {\\n    path = path.parentPath;\\n    contexts = path.contexts;\\n  }\\n\\n  for (var _iterator = paths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var _path2 = _ref;\\n\\n    _path2.setScope();\\n    _path2.debug(function () {\\n      return \\"Inserted.\\";\\n    });\\n\\n    for (var _iterator2 = contexts, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n      var _ref2;\\n\\n      if (_isArray2) {\\n        if (_i2 >= _iterator2.length) break;\\n        _ref2 = _iterator2[_i2++];\\n      } else {\\n        _i2 = _iterator2.next();\\n        if (_i2.done) break;\\n        _ref2 = _i2.value;\\n      }\\n\\n      var context = _ref2;\\n\\n      context.maybeQueue(_path2, true);\\n    }\\n  }\\n\\n  return paths;\\n}\\n\\nfunction _containerInsertBefore(nodes) {\\n  return this._containerInsert(this.key, nodes);\\n}\\n\\nfunction _containerInsertAfter(nodes) {\\n  return this._containerInsert(this.key + 1, nodes);\\n}\\n\\nfunction _maybePopFromStatements(nodes) {\\n  var last = nodes[nodes.length - 1];\\n  var isIdentifier = t.isIdentifier(last) || t.isExpressionStatement(last) && t.isIdentifier(last.expression);\\n\\n  if (isIdentifier && !this.isCompletionRecord()) {\\n    nodes.pop();\\n  }\\n}\\n\\n/**\\n * Insert the provided nodes after the current one. When inserting nodes after an\\n * expression, ensure that the completion record is correct by pushing the current node.\\n */\\n\\nfunction insertAfter(nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  if (this.parentPath.isExpressionStatement() || this.parentPath.isLabeledStatement()) {\\n    return this.parentPath.insertAfter(nodes);\\n  } else if (this.isNodeType(\\"Expression\\") || this.parentPath.isForStatement() && this.key === \\"init\\") {\\n    if (this.node) {\\n      var temp = this.scope.generateDeclaredUidIdentifier();\\n      nodes.unshift(t.expressionStatement(t.assignmentExpression(\\"=\\", temp, this.node)));\\n      nodes.push(t.expressionStatement(temp));\\n    }\\n    this.replaceExpressionWithStatements(nodes);\\n  } else {\\n    this._maybePopFromStatements(nodes);\\n    if (Array.isArray(this.container)) {\\n      return this._containerInsertAfter(nodes);\\n    } else if (this.isStatementOrBlock()) {\\n      if (this.node) nodes.unshift(this.node);\\n      this._replaceWith(t.blockStatement(nodes));\\n    } else {\\n      throw new Error(\\"We don\'t know what to do with this node type. We were previously a Statement but we can\'t fit in here?\\");\\n    }\\n  }\\n\\n  return [this];\\n}\\n\\n/**\\n * Update all sibling node paths after `fromIndex` by `incrementBy`.\\n */\\n\\nfunction updateSiblingKeys(fromIndex, incrementBy) {\\n  if (!this.parent) return;\\n\\n  var paths = this.parent[_constants.PATH_CACHE_KEY];\\n  for (var i = 0; i < paths.length; i++) {\\n    var path = paths[i];\\n    if (path.key >= fromIndex) {\\n      path.key += incrementBy;\\n    }\\n  }\\n}\\n\\nfunction _verifyNodeList(nodes) {\\n  if (!nodes) {\\n    return [];\\n  }\\n\\n  if (nodes.constructor !== Array) {\\n    nodes = [nodes];\\n  }\\n\\n  for (var i = 0; i < nodes.length; i++) {\\n    var node = nodes[i];\\n    var msg = undefined;\\n\\n    if (!node) {\\n      msg = \\"has falsy node\\";\\n    } else if (typeof node !== \\"object\\") {\\n      msg = \\"contains a non-object node\\";\\n    } else if (!node.type) {\\n      msg = \\"without a type\\";\\n    } else if (node instanceof _index2[\\"default\\"]) {\\n      msg = \\"has a NodePath when it expected a raw object\\";\\n    }\\n\\n    if (msg) {\\n      var type = Array.isArray(node) ? \\"array\\" : typeof node;\\n      throw new Error(\\"Node list \\" + msg + \\" with the index of \\" + i + \\" and type of \\" + type);\\n    }\\n  }\\n\\n  return nodes;\\n}\\n\\nfunction unshiftContainer(listKey, nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  // get the first path and insert our nodes before it, if it doesn\'t exist then it\\n  // doesn\'t matter, our nodes will be inserted anyway\\n  var path = _index2[\\"default\\"].get({\\n    parentPath: this,\\n    parent: this.node,\\n    container: this.node[listKey],\\n    listKey: listKey,\\n    key: 0\\n  });\\n\\n  return path.insertBefore(nodes);\\n}\\n\\nfunction pushContainer(listKey, nodes) {\\n  this._assertUnremoved();\\n\\n  nodes = this._verifyNodeList(nodes);\\n\\n  // get an invisible path that represents the last node + 1 and replace it with our\\n  // nodes, effectively inlining it\\n\\n  var container = this.node[listKey];\\n  var path = _index2[\\"default\\"].get({\\n    parentPath: this,\\n    parent: this.node,\\n    container: container,\\n    listKey: listKey,\\n    key: container.length\\n  });\\n\\n  return path.replaceWithMultiple(nodes);\\n}\\n\\n/**\\n * Hoist the current node to the highest scope possible and return a UID\\n * referencing it.\\n */\\n\\nfunction hoist() {\\n  var scope = arguments.length <= 0 || arguments[0] === undefined ? this.scope : arguments[0];\\n\\n  var hoister = new _libHoister2[\\"default\\"](this, scope);\\n  return hoister.run();\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/modification.js\\n ** module id = 265\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar referenceVisitor = {\\n  ReferencedIdentifier: function ReferencedIdentifier(path, state) {\\n    if (path.isJSXIdentifier() && _babelTypes.react.isCompatTag(path.node.name)) {\\n      return;\\n    }\\n\\n    // direct references that we need to track to hoist this to the highest scope we can\\n    var binding = path.scope.getBinding(path.node.name);\\n    if (!binding) return;\\n\\n    // this binding isn\'t accessible from the parent scope so we can safely ignore it\\n    // eg. it\'s in a closure etc\\n    if (binding !== state.scope.getBinding(path.node.name)) return;\\n\\n    if (binding.constant) {\\n      state.bindings[path.node.name] = binding;\\n    } else {\\n      for (var _iterator = (binding.constantViolations /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n        var _ref;\\n\\n        if (_isArray) {\\n          if (_i >= _iterator.length) break;\\n          _ref = _iterator[_i++];\\n        } else {\\n          _i = _iterator.next();\\n          if (_i.done) break;\\n          _ref = _i.value;\\n        }\\n\\n        var violationPath = _ref;\\n\\n        state.breakOnScopePaths = state.breakOnScopePaths.concat(violationPath.getAncestry());\\n      }\\n    }\\n  }\\n};\\n\\nvar PathHoister = (function () {\\n  function PathHoister(path, scope) {\\n    _classCallCheck(this, PathHoister);\\n\\n    this.breakOnScopePaths = [];\\n    this.bindings = {};\\n    this.scopes = [];\\n    this.scope = scope;\\n    this.path = path;\\n  }\\n\\n  PathHoister.prototype.isCompatibleScope = function isCompatibleScope(scope) {\\n    for (var key in this.bindings) {\\n      var binding = this.bindings[key];\\n      if (!scope.bindingIdentifierEquals(key, binding.identifier)) {\\n        return false;\\n      }\\n    }\\n\\n    return true;\\n  };\\n\\n  PathHoister.prototype.getCompatibleScopes = function getCompatibleScopes() {\\n    var scope = this.path.scope;\\n    do {\\n      if (this.isCompatibleScope(scope)) {\\n        this.scopes.push(scope);\\n      } else {\\n        break;\\n      }\\n\\n      if (this.breakOnScopePaths.indexOf(scope.path) >= 0) {\\n        break;\\n      }\\n    } while (scope = scope.parent);\\n  };\\n\\n  PathHoister.prototype.getAttachmentPath = function getAttachmentPath() {\\n    var scopes = this.scopes;\\n\\n    var scope = scopes.pop();\\n    if (!scope) return;\\n\\n    if (scope.path.isFunction()) {\\n      if (this.hasOwnParamBindings(scope)) {\\n        // should ignore this scope since it\'s ourselves\\n        if (this.scope === scope) return;\\n\\n        // needs to be attached to the body\\n        return scope.path.get(\\"body\\").get(\\"body\\")[0];\\n      } else {\\n        // doesn\'t need to be be attached to this scope\\n        return this.getNextScopeStatementParent();\\n      }\\n    } else if (scope.path.isProgram()) {\\n      return this.getNextScopeStatementParent();\\n    }\\n  };\\n\\n  PathHoister.prototype.getNextScopeStatementParent = function getNextScopeStatementParent() {\\n    var scope = this.scopes.pop();\\n    if (scope) return scope.path.getStatementParent();\\n  };\\n\\n  PathHoister.prototype.hasOwnParamBindings = function hasOwnParamBindings(scope) {\\n    for (var _name in this.bindings) {\\n      if (!scope.hasOwnBinding(_name)) continue;\\n\\n      var binding = this.bindings[_name];\\n      if (binding.kind === \\"param\\") return true;\\n    }\\n    return false;\\n  };\\n\\n  PathHoister.prototype.run = function run() {\\n    var node = this.path.node;\\n    if (node._hoisted) return;\\n    node._hoisted = true;\\n\\n    this.path.traverse(referenceVisitor, this);\\n\\n    this.getCompatibleScopes();\\n\\n    var attachTo = this.getAttachmentPath();\\n    if (!attachTo) return;\\n\\n    // don\'t bother hoisting to the same function as this will cause multiple branches to be evaluated more than once leading to a bad optimisation\\n    if (attachTo.getFunctionParent() === this.path.getFunctionParent()) return;\\n\\n    var uid = attachTo.scope.generateUidIdentifier(\\"ref\\");\\n\\n    attachTo.insertBefore([t.variableDeclaration(\\"var\\", [t.variableDeclarator(uid, this.path.node)])]);\\n\\n    var parent = this.path.parentPath;\\n\\n    if (parent.isJSXElement() && this.path.container === parent.node.children) {\\n      // turning the `span` in `<div><span /></div>` to an expression so we need to wrap it with\\n      // an expression container\\n      uid = t.JSXExpressionContainer(uid);\\n    }\\n\\n    this.path.replaceWith(uid);\\n  };\\n\\n  return PathHoister;\\n})();\\n\\nexports[\\"default\\"] = PathHoister;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/lib/hoister.js\\n ** module id = 266\\n ** module chunks = 0\\n **/","// This file contains methods responsible for dealing with/retrieving children or siblings.\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.getStatementParent = getStatementParent;\\nexports.getOpposite = getOpposite;\\nexports.getCompletionRecords = getCompletionRecords;\\nexports.getSibling = getSibling;\\nexports.get = get;\\nexports._getKey = _getKey;\\nexports._getPattern = _getPattern;\\nexports.getBindingIdentifiers = getBindingIdentifiers;\\nexports.getOuterBindingIdentifiers = getOuterBindingIdentifiers;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar _index2 = _interopRequireDefault(_index);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/*:: import type TraversalContext from \\"../index\\";*/\\nfunction getStatementParent() /*: ?NodePath*/ {\\n  var path = this;\\n\\n  do {\\n    if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) {\\n      break;\\n    } else {\\n      path = path.parentPath;\\n    }\\n  } while (path);\\n\\n  if (path && (path.isProgram() || path.isFile())) {\\n    throw new Error(\\"File/Program node, we can\'t possibly find a statement parent to this\\");\\n  }\\n\\n  return path;\\n}\\n\\nfunction getOpposite() {\\n  if (this.key === \\"left\\") {\\n    return this.getSibling(\\"right\\");\\n  } else if (this.key === \\"right\\") {\\n    return this.getSibling(\\"left\\");\\n  }\\n}\\n\\nfunction getCompletionRecords() /*: Array*/ {\\n  var paths = [];\\n\\n  var add = function add(path) {\\n    if (path) paths = paths.concat(path.getCompletionRecords());\\n  };\\n\\n  if (this.isIfStatement()) {\\n    add(this.get(\\"consequent\\"));\\n    add(this.get(\\"alternate\\"));\\n  } else if (this.isDoExpression() || this.isFor() || this.isWhile()) {\\n    add(this.get(\\"body\\"));\\n  } else if (this.isProgram() || this.isBlockStatement()) {\\n    add(this.get(\\"body\\").pop());\\n  } else if (this.isFunction()) {\\n    return this.get(\\"body\\").getCompletionRecords();\\n  } else if (this.isTryStatement()) {\\n    add(this.get(\\"block\\"));\\n    add(this.get(\\"handler\\"));\\n    add(this.get(\\"finalizer\\"));\\n  } else {\\n    paths.push(this);\\n  }\\n\\n  return paths;\\n}\\n\\nfunction getSibling(key) {\\n  return _index2[\\"default\\"].get({\\n    parentPath: this.parentPath,\\n    parent: this.parent,\\n    container: this.container,\\n    listKey: this.listKey,\\n    key: key\\n  });\\n}\\n\\nfunction get(key /*: string*/, context /*:: ?: boolean | TraversalContext*/) /*: NodePath*/ {\\n  if (context === true) context = this.context;\\n  var parts = key.split(\\".\\");\\n  if (parts.length === 1) {\\n    // \\"foo\\"\\n    return this._getKey(key, context);\\n  } else {\\n    // \\"foo.bar\\"\\n    return this._getPattern(parts, context);\\n  }\\n}\\n\\nfunction _getKey(key, context /*:: ?*/) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  var node = this.node;\\n  var container = node[key];\\n\\n  if (Array.isArray(container)) {\\n    // requested a container so give them all the paths\\n    return container.map(function (_, i) {\\n      return _index2[\\"default\\"].get({\\n        listKey: key,\\n        parentPath: _this,\\n        parent: node,\\n        container: container,\\n        key: i\\n      }).setContext(context);\\n    });\\n  } else {\\n    return _index2[\\"default\\"].get({\\n      parentPath: this,\\n      parent: node,\\n      container: node,\\n      key: key\\n    }).setContext(context);\\n  }\\n}\\n\\nfunction _getPattern(parts, context) {\\n  var path = this;\\n  for (var _iterator = (parts /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var part = _ref;\\n\\n    if (part === \\".\\") {\\n      path = path.parentPath;\\n    } else {\\n      if (Array.isArray(path)) {\\n        path = path[part];\\n      } else {\\n        path = path.get(part, context);\\n      }\\n    }\\n  }\\n  return path;\\n}\\n\\nfunction getBindingIdentifiers(duplicates /*:: ?*/) {\\n  return t.getBindingIdentifiers(this.node, duplicates);\\n}\\n\\nfunction getOuterBindingIdentifiers(duplicates /*:: ?*/) {\\n  return t.getOuterBindingIdentifiers(this.node, duplicates);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/family.js\\n ** module id = 267\\n ** module chunks = 0\\n **/","// This file contains methods responsible for dealing with comments.\\n\\n/**\\n * Share comments amongst siblings.\\n */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.shareCommentsWithSiblings = shareCommentsWithSiblings;\\nexports.addComment = addComment;\\nexports.addComments = addComments;\\n\\nfunction shareCommentsWithSiblings() {\\n  var node = this.node;\\n  if (!node) return;\\n\\n  var trailing = node.trailingComments;\\n  var leading = node.leadingComments;\\n  if (!trailing && !leading) return;\\n\\n  var prev = this.getSibling(this.key - 1);\\n  var next = this.getSibling(this.key + 1);\\n\\n  if (!prev.node) prev = next;\\n  if (!next.node) next = prev;\\n\\n  prev.addComments(\\"trailing\\", leading);\\n  next.addComments(\\"leading\\", trailing);\\n}\\n\\nfunction addComment(type, content, line /*:: ?*/) {\\n  this.addComments(type, [{\\n    type: line ? \\"CommentLine\\" : \\"CommentBlock\\",\\n    value: content\\n  }]);\\n}\\n\\n/**\\n * Give node `comments` of the specified `type`.\\n */\\n\\nfunction addComments(type /*: string*/, comments /*: Array*/) {\\n  if (!comments) return;\\n\\n  var node = this.node;\\n  if (!node) return;\\n\\n  var key = type + \\"Comments\\";\\n\\n  if (node[key]) {\\n    node[key] = node[key].concat(comments);\\n  } else {\\n    node[key] = comments;\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/path/comments.js\\n ** module id = 268\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$keys = require(\\"babel-runtime/core-js/object/keys\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.explode = explode;\\nexports.verify = verify;\\nexports.merge = merge;\\n\\nvar _pathLibVirtualTypes = require(\\"./path/lib/virtual-types\\");\\n\\nvar virtualTypes = _interopRequireWildcard(_pathLibVirtualTypes);\\n\\nvar _babelMessages = require(\\"babel-messages\\");\\n\\nvar messages = _interopRequireWildcard(_babelMessages);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _lodashLangClone = require(\\"lodash/lang/clone\\");\\n\\nvar _lodashLangClone2 = _interopRequireDefault(_lodashLangClone);\\n\\n/**\\n * explode() will take a visitor object with all of the various shorthands\\n * that we support, and validates & normalizes it into a common format, ready\\n * to be used in traversal\\n *\\n * The various shorthands are:\\n * * `Identifier() { ... }` -> `Identifier: { enter() { ... } }`\\n * * `\\"Identifier|NumericLiteral\\": { ... }` -> `Identifier: { ... }, NumericLiteral: { ... }`\\n * * Aliases in `babel-types`: e.g. `Property: { ... }` -> `ObjectProperty: { ... }, ClassProperty: { ... }`\\n *\\n * Other normalizations are:\\n * * Visitors of virtual types are wrapped, so that they are only visited when\\n *   their dynamic check passes\\n * * `enter` and `exit` functions are wrapped in arrays, to ease merging of\\n *   visitors\\n */\\n\\nfunction explode(visitor) {\\n  if (visitor._exploded) return visitor;\\n  visitor._exploded = true;\\n\\n  // normalise pipes\\n  for (var nodeType in visitor) {\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    var parts /*: Array<string>*/ = nodeType.split(\\"|\\");\\n    if (parts.length === 1) continue;\\n\\n    var fns = visitor[nodeType];\\n    delete visitor[nodeType];\\n\\n    for (var _iterator = parts, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var part = _ref;\\n\\n      visitor[part] = fns;\\n    }\\n  }\\n\\n  // verify data structure\\n  verify(visitor);\\n\\n  // make sure there\'s no __esModule type since this is because we\'re using loose mode\\n  // and it sets __esModule to be enumerable on all modules :(\\n  delete visitor.__esModule;\\n\\n  // ensure visitors are objects\\n  ensureEntranceObjects(visitor);\\n\\n  // ensure enter/exit callbacks are arrays\\n  ensureCallbackArrays(visitor);\\n\\n  // add type wrappers\\n  for (var _iterator2 = (_Object$keys(visitor) /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) {\\n    var _ref2;\\n\\n    if (_isArray2) {\\n      if (_i2 >= _iterator2.length) break;\\n      _ref2 = _iterator2[_i2++];\\n    } else {\\n      _i2 = _iterator2.next();\\n      if (_i2.done) break;\\n      _ref2 = _i2.value;\\n    }\\n\\n    var nodeType = _ref2;\\n\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    var wrapper = virtualTypes[nodeType];\\n    if (!wrapper) continue;\\n\\n    // wrap all the functions\\n    var fns = visitor[nodeType];\\n    for (var type in fns) {\\n      fns[type] = wrapCheck(wrapper, fns[type]);\\n    }\\n\\n    // clear it from the visitor\\n    delete visitor[nodeType];\\n\\n    if (wrapper.types) {\\n      for (var _iterator3 = (wrapper.types /*: Array<string>*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) {\\n        var _ref3;\\n\\n        if (_isArray3) {\\n          if (_i3 >= _iterator3.length) break;\\n          _ref3 = _iterator3[_i3++];\\n        } else {\\n          _i3 = _iterator3.next();\\n          if (_i3.done) break;\\n          _ref3 = _i3.value;\\n        }\\n\\n        var type = _ref3;\\n\\n        // merge the visitor if necessary or just put it back in\\n        if (visitor[type]) {\\n          mergePair(visitor[type], fns);\\n        } else {\\n          visitor[type] = fns;\\n        }\\n      }\\n    } else {\\n      mergePair(visitor, fns);\\n    }\\n  }\\n\\n  // add aliases\\n  for (var nodeType in visitor) {\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    var fns = visitor[nodeType];\\n\\n    var aliases /*: ?Array<string>*/ = t.FLIPPED_ALIAS_KEYS[nodeType];\\n\\n    var deprecratedKey = t.DEPRECATED_KEYS[nodeType];\\n    if (deprecratedKey) {\\n      console.trace(\\"Visitor defined for \\" + nodeType + \\" but it has been renamed to \\" + deprecratedKey);\\n      aliases = [deprecratedKey];\\n    }\\n\\n    if (!aliases) continue;\\n\\n    // clear it from the visitor\\n    delete visitor[nodeType];\\n\\n    for (var _iterator4 = aliases, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) {\\n      var _ref4;\\n\\n      if (_isArray4) {\\n        if (_i4 >= _iterator4.length) break;\\n        _ref4 = _iterator4[_i4++];\\n      } else {\\n        _i4 = _iterator4.next();\\n        if (_i4.done) break;\\n        _ref4 = _i4.value;\\n      }\\n\\n      var alias = _ref4;\\n\\n      var existing = visitor[alias];\\n      if (existing) {\\n        mergePair(existing, fns);\\n      } else {\\n        visitor[alias] = _lodashLangClone2[\\"default\\"](fns);\\n      }\\n    }\\n  }\\n\\n  for (var nodeType in visitor) {\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    ensureCallbackArrays(visitor[nodeType]);\\n  }\\n\\n  return visitor;\\n}\\n\\nfunction verify(visitor) {\\n  if (visitor._verified) return;\\n\\n  if (typeof visitor === \\"function\\") {\\n    throw new Error(messages.get(\\"traverseVerifyRootFunction\\"));\\n  }\\n\\n  for (var nodeType in visitor) {\\n    if (nodeType === \\"enter\\" || nodeType === \\"exit\\") {\\n      validateVisitorMethods(nodeType, visitor[nodeType]);\\n    }\\n\\n    if (shouldIgnoreKey(nodeType)) continue;\\n\\n    if (t.TYPES.indexOf(nodeType) < 0) {\\n      throw new Error(messages.get(\\"traverseVerifyNodeType\\", nodeType));\\n    }\\n\\n    var visitors = visitor[nodeType];\\n    if (typeof visitors === \\"object\\") {\\n      for (var visitorKey in visitors) {\\n        if (visitorKey === \\"enter\\" || visitorKey === \\"exit\\") {\\n          // verify that it just contains functions\\n          validateVisitorMethods(nodeType + \\".\\" + visitorKey, visitors[visitorKey]);\\n        } else {\\n          throw new Error(messages.get(\\"traverseVerifyVisitorProperty\\", nodeType, visitorKey));\\n        }\\n      }\\n    }\\n  }\\n\\n  visitor._verified = true;\\n}\\n\\nfunction validateVisitorMethods(path, val) {\\n  var fns = [].concat(val);\\n  for (var _iterator5 = fns, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) {\\n    var _ref5;\\n\\n    if (_isArray5) {\\n      if (_i5 >= _iterator5.length) break;\\n      _ref5 = _iterator5[_i5++];\\n    } else {\\n      _i5 = _iterator5.next();\\n      if (_i5.done) break;\\n      _ref5 = _i5.value;\\n    }\\n\\n    var fn = _ref5;\\n\\n    if (typeof fn !== \\"function\\") {\\n      throw new TypeError(\\"Non-function found defined in \\" + path + \\" with type \\" + typeof fn);\\n    }\\n  }\\n}\\n\\nfunction merge(visitors /*: Array*/) {\\n  var states /*: Array*/ = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];\\n\\n  var rootVisitor = {};\\n\\n  for (var i = 0; i < visitors.length; i++) {\\n    var visitor = visitors[i];\\n    var state = states[i];\\n\\n    explode(visitor);\\n\\n    for (var type in visitor) {\\n      var visitorType = visitor[type];\\n\\n      // if we have state then overload the callbacks to take it\\n      if (state) visitorType = wrapWithState(visitorType, state);\\n\\n      var nodeVisitor = rootVisitor[type] = rootVisitor[type] || {};\\n      mergePair(nodeVisitor, visitorType);\\n    }\\n  }\\n\\n  return rootVisitor;\\n}\\n\\nfunction wrapWithState(oldVisitor, state) {\\n  var newVisitor = {};\\n\\n  for (var key in oldVisitor) {\\n    var fns = oldVisitor[key];\\n\\n    // not an enter/exit array of callbacks\\n    if (!Array.isArray(fns)) continue;\\n\\n    fns = fns.map(function (fn) {\\n      var newFn = function newFn(path) {\\n        return fn.call(state, path, state);\\n      };\\n      newFn.toString = function () {\\n        return fn.toString();\\n      };\\n      return newFn;\\n    });\\n\\n    newVisitor[key] = fns;\\n  }\\n\\n  return newVisitor;\\n}\\n\\nfunction ensureEntranceObjects(obj) {\\n  for (var key in obj) {\\n    if (shouldIgnoreKey(key)) continue;\\n\\n    var fns = obj[key];\\n    if (typeof fns === \\"function\\") {\\n      obj[key] = { enter: fns };\\n    }\\n  }\\n}\\n\\nfunction ensureCallbackArrays(obj) {\\n  if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];\\n  if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];\\n}\\n\\nfunction wrapCheck(wrapper, fn) {\\n  var newFn = function newFn(path) {\\n    if (wrapper.checkPath(path)) {\\n      return fn.apply(this, arguments);\\n    }\\n  };\\n  newFn.toString = function () {\\n    return fn.toString();\\n  };\\n  return newFn;\\n}\\n\\nfunction shouldIgnoreKey(key) {\\n  // internal/hidden key\\n  if (key[0] === \\"_\\") return true;\\n\\n  // ignore function keys\\n  if (key === \\"enter\\" || key === \\"exit\\" || key === \\"shouldSkip\\") return true;\\n\\n  // ignore other options\\n  if (key === \\"blacklist\\" || key === \\"noScope\\" || key === \\"skipKeys\\") return true;\\n\\n  return false;\\n}\\n\\nfunction mergePair(dest, src) {\\n  for (var key in src) {\\n    dest[key] = [].concat(dest[key] || [], src[key]);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/visitors.js\\n ** module id = 269\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar Hub = function Hub(file, options) {\\n  _classCallCheck(this, Hub);\\n\\n  this.file = file;\\n  this.options = options;\\n};\\n\\nexports[\\"default\\"] = Hub;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/~/babel-traverse/lib/hub.js\\n ** module id = 270\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.createUnionTypeAnnotation = createUnionTypeAnnotation;\\nexports.removeTypeDuplicates = removeTypeDuplicates;\\nexports.createTypeAnnotationBasedOnTypeof = createTypeAnnotationBasedOnTypeof;\\n\\nvar _index = require(\\"./index\\");\\n\\nvar t = _interopRequireWildcard(_index);\\n\\n/**\\n * Takes an array of `types` and flattens them, removing duplicates and\\n * returns a `UnionTypeAnnotation` node containg them.\\n */\\n\\nfunction createUnionTypeAnnotation(types /*: Array<Object>*/) {\\n  var flattened = removeTypeDuplicates(types);\\n\\n  if (flattened.length === 1) {\\n    return flattened[0];\\n  } else {\\n    return t.unionTypeAnnotation(flattened);\\n  }\\n}\\n\\n/**\\n * Dedupe type annotations.\\n */\\n\\nfunction removeTypeDuplicates(nodes /*: Array<Object>*/) /*: Array<Object>*/ {\\n  var generics = {};\\n  var bases = {};\\n\\n  // store union type groups to circular references\\n  var typeGroups = [];\\n\\n  var types = [];\\n\\n  for (var i = 0; i < nodes.length; i++) {\\n    var node = nodes[i];\\n    if (!node) continue;\\n\\n    // detect duplicates\\n    if (types.indexOf(node) >= 0) {\\n      continue;\\n    }\\n\\n    // this type matches anything\\n    if (t.isAnyTypeAnnotation(node)) {\\n      return [node];\\n    }\\n\\n    //\\n    if (t.isFlowBaseAnnotation(node)) {\\n      bases[node.type] = node;\\n      continue;\\n    }\\n\\n    //\\n    if (t.isUnionTypeAnnotation(node)) {\\n      if (typeGroups.indexOf(node.types) < 0) {\\n        nodes = nodes.concat(node.types);\\n        typeGroups.push(node.types);\\n      }\\n      continue;\\n    }\\n\\n    // find a matching generic type and merge and deduplicate the type parameters\\n    if (t.isGenericTypeAnnotation(node)) {\\n      var _name = node.id.name;\\n\\n      if (generics[_name]) {\\n        var existing = generics[_name];\\n        if (existing.typeParameters) {\\n          if (node.typeParameters) {\\n            existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params.concat(node.typeParameters.params));\\n          }\\n        } else {\\n          existing = node.typeParameters;\\n        }\\n      } else {\\n        generics[_name] = node;\\n      }\\n\\n      continue;\\n    }\\n\\n    types.push(node);\\n  }\\n\\n  // add back in bases\\n  for (var type in bases) {\\n    types.push(bases[type]);\\n  }\\n\\n  // add back in generics\\n  for (var _name2 in generics) {\\n    types.push(generics[_name2]);\\n  }\\n\\n  return types;\\n}\\n\\n/**\\n * Create a type anotation based on typeof expression.\\n */\\n\\nfunction createTypeAnnotationBasedOnTypeof(type /*: string*/) {\\n  if (type === \\"string\\") {\\n    return t.stringTypeAnnotation();\\n  } else if (type === \\"number\\") {\\n    return t.numberTypeAnnotation();\\n  } else if (type === \\"undefined\\") {\\n    return t.voidTypeAnnotation();\\n  } else if (type === \\"boolean\\") {\\n    return t.booleanTypeAnnotation();\\n  } else if (type === \\"function\\") {\\n    return t.genericTypeAnnotation(t.identifier(\\"Function\\"));\\n  } else if (type === \\"object\\") {\\n    return t.genericTypeAnnotation(t.identifier(\\"Object\\"));\\n  } else if (type === \\"symbol\\") {\\n    return t.genericTypeAnnotation(t.identifier(\\"Symbol\\"));\\n  } else {\\n    throw new Error(\\"Invalid typeof value\\");\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-types/lib/flow.js\\n ** module id = 271\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n/**\\n * Track current position in code generation.\\n */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar Position = (function () {\\n  function Position() {\\n    _classCallCheck(this, Position);\\n\\n    this.line = 1;\\n    this.column = 0;\\n  }\\n\\n  /**\\n   * Push a string to the current position, mantaining the current line and column.\\n   */\\n\\n  Position.prototype.push = function push(str /*: string*/) /*: void*/ {\\n    for (var i = 0; i < str.length; i++) {\\n      if (str[i] === \\"\\\\n\\") {\\n        this.line++;\\n        this.column = 0;\\n      } else {\\n        this.column++;\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Unshift a string from the current position, mantaining the current line and column.\\n   */\\n\\n  Position.prototype.unshift = function unshift(str /*: string*/) /*: void*/ {\\n    for (var i = 0; i < str.length; i++) {\\n      if (str[i] === \\"\\\\n\\") {\\n        this.line--;\\n      } else {\\n        this.column--;\\n      }\\n    }\\n  };\\n\\n  return Position;\\n})();\\n\\nexports[\\"default\\"] = Position;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/position.js\\n ** module id = 272\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.get = get;\\nexports.parseArgs = parseArgs;\\n\\nvar _util = require(\\"util\\");\\n\\nvar util = _interopRequireWildcard(_util);\\n\\n/**\\n * Mapping of messages to be used in Babel.\\n * Messages can include $0-style placeholders.\\n */\\n\\nvar MESSAGES = {\\n  tailCallReassignmentDeopt: \\"Function reference has been reassigned, so it will probably be dereferenced, therefore we can\'t optimise this with confidence\\",\\n  classesIllegalBareSuper: \\"Illegal use of bare super\\",\\n  classesIllegalSuperCall: \\"Direct super call is illegal in non-constructor, use super.$1() instead\\",\\n  scopeDuplicateDeclaration: \\"Duplicate declaration $1\\",\\n  settersNoRest: \\"Setters aren\'t allowed to have a rest\\",\\n  noAssignmentsInForHead: \\"No assignments allowed in for-in/of head\\",\\n  expectedMemberExpressionOrIdentifier: \\"Expected type MemberExpression or Identifier\\",\\n  invalidParentForThisNode: \\"We don\'t know how to handle this node within the current parent - please open an issue\\",\\n  readOnly: \\"$1 is read-only\\",\\n  unknownForHead: \\"Unknown node type $1 in ForStatement\\",\\n  didYouMean: \\"Did you mean $1?\\",\\n  codeGeneratorDeopt: \\"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.\\",\\n  missingTemplatesDirectory: \\"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues\\",\\n  unsupportedOutputType: \\"Unsupported output type $1\\",\\n  illegalMethodName: \\"Illegal method name $1\\",\\n  lostTrackNodePath: \\"We lost track of this node\'s position, likely because the AST was directly manipulated\\",\\n\\n  modulesIllegalExportName: \\"Illegal export $1\\",\\n  modulesDuplicateDeclarations: \\"Duplicate module declarations with the same source but in different scopes\\",\\n\\n  undeclaredVariable: \\"Reference to undeclared variable $1\\",\\n  undeclaredVariableType: \\"Referencing a type alias outside of a type annotation\\",\\n  undeclaredVariableSuggestion: \\"Reference to undeclared variable $1 - did you mean $2?\\",\\n\\n  traverseNeedsParent: \\"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.\\",\\n  traverseVerifyRootFunction: \\"You passed `traverse()` a function when it expected a visitor object, are you sure you didn\'t mean `{ enter: Function }`?\\",\\n  traverseVerifyVisitorProperty: \\"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2\\",\\n  traverseVerifyNodeType: \\"You gave us a visitor for the node type $1 but it\'s not a valid type\\",\\n\\n  pluginNotObject: \\"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3\\",\\n  pluginNotFunction: \\"Plugin $2 specified in $1 was expected to return a function but returned $3\\",\\n  pluginUnknown: \\"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4\\",\\n  pluginInvalidProperty: \\"Plugin $2 specified in $1 provided an invalid property of $3\\"\\n};\\n\\nexports.MESSAGES = MESSAGES;\\n/**\\n * Get a message with $0 placeholders replaced by arguments.\\n */\\n\\nfunction get(key /*: string*/) /*: string*/ {\\n  for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\\n    args[_key - 1] = arguments[_key];\\n  }\\n\\n  var msg = MESSAGES[key];\\n  if (!msg) throw new ReferenceError(\\"Unknown message \\" + JSON.stringify(key));\\n\\n  // stringify args\\n  args = parseArgs(args);\\n\\n  // replace $0 placeholders with args\\n  return msg.replace(/\\\\$(\\\\d+)/g, function (str, i) {\\n    return args[i - 1];\\n  });\\n}\\n\\n/**\\n * Stingify arguments to be used inside messages.\\n */\\n\\nfunction parseArgs(args /*: Array<any>*/) /*: Array<string>*/ {\\n  return args.map(function (val) {\\n    if (val != null && val.inspect) {\\n      return val.inspect();\\n    } else {\\n      try {\\n        return JSON.stringify(val) || val + \\"\\";\\n      } catch (e) {\\n        return util.inspect(val);\\n      }\\n    }\\n  });\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-messages/lib/index.js\\n ** module id = 273\\n ** module chunks = 0\\n **/","\\"use strict\\";\\n\\nvar _inherits = require(\\"babel-runtime/helpers/inherits\\")[\\"default\\"];\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _Object$assign = require(\\"babel-runtime/core-js/object/assign\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _buffer = require(\\"./buffer\\");\\n\\nvar _buffer2 = _interopRequireDefault(_buffer);\\n\\nvar _node = require(\\"./node\\");\\n\\nvar n = _interopRequireWildcard(_node);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar Printer = (function (_Buffer) {\\n  _inherits(Printer, _Buffer);\\n\\n  function Printer() {\\n    _classCallCheck(this, Printer);\\n\\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\\n      args[_key] = arguments[_key];\\n    }\\n\\n    _Buffer.call.apply(_Buffer, [this].concat(args));\\n    this.insideAux = false;\\n    this.printAuxAfterOnNextUserNode = false;\\n    this._printStack = [];\\n  }\\n\\n  Printer.prototype.print = function print(node, parent) {\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    if (!node) return;\\n\\n    this._lastPrintedIsEmptyStatement = false;\\n\\n    if (parent && parent._compact) {\\n      node._compact = true;\\n    }\\n\\n    var oldInAux = this.insideAux;\\n    this.insideAux = !node.loc;\\n\\n    var oldConcise = this.format.concise;\\n    if (node._compact) {\\n      this.format.concise = true;\\n    }\\n\\n    var printMethod = this[node.type];\\n    if (!printMethod) {\\n      throw new ReferenceError(\\"unknown node of type \\" + JSON.stringify(node.type) + \\" with constructor \\" + JSON.stringify(node && node.constructor.name));\\n    }\\n\\n    this._printStack.push(node);\\n\\n    if (node.loc) this.printAuxAfterComment();\\n    this.printAuxBeforeComment(oldInAux);\\n\\n    var needsParens = n.needsParens(node, parent, this._printStack);\\n    if (needsParens) this.push(\\"(\\");\\n\\n    this.printLeadingComments(node, parent);\\n\\n    this.catchUp(node);\\n\\n    this._printNewline(true, node, parent, opts);\\n\\n    if (opts.before) opts.before();\\n\\n    this.map.mark(node);\\n\\n    this._print(node, parent);\\n\\n    // Check again if any of our children may have left an aux comment on the stack\\n    if (node.loc) this.printAuxAfterComment();\\n\\n    this.printTrailingComments(node, parent);\\n\\n    if (needsParens) this.push(\\")\\");\\n\\n    // end\\n    this._printStack.pop();\\n    if (parent) this.map.mark(parent);\\n    if (opts.after) opts.after();\\n\\n    this.format.concise = oldConcise;\\n    this.insideAux = oldInAux;\\n\\n    this._printNewline(false, node, parent, opts);\\n  };\\n\\n  Printer.prototype.printAuxBeforeComment = function printAuxBeforeComment(wasInAux) {\\n    var comment = this.format.auxiliaryCommentBefore;\\n    if (!wasInAux && this.insideAux && !this.printAuxAfterOnNextUserNode) {\\n      this.printAuxAfterOnNextUserNode = true;\\n      if (comment) this.printComment({\\n        type: \\"CommentBlock\\",\\n        value: comment\\n      });\\n    }\\n  };\\n\\n  Printer.prototype.printAuxAfterComment = function printAuxAfterComment() {\\n    if (this.printAuxAfterOnNextUserNode) {\\n      this.printAuxAfterOnNextUserNode = false;\\n      var comment = this.format.auxiliaryCommentAfter;\\n      if (comment) this.printComment({\\n        type: \\"CommentBlock\\",\\n        value: comment\\n      });\\n    }\\n  };\\n\\n  Printer.prototype.getPossibleRaw = function getPossibleRaw(node) {\\n    var extra = node.extra;\\n    if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) {\\n      return extra.raw;\\n    }\\n  };\\n\\n  Printer.prototype._print = function _print(node, parent) {\\n    // In minified mode we need to produce as little bytes as needed\\n    // and need to make sure that string quoting is consistent.\\n    // That means we have to always reprint as opposed to getting\\n    // the raw value.\\n    if (!this.format.minified) {\\n      var extra = this.getPossibleRaw(node);\\n      if (extra) {\\n        this.push(\\"\\");\\n        this._push(extra);\\n        return;\\n      }\\n    }\\n\\n    var printMethod = this[node.type];\\n    printMethod.call(this, node, parent);\\n  };\\n\\n  Printer.prototype.printJoin = function printJoin(nodes /*: ?Array*/, parent /*: Object*/) {\\n    // istanbul ignore next\\n\\n    var _this = this;\\n\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    if (!nodes || !nodes.length) return;\\n\\n    var len = nodes.length;\\n    var node = undefined,\\n        i = undefined;\\n\\n    if (opts.indent) this.indent();\\n\\n    var printOpts = {\\n      statement: opts.statement,\\n      addNewlines: opts.addNewlines,\\n      after: function after() {\\n        if (opts.iterator) {\\n          opts.iterator(node, i);\\n        }\\n\\n        if (opts.separator && parent.loc) {\\n          _this.printAuxAfterComment();\\n        }\\n\\n        if (opts.separator && i < len - 1) {\\n          _this.push(opts.separator);\\n        }\\n      }\\n    };\\n\\n    for (i = 0; i < nodes.length; i++) {\\n      node = nodes[i];\\n      this.print(node, parent, printOpts);\\n    }\\n\\n    if (opts.indent) this.dedent();\\n  };\\n\\n  Printer.prototype.printAndIndentOnComments = function printAndIndentOnComments(node, parent) {\\n    var indent = !!node.leadingComments;\\n    if (indent) this.indent();\\n    this.print(node, parent);\\n    if (indent) this.dedent();\\n  };\\n\\n  Printer.prototype.printBlock = function printBlock(parent) {\\n    var node = parent.body;\\n\\n    if (!t.isEmptyStatement(node)) {\\n      this.space();\\n    }\\n\\n    this.print(node, parent);\\n  };\\n\\n  Printer.prototype.generateComment = function generateComment(comment) {\\n    var val = comment.value;\\n    if (comment.type === \\"CommentLine\\") {\\n      val = \\"//\\" + val;\\n    } else {\\n      val = \\"/*\\" + val + \\"*/\\";\\n    }\\n    return val;\\n  };\\n\\n  Printer.prototype.printTrailingComments = function printTrailingComments(node, parent) {\\n    this.printComments(this.getComments(\\"trailingComments\\", node, parent));\\n  };\\n\\n  Printer.prototype.printLeadingComments = function printLeadingComments(node, parent) {\\n    this.printComments(this.getComments(\\"leadingComments\\", node, parent));\\n  };\\n\\n  Printer.prototype.printInnerComments = function printInnerComments(node) {\\n    var indent = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\\n\\n    if (!node.innerComments) return;\\n    if (indent) this.indent();\\n    this.printComments(node.innerComments);\\n    if (indent) this.dedent();\\n  };\\n\\n  Printer.prototype.printSequence = function printSequence(nodes, parent) {\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    opts.statement = true;\\n    return this.printJoin(nodes, parent, opts);\\n  };\\n\\n  Printer.prototype.printList = function printList(items, parent) {\\n    var opts = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\\n\\n    if (opts.separator == null) {\\n      opts.separator = \\",\\";\\n      if (!this.format.compact) opts.separator += \\" \\";\\n    }\\n\\n    return this.printJoin(items, parent, opts);\\n  };\\n\\n  Printer.prototype._printNewline = function _printNewline(leading, node, parent, opts) {\\n    if (!opts.statement && !n.isUserWhitespacable(node, parent)) {\\n      return;\\n    }\\n\\n    var lines = 0;\\n\\n    if (node.start != null && !node._ignoreUserWhitespace && this.tokens.length) {\\n      // user node\\n      if (leading) {\\n        lines = this.whitespace.getNewlinesBefore(node);\\n      } else {\\n        lines = this.whitespace.getNewlinesAfter(node);\\n      }\\n    } else {\\n      // generated node\\n      if (!leading) lines++; // always include at least a single line after\\n      if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\\n\\n      var needs = n.needsWhitespaceAfter;\\n      if (leading) needs = n.needsWhitespaceBefore;\\n      if (needs(node, parent)) lines++;\\n\\n      // generated nodes can\'t add starting file whitespace\\n      if (!this.buf) lines = 0;\\n    }\\n\\n    this.newline(lines);\\n  };\\n\\n  Printer.prototype.getComments = function getComments(key, node) {\\n    return node && node[key] || [];\\n  };\\n\\n  Printer.prototype.shouldPrintComment = function shouldPrintComment(comment) {\\n    if (this.format.shouldPrintComment) {\\n      return this.format.shouldPrintComment(comment.value);\\n    } else {\\n      if (!this.format.minified && (comment.value.indexOf(\\"@license\\") >= 0 || comment.value.indexOf(\\"@preserve\\") >= 0)) {\\n        return true;\\n      } else {\\n        return this.format.comments;\\n      }\\n    }\\n  };\\n\\n  Printer.prototype.printComment = function printComment(comment) {\\n    if (!this.shouldPrintComment(comment)) return;\\n\\n    if (comment.ignore) return;\\n    comment.ignore = true;\\n\\n    if (comment.start != null) {\\n      if (this.printedCommentStarts[comment.start]) return;\\n      this.printedCommentStarts[comment.start] = true;\\n    }\\n\\n    this.catchUp(comment);\\n\\n    // whitespace before\\n    this.newline(this.whitespace.getNewlinesBefore(comment));\\n\\n    var column = this.position.column;\\n    var val = this.generateComment(comment);\\n\\n    if (column && !this.isLast([\\"\\\\n\\", \\" \\", \\"[\\", \\"{\\"])) {\\n      this._push(\\" \\");\\n      column++;\\n    }\\n\\n    //\\n    if (comment.type === \\"CommentBlock\\" && this.format.indent.adjustMultilineComment) {\\n      var offset = comment.loc && comment.loc.start.column;\\n      if (offset) {\\n        var newlineRegex = new RegExp(\\"\\\\\\\\n\\\\\\\\s{1,\\" + offset + \\"}\\", \\"g\\");\\n        val = val.replace(newlineRegex, \\"\\\\n\\");\\n      }\\n\\n      var indent = Math.max(this.indentSize(), column);\\n      val = val.replace(/\\\\n/g, \\"\\\\n\\" + _repeating2[\\"default\\"](\\" \\", indent));\\n    }\\n\\n    if (column === 0) {\\n      val = this.getIndent() + val;\\n    }\\n\\n    // force a newline for line comments when retainLines is set in case the next printed node\\n    // doesn\'t catch up\\n    if ((this.format.compact || this.format.retainLines) && comment.type === \\"CommentLine\\") {\\n      val += \\"\\\\n\\";\\n    }\\n\\n    //\\n    this._push(val);\\n\\n    // whitespace after\\n    this.newline(this.whitespace.getNewlinesAfter(comment));\\n  };\\n\\n  Printer.prototype.printComments = function printComments(comments /*:: ?: Array<Object>*/) {\\n    if (!comments || !comments.length) return;\\n\\n    for (var _iterator = comments, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var comment = _ref;\\n\\n      this.printComment(comment);\\n    }\\n  };\\n\\n  return Printer;\\n})(_buffer2[\\"default\\"]);\\n\\nexports[\\"default\\"] = Printer;\\nvar _arr = [require(\\"./generators/template-literals\\"), require(\\"./generators/expressions\\"), require(\\"./generators/statements\\"), require(\\"./generators/classes\\"), require(\\"./generators/methods\\"), require(\\"./generators/modules\\"), require(\\"./generators/types\\"), require(\\"./generators/flow\\"), require(\\"./generators/base\\"), require(\\"./generators/jsx\\")];\\n\\nfor (var _i2 = 0; _i2 < _arr.length; _i2++) {\\n  var generator = _arr[_i2];\\n  _Object$assign(Printer.prototype, generator);\\n}\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/printer.js\\n ** module id = 274\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/get-iterator\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/get-iterator.js\\n ** module id = 275\\n ** module chunks = 0\\n **/","require(\'../modules/web.dom.iterable\');\\nrequire(\'../modules/es6.string.iterator\');\\nmodule.exports = require(\'../modules/core.get-iterator\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/get-iterator.js\\n ** module id = 276\\n ** module chunks = 0\\n **/","require(\'./es6.array.iterator\');\\nvar Iterators = require(\'./$.iterators\');\\nIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\\n ** module id = 277\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar addToUnscopables = require(\'./$.add-to-unscopables\')\\n  , step             = require(\'./$.iter-step\')\\n  , Iterators        = require(\'./$.iterators\')\\n  , toIObject        = require(\'./$.to-iobject\');\\n\\n// 22.1.3.4 Array.prototype.entries()\\n// 22.1.3.13 Array.prototype.keys()\\n// 22.1.3.29 Array.prototype.values()\\n// 22.1.3.30 Array.prototype[@@iterator]()\\nmodule.exports = require(\'./$.iter-define\')(Array, \'Array\', function(iterated, kind){\\n  this._t = toIObject(iterated); // target\\n  this._i = 0;                   // next index\\n  this._k = kind;                // kind\\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , kind  = this._k\\n    , index = this._i++;\\n  if(!O || index >= O.length){\\n    this._t = undefined;\\n    return step(1);\\n  }\\n  if(kind == \'keys\'  )return step(0, index);\\n  if(kind == \'values\')return step(0, O[index]);\\n  return step(0, [index, O[index]]);\\n}, \'values\');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\\nIterators.Arguments = Iterators.Array;\\n\\naddToUnscopables(\'keys\');\\naddToUnscopables(\'values\');\\naddToUnscopables(\'entries\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\\n ** module id = 278\\n ** module chunks = 0\\n **/","module.exports = function(){ /* empty */ };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.add-to-unscopables.js\\n ** module id = 279\\n ** module chunks = 0\\n **/","module.exports = function(done, value){\\n  return {value: value, done: !!done};\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-step.js\\n ** module id = 280\\n ** module chunks = 0\\n **/","module.exports = {};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iterators.js\\n ** module id = 281\\n ** module chunks = 0\\n **/","// to indexed object, toObject with fallback for non-array-like ES3 strings\\nvar IObject = require(\'./$.iobject\')\\n  , defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return IObject(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-iobject.js\\n ** module id = 282\\n ** module chunks = 0\\n **/","// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nvar cof = require(\'./$.cof\');\\nmodule.exports = Object(\'z\').propertyIsEnumerable(0) ? Object : function(it){\\n  return cof(it) == \'String\' ? it.split(\'\') : Object(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iobject.js\\n ** module id = 283\\n ** module chunks = 0\\n **/","var toString = {}.toString;\\n\\nmodule.exports = function(it){\\n  return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.cof.js\\n ** module id = 284\\n ** module chunks = 0\\n **/","// 7.2.1 RequireObjectCoercible(argument)\\nmodule.exports = function(it){\\n  if(it == undefined)throw TypeError(\\"Can\'t call method on  \\" + it);\\n  return it;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.defined.js\\n ** module id = 285\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar LIBRARY        = require(\'./$.library\')\\n  , $export        = require(\'./$.export\')\\n  , redefine       = require(\'./$.redefine\')\\n  , hide           = require(\'./$.hide\')\\n  , has            = require(\'./$.has\')\\n  , Iterators      = require(\'./$.iterators\')\\n  , $iterCreate    = require(\'./$.iter-create\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , getProto       = require(\'./$\').getProto\\n  , ITERATOR       = require(\'./$.wks\')(\'iterator\')\\n  , BUGGY          = !([].keys && \'next\' in [].keys()) // Safari has buggy iterators w/o `next`\\n  , FF_ITERATOR    = \'@@iterator\'\\n  , KEYS           = \'keys\'\\n  , VALUES         = \'values\';\\n\\nvar returnThis = function(){ return this; };\\n\\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\\n  $iterCreate(Constructor, NAME, next);\\n  var getMethod = function(kind){\\n    if(!BUGGY && kind in proto)return proto[kind];\\n    switch(kind){\\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\\n      case VALUES: return function values(){ return new Constructor(this, kind); };\\n    } return function entries(){ return new Constructor(this, kind); };\\n  };\\n  var TAG        = NAME + \' Iterator\'\\n    , DEF_VALUES = DEFAULT == VALUES\\n    , VALUES_BUG = false\\n    , proto      = Base.prototype\\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\\n    , $default   = $native || getMethod(DEFAULT)\\n    , methods, key;\\n  // Fix native\\n  if($native){\\n    var IteratorPrototype = getProto($default.call(new Base));\\n    // Set @@toStringTag to native iterators\\n    setToStringTag(IteratorPrototype, TAG, true);\\n    // FF fix\\n    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\\n    // fix Array#{values, @@iterator}.name in V8 / FF\\n    if(DEF_VALUES && $native.name !== VALUES){\\n      VALUES_BUG = true;\\n      $default = function values(){ return $native.call(this); };\\n    }\\n  }\\n  // Define iterator\\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\\n    hide(proto, ITERATOR, $default);\\n  }\\n  // Plug for library\\n  Iterators[NAME] = $default;\\n  Iterators[TAG]  = returnThis;\\n  if(DEFAULT){\\n    methods = {\\n      values:  DEF_VALUES  ? $default : getMethod(VALUES),\\n      keys:    IS_SET      ? $default : getMethod(KEYS),\\n      entries: !DEF_VALUES ? $default : getMethod(\'entries\')\\n    };\\n    if(FORCED)for(key in methods){\\n      if(!(key in proto))redefine(proto, key, methods[key]);\\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\\n  }\\n  return methods;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-define.js\\n ** module id = 286\\n ** module chunks = 0\\n **/","module.exports = true;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.library.js\\n ** module id = 287\\n ** module chunks = 0\\n **/","module.exports = require(\'./$.hide\');\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.redefine.js\\n ** module id = 288\\n ** module chunks = 0\\n **/","var $          = require(\'./$\')\\n  , createDesc = require(\'./$.property-desc\');\\nmodule.exports = require(\'./$.descriptors\') ? function(object, key, value){\\n  return $.setDesc(object, key, createDesc(1, value));\\n} : function(object, key, value){\\n  object[key] = value;\\n  return object;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.hide.js\\n ** module id = 289\\n ** module chunks = 0\\n **/","module.exports = function(bitmap, value){\\n  return {\\n    enumerable  : !(bitmap & 1),\\n    configurable: !(bitmap & 2),\\n    writable    : !(bitmap & 4),\\n    value       : value\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.property-desc.js\\n ** module id = 290\\n ** module chunks = 0\\n **/","// Thank\'s IE8 for his funny defineProperty\\nmodule.exports = !require(\'./$.fails\')(function(){\\n  return Object.defineProperty({}, \'a\', {get: function(){ return 7; }}).a != 7;\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.descriptors.js\\n ** module id = 291\\n ** module chunks = 0\\n **/","module.exports = function(exec){\\n  try {\\n    return !!exec();\\n  } catch(e){\\n    return true;\\n  }\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.fails.js\\n ** module id = 292\\n ** module chunks = 0\\n **/","var hasOwnProperty = {}.hasOwnProperty;\\nmodule.exports = function(it, key){\\n  return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.has.js\\n ** module id = 293\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $              = require(\'./$\')\\n  , descriptor     = require(\'./$.property-desc\')\\n  , setToStringTag = require(\'./$.set-to-string-tag\')\\n  , IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nrequire(\'./$.hide\')(IteratorPrototype, require(\'./$.wks\')(\'iterator\'), function(){ return this; });\\n\\nmodule.exports = function(Constructor, NAME, next){\\n  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\\n  setToStringTag(Constructor, NAME + \' Iterator\');\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.iter-create.js\\n ** module id = 294\\n ** module chunks = 0\\n **/","var def = require(\'./$\').setDesc\\n  , has = require(\'./$.has\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\');\\n\\nmodule.exports = function(it, tag, stat){\\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.set-to-string-tag.js\\n ** module id = 295\\n ** module chunks = 0\\n **/","var store  = require(\'./$.shared\')(\'wks\')\\n  , uid    = require(\'./$.uid\')\\n  , Symbol = require(\'./$.global\').Symbol;\\nmodule.exports = function(name){\\n  return store[name] || (store[name] =\\n    Symbol && Symbol[name] || (Symbol || uid)(\'Symbol.\' + name));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.wks.js\\n ** module id = 296\\n ** module chunks = 0\\n **/","var global = require(\'./$.global\')\\n  , SHARED = \'__core-js_shared__\'\\n  , store  = global[SHARED] || (global[SHARED] = {});\\nmodule.exports = function(key){\\n  return store[key] || (store[key] = {});\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.shared.js\\n ** module id = 297\\n ** module chunks = 0\\n **/","var id = 0\\n  , px = Math.random();\\nmodule.exports = function(key){\\n  return \'Symbol(\'.concat(key === undefined ? \'\' : key, \')_\', (++id + px).toString(36));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.uid.js\\n ** module id = 298\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar $at  = require(\'./$.string-at\')(true);\\n\\n// 21.1.3.27 String.prototype[@@iterator]()\\nrequire(\'./$.iter-define\')(String, \'String\', function(iterated){\\n  this._t = String(iterated); // target\\n  this._i = 0;                // next index\\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\\n}, function(){\\n  var O     = this._t\\n    , index = this._i\\n    , point;\\n  if(index >= O.length)return {value: undefined, done: true};\\n  point = $at(O, index);\\n  this._i += point.length;\\n  return {value: point, done: false};\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\\n ** module id = 299\\n ** module chunks = 0\\n **/","var toInteger = require(\'./$.to-integer\')\\n  , defined   = require(\'./$.defined\');\\n// true  -> String#at\\n// false -> String#codePointAt\\nmodule.exports = function(TO_STRING){\\n  return function(that, pos){\\n    var s = String(defined(that))\\n      , i = toInteger(pos)\\n      , l = s.length\\n      , a, b;\\n    if(i < 0 || i >= l)return TO_STRING ? \'\' : undefined;\\n    a = s.charCodeAt(i);\\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\\n      ? TO_STRING ? s.charAt(i) : a\\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\\n  };\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.string-at.js\\n ** module id = 300\\n ** module chunks = 0\\n **/","// 7.1.4 ToInteger\\nvar ceil  = Math.ceil\\n  , floor = Math.floor;\\nmodule.exports = function(it){\\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-integer.js\\n ** module id = 301\\n ** module chunks = 0\\n **/","var anObject = require(\'./$.an-object\')\\n  , get      = require(\'./core.get-iterator-method\');\\nmodule.exports = require(\'./$.core\').getIterator = function(it){\\n  var iterFn = get(it);\\n  if(typeof iterFn != \'function\')throw TypeError(it + \' is not iterable!\');\\n  return anObject(iterFn.call(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\\n ** module id = 302\\n ** module chunks = 0\\n **/","var classof   = require(\'./$.classof\')\\n  , ITERATOR  = require(\'./$.wks\')(\'iterator\')\\n  , Iterators = require(\'./$.iterators\');\\nmodule.exports = require(\'./$.core\').getIteratorMethod = function(it){\\n  if(it != undefined)return it[ITERATOR]\\n    || it[\'@@iterator\']\\n    || Iterators[classof(it)];\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\\n ** module id = 303\\n ** module chunks = 0\\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\\nvar cof = require(\'./$.cof\')\\n  , TAG = require(\'./$.wks\')(\'toStringTag\')\\n  // ES3 wrong here\\n  , ARG = cof(function(){ return arguments; }()) == \'Arguments\';\\n\\nmodule.exports = function(it){\\n  var O, T, B;\\n  return it === undefined ? \'Undefined\' : it === null ? \'Null\'\\n    // @@toStringTag case\\n    : typeof (T = (O = Object(it))[TAG]) == \'string\' ? T\\n    // builtinTag case\\n    : ARG ? cof(O)\\n    // ES3 arguments fallback\\n    : (B = cof(O)) == \'Object\' && typeof O.callee == \'function\' ? \'Arguments\' : B;\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.classof.js\\n ** module id = 304\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/assign\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/assign.js\\n ** module id = 305\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.assign\');\\nmodule.exports = require(\'../../modules/$.core\').Object.assign;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/assign.js\\n ** module id = 306\\n ** module chunks = 0\\n **/","// 19.1.3.1 Object.assign(target, source)\\nvar $export = require(\'./$.export\');\\n\\n$export($export.S + $export.F, \'Object\', {assign: require(\'./$.object-assign\')});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\\n ** module id = 307\\n ** module chunks = 0\\n **/","// 19.1.2.1 Object.assign(target, source, ...)\\nvar $        = require(\'./$\')\\n  , toObject = require(\'./$.to-object\')\\n  , IObject  = require(\'./$.iobject\');\\n\\n// should work with symbols and should have deterministic property order (V8 bug)\\nmodule.exports = require(\'./$.fails\')(function(){\\n  var a = Object.assign\\n    , A = {}\\n    , B = {}\\n    , S = Symbol()\\n    , K = \'abcdefghijklmnopqrst\';\\n  A[S] = 7;\\n  K.split(\'\').forEach(function(k){ B[k] = k; });\\n  return a({}, A)[S] != 7 || Object.keys(a({}, B)).join(\'\') != K;\\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\\n  var T     = toObject(target)\\n    , $$    = arguments\\n    , $$len = $$.length\\n    , index = 1\\n    , getKeys    = $.getKeys\\n    , getSymbols = $.getSymbols\\n    , isEnum     = $.isEnum;\\n  while($$len > index){\\n    var S      = IObject($$[index++])\\n      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\\n      , length = keys.length\\n      , j      = 0\\n      , key;\\n    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\\n  }\\n  return T;\\n} : Object.assign;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-assign.js\\n ** module id = 308\\n ** module chunks = 0\\n **/","// 7.1.13 ToObject(argument)\\nvar defined = require(\'./$.defined\');\\nmodule.exports = function(it){\\n  return Object(defined(it));\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.to-object.js\\n ** module id = 309\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _classCallCheck = require(\\"babel-runtime/helpers/class-call-check\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _trimRight = require(\\"trim-right\\");\\n\\nvar _trimRight2 = _interopRequireDefault(_trimRight);\\n\\n/**\\n * Buffer for collecting generated output.\\n */\\n\\n/*:: import type Position from \\"./position\\";*/\\nvar Buffer = (function () {\\n  function Buffer(position /*: Position*/, format /*: Object*/) {\\n    _classCallCheck(this, Buffer);\\n\\n    this.printedCommentStarts = {};\\n    this.parenPushNewlineState = null;\\n    this.position = position;\\n    this._indent = format.indent.base;\\n    this.format = format;\\n    this.buf = \\"\\";\\n\\n    // Maintaining a reference to the last char in the buffer is an optimization\\n    // to make sure that v8 doesn\'t \\"flatten\\" the string more often than needed\\n    // see https://github.com/babel/babel/pull/3283 for details.\\n    this.last = \\"\\";\\n  }\\n\\n  /**\\n   * Description\\n   */\\n\\n  Buffer.prototype.catchUp = function catchUp(node /*: Object*/) {\\n    // catch up to this nodes newline if we\'re behind\\n    if (node.loc && this.format.retainLines && this.buf) {\\n      while (this.position.line < node.loc.start.line) {\\n        this._push(\\"\\\\n\\");\\n      }\\n    }\\n  };\\n\\n  /**\\n   * Get the current trimmed buffer.\\n   */\\n\\n  Buffer.prototype.get = function get() /*: string*/ {\\n    return _trimRight2[\\"default\\"](this.buf);\\n  };\\n\\n  /**\\n   * Get the current indent.\\n   */\\n\\n  Buffer.prototype.getIndent = function getIndent() /*: string*/ {\\n    if (this.format.compact || this.format.concise) {\\n      return \\"\\";\\n    } else {\\n      return _repeating2[\\"default\\"](this.format.indent.style, this._indent);\\n    }\\n  };\\n\\n  /**\\n   * Get the current indent size.\\n   */\\n\\n  Buffer.prototype.indentSize = function indentSize() /*: number*/ {\\n    return this.getIndent().length;\\n  };\\n\\n  /**\\n   * Increment indent size.\\n   */\\n\\n  Buffer.prototype.indent = function indent() {\\n    this._indent++;\\n  };\\n\\n  /**\\n   * Decrement indent size.\\n   */\\n\\n  Buffer.prototype.dedent = function dedent() {\\n    this._indent--;\\n  };\\n\\n  /**\\n   * Add a semicolon to the buffer.\\n   */\\n\\n  Buffer.prototype.semicolon = function semicolon() {\\n    this.push(\\";\\");\\n  };\\n\\n  /**\\n   * Ensure last character is a semicolon.\\n   */\\n\\n  Buffer.prototype.ensureSemicolon = function ensureSemicolon() {\\n    if (!this.isLast(\\";\\")) this.semicolon();\\n  };\\n\\n  /**\\n   * Add a right brace to the buffer.\\n   */\\n\\n  Buffer.prototype.rightBrace = function rightBrace() {\\n    this.newline(true);\\n    if (this.format.minified && !this._lastPrintedIsEmptyStatement) {\\n      this._removeLast(\\";\\");\\n    }\\n    this.push(\\"}\\");\\n  };\\n\\n  /**\\n   * Add a keyword to the buffer.\\n   */\\n\\n  Buffer.prototype.keyword = function keyword(name /*: string*/) {\\n    this.push(name);\\n    this.space();\\n  };\\n\\n  /**\\n   * Add a space to the buffer unless it is compact (override with force).\\n   */\\n\\n  Buffer.prototype.space = function space(force /*:: ?: boolean*/) {\\n    if (!force && this.format.compact) return;\\n\\n    if (force || this.buf && !this.isLast(\\" \\") && !this.isLast(\\"\\\\n\\")) {\\n      this.push(\\" \\");\\n    }\\n  };\\n\\n  /**\\n   * Remove the last character.\\n   */\\n\\n  Buffer.prototype.removeLast = function removeLast(cha /*: string*/) {\\n    if (this.format.compact) return;\\n    return this._removeLast(cha);\\n  };\\n\\n  Buffer.prototype._removeLast = function _removeLast(cha /*: string*/) {\\n    if (!this._isLast(cha)) return;\\n    this.buf = this.buf.slice(0, -1);\\n    this.last = this.buf[this.buf.length - 1];\\n    this.position.unshift(cha);\\n  };\\n\\n  /**\\n   * Set some state that will be modified if a newline has been inserted before any\\n   * non-space characters.\\n   *\\n   * This is to prevent breaking semantics for terminatorless separator nodes. eg:\\n   *\\n   *    return foo;\\n   *\\n   * returns `foo`. But if we do:\\n   *\\n   *   return\\n   *   foo;\\n   *\\n   *  `undefined` will be returned and not `foo` due to the terminator.\\n   */\\n\\n  Buffer.prototype.startTerminatorless = function startTerminatorless() /*: Object*/ {\\n    return this.parenPushNewlineState = {\\n      printed: false\\n    };\\n  };\\n\\n  /**\\n   * Print an ending parentheses if a starting one has been printed.\\n   */\\n\\n  Buffer.prototype.endTerminatorless = function endTerminatorless(state /*: Object*/) {\\n    if (state.printed) {\\n      this.dedent();\\n      this.newline();\\n      this.push(\\")\\");\\n    }\\n  };\\n\\n  /**\\n   * Add a newline (or many newlines), maintaining formatting.\\n   * Strips multiple newlines if removeLast is true.\\n   */\\n\\n  Buffer.prototype.newline = function newline(i /*:: ?: boolean | number*/, removeLast /*:: ?: boolean*/) {\\n    if (this.format.retainLines || this.format.compact) return;\\n\\n    if (this.format.concise) {\\n      this.space();\\n      return;\\n    }\\n\\n    // never allow more than two lines\\n    if (this.endsWith(\\"\\\\n\\\\n\\")) return;\\n\\n    if (typeof i === \\"boolean\\") removeLast = i;\\n    if (typeof i !== \\"number\\") i = 1;\\n\\n    i = Math.min(2, i);\\n    if (this.endsWith(\\"{\\\\n\\") || this.endsWith(\\":\\\\n\\")) i--;\\n    if (i <= 0) return;\\n\\n    // remove the last newline\\n    if (removeLast) {\\n      this.removeLast(\\"\\\\n\\");\\n    }\\n\\n    this.removeLast(\\" \\");\\n    this._removeSpacesAfterLastNewline();\\n    this._push(_repeating2[\\"default\\"](\\"\\\\n\\", i));\\n  };\\n\\n  /**\\n   * If buffer ends with a newline and some spaces after it, trim those spaces.\\n   */\\n\\n  Buffer.prototype._removeSpacesAfterLastNewline = function _removeSpacesAfterLastNewline() {\\n    var lastNewlineIndex = this.buf.lastIndexOf(\\"\\\\n\\");\\n    if (lastNewlineIndex >= 0 && this.get().length <= lastNewlineIndex) {\\n      this.buf = this.buf.substring(0, lastNewlineIndex + 1);\\n      this.last = \\"\\\\n\\";\\n    }\\n  };\\n\\n  /**\\n   * Push a string to the buffer, maintaining indentation and newlines.\\n   */\\n\\n  Buffer.prototype.push = function push(str /*: string*/, noIndent /*:: ?: boolean*/) {\\n    if (!this.format.compact && this._indent && !noIndent && str !== \\"\\\\n\\") {\\n      // we have an indent level and we aren\'t pushing a newline\\n      var indent = this.getIndent();\\n\\n      // replace all newlines with newlines with the indentation\\n      str = str.replace(/\\\\n/g, \\"\\\\n\\" + indent);\\n\\n      // we\'ve got a newline before us so prepend on the indentation\\n      if (this.isLast(\\"\\\\n\\")) this._push(indent);\\n    }\\n\\n    this._push(str);\\n  };\\n\\n  /**\\n   * Push a string to the buffer.\\n   */\\n\\n  Buffer.prototype._push = function _push(str /*: string*/) /*: void*/ {\\n    // see startTerminatorless() instance method\\n    var parenPushNewlineState = this.parenPushNewlineState;\\n    if (parenPushNewlineState) {\\n      for (var i = 0; i < str.length; i++) {\\n        var cha = str[i];\\n\\n        // we can ignore spaces since they wont interupt a terminatorless separator\\n        if (cha === \\" \\") continue;\\n\\n        this.parenPushNewlineState = null;\\n\\n        if (cha === \\"\\\\n\\" || cha === \\"/\\") {\\n          // we\'re going to break this terminator expression so we need to add a parentheses\\n          this._push(\\"(\\");\\n          this.indent();\\n          parenPushNewlineState.printed = true;\\n        }\\n\\n        break;\\n      }\\n    }\\n\\n    //\\n    this.position.push(str);\\n    this.buf += str;\\n    this.last = str[str.length - 1];\\n  };\\n\\n  /**\\n   * Test if the buffer ends with a string.\\n   */\\n\\n  Buffer.prototype.endsWith = function endsWith(str /*: string*/) /*: boolean*/ {\\n    if (str.length === 1) {\\n      return this.last === str;\\n    } else {\\n      return this.buf.slice(-str.length) === str;\\n    }\\n  };\\n\\n  /**\\n   * Test if a character is last in the buffer.\\n   */\\n\\n  Buffer.prototype.isLast = function isLast(cha /*: string*/) /*: boolean*/ {\\n    if (this.format.compact) return false;\\n    return this._isLast(cha);\\n  };\\n\\n  Buffer.prototype._isLast = function _isLast(cha /*: string*/) /*: boolean*/ {\\n    var last = this.last;\\n\\n    if (Array.isArray(cha)) {\\n      return cha.indexOf(last) >= 0;\\n    } else {\\n      return cha === last;\\n    }\\n  };\\n\\n  return Buffer;\\n})();\\n\\nexports[\\"default\\"] = Buffer;\\nmodule.exports = exports[\\"default\\"];\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/buffer.js\\n ** module id = 310\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = function (str) {\\n\\tvar tail = str.length;\\n\\n\\twhile (/[\\\\s\\\\uFEFF\\\\u00A0]/.test(str[tail - 1])) {\\n\\t\\ttail--;\\n\\t}\\n\\n\\treturn str.slice(0, tail);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/trim-right/index.js\\n ** module id = 311\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _Object$keys = require(\\"babel-runtime/core-js/object/keys\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.isUserWhitespacable = isUserWhitespacable;\\nexports.needsWhitespace = needsWhitespace;\\nexports.needsWhitespaceBefore = needsWhitespaceBefore;\\nexports.needsWhitespaceAfter = needsWhitespaceAfter;\\nexports.needsParens = needsParens;\\n\\nvar _whitespace = require(\\"./whitespace\\");\\n\\nvar _whitespace2 = _interopRequireDefault(_whitespace);\\n\\nvar _parentheses = require(\\"./parentheses\\");\\n\\nvar parens = _interopRequireWildcard(_parentheses);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction find(obj, node, parent, printStack) {\\n  if (!obj) return;\\n  var result = undefined;\\n\\n  var types = _Object$keys(obj);\\n  for (var i = 0; i < types.length; i++) {\\n    var type = types[i];\\n\\n    if (t.is(type, node)) {\\n      var fn = obj[type];\\n      result = fn(node, parent, printStack);\\n      if (result != null) break;\\n    }\\n  }\\n\\n  return result;\\n}\\n\\nfunction isOrHasCallExpression(node) {\\n  if (t.isCallExpression(node)) {\\n    return true;\\n  }\\n\\n  if (t.isMemberExpression(node)) {\\n    return isOrHasCallExpression(node.object) || !node.computed && isOrHasCallExpression(node.property);\\n  } else {\\n    return false;\\n  }\\n}\\n\\nfunction isUserWhitespacable(node) {\\n  return t.isUserWhitespacable(node);\\n}\\n\\nfunction needsWhitespace(node, parent, type) {\\n  if (!node) return 0;\\n\\n  if (t.isExpressionStatement(node)) {\\n    node = node.expression;\\n  }\\n\\n  var linesInfo = find(_whitespace2[\\"default\\"].nodes, node, parent);\\n\\n  if (!linesInfo) {\\n    var items = find(_whitespace2[\\"default\\"].list, node, parent);\\n    if (items) {\\n      for (var i = 0; i < items.length; i++) {\\n        linesInfo = needsWhitespace(items[i], node, type);\\n        if (linesInfo) break;\\n      }\\n    }\\n  }\\n\\n  return linesInfo && linesInfo[type] || 0;\\n}\\n\\nfunction needsWhitespaceBefore(node, parent) {\\n  return needsWhitespace(node, parent, \\"before\\");\\n}\\n\\nfunction needsWhitespaceAfter(node, parent) {\\n  return needsWhitespace(node, parent, \\"after\\");\\n}\\n\\nfunction needsParens(node, parent, printStack) {\\n  if (!parent) return false;\\n\\n  if (t.isNewExpression(parent) && parent.callee === node) {\\n    if (isOrHasCallExpression(node)) return true;\\n  }\\n\\n  return find(parens, node, parent, printStack);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/node/index.js\\n ** module id = 312\\n ** module chunks = 0\\n **/","module.exports = { \\"default\\": require(\\"core-js/library/fn/object/keys\\"), __esModule: true };\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/core-js/object/keys.js\\n ** module id = 313\\n ** module chunks = 0\\n **/","require(\'../../modules/es6.object.keys\');\\nmodule.exports = require(\'../../modules/$.core\').Object.keys;\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/fn/object/keys.js\\n ** module id = 314\\n ** module chunks = 0\\n **/","// 19.1.2.14 Object.keys(O)\\nvar toObject = require(\'./$.to-object\');\\n\\nrequire(\'./$.object-sap\')(\'keys\', function($keys){\\n  return function keys(it){\\n    return $keys(toObject(it));\\n  };\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\\n ** module id = 315\\n ** module chunks = 0\\n **/","// most Object methods by ES6 should accept primitives\\nvar $export = require(\'./$.export\')\\n  , core    = require(\'./$.core\')\\n  , fails   = require(\'./$.fails\');\\nmodule.exports = function(KEY, exec){\\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\\n    , exp = {};\\n  exp[KEY] = exec(fn);\\n  $export($export.S + $export.F * fails(function(){ fn(1); }), \'Object\', exp);\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/babel-runtime/~/core-js/library/modules/$.object-sap.js\\n ** module id = 316\\n ** module chunks = 0\\n **/","/* @noflow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nvar _lodashLangIsBoolean = require(\\"lodash/lang/isBoolean\\");\\n\\nvar _lodashLangIsBoolean2 = _interopRequireDefault(_lodashLangIsBoolean);\\n\\nvar _lodashCollectionEach = require(\\"lodash/collection/each\\");\\n\\nvar _lodashCollectionEach2 = _interopRequireDefault(_lodashCollectionEach);\\n\\nvar _lodashCollectionMap = require(\\"lodash/collection/map\\");\\n\\nvar _lodashCollectionMap2 = _interopRequireDefault(_lodashCollectionMap);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\n/**\\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\\n *\\n * @example\\n * crawl(node)\\n * // { hasCall: false, hasFunction: true, hasHelper: false }\\n */\\n\\n/*:: type WhitespaceObject = {\\n  before?: boolean,\\n  after?: boolean\\n};*/function crawl(node) {\\n  var state = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\\n\\n  if (t.isMemberExpression(node)) {\\n    crawl(node.object, state);\\n    if (node.computed) crawl(node.property, state);\\n  } else if (t.isBinary(node) || t.isAssignmentExpression(node)) {\\n    crawl(node.left, state);\\n    crawl(node.right, state);\\n  } else if (t.isCallExpression(node)) {\\n    state.hasCall = true;\\n    crawl(node.callee, state);\\n  } else if (t.isFunction(node)) {\\n    state.hasFunction = true;\\n  } else if (t.isIdentifier(node)) {\\n    state.hasHelper = state.hasHelper || isHelper(node.callee);\\n  }\\n\\n  return state;\\n}\\n\\n/**\\n * Test if a node is or has a helper.\\n */\\n\\nfunction isHelper(node) {\\n  if (t.isMemberExpression(node)) {\\n    return isHelper(node.object) || isHelper(node.property);\\n  } else if (t.isIdentifier(node)) {\\n    return node.name === \\"require\\" || node.name[0] === \\"_\\";\\n  } else if (t.isCallExpression(node)) {\\n    return isHelper(node.callee);\\n  } else if (t.isBinary(node) || t.isAssignmentExpression(node)) {\\n    return t.isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right);\\n  } else {\\n    return false;\\n  }\\n}\\n\\nfunction isType(node) {\\n  return t.isLiteral(node) || t.isObjectExpression(node) || t.isArrayExpression(node) || t.isIdentifier(node) || t.isMemberExpression(node);\\n}\\n\\n/**\\n * Tests for node types that need whitespace.\\n */\\n\\nexports.nodes = {\\n\\n  /**\\n   * Test if AssignmentExpression needs whitespace.\\n   */\\n\\n  AssignmentExpression: function AssignmentExpression(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    var state = crawl(node.right);\\n    if (state.hasCall && state.hasHelper || state.hasFunction) {\\n      return {\\n        before: state.hasFunction,\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if SwitchCase needs whitespace.\\n   */\\n\\n  SwitchCase: function SwitchCase(node /*: Object*/, parent /*: Object*/) /*: ?WhitespaceObject*/ {\\n    return {\\n      before: node.consequent.length || parent.cases[0] === node\\n    };\\n  },\\n\\n  /**\\n   * Test if LogicalExpression needs whitespace.\\n   */\\n\\n  LogicalExpression: function LogicalExpression(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (t.isFunction(node.left) || t.isFunction(node.right)) {\\n      return {\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if Literal needs whitespace.\\n   */\\n\\n  Literal: function Literal(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (node.value === \\"use strict\\") {\\n      return {\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if CallExpression needs whitespace.\\n   */\\n\\n  CallExpression: function CallExpression(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (t.isFunction(node.callee) || isHelper(node)) {\\n      return {\\n        before: true,\\n        after: true\\n      };\\n    }\\n  },\\n\\n  /**\\n   * Test if VariableDeclaration needs whitespace.\\n   */\\n\\n  VariableDeclaration: function VariableDeclaration(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    for (var i = 0; i < node.declarations.length; i++) {\\n      var declar = node.declarations[i];\\n\\n      var enabled = isHelper(declar.id) && !isType(declar.init);\\n      if (!enabled) {\\n        var state = crawl(declar.init);\\n        enabled = isHelper(declar.init) && state.hasCall || state.hasFunction;\\n      }\\n\\n      if (enabled) {\\n        return {\\n          before: true,\\n          after: true\\n        };\\n      }\\n    }\\n  },\\n\\n  /**\\n   * Test if IfStatement needs whitespace.\\n   */\\n\\n  IfStatement: function IfStatement(node /*: Object*/) /*: ?WhitespaceObject*/ {\\n    if (t.isBlockStatement(node.consequent)) {\\n      return {\\n        before: true,\\n        after: true\\n      };\\n    }\\n  }\\n};\\n\\n/**\\n * Test if Property or SpreadProperty needs whitespace.\\n */\\n\\nexports.nodes.ObjectProperty = exports.nodes.ObjectMethod = exports.nodes.SpreadProperty = function (node /*: Object*/, parent) /*: ?WhitespaceObject*/ {\\n  if (parent.properties[0] === node) {\\n    return {\\n      before: true\\n    };\\n  }\\n};\\n\\n/**\\n * Returns lists from node types that need whitespace.\\n */\\n\\nexports.list = {\\n\\n  /**\\n   * Return VariableDeclaration declarations init properties.\\n   */\\n\\n  VariableDeclaration: function VariableDeclaration(node /*: Object*/) /*: Array<Object>*/ {\\n    return _lodashCollectionMap2[\\"default\\"](node.declarations, \\"init\\");\\n  },\\n\\n  /**\\n   * Return VariableDeclaration elements.\\n   */\\n\\n  ArrayExpression: function ArrayExpression(node /*: Object*/) /*: Array<Object>*/ {\\n    return node.elements;\\n  },\\n\\n  /**\\n   * Return VariableDeclaration properties.\\n   */\\n\\n  ObjectExpression: function ObjectExpression(node /*: Object*/) /*: Array<Object>*/ {\\n    return node.properties;\\n  }\\n};\\n\\n/**\\n * Add whitespace tests for nodes and their aliases.\\n */\\n\\n_lodashCollectionEach2[\\"default\\"]({\\n  Function: true,\\n  Class: true,\\n  Loop: true,\\n  LabeledStatement: true,\\n  SwitchStatement: true,\\n  TryStatement: true\\n}, function (amounts, type) {\\n  if (_lodashLangIsBoolean2[\\"default\\"](amounts)) {\\n    amounts = { after: amounts, before: amounts };\\n  }\\n\\n  _lodashCollectionEach2[\\"default\\"]([type].concat(t.FLIPPED_ALIAS_KEYS[type] || []), function (type) {\\n    exports.nodes[type] = function () {\\n      return amounts;\\n    };\\n  });\\n});\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/node/whitespace.js\\n ** module id = 317\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a boolean primitive or object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isBoolean(false);\\n * // => true\\n *\\n * _.isBoolean(null);\\n * // => false\\n */\\nfunction isBoolean(value) {\\n  return value === true || value === false || (isObjectLike(value) && objToString.call(value) == boolTag);\\n}\\n\\nmodule.exports = isBoolean;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isBoolean.js\\n ** module id = 318\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is object-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\\n */\\nfunction isObjectLike(value) {\\n  return !!value && typeof value == \'object\';\\n}\\n\\nmodule.exports = isObjectLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isObjectLike.js\\n ** module id = 319\\n ** module chunks = 0\\n **/","module.exports = require(\'./forEach\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/collection/each.js\\n ** module id = 320\\n ** module chunks = 0\\n **/","var arrayEach = require(\'../internal/arrayEach\'),\\n    baseEach = require(\'../internal/baseEach\'),\\n    createForEach = require(\'../internal/createForEach\');\\n\\n/**\\n * Iterates over elements of `collection` invoking `iteratee` for each element.\\n * The `iteratee` is bound to `thisArg` and invoked with three arguments:\\n * (value, index|key, collection). Iteratee functions may exit iteration early\\n * by explicitly returning `false`.\\n *\\n * **Note:** As with other \\"Collections\\" methods, objects with a \\"length\\" property\\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\\n * may be used for object iteration.\\n *\\n * @static\\n * @memberOf _\\n * @alias each\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array|Object|string} Returns `collection`.\\n * @example\\n *\\n * _([1, 2]).forEach(function(n) {\\n *   console.log(n);\\n * }).value();\\n * // => logs each value from left to right and returns the array\\n *\\n * _.forEach({ \'a\': 1, \'b\': 2 }, function(n, key) {\\n *   console.log(n, key);\\n * });\\n * // => logs each value-key pair and returns the object (iteration order is not guaranteed)\\n */\\nvar forEach = createForEach(arrayEach, baseEach);\\n\\nmodule.exports = forEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/collection/forEach.js\\n ** module id = 321\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.forEach` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns `array`.\\n */\\nfunction arrayEach(array, iteratee) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (iteratee(array[index], index, array) === false) {\\n      break;\\n    }\\n  }\\n  return array;\\n}\\n\\nmodule.exports = arrayEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/arrayEach.js\\n ** module id = 322\\n ** module chunks = 0\\n **/","var baseForOwn = require(\'./baseForOwn\'),\\n    createBaseEach = require(\'./createBaseEach\');\\n\\n/**\\n * The base implementation of `_.forEach` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array|Object|string} Returns `collection`.\\n */\\nvar baseEach = createBaseEach(baseForOwn);\\n\\nmodule.exports = baseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseEach.js\\n ** module id = 323\\n ** module chunks = 0\\n **/","var baseFor = require(\'./baseFor\'),\\n    keys = require(\'../object/keys\');\\n\\n/**\\n * The base implementation of `_.forOwn` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Object} Returns `object`.\\n */\\nfunction baseForOwn(object, iteratee) {\\n  return baseFor(object, iteratee, keys);\\n}\\n\\nmodule.exports = baseForOwn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseForOwn.js\\n ** module id = 324\\n ** module chunks = 0\\n **/","var createBaseFor = require(\'./createBaseFor\');\\n\\n/**\\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\\n * each property. Iteratee functions may exit iteration early by explicitly\\n * returning `false`.\\n *\\n * @private\\n * @param {Object} object The object to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @param {Function} keysFunc The function to get the keys of `object`.\\n * @returns {Object} Returns `object`.\\n */\\nvar baseFor = createBaseFor();\\n\\nmodule.exports = baseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseFor.js\\n ** module id = 325\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a base function for `_.forIn` or `_.forInRight`.\\n *\\n * @private\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseFor(fromRight) {\\n  return function(object, iteratee, keysFunc) {\\n    var iterable = toObject(object),\\n        props = keysFunc(object),\\n        length = props.length,\\n        index = fromRight ? length : -1;\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      var key = props[index];\\n      if (iteratee(iterable[key], key, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return object;\\n  };\\n}\\n\\nmodule.exports = createBaseFor;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/createBaseFor.js\\n ** module id = 326\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Converts `value` to an object if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Object} Returns the object.\\n */\\nfunction toObject(value) {\\n  return isObject(value) ? value : Object(value);\\n}\\n\\nmodule.exports = toObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/toObject.js\\n ** module id = 327\\n ** module chunks = 0\\n **/","/**\\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String(\'\')`)\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\\n * @example\\n *\\n * _.isObject({});\\n * // => true\\n *\\n * _.isObject([1, 2, 3]);\\n * // => true\\n *\\n * _.isObject(1);\\n * // => false\\n */\\nfunction isObject(value) {\\n  // Avoid a V8 JIT bug in Chrome 19-20.\\n  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\\n  var type = typeof value;\\n  return !!value && (type == \'object\' || type == \'function\');\\n}\\n\\nmodule.exports = isObject;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isObject.js\\n ** module id = 328\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObject = require(\'../lang/isObject\'),\\n    shimKeys = require(\'../internal/shimKeys\');\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeKeys = getNative(Object, \'keys\');\\n\\n/**\\n * Creates an array of the own enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects. See the\\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\\n * for more details.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keys(new Foo);\\n * // => [\'a\', \'b\'] (iteration order is not guaranteed)\\n *\\n * _.keys(\'hi\');\\n * // => [\'0\', \'1\']\\n */\\nvar keys = !nativeKeys ? shimKeys : function(object) {\\n  var Ctor = object == null ? undefined : object.constructor;\\n  if ((typeof Ctor == \'function\' && Ctor.prototype === object) ||\\n      (typeof object != \'function\' && isArrayLike(object))) {\\n    return shimKeys(object);\\n  }\\n  return isObject(object) ? nativeKeys(object) : [];\\n};\\n\\nmodule.exports = keys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/object/keys.js\\n ** module id = 329\\n ** module chunks = 0\\n **/","var isNative = require(\'../lang/isNative\');\\n\\n/**\\n * Gets the native function at `key` of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {string} key The key of the method to get.\\n * @returns {*} Returns the function if it\'s native, else `undefined`.\\n */\\nfunction getNative(object, key) {\\n  var value = object == null ? undefined : object[key];\\n  return isNative(value) ? value : undefined;\\n}\\n\\nmodule.exports = getNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/getNative.js\\n ** module id = 330\\n ** module chunks = 0\\n **/","var isFunction = require(\'./isFunction\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used to detect host constructors (Safari > 5). */\\nvar reIsHostCtor = /^\\\\[object .+?Constructor\\\\]$/;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to resolve the decompiled source of functions. */\\nvar fnToString = Function.prototype.toString;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Used to detect if a method is native. */\\nvar reIsNative = RegExp(\'^\' +\\n  fnToString.call(hasOwnProperty).replace(/[\\\\\\\\^$.*+?()[\\\\]{}|]/g, \'\\\\\\\\$&\')\\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g, \'$1.*?\') + \'$\'\\n);\\n\\n/**\\n * Checks if `value` is a native function.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\\n * @example\\n *\\n * _.isNative(Array.prototype.push);\\n * // => true\\n *\\n * _.isNative(_);\\n * // => false\\n */\\nfunction isNative(value) {\\n  if (value == null) {\\n    return false;\\n  }\\n  if (isFunction(value)) {\\n    return reIsNative.test(fnToString.call(value));\\n  }\\n  return isObjectLike(value) && reIsHostCtor.test(value);\\n}\\n\\nmodule.exports = isNative;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isNative.js\\n ** module id = 331\\n ** module chunks = 0\\n **/","var isObject = require(\'./isObject\');\\n\\n/** `Object#toString` result references. */\\nvar funcTag = \'[object Function]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Function` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isFunction(_);\\n * // => true\\n *\\n * _.isFunction(/abc/);\\n * // => false\\n */\\nfunction isFunction(value) {\\n  // The use of `Object#toString` avoids issues with the `typeof` operator\\n  // in older versions of Chrome and Safari which return \'function\' for regexes\\n  // and Safari 8 which returns \'object\' for typed array constructors.\\n  return isObject(value) && objToString.call(value) == funcTag;\\n}\\n\\nmodule.exports = isFunction;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isFunction.js\\n ** module id = 332\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\');\\n\\n/**\\n * Checks if `value` is array-like.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\\n */\\nfunction isArrayLike(value) {\\n  return value != null && isLength(getLength(value));\\n}\\n\\nmodule.exports = isArrayLike;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isArrayLike.js\\n ** module id = 333\\n ** module chunks = 0\\n **/","var baseProperty = require(\'./baseProperty\');\\n\\n/**\\n * Gets the \\"length\\" property value of `object`.\\n *\\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {*} Returns the \\"length\\" value.\\n */\\nvar getLength = baseProperty(\'length\');\\n\\nmodule.exports = getLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/getLength.js\\n ** module id = 334\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.property` without support for deep paths.\\n *\\n * @private\\n * @param {string} key The key of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseProperty(key) {\\n  return function(object) {\\n    return object == null ? undefined : object[key];\\n  };\\n}\\n\\nmodule.exports = baseProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseProperty.js\\n ** module id = 335\\n ** module chunks = 0\\n **/","/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like length.\\n *\\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\\n */\\nfunction isLength(value) {\\n  return typeof value == \'number\' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\\n}\\n\\nmodule.exports = isLength;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isLength.js\\n ** module id = 336\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'./isIndex\'),\\n    isLength = require(\'./isLength\'),\\n    keysIn = require(\'../object/keysIn\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A fallback implementation of `Object.keys` which creates an array of the\\n * own enumerable property names of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n */\\nfunction shimKeys(object) {\\n  var props = keysIn(object),\\n      propsLength = props.length,\\n      length = propsLength && object.length;\\n\\n  var allowIndexes = !!length && isLength(length) &&\\n    (isArray(object) || isArguments(object));\\n\\n  var index = -1,\\n      result = [];\\n\\n  while (++index < propsLength) {\\n    var key = props[index];\\n    if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = shimKeys;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/shimKeys.js\\n ** module id = 337\\n ** module chunks = 0\\n **/","var isArrayLike = require(\'../internal/isArrayLike\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/** Native method references. */\\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\\n\\n/**\\n * Checks if `value` is classified as an `arguments` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArguments(function() { return arguments; }());\\n * // => true\\n *\\n * _.isArguments([1, 2, 3]);\\n * // => false\\n */\\nfunction isArguments(value) {\\n  return isObjectLike(value) && isArrayLike(value) &&\\n    hasOwnProperty.call(value, \'callee\') && !propertyIsEnumerable.call(value, \'callee\');\\n}\\n\\nmodule.exports = isArguments;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isArguments.js\\n ** module id = 338\\n ** module chunks = 0\\n **/","var getNative = require(\'../internal/getNative\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar arrayTag = \'[object Array]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/* Native method references for those with the same name as other `lodash` methods. */\\nvar nativeIsArray = getNative(Array, \'isArray\');\\n\\n/**\\n * Checks if `value` is classified as an `Array` object.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isArray([1, 2, 3]);\\n * // => true\\n *\\n * _.isArray(function() { return arguments; }());\\n * // => false\\n */\\nvar isArray = nativeIsArray || function(value) {\\n  return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\\n};\\n\\nmodule.exports = isArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isArray.js\\n ** module id = 339\\n ** module chunks = 0\\n **/","/** Used to detect unsigned integer values. */\\nvar reIsUint = /^\\\\d+$/;\\n\\n/**\\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\\n * of an array-like value.\\n */\\nvar MAX_SAFE_INTEGER = 9007199254740991;\\n\\n/**\\n * Checks if `value` is a valid array-like index.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\\n */\\nfunction isIndex(value, length) {\\n  value = (typeof value == \'number\' || reIsUint.test(value)) ? +value : -1;\\n  length = length == null ? MAX_SAFE_INTEGER : length;\\n  return value > -1 && value % 1 == 0 && value < length;\\n}\\n\\nmodule.exports = isIndex;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isIndex.js\\n ** module id = 340\\n ** module chunks = 0\\n **/","var isArguments = require(\'../lang/isArguments\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isIndex = require(\'../internal/isIndex\'),\\n    isLength = require(\'../internal/isLength\'),\\n    isObject = require(\'../lang/isObject\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Creates an array of the own and inherited enumerable property names of `object`.\\n *\\n * **Note:** Non-object values are coerced to objects.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the array of property names.\\n * @example\\n *\\n * function Foo() {\\n *   this.a = 1;\\n *   this.b = 2;\\n * }\\n *\\n * Foo.prototype.c = 3;\\n *\\n * _.keysIn(new Foo);\\n * // => [\'a\', \'b\', \'c\'] (iteration order is not guaranteed)\\n */\\nfunction keysIn(object) {\\n  if (object == null) {\\n    return [];\\n  }\\n  if (!isObject(object)) {\\n    object = Object(object);\\n  }\\n  var length = object.length;\\n  length = (length && isLength(length) &&\\n    (isArray(object) || isArguments(object)) && length) || 0;\\n\\n  var Ctor = object.constructor,\\n      index = -1,\\n      isProto = typeof Ctor == \'function\' && Ctor.prototype === object,\\n      result = Array(length),\\n      skipIndexes = length > 0;\\n\\n  while (++index < length) {\\n    result[index] = (index + \'\');\\n  }\\n  for (var key in object) {\\n    if (!(skipIndexes && isIndex(key, length)) &&\\n        !(key == \'constructor\' && (isProto || !hasOwnProperty.call(object, key)))) {\\n      result.push(key);\\n    }\\n  }\\n  return result;\\n}\\n\\nmodule.exports = keysIn;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/object/keysIn.js\\n ** module id = 341\\n ** module chunks = 0\\n **/","var getLength = require(\'./getLength\'),\\n    isLength = require(\'./isLength\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * Creates a `baseEach` or `baseEachRight` function.\\n *\\n * @private\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @param {boolean} [fromRight] Specify iterating from right to left.\\n * @returns {Function} Returns the new base function.\\n */\\nfunction createBaseEach(eachFunc, fromRight) {\\n  return function(collection, iteratee) {\\n    var length = collection ? getLength(collection) : 0;\\n    if (!isLength(length)) {\\n      return eachFunc(collection, iteratee);\\n    }\\n    var index = fromRight ? length : -1,\\n        iterable = toObject(collection);\\n\\n    while ((fromRight ? index-- : ++index < length)) {\\n      if (iteratee(iterable[index], index, iterable) === false) {\\n        break;\\n      }\\n    }\\n    return collection;\\n  };\\n}\\n\\nmodule.exports = createBaseEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/createBaseEach.js\\n ** module id = 342\\n ** module chunks = 0\\n **/","var bindCallback = require(\'./bindCallback\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/**\\n * Creates a function for `_.forEach` or `_.forEachRight`.\\n *\\n * @private\\n * @param {Function} arrayFunc The function to iterate over an array.\\n * @param {Function} eachFunc The function to iterate over a collection.\\n * @returns {Function} Returns the new each function.\\n */\\nfunction createForEach(arrayFunc, eachFunc) {\\n  return function(collection, iteratee, thisArg) {\\n    return (typeof iteratee == \'function\' && thisArg === undefined && isArray(collection))\\n      ? arrayFunc(collection, iteratee)\\n      : eachFunc(collection, bindCallback(iteratee, thisArg, 3));\\n  };\\n}\\n\\nmodule.exports = createForEach;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/createForEach.js\\n ** module id = 343\\n ** module chunks = 0\\n **/","var identity = require(\'../utility/identity\');\\n\\n/**\\n * A specialized version of `baseCallback` which only supports `this` binding\\n * and specifying the number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {Function} func The function to bind.\\n * @param {*} thisArg The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction bindCallback(func, thisArg, argCount) {\\n  if (typeof func != \'function\') {\\n    return identity;\\n  }\\n  if (thisArg === undefined) {\\n    return func;\\n  }\\n  switch (argCount) {\\n    case 1: return function(value) {\\n      return func.call(thisArg, value);\\n    };\\n    case 3: return function(value, index, collection) {\\n      return func.call(thisArg, value, index, collection);\\n    };\\n    case 4: return function(accumulator, value, index, collection) {\\n      return func.call(thisArg, accumulator, value, index, collection);\\n    };\\n    case 5: return function(value, other, key, object, source) {\\n      return func.call(thisArg, value, other, key, object, source);\\n    };\\n  }\\n  return function() {\\n    return func.apply(thisArg, arguments);\\n  };\\n}\\n\\nmodule.exports = bindCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/bindCallback.js\\n ** module id = 344\\n ** module chunks = 0\\n **/","/**\\n * This method returns the first argument provided to it.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {*} value Any value.\\n * @returns {*} Returns `value`.\\n * @example\\n *\\n * var object = { \'user\': \'fred\' };\\n *\\n * _.identity(object) === object;\\n * // => true\\n */\\nfunction identity(value) {\\n  return value;\\n}\\n\\nmodule.exports = identity;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/utility/identity.js\\n ** module id = 345\\n ** module chunks = 0\\n **/","var arrayMap = require(\'../internal/arrayMap\'),\\n    baseCallback = require(\'../internal/baseCallback\'),\\n    baseMap = require(\'../internal/baseMap\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/**\\n * Creates an array of values by running each element in `collection` through\\n * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three\\n * arguments: (value, index|key, collection).\\n *\\n * If a property name is provided for `iteratee` the created `_.property`\\n * style callback returns the property value of the given element.\\n *\\n * If a value is also provided for `thisArg` the created `_.matchesProperty`\\n * style callback returns `true` for elements that have a matching property\\n * value, else `false`.\\n *\\n * If an object is provided for `iteratee` the created `_.matches` style\\n * callback returns `true` for elements that have the properties of the given\\n * object, else `false`.\\n *\\n * Many lodash methods are guarded to work as iteratees for methods like\\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\\n *\\n * The guarded methods are:\\n * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`,\\n * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`,\\n * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`,\\n * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`,\\n * `sum`, `uniq`, and `words`\\n *\\n * @static\\n * @memberOf _\\n * @alias collect\\n * @category Collection\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function|Object|string} [iteratee=_.identity] The function invoked\\n *  per iteration.\\n * @param {*} [thisArg] The `this` binding of `iteratee`.\\n * @returns {Array} Returns the new mapped array.\\n * @example\\n *\\n * function timesThree(n) {\\n *   return n * 3;\\n * }\\n *\\n * _.map([1, 2], timesThree);\\n * // => [3, 6]\\n *\\n * _.map({ \'a\': 1, \'b\': 2 }, timesThree);\\n * // => [3, 6] (iteration order is not guaranteed)\\n *\\n * var users = [\\n *   { \'user\': \'barney\' },\\n *   { \'user\': \'fred\' }\\n * ];\\n *\\n * // using the `_.property` callback shorthand\\n * _.map(users, \'user\');\\n * // => [\'barney\', \'fred\']\\n */\\nfunction map(collection, iteratee, thisArg) {\\n  var func = isArray(collection) ? arrayMap : baseMap;\\n  iteratee = baseCallback(iteratee, thisArg, 3);\\n  return func(collection, iteratee);\\n}\\n\\nmodule.exports = map;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/collection/map.js\\n ** module id = 346\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.map` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns the new mapped array.\\n */\\nfunction arrayMap(array, iteratee) {\\n  var index = -1,\\n      length = array.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    result[index] = iteratee(array[index], index, array);\\n  }\\n  return result;\\n}\\n\\nmodule.exports = arrayMap;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/arrayMap.js\\n ** module id = 347\\n ** module chunks = 0\\n **/","var baseMatches = require(\'./baseMatches\'),\\n    baseMatchesProperty = require(\'./baseMatchesProperty\'),\\n    bindCallback = require(\'./bindCallback\'),\\n    identity = require(\'../utility/identity\'),\\n    property = require(\'../utility/property\');\\n\\n/**\\n * The base implementation of `_.callback` which supports specifying the\\n * number of arguments to provide to `func`.\\n *\\n * @private\\n * @param {*} [func=_.identity] The value to convert to a callback.\\n * @param {*} [thisArg] The `this` binding of `func`.\\n * @param {number} [argCount] The number of arguments to provide to `func`.\\n * @returns {Function} Returns the callback.\\n */\\nfunction baseCallback(func, thisArg, argCount) {\\n  var type = typeof func;\\n  if (type == \'function\') {\\n    return thisArg === undefined\\n      ? func\\n      : bindCallback(func, thisArg, argCount);\\n  }\\n  if (func == null) {\\n    return identity;\\n  }\\n  if (type == \'object\') {\\n    return baseMatches(func);\\n  }\\n  return thisArg === undefined\\n    ? property(func)\\n    : baseMatchesProperty(func, thisArg);\\n}\\n\\nmodule.exports = baseCallback;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseCallback.js\\n ** module id = 348\\n ** module chunks = 0\\n **/","var baseIsMatch = require(\'./baseIsMatch\'),\\n    getMatchData = require(\'./getMatchData\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.matches` which does not clone `source`.\\n *\\n * @private\\n * @param {Object} source The object of property values to match.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatches(source) {\\n  var matchData = getMatchData(source);\\n  if (matchData.length == 1 && matchData[0][2]) {\\n    var key = matchData[0][0],\\n        value = matchData[0][1];\\n\\n    return function(object) {\\n      if (object == null) {\\n        return false;\\n      }\\n      return object[key] === value && (value !== undefined || (key in toObject(object)));\\n    };\\n  }\\n  return function(object) {\\n    return baseIsMatch(object, matchData);\\n  };\\n}\\n\\nmodule.exports = baseMatches;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseMatches.js\\n ** module id = 349\\n ** module chunks = 0\\n **/","var baseIsEqual = require(\'./baseIsEqual\'),\\n    toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `_.isMatch` without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Object} object The object to inspect.\\n * @param {Array} matchData The propery names, values, and compare flags to match.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\\n */\\nfunction baseIsMatch(object, matchData, customizer) {\\n  var index = matchData.length,\\n      length = index,\\n      noCustomizer = !customizer;\\n\\n  if (object == null) {\\n    return !length;\\n  }\\n  object = toObject(object);\\n  while (index--) {\\n    var data = matchData[index];\\n    if ((noCustomizer && data[2])\\n          ? data[1] !== object[data[0]]\\n          : !(data[0] in object)\\n        ) {\\n      return false;\\n    }\\n  }\\n  while (++index < length) {\\n    data = matchData[index];\\n    var key = data[0],\\n        objValue = object[key],\\n        srcValue = data[1];\\n\\n    if (noCustomizer && data[2]) {\\n      if (objValue === undefined && !(key in object)) {\\n        return false;\\n      }\\n    } else {\\n      var result = customizer ? customizer(objValue, srcValue, key) : undefined;\\n      if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {\\n        return false;\\n      }\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = baseIsMatch;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseIsMatch.js\\n ** module id = 350\\n ** module chunks = 0\\n **/","var baseIsEqualDeep = require(\'./baseIsEqualDeep\'),\\n    isObject = require(\'../lang/isObject\'),\\n    isObjectLike = require(\'./isObjectLike\');\\n\\n/**\\n * The base implementation of `_.isEqual` without support for `this` binding\\n * `customizer` functions.\\n *\\n * @private\\n * @param {*} value The value to compare.\\n * @param {*} other The other value to compare.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\\n */\\nfunction baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {\\n  if (value === other) {\\n    return true;\\n  }\\n  if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\\n    return value !== value && other !== other;\\n  }\\n  return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);\\n}\\n\\nmodule.exports = baseIsEqual;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseIsEqual.js\\n ** module id = 351\\n ** module chunks = 0\\n **/","var equalArrays = require(\'./equalArrays\'),\\n    equalByTag = require(\'./equalByTag\'),\\n    equalObjects = require(\'./equalObjects\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isTypedArray = require(\'../lang/isTypedArray\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    objectTag = \'[object Object]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * A specialized version of `baseIsEqual` for arrays and objects which performs\\n * deep comparisons and tracks traversed objects enabling objects with circular\\n * references to be compared.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing objects.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA=[]] Tracks traversed `value` objects.\\n * @param {Array} [stackB=[]] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objIsArr = isArray(object),\\n      othIsArr = isArray(other),\\n      objTag = arrayTag,\\n      othTag = arrayTag;\\n\\n  if (!objIsArr) {\\n    objTag = objToString.call(object);\\n    if (objTag == argsTag) {\\n      objTag = objectTag;\\n    } else if (objTag != objectTag) {\\n      objIsArr = isTypedArray(object);\\n    }\\n  }\\n  if (!othIsArr) {\\n    othTag = objToString.call(other);\\n    if (othTag == argsTag) {\\n      othTag = objectTag;\\n    } else if (othTag != objectTag) {\\n      othIsArr = isTypedArray(other);\\n    }\\n  }\\n  var objIsObj = objTag == objectTag,\\n      othIsObj = othTag == objectTag,\\n      isSameTag = objTag == othTag;\\n\\n  if (isSameTag && !(objIsArr || objIsObj)) {\\n    return equalByTag(object, other, objTag);\\n  }\\n  if (!isLoose) {\\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, \'__wrapped__\'),\\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, \'__wrapped__\');\\n\\n    if (objIsWrapped || othIsWrapped) {\\n      return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);\\n    }\\n  }\\n  if (!isSameTag) {\\n    return false;\\n  }\\n  // Assume cyclic values are equal.\\n  // For more information on detecting circular references see https://es5.github.io/#JO.\\n  stackA || (stackA = []);\\n  stackB || (stackB = []);\\n\\n  var length = stackA.length;\\n  while (length--) {\\n    if (stackA[length] == object) {\\n      return stackB[length] == other;\\n    }\\n  }\\n  // Add `object` and `other` to the stack of traversed objects.\\n  stackA.push(object);\\n  stackB.push(other);\\n\\n  var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);\\n\\n  stackA.pop();\\n  stackB.pop();\\n\\n  return result;\\n}\\n\\nmodule.exports = baseIsEqualDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseIsEqualDeep.js\\n ** module id = 352\\n ** module chunks = 0\\n **/","var arraySome = require(\'./arraySome\');\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for arrays with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Array} array The array to compare.\\n * @param {Array} other The other array to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing arrays.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\\n */\\nfunction equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var index = -1,\\n      arrLength = array.length,\\n      othLength = other.length;\\n\\n  if (arrLength != othLength && !(isLoose && othLength > arrLength)) {\\n    return false;\\n  }\\n  // Ignore non-index properties.\\n  while (++index < arrLength) {\\n    var arrValue = array[index],\\n        othValue = other[index],\\n        result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;\\n\\n    if (result !== undefined) {\\n      if (result) {\\n        continue;\\n      }\\n      return false;\\n    }\\n    // Recursively compare arrays (susceptible to call stack limits).\\n    if (isLoose) {\\n      if (!arraySome(other, function(othValue) {\\n            return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);\\n          })) {\\n        return false;\\n      }\\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalArrays;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/equalArrays.js\\n ** module id = 353\\n ** module chunks = 0\\n **/","/**\\n * A specialized version of `_.some` for arrays without support for callback\\n * shorthands and `this` binding.\\n *\\n * @private\\n * @param {Array} array The array to iterate over.\\n * @param {Function} predicate The function invoked per iteration.\\n * @returns {boolean} Returns `true` if any element passes the predicate check,\\n *  else `false`.\\n */\\nfunction arraySome(array, predicate) {\\n  var index = -1,\\n      length = array.length;\\n\\n  while (++index < length) {\\n    if (predicate(array[index], index, array)) {\\n      return true;\\n    }\\n  }\\n  return false;\\n}\\n\\nmodule.exports = arraySome;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/arraySome.js\\n ** module id = 354\\n ** module chunks = 0\\n **/","/** `Object#toString` result references. */\\nvar boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    numberTag = \'[object Number]\',\\n    regexpTag = \'[object RegExp]\',\\n    stringTag = \'[object String]\';\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for comparing objects of\\n * the same `toStringTag`.\\n *\\n * **Note:** This function only supports comparing values with tags of\\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {string} tag The `toStringTag` of the objects to compare.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalByTag(object, other, tag) {\\n  switch (tag) {\\n    case boolTag:\\n    case dateTag:\\n      // Coerce dates and booleans to numbers, dates to milliseconds and booleans\\n      // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.\\n      return +object == +other;\\n\\n    case errorTag:\\n      return object.name == other.name && object.message == other.message;\\n\\n    case numberTag:\\n      // Treat `NaN` vs. `NaN` as equal.\\n      return (object != +object)\\n        ? other != +other\\n        : object == +other;\\n\\n    case regexpTag:\\n    case stringTag:\\n      // Coerce regexes to strings and treat strings primitives and string\\n      // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.\\n      return object == (other + \'\');\\n  }\\n  return false;\\n}\\n\\nmodule.exports = equalByTag;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/equalByTag.js\\n ** module id = 355\\n ** module chunks = 0\\n **/","var keys = require(\'../object/keys\');\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/** Used to check objects for own properties. */\\nvar hasOwnProperty = objectProto.hasOwnProperty;\\n\\n/**\\n * A specialized version of `baseIsEqualDeep` for objects with support for\\n * partial deep comparisons.\\n *\\n * @private\\n * @param {Object} object The object to compare.\\n * @param {Object} other The other object to compare.\\n * @param {Function} equalFunc The function to determine equivalents of values.\\n * @param {Function} [customizer] The function to customize comparing values.\\n * @param {boolean} [isLoose] Specify performing partial comparisons.\\n * @param {Array} [stackA] Tracks traversed `value` objects.\\n * @param {Array} [stackB] Tracks traversed `other` objects.\\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\\n */\\nfunction equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {\\n  var objProps = keys(object),\\n      objLength = objProps.length,\\n      othProps = keys(other),\\n      othLength = othProps.length;\\n\\n  if (objLength != othLength && !isLoose) {\\n    return false;\\n  }\\n  var index = objLength;\\n  while (index--) {\\n    var key = objProps[index];\\n    if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {\\n      return false;\\n    }\\n  }\\n  var skipCtor = isLoose;\\n  while (++index < objLength) {\\n    key = objProps[index];\\n    var objValue = object[key],\\n        othValue = other[key],\\n        result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;\\n\\n    // Recursively compare objects (susceptible to call stack limits).\\n    if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {\\n      return false;\\n    }\\n    skipCtor || (skipCtor = key == \'constructor\');\\n  }\\n  if (!skipCtor) {\\n    var objCtor = object.constructor,\\n        othCtor = other.constructor;\\n\\n    // Non `Object` object instances with different constructors are not equal.\\n    if (objCtor != othCtor &&\\n        (\'constructor\' in object && \'constructor\' in other) &&\\n        !(typeof objCtor == \'function\' && objCtor instanceof objCtor &&\\n          typeof othCtor == \'function\' && othCtor instanceof othCtor)) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\nmodule.exports = equalObjects;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/equalObjects.js\\n ** module id = 356\\n ** module chunks = 0\\n **/","var isLength = require(\'../internal/isLength\'),\\n    isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar argsTag = \'[object Arguments]\',\\n    arrayTag = \'[object Array]\',\\n    boolTag = \'[object Boolean]\',\\n    dateTag = \'[object Date]\',\\n    errorTag = \'[object Error]\',\\n    funcTag = \'[object Function]\',\\n    mapTag = \'[object Map]\',\\n    numberTag = \'[object Number]\',\\n    objectTag = \'[object Object]\',\\n    regexpTag = \'[object RegExp]\',\\n    setTag = \'[object Set]\',\\n    stringTag = \'[object String]\',\\n    weakMapTag = \'[object WeakMap]\';\\n\\nvar arrayBufferTag = \'[object ArrayBuffer]\',\\n    float32Tag = \'[object Float32Array]\',\\n    float64Tag = \'[object Float64Array]\',\\n    int8Tag = \'[object Int8Array]\',\\n    int16Tag = \'[object Int16Array]\',\\n    int32Tag = \'[object Int32Array]\',\\n    uint8Tag = \'[object Uint8Array]\',\\n    uint8ClampedTag = \'[object Uint8ClampedArray]\',\\n    uint16Tag = \'[object Uint16Array]\',\\n    uint32Tag = \'[object Uint32Array]\';\\n\\n/** Used to identify `toStringTag` values of typed arrays. */\\nvar typedArrayTags = {};\\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\\ntypedArrayTags[uint32Tag] = true;\\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a typed array.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isTypedArray(new Uint8Array);\\n * // => true\\n *\\n * _.isTypedArray([]);\\n * // => false\\n */\\nfunction isTypedArray(value) {\\n  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\\n}\\n\\nmodule.exports = isTypedArray;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isTypedArray.js\\n ** module id = 357\\n ** module chunks = 0\\n **/","var isStrictComparable = require(\'./isStrictComparable\'),\\n    pairs = require(\'../object/pairs\');\\n\\n/**\\n * Gets the propery names, values, and compare flags of `object`.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the match data of `object`.\\n */\\nfunction getMatchData(object) {\\n  var result = pairs(object),\\n      length = result.length;\\n\\n  while (length--) {\\n    result[length][2] = isStrictComparable(result[length][1]);\\n  }\\n  return result;\\n}\\n\\nmodule.exports = getMatchData;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/getMatchData.js\\n ** module id = 358\\n ** module chunks = 0\\n **/","var isObject = require(\'../lang/isObject\');\\n\\n/**\\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` if suitable for strict\\n *  equality comparisons, else `false`.\\n */\\nfunction isStrictComparable(value) {\\n  return value === value && !isObject(value);\\n}\\n\\nmodule.exports = isStrictComparable;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isStrictComparable.js\\n ** module id = 359\\n ** module chunks = 0\\n **/","var keys = require(\'./keys\'),\\n    toObject = require(\'../internal/toObject\');\\n\\n/**\\n * Creates a two dimensional array of the key-value pairs for `object`,\\n * e.g. `[[key1, value1], [key2, value2]]`.\\n *\\n * @static\\n * @memberOf _\\n * @category Object\\n * @param {Object} object The object to query.\\n * @returns {Array} Returns the new array of key-value pairs.\\n * @example\\n *\\n * _.pairs({ \'barney\': 36, \'fred\': 40 });\\n * // => [[\'barney\', 36], [\'fred\', 40]] (iteration order is not guaranteed)\\n */\\nfunction pairs(object) {\\n  object = toObject(object);\\n\\n  var index = -1,\\n      props = keys(object),\\n      length = props.length,\\n      result = Array(length);\\n\\n  while (++index < length) {\\n    var key = props[index];\\n    result[index] = [key, object[key]];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = pairs;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/object/pairs.js\\n ** module id = 360\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    baseIsEqual = require(\'./baseIsEqual\'),\\n    baseSlice = require(\'./baseSlice\'),\\n    isArray = require(\'../lang/isArray\'),\\n    isKey = require(\'./isKey\'),\\n    isStrictComparable = require(\'./isStrictComparable\'),\\n    last = require(\'../array/last\'),\\n    toObject = require(\'./toObject\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * The base implementation of `_.matchesProperty` which does not clone `srcValue`.\\n *\\n * @private\\n * @param {string} path The path of the property to get.\\n * @param {*} srcValue The value to compare.\\n * @returns {Function} Returns the new function.\\n */\\nfunction baseMatchesProperty(path, srcValue) {\\n  var isArr = isArray(path),\\n      isCommon = isKey(path) && isStrictComparable(srcValue),\\n      pathKey = (path + \'\');\\n\\n  path = toPath(path);\\n  return function(object) {\\n    if (object == null) {\\n      return false;\\n    }\\n    var key = pathKey;\\n    object = toObject(object);\\n    if ((isArr || !isCommon) && !(key in object)) {\\n      object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\\n      if (object == null) {\\n        return false;\\n      }\\n      key = last(path);\\n      object = toObject(object);\\n    }\\n    return object[key] === srcValue\\n      ? (srcValue !== undefined || (key in object))\\n      : baseIsEqual(srcValue, object[key], undefined, true);\\n  };\\n}\\n\\nmodule.exports = baseMatchesProperty;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseMatchesProperty.js\\n ** module id = 361\\n ** module chunks = 0\\n **/","var toObject = require(\'./toObject\');\\n\\n/**\\n * The base implementation of `get` without support for string paths\\n * and default values.\\n *\\n * @private\\n * @param {Object} object The object to query.\\n * @param {Array} path The path of the property to get.\\n * @param {string} [pathKey] The key representation of path.\\n * @returns {*} Returns the resolved value.\\n */\\nfunction baseGet(object, path, pathKey) {\\n  if (object == null) {\\n    return;\\n  }\\n  if (pathKey !== undefined && pathKey in toObject(object)) {\\n    path = [pathKey];\\n  }\\n  var index = 0,\\n      length = path.length;\\n\\n  while (object != null && index < length) {\\n    object = object[path[index++]];\\n  }\\n  return (index && index == length) ? object : undefined;\\n}\\n\\nmodule.exports = baseGet;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseGet.js\\n ** module id = 362\\n ** module chunks = 0\\n **/","/**\\n * The base implementation of `_.slice` without an iteratee call guard.\\n *\\n * @private\\n * @param {Array} array The array to slice.\\n * @param {number} [start=0] The start position.\\n * @param {number} [end=array.length] The end position.\\n * @returns {Array} Returns the slice of `array`.\\n */\\nfunction baseSlice(array, start, end) {\\n  var index = -1,\\n      length = array.length;\\n\\n  start = start == null ? 0 : (+start || 0);\\n  if (start < 0) {\\n    start = -start > length ? 0 : (length + start);\\n  }\\n  end = (end === undefined || end > length) ? length : (+end || 0);\\n  if (end < 0) {\\n    end += length;\\n  }\\n  length = start > end ? 0 : ((end - start) >>> 0);\\n  start >>>= 0;\\n\\n  var result = Array(length);\\n  while (++index < length) {\\n    result[index] = array[index + start];\\n  }\\n  return result;\\n}\\n\\nmodule.exports = baseSlice;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseSlice.js\\n ** module id = 363\\n ** module chunks = 0\\n **/","var isArray = require(\'../lang/isArray\'),\\n    toObject = require(\'./toObject\');\\n\\n/** Used to match property names within property paths. */\\nvar reIsDeepProp = /\\\\.|\\\\[(?:[^[\\\\]]*|([\\"\'])(?:(?!\\\\1)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?\\\\1)\\\\]/,\\n    reIsPlainProp = /^\\\\w*$/;\\n\\n/**\\n * Checks if `value` is a property name and not a property path.\\n *\\n * @private\\n * @param {*} value The value to check.\\n * @param {Object} [object] The object to query keys on.\\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\\n */\\nfunction isKey(value, object) {\\n  var type = typeof value;\\n  if ((type == \'string\' && reIsPlainProp.test(value)) || type == \'number\') {\\n    return true;\\n  }\\n  if (isArray(value)) {\\n    return false;\\n  }\\n  var result = !reIsDeepProp.test(value);\\n  return result || (object != null && value in toObject(object));\\n}\\n\\nmodule.exports = isKey;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/isKey.js\\n ** module id = 364\\n ** module chunks = 0\\n **/","/**\\n * Gets the last element of `array`.\\n *\\n * @static\\n * @memberOf _\\n * @category Array\\n * @param {Array} array The array to query.\\n * @returns {*} Returns the last element of `array`.\\n * @example\\n *\\n * _.last([1, 2, 3]);\\n * // => 3\\n */\\nfunction last(array) {\\n  var length = array ? array.length : 0;\\n  return length ? array[length - 1] : undefined;\\n}\\n\\nmodule.exports = last;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/array/last.js\\n ** module id = 365\\n ** module chunks = 0\\n **/","var baseToString = require(\'./baseToString\'),\\n    isArray = require(\'../lang/isArray\');\\n\\n/** Used to match property names within property paths. */\\nvar rePropName = /[^.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\\"\'])((?:(?!\\\\2)[^\\\\n\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]/g;\\n\\n/** Used to match backslashes in property paths. */\\nvar reEscapeChar = /\\\\\\\\(\\\\\\\\)?/g;\\n\\n/**\\n * Converts `value` to property path array if it\'s not one.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {Array} Returns the property path array.\\n */\\nfunction toPath(value) {\\n  if (isArray(value)) {\\n    return value;\\n  }\\n  var result = [];\\n  baseToString(value).replace(rePropName, function(match, number, quote, string) {\\n    result.push(quote ? string.replace(reEscapeChar, \'$1\') : (number || match));\\n  });\\n  return result;\\n}\\n\\nmodule.exports = toPath;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/toPath.js\\n ** module id = 366\\n ** module chunks = 0\\n **/","/**\\n * Converts `value` to a string if it\'s not one. An empty string is returned\\n * for `null` or `undefined` values.\\n *\\n * @private\\n * @param {*} value The value to process.\\n * @returns {string} Returns the string.\\n */\\nfunction baseToString(value) {\\n  return value == null ? \'\' : (value + \'\');\\n}\\n\\nmodule.exports = baseToString;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseToString.js\\n ** module id = 367\\n ** module chunks = 0\\n **/","var baseProperty = require(\'../internal/baseProperty\'),\\n    basePropertyDeep = require(\'../internal/basePropertyDeep\'),\\n    isKey = require(\'../internal/isKey\');\\n\\n/**\\n * Creates a function that returns the property value at `path` on a\\n * given object.\\n *\\n * @static\\n * @memberOf _\\n * @category Utility\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n * @example\\n *\\n * var objects = [\\n *   { \'a\': { \'b\': { \'c\': 2 } } },\\n *   { \'a\': { \'b\': { \'c\': 1 } } }\\n * ];\\n *\\n * _.map(objects, _.property(\'a.b.c\'));\\n * // => [2, 1]\\n *\\n * _.pluck(_.sortBy(objects, _.property([\'a\', \'b\', \'c\'])), \'a.b.c\');\\n * // => [1, 2]\\n */\\nfunction property(path) {\\n  return isKey(path) ? baseProperty(path) : basePropertyDeep(path);\\n}\\n\\nmodule.exports = property;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/utility/property.js\\n ** module id = 368\\n ** module chunks = 0\\n **/","var baseGet = require(\'./baseGet\'),\\n    toPath = require(\'./toPath\');\\n\\n/**\\n * A specialized version of `baseProperty` which supports deep paths.\\n *\\n * @private\\n * @param {Array|string} path The path of the property to get.\\n * @returns {Function} Returns the new function.\\n */\\nfunction basePropertyDeep(path) {\\n  var pathKey = (path + \'\');\\n  path = toPath(path);\\n  return function(object) {\\n    return baseGet(object, path, pathKey);\\n  };\\n}\\n\\nmodule.exports = basePropertyDeep;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/basePropertyDeep.js\\n ** module id = 369\\n ** module chunks = 0\\n **/","var baseEach = require(\'./baseEach\'),\\n    isArrayLike = require(\'./isArrayLike\');\\n\\n/**\\n * The base implementation of `_.map` without support for callback shorthands\\n * and `this` binding.\\n *\\n * @private\\n * @param {Array|Object|string} collection The collection to iterate over.\\n * @param {Function} iteratee The function invoked per iteration.\\n * @returns {Array} Returns the new mapped array.\\n */\\nfunction baseMap(collection, iteratee) {\\n  var index = -1,\\n      result = isArrayLike(collection) ? Array(collection.length) : [];\\n\\n  baseEach(collection, function(value, key, collection) {\\n    result[++index] = iteratee(value, key, collection);\\n  });\\n  return result;\\n}\\n\\nmodule.exports = baseMap;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/internal/baseMap.js\\n ** module id = 370\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.NullableTypeAnnotation = NullableTypeAnnotation;\\nexports.UpdateExpression = UpdateExpression;\\nexports.ObjectExpression = ObjectExpression;\\nexports.Binary = Binary;\\nexports.BinaryExpression = BinaryExpression;\\nexports.SequenceExpression = SequenceExpression;\\nexports.YieldExpression = YieldExpression;\\nexports.ClassExpression = ClassExpression;\\nexports.UnaryLike = UnaryLike;\\nexports.FunctionExpression = FunctionExpression;\\nexports.ArrowFunctionExpression = ArrowFunctionExpression;\\nexports.ConditionalExpression = ConditionalExpression;\\nexports.AssignmentExpression = AssignmentExpression;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar PRECEDENCE = {\\n  \\"||\\": 0,\\n  \\"&&\\": 1,\\n  \\"|\\": 2,\\n  \\"^\\": 3,\\n  \\"&\\": 4,\\n  \\"==\\": 5,\\n  \\"===\\": 5,\\n  \\"!=\\": 5,\\n  \\"!==\\": 5,\\n  \\"<\\": 6,\\n  \\">\\": 6,\\n  \\"<=\\": 6,\\n  \\">=\\": 6,\\n  \\"in\\": 6,\\n  \\"instanceof\\": 6,\\n  \\">>\\": 7,\\n  \\"<<\\": 7,\\n  \\">>>\\": 7,\\n  \\"+\\": 8,\\n  \\"-\\": 8,\\n  \\"*\\": 9,\\n  \\"/\\": 9,\\n  \\"%\\": 9,\\n  \\"**\\": 10\\n};\\n\\nfunction NullableTypeAnnotation(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  return t.isArrayTypeAnnotation(parent);\\n}\\n\\nexports.FunctionTypeAnnotation = NullableTypeAnnotation;\\n\\nfunction UpdateExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isMemberExpression(parent) && parent.object === node) {\\n    // (foo++).test()\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction ObjectExpression(node /*: Object*/, parent /*: Object*/, printStack /*: Array<Object>*/) /*: boolean*/ {\\n  if (t.isExpressionStatement(parent)) {\\n    // ({ foo: \\"bar\\" });\\n    return true;\\n  }\\n\\n  return isFirstInStatement(printStack, true);\\n}\\n\\nfunction Binary(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if ((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) {\\n    return true;\\n  }\\n\\n  if (t.isUnaryLike(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isMemberExpression(parent) && parent.object === node) {\\n    return true;\\n  }\\n\\n  if (t.isBinary(parent)) {\\n    var parentOp = parent.operator;\\n    var parentPos = PRECEDENCE[parentOp];\\n\\n    var nodeOp = node.operator;\\n    var nodePos = PRECEDENCE[nodeOp];\\n\\n    if (parentPos > nodePos) {\\n      return true;\\n    }\\n\\n    // Logical expressions with the same precedence don\'t need parens.\\n    if (parentPos === nodePos && parent.right === node && !t.isLogicalExpression(parent)) {\\n      return true;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\nfunction BinaryExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (node.operator === \\"in\\") {\\n    // let i = (1 in []);\\n    if (t.isVariableDeclarator(parent)) {\\n      return true;\\n    }\\n\\n    // for ((1 in []);;);\\n    if (t.isFor(parent)) {\\n      return true;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\nfunction SequenceExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isForStatement(parent)) {\\n    // Although parentheses wouldn\\"t hurt around sequence\\n    // expressions in the head of for loops, traditional style\\n    // dictates that e.g. i++, j++ should not be wrapped with\\n    // parentheses.\\n    return false;\\n  }\\n\\n  if (t.isExpressionStatement(parent) && parent.expression === node) {\\n    return false;\\n  }\\n\\n  if (t.isReturnStatement(parent)) {\\n    return false;\\n  }\\n\\n  if (t.isThrowStatement(parent)) {\\n    return false;\\n  }\\n\\n  if (t.isSwitchStatement(parent) && parent.discriminant === node) {\\n    return false;\\n  }\\n\\n  if (t.isWhileStatement(parent) && parent.test === node) {\\n    return false;\\n  }\\n\\n  if (t.isIfStatement(parent) && parent.test === node) {\\n    return false;\\n  }\\n\\n  if (t.isForInStatement(parent) && parent.right === node) {\\n    return false;\\n  }\\n\\n  // Otherwise err on the side of overparenthesization, adding\\n  // explicit exceptions above if this proves overzealous.\\n  return true;\\n}\\n\\nfunction YieldExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  return t.isBinary(parent) || t.isUnaryLike(parent) || t.isCallExpression(parent) || t.isMemberExpression(parent) || t.isNewExpression(parent);\\n}\\n\\nexports.AwaitExpression = YieldExpression;\\n\\nfunction ClassExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  // (class {});\\n  if (t.isExpressionStatement(parent)) {\\n    return true;\\n  }\\n\\n  // export default (class () {});\\n  if (t.isExportDeclaration(parent)) {\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction UnaryLike(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isMemberExpression(parent, { object: node })) {\\n    return true;\\n  }\\n\\n  if (t.isCallExpression(parent, { callee: node }) || t.isNewExpression(parent, { callee: node })) {\\n    return true;\\n  }\\n\\n  return false;\\n}\\n\\nfunction FunctionExpression(node /*: Object*/, parent /*: Object*/, printStack /*: Array<Object>*/) /*: boolean*/ {\\n  // (function () {});\\n  if (t.isExpressionStatement(parent)) {\\n    return true;\\n  }\\n\\n  // export default (function () {});\\n  if (t.isExportDeclaration(parent)) {\\n    return true;\\n  }\\n\\n  return isFirstInStatement(printStack);\\n}\\n\\nfunction ArrowFunctionExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  // export default (function () {});\\n  if (t.isExportDeclaration(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isBinaryExpression(parent) || t.isLogicalExpression(parent)) {\\n    return true;\\n  }\\n\\n  return UnaryLike(node, parent);\\n}\\n\\nfunction ConditionalExpression(node /*: Object*/, parent /*: Object*/) /*: boolean*/ {\\n  if (t.isUnaryLike(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isBinary(parent)) {\\n    return true;\\n  }\\n\\n  if (t.isConditionalExpression(parent, { test: node })) {\\n    return true;\\n  }\\n\\n  return UnaryLike(node, parent);\\n}\\n\\nfunction AssignmentExpression(node /*: Object*/) /*: boolean*/ {\\n  if (t.isObjectPattern(node.left)) {\\n    return true;\\n  } else {\\n    return ConditionalExpression.apply(undefined, arguments);\\n  }\\n}\\n\\n// Walk up the print stack to deterimine if our node can come first\\n// in statement.\\nfunction isFirstInStatement(printStack /*: Array<Object>*/) /*: boolean*/ {\\n  var considerArrow /*: bool*/ = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\\n\\n  var i = printStack.length - 1;\\n  var node = printStack[i];\\n  i--;\\n  var parent = printStack[i];\\n  while (i > 0) {\\n    if (t.isExpressionStatement(parent, { expression: node })) {\\n      return true;\\n    }\\n\\n    if (considerArrow && t.isArrowFunctionExpression(parent, { body: node })) {\\n      return true;\\n    }\\n\\n    if (t.isCallExpression(parent, { callee: node }) || t.isSequenceExpression(parent) && parent.expressions[0] === node || t.isMemberExpression(parent, { object: node }) || t.isConditional(parent, { test: node }) || t.isBinary(parent, { left: node }) || t.isAssignmentExpression(parent, { left: node })) {\\n      node = parent;\\n      i--;\\n      parent = printStack[i];\\n    } else {\\n      return false;\\n    }\\n  }\\n\\n  return false;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/node/parentheses.js\\n ** module id = 371\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.TaggedTemplateExpression = TaggedTemplateExpression;\\nexports.TemplateElement = TemplateElement;\\nexports.TemplateLiteral = TemplateLiteral;\\n\\nfunction TaggedTemplateExpression(node /*: Object*/) {\\n  this.print(node.tag, node);\\n  this.print(node.quasi, node);\\n}\\n\\nfunction TemplateElement(node /*: Object*/) {\\n  this._push(node.value.raw);\\n}\\n\\nfunction TemplateLiteral(node /*: Object*/) {\\n  this.push(\\"`\\");\\n\\n  var quasis = node.quasis;\\n\\n  for (var i = 0; i < quasis.length; i++) {\\n    this.print(quasis[i], node);\\n\\n    if (i + 1 < quasis.length) {\\n      this._push(\\"${ \\");\\n      this.print(node.expressions[i], node);\\n      this.push(\\" }\\");\\n    }\\n  }\\n\\n  this._push(\\"`\\");\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/template-literals.js\\n ** module id = 372\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.UnaryExpression = UnaryExpression;\\nexports.DoExpression = DoExpression;\\nexports.ParenthesizedExpression = ParenthesizedExpression;\\nexports.UpdateExpression = UpdateExpression;\\nexports.ConditionalExpression = ConditionalExpression;\\nexports.NewExpression = NewExpression;\\nexports.SequenceExpression = SequenceExpression;\\nexports.ThisExpression = ThisExpression;\\nexports.Super = Super;\\nexports.Decorator = Decorator;\\nexports.CallExpression = CallExpression;\\nexports.EmptyStatement = EmptyStatement;\\nexports.ExpressionStatement = ExpressionStatement;\\nexports.AssignmentPattern = AssignmentPattern;\\nexports.AssignmentExpression = AssignmentExpression;\\nexports.BindExpression = BindExpression;\\nexports.MemberExpression = MemberExpression;\\nexports.MetaProperty = MetaProperty;\\n\\nvar _isInteger = require(\\"is-integer\\");\\n\\nvar _isInteger2 = _interopRequireDefault(_isInteger);\\n\\nvar _lodashLangIsNumber = require(\\"lodash/lang/isNumber\\");\\n\\nvar _lodashLangIsNumber2 = _interopRequireDefault(_lodashLangIsNumber);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar _node = require(\\"../node\\");\\n\\nvar n = _interopRequireWildcard(_node);\\n\\nvar SCIENTIFIC_NOTATION = /e/i;\\nvar ZERO_DECIMAL_INTEGER = /\\\\.0+$/;\\n\\nfunction UnaryExpression(node /*: Object*/) {\\n  var needsSpace = /[a-z]$/.test(node.operator);\\n  var arg = node.argument;\\n\\n  if (t.isUpdateExpression(arg) || t.isUnaryExpression(arg)) {\\n    needsSpace = true;\\n  }\\n\\n  if (t.isUnaryExpression(arg) && arg.operator === \\"!\\") {\\n    needsSpace = false;\\n  }\\n\\n  this.push(node.operator);\\n  if (needsSpace) this.push(\\" \\");\\n  this.print(node.argument, node);\\n}\\n\\nfunction DoExpression(node /*: Object*/) {\\n  this.push(\\"do\\");\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction ParenthesizedExpression(node /*: Object*/) {\\n  this.push(\\"(\\");\\n  this.print(node.expression, node);\\n  this.push(\\")\\");\\n}\\n\\nfunction UpdateExpression(node /*: Object*/) {\\n  if (node.prefix) {\\n    this.push(node.operator);\\n    this.print(node.argument, node);\\n  } else {\\n    this.print(node.argument, node);\\n    this.push(node.operator);\\n  }\\n}\\n\\nfunction ConditionalExpression(node /*: Object*/) {\\n  this.print(node.test, node);\\n  this.space();\\n  this.push(\\"?\\");\\n  this.space();\\n  this.print(node.consequent, node);\\n  this.space();\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.alternate, node);\\n}\\n\\nfunction NewExpression(node /*: Object*/, parent /*: Object*/) {\\n  this.push(\\"new \\");\\n  this.print(node.callee, node);\\n  if (node.arguments.length === 0 && this.format.minified && !t.isCallExpression(parent, { callee: node }) && !t.isMemberExpression(parent) && !t.isNewExpression(parent)) return;\\n\\n  this.push(\\"(\\");\\n  this.printList(node.arguments, node);\\n  this.push(\\")\\");\\n}\\n\\nfunction SequenceExpression(node /*: Object*/) {\\n  this.printList(node.expressions, node);\\n}\\n\\nfunction ThisExpression() {\\n  this.push(\\"this\\");\\n}\\n\\nfunction Super() {\\n  this.push(\\"super\\");\\n}\\n\\nfunction Decorator(node /*: Object*/) {\\n  this.push(\\"@\\");\\n  this.print(node.expression, node);\\n  this.newline();\\n}\\n\\nfunction CallExpression(node /*: Object*/) {\\n  this.print(node.callee, node);\\n  if (node.loc) this.printAuxAfterComment();\\n\\n  this.push(\\"(\\");\\n\\n  var isPrettyCall = node._prettyCall && !this.format.retainLines && !this.format.compact;\\n\\n  var separator = undefined;\\n  if (isPrettyCall) {\\n    separator = \\",\\\\n\\";\\n    this.newline();\\n    this.indent();\\n  }\\n\\n  this.printList(node.arguments, node, { separator: separator });\\n\\n  if (isPrettyCall) {\\n    this.newline();\\n    this.dedent();\\n  }\\n\\n  this.push(\\")\\");\\n}\\n\\nfunction buildYieldAwait(keyword /*: string*/) {\\n  return function (node /*: Object*/) {\\n    this.push(keyword);\\n\\n    if (node.delegate) {\\n      this.push(\\"*\\");\\n    }\\n\\n    if (node.argument) {\\n      this.push(\\" \\");\\n      var terminatorState = this.startTerminatorless();\\n      this.print(node.argument, node);\\n      this.endTerminatorless(terminatorState);\\n    }\\n  };\\n}\\n\\nvar YieldExpression = buildYieldAwait(\\"yield\\");\\nexports.YieldExpression = YieldExpression;\\nvar AwaitExpression = buildYieldAwait(\\"await\\");\\n\\nexports.AwaitExpression = AwaitExpression;\\n\\nfunction EmptyStatement() {\\n  this._lastPrintedIsEmptyStatement = true;\\n  this.semicolon();\\n}\\n\\nfunction ExpressionStatement(node /*: Object*/) {\\n  this.print(node.expression, node);\\n  this.semicolon();\\n}\\n\\nfunction AssignmentPattern(node /*: Object*/) {\\n  this.print(node.left, node);\\n  this.space();\\n  this.push(\\"=\\");\\n  this.space();\\n  this.print(node.right, node);\\n}\\n\\nfunction AssignmentExpression(node /*: Object*/, parent /*: Object*/) {\\n  // Somewhere inside a for statement `init` node but doesn\'t usually\\n  // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`\\n  var parens = this._inForStatementInitCounter && node.operator === \\"in\\" && !n.needsParens(node, parent);\\n\\n  if (parens) {\\n    this.push(\\"(\\");\\n  }\\n\\n  this.print(node.left, node);\\n\\n  var spaces = !this.format.compact || node.operator === \\"in\\" || node.operator === \\"instanceof\\";\\n  if (spaces) this.push(\\" \\");\\n\\n  this.push(node.operator);\\n\\n  if (!spaces) {\\n    // space is mandatory to avoid outputting <!--\\n    // http://javascript.spec.whatwg.org/#comment-syntax\\n    spaces = node.operator === \\"<\\" && t.isUnaryExpression(node.right, { prefix: true, operator: \\"!\\" }) && t.isUnaryExpression(node.right.argument, { prefix: true, operator: \\"--\\" });\\n\\n    // Need spaces for operators of the same kind to avoid: `a+++b`\\n    if (!spaces) {\\n      var right = getLeftMost(node.right);\\n      spaces = t.isUnaryExpression(right, { prefix: true, operator: node.operator }) || t.isUpdateExpression(right, { prefix: true, operator: node.operator + node.operator });\\n    }\\n  }\\n\\n  if (spaces) this.push(\\" \\");\\n\\n  this.print(node.right, node);\\n\\n  if (parens) {\\n    this.push(\\")\\");\\n  }\\n}\\n\\nfunction BindExpression(node /*: Object*/) {\\n  this.print(node.object, node);\\n  this.push(\\"::\\");\\n  this.print(node.callee, node);\\n}\\n\\nexports.BinaryExpression = AssignmentExpression;\\nexports.LogicalExpression = AssignmentExpression;\\n\\nfunction MemberExpression(node /*: Object*/) {\\n  this.print(node.object, node);\\n\\n  if (!node.computed && t.isMemberExpression(node.property)) {\\n    throw new TypeError(\\"Got a MemberExpression for MemberExpression property\\");\\n  }\\n\\n  var computed = node.computed;\\n  if (t.isLiteral(node.property) && _lodashLangIsNumber2[\\"default\\"](node.property.value)) {\\n    computed = true;\\n  }\\n\\n  if (computed) {\\n    this.push(\\"[\\");\\n    this.print(node.property, node);\\n    this.push(\\"]\\");\\n  } else {\\n    if (t.isNumericLiteral(node.object)) {\\n      var val = this.getPossibleRaw(node.object) || node.object.value;\\n      if (_isInteger2[\\"default\\"](+val) && !SCIENTIFIC_NOTATION.test(val) && !ZERO_DECIMAL_INTEGER.test(val) && !this.endsWith(\\".\\")) {\\n        this.push(\\".\\");\\n      }\\n    }\\n\\n    this.push(\\".\\");\\n    this.print(node.property, node);\\n  }\\n}\\n\\nfunction MetaProperty(node /*: Object*/) {\\n  this.print(node.meta, node);\\n  this.push(\\".\\");\\n  this.print(node.property, node);\\n}\\n\\nfunction getLeftMost(binaryExpr) {\\n  if (!t.isBinaryExpression(binaryExpr)) {\\n    return binaryExpr;\\n  }\\n  return getLeftMost(binaryExpr.left);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/expressions.js\\n ** module id = 373\\n ** module chunks = 0\\n **/","// https://github.com/paulmillr/es6-shim\\n// http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger\\nvar isFinite = require(\\"is-finite\\");\\nmodule.exports = Number.isInteger || function(val) {\\n  return typeof val === \\"number\\" &&\\n    isFinite(val) &&\\n    Math.floor(val) === val;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/is-integer/index.js\\n ** module id = 374\\n ** module chunks = 0\\n **/","\'use strict\';\\nvar numberIsNan = require(\'number-is-nan\');\\n\\nmodule.exports = Number.isFinite || function (val) {\\n\\treturn !(typeof val !== \'number\' || numberIsNan(val) || val === Infinity || val === -Infinity);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/is-integer/~/is-finite/index.js\\n ** module id = 375\\n ** module chunks = 0\\n **/","\'use strict\';\\nmodule.exports = Number.isNaN || function (x) {\\n\\treturn x !== x;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/is-integer/~/is-finite/~/number-is-nan/index.js\\n ** module id = 376\\n ** module chunks = 0\\n **/","var isObjectLike = require(\'../internal/isObjectLike\');\\n\\n/** `Object#toString` result references. */\\nvar numberTag = \'[object Number]\';\\n\\n/** Used for native method references. */\\nvar objectProto = Object.prototype;\\n\\n/**\\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\\n * of values.\\n */\\nvar objToString = objectProto.toString;\\n\\n/**\\n * Checks if `value` is classified as a `Number` primitive or object.\\n *\\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\\n * as numbers, use the `_.isFinite` method.\\n *\\n * @static\\n * @memberOf _\\n * @category Lang\\n * @param {*} value The value to check.\\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\\n * @example\\n *\\n * _.isNumber(8.4);\\n * // => true\\n *\\n * _.isNumber(NaN);\\n * // => true\\n *\\n * _.isNumber(\'8.4\');\\n * // => false\\n */\\nfunction isNumber(value) {\\n  return typeof value == \'number\' || (isObjectLike(value) && objToString.call(value) == numberTag);\\n}\\n\\nmodule.exports = isNumber;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/~/lodash/lang/isNumber.js\\n ** module id = 377\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nvar _interopRequireDefault = require(\\"babel-runtime/helpers/interop-require-default\\")[\\"default\\"];\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.WithStatement = WithStatement;\\nexports.IfStatement = IfStatement;\\nexports.ForStatement = ForStatement;\\nexports.WhileStatement = WhileStatement;\\nexports.DoWhileStatement = DoWhileStatement;\\nexports.LabeledStatement = LabeledStatement;\\nexports.TryStatement = TryStatement;\\nexports.CatchClause = CatchClause;\\nexports.SwitchStatement = SwitchStatement;\\nexports.SwitchCase = SwitchCase;\\nexports.DebuggerStatement = DebuggerStatement;\\nexports.VariableDeclaration = VariableDeclaration;\\nexports.VariableDeclarator = VariableDeclarator;\\n\\nvar _repeating = require(\\"repeating\\");\\n\\nvar _repeating2 = _interopRequireDefault(_repeating);\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nvar NON_ALPHABETIC_UNARY_OPERATORS = t.UPDATE_OPERATORS.concat(t.NUMBER_UNARY_OPERATORS).concat([\\"!\\"]);\\n\\nfunction WithStatement(node /*: Object*/) {\\n  this.keyword(\\"with\\");\\n  this.push(\\"(\\");\\n  this.print(node.object, node);\\n  this.push(\\")\\");\\n  this.printBlock(node);\\n}\\n\\nfunction IfStatement(node /*: Object*/) {\\n  this.keyword(\\"if\\");\\n  this.push(\\"(\\");\\n  this.print(node.test, node);\\n  this.push(\\")\\");\\n  this.space();\\n\\n  var needsBlock = node.alternate && t.isIfStatement(getLastStatement(node.consequent));\\n  if (needsBlock) {\\n    this.push(\\"{\\");\\n    this.newline();\\n    this.indent();\\n  }\\n\\n  this.printAndIndentOnComments(node.consequent, node);\\n\\n  if (needsBlock) {\\n    this.dedent();\\n    this.newline();\\n    this.push(\\"}\\");\\n  }\\n\\n  if (node.alternate) {\\n    if (this.isLast(\\"}\\")) this.space();\\n    this.push(\\"else \\");\\n    this.printAndIndentOnComments(node.alternate, node);\\n  }\\n}\\n\\n// Recursively get the last statement.\\nfunction getLastStatement(statement) {\\n  if (!t.isStatement(statement.body)) return statement;\\n  return getLastStatement(statement.body);\\n}\\n\\nfunction ForStatement(node /*: Object*/) {\\n  this.keyword(\\"for\\");\\n  this.push(\\"(\\");\\n\\n  this._inForStatementInitCounter++;\\n  this.print(node.init, node);\\n  this._inForStatementInitCounter--;\\n  this.push(\\";\\");\\n\\n  if (node.test) {\\n    this.space();\\n    this.print(node.test, node);\\n  }\\n  this.push(\\";\\");\\n\\n  if (node.update) {\\n    this.space();\\n    this.print(node.update, node);\\n  }\\n\\n  this.push(\\")\\");\\n  this.printBlock(node);\\n}\\n\\nfunction WhileStatement(node /*: Object*/) {\\n  this.keyword(\\"while\\");\\n  this.push(\\"(\\");\\n  this.print(node.test, node);\\n  this.push(\\")\\");\\n  this.printBlock(node);\\n}\\n\\nvar buildForXStatement = function buildForXStatement(op) {\\n  return function (node /*: Object*/) {\\n    this.keyword(\\"for\\");\\n    this.push(\\"(\\");\\n    this.print(node.left, node);\\n    this.push(\\" \\" + op + \\" \\");\\n    this.print(node.right, node);\\n    this.push(\\")\\");\\n    this.printBlock(node);\\n  };\\n};\\n\\nvar ForInStatement = buildForXStatement(\\"in\\");\\nexports.ForInStatement = ForInStatement;\\nvar ForOfStatement = buildForXStatement(\\"of\\");\\n\\nexports.ForOfStatement = ForOfStatement;\\n\\nfunction DoWhileStatement(node /*: Object*/) {\\n  this.push(\\"do \\");\\n  this.print(node.body, node);\\n  this.space();\\n  this.keyword(\\"while\\");\\n  this.push(\\"(\\");\\n  this.print(node.test, node);\\n  this.push(\\");\\");\\n}\\n\\nfunction buildLabelStatement(prefix) {\\n  var key = arguments.length <= 1 || arguments[1] === undefined ? \\"label\\" : arguments[1];\\n\\n  return function (node /*: Object*/) {\\n    this.push(prefix);\\n\\n    var label = node[key];\\n    if (label) {\\n      if (!(this.format.minified && (t.isUnaryExpression(label, { prefix: true }) || t.isUpdateExpression(label, { prefix: true })) && NON_ALPHABETIC_UNARY_OPERATORS.indexOf(label.operator) > -1)) {\\n        this.push(\\" \\");\\n      }\\n\\n      var terminatorState = this.startTerminatorless();\\n      this.print(label, node);\\n      this.endTerminatorless(terminatorState);\\n    }\\n\\n    this.semicolon();\\n  };\\n}\\n\\nvar ContinueStatement = buildLabelStatement(\\"continue\\");\\nexports.ContinueStatement = ContinueStatement;\\nvar ReturnStatement = buildLabelStatement(\\"return\\", \\"argument\\");\\nexports.ReturnStatement = ReturnStatement;\\nvar BreakStatement = buildLabelStatement(\\"break\\");\\nexports.BreakStatement = BreakStatement;\\nvar ThrowStatement = buildLabelStatement(\\"throw\\", \\"argument\\");\\n\\nexports.ThrowStatement = ThrowStatement;\\n\\nfunction LabeledStatement(node /*: Object*/) {\\n  this.print(node.label, node);\\n  this.push(\\": \\");\\n  this.print(node.body, node);\\n}\\n\\nfunction TryStatement(node /*: Object*/) {\\n  this.keyword(\\"try\\");\\n  this.print(node.block, node);\\n  this.space();\\n\\n  // Esprima bug puts the catch clause in a `handlers` array.\\n  // see https://code.google.com/p/esprima/issues/detail?id=433\\n  // We run into this from regenerator generated ast.\\n  if (node.handlers) {\\n    this.print(node.handlers[0], node);\\n  } else {\\n    this.print(node.handler, node);\\n  }\\n\\n  if (node.finalizer) {\\n    this.space();\\n    this.push(\\"finally \\");\\n    this.print(node.finalizer, node);\\n  }\\n}\\n\\nfunction CatchClause(node /*: Object*/) {\\n  this.keyword(\\"catch\\");\\n  this.push(\\"(\\");\\n  this.print(node.param, node);\\n  this.push(\\")\\");\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction SwitchStatement(node /*: Object*/) {\\n  this.keyword(\\"switch\\");\\n  this.push(\\"(\\");\\n  this.print(node.discriminant, node);\\n  this.push(\\")\\");\\n  this.space();\\n  this.push(\\"{\\");\\n\\n  this.printSequence(node.cases, node, {\\n    indent: true,\\n    addNewlines: function addNewlines(leading, cas) {\\n      if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\\n    }\\n  });\\n\\n  this.push(\\"}\\");\\n}\\n\\nfunction SwitchCase(node /*: Object*/) {\\n  if (node.test) {\\n    this.push(\\"case \\");\\n    this.print(node.test, node);\\n    this.push(\\":\\");\\n  } else {\\n    this.push(\\"default:\\");\\n  }\\n\\n  if (node.consequent.length) {\\n    this.newline();\\n    this.printSequence(node.consequent, node, { indent: true });\\n  }\\n}\\n\\nfunction DebuggerStatement() {\\n  this.push(\\"debugger;\\");\\n}\\n\\nfunction VariableDeclaration(node /*: Object*/, parent /*: Object*/) {\\n  this.push(node.kind + \\" \\");\\n\\n  var hasInits = false;\\n  // don\'t add whitespace to loop heads\\n  if (!t.isFor(parent)) {\\n    for (var _iterator = (node.declarations /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n      var _ref;\\n\\n      if (_isArray) {\\n        if (_i >= _iterator.length) break;\\n        _ref = _iterator[_i++];\\n      } else {\\n        _i = _iterator.next();\\n        if (_i.done) break;\\n        _ref = _i.value;\\n      }\\n\\n      var declar = _ref;\\n\\n      if (declar.init) {\\n        // has an init so let\'s split it up over multiple lines\\n        hasInits = true;\\n      }\\n    }\\n  }\\n\\n  //\\n  // use a pretty separator when we aren\'t in compact mode, have initializers and don\'t have retainLines on\\n  // this will format declarations like:\\n  //\\n  //   let foo = \\"bar\\", bar = \\"foo\\";\\n  //\\n  // into\\n  //\\n  //   let foo = \\"bar\\",\\n  //       bar = \\"foo\\";\\n  //\\n\\n  var sep = undefined;\\n  if (!this.format.compact && !this.format.concise && hasInits && !this.format.retainLines) {\\n    sep = \\",\\\\n\\" + _repeating2[\\"default\\"](\\" \\", node.kind.length + 1);\\n  }\\n\\n  //\\n\\n  this.printList(node.declarations, node, { separator: sep });\\n\\n  if (t.isFor(parent)) {\\n    // don\'t give semicolons to these nodes since they\'ll be inserted in the parent generator\\n    if (parent.left === node || parent.init === node) return;\\n  }\\n\\n  this.semicolon();\\n}\\n\\nfunction VariableDeclarator(node /*: Object*/) {\\n  this.print(node.id, node);\\n  this.print(node.id.typeAnnotation, node);\\n  if (node.init) {\\n    this.space();\\n    this.push(\\"=\\");\\n    this.space();\\n    this.print(node.init, node);\\n  }\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/statements.js\\n ** module id = 378\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.ClassDeclaration = ClassDeclaration;\\nexports.ClassBody = ClassBody;\\nexports.ClassProperty = ClassProperty;\\nexports.ClassMethod = ClassMethod;\\n\\nfunction ClassDeclaration(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n  this.push(\\"class\\");\\n\\n  if (node.id) {\\n    this.push(\\" \\");\\n    this.print(node.id, node);\\n  }\\n\\n  this.print(node.typeParameters, node);\\n\\n  if (node.superClass) {\\n    this.push(\\" extends \\");\\n    this.print(node.superClass, node);\\n    this.print(node.superTypeParameters, node);\\n  }\\n\\n  if (node[\\"implements\\"]) {\\n    this.push(\\" implements \\");\\n    this.printJoin(node[\\"implements\\"], node, { separator: \\", \\" });\\n  }\\n\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nexports.ClassExpression = ClassDeclaration;\\n\\nfunction ClassBody(node /*: Object*/) {\\n  this.push(\\"{\\");\\n  this.printInnerComments(node);\\n  if (node.body.length === 0) {\\n    this.push(\\"}\\");\\n  } else {\\n    this.newline();\\n\\n    this.indent();\\n    this.printSequence(node.body, node);\\n    this.dedent();\\n\\n    this.rightBrace();\\n  }\\n}\\n\\nfunction ClassProperty(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.print(node.key, node);\\n  this.print(node.typeAnnotation, node);\\n  if (node.value) {\\n    this.space();\\n    this.push(\\"=\\");\\n    this.space();\\n    this.print(node.value, node);\\n  }\\n  this.semicolon();\\n}\\n\\nfunction ClassMethod(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n\\n  if (node[\\"static\\"]) {\\n    this.push(\\"static \\");\\n  }\\n\\n  if (node.kind === \\"constructorCall\\") {\\n    this.push(\\"call \\");\\n  }\\n\\n  this._method(node);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/classes.js\\n ** module id = 379\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports._params = _params;\\nexports._method = _method;\\nexports.FunctionExpression = FunctionExpression;\\nexports.ArrowFunctionExpression = ArrowFunctionExpression;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction _params(node /*: Object*/) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  this.print(node.typeParameters, node);\\n  this.push(\\"(\\");\\n  this.printList(node.params, node, {\\n    iterator: function iterator(node) {\\n      if (node.optional) _this.push(\\"?\\");\\n      _this.print(node.typeAnnotation, node);\\n    }\\n  });\\n  this.push(\\")\\");\\n\\n  if (node.returnType) {\\n    this.print(node.returnType, node);\\n  }\\n}\\n\\nfunction _method(node /*: Object*/) {\\n  var kind = node.kind;\\n  var key = node.key;\\n\\n  if (kind === \\"method\\" || kind === \\"init\\") {\\n    if (node.generator) {\\n      this.push(\\"*\\");\\n    }\\n  }\\n\\n  if (kind === \\"get\\" || kind === \\"set\\") {\\n    this.push(kind + \\" \\");\\n  }\\n\\n  if (node.async) this.push(\\"async \\");\\n\\n  if (node.computed) {\\n    this.push(\\"[\\");\\n    this.print(key, node);\\n    this.push(\\"]\\");\\n  } else {\\n    this.print(key, node);\\n  }\\n\\n  this._params(node);\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction FunctionExpression(node /*: Object*/) {\\n  if (node.async) this.push(\\"async \\");\\n  this.push(\\"function\\");\\n  if (node.generator) this.push(\\"*\\");\\n\\n  if (node.id) {\\n    this.push(\\" \\");\\n    this.print(node.id, node);\\n  } else {\\n    this.space();\\n  }\\n\\n  this._params(node);\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nexports.FunctionDeclaration = FunctionExpression;\\n\\nfunction ArrowFunctionExpression(node /*: Object*/) {\\n  if (node.async) this.push(\\"async \\");\\n\\n  if (node.params.length === 1 && t.isIdentifier(node.params[0])) {\\n    this.print(node.params[0], node);\\n  } else {\\n    this._params(node);\\n  }\\n\\n  this.push(\\" => \\");\\n\\n  this.print(node.body, node);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/methods.js\\n ** module id = 380\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.ImportSpecifier = ImportSpecifier;\\nexports.ImportDefaultSpecifier = ImportDefaultSpecifier;\\nexports.ExportDefaultSpecifier = ExportDefaultSpecifier;\\nexports.ExportSpecifier = ExportSpecifier;\\nexports.ExportNamespaceSpecifier = ExportNamespaceSpecifier;\\nexports.ExportAllDeclaration = ExportAllDeclaration;\\nexports.ExportNamedDeclaration = ExportNamedDeclaration;\\nexports.ExportDefaultDeclaration = ExportDefaultDeclaration;\\nexports.ImportDeclaration = ImportDeclaration;\\nexports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction ImportSpecifier(node /*: Object*/) {\\n  this.print(node.imported, node);\\n  if (node.local && node.local.name !== node.imported.name) {\\n    this.push(\\" as \\");\\n    this.print(node.local, node);\\n  }\\n}\\n\\nfunction ImportDefaultSpecifier(node /*: Object*/) {\\n  this.print(node.local, node);\\n}\\n\\nfunction ExportDefaultSpecifier(node /*: Object*/) {\\n  this.print(node.exported, node);\\n}\\n\\nfunction ExportSpecifier(node /*: Object*/) {\\n  this.print(node.local, node);\\n  if (node.exported && node.local.name !== node.exported.name) {\\n    this.push(\\" as \\");\\n    this.print(node.exported, node);\\n  }\\n}\\n\\nfunction ExportNamespaceSpecifier(node /*: Object*/) {\\n  this.push(\\"* as \\");\\n  this.print(node.exported, node);\\n}\\n\\nfunction ExportAllDeclaration(node /*: Object*/) {\\n  this.push(\\"export *\\");\\n  if (node.exported) {\\n    this.push(\\" as \\");\\n    this.print(node.exported, node);\\n  }\\n  this.push(\\" from \\");\\n  this.print(node.source, node);\\n  this.semicolon();\\n}\\n\\nfunction ExportNamedDeclaration() {\\n  this.push(\\"export \\");\\n  ExportDeclaration.apply(this, arguments);\\n}\\n\\nfunction ExportDefaultDeclaration() {\\n  this.push(\\"export default \\");\\n  ExportDeclaration.apply(this, arguments);\\n}\\n\\nfunction ExportDeclaration(node /*: Object*/) {\\n  if (node.declaration) {\\n    var declar = node.declaration;\\n    this.print(declar, node);\\n    if (t.isStatement(declar) || t.isFunction(declar) || t.isClass(declar)) return;\\n  } else {\\n    if (node.exportKind === \\"type\\") {\\n      this.push(\\"type \\");\\n    }\\n\\n    var specifiers = node.specifiers.slice(0);\\n\\n    // print \\"special\\" specifiers first\\n    var hasSpecial = false;\\n    while (true) {\\n      var first = specifiers[0];\\n      if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) {\\n        hasSpecial = true;\\n        this.print(specifiers.shift(), node);\\n        if (specifiers.length) {\\n          this.push(\\", \\");\\n        }\\n      } else {\\n        break;\\n      }\\n    }\\n\\n    if (specifiers.length || !specifiers.length && !hasSpecial) {\\n      this.push(\\"{\\");\\n      if (specifiers.length) {\\n        this.space();\\n        this.printJoin(specifiers, node, { separator: \\", \\" });\\n        this.space();\\n      }\\n      this.push(\\"}\\");\\n    }\\n\\n    if (node.source) {\\n      this.push(\\" from \\");\\n      this.print(node.source, node);\\n    }\\n  }\\n\\n  this.ensureSemicolon();\\n}\\n\\nfunction ImportDeclaration(node /*: Object*/) {\\n  this.push(\\"import \\");\\n\\n  if (node.importKind === \\"type\\" || node.importKind === \\"typeof\\") {\\n    this.push(node.importKind + \\" \\");\\n  }\\n\\n  var specifiers = node.specifiers.slice(0);\\n  if (specifiers && specifiers.length) {\\n    // print \\"special\\" specifiers first\\n    while (true) {\\n      var first = specifiers[0];\\n      if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) {\\n        this.print(specifiers.shift(), node);\\n        if (specifiers.length) {\\n          this.push(\\", \\");\\n        }\\n      } else {\\n        break;\\n      }\\n    }\\n\\n    if (specifiers.length) {\\n      this.push(\\"{\\");\\n      this.space();\\n      this.printJoin(specifiers, node, { separator: \\", \\" });\\n      this.space();\\n      this.push(\\"}\\");\\n    }\\n\\n    this.push(\\" from \\");\\n  }\\n\\n  this.print(node.source, node);\\n  this.semicolon();\\n}\\n\\nfunction ImportNamespaceSpecifier(node /*: Object*/) {\\n  this.push(\\"* as \\");\\n  this.print(node.local, node);\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/modules.js\\n ** module id = 381\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n/* eslint quotes: 0 */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.Identifier = Identifier;\\nexports.RestElement = RestElement;\\nexports.ObjectExpression = ObjectExpression;\\nexports.ObjectMethod = ObjectMethod;\\nexports.ObjectProperty = ObjectProperty;\\nexports.ArrayExpression = ArrayExpression;\\nexports.RegExpLiteral = RegExpLiteral;\\nexports.BooleanLiteral = BooleanLiteral;\\nexports.NullLiteral = NullLiteral;\\nexports.NumericLiteral = NumericLiteral;\\nexports.StringLiteral = StringLiteral;\\nexports._stringLiteral = _stringLiteral;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction Identifier(node /*: Object*/) {\\n  this.push(node.name);\\n}\\n\\nfunction RestElement(node /*: Object*/) {\\n  this.push(\\"...\\");\\n  this.print(node.argument, node);\\n}\\n\\nexports.SpreadElement = RestElement;\\nexports.SpreadProperty = RestElement;\\nexports.RestProperty = RestElement;\\n\\nfunction ObjectExpression(node /*: Object*/) {\\n  var props = node.properties;\\n\\n  this.push(\\"{\\");\\n  this.printInnerComments(node);\\n\\n  if (props.length) {\\n    this.space();\\n    this.printList(props, node, { indent: true });\\n    this.space();\\n  }\\n\\n  this.push(\\"}\\");\\n}\\n\\nexports.ObjectPattern = ObjectExpression;\\n\\nfunction ObjectMethod(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n  this._method(node);\\n}\\n\\nfunction ObjectProperty(node /*: Object*/) {\\n  this.printJoin(node.decorators, node, { separator: \\"\\" });\\n\\n  if (node.computed) {\\n    this.push(\\"[\\");\\n    this.print(node.key, node);\\n    this.push(\\"]\\");\\n  } else {\\n    // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\\n    if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) {\\n      this.print(node.value, node);\\n      return;\\n    }\\n\\n    this.print(node.key, node);\\n\\n    // shorthand!\\n    if (node.shorthand && t.isIdentifier(node.key) && t.isIdentifier(node.value) && node.key.name === node.value.name) {\\n      return;\\n    }\\n  }\\n\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.value, node);\\n}\\n\\nfunction ArrayExpression(node /*: Object*/) {\\n  var elems = node.elements;\\n  var len = elems.length;\\n\\n  this.push(\\"[\\");\\n  this.printInnerComments(node);\\n\\n  for (var i = 0; i < elems.length; i++) {\\n    var elem = elems[i];\\n    if (elem) {\\n      if (i > 0) this.space();\\n      this.print(elem, node);\\n      if (i < len - 1) this.push(\\",\\");\\n    } else {\\n      // If the array expression ends with a hole, that hole\\n      // will be ignored by the interpreter, but if it ends with\\n      // two (or more) holes, we need to write out two (or more)\\n      // commas so that the resulting code is interpreted with\\n      // both (all) of the holes.\\n      this.push(\\",\\");\\n    }\\n  }\\n\\n  this.push(\\"]\\");\\n}\\n\\nexports.ArrayPattern = ArrayExpression;\\n\\nfunction RegExpLiteral(node /*: Object*/) {\\n  this.push(\\"/\\" + node.pattern + \\"/\\" + node.flags);\\n}\\n\\nfunction BooleanLiteral(node /*: Object*/) {\\n  this.push(node.value ? \\"true\\" : \\"false\\");\\n}\\n\\nfunction NullLiteral() {\\n  this.push(\\"null\\");\\n}\\n\\nfunction NumericLiteral(node /*: Object*/) {\\n  this.push(node.value + \\"\\");\\n}\\n\\nfunction StringLiteral(node /*: Object*/, parent /*: Object*/) {\\n  this.push(this._stringLiteral(node.value, parent));\\n}\\n\\nfunction _stringLiteral(val /*: string*/, parent /*: Object*/) /*: string*/ {\\n  val = JSON.stringify(val);\\n\\n  // escape illegal js but valid json unicode characters\\n  val = val.replace(/[\\\\u000A\\\\u000D\\\\u2028\\\\u2029]/g, function (c) {\\n    return \\"\\\\\\\\u\\" + (\\"0000\\" + c.charCodeAt(0).toString(16)).slice(-4);\\n  });\\n\\n  if (this.format.quotes === \\"single\\" && !t.isJSX(parent)) {\\n    // remove double quotes\\n    val = val.slice(1, -1);\\n\\n    // unescape double quotes\\n    val = val.replace(/\\\\\\\\\\"/g, \'\\"\');\\n\\n    // escape single quotes\\n    val = val.replace(/\'/g, \\"\\\\\\\\\'\\");\\n\\n    // add single quotes\\n    val = \\"\'\\" + val + \\"\'\\";\\n  }\\n\\n  return val;\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/types.js\\n ** module id = 382\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _interopRequireWildcard = require(\\"babel-runtime/helpers/interop-require-wildcard\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.AnyTypeAnnotation = AnyTypeAnnotation;\\nexports.ArrayTypeAnnotation = ArrayTypeAnnotation;\\nexports.BooleanTypeAnnotation = BooleanTypeAnnotation;\\nexports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation;\\nexports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation;\\nexports.DeclareClass = DeclareClass;\\nexports.DeclareFunction = DeclareFunction;\\nexports.DeclareInterface = DeclareInterface;\\nexports.DeclareModule = DeclareModule;\\nexports.DeclareTypeAlias = DeclareTypeAlias;\\nexports.DeclareVariable = DeclareVariable;\\nexports.ExistentialTypeParam = ExistentialTypeParam;\\nexports.FunctionTypeAnnotation = FunctionTypeAnnotation;\\nexports.FunctionTypeParam = FunctionTypeParam;\\nexports.InterfaceExtends = InterfaceExtends;\\nexports._interfaceish = _interfaceish;\\nexports.InterfaceDeclaration = InterfaceDeclaration;\\nexports.IntersectionTypeAnnotation = IntersectionTypeAnnotation;\\nexports.MixedTypeAnnotation = MixedTypeAnnotation;\\nexports.NullableTypeAnnotation = NullableTypeAnnotation;\\nexports.NumberTypeAnnotation = NumberTypeAnnotation;\\nexports.StringLiteralTypeAnnotation = StringLiteralTypeAnnotation;\\nexports.StringTypeAnnotation = StringTypeAnnotation;\\nexports.ThisTypeAnnotation = ThisTypeAnnotation;\\nexports.TupleTypeAnnotation = TupleTypeAnnotation;\\nexports.TypeofTypeAnnotation = TypeofTypeAnnotation;\\nexports.TypeAlias = TypeAlias;\\nexports.TypeAnnotation = TypeAnnotation;\\nexports.TypeParameterInstantiation = TypeParameterInstantiation;\\nexports.ObjectTypeAnnotation = ObjectTypeAnnotation;\\nexports.ObjectTypeCallProperty = ObjectTypeCallProperty;\\nexports.ObjectTypeIndexer = ObjectTypeIndexer;\\nexports.ObjectTypeProperty = ObjectTypeProperty;\\nexports.QualifiedTypeIdentifier = QualifiedTypeIdentifier;\\nexports.UnionTypeAnnotation = UnionTypeAnnotation;\\nexports.TypeCastExpression = TypeCastExpression;\\nexports.VoidTypeAnnotation = VoidTypeAnnotation;\\n\\nvar _babelTypes = require(\\"babel-types\\");\\n\\nvar t = _interopRequireWildcard(_babelTypes);\\n\\nfunction AnyTypeAnnotation() {\\n  this.push(\\"any\\");\\n}\\n\\nfunction ArrayTypeAnnotation(node /*: Object*/) {\\n  this.print(node.elementType, node);\\n  this.push(\\"[\\");\\n  this.push(\\"]\\");\\n}\\n\\nfunction BooleanTypeAnnotation() {\\n  this.push(\\"bool\\");\\n}\\n\\nfunction BooleanLiteralTypeAnnotation(node /*: Object*/) {\\n  this.push(node.value ? \\"true\\" : \\"false\\");\\n}\\n\\nfunction NullLiteralTypeAnnotation() {\\n  this.push(\\"null\\");\\n}\\n\\nfunction DeclareClass(node /*: Object*/) {\\n  this.push(\\"declare class \\");\\n  this._interfaceish(node);\\n}\\n\\nfunction DeclareFunction(node /*: Object*/) {\\n  this.push(\\"declare function \\");\\n  this.print(node.id, node);\\n  this.print(node.id.typeAnnotation.typeAnnotation, node);\\n  this.semicolon();\\n}\\n\\nfunction DeclareInterface(node /*: Object*/) {\\n  this.push(\\"declare \\");\\n  this.InterfaceDeclaration(node);\\n}\\n\\nfunction DeclareModule(node /*: Object*/) {\\n  this.push(\\"declare module \\");\\n  this.print(node.id, node);\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction DeclareTypeAlias(node /*: Object*/) {\\n  this.push(\\"declare \\");\\n  this.TypeAlias(node);\\n}\\n\\nfunction DeclareVariable(node /*: Object*/) {\\n  this.push(\\"declare var \\");\\n  this.print(node.id, node);\\n  this.print(node.id.typeAnnotation, node);\\n  this.semicolon();\\n}\\n\\nfunction ExistentialTypeParam() {\\n  this.push(\\"*\\");\\n}\\n\\nfunction FunctionTypeAnnotation(node /*: Object*/, parent /*: Object*/) {\\n  this.print(node.typeParameters, node);\\n  this.push(\\"(\\");\\n  this.printList(node.params, node);\\n\\n  if (node.rest) {\\n    if (node.params.length) {\\n      this.push(\\",\\");\\n      this.space();\\n    }\\n    this.push(\\"...\\");\\n    this.print(node.rest, node);\\n  }\\n\\n  this.push(\\")\\");\\n\\n  // this node type is overloaded, not sure why but it makes it EXTREMELY annoying\\n  if (parent.type === \\"ObjectTypeProperty\\" || parent.type === \\"ObjectTypeCallProperty\\" || parent.type === \\"DeclareFunction\\") {\\n    this.push(\\":\\");\\n  } else {\\n    this.space();\\n    this.push(\\"=>\\");\\n  }\\n\\n  this.space();\\n  this.print(node.returnType, node);\\n}\\n\\nfunction FunctionTypeParam(node /*: Object*/) {\\n  this.print(node.name, node);\\n  if (node.optional) this.push(\\"?\\");\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.typeAnnotation, node);\\n}\\n\\nfunction InterfaceExtends(node /*: Object*/) {\\n  this.print(node.id, node);\\n  this.print(node.typeParameters, node);\\n}\\n\\nexports.ClassImplements = InterfaceExtends;\\nexports.GenericTypeAnnotation = InterfaceExtends;\\n\\nfunction _interfaceish(node /*: Object*/) {\\n  this.print(node.id, node);\\n  this.print(node.typeParameters, node);\\n  if (node[\\"extends\\"].length) {\\n    this.push(\\" extends \\");\\n    this.printJoin(node[\\"extends\\"], node, { separator: \\", \\" });\\n  }\\n  if (node.mixins && node.mixins.length) {\\n    this.push(\\" mixins \\");\\n    this.printJoin(node.mixins, node, { separator: \\", \\" });\\n  }\\n  this.space();\\n  this.print(node.body, node);\\n}\\n\\nfunction InterfaceDeclaration(node /*: Object*/) {\\n  this.push(\\"interface \\");\\n  this._interfaceish(node);\\n}\\n\\nfunction IntersectionTypeAnnotation(node /*: Object*/) {\\n  this.printJoin(node.types, node, { separator: \\" & \\" });\\n}\\n\\nfunction MixedTypeAnnotation() {\\n  this.push(\\"mixed\\");\\n}\\n\\nfunction NullableTypeAnnotation(node /*: Object*/) {\\n  this.push(\\"?\\");\\n  this.print(node.typeAnnotation, node);\\n}\\n\\nvar _types = require(\\"./types\\");\\n\\nexports.NumericLiteralTypeAnnotation = _types.NumericLiteral;\\n\\nfunction NumberTypeAnnotation() {\\n  this.push(\\"number\\");\\n}\\n\\nfunction StringLiteralTypeAnnotation(node /*: Object*/) {\\n  this.push(this._stringLiteral(node.value));\\n}\\n\\nfunction StringTypeAnnotation() {\\n  this.push(\\"string\\");\\n}\\n\\nfunction ThisTypeAnnotation() {\\n  this.push(\\"this\\");\\n}\\n\\nfunction TupleTypeAnnotation(node /*: Object*/) {\\n  this.push(\\"[\\");\\n  this.printJoin(node.types, node, { separator: \\", \\" });\\n  this.push(\\"]\\");\\n}\\n\\nfunction TypeofTypeAnnotation(node /*: Object*/) {\\n  this.push(\\"typeof \\");\\n  this.print(node.argument, node);\\n}\\n\\nfunction TypeAlias(node /*: Object*/) {\\n  this.push(\\"type \\");\\n  this.print(node.id, node);\\n  this.print(node.typeParameters, node);\\n  this.space();\\n  this.push(\\"=\\");\\n  this.space();\\n  this.print(node.right, node);\\n  this.semicolon();\\n}\\n\\nfunction TypeAnnotation(node /*: Object*/) {\\n  this.push(\\":\\");\\n  this.space();\\n  if (node.optional) this.push(\\"?\\");\\n  this.print(node.typeAnnotation, node);\\n}\\n\\nfunction TypeParameterInstantiation(node /*: Object*/) {\\n  // istanbul ignore next\\n\\n  var _this = this;\\n\\n  this.push(\\"<\\");\\n  this.printJoin(node.params, node, {\\n    separator: \\", \\",\\n    iterator: function iterator(node /*: Object*/) {\\n      _this.print(node.typeAnnotation, node);\\n    }\\n  });\\n  this.push(\\">\\");\\n}\\n\\nexports.TypeParameterDeclaration = TypeParameterInstantiation;\\n\\nfunction ObjectTypeAnnotation(node /*: Object*/) {\\n  // istanbul ignore next\\n\\n  var _this2 = this;\\n\\n  this.push(\\"{\\");\\n  var props = node.properties.concat(node.callProperties, node.indexers);\\n\\n  if (props.length) {\\n    this.space();\\n\\n    this.printJoin(props, node, {\\n      separator: false,\\n      indent: true,\\n      iterator: function iterator() {\\n        if (props.length !== 1) {\\n          _this2.semicolon();\\n          _this2.space();\\n        }\\n      }\\n    });\\n\\n    this.space();\\n  }\\n\\n  this.push(\\"}\\");\\n}\\n\\nfunction ObjectTypeCallProperty(node /*: Object*/) {\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.print(node.value, node);\\n}\\n\\nfunction ObjectTypeIndexer(node /*: Object*/) {\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.push(\\"[\\");\\n  this.print(node.id, node);\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.key, node);\\n  this.push(\\"]\\");\\n  this.push(\\":\\");\\n  this.space();\\n  this.print(node.value, node);\\n}\\n\\nfunction ObjectTypeProperty(node /*: Object*/) {\\n  if (node[\\"static\\"]) this.push(\\"static \\");\\n  this.print(node.key, node);\\n  if (node.optional) this.push(\\"?\\");\\n  if (!t.isFunctionTypeAnnotation(node.value)) {\\n    this.push(\\":\\");\\n    this.space();\\n  }\\n  this.print(node.value, node);\\n}\\n\\nfunction QualifiedTypeIdentifier(node /*: Object*/) {\\n  this.print(node.qualification, node);\\n  this.push(\\".\\");\\n  this.print(node.id, node);\\n}\\n\\nfunction UnionTypeAnnotation(node /*: Object*/) {\\n  this.printJoin(node.types, node, { separator: \\" | \\" });\\n}\\n\\nfunction TypeCastExpression(node /*: Object*/) {\\n  this.push(\\"(\\");\\n  this.print(node.expression, node);\\n  this.print(node.typeAnnotation, node);\\n  this.push(\\")\\");\\n}\\n\\nfunction VoidTypeAnnotation() {\\n  this.push(\\"void\\");\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/flow.js\\n ** module id = 383\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nexports.__esModule = true;\\nexports.File = File;\\nexports.Program = Program;\\nexports.BlockStatement = BlockStatement;\\nexports.Noop = Noop;\\nexports.Directive = Directive;\\nexports.DirectiveLiteral = DirectiveLiteral;\\n\\nfunction File(node /*: Object*/) {\\n  this.print(node.program, node);\\n}\\n\\nfunction Program(node /*: Object*/) {\\n  this.printInnerComments(node, false);\\n\\n  this.printSequence(node.directives, node);\\n  if (node.directives && node.directives.length) this.newline();\\n\\n  this.printSequence(node.body, node);\\n}\\n\\nfunction BlockStatement(node /*: Object*/) {\\n  this.push(\\"{\\");\\n  this.printInnerComments(node);\\n  if (node.body.length) {\\n    this.newline();\\n\\n    this.printSequence(node.directives, node, { indent: true });\\n    if (node.directives && node.directives.length) this.newline();\\n\\n    this.printSequence(node.body, node, { indent: true });\\n    if (!this.format.retainLines) this.removeLast(\\"\\\\n\\");\\n    this.rightBrace();\\n  } else {\\n    this.push(\\"}\\");\\n  }\\n}\\n\\nfunction Noop() {}\\n\\nfunction Directive(node /*: Object*/) {\\n  this.print(node.value, node);\\n  this.semicolon();\\n}\\n\\nfunction DirectiveLiteral(node /*: Object*/) {\\n  this.push(this._stringLiteral(node.value));\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/base.js\\n ** module id = 384\\n ** module chunks = 0\\n **/","/* @flow */\\n\\n\\"use strict\\";\\n\\nvar _getIterator = require(\\"babel-runtime/core-js/get-iterator\\")[\\"default\\"];\\n\\nexports.__esModule = true;\\nexports.JSXAttribute = JSXAttribute;\\nexports.JSXIdentifier = JSXIdentifier;\\nexports.JSXNamespacedName = JSXNamespacedName;\\nexports.JSXMemberExpression = JSXMemberExpression;\\nexports.JSXSpreadAttribute = JSXSpreadAttribute;\\nexports.JSXExpressionContainer = JSXExpressionContainer;\\nexports.JSXText = JSXText;\\nexports.JSXElement = JSXElement;\\nexports.JSXOpeningElement = JSXOpeningElement;\\nexports.JSXClosingElement = JSXClosingElement;\\nexports.JSXEmptyExpression = JSXEmptyExpression;\\n\\nfunction JSXAttribute(node /*: Object*/) {\\n  this.print(node.name, node);\\n  if (node.value) {\\n    this.push(\\"=\\");\\n    this.print(node.value, node);\\n  }\\n}\\n\\nfunction JSXIdentifier(node /*: Object*/) {\\n  this.push(node.name);\\n}\\n\\nfunction JSXNamespacedName(node /*: Object*/) {\\n  this.print(node.namespace, node);\\n  this.push(\\":\\");\\n  this.print(node.name, node);\\n}\\n\\nfunction JSXMemberExpression(node /*: Object*/) {\\n  this.print(node.object, node);\\n  this.push(\\".\\");\\n  this.print(node.property, node);\\n}\\n\\nfunction JSXSpreadAttribute(node /*: Object*/) {\\n  this.push(\\"{...\\");\\n  this.print(node.argument, node);\\n  this.push(\\"}\\");\\n}\\n\\nfunction JSXExpressionContainer(node /*: Object*/) {\\n  this.push(\\"{\\");\\n  this.print(node.expression, node);\\n  this.push(\\"}\\");\\n}\\n\\nfunction JSXText(node /*: Object*/) {\\n  this.push(node.value, true);\\n}\\n\\nfunction JSXElement(node /*: Object*/) {\\n  var open = node.openingElement;\\n  this.print(open, node);\\n  if (open.selfClosing) return;\\n\\n  this.indent();\\n  for (var _iterator = (node.children /*: Array<Object>*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) {\\n    var _ref;\\n\\n    if (_isArray) {\\n      if (_i >= _iterator.length) break;\\n      _ref = _iterator[_i++];\\n    } else {\\n      _i = _iterator.next();\\n      if (_i.done) break;\\n      _ref = _i.value;\\n    }\\n\\n    var child = _ref;\\n\\n    this.print(child, node);\\n  }\\n  this.dedent();\\n\\n  this.print(node.closingElement, node);\\n}\\n\\nfunction JSXOpeningElement(node /*: Object*/) {\\n  this.push(\\"<\\");\\n  this.print(node.name, node);\\n  if (node.attributes.length > 0) {\\n    this.push(\\" \\");\\n    this.printJoin(node.attributes, node, { separator: \\" \\" });\\n  }\\n  this.push(node.selfClosing ? \\" />\\" : \\">\\");\\n}\\n\\nfunction JSXClosingElement(node /*: Object*/) {\\n  this.push(\\"</\\");\\n  this.print(node.name, node);\\n  this.push(\\">\\");\\n}\\n\\nfunction JSXEmptyExpression() {}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/babel-generator/lib/generators/jsx.js\\n ** module id = 385\\n ** module chunks = 0\\n **/","module.exports = function extend(target, source) {\\n  var prop;\\n\\n  target = target || {};\\n  for (prop in source) {\\n    if (typeof source[prop] === \'object\') {\\n      target[prop] = extend(target[prop], source[prop]);\\n    } else {\\n      target[prop] = source[prop];\\n    }\\n  }\\n  return target;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/merge.js\\n ** module id = 386\\n ** module chunks = 0\\n **/","var ids = 0;\\n\\nmodule.exports = function () {\\n  return \'_\' + (++ids);\\n};\\nmodule.exports.resetIDs = function () {\\n  ids = 0;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/randomId.js\\n ** module id = 387\\n ** module chunks = 0\\n **/","var isArray = require(\'../helpers/isArray\');\\nvar injectAt = require(\'../helpers/injectAt\');\\nvar getID = require(\'../helpers/randomId\');\\nvar t = require(\'babel-types\');\\nvar settings = require(\'../settings\');\\nvar isIgnored = require(\'../core/traverse\').isIgnored;\\n\\nvar updateStyleSheet = function (node, stylesheetId) {\\n  var key, i;\\n\\n  if (\\n    node && node.type === \'CallExpression\' &&\\n    node.callee && node.callee.type === \'MemberExpression\' &&\\n    node.callee.object && node.callee.object.name === \'cssx\'\\n  ) {\\n    node.callee.object.name = stylesheetId;\\n  } else {\\n    if (isArray(node)) {\\n      for (i = 0; i < node.length; i++) {\\n        updateStyleSheet(node[i], stylesheetId);\\n      }\\n    } else {\\n      for (key in node) {\\n        if (!isIgnored(key)) {\\n          if (typeof node[key] === \'object\') {\\n            updateStyleSheet(node[key], stylesheetId);\\n          }\\n        }\\n      }\\n    }\\n  }\\n  return node;\\n};\\n\\nvar detectCSSRulesBlock = function (nodes) {\\n  return nodes.length === 1 &&\\n    nodes[0].type === \'ExpressionStatement\' &&\\n    nodes[0].expression.type === \'CallExpression\' &&\\n    nodes[0].expression.arguments.length > 0 &&\\n    nodes[0].expression.arguments[0].value === \'\';\\n};\\n\\nvar funcLines, stylesheetId;\\n\\nmodule.exports = {\\n  enter: function (node, parent, index, context) {\\n    funcLines = [];\\n    stylesheetId = getID();\\n    context.addToCSSXSelfInvoke = function (item) {\\n      funcLines = [item].concat(funcLines);\\n    };\\n  },\\n  exit: function (node, parent, index, context) {\\n    var rulesRegistration, newStylesheetExpr, createSelfInvoke, funcBody, funcExpr;\\n\\n    delete context.addToCSSXSelfInvoke;\\n\\n    if (node.body.length === 0) {\\n      delete parent[index];\\n      return;\\n    }\\n\\n    newStylesheetExpr = t.variableDeclaration(\\n      \'var\',\\n      [\\n        t.variableDeclarator(\\n          t.identifier(stylesheetId),\\n          t.callExpression(\\n            t.identifier(settings.CSSXCalleeObj),\\n            [t.stringLiteral(stylesheetId)]\\n          )\\n        )\\n      ]\\n    );\\n\\n    rulesRegistration = node.body.map(function (line) {\\n      line = updateStyleSheet(line, stylesheetId);\\n      if (line.type === \'CallExpression\') {\\n        line = t.expressionStatement(updateStyleSheet(line, stylesheetId));\\n      }\\n      return line;\\n    });\\n\\n    // is it only css rules block\\n    if (detectCSSRulesBlock(rulesRegistration)) {\\n      funcLines.push(t.returnStatement(t.identifier(\\n        funcLines[0].declarations[0].id.name\\n      )));\\n      createSelfInvoke = function (expr) { return expr; };\\n    // creating the stylesheet\\n    } else {\\n      funcLines.push(newStylesheetExpr);\\n      funcLines = funcLines.concat(rulesRegistration);\\n      funcLines.push(t.returnStatement(t.identifier(stylesheetId)));\\n      createSelfInvoke = function (expr) { return t.expressionStatement(expr); };\\n    }\\n\\n    // wrapping up the self-invoke function\\n    funcBody = t.blockStatement(funcLines);\\n    funcExpr = t.callExpression(\\n      t.memberExpression(\\n        t.functionExpression(null, [], funcBody),\\n        t.identifier(\'apply\')\\n      ),\\n      [t.thisExpression()]\\n    );\\n\\n    if (isArray(parent)) {\\n      injectAt(parent, index, createSelfInvoke(funcExpr));\\n    } else {\\n      parent[index] = createSelfInvoke(funcExpr);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXDefinition.js\\n ** module id = 388\\n ** module chunks = 0\\n **/","module.exports = function (arr, index, elements) {\\n  arr.splice.apply(arr, [index, 1].concat(elements));\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/helpers/injectAt.js\\n ** module id = 389\\n ** module chunks = 0\\n **/","module.exports = {\\n  CSSXCalleeObj: \'cssx\',\\n  CSSXCalleeProp: \'add\',\\n  CSSXClientNestedMethodName: \'n\'\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/settings.js\\n ** module id = 390\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar settings = require(\'../settings\');\\n\\nvar formCSSXElement = function (args) {\\n  return t.callExpression(\\n    t.MemberExpression(\\n      t.identifier(settings.CSSXCalleeObj),\\n      t.identifier(settings.CSSXCalleeProp)\\n    ),\\n    args\\n  );\\n};\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    var args = [], el;\\n\\n    node.selector ? args.push(node.selector) : null;\\n    node.body ? args.push(node.body) : null;\\n    el = formCSSXElement(args);\\n\\n    if (typeof parent !== \'undefined\' && index !== \'undefined\') {\\n      parent[index] = el;\\n    }\\n    return el;\\n  }\\n};\\nmodule.exports.formCSSXElement = formCSSXElement;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXElement.js\\n ** module id = 391\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar parseExpressions = require(\'../core/parseExpressions\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    if (node.expressions) {\\n      parent[index] = parseExpressions(node);\\n    } else {\\n      parent[index] = t.stringLiteral(node.name);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXProperty.js\\n ** module id = 392\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar AST = require(\'./AST\');\\n\\nmodule.exports = function (node) {\\n  var value = node.value || node.name;\\n  var expressions = node.expressions;\\n  var bit, replaceWith, ast, mutations, i = -1, starts, ends, index, inExpr = false, ch;\\n  var length = value.length;\\n  var code = \'\';\\n\\n  mutations = expressions.map(function (expr) {\\n    bit = value.substr(expr.contextLoc.start, expr.contextLoc.end - expr.contextLoc.start);\\n    replaceWith = \'(\' + bit.replace(/^`(.+)`$/, \'$1\') + \')\';\\n    return {\\n      start: expr.contextLoc.start,\\n      end: expr.contextLoc.end,\\n      replaceWith: replaceWith\\n    };\\n  });\\n  starts = mutations.map(function (m) { return m.start; });\\n  ends = mutations.map(function (m) { return m.end; });\\n\\n  while (++i < length) {\\n    // start\\n    if ((index = starts.indexOf(i)) >= 0) {\\n      code += (i === 0 ? \'\' : \'\\" + \') + mutations[index].replaceWith;\\n      inExpr = true;\\n    // ends\\n    } else if ((index = ends.indexOf(i)) >= 0) {\\n      code += i === length - 1 ? \'\' : \' + \\"\';\\n      inExpr = false;\\n    }\\n    if (!inExpr) {\\n      ch = value.charAt(i);\\n      ch = ch === \'\\"\' ? \'\\\\\\\\\\"\' : ch;\\n      if (i === 0) {\\n        code += \'\\"\' + ch;\\n      } else if (i === length - 1) {\\n        code += ch + \'\\"\';\\n      } else {\\n        code += ch;\\n      }\\n    }\\n  }\\n\\n  try {\\n    ast = AST(code);\\n  } catch (err) {\\n    throw new Error(\'parsing cssx expression: \' + code + \' (\' + err.message + \')\');\\n  }\\n\\n  if (ast && ast.program && ast.program.body && ast.program.body[0] && ast.program.body[0].expression) {\\n    return ast.program.body[0].expression;\\n  }\\n  return t.stringLiteral(value);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/core/parseExpressions.js\\n ** module id = 393\\n ** module chunks = 0\\n **/","module.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    parent[index] = { key: node.label, value: node.body };\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXRule.js\\n ** module id = 394\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar randomId = require(\'../helpers/randomId\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index, context) {},\\n  exit: function (node, parent, index, context) {\\n    var propAssignment, propsObject, addToContext;\\n    var rules = node.body;\\n    var id = randomId();\\n\\n    addToContext = function (item) {\\n      if (context && context.addToCSSXSelfInvoke) {\\n        context.addToCSSXSelfInvoke(item);\\n      }\\n    };\\n\\n    propsObject = t.variableDeclaration(\\n      \'var\',\\n      [\\n        t.variableDeclarator(\\n          t.identifier(id),\\n          t.objectExpression([])\\n        )\\n      ]\\n    );\\n    rules.forEach(function (rule) {\\n      propAssignment = t.expressionStatement(\\n        t.assignmentExpression(\\n          \'=\',\\n          t.memberExpression(\\n            t.identifier(id),\\n            rule.key,\\n            true\\n          ),\\n          rule.value\\n        )\\n      );\\n      addToContext(propAssignment);\\n    });\\n    addToContext(propsObject);\\n\\n    parent[index] = t.identifier(id);\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXRules.js\\n ** module id = 395\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar parseExpressions = require(\'../core/parseExpressions\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    if (node.expressions) {\\n      parent[index] = parseExpressions(node);\\n    } else {\\n      parent[index] = t.stringLiteral(node.value);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXSelector.js\\n ** module id = 396\\n ** module chunks = 0\\n **/","var t = require(\'babel-types\');\\nvar parseExpressions = require(\'../core/parseExpressions\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    if (node.expressions) {\\n      parent[index] = parseExpressions(node);\\n    } else {\\n      parent[index] = t.stringLiteral(node.name);\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXValue.js\\n ** module id = 397\\n ** module chunks = 0\\n **/","module.exports = require(\'./CSSXNestedElement\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXMediaQueryElement.js\\n ** module id = 398\\n ** module chunks = 0\\n **/","var CSSXElement = require(\'./CSSXElement\');\\nvar formCSSXElement = CSSXElement.formCSSXElement;\\nvar t = require(\'babel-types\');\\nvar injectAt = require(\'../helpers/injectAt\');\\nvar isArray = require(\'../helpers/isArray\');\\nvar settings = require(\'../settings\');\\nvar getID = require(\'../helpers/randomId\');\\n\\nmodule.exports = {\\n  enter: function (node, parent, index) {},\\n  exit: function (node, parent, index) {\\n    var id = getID(), lines = [];\\n\\n    lines.push(t.variableDeclaration(\\n      \'var\',\\n      [\\n        t.variableDeclarator(\\n          t.identifier(id),\\n          formCSSXElement([\\n            t.stringLiteral(node.query)\\n          ])\\n        )\\n      ]\\n    ));\\n    lines = lines.concat(node.body.map(function (cssxElementNode) {\\n      cssxElementNode.callee.object.name = id;\\n      cssxElementNode.callee.property.name = settings.CSSXClientNestedMethodName;\\n      return t.expressionStatement(cssxElementNode);\\n    }));\\n    if (isArray(parent)) {\\n      injectAt(parent, index, lines);\\n    } else {\\n      delete parent[index];\\n    }\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXNestedElement.js\\n ** module id = 399\\n ** module chunks = 0\\n **/","module.exports = require(\'./CSSXNestedElement\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx-transpiler/src/visitors/CSSXKeyframesElement.js\\n ** module id = 400\\n ** module chunks = 0\\n **/"],"sourceRoot":""}\n\\ No newline at end of file\ndiff --git a/packages/cssx-transpiler/src/settings.js b/packages/cssx-transpiler/src/settings.js\nindex 3037ce8..87f25c8 100644\n--- a/packages/cssx-transpiler/src/settings.js\n+++ b/packages/cssx-transpiler/src/settings.js\n@@ -1,6 +1,5 @@\n module.exports = {\n   CSSXCalleeObj: \'cssx\',\n   CSSXCalleeProp: \'add\',\n-  CSSXClientNestedMethodName: \'n\',\n-  CSSXNewStylesheet: \'s\'\n+  CSSXClientNestedMethodName: \'n\'\n };\ndiff --git a/packages/cssx-transpiler/src/visitors/CSSXDefinition.js b/packages/cssx-transpiler/src/visitors/CSSXDefinition.js\nindex 5225ff0..a081498 100644\n--- a/packages/cssx-transpiler/src/visitors/CSSXDefinition.js\n+++ b/packages/cssx-transpiler/src/visitors/CSSXDefinition.js\n@@ -66,10 +66,7 @@ module.exports = {\n         t.variableDeclarator(\n           t.identifier(stylesheetId),\n           t.callExpression(\n-            t.MemberExpression(\n-              t.identifier(settings.CSSXCalleeObj),\n-              t.identifier(settings.CSSXNewStylesheet)\n-            ),\n+            t.identifier(settings.CSSXCalleeObj),\n             [t.stringLiteral(stylesheetId)]\n           )\n         )\ndiff --git a/packages/cssx/README.md b/packages/cssx/README.md\nindex d67dc3d..4e44470 100644\n--- a/packages/cssx/README.md\n+++ b/packages/cssx/README.md\n@@ -84,9 +84,9 @@ Drop `cssx.min.js` on your page or run `npm i cssx` in node.\n \n ## Top level API\n \n-#### `cssx.stylesheet(<id>)`\n+#### `cssx(<id>)`\n \n-* `id` - an unique ID of your stylesheet.\n+* `id` - an unique ID of your stylesheet. It\'s an optional field.\n \n Creates a **stylesheet** object which represents a single `<style>` tag.\n \n@@ -125,6 +125,49 @@ Returns the CSS generated by all the stylesheets.\n \n Returns a **rule** object that represents a single CSS rule.\n \n+#### `<stylesheet>.update(<selector>, <new styles>)`\n+\n+* `selector` - string\n+* `new styles` - if it\'s a function should return an object containing properties-values pair. If it\'s an object should be simply properties-values pairs. The new styles are merged with the existing ones.\n+\n+(The function calls the `[update](#ruleupdate)` method of the [CSSX rule object](#rule-api))\n+\n+Let\'s say that we have the following stylesheet:\n+\n+```js\n+var sheet = cssx(\n+  body {\n+    margin: 0;\n+    padding: 0;\n+  }\n+  body p {\n+    font-size: 20px;\n+  }\n+);\n+\n+sheet.update(\'body p\', cssx({\n+  font-size: 1em;\n+}));\n+\n+/* result:\n+\n+body {\n+  padding: 0;\n+  margin: 0;\n+}\n+body p {\n+  font-size: 1em;\n+}\n+\n+*/\n+```\n+\n+#### `<stylesheet>.query(<selector>)`\n+\n+* `selector` - string\n+\n+Returns the [CSSX rule object](#rule-api) associated with the `selector`\n+\n #### `<stylesheet>.id()`\n \n Surprisingly, it returns the `id` of the stylesheet.\n@@ -204,6 +247,13 @@ body {\n \n Every rule has a unique ID attached. If you ever need that use this method to retrieve it.\n \n+#### `<rule>.update(<selector>, <new styles>)`\n+\n+* `selector` - string\n+* `new styles` - if it\'s a function should return an object containing properties-values pair. If it\'s an object should be simply properties-values pairs. The new styles are merged with the existing ones.\n+\n+The function may accept only one argument and if that\'s the case then it is considered as `new styles`.\n+\n ---\n \n # Contribution\ndiff --git a/packages/cssx/lib/cssx.js b/packages/cssx/lib/cssx.js\nindex 82c583b..aa5209a 100644\n--- a/packages/cssx/lib/cssx.js\n+++ b/packages/cssx/lib/cssx.js\n@@ -54,21 +54,21 @@ return /******/ (function(modules) { // webpackBootstrap\n /* 0 */\n /***/ function(module, exports, __webpack_require__) {\n \n-\tvar factory, goGlobal, stylesheets, api;\n+\tvar factory, goGlobal, stylesheets, api, randomId;\n \t\n \t__webpack_require__(1);\n \t\n \tfactory = __webpack_require__(5);\n-\tgoGlobal = __webpack_require__(17);\n+\tgoGlobal = __webpack_require__(6);\n+\trandomId = __webpack_require__(7);\n \t\n \tstylesheets = [];\n-\tapi = function () {};\n \t\n \tfunction createStyleSheet(id) {\n \t  var s, i;\n \t\n \t  if (typeof id === \'undefined\') {\n-\t    throw new Error(\'`stylesheet` method expects ID as an argument\');\n+\t    id = randomId();\n \t  }\n \t\n \t  for (i = 0; i < stylesheets.length; i++) {\n@@ -81,6 +81,8 @@ return /******/ (function(modules) { // webpackBootstrap\n \t  return s;\n \t};\n \t\n+\tapi = function (id) { return createStyleSheet(id); };\n+\t\n \tapi.domChanges = function (flag) {\n \t  factory.disableDOMChanges = !flag;\n \t};\n@@ -111,7 +113,6 @@ return /******/ (function(modules) { // webpackBootstrap\n \t  return css;\n \t};\n \t\n-\tapi.stylesheet = api.s = createStyleSheet;\n \tmodule.exports = api;\n \t\n \tgoGlobal(module.exports);\n@@ -326,13 +327,14 @@ return /******/ (function(modules) { // webpackBootstrap\n /* 5 */\n /***/ function(module, exports, __webpack_require__) {\n \n-\tvar CSSRule = __webpack_require__(6);\n-\tvar applyToDOM = __webpack_require__(7);\n-\tvar nextTick = __webpack_require__(8);\n-\tvar resolveSelector = __webpack_require__(12);\n-\tvar generate = __webpack_require__(13);\n-\tvar warning = __webpack_require__(16);\n-\t\n+\tvar CSSRule = __webpack_require__(8);\n+\tvar applyToDOM = __webpack_require__(9);\n+\tvar nextTick = __webpack_require__(10);\n+\tvar resolveSelector = __webpack_require__(14);\n+\tvar generate = __webpack_require__(15);\n+\tvar warning = __webpack_require__(18);\n+\t\n+\tvar graphRulePropName = \'__$__cssx_rule\';\n \tvar ids = 0;\n \tvar getId = function () { return \'x\' + (++ids); };\n \t\n@@ -342,6 +344,8 @@ return /******/ (function(modules) { // webpackBootstrap\n \t  var _rules = [];\n \t  var _remove = null;\n \t  var _css = \'\';\n+\t  var _graph = {};\n+\t  var _queries = {};\n \t\n \t  var ruleExists = function (selector, parent) {\n \t    var i, rule, areParentsMatching, areThereNoParents;\n@@ -356,15 +360,26 @@ return /******/ (function(modules) { // webpackBootstrap\n \t    }\n \t    return false;\n \t  };\n-\t  var getRuleBySelector = function (selector, rules) {\n-\t    var i;\n-\t\n-\t    for (i = 0; i < rules.length; i++) {\n-\t      if (resolveSelector(rules[i].selector) === selector) {\n-\t        return rules[i];\n-\t      }\n-\t    }\n-\t    warning(\'No rule matching "\' + selector + \'" selector.\');\n+\t  var getOnlyTopRules = function () {\n+\t    return _rules.filter(function (rule) {\n+\t      return rule.parent === null;\n+\t    });\n+\t  };\n+\t  var buildGraph = function () {\n+\t    _graph = {};\n+\t    (function loop(rules, parent, obj) {\n+\t      if (!rules) return;\n+\t      rules.forEach(function (rule) {\n+\t        var selector = parent ? parent + \' \' : \'\';\n+\t\n+\t        selector += resolveSelector(rule.selector);\n+\t        obj[selector] = {};\n+\t        obj[selector][graphRulePropName] = rule;\n+\t        loop(rule.getChildren(), selector, obj[selector]);\n+\t        loop(rule.getNestedChildren(), selector, obj[selector]);\n+\t      });\n+\t    })(getOnlyTopRules(), false, _graph);\n+\t    return _graph;\n \t  };\n \t\n \t  _api.id = function () {\n@@ -373,7 +388,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \t  _api.add = function (selector, props, parent, isWrapper) {\n \t    var rule, r = ruleExists(selector, parent);\n \t\n-\t    if (r !== false) {\n+\t    if (r) {\n \t      rule = r.update(false, props);\n \t    } else {\n \t      rule = CSSRule(selector, props, _api);\n@@ -382,6 +397,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \t        rule.parent = parent;\n \t        parent.addChild(rule, isWrapper);\n \t      }\n+\t      buildGraph();\n \t    }\n \t    this.compile();\n \t    return rule;\n@@ -399,7 +415,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \t    return _api.compileImmediate();\n \t  };\n \t  _api.compileImmediate = function () {\n-\t    _css = generate(_rules, module.exports.minify);\n+\t    _css = generate(getOnlyTopRules(), module.exports.minify);\n \t    if (!module.exports.disableDOMChanges) {\n \t      _remove = applyToDOM(_css, _id);\n \t    }\n@@ -421,22 +437,47 @@ return /******/ (function(modules) { // webpackBootstrap\n \t    this.compileImmediate();\n \t    return _css;\n \t  };\n-\t  _api.update = function () {\n-\t    var args = Array.prototype.slice.call(arguments);\n-\t    var value = args.pop();\n-\t    var prop = args.pop();\n+\t  _api.update = function (selector, props) {\n+\t    var rule = this.query(selector);\n+\t\n+\t    if (!rule) {\n+\t      warning(\'There is no rule matching "\' + selector + \'"\');\n+\t    } else {\n+\t      rule.update(null, props);\n+\t    }\n+\t    return rule;\n+\t  };\n+\t  _api.query = function (selector) {\n \t    var rule;\n \t\n-\t    while (args.length > 0) {\n-\t      rule = getRuleBySelector(args.shift(), rule ? rule.getNestedChildren() : _rules);\n+\t    selector = resolveSelector(selector);\n+\t\n+\t    if (_queries[selector]) return _queries[selector];\n+\t    (function find(node) {\n+\t      var sel;\n+\t\n \t      if (!rule) {\n-\t        break;\n+\t        for (sel in node) {\n+\t          if (sel === selector && sel !== graphRulePropName) {\n+\t            rule = node[selector][graphRulePropName];\n+\t            break;\n+\t          } else {\n+\t            if (typeof node[sel][graphRulePropName] !== \'undefined\') {\n+\t              find(node[sel]);\n+\t            }\n+\t          }\n+\t        }\n \t      }\n-\t    };\n+\t    })(_graph);\n \t\n \t    if (rule) {\n-\t      rule.updateProp(prop, value);\n+\t      _queries[selector] = rule;\n \t    }\n+\t\n+\t    return rule;\n+\t  };\n+\t  _api.graph = function () {\n+\t    return _graph;\n \t  };\n \t\n \t  return _api;\n@@ -449,6 +490,35 @@ return /******/ (function(modules) { // webpackBootstrap\n \n /***/ },\n /* 6 */\n+/***/ function(module, exports) {\n+\n+\t/* WEBPACK VAR INJECTION */(function(global) {module.exports = function (api) {\n+\t  if (typeof global !== \'undefined\') {\n+\t    global.cssx = api;\n+\t  }\n+\t  if (typeof window !== \'undefined\') {\n+\t    window.cssx = api;\n+\t  }\n+\t};\n+\t\n+\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n+\n+/***/ },\n+/* 7 */\n+/***/ function(module, exports) {\n+\n+\tvar ids = 0;\n+\t\n+\tmodule.exports = function () {\n+\t  return \'_cssx\' + (++ids);\n+\t};\n+\tmodule.exports.resetIDs = function () {\n+\t  ids = 0;\n+\t};\n+\n+\n+/***/ },\n+/* 8 */\n /***/ function(module, exports) {\n \n \tvar ids = 0;\n@@ -494,8 +564,14 @@ return /******/ (function(modules) { // webpackBootstrap\n \t    update: function (s, p) {\n \t      var propName;\n \t\n+\t      if (arguments.length === 1) {\n+\t        p = s;\n+\t        s = false;\n+\t      }\n+\t\n \t      if (s) this.selector = s;\n \t      if (p) {\n+\t        if (typeof p === \'function\') p = p();\n \t        for (propName in p) {\n \t          this.props[propName] = p[propName];\n \t        }\n@@ -503,12 +579,6 @@ return /******/ (function(modules) { // webpackBootstrap\n \t      stylesheet.compile();\n \t      return this;\n \t    },\n-\t    updateProp: function (prop, value) {\n-\t      var newProp = {};\n-\t\n-\t      newProp[prop] = value;\n-\t      return this.update(null, newProp);\n-\t    },\n \t    id: function () {\n \t      return _id;\n \t    },\n@@ -530,7 +600,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 7 */\n+/* 9 */\n /***/ function(module, exports) {\n \n \tvar cache = {};\n@@ -584,12 +654,12 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 8 */\n+/* 10 */\n /***/ function(module, exports, __webpack_require__) {\n \n \t/* WEBPACK VAR INJECTION */(function(setImmediate) {var cache = {};\n \t\n-\t__webpack_require__(11);\n+\t__webpack_require__(13);\n \t\n \tmodule.exports = function (work, id) {\n \t  if (!cache[id]) {\n@@ -601,13 +671,13 @@ return /******/ (function(modules) { // webpackBootstrap\n \t  }\n \t};\n \t\n-\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9).setImmediate))\n+\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).setImmediate))\n \n /***/ },\n-/* 9 */\n+/* 11 */\n /***/ function(module, exports, __webpack_require__) {\n \n-\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(10).nextTick;\n+\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(12).nextTick;\n \tvar apply = Function.prototype.apply;\n \tvar slice = Array.prototype.slice;\n \tvar immediateIds = {};\n@@ -683,10 +753,10 @@ return /******/ (function(modules) { // webpackBootstrap\n \texports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) {\n \t  delete immediateIds[id];\n \t};\n-\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9).setImmediate, __webpack_require__(9).clearImmediate))\n+\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).setImmediate, __webpack_require__(11).clearImmediate))\n \n /***/ },\n-/* 10 */\n+/* 12 */\n /***/ function(module, exports) {\n \n \t// shim for using process in browser\n@@ -783,7 +853,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 11 */\n+/* 13 */\n /***/ function(module, exports, __webpack_require__) {\n \n \t/* WEBPACK VAR INJECTION */(function(global, clearImmediate, process) {(function (global, undefined) {\n@@ -962,10 +1032,10 @@ return /******/ (function(modules) { // webpackBootstrap\n \t    attachTo.clearImmediate = clearImmediate;\n \t}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));\n \t\n-\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(9).clearImmediate, __webpack_require__(10)))\n+\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(11).clearImmediate, __webpack_require__(12)))\n \n /***/ },\n-/* 12 */\n+/* 14 */\n /***/ function(module, exports) {\n \n \tmodule.exports = function (selector) {\n@@ -974,20 +1044,15 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 13 */\n+/* 15 */\n /***/ function(module, exports, __webpack_require__) {\n \n-\tvar isEmpty = __webpack_require__(14);\n-\tvar resolveSelector = __webpack_require__(12);\n-\tvar prefix = __webpack_require__(15);\n+\tvar isEmpty = __webpack_require__(16);\n+\tvar resolveSelector = __webpack_require__(14);\n+\tvar prefix = __webpack_require__(17);\n \t\n \tmodule.exports = function (rules, minify) {\n \t\n-\t  // at the top level, use only those which has no parent\n-\t  rules = rules.filter(function (rule) {\n-\t    return rule.parent === null;\n-\t  });\n-\t\n \t  // duplicate those that need prefixing\n \t  rules = prefix.selector(rules);\n \t\n@@ -1030,7 +1095,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 14 */\n+/* 16 */\n /***/ function(module, exports) {\n \n \tmodule.exports = function (obj) {\n@@ -1046,10 +1111,10 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 15 */\n+/* 17 */\n /***/ function(module, exports, __webpack_require__) {\n \n-\tvar resolveSelector = __webpack_require__(12);\n+\tvar resolveSelector = __webpack_require__(14);\n \tvar SELECTORS = {\n \t  \'@keyframes\': [\n \t    \'@-webkit-keyframes\',\n@@ -1115,7 +1180,7 @@ return /******/ (function(modules) { // webpackBootstrap\n \n \n /***/ },\n-/* 16 */\n+/* 18 */\n /***/ function(module, exports) {\n \n \tmodule.exports = function (message) {\n@@ -1125,21 +1190,6 @@ return /******/ (function(modules) { // webpackBootstrap\n \t};\n \n \n-/***/ },\n-/* 17 */\n-/***/ function(module, exports) {\n-\n-\t/* WEBPACK VAR INJECTION */(function(global) {module.exports = function (api) {\n-\t  if (typeof global !== \'undefined\') {\n-\t    global.cssx = api;\n-\t  }\n-\t  if (typeof window !== \'undefined\') {\n-\t    window.cssx = api;\n-\t  }\n-\t};\n-\t\n-\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n-\n /***/ }\n /******/ ])\n });\ndiff --git a/packages/cssx/lib/cssx.js.map b/packages/cssx/lib/cssx.js.map\nindex df25fb6..0339a5e 100644\n--- a/packages/cssx/lib/cssx.js.map\n+++ b/packages/cssx/lib/cssx.js.map\n@@ -1 +1 @@\n-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap afdbdac45711b8a050df","webpack:///./packages/cssx/src/index.js","webpack:///./packages/cssx/src/polyfills/index.js","webpack:///./packages/cssx/src/polyfills/filter.js","webpack:///./packages/cssx/src/polyfills/forEach.js","webpack:///./packages/cssx/src/polyfills/map.js","webpack:///./packages/cssx/src/CSSStylesheet.js","webpack:///./packages/cssx/src/CSSRule.js","webpack:///./packages/cssx/src/helpers/applyToDOM.js","webpack:///./packages/cssx/src/helpers/nextTick.js","webpack:///(webpack)/~/node-libs-browser/~/timers-browserify/main.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/setimmediate/setImmediate.js","webpack:///./packages/cssx/src/helpers/resolveSelector.js","webpack:///./packages/cssx/src/core/generate.js","webpack:///./packages/cssx/src/helpers/isEmpty.js","webpack:///./packages/cssx/src/helpers/prefix.js","webpack:///./packages/cssx/src/helpers/warning.js","webpack:///./packages/cssx/src/helpers/goGlobal.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,cAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa,wBAAwB;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AC5DA;AACA;AACA;;;;;;;ACFA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACjCA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAoD;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACzDA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAoD;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAY;AACZ;AACA;AACA,kCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAyB,sBAAsB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;ACtHA;AACA,0BAAyB,sBAAsB;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AC3EA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS,wBAAwB;AACjC,UAAS;AACT;AACA;AACA;AACA,kBAAiB;AACjB,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC/CA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,G;;;;;;;AC3EA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC1FtC;AACA;;AAEA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAU;AACV;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;;AC9KD;AACA;AACA;;;;;;;ACFA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA;AACA,oBAAmB,2BAA2B;AAC9C;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACjDA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC,oCAAmC;AACnC,oCAAmC;AACnC,kCAAiC;AACjC,qCAAoC;AACpC,oCAAmC;AACnC,uCAAsC;AACtC,sCAAqC;AACrC,sCAAqC;AACrC,uCAAsC;AACtC,mCAAkC;AAClC,mCAAkC;AAClC,mCAAkC;AAClC,oCAAmC;AACnC,mCAAkC;AAClC;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9DA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"cssx.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\\n\\tif(typeof exports === \'object\' && typeof module === \'object\')\\n\\t\\tmodule.exports = factory();\\n\\telse if(typeof define === \'function\' && define.amd)\\n\\t\\tdefine(\\"cssx\\", [], factory);\\n\\telse if(typeof exports === \'object\')\\n\\t\\texports[\\"cssx\\"] = factory();\\n\\telse\\n\\t\\troot[\\"cssx\\"] = factory();\\n})(this, function() {\\nreturn \\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/universalModuleDefinition\\n **/"," \\t// The module cache\\n \\tvar installedModules = {};\\n\\n \\t// The require function\\n \\tfunction __webpack_require__(moduleId) {\\n\\n \\t\\t// Check if module is in cache\\n \\t\\tif(installedModules[moduleId])\\n \\t\\t\\treturn installedModules[moduleId].exports;\\n\\n \\t\\t// Create a new module (and put it into the cache)\\n \\t\\tvar module = installedModules[moduleId] = {\\n \\t\\t\\texports: {},\\n \\t\\t\\tid: moduleId,\\n \\t\\t\\tloaded: false\\n \\t\\t};\\n\\n \\t\\t// Execute the module function\\n \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n\\n \\t\\t// Flag the module as loaded\\n \\t\\tmodule.loaded = true;\\n\\n \\t\\t// Return the exports of the module\\n \\t\\treturn module.exports;\\n \\t}\\n\\n\\n \\t// expose the modules object (__webpack_modules__)\\n \\t__webpack_require__.m = modules;\\n\\n \\t// expose the module cache\\n \\t__webpack_require__.c = installedModules;\\n\\n \\t// __webpack_public_path__\\n \\t__webpack_require__.p = \\"\\";\\n\\n \\t// Load entry module and return exports\\n \\treturn __webpack_require__(0);\\n\\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/bootstrap afdbdac45711b8a050df\\n **/","var factory, goGlobal, stylesheets, api;\\n\\nrequire(\'./polyfills\');\\n\\nfactory = require(\'./CSSStylesheet\');\\ngoGlobal = require(\'./helpers/goGlobal\');\\n\\nstylesheets = [];\\napi = function () {};\\n\\nfunction createStyleSheet(id) {\\n  var s, i;\\n\\n  if (typeof id === \'undefined\') {\\n    throw new Error(\'`stylesheet` method expects ID as an argument\');\\n  }\\n\\n  for (i = 0; i < stylesheets.length; i++) {\\n    if (stylesheets[i].id() === id) {\\n      return stylesheets[i];\\n    }\\n  }\\n  s = factory.apply(factory, arguments);\\n  stylesheets.push(s);\\n  return s;\\n};\\n\\napi.domChanges = function (flag) {\\n  factory.disableDOMChanges = !flag;\\n};\\napi.minify = function (flag) {\\n  factory.minify = flag;\\n};\\napi.nextTick = function (flag) {\\n  factory.useNextTick = flag;\\n};\\napi.getStylesheets = function () {\\n  return stylesheets;\\n};\\napi.clear = function () {\\n  var i;\\n\\n  for (i = 0; i < stylesheets.length; i++) {\\n    stylesheets[i].clear();\\n  }\\n  stylesheets = [];\\n  return api;\\n};\\napi.getCSS = function () {\\n  var i, css = \'\';\\n\\n  for (i = 0; i < stylesheets.length; i++) {\\n    css += stylesheets[i].getCSS();\\n  }\\n  return css;\\n};\\n\\napi.stylesheet = api.s = createStyleSheet;\\nmodule.exports = api;\\n\\ngoGlobal(module.exports);\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/index.js\\n ** module id = 0\\n ** module chunks = 0\\n **/","require(\'./filter\');\\nrequire(\'./forEach\');\\nrequire(\'./map\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/index.js\\n ** module id = 1\\n ** module chunks = 0\\n **/","if (!Array.prototype.filter) {\\n  Array.prototype.filter = function(fun/*, thisArg*/) {\\n    \'use strict\';\\n\\n    if (this === void 0 || this === null) {\\n      throw new TypeError();\\n    }\\n\\n    var t = Object(this);\\n    var len = t.length >>> 0;\\n    if (typeof fun !== \'function\') {\\n      throw new TypeError();\\n    }\\n\\n    var res = [];\\n    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\\n    for (var i = 0; i < len; i++) {\\n      if (i in t) {\\n        var val = t[i];\\n\\n        // NOTE: Technically this should Object.defineProperty at\\n        //       the next index, as push can be affected by\\n        //       properties on Object.prototype and Array.prototype.\\n        //       But that method\'s new, and collisions should be\\n        //       rare, so use the more-compatible alternative.\\n        if (fun.call(thisArg, val, i, t)) {\\n          res.push(val);\\n        }\\n      }\\n    }\\n\\n    return res;\\n  };\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/filter.js\\n ** module id = 2\\n ** module chunks = 0\\n **/","// Production steps of ECMA-262, Edition 5, 15.4.4.18\\n// Reference: http://es5.github.io/#x15.4.4.18\\nif (!Array.prototype.forEach) {\\n\\n  Array.prototype.forEach = function(callback, thisArg) {\\n\\n    var T, k;\\n\\n    if (this == null) {\\n      throw new TypeError(\' this is null or not defined\');\\n    }\\n\\n    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.\\n    var O = Object(this);\\n\\n    // 2. Let lenValue be the result of calling the Get internal method of O with the argument \\"length\\".\\n    // 3. Let len be ToUint32(lenValue).\\n    var len = O.length >>> 0;\\n\\n    // 4. If IsCallable(callback) is false, throw a TypeError exception.\\n    // See: http://es5.github.com/#x9.11\\n    if (typeof callback !== \\"function\\") {\\n      throw new TypeError(callback + \' is not a function\');\\n    }\\n\\n    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\\n    if (arguments.length > 1) {\\n      T = thisArg;\\n    }\\n\\n    // 6. Let k be 0\\n    k = 0;\\n\\n    // 7. Repeat, while k < len\\n    while (k < len) {\\n\\n      var kValue;\\n\\n      // a. Let Pk be ToString(k).\\n      //   This is implicit for LHS operands of the in operator\\n      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.\\n      //   This step can be combined with c\\n      // c. If kPresent is true, then\\n      if (k in O) {\\n\\n        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.\\n        kValue = O[k];\\n\\n        // ii. Call the Call internal method of callback with T as the this value and\\n        // argument list containing kValue, k, and O.\\n        callback.call(T, kValue, k, O);\\n      }\\n      // d. Increase k by 1.\\n      k++;\\n    }\\n    // 8. return undefined\\n  };\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/forEach.js\\n ** module id = 3\\n ** module chunks = 0\\n **/","// Production steps of ECMA-262, Edition 5, 15.4.4.19\\n// Reference: http://es5.github.io/#x15.4.4.19\\nif (!Array.prototype.map) {\\n\\n  Array.prototype.map = function(callback, thisArg) {\\n\\n    var T, A, k;\\n\\n    if (this == null) {\\n      throw new TypeError(\' this is null or not defined\');\\n    }\\n\\n    // 1. Let O be the result of calling ToObject passing the |this| \\n    //    value as the argument.\\n    var O = Object(this);\\n\\n    // 2. Let lenValue be the result of calling the Get internal \\n    //    method of O with the argument \\"length\\".\\n    // 3. Let len be ToUint32(lenValue).\\n    var len = O.length >>> 0;\\n\\n    // 4. If IsCallable(callback) is false, throw a TypeError exception.\\n    // See: http://es5.github.com/#x9.11\\n    if (typeof callback !== \'function\') {\\n      throw new TypeError(callback + \' is not a function\');\\n    }\\n\\n    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\\n    if (arguments.length > 1) {\\n      T = thisArg;\\n    }\\n\\n    // 6. Let A be a new array created as if by the expression new Array(len) \\n    //    where Array is the standard built-in constructor with that name and \\n    //    len is the value of len.\\n    A = new Array(len);\\n\\n    // 7. Let k be 0\\n    k = 0;\\n\\n    // 8. Repeat, while k < len\\n    while (k < len) {\\n\\n      var kValue, mappedValue;\\n\\n      // a. Let Pk be ToString(k).\\n      //   This is implicit for LHS operands of the in operator\\n      // b. Let kPresent be the result of calling the HasProperty internal \\n      //    method of O with argument Pk.\\n      //   This step can be combined with c\\n      // c. If kPresent is true, then\\n      if (k in O) {\\n\\n        // i. Let kValue be the result of calling the Get internal \\n        //    method of O with argument Pk.\\n        kValue = O[k];\\n\\n        // ii. Let mappedValue be the result of calling the Call internal \\n        //     method of callback with T as the this value and argument \\n        //     list containing kValue, k, and O.\\n        mappedValue = callback.call(T, kValue, k, O);\\n\\n        // iii. Call the DefineOwnProperty internal method of A with arguments\\n        // Pk, Property Descriptor\\n        // { Value: mappedValue,\\n        //   Writable: true,\\n        //   Enumerable: true,\\n        //   Configurable: true },\\n        // and false.\\n\\n        // In browsers that support Object.defineProperty, use the following:\\n        // Object.defineProperty(A, k, {\\n        //   value: mappedValue,\\n        //   writable: true,\\n        //   enumerable: true,\\n        //   configurable: true\\n        // });\\n\\n        // For best browser support, use the following:\\n        A[k] = mappedValue;\\n      }\\n      // d. Increase k by 1.\\n      k++;\\n    }\\n\\n    // 9. return A\\n    return A;\\n  };\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/map.js\\n ** module id = 4\\n ** module chunks = 0\\n **/","var CSSRule = require(\'./CSSRule\');\\nvar applyToDOM = require(\'./helpers/applyToDOM\');\\nvar nextTick = require(\'./helpers/nextTick\');\\nvar resolveSelector = require(\'./helpers/resolveSelector\');\\nvar generate = require(\'./core/generate\');\\nvar warning = require(\'./helpers/warning\');\\n\\nvar ids = 0;\\nvar getId = function () { return \'x\' + (++ids); };\\n\\nmodule.exports = function (id) {\\n  var _id = id || getId();\\n  var _api = {};\\n  var _rules = [];\\n  var _remove = null;\\n  var _css = \'\';\\n\\n  var ruleExists = function (selector, parent) {\\n    var i, rule, areParentsMatching, areThereNoParents;\\n\\n    for (i = 0; i < _rules.length; i++) {\\n      rule = _rules[i];\\n      areParentsMatching = (rule.parent && typeof parent !== \'undefined\' && parent.selector === rule.parent.selector);\\n      areThereNoParents = !rule.parent && !parent;\\n      if (resolveSelector(rule.selector) === resolveSelector(selector) && (areParentsMatching || areThereNoParents)) {\\n        return rule;\\n      }\\n    }\\n    return false;\\n  };\\n  var getRuleBySelector = function (selector, rules) {\\n    var i;\\n\\n    for (i = 0; i < rules.length; i++) {\\n      if (resolveSelector(rules[i].selector) === selector) {\\n        return rules[i];\\n      }\\n    }\\n    warning(\'No rule matching \\"\' + selector + \'\\" selector.\');\\n  };\\n\\n  _api.id = function () {\\n    return _id;\\n  };\\n  _api.add = function (selector, props, parent, isWrapper) {\\n    var rule, r = ruleExists(selector, parent);\\n\\n    if (r !== false) {\\n      rule = r.update(false, props);\\n    } else {\\n      rule = CSSRule(selector, props, _api);\\n      _rules.push(rule);\\n      if (parent) {\\n        rule.parent = parent;\\n        parent.addChild(rule, isWrapper);\\n      }\\n    }\\n    this.compile();\\n    return rule;\\n  };\\n  _api.rules = function () {\\n    return _rules;\\n  };\\n  _api.compile = function () {\\n    if (module.exports.useNextTick) {\\n      nextTick(function () {\\n        _api.compileImmediate();\\n      }, _id);\\n      return _api;\\n    }\\n    return _api.compileImmediate();\\n  };\\n  _api.compileImmediate = function () {\\n    _css = generate(_rules, module.exports.minify);\\n    if (!module.exports.disableDOMChanges) {\\n      _remove = applyToDOM(_css, _id);\\n    }\\n    return _api;\\n  };\\n  _api.clear = function () {\\n    _rules = [];\\n    _css = \'\';\\n    if (_remove !== null) {\\n      _remove();\\n      _remove = null;\\n    }\\n    return _api;\\n  };\\n  _api.destroy = function () {\\n    return _api.clear();\\n  };\\n  _api.getCSS = function () {\\n    this.compileImmediate();\\n    return _css;\\n  };\\n  _api.update = function () {\\n    var args = Array.prototype.slice.call(arguments);\\n    var value = args.pop();\\n    var prop = args.pop();\\n    var rule;\\n\\n    while (args.length > 0) {\\n      rule = getRuleBySelector(args.shift(), rule ? rule.getNestedChildren() : _rules);\\n      if (!rule) {\\n        break;\\n      }\\n    };\\n\\n    if (rule) {\\n      rule.updateProp(prop, value);\\n    }\\n  };\\n\\n  return _api;\\n};\\n\\nmodule.exports.disableDOMChanges = false;\\nmodule.exports.minify = true;\\nmodule.exports.useNextTick = true;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/CSSStylesheet.js\\n ** module id = 5\\n ** module chunks = 0\\n **/","var ids = 0;\\nvar getId = function () { return \'r\' + (++ids); };\\n\\nvar CSSRule = function (selector, props, stylesheet) {\\n  var _id = getId();\\n  var _children = [];\\n  var _nestedChildren = [];\\n\\n  var record = {\\n    selector: selector,\\n    props: props,\\n    parent: null,\\n    addChild: function (c, isWrapper) {\\n      (isWrapper ? _nestedChildren : _children).push(c);\\n      return this;\\n    },\\n    getChildren: function () {\\n      return _children;\\n    },\\n    setChildren: function (c) {\\n      _children = c;\\n    },\\n    getNestedChildren: function () {\\n      return _nestedChildren;\\n    },\\n    setNestedChildren: function (c) {\\n      _nestedChildren = c;\\n    },\\n    descendant: function (s, p) {\\n      return stylesheet.add(s, p, this, false);\\n    },\\n    nested: function (s, p) {\\n      return stylesheet.add(s, p, this, true);\\n    },\\n    d: function (s, p) {\\n      return this.descendant(s, p);\\n    },\\n    n: function (s, p) {\\n      return this.nested(s, p);\\n    },\\n    update: function (s, p) {\\n      var propName;\\n\\n      if (s) this.selector = s;\\n      if (p) {\\n        for (propName in p) {\\n          this.props[propName] = p[propName];\\n        }\\n      }\\n      stylesheet.compile();\\n      return this;\\n    },\\n    updateProp: function (prop, value) {\\n      var newProp = {};\\n\\n      newProp[prop] = value;\\n      return this.update(null, newProp);\\n    },\\n    id: function () {\\n      return _id;\\n    },\\n    clone: function () {\\n      var rule = CSSRule(this.selector, this.props);\\n\\n      rule.parent = this.parent;\\n      rule.setChildren(this.getChildren());\\n      rule.setNestedChildren(this.getNestedChildren());\\n\\n      return rule;\\n    }\\n  };\\n\\n  return record;\\n};\\n\\nmodule.exports = CSSRule;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/CSSRule.js\\n ** module id = 6\\n ** module chunks = 0\\n **/","var cache = {};\\n\\nvar qs = function (selector) {\\n  return document.querySelector(selector);\\n};\\n\\nvar createNode = function (type, attrs, content) {\\n  var node = document.createElement(type), i, a;\\n\\n  for (i = 0; i < attrs.length; i++) {\\n    a = attrs[i];\\n    node.setAttribute(a.name, a.value);\\n  }\\n  node.innerHTML = content;\\n  (qs(\'head\') || qs(\'body\')).appendChild(node);\\n  return node;\\n};\\n\\nvar remove = function (id) {\\n  return function () {\\n    if (cache[id]) {\\n      cache[id].el.parentNode.removeChild(cache[id].el);\\n      delete cache[id];\\n    }\\n  };\\n};\\n\\nmodule.exports = function (css, id) {\\n  var el;\\n\\n  if (!cache[id]) {\\n    el = createNode(\\n      \'style\', [\\n        { name: \'id\', value: id },\\n        { name: \'type\', value: \'text/css\'}\\n      ],\\n       css\\n    );\\n    cache[id] = { el: el, css: css, remove: remove(id) };\\n  } else {\\n    if (cache[id].css !== css) {\\n      cache[id].css = css;\\n      cache[id].el.innerHTML = css;\\n    }\\n  }\\n\\n  return cache[id].remove;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/applyToDOM.js\\n ** module id = 7\\n ** module chunks = 0\\n **/","var cache = {};\\n\\nrequire(\'setimmediate\');\\n\\nmodule.exports = function (work, id) {\\n  if (!cache[id]) {\\n    cache[id] = work;\\n    setImmediate(function () {\\n      delete cache[id];\\n      work();\\n    });\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/nextTick.js\\n ** module id = 8\\n ** module chunks = 0\\n **/","var nextTick = require(\'process/browser.js\').nextTick;\\nvar apply = Function.prototype.apply;\\nvar slice = Array.prototype.slice;\\nvar immediateIds = {};\\nvar nextImmediateId = 0;\\n\\n// DOM APIs, for completeness\\n\\nexports.setTimeout = function() {\\n  return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\\n};\\nexports.setInterval = function() {\\n  return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\\n};\\nexports.clearTimeout =\\nexports.clearInterval = function(timeout) { timeout.close(); };\\n\\nfunction Timeout(id, clearFn) {\\n  this._id = id;\\n  this._clearFn = clearFn;\\n}\\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\\nTimeout.prototype.close = function() {\\n  this._clearFn.call(window, this._id);\\n};\\n\\n// Does not start the time, just sets up the members needed.\\nexports.enroll = function(item, msecs) {\\n  clearTimeout(item._idleTimeoutId);\\n  item._idleTimeout = msecs;\\n};\\n\\nexports.unenroll = function(item) {\\n  clearTimeout(item._idleTimeoutId);\\n  item._idleTimeout = -1;\\n};\\n\\nexports._unrefActive = exports.active = function(item) {\\n  clearTimeout(item._idleTimeoutId);\\n\\n  var msecs = item._idleTimeout;\\n  if (msecs >= 0) {\\n    item._idleTimeoutId = setTimeout(function onTimeout() {\\n      if (item._onTimeout)\\n        item._onTimeout();\\n    }, msecs);\\n  }\\n};\\n\\n// That\'s not how node.js implements it but the exposed api is the same.\\nexports.setImmediate = typeof setImmediate === \\"function\\" ? setImmediate : function(fn) {\\n  var id = nextImmediateId++;\\n  var args = arguments.length < 2 ? false : slice.call(arguments, 1);\\n\\n  immediateIds[id] = true;\\n\\n  nextTick(function onNextTick() {\\n    if (immediateIds[id]) {\\n      // fn.call() is faster so we optimize for the common use-case\\n      // @see http://jsperf.com/call-apply-segu\\n      if (args) {\\n        fn.apply(null, args);\\n      } else {\\n        fn.call(null);\\n      }\\n      // Prevent ids from leaking\\n      exports.clearImmediate(id);\\n    }\\n  });\\n\\n  return id;\\n};\\n\\nexports.clearImmediate = typeof clearImmediate === \\"function\\" ? clearImmediate : function(id) {\\n  delete immediateIds[id];\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/timers-browserify/main.js\\n ** module id = 9\\n ** module chunks = 0\\n **/","// shim for using process in browser\\n\\nvar process = module.exports = {};\\nvar queue = [];\\nvar draining = false;\\nvar currentQueue;\\nvar queueIndex = -1;\\n\\nfunction cleanUpNextTick() {\\n    draining = false;\\n    if (currentQueue.length) {\\n        queue = currentQueue.concat(queue);\\n    } else {\\n        queueIndex = -1;\\n    }\\n    if (queue.length) {\\n        drainQueue();\\n    }\\n}\\n\\nfunction drainQueue() {\\n    if (draining) {\\n        return;\\n    }\\n    var timeout = setTimeout(cleanUpNextTick);\\n    draining = true;\\n\\n    var len = queue.length;\\n    while(len) {\\n        currentQueue = queue;\\n        queue = [];\\n        while (++queueIndex < len) {\\n            if (currentQueue) {\\n                currentQueue[queueIndex].run();\\n            }\\n        }\\n        queueIndex = -1;\\n        len = queue.length;\\n    }\\n    currentQueue = null;\\n    draining = false;\\n    clearTimeout(timeout);\\n}\\n\\nprocess.nextTick = function (fun) {\\n    var args = new Array(arguments.length - 1);\\n    if (arguments.length > 1) {\\n        for (var i = 1; i < arguments.length; i++) {\\n            args[i - 1] = arguments[i];\\n        }\\n    }\\n    queue.push(new Item(fun, args));\\n    if (queue.length === 1 && !draining) {\\n        setTimeout(drainQueue, 0);\\n    }\\n};\\n\\n// v8 likes predictible objects\\nfunction Item(fun, array) {\\n    this.fun = fun;\\n    this.array = array;\\n}\\nItem.prototype.run = function () {\\n    this.fun.apply(null, this.array);\\n};\\nprocess.title = \'browser\';\\nprocess.browser = true;\\nprocess.env = {};\\nprocess.argv = [];\\nprocess.version = \'\'; // empty string to avoid regexp issues\\nprocess.versions = {};\\n\\nfunction noop() {}\\n\\nprocess.on = noop;\\nprocess.addListener = noop;\\nprocess.once = noop;\\nprocess.off = noop;\\nprocess.removeListener = noop;\\nprocess.removeAllListeners = noop;\\nprocess.emit = noop;\\n\\nprocess.binding = function (name) {\\n    throw new Error(\'process.binding is not supported\');\\n};\\n\\nprocess.cwd = function () { return \'/\' };\\nprocess.chdir = function (dir) {\\n    throw new Error(\'process.chdir is not supported\');\\n};\\nprocess.umask = function() { return 0; };\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/process/browser.js\\n ** module id = 10\\n ** module chunks = 0\\n **/","(function (global, undefined) {\\n    \\"use strict\\";\\n\\n    if (global.setImmediate) {\\n        return;\\n    }\\n\\n    var nextHandle = 1; // Spec says greater than zero\\n    var tasksByHandle = {};\\n    var currentlyRunningATask = false;\\n    var doc = global.document;\\n    var setImmediate;\\n\\n    function addFromSetImmediateArguments(args) {\\n        tasksByHandle[nextHandle] = partiallyApplied.apply(undefined, args);\\n        return nextHandle++;\\n    }\\n\\n    // This function accepts the same arguments as setImmediate, but\\n    // returns a function that requires no arguments.\\n    function partiallyApplied(handler) {\\n        var args = [].slice.call(arguments, 1);\\n        return function() {\\n            if (typeof handler === \\"function\\") {\\n                handler.apply(undefined, args);\\n            } else {\\n                (new Function(\\"\\" + handler))();\\n            }\\n        };\\n    }\\n\\n    function runIfPresent(handle) {\\n        // From the spec: \\"Wait until any invocations of this algorithm started before this one have completed.\\"\\n        // So if we\'re currently running a task, we\'ll need to delay this invocation.\\n        if (currentlyRunningATask) {\\n            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\\n            // \\"too much recursion\\" error.\\n            setTimeout(partiallyApplied(runIfPresent, handle), 0);\\n        } else {\\n            var task = tasksByHandle[handle];\\n            if (task) {\\n                currentlyRunningATask = true;\\n                try {\\n                    task();\\n                } finally {\\n                    clearImmediate(handle);\\n                    currentlyRunningATask = false;\\n                }\\n            }\\n        }\\n    }\\n\\n    function clearImmediate(handle) {\\n        delete tasksByHandle[handle];\\n    }\\n\\n    function installNextTickImplementation() {\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            process.nextTick(partiallyApplied(runIfPresent, handle));\\n            return handle;\\n        };\\n    }\\n\\n    function canUsePostMessage() {\\n        // The test against `importScripts` prevents this implementation from being installed inside a web worker,\\n        // where `global.postMessage` means something completely different and can\'t be used for this purpose.\\n        if (global.postMessage && !global.importScripts) {\\n            var postMessageIsAsynchronous = true;\\n            var oldOnMessage = global.onmessage;\\n            global.onmessage = function() {\\n                postMessageIsAsynchronous = false;\\n            };\\n            global.postMessage(\\"\\", \\"*\\");\\n            global.onmessage = oldOnMessage;\\n            return postMessageIsAsynchronous;\\n        }\\n    }\\n\\n    function installPostMessageImplementation() {\\n        // Installs an event handler on `global` for the `message` event: see\\n        // * https://developer.mozilla.org/en/DOM/window.postMessage\\n        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\\n\\n        var messagePrefix = \\"setImmediate$\\" + Math.random() + \\"$\\";\\n        var onGlobalMessage = function(event) {\\n            if (event.source === global &&\\n                typeof event.data === \\"string\\" &&\\n                event.data.indexOf(messagePrefix) === 0) {\\n                runIfPresent(+event.data.slice(messagePrefix.length));\\n            }\\n        };\\n\\n        if (global.addEventListener) {\\n            global.addEventListener(\\"message\\", onGlobalMessage, false);\\n        } else {\\n            global.attachEvent(\\"onmessage\\", onGlobalMessage);\\n        }\\n\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            global.postMessage(messagePrefix + handle, \\"*\\");\\n            return handle;\\n        };\\n    }\\n\\n    function installMessageChannelImplementation() {\\n        var channel = new MessageChannel();\\n        channel.port1.onmessage = function(event) {\\n            var handle = event.data;\\n            runIfPresent(handle);\\n        };\\n\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            channel.port2.postMessage(handle);\\n            return handle;\\n        };\\n    }\\n\\n    function installReadyStateChangeImplementation() {\\n        var html = doc.documentElement;\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\\n            // into the document. Do so, thus queuing up the task. Remember to clean up once it\'s been called.\\n            var script = doc.createElement(\\"script\\");\\n            script.onreadystatechange = function () {\\n                runIfPresent(handle);\\n                script.onreadystatechange = null;\\n                html.removeChild(script);\\n                script = null;\\n            };\\n            html.appendChild(script);\\n            return handle;\\n        };\\n    }\\n\\n    function installSetTimeoutImplementation() {\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            setTimeout(partiallyApplied(runIfPresent, handle), 0);\\n            return handle;\\n        };\\n    }\\n\\n    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\\n    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\\n    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\\n\\n    // Don\'t get fooled by e.g. browserify environments.\\n    if ({}.toString.call(global.process) === \\"[object process]\\") {\\n        // For Node.js before 0.9\\n        installNextTickImplementation();\\n\\n    } else if (canUsePostMessage()) {\\n        // For non-IE10 modern browsers\\n        installPostMessageImplementation();\\n\\n    } else if (global.MessageChannel) {\\n        // For web workers, where supported\\n        installMessageChannelImplementation();\\n\\n    } else if (doc && \\"onreadystatechange\\" in doc.createElement(\\"script\\")) {\\n        // For IE 6–8\\n        installReadyStateChangeImplementation();\\n\\n    } else {\\n        // For older browsers\\n        installSetTimeoutImplementation();\\n    }\\n\\n    attachTo.setImmediate = setImmediate;\\n    attachTo.clearImmediate = clearImmediate;\\n}(typeof self === \\"undefined\\" ? typeof global === \\"undefined\\" ? this : global : self));\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/setimmediate/setImmediate.js\\n ** module id = 11\\n ** module chunks = 0\\n **/","module.exports = function (selector) {\\n  return typeof selector === \'function\' ? selector() : selector;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/resolveSelector.js\\n ** module id = 12\\n ** module chunks = 0\\n **/","var isEmpty = require(\'../helpers/isEmpty\');\\nvar resolveSelector = require(\'../helpers/resolveSelector\');\\nvar prefix = require(\'../helpers/prefix\');\\n\\nmodule.exports = function (rules, minify) {\\n\\n  // at the top level, use only those which has no parent\\n  rules = rules.filter(function (rule) {\\n    return rule.parent === null;\\n  });\\n\\n  // duplicate those that need prefixing\\n  rules = prefix.selector(rules);\\n\\n  return (function generate(rules, parent, minify, nesting, nested) {\\n    var i, j, rule, props, prop, children, nestedChildren, selector, cssValue, tab;\\n    var css = \'\';\\n    var newLine = minify ? \'\' : \'\\\\n\';\\n    var interval = minify ? \'\' : \' \';\\n\\n    nesting = typeof nesting !== \'undefined\' ? nesting : \'\';\\n    tab = minify ? \'\' : nesting + \'  \';\\n    for (i = 0; i < rules.length; i++) {\\n      rule = rules[i];\\n      children = rule.getChildren();\\n      nestedChildren = rule.getNestedChildren();\\n      selector = (parent ? parent + \' \' : \'\');\\n      selector += resolveSelector(rule.selector);\\n      props = typeof rule.props === \'function\' ? rule.props() : rule.props;\\n      if (!isEmpty(props) || nestedChildren.length > 0) {\\n        css += nesting + selector + interval + \'{\' + newLine;\\n        props = prefix.property(props);\\n        if (props) {\\n          for (prop in props) {\\n            cssValue = typeof props[prop] === \'function\' ? props[prop]() : props[prop];\\n            css += tab + prop + \':\' + interval + cssValue + \';\' + newLine;\\n          }\\n        }\\n        for (j = 0; j < nestedChildren.length; j++) {\\n          css += generate([nestedChildren[j]], null, minify, tab, true);\\n        }\\n        css += nesting + \'}\' + newLine;\\n      }\\n      if (children.length > 0) {\\n        css += generate(children, selector, minify);\\n      }\\n    };\\n    return css;\\n  })(rules, null, minify);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/core/generate.js\\n ** module id = 13\\n ** module chunks = 0\\n **/","module.exports = function (obj) {\\n  var prop;\\n\\n  for (prop in obj) {\\n    if (obj.hasOwnProperty(prop)) {\\n      return false;\\n    }\\n  }\\n  return true;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/isEmpty.js\\n ** module id = 14\\n ** module chunks = 0\\n **/","var resolveSelector = require(\'./resolveSelector\');\\nvar SELECTORS = {\\n  \'@keyframes\': [\\n    \'@-webkit-keyframes\',\\n    \'@-moz-keyframes\',\\n    \'@-o-keyframes\'\\n  ]\\n};\\nvar prefixProperty = function (list) {\\n  return list.split(\'\').map(function (ch) {\\n    if (ch === \'s\') return \'-ms-\'; // Microsoft\\n    if (ch === \'z\') return \'mso- \'; // icrosoft Office\\n    if (ch === \'m\') return \'-moz-\'; // Mozilla Foundation (Gecko-based browsers)\\n    if (ch === \'o\') return \'-o-\'; //  -xv- Opera Software\\n    if (ch === \'t\') return \'-atsc-\'; // Advanced Television Standards Committee\\n    if (ch === \'p\') return \'-wap-\'; // The WAP Forum\\n    if (ch === \'w\') return \'-webkit-\'; // Safari, Chrome (and other WebKit-based browsers)\\n    if (ch === \'k\') return \'-khtml-\'; // Konqueror browser\\n    if (ch === \'a\') return \'-apple-\'; // Webkit supports properties using the -apple- prefixes as well\\n    if (ch === \'e\') return \'prince- \'; // esLogic\\n    if (ch === \'n\') return \'-ah-\'; // Antenna House\\n    if (ch === \'h\') return \'-hp-\'; // Hewlett Packard\\n    if (ch === \'r\') return \'-ro-\'; // Real Objects\\n    if (ch === \'i\') return \'-rim-\'; // Research In Motion\\n    if (ch === \'c\') return \'-tc-\'; // Tall Components\\n    return [];\\n  });\\n};\\n\\nmodule.exports = {\\n  selector: function (rules) {\\n    var result = [], keyword, newRule;\\n\\n    rules.forEach(function (rule) {\\n      keyword = resolveSelector(rule.selector).split(\' \')[0];\\n      result.push(rule);\\n      if (SELECTORS[keyword]) {\\n        SELECTORS[keyword].forEach(function (prefixed) {\\n          newRule = rule.clone();\\n          newRule.selector = rule.selector.replace(keyword, prefixed);\\n          result.push(newRule);\\n        });\\n      }\\n    });\\n    return result;\\n  },\\n  property: function (props) {\\n    var prop, match, cleanProp;\\n\\n    for (prop in props) {\\n      match = prop.match(/^\\\\(([szmotpwkaenhric]+)\\\\)/);\\n      if (match) {\\n        cleanProp = prop.replace(match[0], \'\');\\n        props[cleanProp] = props[prop];\\n        prefixProperty(match[1]).forEach(function (prefix) {\\n          props[prefix + cleanProp] = props[prop];\\n        });\\n        delete props[prop];\\n      }\\n    }\\n    return props;\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/prefix.js\\n ** module id = 15\\n ** module chunks = 0\\n **/","module.exports = function (message) {\\n  if (typeof console !== \'undefined\' && console.warn) {\\n    console.warn(message);\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/warning.js\\n ** module id = 16\\n ** module chunks = 0\\n **/","module.exports = function (api) {\\n  if (typeof global !== \'undefined\') {\\n    global.cssx = api;\\n  }\\n  if (typeof window !== \'undefined\') {\\n    window.cssx = api;\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/goGlobal.js\\n ** module id = 17\\n ** module chunks = 0\\n **/"],"sourceRoot":""}\n\\ No newline at end of file\n+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap dcd3efc93dd537ca2b43","webpack:///./packages/cssx/src/index.js","webpack:///./packages/cssx/src/polyfills/index.js","webpack:///./packages/cssx/src/polyfills/filter.js","webpack:///./packages/cssx/src/polyfills/forEach.js","webpack:///./packages/cssx/src/polyfills/map.js","webpack:///./packages/cssx/src/CSSStylesheet.js","webpack:///./packages/cssx/src/helpers/goGlobal.js","webpack:///./packages/cssx/src/helpers/randomId.js","webpack:///./packages/cssx/src/CSSRule.js","webpack:///./packages/cssx/src/helpers/applyToDOM.js","webpack:///./packages/cssx/src/helpers/nextTick.js","webpack:///(webpack)/~/node-libs-browser/~/timers-browserify/main.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/setimmediate/setImmediate.js","webpack:///./packages/cssx/src/helpers/resolveSelector.js","webpack:///./packages/cssx/src/core/generate.js","webpack:///./packages/cssx/src/helpers/isEmpty.js","webpack:///./packages/cssx/src/helpers/prefix.js","webpack:///./packages/cssx/src/helpers/warning.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,cAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAqB,6BAA6B;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa,wBAAwB;AACrC;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;AC7DA;AACA;AACA;;;;;;;ACFA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACjCA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAoD;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACzDA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAoD;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAY;AACZ;AACA;AACA,kCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAAyB,sBAAsB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA,0BAAyB,sBAAsB;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;AC3EA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS,wBAAwB;AACjC,UAAS;AACT;AACA;AACA;AACA,kBAAiB;AACjB,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC/CA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,G;;;;;;;AC3EA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC1FtC;AACA;;AAEA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAU;AACV;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;;AC9KD;AACA;AACA;;;;;;;ACFA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;AACA,+DAA8D;AAC9D;AACA;AACA,oBAAmB,2BAA2B;AAC9C;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;AC5CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC,oCAAmC;AACnC,oCAAmC;AACnC,kCAAiC;AACjC,qCAAoC;AACpC,oCAAmC;AACnC,uCAAsC;AACtC,sCAAqC;AACrC,sCAAqC;AACrC,uCAAsC;AACtC,mCAAkC;AAClC,mCAAkC;AAClC,mCAAkC;AAClC,oCAAmC;AACnC,mCAAkC;AAClC;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9DA;AACA;AACA;AACA;AACA","file":"cssx.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\\n\\tif(typeof exports === \'object\' && typeof module === \'object\')\\n\\t\\tmodule.exports = factory();\\n\\telse if(typeof define === \'function\' && define.amd)\\n\\t\\tdefine(\\"cssx\\", [], factory);\\n\\telse if(typeof exports === \'object\')\\n\\t\\texports[\\"cssx\\"] = factory();\\n\\telse\\n\\t\\troot[\\"cssx\\"] = factory();\\n})(this, function() {\\nreturn \\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/universalModuleDefinition\\n **/"," \\t// The module cache\\n \\tvar installedModules = {};\\n\\n \\t// The require function\\n \\tfunction __webpack_require__(moduleId) {\\n\\n \\t\\t// Check if module is in cache\\n \\t\\tif(installedModules[moduleId])\\n \\t\\t\\treturn installedModules[moduleId].exports;\\n\\n \\t\\t// Create a new module (and put it into the cache)\\n \\t\\tvar module = installedModules[moduleId] = {\\n \\t\\t\\texports: {},\\n \\t\\t\\tid: moduleId,\\n \\t\\t\\tloaded: false\\n \\t\\t};\\n\\n \\t\\t// Execute the module function\\n \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n\\n \\t\\t// Flag the module as loaded\\n \\t\\tmodule.loaded = true;\\n\\n \\t\\t// Return the exports of the module\\n \\t\\treturn module.exports;\\n \\t}\\n\\n\\n \\t// expose the modules object (__webpack_modules__)\\n \\t__webpack_require__.m = modules;\\n\\n \\t// expose the module cache\\n \\t__webpack_require__.c = installedModules;\\n\\n \\t// __webpack_public_path__\\n \\t__webpack_require__.p = \\"\\";\\n\\n \\t// Load entry module and return exports\\n \\treturn __webpack_require__(0);\\n\\n\\n\\n/** WEBPACK FOOTER **\\n ** webpack/bootstrap dcd3efc93dd537ca2b43\\n **/","var factory, goGlobal, stylesheets, api, randomId;\\n\\nrequire(\'./polyfills\');\\n\\nfactory = require(\'./CSSStylesheet\');\\ngoGlobal = require(\'./helpers/goGlobal\');\\nrandomId = require(\'./helpers/randomId\');\\n\\nstylesheets = [];\\n\\nfunction createStyleSheet(id) {\\n  var s, i;\\n\\n  if (typeof id === \'undefined\') {\\n    id = randomId();\\n  }\\n\\n  for (i = 0; i < stylesheets.length; i++) {\\n    if (stylesheets[i].id() === id) {\\n      return stylesheets[i];\\n    }\\n  }\\n  s = factory.apply(factory, arguments);\\n  stylesheets.push(s);\\n  return s;\\n};\\n\\napi = function (id) { return createStyleSheet(id); };\\n\\napi.domChanges = function (flag) {\\n  factory.disableDOMChanges = !flag;\\n};\\napi.minify = function (flag) {\\n  factory.minify = flag;\\n};\\napi.nextTick = function (flag) {\\n  factory.useNextTick = flag;\\n};\\napi.getStylesheets = function () {\\n  return stylesheets;\\n};\\napi.clear = function () {\\n  var i;\\n\\n  for (i = 0; i < stylesheets.length; i++) {\\n    stylesheets[i].clear();\\n  }\\n  stylesheets = [];\\n  return api;\\n};\\napi.getCSS = function () {\\n  var i, css = \'\';\\n\\n  for (i = 0; i < stylesheets.length; i++) {\\n    css += stylesheets[i].getCSS();\\n  }\\n  return css;\\n};\\n\\nmodule.exports = api;\\n\\ngoGlobal(module.exports);\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/index.js\\n ** module id = 0\\n ** module chunks = 0\\n **/","require(\'./filter\');\\nrequire(\'./forEach\');\\nrequire(\'./map\');\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/index.js\\n ** module id = 1\\n ** module chunks = 0\\n **/","if (!Array.prototype.filter) {\\n  Array.prototype.filter = function(fun/*, thisArg*/) {\\n    \'use strict\';\\n\\n    if (this === void 0 || this === null) {\\n      throw new TypeError();\\n    }\\n\\n    var t = Object(this);\\n    var len = t.length >>> 0;\\n    if (typeof fun !== \'function\') {\\n      throw new TypeError();\\n    }\\n\\n    var res = [];\\n    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\\n    for (var i = 0; i < len; i++) {\\n      if (i in t) {\\n        var val = t[i];\\n\\n        // NOTE: Technically this should Object.defineProperty at\\n        //       the next index, as push can be affected by\\n        //       properties on Object.prototype and Array.prototype.\\n        //       But that method\'s new, and collisions should be\\n        //       rare, so use the more-compatible alternative.\\n        if (fun.call(thisArg, val, i, t)) {\\n          res.push(val);\\n        }\\n      }\\n    }\\n\\n    return res;\\n  };\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/filter.js\\n ** module id = 2\\n ** module chunks = 0\\n **/","// Production steps of ECMA-262, Edition 5, 15.4.4.18\\n// Reference: http://es5.github.io/#x15.4.4.18\\nif (!Array.prototype.forEach) {\\n\\n  Array.prototype.forEach = function(callback, thisArg) {\\n\\n    var T, k;\\n\\n    if (this == null) {\\n      throw new TypeError(\' this is null or not defined\');\\n    }\\n\\n    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.\\n    var O = Object(this);\\n\\n    // 2. Let lenValue be the result of calling the Get internal method of O with the argument \\"length\\".\\n    // 3. Let len be ToUint32(lenValue).\\n    var len = O.length >>> 0;\\n\\n    // 4. If IsCallable(callback) is false, throw a TypeError exception.\\n    // See: http://es5.github.com/#x9.11\\n    if (typeof callback !== \\"function\\") {\\n      throw new TypeError(callback + \' is not a function\');\\n    }\\n\\n    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\\n    if (arguments.length > 1) {\\n      T = thisArg;\\n    }\\n\\n    // 6. Let k be 0\\n    k = 0;\\n\\n    // 7. Repeat, while k < len\\n    while (k < len) {\\n\\n      var kValue;\\n\\n      // a. Let Pk be ToString(k).\\n      //   This is implicit for LHS operands of the in operator\\n      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.\\n      //   This step can be combined with c\\n      // c. If kPresent is true, then\\n      if (k in O) {\\n\\n        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.\\n        kValue = O[k];\\n\\n        // ii. Call the Call internal method of callback with T as the this value and\\n        // argument list containing kValue, k, and O.\\n        callback.call(T, kValue, k, O);\\n      }\\n      // d. Increase k by 1.\\n      k++;\\n    }\\n    // 8. return undefined\\n  };\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/forEach.js\\n ** module id = 3\\n ** module chunks = 0\\n **/","// Production steps of ECMA-262, Edition 5, 15.4.4.19\\n// Reference: http://es5.github.io/#x15.4.4.19\\nif (!Array.prototype.map) {\\n\\n  Array.prototype.map = function(callback, thisArg) {\\n\\n    var T, A, k;\\n\\n    if (this == null) {\\n      throw new TypeError(\' this is null or not defined\');\\n    }\\n\\n    // 1. Let O be the result of calling ToObject passing the |this| \\n    //    value as the argument.\\n    var O = Object(this);\\n\\n    // 2. Let lenValue be the result of calling the Get internal \\n    //    method of O with the argument \\"length\\".\\n    // 3. Let len be ToUint32(lenValue).\\n    var len = O.length >>> 0;\\n\\n    // 4. If IsCallable(callback) is false, throw a TypeError exception.\\n    // See: http://es5.github.com/#x9.11\\n    if (typeof callback !== \'function\') {\\n      throw new TypeError(callback + \' is not a function\');\\n    }\\n\\n    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\\n    if (arguments.length > 1) {\\n      T = thisArg;\\n    }\\n\\n    // 6. Let A be a new array created as if by the expression new Array(len) \\n    //    where Array is the standard built-in constructor with that name and \\n    //    len is the value of len.\\n    A = new Array(len);\\n\\n    // 7. Let k be 0\\n    k = 0;\\n\\n    // 8. Repeat, while k < len\\n    while (k < len) {\\n\\n      var kValue, mappedValue;\\n\\n      // a. Let Pk be ToString(k).\\n      //   This is implicit for LHS operands of the in operator\\n      // b. Let kPresent be the result of calling the HasProperty internal \\n      //    method of O with argument Pk.\\n      //   This step can be combined with c\\n      // c. If kPresent is true, then\\n      if (k in O) {\\n\\n        // i. Let kValue be the result of calling the Get internal \\n        //    method of O with argument Pk.\\n        kValue = O[k];\\n\\n        // ii. Let mappedValue be the result of calling the Call internal \\n        //     method of callback with T as the this value and argument \\n        //     list containing kValue, k, and O.\\n        mappedValue = callback.call(T, kValue, k, O);\\n\\n        // iii. Call the DefineOwnProperty internal method of A with arguments\\n        // Pk, Property Descriptor\\n        // { Value: mappedValue,\\n        //   Writable: true,\\n        //   Enumerable: true,\\n        //   Configurable: true },\\n        // and false.\\n\\n        // In browsers that support Object.defineProperty, use the following:\\n        // Object.defineProperty(A, k, {\\n        //   value: mappedValue,\\n        //   writable: true,\\n        //   enumerable: true,\\n        //   configurable: true\\n        // });\\n\\n        // For best browser support, use the following:\\n        A[k] = mappedValue;\\n      }\\n      // d. Increase k by 1.\\n      k++;\\n    }\\n\\n    // 9. return A\\n    return A;\\n  };\\n}\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/polyfills/map.js\\n ** module id = 4\\n ** module chunks = 0\\n **/","var CSSRule = require(\'./CSSRule\');\\nvar applyToDOM = require(\'./helpers/applyToDOM\');\\nvar nextTick = require(\'./helpers/nextTick\');\\nvar resolveSelector = require(\'./helpers/resolveSelector\');\\nvar generate = require(\'./core/generate\');\\nvar warning = require(\'./helpers/warning\');\\n\\nvar graphRulePropName = \'__$__cssx_rule\';\\nvar ids = 0;\\nvar getId = function () { return \'x\' + (++ids); };\\n\\nmodule.exports = function (id) {\\n  var _id = id || getId();\\n  var _api = {};\\n  var _rules = [];\\n  var _remove = null;\\n  var _css = \'\';\\n  var _graph = {};\\n  var _queries = {};\\n\\n  var ruleExists = function (selector, parent) {\\n    var i, rule, areParentsMatching, areThereNoParents;\\n\\n    for (i = 0; i < _rules.length; i++) {\\n      rule = _rules[i];\\n      areParentsMatching = (rule.parent && typeof parent !== \'undefined\' && parent.selector === rule.parent.selector);\\n      areThereNoParents = !rule.parent && !parent;\\n      if (resolveSelector(rule.selector) === resolveSelector(selector) && (areParentsMatching || areThereNoParents)) {\\n        return rule;\\n      }\\n    }\\n    return false;\\n  };\\n  var getOnlyTopRules = function () {\\n    return _rules.filter(function (rule) {\\n      return rule.parent === null;\\n    });\\n  };\\n  var buildGraph = function () {\\n    _graph = {};\\n    (function loop(rules, parent, obj) {\\n      if (!rules) return;\\n      rules.forEach(function (rule) {\\n        var selector = parent ? parent + \' \' : \'\';\\n\\n        selector += resolveSelector(rule.selector);\\n        obj[selector] = {};\\n        obj[selector][graphRulePropName] = rule;\\n        loop(rule.getChildren(), selector, obj[selector]);\\n        loop(rule.getNestedChildren(), selector, obj[selector]);\\n      });\\n    })(getOnlyTopRules(), false, _graph);\\n    return _graph;\\n  };\\n\\n  _api.id = function () {\\n    return _id;\\n  };\\n  _api.add = function (selector, props, parent, isWrapper) {\\n    var rule, r = ruleExists(selector, parent);\\n\\n    if (r) {\\n      rule = r.update(false, props);\\n    } else {\\n      rule = CSSRule(selector, props, _api);\\n      _rules.push(rule);\\n      if (parent) {\\n        rule.parent = parent;\\n        parent.addChild(rule, isWrapper);\\n      }\\n      buildGraph();\\n    }\\n    this.compile();\\n    return rule;\\n  };\\n  _api.rules = function () {\\n    return _rules;\\n  };\\n  _api.compile = function () {\\n    if (module.exports.useNextTick) {\\n      nextTick(function () {\\n        _api.compileImmediate();\\n      }, _id);\\n      return _api;\\n    }\\n    return _api.compileImmediate();\\n  };\\n  _api.compileImmediate = function () {\\n    _css = generate(getOnlyTopRules(), module.exports.minify);\\n    if (!module.exports.disableDOMChanges) {\\n      _remove = applyToDOM(_css, _id);\\n    }\\n    return _api;\\n  };\\n  _api.clear = function () {\\n    _rules = [];\\n    _css = \'\';\\n    if (_remove !== null) {\\n      _remove();\\n      _remove = null;\\n    }\\n    return _api;\\n  };\\n  _api.destroy = function () {\\n    return _api.clear();\\n  };\\n  _api.getCSS = function () {\\n    this.compileImmediate();\\n    return _css;\\n  };\\n  _api.update = function (selector, props) {\\n    var rule = this.query(selector);\\n\\n    if (!rule) {\\n      warning(\'There is no rule matching \\"\' + selector + \'\\"\');\\n    } else {\\n      rule.update(null, props);\\n    }\\n    return rule;\\n  };\\n  _api.query = function (selector) {\\n    var rule;\\n\\n    selector = resolveSelector(selector);\\n\\n    if (_queries[selector]) return _queries[selector];\\n    (function find(node) {\\n      var sel;\\n\\n      if (!rule) {\\n        for (sel in node) {\\n          if (sel === selector && sel !== graphRulePropName) {\\n            rule = node[selector][graphRulePropName];\\n            break;\\n          } else {\\n            if (typeof node[sel][graphRulePropName] !== \'undefined\') {\\n              find(node[sel]);\\n            }\\n          }\\n        }\\n      }\\n    })(_graph);\\n\\n    if (rule) {\\n      _queries[selector] = rule;\\n    }\\n\\n    return rule;\\n  };\\n  _api.graph = function () {\\n    return _graph;\\n  };\\n\\n  return _api;\\n};\\n\\nmodule.exports.disableDOMChanges = false;\\nmodule.exports.minify = true;\\nmodule.exports.useNextTick = true;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/CSSStylesheet.js\\n ** module id = 5\\n ** module chunks = 0\\n **/","module.exports = function (api) {\\n  if (typeof global !== \'undefined\') {\\n    global.cssx = api;\\n  }\\n  if (typeof window !== \'undefined\') {\\n    window.cssx = api;\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/goGlobal.js\\n ** module id = 6\\n ** module chunks = 0\\n **/","var ids = 0;\\n\\nmodule.exports = function () {\\n  return \'_cssx\' + (++ids);\\n};\\nmodule.exports.resetIDs = function () {\\n  ids = 0;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/randomId.js\\n ** module id = 7\\n ** module chunks = 0\\n **/","var ids = 0;\\nvar getId = function () { return \'r\' + (++ids); };\\n\\nvar CSSRule = function (selector, props, stylesheet) {\\n  var _id = getId();\\n  var _children = [];\\n  var _nestedChildren = [];\\n\\n  var record = {\\n    selector: selector,\\n    props: props,\\n    parent: null,\\n    addChild: function (c, isWrapper) {\\n      (isWrapper ? _nestedChildren : _children).push(c);\\n      return this;\\n    },\\n    getChildren: function () {\\n      return _children;\\n    },\\n    setChildren: function (c) {\\n      _children = c;\\n    },\\n    getNestedChildren: function () {\\n      return _nestedChildren;\\n    },\\n    setNestedChildren: function (c) {\\n      _nestedChildren = c;\\n    },\\n    descendant: function (s, p) {\\n      return stylesheet.add(s, p, this, false);\\n    },\\n    nested: function (s, p) {\\n      return stylesheet.add(s, p, this, true);\\n    },\\n    d: function (s, p) {\\n      return this.descendant(s, p);\\n    },\\n    n: function (s, p) {\\n      return this.nested(s, p);\\n    },\\n    update: function (s, p) {\\n      var propName;\\n\\n      if (arguments.length === 1) {\\n        p = s;\\n        s = false;\\n      }\\n\\n      if (s) this.selector = s;\\n      if (p) {\\n        if (typeof p === \'function\') p = p();\\n        for (propName in p) {\\n          this.props[propName] = p[propName];\\n        }\\n      }\\n      stylesheet.compile();\\n      return this;\\n    },\\n    id: function () {\\n      return _id;\\n    },\\n    clone: function () {\\n      var rule = CSSRule(this.selector, this.props);\\n\\n      rule.parent = this.parent;\\n      rule.setChildren(this.getChildren());\\n      rule.setNestedChildren(this.getNestedChildren());\\n\\n      return rule;\\n    }\\n  };\\n\\n  return record;\\n};\\n\\nmodule.exports = CSSRule;\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/CSSRule.js\\n ** module id = 8\\n ** module chunks = 0\\n **/","var cache = {};\\n\\nvar qs = function (selector) {\\n  return document.querySelector(selector);\\n};\\n\\nvar createNode = function (type, attrs, content) {\\n  var node = document.createElement(type), i, a;\\n\\n  for (i = 0; i < attrs.length; i++) {\\n    a = attrs[i];\\n    node.setAttribute(a.name, a.value);\\n  }\\n  node.innerHTML = content;\\n  (qs(\'head\') || qs(\'body\')).appendChild(node);\\n  return node;\\n};\\n\\nvar remove = function (id) {\\n  return function () {\\n    if (cache[id]) {\\n      cache[id].el.parentNode.removeChild(cache[id].el);\\n      delete cache[id];\\n    }\\n  };\\n};\\n\\nmodule.exports = function (css, id) {\\n  var el;\\n\\n  if (!cache[id]) {\\n    el = createNode(\\n      \'style\', [\\n        { name: \'id\', value: id },\\n        { name: \'type\', value: \'text/css\'}\\n      ],\\n       css\\n    );\\n    cache[id] = { el: el, css: css, remove: remove(id) };\\n  } else {\\n    if (cache[id].css !== css) {\\n      cache[id].css = css;\\n      cache[id].el.innerHTML = css;\\n    }\\n  }\\n\\n  return cache[id].remove;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/applyToDOM.js\\n ** module id = 9\\n ** module chunks = 0\\n **/","var cache = {};\\n\\nrequire(\'setimmediate\');\\n\\nmodule.exports = function (work, id) {\\n  if (!cache[id]) {\\n    cache[id] = work;\\n    setImmediate(function () {\\n      delete cache[id];\\n      work();\\n    });\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/nextTick.js\\n ** module id = 10\\n ** module chunks = 0\\n **/","var nextTick = require(\'process/browser.js\').nextTick;\\nvar apply = Function.prototype.apply;\\nvar slice = Array.prototype.slice;\\nvar immediateIds = {};\\nvar nextImmediateId = 0;\\n\\n// DOM APIs, for completeness\\n\\nexports.setTimeout = function() {\\n  return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\\n};\\nexports.setInterval = function() {\\n  return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\\n};\\nexports.clearTimeout =\\nexports.clearInterval = function(timeout) { timeout.close(); };\\n\\nfunction Timeout(id, clearFn) {\\n  this._id = id;\\n  this._clearFn = clearFn;\\n}\\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\\nTimeout.prototype.close = function() {\\n  this._clearFn.call(window, this._id);\\n};\\n\\n// Does not start the time, just sets up the members needed.\\nexports.enroll = function(item, msecs) {\\n  clearTimeout(item._idleTimeoutId);\\n  item._idleTimeout = msecs;\\n};\\n\\nexports.unenroll = function(item) {\\n  clearTimeout(item._idleTimeoutId);\\n  item._idleTimeout = -1;\\n};\\n\\nexports._unrefActive = exports.active = function(item) {\\n  clearTimeout(item._idleTimeoutId);\\n\\n  var msecs = item._idleTimeout;\\n  if (msecs >= 0) {\\n    item._idleTimeoutId = setTimeout(function onTimeout() {\\n      if (item._onTimeout)\\n        item._onTimeout();\\n    }, msecs);\\n  }\\n};\\n\\n// That\'s not how node.js implements it but the exposed api is the same.\\nexports.setImmediate = typeof setImmediate === \\"function\\" ? setImmediate : function(fn) {\\n  var id = nextImmediateId++;\\n  var args = arguments.length < 2 ? false : slice.call(arguments, 1);\\n\\n  immediateIds[id] = true;\\n\\n  nextTick(function onNextTick() {\\n    if (immediateIds[id]) {\\n      // fn.call() is faster so we optimize for the common use-case\\n      // @see http://jsperf.com/call-apply-segu\\n      if (args) {\\n        fn.apply(null, args);\\n      } else {\\n        fn.call(null);\\n      }\\n      // Prevent ids from leaking\\n      exports.clearImmediate(id);\\n    }\\n  });\\n\\n  return id;\\n};\\n\\nexports.clearImmediate = typeof clearImmediate === \\"function\\" ? clearImmediate : function(id) {\\n  delete immediateIds[id];\\n};\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/timers-browserify/main.js\\n ** module id = 11\\n ** module chunks = 0\\n **/","// shim for using process in browser\\n\\nvar process = module.exports = {};\\nvar queue = [];\\nvar draining = false;\\nvar currentQueue;\\nvar queueIndex = -1;\\n\\nfunction cleanUpNextTick() {\\n    draining = false;\\n    if (currentQueue.length) {\\n        queue = currentQueue.concat(queue);\\n    } else {\\n        queueIndex = -1;\\n    }\\n    if (queue.length) {\\n        drainQueue();\\n    }\\n}\\n\\nfunction drainQueue() {\\n    if (draining) {\\n        return;\\n    }\\n    var timeout = setTimeout(cleanUpNextTick);\\n    draining = true;\\n\\n    var len = queue.length;\\n    while(len) {\\n        currentQueue = queue;\\n        queue = [];\\n        while (++queueIndex < len) {\\n            if (currentQueue) {\\n                currentQueue[queueIndex].run();\\n            }\\n        }\\n        queueIndex = -1;\\n        len = queue.length;\\n    }\\n    currentQueue = null;\\n    draining = false;\\n    clearTimeout(timeout);\\n}\\n\\nprocess.nextTick = function (fun) {\\n    var args = new Array(arguments.length - 1);\\n    if (arguments.length > 1) {\\n        for (var i = 1; i < arguments.length; i++) {\\n            args[i - 1] = arguments[i];\\n        }\\n    }\\n    queue.push(new Item(fun, args));\\n    if (queue.length === 1 && !draining) {\\n        setTimeout(drainQueue, 0);\\n    }\\n};\\n\\n// v8 likes predictible objects\\nfunction Item(fun, array) {\\n    this.fun = fun;\\n    this.array = array;\\n}\\nItem.prototype.run = function () {\\n    this.fun.apply(null, this.array);\\n};\\nprocess.title = \'browser\';\\nprocess.browser = true;\\nprocess.env = {};\\nprocess.argv = [];\\nprocess.version = \'\'; // empty string to avoid regexp issues\\nprocess.versions = {};\\n\\nfunction noop() {}\\n\\nprocess.on = noop;\\nprocess.addListener = noop;\\nprocess.once = noop;\\nprocess.off = noop;\\nprocess.removeListener = noop;\\nprocess.removeAllListeners = noop;\\nprocess.emit = noop;\\n\\nprocess.binding = function (name) {\\n    throw new Error(\'process.binding is not supported\');\\n};\\n\\nprocess.cwd = function () { return \'/\' };\\nprocess.chdir = function (dir) {\\n    throw new Error(\'process.chdir is not supported\');\\n};\\nprocess.umask = function() { return 0; };\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** (webpack)/~/node-libs-browser/~/process/browser.js\\n ** module id = 12\\n ** module chunks = 0\\n **/","(function (global, undefined) {\\n    \\"use strict\\";\\n\\n    if (global.setImmediate) {\\n        return;\\n    }\\n\\n    var nextHandle = 1; // Spec says greater than zero\\n    var tasksByHandle = {};\\n    var currentlyRunningATask = false;\\n    var doc = global.document;\\n    var setImmediate;\\n\\n    function addFromSetImmediateArguments(args) {\\n        tasksByHandle[nextHandle] = partiallyApplied.apply(undefined, args);\\n        return nextHandle++;\\n    }\\n\\n    // This function accepts the same arguments as setImmediate, but\\n    // returns a function that requires no arguments.\\n    function partiallyApplied(handler) {\\n        var args = [].slice.call(arguments, 1);\\n        return function() {\\n            if (typeof handler === \\"function\\") {\\n                handler.apply(undefined, args);\\n            } else {\\n                (new Function(\\"\\" + handler))();\\n            }\\n        };\\n    }\\n\\n    function runIfPresent(handle) {\\n        // From the spec: \\"Wait until any invocations of this algorithm started before this one have completed.\\"\\n        // So if we\'re currently running a task, we\'ll need to delay this invocation.\\n        if (currentlyRunningATask) {\\n            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\\n            // \\"too much recursion\\" error.\\n            setTimeout(partiallyApplied(runIfPresent, handle), 0);\\n        } else {\\n            var task = tasksByHandle[handle];\\n            if (task) {\\n                currentlyRunningATask = true;\\n                try {\\n                    task();\\n                } finally {\\n                    clearImmediate(handle);\\n                    currentlyRunningATask = false;\\n                }\\n            }\\n        }\\n    }\\n\\n    function clearImmediate(handle) {\\n        delete tasksByHandle[handle];\\n    }\\n\\n    function installNextTickImplementation() {\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            process.nextTick(partiallyApplied(runIfPresent, handle));\\n            return handle;\\n        };\\n    }\\n\\n    function canUsePostMessage() {\\n        // The test against `importScripts` prevents this implementation from being installed inside a web worker,\\n        // where `global.postMessage` means something completely different and can\'t be used for this purpose.\\n        if (global.postMessage && !global.importScripts) {\\n            var postMessageIsAsynchronous = true;\\n            var oldOnMessage = global.onmessage;\\n            global.onmessage = function() {\\n                postMessageIsAsynchronous = false;\\n            };\\n            global.postMessage(\\"\\", \\"*\\");\\n            global.onmessage = oldOnMessage;\\n            return postMessageIsAsynchronous;\\n        }\\n    }\\n\\n    function installPostMessageImplementation() {\\n        // Installs an event handler on `global` for the `message` event: see\\n        // * https://developer.mozilla.org/en/DOM/window.postMessage\\n        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\\n\\n        var messagePrefix = \\"setImmediate$\\" + Math.random() + \\"$\\";\\n        var onGlobalMessage = function(event) {\\n            if (event.source === global &&\\n                typeof event.data === \\"string\\" &&\\n                event.data.indexOf(messagePrefix) === 0) {\\n                runIfPresent(+event.data.slice(messagePrefix.length));\\n            }\\n        };\\n\\n        if (global.addEventListener) {\\n            global.addEventListener(\\"message\\", onGlobalMessage, false);\\n        } else {\\n            global.attachEvent(\\"onmessage\\", onGlobalMessage);\\n        }\\n\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            global.postMessage(messagePrefix + handle, \\"*\\");\\n            return handle;\\n        };\\n    }\\n\\n    function installMessageChannelImplementation() {\\n        var channel = new MessageChannel();\\n        channel.port1.onmessage = function(event) {\\n            var handle = event.data;\\n            runIfPresent(handle);\\n        };\\n\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            channel.port2.postMessage(handle);\\n            return handle;\\n        };\\n    }\\n\\n    function installReadyStateChangeImplementation() {\\n        var html = doc.documentElement;\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\\n            // into the document. Do so, thus queuing up the task. Remember to clean up once it\'s been called.\\n            var script = doc.createElement(\\"script\\");\\n            script.onreadystatechange = function () {\\n                runIfPresent(handle);\\n                script.onreadystatechange = null;\\n                html.removeChild(script);\\n                script = null;\\n            };\\n            html.appendChild(script);\\n            return handle;\\n        };\\n    }\\n\\n    function installSetTimeoutImplementation() {\\n        setImmediate = function() {\\n            var handle = addFromSetImmediateArguments(arguments);\\n            setTimeout(partiallyApplied(runIfPresent, handle), 0);\\n            return handle;\\n        };\\n    }\\n\\n    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\\n    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\\n    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\\n\\n    // Don\'t get fooled by e.g. browserify environments.\\n    if ({}.toString.call(global.process) === \\"[object process]\\") {\\n        // For Node.js before 0.9\\n        installNextTickImplementation();\\n\\n    } else if (canUsePostMessage()) {\\n        // For non-IE10 modern browsers\\n        installPostMessageImplementation();\\n\\n    } else if (global.MessageChannel) {\\n        // For web workers, where supported\\n        installMessageChannelImplementation();\\n\\n    } else if (doc && \\"onreadystatechange\\" in doc.createElement(\\"script\\")) {\\n        // For IE 6–8\\n        installReadyStateChangeImplementation();\\n\\n    } else {\\n        // For older browsers\\n        installSetTimeoutImplementation();\\n    }\\n\\n    attachTo.setImmediate = setImmediate;\\n    attachTo.clearImmediate = clearImmediate;\\n}(typeof self === \\"undefined\\" ? typeof global === \\"undefined\\" ? this : global : self));\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./~/setimmediate/setImmediate.js\\n ** module id = 13\\n ** module chunks = 0\\n **/","module.exports = function (selector) {\\n  return typeof selector === \'function\' ? selector() : selector;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/resolveSelector.js\\n ** module id = 14\\n ** module chunks = 0\\n **/","var isEmpty = require(\'../helpers/isEmpty\');\\nvar resolveSelector = require(\'../helpers/resolveSelector\');\\nvar prefix = require(\'../helpers/prefix\');\\n\\nmodule.exports = function (rules, minify) {\\n\\n  // duplicate those that need prefixing\\n  rules = prefix.selector(rules);\\n\\n  return (function generate(rules, parent, minify, nesting, nested) {\\n    var i, j, rule, props, prop, children, nestedChildren, selector, cssValue, tab;\\n    var css = \'\';\\n    var newLine = minify ? \'\' : \'\\\\n\';\\n    var interval = minify ? \'\' : \' \';\\n\\n    nesting = typeof nesting !== \'undefined\' ? nesting : \'\';\\n    tab = minify ? \'\' : nesting + \'  \';\\n    for (i = 0; i < rules.length; i++) {\\n      rule = rules[i];\\n      children = rule.getChildren();\\n      nestedChildren = rule.getNestedChildren();\\n      selector = (parent ? parent + \' \' : \'\');\\n      selector += resolveSelector(rule.selector);\\n      props = typeof rule.props === \'function\' ? rule.props() : rule.props;\\n      if (!isEmpty(props) || nestedChildren.length > 0) {\\n        css += nesting + selector + interval + \'{\' + newLine;\\n        props = prefix.property(props);\\n        if (props) {\\n          for (prop in props) {\\n            cssValue = typeof props[prop] === \'function\' ? props[prop]() : props[prop];\\n            css += tab + prop + \':\' + interval + cssValue + \';\' + newLine;\\n          }\\n        }\\n        for (j = 0; j < nestedChildren.length; j++) {\\n          css += generate([nestedChildren[j]], null, minify, tab, true);\\n        }\\n        css += nesting + \'}\' + newLine;\\n      }\\n      if (children.length > 0) {\\n        css += generate(children, selector, minify);\\n      }\\n    };\\n    return css;\\n  })(rules, null, minify);\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/core/generate.js\\n ** module id = 15\\n ** module chunks = 0\\n **/","module.exports = function (obj) {\\n  var prop;\\n\\n  for (prop in obj) {\\n    if (obj.hasOwnProperty(prop)) {\\n      return false;\\n    }\\n  }\\n  return true;\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/isEmpty.js\\n ** module id = 16\\n ** module chunks = 0\\n **/","var resolveSelector = require(\'./resolveSelector\');\\nvar SELECTORS = {\\n  \'@keyframes\': [\\n    \'@-webkit-keyframes\',\\n    \'@-moz-keyframes\',\\n    \'@-o-keyframes\'\\n  ]\\n};\\nvar prefixProperty = function (list) {\\n  return list.split(\'\').map(function (ch) {\\n    if (ch === \'s\') return \'-ms-\'; // Microsoft\\n    if (ch === \'z\') return \'mso- \'; // icrosoft Office\\n    if (ch === \'m\') return \'-moz-\'; // Mozilla Foundation (Gecko-based browsers)\\n    if (ch === \'o\') return \'-o-\'; //  -xv- Opera Software\\n    if (ch === \'t\') return \'-atsc-\'; // Advanced Television Standards Committee\\n    if (ch === \'p\') return \'-wap-\'; // The WAP Forum\\n    if (ch === \'w\') return \'-webkit-\'; // Safari, Chrome (and other WebKit-based browsers)\\n    if (ch === \'k\') return \'-khtml-\'; // Konqueror browser\\n    if (ch === \'a\') return \'-apple-\'; // Webkit supports properties using the -apple- prefixes as well\\n    if (ch === \'e\') return \'prince- \'; // esLogic\\n    if (ch === \'n\') return \'-ah-\'; // Antenna House\\n    if (ch === \'h\') return \'-hp-\'; // Hewlett Packard\\n    if (ch === \'r\') return \'-ro-\'; // Real Objects\\n    if (ch === \'i\') return \'-rim-\'; // Research In Motion\\n    if (ch === \'c\') return \'-tc-\'; // Tall Components\\n    return [];\\n  });\\n};\\n\\nmodule.exports = {\\n  selector: function (rules) {\\n    var result = [], keyword, newRule;\\n\\n    rules.forEach(function (rule) {\\n      keyword = resolveSelector(rule.selector).split(\' \')[0];\\n      result.push(rule);\\n      if (SELECTORS[keyword]) {\\n        SELECTORS[keyword].forEach(function (prefixed) {\\n          newRule = rule.clone();\\n          newRule.selector = rule.selector.replace(keyword, prefixed);\\n          result.push(newRule);\\n        });\\n      }\\n    });\\n    return result;\\n  },\\n  property: function (props) {\\n    var prop, match, cleanProp;\\n\\n    for (prop in props) {\\n      match = prop.match(/^\\\\(([szmotpwkaenhric]+)\\\\)/);\\n      if (match) {\\n        cleanProp = prop.replace(match[0], \'\');\\n        props[cleanProp] = props[prop];\\n        prefixProperty(match[1]).forEach(function (prefix) {\\n          props[prefix + cleanProp] = props[prop];\\n        });\\n        delete props[prop];\\n      }\\n    }\\n    return props;\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/prefix.js\\n ** module id = 17\\n ** module chunks = 0\\n **/","module.exports = function (message) {\\n  if (typeof console !== \'undefined\' && console.warn) {\\n    console.warn(message);\\n  }\\n};\\n\\n\\n\\n/*****************\\n ** WEBPACK FOOTER\\n ** ./packages/cssx/src/helpers/warning.js\\n ** module id = 18\\n ** module chunks = 0\\n **/"],"sourceRoot":""}\n\\ No newline at end of file\ndiff --git a/packages/cssx/src/CSSRule.js b/packages/cssx/src/CSSRule.js\nindex 6b67e5f..a4fc859 100644\n--- a/packages/cssx/src/CSSRule.js\n+++ b/packages/cssx/src/CSSRule.js\n@@ -41,8 +41,14 @@ var CSSRule = function (selector, props, stylesheet) {\n     update: function (s, p) {\n       var propName;\n \n+      if (arguments.length === 1) {\n+        p = s;\n+        s = false;\n+      }\n+\n       if (s) this.selector = s;\n       if (p) {\n+        if (typeof p === \'function\') p = p();\n         for (propName in p) {\n           this.props[propName] = p[propName];\n         }\n@@ -50,12 +56,6 @@ var CSSRule = function (selector, props, stylesheet) {\n       stylesheet.compile();\n       return this;\n     },\n-    updateProp: function (prop, value) {\n-      var newProp = {};\n-\n-      newProp[prop] = value;\n-      return this.update(null, newProp);\n-    },\n     id: function () {\n       return _id;\n     },\ndiff --git a/packages/cssx/src/CSSStylesheet.js b/packages/cssx/src/CSSStylesheet.js\nindex ba0c41d..8456c72 100644\n--- a/packages/cssx/src/CSSStylesheet.js\n+++ b/packages/cssx/src/CSSStylesheet.js\n@@ -5,6 +5,7 @@ var resolveSelector = require(\'./helpers/resolveSelector\');\n var generate = require(\'./core/generate\');\n var warning = require(\'./helpers/warning\');\n \n+var graphRulePropName = \'__$__cssx_rule\';\n var ids = 0;\n var getId = function () { return \'x\' + (++ids); };\n \n@@ -14,6 +15,8 @@ module.exports = function (id) {\n   var _rules = [];\n   var _remove = null;\n   var _css = \'\';\n+  var _graph = {};\n+  var _queries = {};\n \n   var ruleExists = function (selector, parent) {\n     var i, rule, areParentsMatching, areThereNoParents;\n@@ -28,15 +31,26 @@ module.exports = function (id) {\n     }\n     return false;\n   };\n-  var getRuleBySelector = function (selector, rules) {\n-    var i;\n+  var getOnlyTopRules = function () {\n+    return _rules.filter(function (rule) {\n+      return rule.parent === null;\n+    });\n+  };\n+  var buildGraph = function () {\n+    _graph = {};\n+    (function loop(rules, parent, obj) {\n+      if (!rules) return;\n+      rules.forEach(function (rule) {\n+        var selector = parent ? parent + \' \' : \'\';\n \n-    for (i = 0; i < rules.length; i++) {\n-      if (resolveSelector(rules[i].selector) === selector) {\n-        return rules[i];\n-      }\n-    }\n-    warning(\'No rule matching "\' + selector + \'" selector.\');\n+        selector += resolveSelector(rule.selector);\n+        obj[selector] = {};\n+        obj[selector][graphRulePropName] = rule;\n+        loop(rule.getChildren(), selector, obj[selector]);\n+        loop(rule.getNestedChildren(), selector, obj[selector]);\n+      });\n+    })(getOnlyTopRules(), false, _graph);\n+    return _graph;\n   };\n \n   _api.id = function () {\n@@ -45,7 +59,7 @@ module.exports = function (id) {\n   _api.add = function (selector, props, parent, isWrapper) {\n     var rule, r = ruleExists(selector, parent);\n \n-    if (r !== false) {\n+    if (r) {\n       rule = r.update(false, props);\n     } else {\n       rule = CSSRule(selector, props, _api);\n@@ -54,6 +68,7 @@ module.exports = function (id) {\n         rule.parent = parent;\n         parent.addChild(rule, isWrapper);\n       }\n+      buildGraph();\n     }\n     this.compile();\n     return rule;\n@@ -71,7 +86,7 @@ module.exports = function (id) {\n     return _api.compileImmediate();\n   };\n   _api.compileImmediate = function () {\n-    _css = generate(_rules, module.exports.minify);\n+    _css = generate(getOnlyTopRules(), module.exports.minify);\n     if (!module.exports.disableDOMChanges) {\n       _remove = applyToDOM(_css, _id);\n     }\n@@ -93,22 +108,47 @@ module.exports = function (id) {\n     this.compileImmediate();\n     return _css;\n   };\n-  _api.update = function () {\n-    var args = Array.prototype.slice.call(arguments);\n-    var value = args.pop();\n-    var prop = args.pop();\n+  _api.update = function (selector, props) {\n+    var rule = this.query(selector);\n+\n+    if (!rule) {\n+      warning(\'There is no rule matching "\' + selector + \'"\');\n+    } else {\n+      rule.update(null, props);\n+    }\n+    return rule;\n+  };\n+  _api.query = function (selector) {\n     var rule;\n \n-    while (args.length > 0) {\n-      rule = getRuleBySelector(args.shift(), rule ? rule.getNestedChildren() : _rules);\n+    selector = resolveSelector(selector);\n+\n+    if (_queries[selector]) return _queries[selector];\n+    (function find(node) {\n+      var sel;\n+\n       if (!rule) {\n-        break;\n+        for (sel in node) {\n+          if (sel === selector && sel !== graphRulePropName) {\n+            rule = node[selector][graphRulePropName];\n+            break;\n+          } else {\n+            if (typeof node[sel][graphRulePropName] !== \'undefined\') {\n+              find(node[sel]);\n+            }\n+          }\n+        }\n       }\n-    };\n+    })(_graph);\n \n     if (rule) {\n-      rule.updateProp(prop, value);\n+      _queries[selector] = rule;\n     }\n+\n+    return rule;\n+  };\n+  _api.graph = function () {\n+    return _graph;\n   };\n \n   return _api;\ndiff --git a/packages/cssx/src/core/generate.js b/packages/cssx/src/core/generate.js\nindex 2129433..ddacc88 100644\n--- a/packages/cssx/src/core/generate.js\n+++ b/packages/cssx/src/core/generate.js\n@@ -4,11 +4,6 @@ var prefix = require(\'../helpers/prefix\');\n \n module.exports = function (rules, minify) {\n \n-  // at the top level, use only those which has no parent\n-  rules = rules.filter(function (rule) {\n-    return rule.parent === null;\n-  });\n-\n   // duplicate those that need prefixing\n   rules = prefix.selector(rules);\n \ndiff --git a/packages/cssx/src/helpers/cleanGraph.js b/packages/cssx/src/helpers/cleanGraph.js\nnew file mode 100644\nindex 0000000..d48c314\n--- /dev/null\n+++ b/packages/cssx/src/helpers/cleanGraph.js\n@@ -0,0 +1,10 @@\n+module.exports = function (stylesheet) {\n+  var graph = stylesheet.graph();\n+  (function clean(g) {\n+    if (g.__rule) delete g.__rule;\n+    for (var i in g) {\n+      clean(g[i]);\n+    }\n+  })(graph);\n+  return graph;\n+};\n\\ No newline at end of file\ndiff --git a/packages/cssx/src/helpers/randomId.js b/packages/cssx/src/helpers/randomId.js\nnew file mode 100644\nindex 0000000..74fb697\n--- /dev/null\n+++ b/packages/cssx/src/helpers/randomId.js\n@@ -0,0 +1,8 @@\n+var ids = 0;\n+\n+module.exports = function () {\n+  return \'_cssx\' + (++ids);\n+};\n+module.exports.resetIDs = function () {\n+  ids = 0;\n+};\ndiff --git a/packages/cssx/src/index.js b/packages/cssx/src/index.js\nindex 1b7a40e..ff37cc0 100644\n--- a/packages/cssx/src/index.js\n+++ b/packages/cssx/src/index.js\n@@ -1,18 +1,18 @@\n-var factory, goGlobal, stylesheets, api;\n+var factory, goGlobal, stylesheets, api, randomId;\n \n require(\'./polyfills\');\n \n factory = require(\'./CSSStylesheet\');\n goGlobal = require(\'./helpers/goGlobal\');\n+randomId = require(\'./helpers/randomId\');\n \n stylesheets = [];\n-api = function () {};\n \n function createStyleSheet(id) {\n   var s, i;\n \n   if (typeof id === \'undefined\') {\n-    throw new Error(\'`stylesheet` method expects ID as an argument\');\n+    id = randomId();\n   }\n \n   for (i = 0; i < stylesheets.length; i++) {\n@@ -25,6 +25,8 @@ function createStyleSheet(id) {\n   return s;\n };\n \n+api = function (id) { return createStyleSheet(id); };\n+\n api.domChanges = function (flag) {\n   factory.disableDOMChanges = !flag;\n };\n@@ -55,7 +57,6 @@ api.getCSS = function () {\n   return css;\n };\n \n-api.stylesheet = api.s = createStyleSheet;\n module.exports = api;\n \n goGlobal(module.exports);\ndiff --git a/playground/basic/index.html b/playground/basic/index.html\nindex 850841b..0c78296 100644\n--- a/playground/basic/index.html\n+++ b/playground/basic/index.html\n@@ -21,7 +21,7 @@\n     var randomColor = \'#000\';\n \n     var updateStyles = function () {\n-      var stylesheet = cssx.stylesheet(\'my-styles\');\n+      var stylesheet = cssx(\'my-styles\');\n       var body = stylesheet.add(\'body\');\n       var h1 = body.descendant(\'h1\', { \'color\': h1Color });\n \ndiff --git a/playground/try-it-out/script.js b/playground/try-it-out/script.js\nindex 98c6622..43867ee 100644\n--- a/playground/try-it-out/script.js\n+++ b/playground/try-it-out/script.js\n@@ -144,8 +144,10 @@ var init = function () {\n       css = generatedCSS.join(\'\');\n     } catch(err) {\n       renderError(err.message);\n+      return false;\n     }\n     printIfValid(css, \'The generated JavaScript do not produce any CSS.\');\n+    return true;\n   };\n   var print = printCompiledCSS;\n \n@@ -158,9 +160,10 @@ var init = function () {\n       CSSXTranspiler.reset();\n       ast = CSSXTranspiler.ast(value);\n       transpiled = CSSXTranspiler(value, transpilerOpts);\n-      print();\n-      renderOutError();\n-      saveCode(value);\n+      if (print()) {\n+        renderOutError();\n+        saveCode(value);\n+      }\n     } catch(err) {\n       // console.log(err);\n       renderError(err.message);\ndiff --git a/test/cssx-transpiler.spec.js b/test/cssx-transpiler.spec.js\nindex e98825f..888a883 100644\n--- a/test/cssx-transpiler.spec.js\n+++ b/test/cssx-transpiler.spec.js\n@@ -8,7 +8,7 @@ var expect = chai.expect;\n var d = describe;\n \n var tests = [];\n-// var only = \'11\'.split(\',\');\n+// var only = \'1\'.split(\',\');\n \n glob.sync(__dirname + \'/fixtures/cssx-transpiler/**/actual.js\').forEach(function (actual) {\n   var testDir = path.dirname(actual), testDirParts = testDir.split(\'/\');\ndiff --git a/test/cssx.spec.js b/test/cssx.spec.js\nindex c11c5f8..7efdb8b 100644\n--- a/test/cssx.spec.js\n+++ b/test/cssx.spec.js\n@@ -47,16 +47,16 @@ d(\'Given the cssx library\', function () {\n   describe(\'when we use disableDOMChanges and enableDOMChanges\', function () {\n     it(\'should create multiple <style> element\', function () {\n       cssx.domChanges(false);\n-      cssx.stylesheet(\'A\').compile();\n-      cssx.stylesheet(\'B\').compile();\n-      cssx.stylesheet(\'C\').compile();\n+      cssx(\'A\').compile();\n+      cssx(\'B\').compile();\n+      cssx(\'C\').compile();\n       expect(document.createElement).to.not.be.called;\n       cssx.domChanges(true);\n     });\n   });\n   describe(\'when we compile several times within the global namespace\', function () {\n     it(\'should create only one <style> element\', function () {\n-      styles = cssx.stylesheet(\'A\');\n+      styles = cssx(\'A\');\n       styles.compile();\n       styles.compile();\n       styles.compile();\n@@ -67,15 +67,15 @@ d(\'Given the cssx library\', function () {\n   });\n   describe(\'when we create multiple stylesheets\', function () {\n     it(\'should create multiple <style> element\', function () {\n-      cssx.stylesheet(\'A\').compile();\n-      cssx.stylesheet(\'B\').compile();\n-      cssx.stylesheet(\'C\').compile();\n+      cssx(\'A\').compile();\n+      cssx(\'B\').compile();\n+      cssx(\'C\').compile();\n       expect(document.createElement).to.be.calledThrice;\n     });\n   });\n   describe(\'when we use destroy method\', function () {\n     it(\'should create multiple <style> element\', function () {\n-      var A = cssx.stylesheet(\'A\').compile();\n+      var A = cssx(\'A\').compile();\n       expect(removeChild).to.not.be.called;\n       A.destroy();\n       expect(removeChild).to.be.calledOnce;\n@@ -83,16 +83,16 @@ d(\'Given the cssx library\', function () {\n   });\n   describe(\'when we pass an id to the factory\', function () {\n     it(\'should create only one stylesheet\', function () {\n-      cssx.stylesheet(\'something\');\n-      cssx.stylesheet(\'something\');\n-      cssx.stylesheet(\'something\');\n+      cssx(\'something\');\n+      cssx(\'something\');\n+      cssx(\'something\');\n       expect(cssx.getStylesheets().length).to.be.equal(1);\n     });\n     describe(\'and when we pass same id multiple times\', function () {\n       it(\'should update the values 1\', function () {\n         var EXPECTED = \'a{b:10;c:10;d:10;}\';\n-        var A = cssx.stylesheet(\'something\');\n-        var B = cssx.stylesheet(\'something\');\n+        var A = cssx(\'something\');\n+        var B = cssx(\'something\');\n         A.add(\'a\', { b: 1, c: 2 });\n         A.add(\'a\', { c: 10 });\n         B.add(\'a\', { b: 10, d: 10 });\n@@ -101,8 +101,8 @@ d(\'Given the cssx library\', function () {\n       });\n       it(\'should update the values 2\', function () {\n         var EXPECTED = \'a{b:1;c:2;}a{b:10;d:10;}\';\n-        var A = cssx.stylesheet(\'A\');\n-        var B = cssx.stylesheet(\'B\');\n+        var A = cssx(\'A\');\n+        var B = cssx(\'B\');\n         A.add(\'a\', { b: 1, c: 2 });\n         B.add(\'a\', { b: 10, d: 10 });\n         expect(cssx.getStylesheets().length).to.be.equal(2);\n@@ -110,9 +110,9 @@ d(\'Given the cssx library\', function () {\n       });\n       it(\'should update the values 3\', function () {\n         var EXPECTED = \'a{b:10;c:10;e:10;}a{b:1;c:2;}\';\n-        var A = cssx.stylesheet(\'A\');\n-        var B = cssx.stylesheet(\'A\');\n-        var C = cssx.stylesheet(\'B\');\n+        var A = cssx(\'A\');\n+        var B = cssx(\'A\');\n+        var C = cssx(\'B\');\n         A.add(\'a\', { b: 1, c: 2 });\n         B.add(\'a\', { b: 10, c: 10, e: 10 });\n         C.add(\'a\', { b: 1, c: 2 });\n@@ -121,7 +121,7 @@ d(\'Given the cssx library\', function () {\n       });\n       it(\'should update the values 4\', function () {\n         var EXPECTED = \'body p{a:2;}p{a:1;}\';\n-        var A = cssx.stylesheet(\'A\');\n+        var A = cssx(\'A\');\n         var body = A.add(\'body\');\n         A.add(\'p\', { a: 1 });\n         body.d(\'p\', { a: 2 });\n@@ -131,25 +131,59 @@ d(\'Given the cssx library\', function () {\n       it(\'should update the values 5\', function () {\n         var EXPECTED = \'a{b:1;}\';\n         var selector = function () { return \'a\'; };\n-        var A = cssx.stylesheet(\'A\');\n-        var B = cssx.stylesheet(\'A\');\n+        var A = cssx(\'A\');\n+        var B = cssx(\'A\');\n         A.add(selector, { b: 1 });\n         B.add(selector, { b: 1 });\n         expect(minifyCSS(cssx.getCSS())).to.be.equal(EXPECTED);\n       });\n     });\n   });\n+\n   describe(\'when we use the update API\', function () {\n-    describe(\'and when we pass a selector\', function () {\n+    describe(\'and when we pass an object as a last parameter\', function () {\n       it(\'should result in the right css\', function () {\n-        var EXPECTED = \'a > b{c:2;}\';\n-        var S = cssx.s(\'S\');\n+        var S = cssx();\n         S.add(\'a > b\', { c: 1 });\n-        S.update(\'a > b\', \'c\', 2);\n-        expect(minifyCSS(cssx.getCSS())).to.be.equal(EXPECTED);\n+        S.update(\'a > b\', { c: 2, d: 3 });\n+        expect(minifyCSS(cssx.getCSS())).to.be.equal(\'a > b{c:2;d:3;}\');\n+      });\n+    });\n+    describe(\'and when we pass a function as a last parameter\', function () {\n+      it(\'should result in the right css\', function () {\n+        var S = cssx();\n+        S.add(\'a > b\', { c: 1 });\n+        S.update(\'a > b\', function () { return { c: 2, d: 3 } });\n+        expect(minifyCSS(cssx.getCSS())).to.be.equal(\'a > b{c:2;d:3;}\');\n+      });\n+    });\n+    describe(\'and when we have descendant selectors added by the api\', function () {\n+      it(\'should result in the right css\', function () {\n+        var S = cssx();\n+        S.add(\'a > b\').d(\'d\').d(\'f\', { g: 4 });\n+        S.update(\'a > b d f\', function () { return { c: 2, d: 3 } });\n+        expect(minifyCSS(cssx.getCSS())).to.be.equal(\'a > b d f{g:4;c:2;d:3;}\');\n+      });\n+    });\n+    describe(\'and when having descendant selectors but we type wrong path\', function () {\n+      it(\'should result in the right css\', function () {\n+        var S = cssx();\n+        S.add(\'a > b\').d(\'d\').d(\'f\', { g: 4 });\n+        S.update(\'a > b e f\', { c: 2 });\n+        expect(minifyCSS(cssx.getCSS())).to.be.equal(\'a > b d f{g:4;}\');\n+      });\n+    });\n+    describe(\'and when we have styles defined at the top level\', function () {\n+      it(\'should result in the right css\', function () {\n+        var S = cssx();\n+        S.add(\'body\', { a: 1 });\n+        S.add(\'body p\', { b: 1 });\n+        S.update(\'body\', { c: 1 });\n+        expect(minifyCSS(cssx.getCSS())).to.be.equal(\'body{a:1;c:1;}body p{b:1;}\');\n       });\n     });\n   });\n+\n   describe(\'when we add rules\', function () {\n     var tests = [], testDir, testDirParts, testCaseDirName, testName;\n \n@@ -171,7 +205,7 @@ d(\'Given the cssx library\', function () {\n     tests.forEach(function (test) {\n       describe(\'and when are running \' + test.name, function () {\n         it(\'should compile the css correctly\', function () {\n-            styles = cssx.stylesheet(\'A\');\n+            styles = cssx(\'A\');\n             require(test.actual)(styles);\n             fs.writeFileSync(test.expected + \'.result\', styles.getCSS());\n             expect(styles.getCSS()).to.be.equal(file(test.expected));\n@@ -181,5 +215,101 @@ d(\'Given the cssx library\', function () {\n       });\n     });\n   });\n+  \n+  describe(\'when we update the graph\', function () {\n+    var prop = \'__$__cssx_rule\';\n+    var cleanGraph = function (stylesheet) {\n+      var graph = stylesheet.graph();\n+      (function clean(g) {\n+        if (g[prop]) delete g[prop];\n+        for (var i in g) {\n+          clean(g[i]);\n+        }\n+      })(graph);\n+      return graph;\n+    };\n+\n+    it(\'should have a proper graph 1\', function () {\n+      var s = cssx();\n+      s.add(\'a\', { b: 1 })\n+      expect(cleanGraph(s)).to.be.deep.equal({a:{}});\n+    });\n+    it(\'should have a proper graph 2\', function () {\n+      var s = cssx();\n+      var a2 = s.add(\'a\', { b: 1 }).d(\'a2\');\n+      a2.d(\'a3\');\n+      a2.d(\'a4\');\n+      expect(cleanGraph(s)).to.be.deep.equal({\n+        a: {\n+          \'a a2\': {\n+            \'a a2 a3\': {},\n+            \'a a2 a4\': {}\n+          }\n+        }\n+      });\n+    });\n+    it(\'should have a proper graph 3\', function () {\n+      var s = cssx();\n+      var a2 = s.add(\'a\', { b: 1 }).d(\'a2 > p.something\');\n+      a2.d(\'a3\');\n+      a2.d(\'a4\');\n+      expect(cleanGraph(s)).to.be.deep.equal({\n+        a: {\n+          \'a a2 > p.something\': {\n+            \'a a2 > p.something a3\': {},\n+            \'a a2 > p.something a4\': {}\n+          }\n+        }\n+      });\n+    });\n+    it(\'should have a proper graph 4\', function () {\n+      var s = cssx();\n+      var a2 = s.add(\'a\', { b: 1 }).n(\'a2 > p.something\');\n+      a2.d(\'a3\');\n+      a2.d(\'a4\');\n+      expect(cleanGraph(s)).to.be.deep.equal({\n+        a: {\n+          \'a a2 > p.something\': {\n+            \'a a2 > p.something a3\': {},\n+            \'a a2 > p.something a4\': {}\n+          }\n+        }\n+      });\n+    });\n+    it(\'should have a proper graph 5\', function () {\n+      var s = cssx();\n+      var a2 = s.add(\'a::foo bar > f\', { b: 1 }).n(\'a2 > p.something\');\n+      a2.d(\'a3\');\n+      a2.d(\'a4\');\n+      expect(cleanGraph(s)).to.be.deep.equal({\n+        \'a::foo bar > f\': {\n+          \'a::foo bar > f a2 > p.something\': {\n+            \'a::foo bar > f a2 > p.something a3\': {},\n+            \'a::foo bar > f a2 > p.something a4\': {}\n+          }\n+        }\n+      });\n+    });\n+    it(\'should have a proper graph 6\', function () {\n+      var s = cssx();\n+      var a = s.add(\'a\');\n+      a.n(\'a3\');\n+      a.d(\'a4\');\n+      expect(cleanGraph(s)).to.be.deep.equal({\n+        a: {\n+          \'a a3\': {},\n+          \'a a4\': {}\n+        }\n+      });\n+    });\n+    it(\'should have a proper graph 6\', function () {\n+      var s = cssx();\n+      s.add(\'body\');\n+      s.add(\'body p\');\n+      expect(cleanGraph(s)).to.be.deep.equal({\n+        \'body\': {}, \'body p\': {}\n+      });\n+    });\n+  });\n \n });\n\\ No newline at end of file\ndiff --git a/test/fixtures/cssx-transpiler/1/expected.js b/test/fixtures/cssx-transpiler/1/expected.js\nindex 48c1192..3216e99 100644\n--- a/test/fixtures/cssx-transpiler/1/expected.js\n+++ b/test/fixtures/cssx-transpiler/1/expected.js\n@@ -2,7 +2,7 @@ var a = (function () {\n   var _2 = {};\n   _2[\'margin\'] = \'10px\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'body\', _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/10/expected.js b/test/fixtures/cssx-transpiler/10/expected.js\nindex 595b942..cc649ba 100644\n--- a/test/fixtures/cssx-transpiler/10/expected.js\n+++ b/test/fixtures/cssx-transpiler/10/expected.js\n@@ -16,7 +16,7 @@\n   var _2 = {};\n   _2[\'transform\'] = \'translateX(0)\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   var _10 = _1.add(\'@keyframes shake\');\n \ndiff --git a/test/fixtures/cssx-transpiler/12/expected.js b/test/fixtures/cssx-transpiler/12/expected.js\nindex 36c17ca..22c2396 100644\n--- a/test/fixtures/cssx-transpiler/12/expected.js\n+++ b/test/fixtures/cssx-transpiler/12/expected.js\n@@ -3,7 +3,7 @@ var sheet = (function () {\n   _2[\'padding\'] = \'0\';\n   _2[\'margin\'] = \'0\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'body\', _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/2/expected.js b/test/fixtures/cssx-transpiler/2/expected.js\nindex 06bf01e..b6375dc 100644\n--- a/test/fixtures/cssx-transpiler/2/expected.js\n+++ b/test/fixtures/cssx-transpiler/2/expected.js\n@@ -1,5 +1,5 @@\n (function () {\n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'header\');\n \ndiff --git a/test/fixtures/cssx-transpiler/3/expected.js b/test/fixtures/cssx-transpiler/3/expected.js\nindex 0da0f4c..11b5f46 100644\n--- a/test/fixtures/cssx-transpiler/3/expected.js\n+++ b/test/fixtures/cssx-transpiler/3/expected.js\n@@ -5,7 +5,7 @@\n   _2[\'font-size\'] = \'20px\';\n   _2[\'margin\'] = \'10px\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'body\', _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/4/expected.js b/test/fixtures/cssx-transpiler/4/expected.js\nindex 59e9fdc..959d5a9 100644\n--- a/test/fixtures/cssx-transpiler/4/expected.js\n+++ b/test/fixtures/cssx-transpiler/4/expected.js\n@@ -14,7 +14,7 @@\n   _2[\'display\'] = \'table\';\n   _2[\'content\'] = \'" "\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'section::after\', _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/5/expected.js b/test/fixtures/cssx-transpiler/5/expected.js\nindex 47bfd59..267f5c3 100644\n--- a/test/fixtures/cssx-transpiler/5/expected.js\n+++ b/test/fixtures/cssx-transpiler/5/expected.js\n@@ -2,7 +2,7 @@\n   var _2 = {};\n   _2[\'margin\'] = \'10px\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(a + b + "-to-" + (c + d) + "-from-" + (e + f), _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/6/expected.js b/test/fixtures/cssx-transpiler/6/expected.js\nindex 161ff2c..89ad771 100644\n--- a/test/fixtures/cssx-transpiler/6/expected.js\n+++ b/test/fixtures/cssx-transpiler/6/expected.js\n@@ -5,7 +5,7 @@ var getSelector = function () {\n   var _2 = {};\n   _2[\'margin\'] = \'10px\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(getSelector, _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/7/expected.js b/test/fixtures/cssx-transpiler/7/expected.js\nindex 424921f..d66d8c2 100644\n--- a/test/fixtures/cssx-transpiler/7/expected.js\n+++ b/test/fixtures/cssx-transpiler/7/expected.js\n@@ -2,7 +2,7 @@\n   var _2 = {};\n   _2[a + b + "-to-" + (a + b) + "-from-" + (a + b)] = \'10px\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'body\', _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/8/expected.js b/test/fixtures/cssx-transpiler/8/expected.js\nindex dd5b97c..5e23016 100644\n--- a/test/fixtures/cssx-transpiler/8/expected.js\n+++ b/test/fixtures/cssx-transpiler/8/expected.js\n@@ -2,7 +2,7 @@\n   var _2 = {};\n   _2[\'margin\'] = a + b + "-to-" + (a + b) + "-from-" + (a + b);\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add(\'body\', _2);\n \ndiff --git a/test/fixtures/cssx-transpiler/9/expected.js b/test/fixtures/cssx-transpiler/9/expected.js\nindex e28af2e..e9607ec 100644\n--- a/test/fixtures/cssx-transpiler/9/expected.js\n+++ b/test/fixtures/cssx-transpiler/9/expected.js\n@@ -30,7 +30,7 @@ var image = \'bg.jpg\';\n   _2[\'display\'] = \'table\';\n   _2[\'content\'] = \'" "\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add("section::" + pseudoClass, _2);\n \n', 'commit_subject': 'Adding update and query API', 'repo_name': 'krasimir/cssx', 'committer': {'name': 'Krasimir Tsonev', 'email': '6900256643404ba7670b0457a96b9790d193bef4@outset.ws', 'time_sec': '1455178016', 'tz_offset': '120', 'date': {'seconds': '1455178016'}}, 'commit_tree': 'bbd304283b243fb050e9e4e44066f3701721a34f', 'commit_message': 'Adding update and query API\n', 'language_name': 'JavaScript', 'license': 'mit', 'hunks': '@@ -30,7 +30,7 @@ var image = \'bg.jpg\';\n   _2[\'display\'] = \'table\';\n   _2[\'content\'] = \'" "\';\n \n-  var _1 = cssx.s(\'_1\');\n+  var _1 = cssx(\'_1\');\n \n   _1.add("section::" + pseudoClass, _2);\n \n', 'addition_count': 1, 'deletion_count': 1, 'src_file': 'a/test/fixtures/cssx-transpiler/9/expected.js', 'tgt_file': 'b/test/fixtures/cssx-transpiler/9/expected.js', 'file_extension': '.js', 'before_file': 'var pseudoClass = \'after\';\nvar sectionSmallSize = function () {\n  return 0.2;\n};\nvar pInMedia = function () {\n  return 0.8 + \'em\';\n};\nvar getSomeProp = function () {\n  return [\'text-decoration\'];\n};\nvar data = {\n  prop: \'background\',\n  sel: [\'section\', \'p > a\']\n};\nvar image = \'bg.jpg\';\n\n(function () {\n  var _1 = {},\n      _2 = {},\n      _3 = {},\n      _4 = {},\n      _5 = {},\n      _6 = {},\n      _7 = {};\n  _2[\'content\'] = \'" "\';\n  _2[\'display\'] = \'table\';\n  _2[\'clear\'] = \'both\';\n  _3[\'font-size\'] = sectionSmallSize() + "em";\n  _4[\'font-size\'] = pInMedia;\n  _2[\'display\'] = \'table\';\n  _2[\'content\'] = \'" "\';\n\n  var _1 = cssx.s(\'_1\');\n\n  _1.add("section::" + pseudoClass, _2);\n\n  _1[\'section small\'] = _3;\n  _1[\'@media screen and (max-width: 1000px)\'] = _6;\n  _1[data.sel.join(\', \')] = _7;\n  return _1;\n}.apply(this))\n;', 'message': 'Adding update and query API\n', 'author_name': 'Krasimir Tsonev', 'lang': 'js'}